diff options
-rw-r--r-- | z80inst.c | 105 |
1 files changed, 54 insertions, 51 deletions
@@ -2,7 +2,8 @@ #include <string.h> #include <stdio.h> -#define NOP {Z80_NOP, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0} +#define NOP {Z80_NOP, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 1} +#define NOP2 {Z80_NOP, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 2} z80inst z80_tbl_a[256] = { //0 @@ -339,7 +340,7 @@ z80inst z80_tbl_extd[0xC0-0x40] = { {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 1}, - NOP, + NOP2, {Z80_IN, Z80_A, Z80_REG_INDIRECT, Z80_C, 0}, {Z80_OUT, Z80_A, Z80_REG_INDIRECT | Z80_DIR, Z80_C, 0}, {Z80_ADC, Z80_HL, Z80_REG, Z80_SP, 0}, @@ -347,75 +348,75 @@ z80inst z80_tbl_extd[0xC0-0x40] = { {Z80_NEG, Z80_A, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_RETN, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_IM, Z80_UNUSED, Z80_IMMED, Z80_UNUSED, 2}, - NOP, + NOP2, //8 - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, //9 - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, + NOP2, //A {Z80_LDI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_CPI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_INI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_OUTI, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, - NOP, - NOP, - NOP, - NOP, + NOP2, + NOP2, + NOP2, + NOP2, {Z80_LDD, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_CPD, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_IND, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_OUTD, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, - NOP, - NOP, - NOP, - NOP, + NOP2, + NOP2, + NOP2, + NOP2, //B {Z80_LDIR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_CPIR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_INIR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_OTIR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, - NOP, - NOP, - NOP, - NOP, + NOP2, + NOP2, + NOP2, + NOP2, {Z80_LDDR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_CPDR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_INDR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, {Z80_OTDR, Z80_UNUSED, Z80_UNUSED, Z80_UNUSED, 0}, - NOP, - NOP, - NOP, - NOP + NOP2, + NOP2, + NOP2, + NOP2 }; #define SHIFT_BLOCK(op) \ @@ -489,6 +490,8 @@ z80inst z80_tbl_bit[256] = { BIT_BLOCK(Z80_SET, 7) }; +z80inst z80_tbl_ix[256 + uint8_t * z80_decode(uint8_t * istream, z80inst * decoded) { if (*istream == 0xCB) { |