-
Notifications
You must be signed in to change notification settings - Fork 1
/
lookup2.py
77 lines (73 loc) · 48.4 KB
/
lookup2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# lookup1 = {
# "BRK":{ 'BRK', 'IMM', 7 }, "ORA":{ 'ORA', 'IZX', 6 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 3 }, "ORA":{ 'ORA', 'ZP0', 3 }, "ASL":{ 'ASL', 'ZP0', 5 }, "???":{ 'XXX', 'IMP', 5 }, "PHP":{ 'PHP', 'IMP', 3 }, "ORA":{ 'ORA', 'IMM', 2 }, "ASL":{ 'ASL', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'NOP', 'IMP', 4 }, "ORA":{ 'ORA', 'ABS', 4 }, "ASL":{ 'ASL', 'ABS', 6 }, "???":{ 'XXX', 'IMP', 6 },
# "BPL":{ 'BPL', 'REL', 2 }, "ORA":{ 'ORA', 'IZY', 5 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 4 }, "ORA":{ 'ORA', 'ZPX', 4 }, "ASL":{ 'ASL', 'ZPX', 6 }, "???":{ 'XXX', 'IMP', 6 }, "CLC":{ 'CLC', 'IMP', 2 }, "ORA":{ 'ORA', 'ABY', 4 }, "???":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 7 }, "???":{ 'NOP', 'IMP', 4 }, "ORA":{ 'ORA', 'ABX', 4 }, "ASL":{ 'ASL', 'ABX', 7 }, "???":{ 'XXX', 'IMP', 7 },
# "JSR":{ 'JSR', 'ABS', 6 }, "AND":{ 'AND', 'IZX', 6 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "BIT":{ 'BIT', 'ZP0', 3 }, "AND":{ 'AND', 'ZP0', 3 }, "ROL":{ 'ROL', 'ZP0', 5 }, "???":{ 'XXX', 'IMP', 5 }, "PLP":{ 'PLP', 'IMP', 4 }, "AND":{ 'AND', 'IMM', 2 }, "ROL":{ 'ROL', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 2 }, "BIT":{ 'BIT', 'ABS', 4 }, "AND":{ 'AND', 'ABS', 4 }, "ROL":{ 'ROL', 'ABS', 6 }, "???":{ 'XXX', 'IMP', 6 },
# "BMI":{ 'BMI', 'REL', 2 }, "AND":{ 'AND', 'IZY', 5 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 4 }, "AND":{ 'AND', 'ZPX', 4 }, "ROL":{ 'ROL', 'ZPX', 6 }, "???":{ 'XXX', 'IMP', 6 }, "SEC":{ 'SEC', 'IMP', 2 }, "AND":{ 'AND', 'ABY', 4 }, "???":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 7 }, "???":{ 'NOP', 'IMP', 4 }, "AND":{ 'AND', 'ABX', 4 }, "ROL":{ 'ROL', 'ABX', 7 }, "???":{ 'XXX', 'IMP', 7 },
# "RTI":{ 'RTI', 'IMP', 6 }, "EOR":{ 'EOR', 'IZX', 6 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 3 }, "EOR":{ 'EOR', 'ZP0', 3 }, "LSR":{ 'LSR', 'ZP0', 5 }, "???":{ 'XXX', 'IMP', 5 }, "PHA":{ 'PHA', 'IMP', 3 }, "EOR":{ 'EOR', 'IMM', 2 }, "LSR":{ 'LSR', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 2 }, "JMP":{ 'JMP', 'ABS', 3 }, "EOR":{ 'EOR', 'ABS', 4 }, "LSR":{ 'LSR', 'ABS', 6 }, "???":{ 'XXX', 'IMP', 6 },
# "BVC":{ 'BVC', 'REL', 2 }, "EOR":{ 'EOR', 'IZY', 5 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 4 }, "EOR":{ 'EOR', 'ZPX', 4 }, "LSR":{ 'LSR', 'ZPX', 6 }, "???":{ 'XXX', 'IMP', 6 }, "CLI":{ 'CLI', 'IMP', 2 }, "EOR":{ 'EOR', 'ABY', 4 }, "???":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 7 }, "???":{ 'NOP', 'IMP', 4 }, "EOR":{ 'EOR', 'ABX', 4 }, "LSR":{ 'LSR', 'ABX', 7 }, "???":{ 'XXX', 'IMP', 7 },
# "RTS":{ 'RTS', 'IMP', 6 }, "ADC":{ 'ADC', 'IZX', 6 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 3 }, "ADC":{ 'ADC', 'ZP0', 3 }, "ROR":{ 'ROR', 'ZP0', 5 }, "???":{ 'XXX', 'IMP', 5 }, "PLA":{ 'PLA', 'IMP', 4 }, "ADC":{ 'ADC', 'IMM', 2 }, "ROR":{ 'ROR', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 2 }, "JMP":{ 'JMP', 'IND', 5 }, "ADC":{ 'ADC', 'ABS', 4 }, "ROR":{ 'ROR', 'ABS', 6 }, "???":{ 'XXX', 'IMP', 6 },
# "BVS":{ 'BVS', 'REL', 2 }, "ADC":{ 'ADC', 'IZY', 5 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 4 }, "ADC":{ 'ADC', 'ZPX', 4 }, "ROR":{ 'ROR', 'ZPX', 6 }, "???":{ 'XXX', 'IMP', 6 }, "SEI":{ 'SEI', 'IMP', 2 }, "ADC":{ 'ADC', 'ABY', 4 }, "???":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 7 }, "???":{ 'NOP', 'IMP', 4 }, "ADC":{ 'ADC', 'ABX', 4 }, "ROR":{ 'ROR', 'ABX', 7 }, "???":{ 'XXX', 'IMP', 7 },
# "???":{ 'NOP', 'IMP', 2 }, "STA":{ 'STA', 'IZX', 6 }, "???":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 6 }, "STY":{ 'STY', 'ZP0', 3 }, "STA":{ 'STA', 'ZP0', 3 }, "STX":{ 'STX', 'ZP0', 3 }, "???":{ 'XXX', 'IMP', 3 }, "DEY":{ 'DEY', 'IMP', 2 }, "???":{ 'NOP', 'IMP', 2 }, "TXA":{ 'TXA', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 2 }, "STY":{ 'STY', 'ABS', 4 }, "STA":{ 'STA', 'ABS', 4 }, "STX":{ 'STX', 'ABS', 4 }, "???":{ 'XXX', 'IMP', 4 },
# "BCC":{ 'BCC', 'REL', 2 }, "STA":{ 'STA', 'IZY', 6 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 6 }, "STY":{ 'STY', 'ZPX', 4 }, "STA":{ 'STA', 'ZPX', 4 }, "STX":{ 'STX', 'ZPY', 4 }, "???":{ 'XXX', 'IMP', 4 }, "TYA":{ 'TYA', 'IMP', 2 }, "STA":{ 'STA', 'ABY', 5 }, "TXS":{ 'TXS', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 5 }, "???":{ 'NOP', 'IMP', 5 }, "STA":{ 'STA', 'ABX', 5 }, "???":{ 'XXX', 'IMP', 5 }, "???":{ 'XXX', 'IMP', 5 },
# "LDY":{ 'LDY', 'IMM', 2 }, "LDA":{ 'LDA', 'IZX', 6 }, "LDX":{ 'LDX', 'IMM', 2 }, "???":{ 'XXX', 'IMP', 6 }, "LDY":{ 'LDY', 'ZP0', 3 }, "LDA":{ 'LDA', 'ZP0', 3 }, "LDX":{ 'LDX', 'ZP0', 3 }, "???":{ 'XXX', 'IMP', 3 }, "TAY":{ 'TAY', 'IMP', 2 }, "LDA":{ 'LDA', 'IMM', 2 }, "TAX":{ 'TAX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 2 }, "LDY":{ 'LDY', 'ABS', 4 }, "LDA":{ 'LDA', 'ABS', 4 }, "LDX":{ 'LDX', 'ABS', 4 }, "???":{ 'XXX', 'IMP', 4 },
# "BCS":{ 'BCS', 'REL', 2 }, "LDA":{ 'LDA', 'IZY', 5 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 5 }, "LDY":{ 'LDY', 'ZPX', 4 }, "LDA":{ 'LDA', 'ZPX', 4 }, "LDX":{ 'LDX', 'ZPY', 4 }, "???":{ 'XXX', 'IMP', 4 }, "CLV":{ 'CLV', 'IMP', 2 }, "LDA":{ 'LDA', 'ABY', 4 }, "TSX":{ 'TSX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 4 }, "LDY":{ 'LDY', 'ABX', 4 }, "LDA":{ 'LDA', 'ABX', 4 }, "LDX":{ 'LDX', 'ABY', 4 }, "???":{ 'XXX', 'IMP', 4 },
# "CPY":{ 'CPY', 'IMM', 2 }, "CMP":{ 'CMP', 'IZX', 6 }, "???":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "CPY":{ 'CPY', 'ZP0', 3 }, "CMP":{ 'CMP', 'ZP0', 3 }, "DEC":{ 'DEC', 'ZP0', 5 }, "???":{ 'XXX', 'IMP', 5 }, "INY":{ 'INY', 'IMP', 2 }, "CMP":{ 'CMP', 'IMM', 2 }, "DEX":{ 'DEX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 2 }, "CPY":{ 'CPY', 'ABS', 4 }, "CMP":{ 'CMP', 'ABS', 4 }, "DEC":{ 'DEC', 'ABS', 6 }, "???":{ 'XXX', 'IMP', 6 },
# "BNE":{ 'BNE', 'REL', 2 }, "CMP":{ 'CMP', 'IZY', 5 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 4 }, "CMP":{ 'CMP', 'ZPX', 4 }, "DEC":{ 'DEC', 'ZPX', 6 }, "???":{ 'XXX', 'IMP', 6 }, "CLD":{ 'CLD', 'IMP', 2 }, "CMP":{ 'CMP', 'ABY', 4 }, "NOP":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 7 }, "???":{ 'NOP', 'IMP', 4 }, "CMP":{ 'CMP', 'ABX', 4 }, "DEC":{ 'DEC', 'ABX', 7 }, "???":{ 'XXX', 'IMP', 7 },
# "CPX":{ 'CPX', 'IMM', 2 }, "SBC":{ 'SBC', 'IZX', 6 }, "???":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "CPX":{ 'CPX', 'ZP0', 3 }, "SBC":{ 'SBC', 'ZP0', 3 }, "INC":{ 'INC', 'ZP0', 5 }, "???":{ 'XXX', 'IMP', 5 }, "INX":{ 'INX', 'IMP', 2 }, "SBC":{ 'SBC', 'IMM', 2 }, "NOP":{ 'NOP', 'IMP', 2 }, "???":{ 'SBC', 'IMP', 2 }, "CPX":{ 'CPX', 'ABS', 4 }, "SBC":{ 'SBC', 'ABS', 4 }, "INC":{ 'INC', 'ABS', 6 }, "???":{ 'XXX', 'IMP', 6 },
# "BEQ":{ 'BEQ', 'REL', 2 }, "SBC":{ 'SBC', 'IZY', 5 }, "???":{ 'XXX', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 8 }, "???":{ 'NOP', 'IMP', 4 }, "SBC":{ 'SBC', 'ZPX', 4 }, "INC":{ 'INC', 'ZPX', 6 }, "???":{ 'XXX', 'IMP', 6 }, "SED":{ 'SED', 'IMP', 2 }, "SBC":{ 'SBC', 'ABY', 4 }, "NOP":{ 'NOP', 'IMP', 2 }, "???":{ 'XXX', 'IMP', 7 }, "???":{ 'NOP', 'IMP', 4 }, "SBC":{ 'SBC', 'ABX', 4 }, "INC":{ 'INC', 'ABX', 7 }, "???":{ 'XXX', 'IMP', 7 },
# }
# lookup = {
# "BRK":{ "OPCODE": 'BRK', "ADDR": 'IMM', "CYCLES": 7 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ZP0', "CYCLES": 3 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PHP":{ "OPCODE": 'PHP', "ADDR": 'IMP', "CYCLES": 3 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'IMM', "CYCLES": 2 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ABS', "CYCLES": 4 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# "BPL":{ "OPCODE": 'BPL', "ADDR": 'REL', "CYCLES": 2 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ZPX', "CYCLES": 4 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "CLC":{ "OPCODE": 'CLC', "ADDR": 'IMP', "CYCLES": 2 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ABX', "CYCLES": 4 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# "JSR":{ "OPCODE": 'JSR', "ADDR": 'ABS', "CYCLES": 6 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "BIT":{ "OPCODE": 'BIT', "ADDR": 'ZP0', "CYCLES": 3 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ZP0', "CYCLES": 3 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PLP":{ "OPCODE": 'PLP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IMM', "CYCLES": 2 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "BIT":{ "OPCODE": 'BIT', "ADDR": 'ABS', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABS', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# "BMI":{ "OPCODE": 'BMI', "ADDR": 'REL', "CYCLES": 2 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ZPX', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SEC":{ "OPCODE": 'SEC', "ADDR": 'IMP', "CYCLES": 2 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABX', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# "RTI":{ "OPCODE": 'RTI', "ADDR": 'IMP', "CYCLES": 6 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ZP0', "CYCLES": 3 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PHA":{ "OPCODE": 'PHA', "ADDR": 'IMP', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IMM', "CYCLES": 2 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "JMP":{ "OPCODE": 'JMP', "ADDR": 'ABS', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABS', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# "BVC":{ "OPCODE": 'BVC', "ADDR": 'REL', "CYCLES": 2 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ZPX', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "CLI":{ "OPCODE": 'CLI', "ADDR": 'IMP', "CYCLES": 2 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABX', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# "RTS":{ "OPCODE": 'RTS', "ADDR": 'IMP', "CYCLES": 6 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ZP0', "CYCLES": 3 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PLA":{ "OPCODE": 'PLA', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IMM', "CYCLES": 2 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "JMP":{ "OPCODE": 'JMP', "ADDR": 'IND', "CYCLES": 5 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABS', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# "BVS":{ "OPCODE": 'BVS', "ADDR": 'REL', "CYCLES": 2 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ZPX', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SEI":{ "OPCODE": 'SEI', "ADDR": 'IMP', "CYCLES": 2 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABX', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ZP0', "CYCLES": 3 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ZP0', "CYCLES": 3 }, "STX":{ "OPCODE": 'STX', "ADDR": 'ZP0', "CYCLES": 3 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 3 }, "DEY":{ "OPCODE": 'DEY', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "TXA":{ "OPCODE": 'TXA', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ABS', "CYCLES": 4 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABS', "CYCLES": 4 }, "STX":{ "OPCODE": 'STX', "ADDR": 'ABS', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
# "BCC":{ "OPCODE": 'BCC', "ADDR": 'REL', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'IZY', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ZPX', "CYCLES": 4 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ZPX', "CYCLES": 4 }, "STX":{ "OPCODE": 'STX', "ADDR": 'ZPY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "TYA":{ "OPCODE": 'TYA', "ADDR": 'IMP', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABY', "CYCLES": 5 }, "TXS":{ "OPCODE": 'TXS', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 5 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABX', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 },
# "LDY":{ "OPCODE": 'LDY', "ADDR": 'IMM', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IZX', "CYCLES": 6 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'IMM', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ZP0', "CYCLES": 3 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ZP0', "CYCLES": 3 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ZP0', "CYCLES": 3 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 3 }, "TAY":{ "OPCODE": 'TAY', "ADDR": 'IMP', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IMM', "CYCLES": 2 }, "TAX":{ "OPCODE": 'TAX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ABS', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABS', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ABS', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
# "BCS":{ "OPCODE": 'BCS', "ADDR": 'REL', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ZPX', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ZPX', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ZPY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "CLV":{ "OPCODE": 'CLV', "ADDR": 'IMP', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABY', "CYCLES": 4 }, "TSX":{ "OPCODE": 'TSX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ABX', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABX', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
# "CPY":{ "OPCODE": 'CPY', "ADDR": 'IMM', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "CPY":{ "OPCODE": 'CPY', "ADDR": 'ZP0', "CYCLES": 3 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ZP0', "CYCLES": 3 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "INY":{ "OPCODE": 'INY', "ADDR": 'IMP', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IMM', "CYCLES": 2 }, "DEX":{ "OPCODE": 'DEX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "CPY":{ "OPCODE": 'CPY', "ADDR": 'ABS', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABS', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# "BNE":{ "OPCODE": 'BNE', "ADDR": 'REL', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ZPX', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "CLD":{ "OPCODE": 'CLD', "ADDR": 'IMP', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABY', "CYCLES": 4 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABX', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# "CPX":{ "OPCODE": 'CPX', "ADDR": 'IMM', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "CPX":{ "OPCODE": 'CPX', "ADDR": 'ZP0', "CYCLES": 3 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ZP0', "CYCLES": 3 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "INX":{ "OPCODE": 'INX', "ADDR": 'IMP', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IMM', "CYCLES": 2 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'SBC', "ADDR": 'IMP', "CYCLES": 2 }, "CPX":{ "OPCODE": 'CPX', "ADDR": 'ABS', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABS', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# "BEQ":{ "OPCODE": 'BEQ', "ADDR": 'REL', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ZPX', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SED":{ "OPCODE": 'SED', "ADDR": 'IMP', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABY', "CYCLES": 4 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABX', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# }
# lookup = {
# 0x00:{ "OPCODE": 'BRK', "ADDR": 'IMM', "CYCLES": 7 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ZP0', "CYCLES": 3 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PHP":{ "OPCODE": 'PHP', "ADDR": 'IMP', "CYCLES": 3 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'IMM', "CYCLES": 2 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ABS', "CYCLES": 4 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# 0x10:{ "OPCODE": 'BPL', "ADDR": 'REL', "CYCLES": 2 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ZPX', "CYCLES": 4 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "CLC":{ "OPCODE": 'CLC', "ADDR": 'IMP', "CYCLES": 2 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ORA":{ "OPCODE": 'ORA', "ADDR": 'ABX', "CYCLES": 4 }, "ASL":{ "OPCODE": 'ASL', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# 0x20:{ "OPCODE": 'JSR', "ADDR": 'ABS', "CYCLES": 6 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "BIT":{ "OPCODE": 'BIT', "ADDR": 'ZP0', "CYCLES": 3 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ZP0', "CYCLES": 3 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PLP":{ "OPCODE": 'PLP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IMM', "CYCLES": 2 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "BIT":{ "OPCODE": 'BIT', "ADDR": 'ABS', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABS', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# 0x30:{ "OPCODE": 'BMI', "ADDR": 'REL', "CYCLES": 2 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ZPX', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SEC":{ "OPCODE": 'SEC', "ADDR": 'IMP', "CYCLES": 2 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABX', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# 0x40:{ "OPCODE": 'RTI', "ADDR": 'IMP', "CYCLES": 6 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ZP0', "CYCLES": 3 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PHA":{ "OPCODE": 'PHA', "ADDR": 'IMP', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IMM', "CYCLES": 2 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "JMP":{ "OPCODE": 'JMP', "ADDR": 'ABS', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABS', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# 0x50:{ "OPCODE": 'BVC', "ADDR": 'REL', "CYCLES": 2 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ZPX', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "CLI":{ "OPCODE": 'CLI', "ADDR": 'IMP', "CYCLES": 2 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABX', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# 0x60:{ "OPCODE": 'RTS', "ADDR": 'IMP', "CYCLES": 6 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ZP0', "CYCLES": 3 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PLA":{ "OPCODE": 'PLA', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IMM', "CYCLES": 2 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "JMP":{ "OPCODE": 'JMP', "ADDR": 'IND', "CYCLES": 5 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABS', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# 0x70:{ "OPCODE": 'BVS', "ADDR": 'REL', "CYCLES": 2 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ZPX', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SEI":{ "OPCODE": 'SEI', "ADDR": 'IMP', "CYCLES": 2 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABX', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# 0x80:{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ZP0', "CYCLES": 3 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ZP0', "CYCLES": 3 }, "STX":{ "OPCODE": 'STX', "ADDR": 'ZP0', "CYCLES": 3 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 3 }, "DEY":{ "OPCODE": 'DEY', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "TXA":{ "OPCODE": 'TXA', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ABS', "CYCLES": 4 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABS', "CYCLES": 4 }, "STX":{ "OPCODE": 'STX', "ADDR": 'ABS', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
# 0x90:{ "OPCODE": 'BCC', "ADDR": 'REL', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'IZY', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ZPX', "CYCLES": 4 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ZPX', "CYCLES": 4 }, "STX":{ "OPCODE": 'STX', "ADDR": 'ZPY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "TYA":{ "OPCODE": 'TYA', "ADDR": 'IMP', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABY', "CYCLES": 5 }, "TXS":{ "OPCODE": 'TXS', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 5 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABX', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 },
# 0xA0:{ "OPCODE": 'LDY', "ADDR": 'IMM', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IZX', "CYCLES": 6 }, 0xA2:{ "OPCODE": 'LDX', "ADDR": 'IMM', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ZP0', "CYCLES": 3 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ZP0', "CYCLES": 3 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ZP0', "CYCLES": 3 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 3 }, "TAY":{ "OPCODE": 'TAY', "ADDR": 'IMP', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IMM', "CYCLES": 2 }, "TAX":{ "OPCODE": 'TAX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ABS', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABS', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ABS', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
# 0xB0:{ "OPCODE": 'BCS', "ADDR": 'REL', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ZPX', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ZPX', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ZPY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "CLV":{ "OPCODE": 'CLV', "ADDR": 'IMP', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABY', "CYCLES": 4 }, "TSX":{ "OPCODE": 'TSX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ABX', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABX', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
# 0XC0:{ "OPCODE": 'CPY', "ADDR": 'IMM', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "CPY":{ "OPCODE": 'CPY', "ADDR": 'ZP0', "CYCLES": 3 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ZP0', "CYCLES": 3 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "INY":{ "OPCODE": 'INY', "ADDR": 'IMP', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IMM', "CYCLES": 2 }, "DEX":{ "OPCODE": 'DEX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "CPY":{ "OPCODE": 'CPY', "ADDR": 'ABS', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABS', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# 0XD0:{ "OPCODE": 'BNE', "ADDR": 'REL', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ZPX', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "CLD":{ "OPCODE": 'CLD', "ADDR": 'IMP', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABY', "CYCLES": 4 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABX', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# 0XE0:{ "OPCODE": 'CPX', "ADDR": 'IMM', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "CPX":{ "OPCODE": 'CPX', "ADDR": 'ZP0', "CYCLES": 3 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ZP0', "CYCLES": 3 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "INX":{ "OPCODE": 'INX', "ADDR": 'IMP', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IMM', "CYCLES": 2 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'SBC', "ADDR": 'IMP', "CYCLES": 2 }, "CPX":{ "OPCODE": 'CPX', "ADDR": 'ABS', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABS', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
# 0XF0:{ "OPCODE": 'BEQ', "ADDR": 'REL', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ZPX', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SED":{ "OPCODE": 'SED', "ADDR": 'IMP', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABY', "CYCLES": 4 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABX', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
# }
lookup = {
0x00:{ "OPCODE": 'BRK', "ADDR": 'IMM', "CYCLES": 7 }, 0x01:{ "OPCODE": 'ORA', "ADDR": 'IZX', "CYCLES": 6 }, 0x02:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, 0x03:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, 0x04:{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, 0x05:{ "OPCODE": 'ORA', "ADDR": 'ZP0', "CYCLES": 3 }, 0x06:{ "OPCODE": 'ASL', "ADDR": 'ZP0', "CYCLES": 5 }, 0x07:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, 0x08:{ "OPCODE": 'PHP', "ADDR": 'IMP', "CYCLES": 3 }, 0x09:{ "OPCODE": 'ORA', "ADDR": 'IMM', "CYCLES": 2 }, 0x0A:{ "OPCODE": 'ASL', "ADDR": 'IMP', "CYCLES": 2 }, 0x0B:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, 0x0C:{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, 0x0D:{ "OPCODE": 'ORA', "ADDR": 'ABS', "CYCLES": 4 }, 0x0E:{ "OPCODE": 'ASL', "ADDR": 'ABS', "CYCLES": 6 }, 0x0F:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
0x10:{ "OPCODE": 'BPL', "ADDR": 'REL', "CYCLES": 2 }, 0x11:{ "OPCODE": 'ORA', "ADDR": 'IZY', "CYCLES": 5 }, 0x12:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, 0x013:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, 0x14:{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, 0x15:{ "OPCODE": 'ORA', "ADDR": 'ZPX', "CYCLES": 4 }, 0x16:{ "OPCODE": 'ASL', "ADDR": 'ZPX', "CYCLES": 6 }, 0x17:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, 0x18:{ "OPCODE": 'CLC', "ADDR": 'IMP', "CYCLES": 2 }, 0x19:{ "OPCODE": 'ORA', "ADDR": 'ABY', "CYCLES": 4 }, 0x1A:{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, 0x1B:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, 0x1C:{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, 0x1D:{ "OPCODE": 'ORA', "ADDR": 'ABX', "CYCLES": 4 }, 0x1E:{ "OPCODE": 'ASL', "ADDR": 'ABX', "CYCLES": 7 }, 0x1F:{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
0x20:{ "OPCODE": 'JSR', "ADDR": 'ABS', "CYCLES": 6 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "BIT":{ "OPCODE": 'BIT', "ADDR": 'ZP0', "CYCLES": 3 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ZP0', "CYCLES": 3 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PLP":{ "OPCODE": 'PLP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IMM', "CYCLES": 2 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "BIT":{ "OPCODE": 'BIT', "ADDR": 'ABS', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABS', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
0x30:{ "OPCODE": 'BMI', "ADDR": 'REL', "CYCLES": 2 }, "AND":{ "OPCODE": 'AND', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ZPX', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SEC":{ "OPCODE": 'SEC', "ADDR": 'IMP', "CYCLES": 2 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "AND":{ "OPCODE": 'AND', "ADDR": 'ABX', "CYCLES": 4 }, "ROL":{ "OPCODE": 'ROL', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
0x40:{ "OPCODE": 'RTI', "ADDR": 'IMP', "CYCLES": 6 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ZP0', "CYCLES": 3 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PHA":{ "OPCODE": 'PHA', "ADDR": 'IMP', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IMM', "CYCLES": 2 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "JMP":{ "OPCODE": 'JMP', "ADDR": 'ABS', "CYCLES": 3 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABS', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
0x50:{ "OPCODE": 'BVC', "ADDR": 'REL', "CYCLES": 2 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ZPX', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "CLI":{ "OPCODE": 'CLI', "ADDR": 'IMP', "CYCLES": 2 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "EOR":{ "OPCODE": 'EOR', "ADDR": 'ABX', "CYCLES": 4 }, "LSR":{ "OPCODE": 'LSR', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
0x60:{ "OPCODE": 'RTS', "ADDR": 'IMP', "CYCLES": 6 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 3 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ZP0', "CYCLES": 3 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "PLA":{ "OPCODE": 'PLA', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IMM', "CYCLES": 2 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "JMP":{ "OPCODE": 'JMP', "ADDR": 'IND', "CYCLES": 5 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABS', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
0x70:{ "OPCODE": 'BVS', "ADDR": 'REL', "CYCLES": 2 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ZPX', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SEI":{ "OPCODE": 'SEI', "ADDR": 'IMP', "CYCLES": 2 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "ADC":{ "OPCODE": 'ADC', "ADDR": 'ABX', "CYCLES": 4 }, "ROR":{ "OPCODE": 'ROR', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
0x80:{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ZP0', "CYCLES": 3 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ZP0', "CYCLES": 3 }, "STX":{ "OPCODE": 'STX', "ADDR": 'ZP0', "CYCLES": 3 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 3 }, "DEY":{ "OPCODE": 'DEY', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "TXA":{ "OPCODE": 'TXA', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ABS', "CYCLES": 4 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABS', "CYCLES": 4 }, 0x8E:{ "OPCODE": 'STX', "ADDR": 'ABS', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
0x90:{ "OPCODE": 'BCC', "ADDR": 'REL', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'IZY', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "STY":{ "OPCODE": 'STY', "ADDR": 'ZPX', "CYCLES": 4 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ZPX', "CYCLES": 4 }, "STX":{ "OPCODE": 'STX', "ADDR": 'ZPY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "TYA":{ "OPCODE": 'TYA', "ADDR": 'IMP', "CYCLES": 2 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABY', "CYCLES": 5 }, "TXS":{ "OPCODE": 'TXS', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 5 }, "STA":{ "OPCODE": 'STA', "ADDR": 'ABX', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 },
0xA0:{ "OPCODE": 'LDY', "ADDR": 'IMM', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IZX', "CYCLES": 6 }, 0xA2:{ "OPCODE": 'LDX', "ADDR": 'IMM', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ZP0', "CYCLES": 3 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ZP0', "CYCLES": 3 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ZP0', "CYCLES": 3 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 3 }, "TAY":{ "OPCODE": 'TAY', "ADDR": 'IMP', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IMM', "CYCLES": 2 }, "TAX":{ "OPCODE": 'TAX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ABS', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABS', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ABS', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
0xB0:{ "OPCODE": 'BCS', "ADDR": 'REL', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ZPX', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ZPX', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ZPY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "CLV":{ "OPCODE": 'CLV', "ADDR": 'IMP', "CYCLES": 2 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABY', "CYCLES": 4 }, "TSX":{ "OPCODE": 'TSX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 }, "LDY":{ "OPCODE": 'LDY', "ADDR": 'ABX', "CYCLES": 4 }, "LDA":{ "OPCODE": 'LDA', "ADDR": 'ABX', "CYCLES": 4 }, "LDX":{ "OPCODE": 'LDX', "ADDR": 'ABY', "CYCLES": 4 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 4 },
0XC0:{ "OPCODE": 'CPY', "ADDR": 'IMM', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "CPY":{ "OPCODE": 'CPY', "ADDR": 'ZP0', "CYCLES": 3 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ZP0', "CYCLES": 3 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "INY":{ "OPCODE": 'INY', "ADDR": 'IMP', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IMM', "CYCLES": 2 }, "DEX":{ "OPCODE": 'DEX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "CPY":{ "OPCODE": 'CPY', "ADDR": 'ABS', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABS', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
0XD0:{ "OPCODE": 'BNE', "ADDR": 'REL', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ZPX', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "CLD":{ "OPCODE": 'CLD', "ADDR": 'IMP', "CYCLES": 2 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABY', "CYCLES": 4 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "CMP":{ "OPCODE": 'CMP', "ADDR": 'ABX', "CYCLES": 4 }, "DEC":{ "OPCODE": 'DEC', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
0XE0:{ "OPCODE": 'CPX', "ADDR": 'IMM', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IZX', "CYCLES": 6 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "CPX":{ "OPCODE": 'CPX', "ADDR": 'ZP0', "CYCLES": 3 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ZP0', "CYCLES": 3 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ZP0', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 5 }, "INX":{ "OPCODE": 'INX', "ADDR": 'IMP', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IMM', "CYCLES": 2 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'SBC', "ADDR": 'IMP', "CYCLES": 2 }, "CPX":{ "OPCODE": 'CPX', "ADDR": 'ABS', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABS', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ABS', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 },
0XF0:{ "OPCODE": 'BEQ', "ADDR": 'REL', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'IZY', "CYCLES": 5 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 8 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ZPX', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ZPX', "CYCLES": 6 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 6 }, "SED":{ "OPCODE": 'SED', "ADDR": 'IMP', "CYCLES": 2 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABY', "CYCLES": 4 }, "NOP":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 2 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 }, "???":{ "OPCODE": 'NOP', "ADDR": 'IMP', "CYCLES": 4 }, "SBC":{ "OPCODE": 'SBC', "ADDR": 'ABX', "CYCLES": 4 }, "INC":{ "OPCODE": 'INC', "ADDR": 'ABX', "CYCLES": 7 }, "???":{ "OPCODE": 'XXX', "ADDR": 'IMP', "CYCLES": 7 },
}
print(lookup[162]['CYCLES'])