diff options
author | Mike Pavone <pavone@retrodev.com> | 2013-01-21 21:59:09 -0800 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2013-01-21 21:59:09 -0800 |
commit | b8475ee5c4ae7b245b8bd761424eb246d2538e2d (patch) | |
tree | 5c721add5277c5496f8fda2dc585411e1e1c8122 /z80inst.c | |
parent | cf1bc4272356cfbaa462a9f2bd14740edeced331 (diff) |
Distinguish between 1-byte and 2-byte NOPs
Diffstat (limited to 'z80inst.c')
-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) { |