@@ -11,35 +11,35 @@ const tZ80Opcode Z80Opcodes[] = {
11
11
{ L" ld" , 1 , 0x40 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_REG8_MEMHL, 3 , 0 , Z80_LOAD_REG8_REG8 },
12
12
{ L" ld" , 1 , 0x02 , Z80_PARAM_MEMBC_MEMDE, Z80_PARAM_A, 4 , -1 , 0 },
13
13
{ L" ld" , 1 , 0x0A , Z80_PARAM_A, Z80_PARAM_MEMBC_MEMDE, -1 , 4 , 0 },
14
- { L" ld" , 1 , 0x22 , Z80_PARAM_HLI_HLD, Z80_PARAM_A, 4 , -1 , 0 },
15
- { L" ld" , 1 , 0x2A , Z80_PARAM_A, Z80_PARAM_HLI_HLD, -1 , 4 , 0 },
16
- { L" ld" , 1 , 0xE2 , Z80_PARAM_FF00_C, Z80_PARAM_A, -1 , -1 , 0 },
17
- { L" ld" , 1 , 0xF2 , Z80_PARAM_A, Z80_PARAM_FF00_C, -1 , -1 , 0 },
14
+ { L" ld" , 1 , 0x22 , Z80_PARAM_HLI_HLD, Z80_PARAM_A, 4 , -1 , Z80_GAMEBOY },
15
+ { L" ld" , 1 , 0x2A , Z80_PARAM_A, Z80_PARAM_HLI_HLD, -1 , 4 , Z80_GAMEBOY },
16
+ { L" ld" , 1 , 0xE2 , Z80_PARAM_FF00_C, Z80_PARAM_A, -1 , -1 , Z80_GAMEBOY },
17
+ { L" ld" , 1 , 0xF2 , Z80_PARAM_A, Z80_PARAM_FF00_C, -1 , -1 , Z80_GAMEBOY },
18
18
{ L" ld" , 1 , 0xF9 , Z80_PARAM_SP, Z80_PARAM_HL, -1 , -1 , 0 },
19
- { L" ld" , 2 , 0xF8 , Z80_PARAM_HL, Z80_PARAM_SP_IMM, -1 , -1 , Z80_IMMEDIATE_S8 },
20
- { L" ld" , 3 , 0xFA , Z80_PARAM_A, Z80_PARAM_MEMIMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U16 },
19
+ { L" ld" , 2 , 0xF8 , Z80_PARAM_HL, Z80_PARAM_SP_IMM, -1 , -1 , Z80_IMMEDIATE_S8 | Z80_GAMEBOY },
20
+ { L" ld" , 3 , 0xFA , Z80_PARAM_A, Z80_PARAM_MEMIMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_GAMEBOY },
21
21
{ L" ld" , 2 , 0x06 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_IMMEDIATE, 3 , -1 , Z80_IMMEDIATE_U8 },
22
22
{ L" ld" , 3 , 0x01 , Z80_PARAM_REG16_SP, Z80_PARAM_IMMEDIATE, 4 , -1 , Z80_IMMEDIATE_U16 },
23
- { L" ld" , 3 , 0x08 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_SP, -1 , -1 , Z80_IMMEDIATE_U16 },
24
- { L" ld" , 3 , 0xEA , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_A, -1 , -1 , Z80_IMMEDIATE_U16 },
25
- { L" ldi" , 1 , 0x22 , Z80_PARAM_MEMHL, Z80_PARAM_A, -1 , -1 , 0 },
26
- { L" ldi" , 1 , 0x2A , Z80_PARAM_A, Z80_PARAM_MEMHL, -1 , -1 , 0 },
27
- { L" ldd" , 1 , 0x32 , Z80_PARAM_MEMHL, Z80_PARAM_A, -1 , -1 , 0 },
28
- { L" ldd" , 1 , 0x3A , Z80_PARAM_A, Z80_PARAM_MEMHL, -1 , -1 , 0 },
29
- { L" ldh" , 2 , 0xE0 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_A, -1 , -1 , Z80_IMMEDIATE_U8 },
30
- { L" ldh" , 2 , 0xF0 , Z80_PARAM_A, Z80_PARAM_MEMIMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 },
31
- { L" ldhl" , 2 , 0xF8 , Z80_PARAM_SP, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_S8 },
23
+ { L" ld" , 3 , 0x08 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_SP, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_GAMEBOY },
24
+ { L" ld" , 3 , 0xEA , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_A, -1 , -1 , Z80_IMMEDIATE_U16 | Z80_GAMEBOY },
25
+ { L" ldi" , 1 , 0x22 , Z80_PARAM_MEMHL, Z80_PARAM_A, -1 , -1 , Z80_GAMEBOY },
26
+ { L" ldi" , 1 , 0x2A , Z80_PARAM_A, Z80_PARAM_MEMHL, -1 , -1 , Z80_GAMEBOY },
27
+ { L" ldd" , 1 , 0x32 , Z80_PARAM_MEMHL, Z80_PARAM_A, -1 , -1 , Z80_GAMEBOY },
28
+ { L" ldd" , 1 , 0x3A , Z80_PARAM_A, Z80_PARAM_MEMHL, -1 , -1 , Z80_GAMEBOY },
29
+ { L" ldh" , 2 , 0xE0 , Z80_PARAM_MEMIMMEDIATE, Z80_PARAM_A, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_GAMEBOY },
30
+ { L" ldh" , 2 , 0xF0 , Z80_PARAM_A, Z80_PARAM_MEMIMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_GAMEBOY },
31
+ { L" ldhl" , 2 , 0xF8 , Z80_PARAM_SP, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_S8 | Z80_GAMEBOY },
32
32
{ L" push" , 1 , 0xC5 , Z80_PARAM_REG16_AF, Z80_PARAM_NONE, 4 , -1 , 0 },
33
33
{ L" pop" , 1 , 0xC1 , Z80_PARAM_REG16_AF, Z80_PARAM_NONE, 4 , -1 , 0 },
34
34
{ L" add" , 1 , 0x09 , Z80_PARAM_HL, Z80_PARAM_REG16_SP, -1 , 4 , 0 },
35
35
{ L" add" , 1 , 0x80 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
36
36
{ L" add" , 2 , 0xC6 , Z80_PARAM_A, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_ADD_SUB_IMMEDIATE },
37
- { L" add" , 2 , 0xE8 , Z80_PARAM_SP, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_S8 },
37
+ { L" add" , 2 , 0xE8 , Z80_PARAM_SP, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_S8 | Z80_GAMEBOY },
38
38
{ L" adc" , 1 , 0x88 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
39
39
{ L" adc" , 2 , 0xCE , Z80_PARAM_A, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_ADD_SUB_IMMEDIATE },
40
40
{ L" sub" , 1 , 0x90 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
41
41
{ L" sub" , 2 , 0xD6 , Z80_PARAM_A, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_ADD_SUB_IMMEDIATE },
42
- { L" sub" , 2 , 0xE8 , Z80_PARAM_SP, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_S8 | Z80_NEGATE_IMM },
42
+ { L" sub" , 2 , 0xE8 , Z80_PARAM_SP, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_S8 | Z80_NEGATE_IMM | Z80_GAMEBOY },
43
43
{ L" sbc" , 1 , 0x98 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
44
44
{ L" sbc" , 2 , 0xDE , Z80_PARAM_A, Z80_PARAM_IMMEDIATE, -1 , -1 , Z80_IMMEDIATE_U8 | Z80_ADD_SUB_IMMEDIATE },
45
45
{ L" and" , 1 , 0xA0 , Z80_PARAM_A, Z80_PARAM_REG8_MEMHL, -1 , 0 , 0 },
@@ -66,15 +66,15 @@ const tZ80Opcode Z80Opcodes[] = {
66
66
{ L" rr" , 2 , 0x18 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_NONE, 0 , -1 , Z80_PREFIX_CB },
67
67
{ L" sla" , 2 , 0x20 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_NONE, 0 , -1 , Z80_PREFIX_CB },
68
68
{ L" sra" , 2 , 0x28 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_NONE, 0 , -1 , Z80_PREFIX_CB },
69
- { L" swap" , 2 , 0x30 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_NONE, 0 , -1 , Z80_PREFIX_CB },
69
+ { L" swap" , 2 , 0x30 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_NONE, 0 , -1 , Z80_PREFIX_CB | Z80_GAMEBOY },
70
70
{ L" srl" , 2 , 0x38 , Z80_PARAM_REG8_MEMHL, Z80_PARAM_NONE, 0 , -1 , Z80_PREFIX_CB },
71
71
{ L" bit" , 2 , 0x40 , Z80_PARAM_IMMEDIATE, Z80_PARAM_REG8_MEMHL, 3 , 0 , Z80_PREFIX_CB | Z80_IMMEDIATE_U3 },
72
72
{ L" res" , 2 , 0x80 , Z80_PARAM_IMMEDIATE, Z80_PARAM_REG8_MEMHL, 3 , 0 , Z80_PREFIX_CB | Z80_IMMEDIATE_U3 },
73
73
{ L" set" , 2 , 0xC0 , Z80_PARAM_IMMEDIATE, Z80_PARAM_REG8_MEMHL, 3 , 0 , Z80_PREFIX_CB | Z80_IMMEDIATE_U3 },
74
74
{ L" ccf" , 1 , 0x3F , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
75
75
{ L" scf" , 1 , 0x37 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
76
76
{ L" halt" , 1 , 0x76 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
77
- { L" stop" , 2 , 0x10 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_STOP },
77
+ { L" stop" , 2 , 0x10 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_STOP | Z80_GAMEBOY },
78
78
{ L" di" , 1 , 0xF3 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
79
79
{ L" ei" , 1 , 0xFB , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
80
80
{ L" jp" , 3 , 0xC2 , Z80_PARAM_CONDITION, Z80_PARAM_IMMEDIATE, 3 , -1 , Z80_IMMEDIATE_U16 },
@@ -86,7 +86,7 @@ const tZ80Opcode Z80Opcodes[] = {
86
86
{ L" call" , 3 , 0xCD , Z80_PARAM_IMMEDIATE, Z80_PARAM_NONE, -1 , -1 , Z80_IMMEDIATE_U16 },
87
87
{ L" ret" , 1 , 0xC0 , Z80_PARAM_CONDITION, Z80_PARAM_NONE, 3 , -1 , 0 },
88
88
{ L" ret" , 1 , 0xC9 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
89
- { L" reti" , 1 , 0xD9 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
89
+ { L" reti" , 1 , 0xD9 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , Z80_GAMEBOY },
90
90
{ L" rst" , 1 , 0xC7 , Z80_PARAM_IMMEDIATE, Z80_PARAM_NONE, 0 , -1 , Z80_RST },
91
91
{ nullptr , 0 , 0x00 , Z80_PARAM_NONE, Z80_PARAM_NONE, -1 , -1 , 0 },
92
92
};
0 commit comments