import json address_mode_table = { 'Implied': 'AM_ACC', 'Immediate': 'AM_IMM', 'Zero Page': 'AM_ZP', 'Zero Page, X': 'AM_ZP_X', 'Zero Page, Y': 'AM_ZP_Y', 'Absolute': 'AM_ABS', 'Absolute, X': 'AM_ABS_X', 'Absolute, Y': 'AM_ABS_Y', 'Indirect': 'AM_IND', '(Indirect)': 'AM_IND', '(Indirect, X)': 'AM_IND_X', '(Indirect), Y': 'AM_IND_Y', } # https://github.com/ericTheEchidna/65C02-JSON/ j = json.load(open('opcodes_65c02.json', 'r')) #print(j) for i in j: #print(i) instruction = str.lower(i["instruction"]) for op in i["opcodes"]: address_mode = i["opcodes"][op]["address_mode"] if "Bit " in address_mode: am = 'AM_REL' else: am = address_mode_table[address_mode] bytes = i["opcodes"][op]["bytes"] cycles = i["opcodes"][op]["cycles"] print(f'''case {op}: {instruction}(opcode_arg({am})); cycles += {cycles}; break;''')