changeset 202:693ad04b965e

Distinguish between 1-byte and 2-byte NOPs
author Mike Pavone <pavone@retrodev.com>
date Mon, 21 Jan 2013 21:59:09 -0800
parents 2d2fa345e1fc
children 0ae589d4c3f9
files z80inst.c
diffstat 1 files changed, 54 insertions(+), 51 deletions(-) [+]
line wrap: on
line diff
--- 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 <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 @@
 	{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) {