diff --git a/modules/pc8080/lib/cpuops.js b/modules/pc8080/lib/cpuops.js
index 19de5f42c..ffea89c91 100644
--- a/modules/pc8080/lib/cpuops.js
+++ b/modules/pc8080/lib/cpuops.js
@@ -60,6 +60,18 @@ CPUDef.opLXIB = function()
this.nStepCycles -= 10;
};
+/**
+ * opTBD()
+ *
+ * @this {CPUSim}
+ */
+CPUDef.opTBD = function()
+{
+ this.setPC(this.getPC() - 1);
+ this.printMessage("unimplemented opcode", true);
+ this.stopCPU();
+};
+
/*
* This 256-entry array of opcode functions is at the heart of the CPU engine: stepCPU(n).
*
@@ -68,68 +80,68 @@ CPUDef.opLXIB = function()
* money on array lookup.
*/
CPUDef.aOps = [
- /* 0x00-0x03 */ CPUDef.opNOP, CPUDef.opLXIB, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x04-0x07 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x08-0x0B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x0C-0x0F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x10-0x13 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x14-0x17 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x18-0x1B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x1C-0x1F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x20-0x23 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x24-0x27 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x28-0x2B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x2C-0x2F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x30-0x33 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x34-0x37 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x38-0x3B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x3C-0x3F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x40-0x43 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x44-0x47 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x48-0x4B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x4C-0x4F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x50-0x53 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x54-0x57 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x58-0x5B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x5C-0x5F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x60-0x63 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x64-0x67 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x68-0x6B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x6C-0x6F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x70-0x73 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x74-0x77 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x78-0x7B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x7C-0x7F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x80-0x83 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x84-0x87 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x88-0x8B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x8C-0x8F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x90-0x93 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x94-0x97 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x98-0x9B */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0x9C-0x9F */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xA0-0xA3 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xA4-0xA7 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xA8-0xAB */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xAC-0xAF */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xB0-0xB3 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xB4-0xB7 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xB8-0xBB */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xBC-0xBF */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xC0-0xC3 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xC4-0xC7 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xC8-0xCB */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xCC-0xCF */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xD0-0xD3 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xD4-0xD7 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xD8-0xDB */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xDC-0xDF */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xE0-0xE3 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xE4-0xE7 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xE8-0xEB */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xEC-0xEF */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xF0-0xF3 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xF4-0xF7 */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xF8-0xFB */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP,
- /* 0xFC-0xFF */ CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP, CPUDef.opNOP
+ /* 0x00-0x03 */ CPUDef.opNOP, CPUDef.opLXIB, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x04-0x07 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x08-0x0B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x0C-0x0F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x10-0x13 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x14-0x17 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x18-0x1B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x1C-0x1F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x20-0x23 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x24-0x27 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x28-0x2B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x2C-0x2F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x30-0x33 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x34-0x37 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x38-0x3B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x3C-0x3F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x40-0x43 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x44-0x47 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x48-0x4B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x4C-0x4F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x50-0x53 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x54-0x57 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x58-0x5B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x5C-0x5F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x60-0x63 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x64-0x67 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x68-0x6B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x6C-0x6F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x70-0x73 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x74-0x77 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x78-0x7B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x7C-0x7F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x80-0x83 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x84-0x87 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x88-0x8B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x8C-0x8F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x90-0x93 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x94-0x97 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x98-0x9B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0x9C-0x9F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xA0-0xA3 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xA4-0xA7 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xA8-0xAB */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xAC-0xAF */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xB0-0xB3 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xB4-0xB7 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xB8-0xBB */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xBC-0xBF */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xC0-0xC3 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xC4-0xC7 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xC8-0xCB */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xCC-0xCF */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xD0-0xD3 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xD4-0xD7 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xD8-0xDB */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xDC-0xDF */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xE0-0xE3 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xE4-0xE7 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xE8-0xEB */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xEC-0xEF */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xF0-0xF3 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xF4-0xF7 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xF8-0xFB */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
+ /* 0xFC-0xFF */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD
];
diff --git a/modules/pc8080/lib/cpusim.js b/modules/pc8080/lib/cpusim.js
index 2947a7094..695d5a1dc 100644
--- a/modules/pc8080/lib/cpusim.js
+++ b/modules/pc8080/lib/cpusim.js
@@ -213,7 +213,7 @@ CPUSim.prototype.removeMemCheck = function(addr, fWrite)
CPUSim.prototype.initProcessor = function()
{
this.cycleCounts = CPUDef.CYCLES;
- this.aOps = []; // CPUDef.aOps;
+ this.aOps = CPUDef.aOps;
};
/**
@@ -682,7 +682,7 @@ CPUSim.prototype.setBinding = function(sHTMLType, sBinding, control, sValue)
case "L":
case "SP":
case "PC":
- case "PS":
+ case "F":
case "C":
case "P":
case "A":
@@ -924,7 +924,7 @@ CPUSim.prototype.updateStatus = function(fForce)
this.updateReg("SP", this.getSP(), 4);
this.updateReg("PC", this.getPC(), 4);
var regPS = this.getPS();
- this.updateReg("PS", regPS, 2);
+ this.updateReg("F", regPS, 2);
this.updateReg("S", (regPS & CPUDef.PS.SF), 1);
this.updateReg("Z", (regPS & CPUDef.PS.ZF), 1);
this.updateReg("A", (regPS & CPUDef.PS.AF), 1);
diff --git a/modules/pc8080/lib/debugger.js b/modules/pc8080/lib/debugger.js
index 14e3a8543..16b05d44c 100644
--- a/modules/pc8080/lib/debugger.js
+++ b/modules/pc8080/lib/debugger.js
@@ -304,7 +304,6 @@ if (DEBUGGER) {
Debugger.CPU_8080 = 0;
Debugger.CPUS = [8080];
- Debugger.REG_A = 0x07;
Debugger.REG_B = 0x00;
Debugger.REG_C = 0x01;
Debugger.REG_D = 0x02;
@@ -312,15 +311,17 @@ if (DEBUGGER) {
Debugger.REG_H = 0x04;
Debugger.REG_L = 0x05;
Debugger.REG_M = 0x06;
- Debugger.REG_BC = 0x08;
+ Debugger.REG_A = 0x07;
+ Debugger.REG_F = 0x08; // the flags register ("F")
+ Debugger.REG_BC = 0x09;
Debugger.REG_DE = 0x0A;
- Debugger.REG_HL = 0x0C;
+ Debugger.REG_HL = 0x0B;
+ Debugger.REG_PS = 0x0C; // aka PSW, which could also be called "AF", since A is the high byte and F is the low byte
Debugger.REG_SP = 0x0D;
Debugger.REG_PC = 0x0E;
- Debugger.REG_PS = 0x0F;
Debugger.REGS = [
- "B", "C", "D", "E", "H", "L", "M", "A", "BC", null, "DE", null, "HL", "SP", "PC", "PS"
+ "B", "C", "D", "E", "H", "L", "M", "A", "F", "BC", "DE", "HL", "PSW", "SP", "PC"
];
/*
@@ -362,9 +363,9 @@ if (DEBUGGER) {
Debugger.TYPE_BC = (Debugger.REG_BC << 8 | Debugger.TYPE_REG | Debugger.TYPE_WORD);
Debugger.TYPE_DE = (Debugger.REG_DE << 8 | Debugger.TYPE_REG | Debugger.TYPE_WORD);
Debugger.TYPE_HL = (Debugger.REG_HL << 8 | Debugger.TYPE_REG | Debugger.TYPE_WORD);
+ Debugger.TYPE_PS = (Debugger.REG_PS << 8 | Debugger.TYPE_REG | Debugger.TYPE_WORD);
Debugger.TYPE_SP = (Debugger.REG_SP << 8 | Debugger.TYPE_REG | Debugger.TYPE_WORD);
Debugger.TYPE_PC = (Debugger.REG_PC << 8 | Debugger.TYPE_REG | Debugger.TYPE_WORD);
- Debugger.TYPE_PS = (Debugger.REG_PS << 8 | Debugger.TYPE_REG | Debugger.TYPE_WORD);
/*
* TYPE_OTHER bit definitions
@@ -391,266 +392,267 @@ if (DEBUGGER) {
*
* 1) If no TYPE_OTHER bits are specified for the first (destination) operand, TYPE_OUT is assumed;
* 2) If no TYPE_OTHER bits are specified for the second (source) operand, TYPE_IN is assumed;
- * 3) If no size is specified for the second operand, the size of the first operand is assumed.
+ * 3) If no size is specified for the second operand, the size is assumed to match the first operand.
*/
Debugger.aaOpDescs = [
- /* 0x00 */ [Debugger.INS.NOP],
- /* 0x01 */ [Debugger.INS.LXI, Debugger.TYPE_BC, Debugger.TYPE_IMM],
- /* 0x02 */ [Debugger.INS.STAX, Debugger.TYPE_BC | Debugger.TYPE_MEM],
- /* 0x03 */ [Debugger.INS.INX, Debugger.TYPE_BC],
- /* 0x04 */ [Debugger.INS.INR, Debugger.TYPE_B],
- /* 0x05 */ [Debugger.INS.DCR, Debugger.TYPE_B],
- /* 0x06 */ [Debugger.INS.MVI, Debugger.TYPE_B, Debugger.TYPE_IMM],
- /* 0x07 */ [Debugger.INS.RLC],
- /* 0x08 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
- /* 0x09 */ [Debugger.INS.DAD, Debugger.TYPE_BC | Debugger.TYPE_IN], // REG_HL is the implied (unlisted) destination
- /* 0x0A */ [Debugger.INS.LDAX, Debugger.TYPE_BC | Debugger.TYPE_MEM],
- /* 0x0B */ [Debugger.INS.DCX, Debugger.TYPE_BC],
- /* 0x0C */ [Debugger.INS.INR, Debugger.TYPE_C],
- /* 0x0D */ [Debugger.INS.DCR, Debugger.TYPE_C],
- /* 0x0E */ [Debugger.INS.MVI, Debugger.TYPE_C, Debugger.TYPE_IMM],
- /* 0x0F */ [Debugger.INS.RRC],
- /* 0x10 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
- /* 0x11 */ [Debugger.INS.LXI, Debugger.TYPE_DE, Debugger.TYPE_IMM],
- /* 0x12 */ [Debugger.INS.STAX, Debugger.TYPE_DE | Debugger.TYPE_MEM],
- /* 0x13 */ [Debugger.INS.INX, Debugger.TYPE_DE],
- /* 0x14 */ [Debugger.INS.INR, Debugger.TYPE_D],
- /* 0x15 */ [Debugger.INS.DCR, Debugger.TYPE_D],
- /* 0x16 */ [Debugger.INS.MVI, Debugger.TYPE_D, Debugger.TYPE_IMM],
- /* 0x17 */ [Debugger.INS.RAL],
- /* 0x18 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
- /* 0x19 */ [Debugger.INS.DAD, Debugger.TYPE_DE | Debugger.TYPE_IN], // REG_HL is the implied (unlisted) destination
- /* 0x1A */ [Debugger.INS.LDAX, Debugger.TYPE_DE | Debugger.TYPE_MEM],
- /* 0x1B */ [Debugger.INS.DCX, Debugger.TYPE_DE],
- /* 0x1C */ [Debugger.INS.INR, Debugger.TYPE_E],
- /* 0x1D */ [Debugger.INS.DCR, Debugger.TYPE_E],
- /* 0x1E */ [Debugger.INS.MVI, Debugger.TYPE_E, Debugger.TYPE_IMM],
- /* 0x1F */ [Debugger.INS.RAR],
- /* 0x20 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
- /* 0x21 */ [Debugger.INS.LXI, Debugger.TYPE_HL, Debugger.TYPE_IMM],
- /* 0x22 */ [Debugger.INS.SHLD, Debugger.TYPE_IMM | Debugger.TYPE_MEM],
- /* 0x23 */ [Debugger.INS.INX, Debugger.TYPE_HL],
- /* 0x24 */ [Debugger.INS.INR, Debugger.TYPE_H],
- /* 0x25 */ [Debugger.INS.DCR, Debugger.TYPE_H],
- /* 0x26 */ [Debugger.INS.MVI, Debugger.TYPE_H, Debugger.TYPE_IMM],
- /* 0x27 */ [Debugger.INS.DAA],
- /* 0x28 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
- /* 0x29 */ [Debugger.INS.DAD, Debugger.TYPE_HL | Debugger.TYPE_IN], // REG_HL is the implied (unlisted) destination
- /* 0x2A */ [Debugger.INS.LHLD, Debugger.TYPE_IMM | Debugger.TYPE_MEM],
- /* 0x2B */ [Debugger.INS.DCX, Debugger.TYPE_HL],
- /* 0x2C */ [Debugger.INS.INR, Debugger.TYPE_L],
- /* 0x2D */ [Debugger.INS.DCR, Debugger.TYPE_L],
- /* 0x2E */ [Debugger.INS.MVI, Debugger.TYPE_L, Debugger.TYPE_IMM],
- /* 0x2F */ [Debugger.INS.CMA],
- /* 0x30 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
- /* 0x31 */ [Debugger.INS.LXI, Debugger.TYPE_SP, Debugger.TYPE_IMM],
- /* 0x32 */ [Debugger.INS.STA, Debugger.TYPE_IMM | Debugger.TYPE_MEM],
- /* 0x33 */ [Debugger.INS.INX, Debugger.TYPE_SP],
- /* 0x34 */ [Debugger.INS.INR, Debugger.TYPE_M],
- /* 0x35 */ [Debugger.INS.DCR, Debugger.TYPE_M],
- /* 0x36 */ [Debugger.INS.MVI, Debugger.TYPE_M, Debugger.TYPE_IMM],
- /* 0x37 */ [Debugger.INS.STC],
- /* 0x38 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
- /* 0x39 */ [Debugger.INS.DAD, Debugger.TYPE_SP | Debugger.TYPE_IN], // REG_HL is the implied (unlisted) destination
- /* 0x3A */ [Debugger.INS.LDA, Debugger.TYPE_IMM | Debugger.TYPE_MEM],
- /* 0x3B */ [Debugger.INS.DCX, Debugger.TYPE_SP],
- /* 0x3C */ [Debugger.INS.INR, Debugger.TYPE_A],
- /* 0x3D */ [Debugger.INS.DCR, Debugger.TYPE_A],
- /* 0x3E */ [Debugger.INS.MVI, Debugger.TYPE_A, Debugger.TYPE_IMM],
- /* 0x3F */ [Debugger.INS.CMC],
- /* 0x40 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_B],
- /* 0x41 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_C],
- /* 0x42 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_D],
- /* 0x43 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_E],
- /* 0x44 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_H],
- /* 0x45 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_L],
- /* 0x46 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_M],
- /* 0x47 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_A],
- /* 0x48 */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_B],
- /* 0x49 */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_C],
- /* 0x4A */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_D],
- /* 0x4B */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_E],
- /* 0x4C */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_H],
- /* 0x4D */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_L],
- /* 0x4E */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_M],
- /* 0x4F */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_A],
- /* 0x50 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_B],
- /* 0x51 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_C],
- /* 0x52 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_D],
- /* 0x53 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_E],
- /* 0x54 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_H],
- /* 0x55 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_L],
- /* 0x56 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_M],
- /* 0x57 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_A],
- /* 0x58 */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_B],
- /* 0x59 */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_C],
- /* 0x5A */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_D],
- /* 0x5B */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_E],
- /* 0x5C */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_H],
- /* 0x5D */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_L],
- /* 0x5E */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_M],
- /* 0x5F */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_A],
- /* 0x60 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_B],
- /* 0x61 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_C],
- /* 0x62 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_D],
- /* 0x63 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_E],
- /* 0x64 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_H],
- /* 0x65 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_L],
- /* 0x66 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_M],
- /* 0x67 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_A],
- /* 0x68 */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_B],
- /* 0x69 */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_C],
- /* 0x6A */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_D],
- /* 0x6B */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_E],
- /* 0x6C */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_H],
- /* 0x6D */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_L],
- /* 0x6E */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_M],
- /* 0x6F */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_A],
- /* 0x70 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_B],
- /* 0x71 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_C],
- /* 0x72 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_D],
- /* 0x73 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_E],
- /* 0x74 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_H],
- /* 0x75 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_L],
- /* 0x76 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_M],
- /* 0x77 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_A],
- /* 0x78 */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_B],
- /* 0x79 */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_C],
- /* 0x7A */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_D],
- /* 0x7B */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_E],
- /* 0x7C */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_H],
- /* 0x7D */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_L],
- /* 0x7E */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_M],
- /* 0x7F */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_A],
- /* 0x80 */ [Debugger.INS.ADD, Debugger.TYPE_B],
- /* 0x81 */ [Debugger.INS.ADD, Debugger.TYPE_C],
- /* 0x82 */ [Debugger.INS.ADD, Debugger.TYPE_D],
- /* 0x83 */ [Debugger.INS.ADD, Debugger.TYPE_E],
- /* 0x84 */ [Debugger.INS.ADD, Debugger.TYPE_H],
- /* 0x85 */ [Debugger.INS.ADD, Debugger.TYPE_L],
- /* 0x86 */ [Debugger.INS.ADD, Debugger.TYPE_M],
- /* 0x87 */ [Debugger.INS.ADD, Debugger.TYPE_A],
- /* 0x88 */ [Debugger.INS.ADC, Debugger.TYPE_B],
- /* 0x89 */ [Debugger.INS.ADC, Debugger.TYPE_C],
- /* 0x8A */ [Debugger.INS.ADC, Debugger.TYPE_D],
- /* 0x8B */ [Debugger.INS.ADC, Debugger.TYPE_E],
- /* 0x8C */ [Debugger.INS.ADC, Debugger.TYPE_H],
- /* 0x8D */ [Debugger.INS.ADC, Debugger.TYPE_L],
- /* 0x8E */ [Debugger.INS.ADC, Debugger.TYPE_M],
- /* 0x8F */ [Debugger.INS.ADC, Debugger.TYPE_A],
- /* 0x90 */ [Debugger.INS.SUB, Debugger.TYPE_B],
- /* 0x91 */ [Debugger.INS.SUB, Debugger.TYPE_C],
- /* 0x92 */ [Debugger.INS.SUB, Debugger.TYPE_D],
- /* 0x93 */ [Debugger.INS.SUB, Debugger.TYPE_E],
- /* 0x94 */ [Debugger.INS.SUB, Debugger.TYPE_H],
- /* 0x95 */ [Debugger.INS.SUB, Debugger.TYPE_L],
- /* 0x96 */ [Debugger.INS.SUB, Debugger.TYPE_M],
- /* 0x97 */ [Debugger.INS.SUB, Debugger.TYPE_A],
- /* 0x98 */ [Debugger.INS.SBB, Debugger.TYPE_B],
- /* 0x99 */ [Debugger.INS.SBB, Debugger.TYPE_C],
- /* 0x9A */ [Debugger.INS.SBB, Debugger.TYPE_D],
- /* 0x9B */ [Debugger.INS.SBB, Debugger.TYPE_E],
- /* 0x9C */ [Debugger.INS.SBB, Debugger.TYPE_H],
- /* 0x9D */ [Debugger.INS.SBB, Debugger.TYPE_L],
- /* 0x9E */ [Debugger.INS.SBB, Debugger.TYPE_M],
- /* 0x9F */ [Debugger.INS.SBB, Debugger.TYPE_A],
- /* 0xA0 */ [Debugger.INS.ANA, Debugger.TYPE_B],
- /* 0xA1 */ [Debugger.INS.ANA, Debugger.TYPE_C],
- /* 0xA2 */ [Debugger.INS.ANA, Debugger.TYPE_D],
- /* 0xA3 */ [Debugger.INS.ANA, Debugger.TYPE_E],
- /* 0xA4 */ [Debugger.INS.ANA, Debugger.TYPE_H],
- /* 0xA5 */ [Debugger.INS.ANA, Debugger.TYPE_L],
- /* 0xA6 */ [Debugger.INS.ANA, Debugger.TYPE_M],
- /* 0xA7 */ [Debugger.INS.ANA, Debugger.TYPE_A],
- /* 0xA8 */ [Debugger.INS.XRA, Debugger.TYPE_B],
- /* 0xA9 */ [Debugger.INS.XRA, Debugger.TYPE_C],
- /* 0xAA */ [Debugger.INS.XRA, Debugger.TYPE_D],
- /* 0xAB */ [Debugger.INS.XRA, Debugger.TYPE_E],
- /* 0xAC */ [Debugger.INS.XRA, Debugger.TYPE_H],
- /* 0xAD */ [Debugger.INS.XRA, Debugger.TYPE_L],
- /* 0xAE */ [Debugger.INS.XRA, Debugger.TYPE_M],
- /* 0xAF */ [Debugger.INS.XRA, Debugger.TYPE_A],
- /* 0xB0 */ [Debugger.INS.ORA, Debugger.TYPE_B],
- /* 0xB1 */ [Debugger.INS.ORA, Debugger.TYPE_C],
- /* 0xB2 */ [Debugger.INS.ORA, Debugger.TYPE_D],
- /* 0xB3 */ [Debugger.INS.ORA, Debugger.TYPE_E],
- /* 0xB4 */ [Debugger.INS.ORA, Debugger.TYPE_H],
- /* 0xB5 */ [Debugger.INS.ORA, Debugger.TYPE_L],
- /* 0xB6 */ [Debugger.INS.ORA, Debugger.TYPE_M],
- /* 0xB7 */ [Debugger.INS.ORA, Debugger.TYPE_A],
- /* 0xB8 */ [Debugger.INS.CMP, Debugger.TYPE_B],
- /* 0xB9 */ [Debugger.INS.CMP, Debugger.TYPE_C],
- /* 0xBA */ [Debugger.INS.CMP, Debugger.TYPE_D],
- /* 0xBB */ [Debugger.INS.CMP, Debugger.TYPE_E],
- /* 0xBC */ [Debugger.INS.CMP, Debugger.TYPE_H],
- /* 0xBD */ [Debugger.INS.CMP, Debugger.TYPE_L],
- /* 0xBE */ [Debugger.INS.CMP, Debugger.TYPE_M],
- /* 0xBF */ [Debugger.INS.CMP, Debugger.TYPE_A],
- /* 0xC0 */ [Debugger.INS.RNZ],
- /* 0xC1 */ [Debugger.INS.POP, Debugger.TYPE_BC],
- /* 0xC2 */ [Debugger.INS.JNZ, Debugger.TYPE_IMM],
- /* 0xC3 */ [Debugger.INS.JMP, Debugger.TYPE_IMM],
- /* 0xC4 */ [Debugger.INS.CNZ, Debugger.TYPE_IMM],
- /* 0xC5 */ [Debugger.INS.PUSH, Debugger.TYPE_BC],
- /* 0xC6 */ [Debugger.INS.ADI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xC7 */ [Debugger.INS.RST],
- /* 0xC8 */ [Debugger.INS.RZ],
- /* 0xC9 */ [Debugger.INS.RET],
- /* 0xCA */ [Debugger.INS.JZ, Debugger.TYPE_IMM],
- /* 0xCB */ [Debugger.INS.JMP, Debugger.TYPE_IMM | Debugger.TYPE_UNDOC],
- /* 0xCC */ [Debugger.INS.CZ, Debugger.TYPE_IMM],
- /* 0xCD */ [Debugger.INS.CALL, Debugger.TYPE_IMM],
- /* 0xCE */ [Debugger.INS.ACI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xCF */ [Debugger.INS.RST],
- /* 0xD0 */ [Debugger.INS.RNC],
- /* 0xD1 */ [Debugger.INS.POP, Debugger.TYPE_DE],
- /* 0xD2 */ [Debugger.INS.JNC, Debugger.TYPE_IMM],
- /* 0xD3 */ [Debugger.INS.OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xD4 */ [Debugger.INS.CNC, Debugger.TYPE_IMM],
- /* 0xD5 */ [Debugger.INS.PUSH, Debugger.TYPE_DE],
- /* 0xD6 */ [Debugger.INS.SUI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xD7 */ [Debugger.INS.RST],
- /* 0xD8 */ [Debugger.INS.RC],
- /* 0xD9 */ [Debugger.INS.RET, Debugger.TYPE_UNDOC],
- /* 0xDA */ [Debugger.INS.JC, Debugger.TYPE_IMM],
- /* 0xDB */ [Debugger.INS.IN, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xDC */ [Debugger.INS.CC, Debugger.TYPE_IMM],
- /* 0xDD */ [Debugger.INS.CALL, Debugger.TYPE_IMM | Debugger.TYPE_UNDOC],
- /* 0xDE */ [Debugger.INS.SBI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xDF */ [Debugger.INS.RST],
- /* 0xE0 */ [Debugger.INS.RPO],
- /* 0xE1 */ [Debugger.INS.POP, Debugger.TYPE_HL],
- /* 0xE2 */ [Debugger.INS.JPO, Debugger.TYPE_IMM],
- /* 0xE3 */ [Debugger.INS.XTHL],
- /* 0xE4 */ [Debugger.INS.CPO, Debugger.TYPE_IMM],
- /* 0xE5 */ [Debugger.INS.PUSH, Debugger.TYPE_HL],
- /* 0xE6 */ [Debugger.INS.ANI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xE7 */ [Debugger.INS.RST],
- /* 0xE8 */ [Debugger.INS.RPE],
- /* 0xE9 */ [Debugger.INS.PCHL],
- /* 0xEA */ [Debugger.INS.JPE, Debugger.TYPE_IMM],
- /* 0xEB */ [Debugger.INS.XCHG],
- /* 0xEC */ [Debugger.INS.CPE, Debugger.TYPE_IMM],
- /* 0xED */ [Debugger.INS.CALL, Debugger.TYPE_IMM | Debugger.TYPE_UNDOC],
- /* 0xEE */ [Debugger.INS.XRI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xEF */ [Debugger.INS.RST],
- /* 0xF0 */ [Debugger.INS.RP],
- /* 0xF1 */ [Debugger.INS.POP, Debugger.TYPE_PS],
- /* 0xF2 */ [Debugger.INS.JP, Debugger.TYPE_IMM],
- /* 0xF3 */ [Debugger.INS.DI],
- /* 0xF4 */ [Debugger.INS.CP, Debugger.TYPE_IMM],
- /* 0xF5 */ [Debugger.INS.PUSH, Debugger.TYPE_PS],
- /* 0xF6 */ [Debugger.INS.ORI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xF7 */ [Debugger.INS.RST],
- /* 0xF8 */ [Debugger.INS.RM],
- /* 0xF9 */ [Debugger.INS.SPHL],
- /* 0xFA */ [Debugger.INS.JM, Debugger.TYPE_IMM],
- /* 0xFB */ [Debugger.INS.EI],
- /* 0xFC */ [Debugger.INS.CM, Debugger.TYPE_IMM],
- /* 0xFD */ [Debugger.INS.CALL, Debugger.TYPE_IMM | Debugger.TYPE_UNDOC],
- /* 0xFE */ [Debugger.INS.CPI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
- /* 0xFF */ [Debugger.INS.RST]
+ /* 0x00 */ [Debugger.INS.NOP],
+ /* 0x01 */ [Debugger.INS.LXI, Debugger.TYPE_BC, Debugger.TYPE_IMM],
+ /* 0x02 */ [Debugger.INS.STAX, Debugger.TYPE_BC | Debugger.TYPE_MEM],
+ /* 0x03 */ [Debugger.INS.INX, Debugger.TYPE_BC],
+ /* 0x04 */ [Debugger.INS.INR, Debugger.TYPE_B],
+ /* 0x05 */ [Debugger.INS.DCR, Debugger.TYPE_B],
+ /* 0x06 */ [Debugger.INS.MVI, Debugger.TYPE_B, Debugger.TYPE_IMM],
+ /* 0x07 */ [Debugger.INS.RLC],
+ /* 0x08 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
+ /* 0x09 */ [Debugger.INS.DAD, Debugger.TYPE_BC | Debugger.TYPE_IN], // REG_HL is the implied (unlisted) destination
+ /* 0x0A */ [Debugger.INS.LDAX, Debugger.TYPE_BC | Debugger.TYPE_MEM],
+ /* 0x0B */ [Debugger.INS.DCX, Debugger.TYPE_BC],
+ /* 0x0C */ [Debugger.INS.INR, Debugger.TYPE_C],
+ /* 0x0D */ [Debugger.INS.DCR, Debugger.TYPE_C],
+ /* 0x0E */ [Debugger.INS.MVI, Debugger.TYPE_C, Debugger.TYPE_IMM],
+ /* 0x0F */ [Debugger.INS.RRC],
+ /* 0x10 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
+ /* 0x11 */ [Debugger.INS.LXI, Debugger.TYPE_DE, Debugger.TYPE_IMM],
+ /* 0x12 */ [Debugger.INS.STAX, Debugger.TYPE_DE | Debugger.TYPE_MEM],
+ /* 0x13 */ [Debugger.INS.INX, Debugger.TYPE_DE],
+ /* 0x14 */ [Debugger.INS.INR, Debugger.TYPE_D],
+ /* 0x15 */ [Debugger.INS.DCR, Debugger.TYPE_D],
+ /* 0x16 */ [Debugger.INS.MVI, Debugger.TYPE_D, Debugger.TYPE_IMM],
+ /* 0x17 */ [Debugger.INS.RAL],
+ /* 0x18 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
+ /* 0x19 */ [Debugger.INS.DAD, Debugger.TYPE_DE | Debugger.TYPE_IN], // REG_HL is the implied (unlisted) destination
+ /* 0x1A */ [Debugger.INS.LDAX, Debugger.TYPE_DE | Debugger.TYPE_MEM],
+ /* 0x1B */ [Debugger.INS.DCX, Debugger.TYPE_DE],
+ /* 0x1C */ [Debugger.INS.INR, Debugger.TYPE_E],
+ /* 0x1D */ [Debugger.INS.DCR, Debugger.TYPE_E],
+ /* 0x1E */ [Debugger.INS.MVI, Debugger.TYPE_E, Debugger.TYPE_IMM],
+ /* 0x1F */ [Debugger.INS.RAR],
+ /* 0x20 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
+ /* 0x21 */ [Debugger.INS.LXI, Debugger.TYPE_HL, Debugger.TYPE_IMM],
+ /* 0x22 */ [Debugger.INS.SHLD, Debugger.TYPE_IMM | Debugger.TYPE_WORD | Debugger.TYPE_MEM],
+ /* 0x23 */ [Debugger.INS.INX, Debugger.TYPE_HL],
+ /* 0x24 */ [Debugger.INS.INR, Debugger.TYPE_H],
+ /* 0x25 */ [Debugger.INS.DCR, Debugger.TYPE_H],
+ /* 0x26 */ [Debugger.INS.MVI, Debugger.TYPE_H, Debugger.TYPE_IMM],
+ /* 0x27 */ [Debugger.INS.DAA],
+ /* 0x28 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
+ /* 0x29 */ [Debugger.INS.DAD, Debugger.TYPE_HL | Debugger.TYPE_IN], // REG_HL is the implied (unlisted) destination
+ /* 0x2A */ [Debugger.INS.LHLD, Debugger.TYPE_IMM | Debugger.TYPE_WORD | Debugger.TYPE_MEM],
+ /* 0x2B */ [Debugger.INS.DCX, Debugger.TYPE_HL],
+ /* 0x2C */ [Debugger.INS.INR, Debugger.TYPE_L],
+ /* 0x2D */ [Debugger.INS.DCR, Debugger.TYPE_L],
+ /* 0x2E */ [Debugger.INS.MVI, Debugger.TYPE_L, Debugger.TYPE_IMM],
+ /* 0x2F */ [Debugger.INS.CMA],
+ /* 0x30 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
+ /* 0x31 */ [Debugger.INS.LXI, Debugger.TYPE_SP, Debugger.TYPE_IMM],
+ /* 0x32 */ [Debugger.INS.STA, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_MEM],
+ /* 0x33 */ [Debugger.INS.INX, Debugger.TYPE_SP],
+ /* 0x34 */ [Debugger.INS.INR, Debugger.TYPE_M],
+ /* 0x35 */ [Debugger.INS.DCR, Debugger.TYPE_M],
+ /* 0x36 */ [Debugger.INS.MVI, Debugger.TYPE_M, Debugger.TYPE_IMM],
+ /* 0x37 */ [Debugger.INS.STC],
+ /* 0x38 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC],
+ /* 0x39 */ [Debugger.INS.DAD, Debugger.TYPE_SP | Debugger.TYPE_IN], // REG_HL is the implied (unlisted) destination
+ /* 0x3A */ [Debugger.INS.LDA, Debugger.TYPE_IMM | Debugger.TYPE_BYTE | Debugger.TYPE_MEM],
+ /* 0x3B */ [Debugger.INS.DCX, Debugger.TYPE_SP],
+ /* 0x3C */ [Debugger.INS.INR, Debugger.TYPE_A],
+ /* 0x3D */ [Debugger.INS.DCR, Debugger.TYPE_A],
+ /* 0x3E */ [Debugger.INS.MVI, Debugger.TYPE_A, Debugger.TYPE_IMM],
+ /* 0x3F */ [Debugger.INS.CMC],
+ /* 0x40 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_B],
+ /* 0x41 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_C],
+ /* 0x42 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_D],
+ /* 0x43 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_E],
+ /* 0x44 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_H],
+ /* 0x45 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_L],
+ /* 0x46 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_M],
+ /* 0x47 */ [Debugger.INS.MOV, Debugger.TYPE_B, Debugger.TYPE_A],
+ /* 0x48 */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_B],
+ /* 0x49 */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_C],
+ /* 0x4A */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_D],
+ /* 0x4B */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_E],
+ /* 0x4C */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_H],
+ /* 0x4D */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_L],
+ /* 0x4E */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_M],
+ /* 0x4F */ [Debugger.INS.MOV, Debugger.TYPE_C, Debugger.TYPE_A],
+ /* 0x50 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_B],
+ /* 0x51 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_C],
+ /* 0x52 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_D],
+ /* 0x53 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_E],
+ /* 0x54 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_H],
+ /* 0x55 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_L],
+ /* 0x56 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_M],
+ /* 0x57 */ [Debugger.INS.MOV, Debugger.TYPE_D, Debugger.TYPE_A],
+ /* 0x58 */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_B],
+ /* 0x59 */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_C],
+ /* 0x5A */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_D],
+ /* 0x5B */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_E],
+ /* 0x5C */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_H],
+ /* 0x5D */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_L],
+ /* 0x5E */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_M],
+ /* 0x5F */ [Debugger.INS.MOV, Debugger.TYPE_E, Debugger.TYPE_A],
+ /* 0x60 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_B],
+ /* 0x61 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_C],
+ /* 0x62 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_D],
+ /* 0x63 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_E],
+ /* 0x64 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_H],
+ /* 0x65 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_L],
+ /* 0x66 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_M],
+ /* 0x67 */ [Debugger.INS.MOV, Debugger.TYPE_H, Debugger.TYPE_A],
+ /* 0x68 */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_B],
+ /* 0x69 */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_C],
+ /* 0x6A */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_D],
+ /* 0x6B */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_E],
+ /* 0x6C */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_H],
+ /* 0x6D */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_L],
+ /* 0x6E */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_M],
+ /* 0x6F */ [Debugger.INS.MOV, Debugger.TYPE_L, Debugger.TYPE_A],
+ /* 0x70 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_B],
+ /* 0x71 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_C],
+ /* 0x72 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_D],
+ /* 0x73 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_E],
+ /* 0x74 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_H],
+ /* 0x75 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_L],
+ /* 0x76 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_M],
+ /* 0x77 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_A],
+ /* 0x78 */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_B],
+ /* 0x79 */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_C],
+ /* 0x7A */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_D],
+ /* 0x7B */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_E],
+ /* 0x7C */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_H],
+ /* 0x7D */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_L],
+ /* 0x7E */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_M],
+ /* 0x7F */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_A],
+ /* 0x80 */ [Debugger.INS.ADD, Debugger.TYPE_B],
+ /* 0x81 */ [Debugger.INS.ADD, Debugger.TYPE_C],
+ /* 0x82 */ [Debugger.INS.ADD, Debugger.TYPE_D],
+ /* 0x83 */ [Debugger.INS.ADD, Debugger.TYPE_E],
+ /* 0x84 */ [Debugger.INS.ADD, Debugger.TYPE_H],
+ /* 0x85 */ [Debugger.INS.ADD, Debugger.TYPE_L],
+ /* 0x86 */ [Debugger.INS.ADD, Debugger.TYPE_M],
+ /* 0x87 */ [Debugger.INS.ADD, Debugger.TYPE_A],
+ /* 0x88 */ [Debugger.INS.ADC, Debugger.TYPE_B],
+ /* 0x89 */ [Debugger.INS.ADC, Debugger.TYPE_C],
+ /* 0x8A */ [Debugger.INS.ADC, Debugger.TYPE_D],
+ /* 0x8B */ [Debugger.INS.ADC, Debugger.TYPE_E],
+ /* 0x8C */ [Debugger.INS.ADC, Debugger.TYPE_H],
+ /* 0x8D */ [Debugger.INS.ADC, Debugger.TYPE_L],
+ /* 0x8E */ [Debugger.INS.ADC, Debugger.TYPE_M],
+ /* 0x8F */ [Debugger.INS.ADC, Debugger.TYPE_A],
+ /* 0x90 */ [Debugger.INS.SUB, Debugger.TYPE_B],
+ /* 0x91 */ [Debugger.INS.SUB, Debugger.TYPE_C],
+ /* 0x92 */ [Debugger.INS.SUB, Debugger.TYPE_D],
+ /* 0x93 */ [Debugger.INS.SUB, Debugger.TYPE_E],
+ /* 0x94 */ [Debugger.INS.SUB, Debugger.TYPE_H],
+ /* 0x95 */ [Debugger.INS.SUB, Debugger.TYPE_L],
+ /* 0x96 */ [Debugger.INS.SUB, Debugger.TYPE_M],
+ /* 0x97 */ [Debugger.INS.SUB, Debugger.TYPE_A],
+ /* 0x98 */ [Debugger.INS.SBB, Debugger.TYPE_B],
+ /* 0x99 */ [Debugger.INS.SBB, Debugger.TYPE_C],
+ /* 0x9A */ [Debugger.INS.SBB, Debugger.TYPE_D],
+ /* 0x9B */ [Debugger.INS.SBB, Debugger.TYPE_E],
+ /* 0x9C */ [Debugger.INS.SBB, Debugger.TYPE_H],
+ /* 0x9D */ [Debugger.INS.SBB, Debugger.TYPE_L],
+ /* 0x9E */ [Debugger.INS.SBB, Debugger.TYPE_M],
+ /* 0x9F */ [Debugger.INS.SBB, Debugger.TYPE_A],
+ /* 0xA0 */ [Debugger.INS.ANA, Debugger.TYPE_B],
+ /* 0xA1 */ [Debugger.INS.ANA, Debugger.TYPE_C],
+ /* 0xA2 */ [Debugger.INS.ANA, Debugger.TYPE_D],
+ /* 0xA3 */ [Debugger.INS.ANA, Debugger.TYPE_E],
+ /* 0xA4 */ [Debugger.INS.ANA, Debugger.TYPE_H],
+ /* 0xA5 */ [Debugger.INS.ANA, Debugger.TYPE_L],
+ /* 0xA6 */ [Debugger.INS.ANA, Debugger.TYPE_M],
+ /* 0xA7 */ [Debugger.INS.ANA, Debugger.TYPE_A],
+ /* 0xA8 */ [Debugger.INS.XRA, Debugger.TYPE_B],
+ /* 0xA9 */ [Debugger.INS.XRA, Debugger.TYPE_C],
+ /* 0xAA */ [Debugger.INS.XRA, Debugger.TYPE_D],
+ /* 0xAB */ [Debugger.INS.XRA, Debugger.TYPE_E],
+ /* 0xAC */ [Debugger.INS.XRA, Debugger.TYPE_H],
+ /* 0xAD */ [Debugger.INS.XRA, Debugger.TYPE_L],
+ /* 0xAE */ [Debugger.INS.XRA, Debugger.TYPE_M],
+ /* 0xAF */ [Debugger.INS.XRA, Debugger.TYPE_A],
+ /* 0xB0 */ [Debugger.INS.ORA, Debugger.TYPE_B],
+ /* 0xB1 */ [Debugger.INS.ORA, Debugger.TYPE_C],
+ /* 0xB2 */ [Debugger.INS.ORA, Debugger.TYPE_D],
+ /* 0xB3 */ [Debugger.INS.ORA, Debugger.TYPE_E],
+ /* 0xB4 */ [Debugger.INS.ORA, Debugger.TYPE_H],
+ /* 0xB5 */ [Debugger.INS.ORA, Debugger.TYPE_L],
+ /* 0xB6 */ [Debugger.INS.ORA, Debugger.TYPE_M],
+ /* 0xB7 */ [Debugger.INS.ORA, Debugger.TYPE_A],
+ /* 0xB8 */ [Debugger.INS.CMP, Debugger.TYPE_B],
+ /* 0xB9 */ [Debugger.INS.CMP, Debugger.TYPE_C],
+ /* 0xBA */ [Debugger.INS.CMP, Debugger.TYPE_D],
+ /* 0xBB */ [Debugger.INS.CMP, Debugger.TYPE_E],
+ /* 0xBC */ [Debugger.INS.CMP, Debugger.TYPE_H],
+ /* 0xBD */ [Debugger.INS.CMP, Debugger.TYPE_L],
+ /* 0xBE */ [Debugger.INS.CMP, Debugger.TYPE_M],
+ /* 0xBF */ [Debugger.INS.CMP, Debugger.TYPE_A],
+ /* 0xC0 */ [Debugger.INS.RNZ],
+ /* 0xC1 */ [Debugger.INS.POP, Debugger.TYPE_BC],
+ /* 0xC2 */ [Debugger.INS.JNZ, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xC3 */ [Debugger.INS.JMP, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xC4 */ [Debugger.INS.CNZ, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xC5 */ [Debugger.INS.PUSH, Debugger.TYPE_BC],
+ /* 0xC6 */ [Debugger.INS.ADI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xC7 */ [Debugger.INS.RST],
+ /* 0xC8 */ [Debugger.INS.RZ],
+ /* 0xC9 */ [Debugger.INS.RET],
+ /* 0xCA */ [Debugger.INS.JZ, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xCB */ [Debugger.INS.JMP, Debugger.TYPE_IMM | Debugger.TYPE_WORD | Debugger.TYPE_UNDOC],
+ /* 0xCC */ [Debugger.INS.CZ, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xCD */ [Debugger.INS.CALL, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xCE */ [Debugger.INS.ACI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xCF */ [Debugger.INS.RST],
+ /* 0xD0 */ [Debugger.INS.RNC],
+ /* 0xD1 */ [Debugger.INS.POP, Debugger.TYPE_DE],
+ /* 0xD2 */ [Debugger.INS.JNC, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xD3 */ [Debugger.INS.OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xD4 */ [Debugger.INS.CNC, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xD5 */ [Debugger.INS.PUSH, Debugger.TYPE_DE],
+ /* 0xD6 */ [Debugger.INS.SUI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xD7 */ [Debugger.INS.RST],
+ /* 0xD8 */ [Debugger.INS.RC],
+ /* 0xD9 */ [Debugger.INS.RET, Debugger.TYPE_UNDOC],
+ /* 0xDA */ [Debugger.INS.JC, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xDB */ [Debugger.INS.IN, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xDC */ [Debugger.INS.CC, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xDD */ [Debugger.INS.CALL, Debugger.TYPE_IMM | Debugger.TYPE_WORD | Debugger.TYPE_UNDOC],
+ /* 0xDE */ [Debugger.INS.SBI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xDF */ [Debugger.INS.RST],
+ /* 0xE0 */ [Debugger.INS.RPO],
+ /* 0xE1 */ [Debugger.INS.POP, Debugger.TYPE_HL],
+ /* 0xE2 */ [Debugger.INS.JPO, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xE3 */ [Debugger.INS.XTHL],
+ /* 0xE4 */ [Debugger.INS.CPO, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xE5 */ [Debugger.INS.PUSH, Debugger.TYPE_HL],
+ /* 0xE6 */ [Debugger.INS.ANI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xE7 */ [Debugger.INS.RST],
+ /* 0xE8 */ [Debugger.INS.RPE],
+ /* 0xE9 */ [Debugger.INS.PCHL],
+ /* 0xEA */ [Debugger.INS.JPE, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xEB */ [Debugger.INS.XCHG],
+ /* 0xEC */ [Debugger.INS.CPE, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xED */ [Debugger.INS.CALL, Debugger.TYPE_IMM | Debugger.TYPE_WORD | Debugger.TYPE_UNDOC],
+ /* 0xEE */ [Debugger.INS.XRI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xEF */ [Debugger.INS.RST],
+ /* 0xF0 */ [Debugger.INS.RP],
+ /* 0xF1 */ [Debugger.INS.POP, Debugger.TYPE_PS],
+ /* 0xF2 */ [Debugger.INS.JP, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xF3 */ [Debugger.INS.DI],
+ /* 0xF4 */ [Debugger.INS.CP, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xF5 */ [Debugger.INS.PUSH, Debugger.TYPE_PS],
+ /* 0xF6 */ [Debugger.INS.ORI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xF7 */ [Debugger.INS.RST],
+ /* 0xF8 */ [Debugger.INS.RM],
+ /* 0xF9 */ [Debugger.INS.SPHL],
+ /* 0xFA */ [Debugger.INS.JM, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xFB */ [Debugger.INS.EI],
+ /* 0xFC */ [Debugger.INS.CM, Debugger.TYPE_IMM | Debugger.TYPE_WORD],
+ /* 0xFD */ [Debugger.INS.CALL, Debugger.TYPE_IMM | Debugger.TYPE_WORD | Debugger.TYPE_UNDOC],
+ /* 0xFE */ [Debugger.INS.CPI, Debugger.TYPE_IMM | Debugger.TYPE_BYTE],
+ /* 0xFF */ [Debugger.INS.RST]
];
+
/*
* Message categories supported by the messageEnabled() function and other assorted message
* functions. Each category has a corresponding bit value that can be combined (ie, OR'ed) as
@@ -1015,8 +1017,8 @@ if (DEBUGGER) {
Debugger.prototype.parseAddr = function(sAddr, fCode, fNoChecks, fPrint)
{
var dbgAddr;
- var addr = null;
var dbgAddrNext = (fCode? this.dbgAddrNextCode : this.dbgAddrNextData);
+ var addr = dbgAddrNext.addr;
if (sAddr !== undefined) {
sAddr = this.parseReference(sAddr);
dbgAddr = this.findSymbolAddr(sAddr);
@@ -1069,7 +1071,7 @@ if (DEBUGGER) {
*/
Debugger.prototype.toHexOffset = function(off)
{
- return str.toHex(off);
+ return str.toHex(off, 4);
};
/**
@@ -1382,12 +1384,13 @@ if (DEBUGGER) {
case Debugger.REG_E:
case Debugger.REG_H:
case Debugger.REG_L:
- case Debugger.REG_PS:
+ case Debugger.REG_F:
cch = 2;
break;
case Debugger.REG_BC:
case Debugger.REG_DE:
case Debugger.REG_HL:
+ case Debugger.REG_PS:
case Debugger.REG_SP:
case Debugger.REG_PC:
cch = 4;
@@ -1413,6 +1416,9 @@ if (DEBUGGER) {
case Debugger.REG_A:
n = cpu.regA;
break;
+ case Debugger.REG_F:
+ n = cpu.getPS() & 0xff;
+ break;
case Debugger.REG_B:
n = cpu.regB;
break;
@@ -1440,15 +1446,15 @@ if (DEBUGGER) {
case Debugger.REG_HL:
n = (cpu.regH << 8) | cpu.regL;
break;
+ case Debugger.REG_PS:
+ n = (cpu.regA << 8) | (cpu.getPS() & 0xff);
+ break;
case Debugger.REG_SP:
n = cpu.getSP();
break;
case Debugger.REG_PC:
n = cpu.getPC();
break;
- case Debugger.REG_PS:
- n = cpu.getPS();
- break;
default:
break;
}
@@ -2423,11 +2429,10 @@ if (DEBUGGER) {
var aOpDesc = this.aaOpDescs[bOpcode];
var iIns = aOpDesc[0];
+ var sOperands = "";
+ var typeSizeDefault = null;
var sOpcode = asOpcodes[iIns];
var cOperands = aOpDesc.length - 1;
- var sOperands = "";
-
- var fComplete = true;
for (var iOperand = 1; iOperand <= cOperands; iOperand++) {
@@ -2438,8 +2443,11 @@ if (DEBUGGER) {
var typeSize = type & Debugger.TYPE_SIZE;
if (typeSize == Debugger.TYPE_NONE) {
- continue;
+ if (typeSizeDefault == null) continue;
+ typeSize = typeSizeDefault;
}
+ typeSizeDefault = typeSize;
+
var typeMode = type & Debugger.TYPE_MODE;
if (typeMode == Debugger.TYPE_IMM) {
sOperand = this.getImmOperand(type, dbgAddr);
@@ -2464,12 +2472,12 @@ if (DEBUGGER) {
} while (dbgAddrIns.addr != dbgAddr.addr);
}
- sLine += str.pad(sBytes, dbgAddrIns.fAddr32? 24 : 16);
+ sLine += str.pad(sBytes, 11);
sLine += str.pad(sOpcode, 8);
if (sOperands) sLine += ' ' + sOperands;
- if (sComment && fComplete) {
- sLine = str.pad(sLine, dbgAddrIns.fAddr32? 74 : 56) + ';' + sComment;
+ if (sComment) {
+ sLine = str.pad(sLine, 56) + ';' + sComment;
if (!this.cpu.flags.fChecksum) {
sLine += (nSequence != null? '=' + nSequence.toString() : "");
} else {
@@ -2615,13 +2623,14 @@ if (DEBUGGER) {
{
var s;
s = this.getRegOutput(Debugger.REG_A) +
+ this.getRegOutput(Debugger.REG_F) +
this.getRegOutput(Debugger.REG_B) +
this.getRegOutput(Debugger.REG_C) +
this.getRegOutput(Debugger.REG_D) +
this.getRegOutput(Debugger.REG_E) +
this.getRegOutput(Debugger.REG_H) +
this.getRegOutput(Debugger.REG_L) +
- this.getRegOutput(Debugger.REG_PS) +
+ this.getRegOutput(Debugger.REG_SP) +
this.getFlagOutput('I') + this.getFlagOutput('S') + this.getFlagOutput('Z') +
this.getFlagOutput('A') + this.getFlagOutput('P') + this.getFlagOutput('C');
return s;
diff --git a/modules/pcjs/lib/debugger.js b/modules/pcjs/lib/debugger.js
index 4b8c89726..061401127 100644
--- a/modules/pcjs/lib/debugger.js
+++ b/modules/pcjs/lib/debugger.js
@@ -2667,7 +2667,7 @@ if (DEBUGGER) {
};
/**
- * parseAddrOptions(dbdAddr, sOptions)
+ * parseAddrOptions(dbgAddr, sOptions)
*
* @this {Debugger}
* @param {DbgAddr} dbgAddr