#!/usr/bin/env python3
-import py65.devices.mpu65c02
-import py65.disassembler
import sys
-mem = [0, 0x12, 0x34]
-mpu = py65.devices.mpu65c02.MPU(mem, 0)
-disassembler = py65.disassembler.Disassembler(mpu)
-
rvalue_opcodes = {
'adc',
'and',
'a': 'CPU_65C02_EA_A',
}
+line = sys.stdin.readline().strip()
+assert line == 'opcodes'
+
print('void cpu_65c02_execute(struct cpu_65c02 *self) {')
print(' switch (cpu_65c02_fetch_byte(self)) {')
for i in range(0x100):
+ line = sys.stdin.readline().strip()
+
print(f' case 0x{i:02x}:')
- if i == 0x64: # cope with py65 disassembler bug
- n, instr = 2, 'stz $12'
- else:
- mem[0] = i
- _, instr = disassembler.instruction_at(0)
- instr = instr.lower().split()
+ instr = line.lower().split()
if instr[0] == '???':
instr[0] = 'ill' # illegal opcode
if len(instr) >= 2:
)
)
print(' break;')
+
+line = sys.stdin.readline().strip()
+assert len(line) == 0
+
print(' }')
print('}')
--- /dev/null
+#!/usr/bin/env python3
+
+import py65.devices.mpu65c02
+import py65.disassembler
+
+mem = [0, 0x12, 0x34]
+mpu = py65.devices.mpu65c02.MPU(mem, 0)
+disassembler = py65.disassembler.Disassembler(mpu)
+
+print('opcodes')
+for i in range(0x100):
+ if i == 0x64: # cope with py65 disassembler bug
+ instr = 'stz $12'
+ else:
+ mem[0] = i
+ _, instr = disassembler.instruction_at(0)
+ print(instr)
+print()