@@ -14,12 +14,20 @@ const tZ80Opcode Z80Opcodes[] = {
14
14
{ L" ld" , 1 , 0x22 , Z80_PARAM_HLI_HLD, Z80_PARAM_A, 4 , -1 , Z80_GAMEBOY },
15
15
{ L" ld" , 1 , 0x2A , Z80_PARAM_A, Z80_PARAM_HLI_HLD, -1 , 4 , Z80_GAMEBOY },
16
16
{ L" ld" , 1 , 0xE2 , Z80_PARAM_FF00_C, Z80_PARAM_A, -1 , -1 , Z80_GAMEBOY },
17
+ { L" ld" , 2 , 0x57 , Z80_PARAM_A, Z80_PARAM_IR, -1 , 3 , Z80_Z80 | Z80_PREFIX_ED },
17
18
{ L" ld" , 1 , 0xF2 , Z80_PARAM_A, Z80_PARAM_FF00_C, -1 , -1 , Z80_GAMEBOY },
18
19
{ L" ld" , 1 , 0xF9 , Z80_PARAM_SP, Z80_PARAM_HL, -1 , -1 , 0 },
19
20
{ L" ld" , 2 , 0xF8 , Z80_PARAM_HL, Z80_PARAM_SP_IMM, -1 , -1 , Z80_IMMEDIATE_S8 | Z80_GAMEBOY },
21
+ { L" ld" , 3 , 0x2A , Z80_PARAM_HL, Z80_PARAM_MEMIMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_Z80 },
22
+ { L" ld" , 4 , 0x4B , Z80_PARAM_REG16_SP, Z80_PARAM_MEMIMMEDIATE, 4 , -1 , Z80_IMMEDIATE_U16 | Z80_Z80 | Z80_PREFIX_ED },
23
+ { L" ld" , 3 , 0x3A , Z80_PARAM_A, Z80_PARAM_MEMIMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_Z80 },
20
24
{ L" ld" , 3 , 0xFA , Z80_PARAM_A, Z80_PARAM_MEMIMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_GAMEBOY },
21
25
{ L" ld" , 2 , 0x06 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_IMMEDIATE, 3 , -1 , Z80_IMMEDIATE_U8 },
22
26
{ L" ld" , 3 , 0x01 , Z80_PARAM_REG16_SP, Z80_PARAM_IMMEDIATE, 4 , -1 , Z80_IMMEDIATE_U16 },
27
+ { L" ld" , 2 , 0x47 , Z80_PARAM_IR, Z80_PARAM_A, 3 , -1 , Z80_Z80 | Z80_PREFIX_ED },
28
+ { L" ld" , 3 , 0x22 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_HL, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_Z80 },
29
+ { L" ld" , 4 , 0x43 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_REG16_SP, -1 , 4 , Z80_IMMEDIATE_U16 | Z80_Z80 | Z80_PREFIX_ED },
30
+ { L" ld" , 3 , 0x32 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_A, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_Z80 },
23
31
{ L" ld" , 3 , 0x08 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_SP, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_GAMEBOY },
24
32
{ L" ld" , 3 , 0xEA , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_A, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_GAMEBOY },
25
33
{ L" ldi" , 1 , 0x22 , Z80_PARAM_MEMHL, Z80_PARAM_A, -1 , -1 , Z80_GAMEBOY },
@@ -37,11 +45,13 @@ const tZ80Opcode Z80Opcodes[] = {
37
45
{ L" add" , 2 , 0xE8 , Z80_PARAM_SP, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_S8 | Z80_GAMEBOY },
38
46
{ L" adc" , 1 , 0x88 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
39
47
{ L" adc" , 2 , 0xCE , Z80_PARAM_A, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_ADD_SUB_IMMEDIATE },
48
+ { L" adc" , 2 , 0x4A , Z80_PARAM_HL, Z80_PARAM_REG16_SP, -1 , 4 , Z80_Z80 | Z80_PREFIX_ED },
40
49
{ L" sub" , 1 , 0x90 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
41
50
{ L" sub" , 2 , 0xD6 , Z80_PARAM_A, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_ADD_SUB_IMMEDIATE },
42
51
{ L" sub" , 2 , 0xE8 , Z80_PARAM_SP, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_S8 | Z80_NEGATE_IMM | Z80_GAMEBOY },
43
52
{ L" sbc" , 1 , 0x98 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
44
53
{ L" sbc" , 2 , 0xDE , Z80_PARAM_A, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_ADD_SUB_IMMEDIATE },
54
+ { L" sbc" , 2 , 0x42 , Z80_PARAM_HL, Z80_PARAM_REG16_SP, -1 , 4 , Z80_Z80 | Z80_PREFIX_ED },
45
55
{ L" and" , 1 , 0xA0 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
46
56
{ L" and" , 2 , 0xE6 , Z80_PARAM_A, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 },
47
57
{ L" xor" , 1 , 0xA8 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
@@ -88,5 +98,35 @@ const tZ80Opcode Z80Opcodes[] = {
88
98
{ L" ret" , 1 , 0xC9 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
89
99
{ L" reti" , 1 , 0xD9 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_GAMEBOY },
90
100
{ L" rst" , 1 , 0xC7 , Z80_PARAM_IMMEDIATE, Z80_PARAM_NONE, 0 , -1 , Z80_RST },
101
+ { L" ex" , 1 , 0x08 , Z80_PARAM_AF, Z80_PARAM_AF_PRIME, -1 , -1 , Z80_Z80 },
102
+ { L" ex" , 1 , 0xE3 , Z80_PARAM_MEMSP, Z80_PARAM_HL, -1 , -1 , Z80_Z80 },
103
+ { L" ex" , 1 , 0xEB , Z80_PARAM_DE, Z80_PARAM_HL, -1 , -1 , Z80_Z80 },
104
+ { L" exx" , 1 , 0xD9 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 },
105
+ { L" djnz" , 2 , 0x10 , Z80_PARAM_IMMEDIATE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_IMMEDIATE_S8 | Z80_JUMP_RELATIVE },
106
+ { L" out" , 2 , 0x41 , Z80_PARAM_MEMC, Z80_PARAM_REG8, -1 , 3 , Z80_Z80 | Z80_PREFIX_ED },
107
+ { L" out" , 2 , 0xD3 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_A, -1 , -1 , Z80_Z80 | Z80_IMMEDIATE_U8 },
108
+ { L" in" , 2 , 0x40 , Z80_PARAM_REG8, Z80_PARAM_MEMC, 3 , -1 , Z80_Z80 | Z80_PREFIX_ED },
109
+ { L" in" , 2 , 0xDB , Z80_PARAM_A, Z80_PARAM_MEMIMMEDIATE, -1 , -1 , Z80_Z80 | Z80_IMMEDIATE_U8 },
110
+ { L" neg" , 2 , 0x44 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
111
+ { L" retn" , 2 , 0x45 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
112
+ { L" im" , 2 , 0x46 , Z80_PARAM_IMMEDIATE, Z80_PARAM_NONE, 3 , -1 , Z80_Z80 | Z80_PREFIX_ED | Z80_INTERRUPT_MODE },
113
+ { L" rrd" , 2 , 0x67 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
114
+ { L" rld" , 2 , 0x6F , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
115
+ { L" ldi" , 2 , 0xA0 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
116
+ { L" cpi" , 2 , 0xA1 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
117
+ { L" ini" , 2 , 0xA2 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
118
+ { L" outi" , 2 , 0xA3 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
119
+ { L" ldd" , 2 , 0xA8 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
120
+ { L" cpd" , 2 , 0xA9 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
121
+ { L" ind" , 2 , 0xAA , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
122
+ { L" outd" , 2 , 0xAB , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
123
+ { L" ldir" , 2 , 0xB0 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
124
+ { L" cpir" , 2 , 0xB1 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
125
+ { L" inir" , 2 , 0xB2 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
126
+ { L" otir" , 2 , 0xB3 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
127
+ { L" lddr" , 2 , 0xB8 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
128
+ { L" cpdr" , 2 , 0xB9 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
129
+ { L" indr" , 2 , 0xBA , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
130
+ { L" otdr" , 2 , 0xBB , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_Z80 | Z80_PREFIX_ED },
91
131
{ nullptr , 0 , 0x00 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
92
132
};
0 commit comments