|
|
@@ -505,14 +505,8 @@ or: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xB7] |
|
|
|
- cond: [b] |
|
|
|
return: [0xB0] |
|
|
|
- cond: [c] |
|
|
|
return: [0xB1] |
|
|
|
- cond: [d] |
|
|
|
return: [0xB2] |
|
|
|
- cond: [e] |
|
|
|
return: [0xB3] |
|
|
|
- cond: [b|c|d|e] |
|
|
|
return: [step(0xB0)] |
|
|
|
- cond: [h|ih] |
|
|
|
return: [0xB4] |
|
|
|
- cond: [l|il] |
|
|
@@ -543,18 +537,8 @@ out: |
|
|
|
return: [0xD3, u8] |
|
|
|
- cond: [reg.c, a] |
|
|
|
return: [0xED, 0x79] |
|
|
|
- cond: [reg.c, b] |
|
|
|
return: [0xED, 0x41] |
|
|
|
- cond: [reg.c, c] |
|
|
|
return: [0xED, 0x49] |
|
|
|
- cond: [reg.c, d] |
|
|
|
return: [0xED, 0x51] |
|
|
|
- cond: [reg.c, e] |
|
|
|
return: [0xED, 0x59] |
|
|
|
- cond: [reg.c, h] |
|
|
|
return: [0xED, 0x61] |
|
|
|
- cond: [reg.c, l] |
|
|
|
return: [0xED, 0x69] |
|
|
|
- cond: [reg.c, b|c|d|e|h|l] |
|
|
|
return: [0xED, step(0x41 0x08)] |
|
|
|
- type: [port, immediate] |
|
|
|
cases: |
|
|
|
- cond: [reg.c, u8.0] |
|
|
@@ -603,18 +587,8 @@ res: |
|
|
|
cases: |
|
|
|
- cond: [bit, a] |
|
|
|
return: [0xCB, bit(0x87)] |
|
|
|
- cond: [bit, b] |
|
|
|
return: [0xCB, bit(0x80)] |
|
|
|
- cond: [bit, c] |
|
|
|
return: [0xCB, bit(0x81)] |
|
|
|
- cond: [bit, d] |
|
|
|
return: [0xCB, bit(0x82)] |
|
|
|
- cond: [bit, e] |
|
|
|
return: [0xCB, bit(0x83)] |
|
|
|
- cond: [bit, h] |
|
|
|
return: [0xCB, bit(0x84)] |
|
|
|
- cond: [bit, l] |
|
|
|
return: [0xCB, bit(0x85)] |
|
|
|
- cond: [bit, b|c|d|e|h|l] |
|
|
|
return: [0xCB, bit(step(0x80))] |
|
|
|
- type: [immediate, indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [bit, _] |
|
|
@@ -623,18 +597,8 @@ res: |
|
|
|
cases: |
|
|
|
- cond: [bit, _, a] |
|
|
|
return: [0xCB, bit(0x87)] |
|
|
|
- cond: [bit, _, b] |
|
|
|
return: [0xCB, bit(0x80)] |
|
|
|
- cond: [bit, _, c] |
|
|
|
return: [0xCB, bit(0x81)] |
|
|
|
- cond: [bit, _, d] |
|
|
|
return: [0xCB, bit(0x82)] |
|
|
|
- cond: [bit, _, e] |
|
|
|
return: [0xCB, bit(0x83)] |
|
|
|
- cond: [bit, _, h] |
|
|
|
return: [0xCB, bit(0x84)] |
|
|
|
- cond: [bit, _, l] |
|
|
|
return: [0xCB, bit(0x85)] |
|
|
|
- cond: [bit, _, b|c|d|e|h|l] |
|
|
|
return: [0xCB, bit(step(0x80))] |
|
|
|
|
|
|
|
ret: |
|
|
|
args: yes |
|
|
@@ -643,22 +607,8 @@ ret: |
|
|
|
return: [0xC9] |
|
|
|
- type: [condition] |
|
|
|
cases: |
|
|
|
- cond: [nz] |
|
|
|
return: [0xC0] |
|
|
|
- cond: [z] |
|
|
|
return: [0xC8] |
|
|
|
- cond: [nc] |
|
|
|
return: [0xD0] |
|
|
|
- cond: [c] |
|
|
|
return: [0xD8] |
|
|
|
- cond: [po] |
|
|
|
return: [0xE0] |
|
|
|
- cond: [pe] |
|
|
|
return: [0xE8] |
|
|
|
- cond: [p] |
|
|
|
return: [0xF0] |
|
|
|
- cond: [m] |
|
|
|
return: [0xF8] |
|
|
|
- cond: [nz|z|nc|c|po|pe|p|m] |
|
|
|
return: [step(0xC0 0x08)] |
|
|
|
|
|
|
|
reti: |
|
|
|
args: no |
|
|
@@ -675,18 +625,8 @@ rl: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xCB, 0x17] |
|
|
|
- cond: [b] |
|
|
|
return: [0xCB, 0x10] |
|
|
|
- cond: [c] |
|
|
|
return: [0xCB, 0x11] |
|
|
|
- cond: [d] |
|
|
|
return: [0xCB, 0x12] |
|
|
|
- cond: [e] |
|
|
|
return: [0xCB, 0x13] |
|
|
|
- cond: [h] |
|
|
|
return: [0xCB, 0x14] |
|
|
|
- cond: [l] |
|
|
|
return: [0xCB, 0x15] |
|
|
|
- cond: [b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x10)] |
|
|
|
- type: [indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [_] |
|
|
@@ -695,18 +635,8 @@ rl: |
|
|
|
cases: |
|
|
|
- cond: [_, a] |
|
|
|
return: [0xCB, 0x17] |
|
|
|
- cond: [_, b] |
|
|
|
return: [0xCB, 0x10] |
|
|
|
- cond: [_, c] |
|
|
|
return: [0xCB, 0x11] |
|
|
|
- cond: [_, d] |
|
|
|
return: [0xCB, 0x12] |
|
|
|
- cond: [_, e] |
|
|
|
return: [0xCB, 0x13] |
|
|
|
- cond: [_, h] |
|
|
|
return: [0xCB, 0x14] |
|
|
|
- cond: [_, l] |
|
|
|
return: [0xCB, 0x15] |
|
|
|
- cond: [_, b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x10)] |
|
|
|
|
|
|
|
rla: |
|
|
|
args: no |
|
|
@@ -719,18 +649,8 @@ rlc: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xCB, 0x07] |
|
|
|
- cond: [b] |
|
|
|
return: [0xCB, 0x00] |
|
|
|
- cond: [c] |
|
|
|
return: [0xCB, 0x01] |
|
|
|
- cond: [d] |
|
|
|
return: [0xCB, 0x02] |
|
|
|
- cond: [e] |
|
|
|
return: [0xCB, 0x03] |
|
|
|
- cond: [h] |
|
|
|
return: [0xCB, 0x04] |
|
|
|
- cond: [l] |
|
|
|
return: [0xCB, 0x05] |
|
|
|
- cond: [b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x00)] |
|
|
|
- type: [indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [_] |
|
|
@@ -739,18 +659,8 @@ rlc: |
|
|
|
cases: |
|
|
|
- cond: [_, a] |
|
|
|
return: [0xCB, 0x07] |
|
|
|
- cond: [_, b] |
|
|
|
return: [0xCB, 0x00] |
|
|
|
- cond: [_, c] |
|
|
|
return: [0xCB, 0x01] |
|
|
|
- cond: [_, d] |
|
|
|
return: [0xCB, 0x02] |
|
|
|
- cond: [_, e] |
|
|
|
return: [0xCB, 0x03] |
|
|
|
- cond: [_, h] |
|
|
|
return: [0xCB, 0x04] |
|
|
|
- cond: [_, l] |
|
|
|
return: [0xCB, 0x05] |
|
|
|
- cond: [_, b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x00)] |
|
|
|
|
|
|
|
rlca: |
|
|
|
args: no |
|
|
@@ -767,18 +677,8 @@ rr: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xCB, 0x1F] |
|
|
|
- cond: [b] |
|
|
|
return: [0xCB, 0x18] |
|
|
|
- cond: [c] |
|
|
|
return: [0xCB, 0x19] |
|
|
|
- cond: [d] |
|
|
|
return: [0xCB, 0x1A] |
|
|
|
- cond: [e] |
|
|
|
return: [0xCB, 0x1B] |
|
|
|
- cond: [h] |
|
|
|
return: [0xCB, 0x1C] |
|
|
|
- cond: [l] |
|
|
|
return: [0xCB, 0x1D] |
|
|
|
- cond: [b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x18)] |
|
|
|
- type: [indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [_] |
|
|
@@ -787,18 +687,8 @@ rr: |
|
|
|
cases: |
|
|
|
- cond: [_, a] |
|
|
|
return: [0xCB, 0x1F] |
|
|
|
- cond: [_, b] |
|
|
|
return: [0xCB, 0x18] |
|
|
|
- cond: [_, c] |
|
|
|
return: [0xCB, 0x19] |
|
|
|
- cond: [_, d] |
|
|
|
return: [0xCB, 0x1A] |
|
|
|
- cond: [_, e] |
|
|
|
return: [0xCB, 0x1B] |
|
|
|
- cond: [_, h] |
|
|
|
return: [0xCB, 0x1C] |
|
|
|
- cond: [_, l] |
|
|
|
return: [0xCB, 0x1D] |
|
|
|
- cond: [_, b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x18)] |
|
|
|
|
|
|
|
rra: |
|
|
|
args: no |
|
|
@@ -811,18 +701,8 @@ rrc: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xCB, 0x0F] |
|
|
|
- cond: [b] |
|
|
|
return: [0xCB, 0x08] |
|
|
|
- cond: [c] |
|
|
|
return: [0xCB, 0x09] |
|
|
|
- cond: [d] |
|
|
|
return: [0xCB, 0x0A] |
|
|
|
- cond: [e] |
|
|
|
return: [0xCB, 0x0B] |
|
|
|
- cond: [h] |
|
|
|
return: [0xCB, 0x0C] |
|
|
|
- cond: [l] |
|
|
|
return: [0xCB, 0x0D] |
|
|
|
- cond: [b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x08)] |
|
|
|
- type: [indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [_] |
|
|
@@ -831,18 +711,8 @@ rrc: |
|
|
|
cases: |
|
|
|
- cond: [_, a] |
|
|
|
return: [0xCB, 0x0F] |
|
|
|
- cond: [_, b] |
|
|
|
return: [0xCB, 0x08] |
|
|
|
- cond: [_, c] |
|
|
|
return: [0xCB, 0x09] |
|
|
|
- cond: [_, d] |
|
|
|
return: [0xCB, 0x0A] |
|
|
|
- cond: [_, e] |
|
|
|
return: [0xCB, 0x0B] |
|
|
|
- cond: [_, h] |
|
|
|
return: [0xCB, 0x0C] |
|
|
|
- cond: [_, l] |
|
|
|
return: [0xCB, 0x0D] |
|
|
|
- cond: [_, b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x08)] |
|
|
|
|
|
|
|
rrca: |
|
|
|
args: no |
|
|
@@ -881,26 +751,14 @@ sbc: |
|
|
|
cases: |
|
|
|
- cond: [a, a] |
|
|
|
return: [0x9F] |
|
|
|
- cond: [a, b] |
|
|
|
return: [0x98] |
|
|
|
- cond: [a, c] |
|
|
|
return: [0x99] |
|
|
|
- cond: [a, d] |
|
|
|
return: [0x9A] |
|
|
|
- cond: [a, e] |
|
|
|
return: [0x9B] |
|
|
|
- cond: [a, b|c|d|e] |
|
|
|
return: [step(0x98)] |
|
|
|
- cond: [a, h|ih] |
|
|
|
return: [0x9C] |
|
|
|
- cond: [a, l|il] |
|
|
|
return: [0x9D] |
|
|
|
- cond: [hl, bc] |
|
|
|
return: [0xED, 0x42] |
|
|
|
- cond: [hl, de] |
|
|
|
return: [0xED, 0x52] |
|
|
|
- cond: [hl, hl] |
|
|
|
return: [0xED, 0x62] |
|
|
|
- cond: [hl, sp] |
|
|
|
return: [0xED, 0x72] |
|
|
|
- cond: [hl, bc|de|hl|sp] |
|
|
|
return: [0xED, step(0x42 0x10)] |
|
|
|
- type: [register, immediate] |
|
|
|
cases: |
|
|
|
- cond: [a, u8] |
|
|
@@ -921,18 +779,8 @@ set: |
|
|
|
cases: |
|
|
|
- cond: [bit, a] |
|
|
|
return: [0xCB, bit(0xC7)] |
|
|
|
- cond: [bit, b] |
|
|
|
return: [0xCB, bit(0xC0)] |
|
|
|
- cond: [bit, c] |
|
|
|
return: [0xCB, bit(0xC1)] |
|
|
|
- cond: [bit, d] |
|
|
|
return: [0xCB, bit(0xC2)] |
|
|
|
- cond: [bit, e] |
|
|
|
return: [0xCB, bit(0xC3)] |
|
|
|
- cond: [bit, h] |
|
|
|
return: [0xCB, bit(0xC4)] |
|
|
|
- cond: [bit, l] |
|
|
|
return: [0xCB, bit(0xC5)] |
|
|
|
- cond: [bit, b|c|d|e|h|l] |
|
|
|
return: [0xCB, bit(step(0xC0))] |
|
|
|
- type: [immediate, indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [bit, _] |
|
|
@@ -941,18 +789,8 @@ set: |
|
|
|
cases: |
|
|
|
- cond: [bit, _, a] |
|
|
|
return: [0xCB, bit(0xC7)] |
|
|
|
- cond: [bit, _, b] |
|
|
|
return: [0xCB, bit(0xC0)] |
|
|
|
- cond: [bit, _, c] |
|
|
|
return: [0xCB, bit(0xC1)] |
|
|
|
- cond: [bit, _, d] |
|
|
|
return: [0xCB, bit(0xC2)] |
|
|
|
- cond: [bit, _, e] |
|
|
|
return: [0xCB, bit(0xC3)] |
|
|
|
- cond: [bit, _, h] |
|
|
|
return: [0xCB, bit(0xC4)] |
|
|
|
- cond: [bit, _, l] |
|
|
|
return: [0xCB, bit(0xC5)] |
|
|
|
- cond: [bit, _, b|c|d|e|h|l] |
|
|
|
return: [0xCB, bit(step(0xC0))] |
|
|
|
|
|
|
|
sl1: &sl1 |
|
|
|
args: yes |
|
|
@@ -961,18 +799,8 @@ sl1: &sl1 |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xCB, 0x37] |
|
|
|
- cond: [b] |
|
|
|
return: [0xCB, 0x30] |
|
|
|
- cond: [c] |
|
|
|
return: [0xCB, 0x31] |
|
|
|
- cond: [d] |
|
|
|
return: [0xCB, 0x32] |
|
|
|
- cond: [e] |
|
|
|
return: [0xCB, 0x33] |
|
|
|
- cond: [h] |
|
|
|
return: [0xCB, 0x34] |
|
|
|
- cond: [l] |
|
|
|
return: [0xCB, 0x35] |
|
|
|
- cond: [b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x30)] |
|
|
|
- type: [indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [_] |
|
|
@@ -981,18 +809,8 @@ sl1: &sl1 |
|
|
|
cases: |
|
|
|
- cond: [_, a] |
|
|
|
return: [0xCB, 0x37] |
|
|
|
- cond: [_, b] |
|
|
|
return: [0xCB, 0x30] |
|
|
|
- cond: [_, c] |
|
|
|
return: [0xCB, 0x31] |
|
|
|
- cond: [_, d] |
|
|
|
return: [0xCB, 0x32] |
|
|
|
- cond: [_, e] |
|
|
|
return: [0xCB, 0x33] |
|
|
|
- cond: [_, h] |
|
|
|
return: [0xCB, 0x34] |
|
|
|
- cond: [_, l] |
|
|
|
return: [0xCB, 0x35] |
|
|
|
- cond: [_, b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x30)] |
|
|
|
|
|
|
|
sla: |
|
|
|
args: yes |
|
|
@@ -1001,18 +819,8 @@ sla: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xCB, 0x27] |
|
|
|
- cond: [b] |
|
|
|
return: [0xCB, 0x20] |
|
|
|
- cond: [c] |
|
|
|
return: [0xCB, 0x21] |
|
|
|
- cond: [d] |
|
|
|
return: [0xCB, 0x22] |
|
|
|
- cond: [e] |
|
|
|
return: [0xCB, 0x23] |
|
|
|
- cond: [h] |
|
|
|
return: [0xCB, 0x24] |
|
|
|
- cond: [l] |
|
|
|
return: [0xCB, 0x25] |
|
|
|
- cond: [b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x20)] |
|
|
|
- type: [indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [_] |
|
|
@@ -1021,18 +829,8 @@ sla: |
|
|
|
cases: |
|
|
|
- cond: [_, a] |
|
|
|
return: [0xCB, 0x27] |
|
|
|
- cond: [_, b] |
|
|
|
return: [0xCB, 0x20] |
|
|
|
- cond: [_, c] |
|
|
|
return: [0xCB, 0x21] |
|
|
|
- cond: [_, d] |
|
|
|
return: [0xCB, 0x22] |
|
|
|
- cond: [_, e] |
|
|
|
return: [0xCB, 0x23] |
|
|
|
- cond: [_, h] |
|
|
|
return: [0xCB, 0x24] |
|
|
|
- cond: [_, l] |
|
|
|
return: [0xCB, 0x25] |
|
|
|
- cond: [_, b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x20)] |
|
|
|
|
|
|
|
sll: *sl1 |
|
|
|
|
|
|
@@ -1045,18 +843,8 @@ sra: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xCB, 0x2F] |
|
|
|
- cond: [b] |
|
|
|
return: [0xCB, 0x28] |
|
|
|
- cond: [c] |
|
|
|
return: [0xCB, 0x29] |
|
|
|
- cond: [d] |
|
|
|
return: [0xCB, 0x2A] |
|
|
|
- cond: [e] |
|
|
|
return: [0xCB, 0x2B] |
|
|
|
- cond: [h] |
|
|
|
return: [0xCB, 0x2C] |
|
|
|
- cond: [l] |
|
|
|
return: [0xCB, 0x2D] |
|
|
|
- cond: [b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x28)] |
|
|
|
- type: [indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [_] |
|
|
@@ -1065,18 +853,8 @@ sra: |
|
|
|
cases: |
|
|
|
- cond: [_, a] |
|
|
|
return: [0xCB, 0x2F] |
|
|
|
- cond: [_, b] |
|
|
|
return: [0xCB, 0x28] |
|
|
|
- cond: [_, c] |
|
|
|
return: [0xCB, 0x29] |
|
|
|
- cond: [_, d] |
|
|
|
return: [0xCB, 0x2A] |
|
|
|
- cond: [_, e] |
|
|
|
return: [0xCB, 0x2B] |
|
|
|
- cond: [_, h] |
|
|
|
return: [0xCB, 0x2C] |
|
|
|
- cond: [_, l] |
|
|
|
return: [0xCB, 0x2D] |
|
|
|
- cond: [_, b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x28)] |
|
|
|
|
|
|
|
srl: |
|
|
|
args: yes |
|
|
@@ -1085,18 +863,8 @@ srl: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xCB, 0x3F] |
|
|
|
- cond: [b] |
|
|
|
return: [0xCB, 0x38] |
|
|
|
- cond: [c] |
|
|
|
return: [0xCB, 0x39] |
|
|
|
- cond: [d] |
|
|
|
return: [0xCB, 0x3A] |
|
|
|
- cond: [e] |
|
|
|
return: [0xCB, 0x3B] |
|
|
|
- cond: [h] |
|
|
|
return: [0xCB, 0x3C] |
|
|
|
- cond: [l] |
|
|
|
return: [0xCB, 0x3D] |
|
|
|
- cond: [b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x38)] |
|
|
|
- type: [indirect_hl_or_indexed] |
|
|
|
cases: |
|
|
|
- cond: [_] |
|
|
@@ -1105,18 +873,8 @@ srl: |
|
|
|
cases: |
|
|
|
- cond: [_, a] |
|
|
|
return: [0xCB, 0x3F] |
|
|
|
- cond: [_, b] |
|
|
|
return: [0xCB, 0x38] |
|
|
|
- cond: [_, c] |
|
|
|
return: [0xCB, 0x39] |
|
|
|
- cond: [_, d] |
|
|
|
return: [0xCB, 0x3A] |
|
|
|
- cond: [_, e] |
|
|
|
return: [0xCB, 0x3B] |
|
|
|
- cond: [_, h] |
|
|
|
return: [0xCB, 0x3C] |
|
|
|
- cond: [_, l] |
|
|
|
return: [0xCB, 0x3D] |
|
|
|
- cond: [_, b|c|d|e|h|l] |
|
|
|
return: [0xCB, step(0x38)] |
|
|
|
|
|
|
|
sub: |
|
|
|
args: yes |
|
|
@@ -1125,14 +883,8 @@ sub: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0x97] |
|
|
|
- cond: [b] |
|
|
|
return: [0x90] |
|
|
|
- cond: [c] |
|
|
|
return: [0x91] |
|
|
|
- cond: [d] |
|
|
|
return: [0x92] |
|
|
|
- cond: [e] |
|
|
|
return: [0x93] |
|
|
|
- cond: [b|c|d|e] |
|
|
|
return: [step(0x90)] |
|
|
|
- cond: [h|ih] |
|
|
|
return: [0x94] |
|
|
|
- cond: [l|il] |
|
|
@@ -1153,14 +905,8 @@ xor: |
|
|
|
cases: |
|
|
|
- cond: [a] |
|
|
|
return: [0xAF] |
|
|
|
- cond: [b] |
|
|
|
return: [0xA8] |
|
|
|
- cond: [c] |
|
|
|
return: [0xA9] |
|
|
|
- cond: [d] |
|
|
|
return: [0xAA] |
|
|
|
- cond: [e] |
|
|
|
return: [0xAB] |
|
|
|
- cond: [b|c|d|e] |
|
|
|
return: [step(0xA8)] |
|
|
|
- cond: [h|ih] |
|
|
|
return: [0xAC] |
|
|
|
- cond: [l|il] |
|
|
|