# HG changeset patch # User Mike Pavone # Date 1358834349 28800 # Node ID 693ad04b965e6766ad6754532ad5b63b430de142 # Parent 2d2fa345e1fc09ff0db91289c2d04ad8d631a60d Distinguish between 1-byte and 2-byte NOPs diff -r 2d2fa345e1fc -r 693ad04b965e z80inst.c --- a/z80inst.c Mon Jan 21 21:17:52 2013 -0800 +++ b/z80inst.c Mon Jan 21 21:59:09 2013 -0800 @@ -2,7 +2,8 @@ #include #include -#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 @@ {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 @@ {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 @@ BIT_BLOCK(Z80_SET, 7) }; +z80inst z80_tbl_ix[256 + uint8_t * z80_decode(uint8_t * istream, z80inst * decoded) { if (*istream == 0xCB) {