summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/t11/t11dasm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/t11/t11dasm.cpp')
-rw-r--r--src/devices/cpu/t11/t11dasm.cpp182
1 files changed, 92 insertions, 90 deletions
diff --git a/src/devices/cpu/t11/t11dasm.cpp b/src/devices/cpu/t11/t11dasm.cpp
index b1936566f9c..c99789163ac 100644
--- a/src/devices/cpu/t11/t11dasm.cpp
+++ b/src/devices/cpu/t11/t11dasm.cpp
@@ -10,17 +10,18 @@
*/
#include "emu.h"
-#include "debugger.h"
-#include "t11.h"
+#include "t11dasm.h"
-static const char *const regs[8] = { "R0", "R1", "R2", "R3", "R4", "R5", "SP", "PC" };
+const char *const t11_disassembler::regs[8] = { "R0", "R1", "R2", "R3", "R4", "R5", "SP", "PC" };
-static const uint8_t *rombase;
-static offs_t pcbase;
-
-#define PARAM_WORD(v) ((v) = rombase[pc - pcbase] | (rombase[pc + 1 - pcbase] << 8), pc += 2)
+u16 t11_disassembler::r16p(offs_t &pc, const data_buffer &opcodes)
+{
+ u16 r = opcodes.r16(pc);
+ pc += 2;
+ return r;
+}
-static unsigned MakeEA (char *ea, int lo, unsigned pc, int width)
+std::string t11_disassembler::MakeEA (int lo, offs_t &pc, int width, const data_buffer &opcodes)
{
int reg, pm;
@@ -31,71 +32,67 @@ static unsigned MakeEA (char *ea, int lo, unsigned pc, int width)
switch ((lo >> 3) & 7)
{
case 0:
- sprintf (ea, "%s", regs[reg]);
+ return util::string_format ("%s", regs[reg]);
break;
case 1:
- sprintf (ea, "(%s)", regs[reg]);
+ return util::string_format ("(%s)", regs[reg]);
break;
case 2:
if (reg == 7)
{
- PARAM_WORD (pm);
- sprintf (ea, "#$%0*X", width, pm & ((width == 2) ? 0xff : 0xffff));
+ pm = r16p(pc, opcodes);
+ return util::string_format ("#$%0*X", width, pm & ((width == 2) ? 0xff : 0xffff));
}
else
{
- sprintf (ea, "(%s)+", regs[reg]);
+ return util::string_format ("(%s)+", regs[reg]);
}
break;
case 3:
if (reg == 7)
{
- PARAM_WORD (pm);
- sprintf (ea, "$%04X", pm &= 0xffff);
+ pm = r16p(pc, opcodes);
+ return util::string_format ( "$%04X", pm &= 0xffff);
}
else
{
- sprintf (ea, "@(%s)+", regs[reg]);
+ return util::string_format ("@(%s)+", regs[reg]);
}
break;
case 4:
- sprintf (ea, "-(%s)", regs[reg]);
+ return util::string_format ("-(%s)", regs[reg]);
break;
case 5:
- sprintf (ea, "@-(%s)", regs[reg]);
+ return util::string_format ("@-(%s)", regs[reg]);
break;
case 6:
- PARAM_WORD (pm);
- sprintf(ea, "%s$%X(%s)",
+ pm = r16p(pc, opcodes);
+ return util::string_format ("%s$%X(%s)",
(pm&0x8000)?"-":"",
(pm&0x8000)?-(signed short)pm:pm,
regs[reg]);
break;
case 7:
- PARAM_WORD (pm);
- sprintf(ea, "@%s$%X(%s)",
+ pm = r16p(pc, opcodes);
+ return util::string_format ("@%s$%X(%s)",
(pm&0x8000)?"-":"",
(pm&0x8000)?-(signed short)pm:pm,
regs[reg]);
break;
}
-
- return pc;
+ return "";
}
-CPU_DISASSEMBLE(t11)
+offs_t t11_disassembler::disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer &params)
{
- char ea1[32], ea2[32];
- unsigned PC = pc;
+ offs_t PC = pc;
uint16_t op, lo, hi, addr;
int16_t offset;
uint32_t flags = 0;
+ std::string ea1, ea2;
- rombase = oprom;
- pcbase = pc;
-
- PARAM_WORD(op);
+ op = r16p(pc, opcodes);
lo = op & 077;
hi = (op >> 6) & 077;
@@ -106,7 +103,7 @@ CPU_DISASSEMBLE(t11)
{
case 0x00: util::stream_format(stream, "HALT"); break;
case 0x01: util::stream_format(stream, "WAIT"); break;
- case 0x02: util::stream_format(stream, "RTI"); flags = DASMFLAG_STEP_OUT; break;
+ case 0x02: util::stream_format(stream, "RTI"); flags = STEP_OUT; break;
case 0x03: util::stream_format(stream, "BPT"); break;
case 0x04: util::stream_format(stream, "IOT"); break;
case 0x05: util::stream_format(stream, "RESET"); break;
@@ -115,7 +112,7 @@ CPU_DISASSEMBLE(t11)
}
break;
case 0x0040:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "JMP %s", ea1);
break;
case 0x0080:
@@ -126,7 +123,7 @@ CPU_DISASSEMBLE(t11)
util::stream_format(stream, "RTS");
else
util::stream_format(stream, "RTS %s", regs[lo & 7]);
- flags = DASMFLAG_STEP_OUT;
+ flags = STEP_OUT;
break;
case 040:
case 050:
@@ -157,7 +154,7 @@ CPU_DISASSEMBLE(t11)
}
break;
case 0x00c0:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "SWAB %s", ea1);
break;
case 0x0100: case 0x0140: case 0x0180: case 0x01c0:
@@ -190,66 +187,66 @@ CPU_DISASSEMBLE(t11)
break;
case 0x0800: case 0x0840: case 0x0880: case 0x08c0:
case 0x0900: case 0x0940: case 0x0980: case 0x09c0:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
if ( (hi & 7) == 7 )
util::stream_format(stream, "JSR %s", ea1);
else
util::stream_format(stream, "JSR %s,%s", regs[hi & 7], ea1);
- flags = DASMFLAG_STEP_OVER;
+ flags = STEP_OVER;
break;
case 0x0a00:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "CLR %s", ea1);
break;
case 0x0a40:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "COM %s", ea1);
break;
case 0x0a80:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "INC %s", ea1);
break;
case 0x0ac0:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "DEC %s", ea1);
break;
case 0x0b00:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "NEG %s", ea1);
break;
case 0x0b40:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "ADC %s", ea1);
break;
case 0x0b80:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "SBC %s", ea1);
break;
case 0x0bc0:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "TST %s", ea1);
break;
case 0x0c00:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "ROR %s", ea1);
break;
case 0x0c40:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "ROL %s", ea1);
break;
case 0x0c80:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "ASR %s", ea1);
break;
case 0x0cc0:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "ASL %s", ea1);
break;
/* case 0x0d00:
util::stream_format(stream, "MARK #$%X", lo);
break;*/
case 0x0dc0:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "SXT %s", ea1);
break;
case 0x1000: case 0x1040: case 0x1080: case 0x10c0: case 0x1100: case 0x1140: case 0x1180: case 0x11c0:
@@ -260,8 +257,8 @@ CPU_DISASSEMBLE(t11)
case 0x1a00: case 0x1a40: case 0x1a80: case 0x1ac0: case 0x1b00: case 0x1b40: case 0x1b80: case 0x1bc0:
case 0x1c00: case 0x1c40: case 0x1c80: case 0x1cc0: case 0x1d00: case 0x1d40: case 0x1d80: case 0x1dc0:
case 0x1e00: case 0x1e40: case 0x1e80: case 0x1ec0: case 0x1f00: case 0x1f40: case 0x1f80: case 0x1fc0:
- pc = MakeEA (ea1, hi, pc, 4);
- pc = MakeEA (ea2, lo, pc, 4);
+ ea1 = MakeEA (hi, pc, 4, opcodes);
+ ea2 = MakeEA (lo, pc, 4, opcodes);
if (lo == 046) /* MOV src,-(SP) */
util::stream_format(stream, "PUSH %s", ea1);
else
@@ -278,8 +275,8 @@ CPU_DISASSEMBLE(t11)
case 0x2a00: case 0x2a40: case 0x2a80: case 0x2ac0: case 0x2b00: case 0x2b40: case 0x2b80: case 0x2bc0:
case 0x2c00: case 0x2c40: case 0x2c80: case 0x2cc0: case 0x2d00: case 0x2d40: case 0x2d80: case 0x2dc0:
case 0x2e00: case 0x2e40: case 0x2e80: case 0x2ec0: case 0x2f00: case 0x2f40: case 0x2f80: case 0x2fc0:
- pc = MakeEA (ea1, hi, pc, 4);
- pc = MakeEA (ea2, lo, pc, 4);
+ ea1 = MakeEA (hi, pc, 4, opcodes);
+ ea2 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "CMP %s,%s", ea1, ea2);
break;
case 0x3000: case 0x3040: case 0x3080: case 0x30c0: case 0x3100: case 0x3140: case 0x3180: case 0x31c0:
@@ -290,8 +287,8 @@ CPU_DISASSEMBLE(t11)
case 0x3a00: case 0x3a40: case 0x3a80: case 0x3ac0: case 0x3b00: case 0x3b40: case 0x3b80: case 0x3bc0:
case 0x3c00: case 0x3c40: case 0x3c80: case 0x3cc0: case 0x3d00: case 0x3d40: case 0x3d80: case 0x3dc0:
case 0x3e00: case 0x3e40: case 0x3e80: case 0x3ec0: case 0x3f00: case 0x3f40: case 0x3f80: case 0x3fc0:
- pc = MakeEA (ea1, hi, pc, 4);
- pc = MakeEA (ea2, lo, pc, 4);
+ ea1 = MakeEA (hi, pc, 4, opcodes);
+ ea2 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "BIT %s,%s", ea1, ea2);
break;
case 0x4000: case 0x4040: case 0x4080: case 0x40c0: case 0x4100: case 0x4140: case 0x4180: case 0x41c0:
@@ -302,8 +299,8 @@ CPU_DISASSEMBLE(t11)
case 0x4a00: case 0x4a40: case 0x4a80: case 0x4ac0: case 0x4b00: case 0x4b40: case 0x4b80: case 0x4bc0:
case 0x4c00: case 0x4c40: case 0x4c80: case 0x4cc0: case 0x4d00: case 0x4d40: case 0x4d80: case 0x4dc0:
case 0x4e00: case 0x4e40: case 0x4e80: case 0x4ec0: case 0x4f00: case 0x4f40: case 0x4f80: case 0x4fc0:
- pc = MakeEA (ea1, hi, pc, 4);
- pc = MakeEA (ea2, lo, pc, 4);
+ ea1 = MakeEA (hi, pc, 4, opcodes);
+ ea2 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "BIC %s,%s", ea1, ea2);
break;
case 0x5000: case 0x5040: case 0x5080: case 0x50c0: case 0x5100: case 0x5140: case 0x5180: case 0x51c0:
@@ -314,8 +311,8 @@ CPU_DISASSEMBLE(t11)
case 0x5a00: case 0x5a40: case 0x5a80: case 0x5ac0: case 0x5b00: case 0x5b40: case 0x5b80: case 0x5bc0:
case 0x5c00: case 0x5c40: case 0x5c80: case 0x5cc0: case 0x5d00: case 0x5d40: case 0x5d80: case 0x5dc0:
case 0x5e00: case 0x5e40: case 0x5e80: case 0x5ec0: case 0x5f00: case 0x5f40: case 0x5f80: case 0x5fc0:
- pc = MakeEA (ea1, hi, pc, 4);
- pc = MakeEA (ea2, lo, pc, 4);
+ ea1 = MakeEA (hi, pc, 4, opcodes);
+ ea2 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "BIS %s,%s", ea1, ea2);
break;
case 0x6000: case 0x6040: case 0x6080: case 0x60c0: case 0x6100: case 0x6140: case 0x6180: case 0x61c0:
@@ -326,13 +323,13 @@ CPU_DISASSEMBLE(t11)
case 0x6a00: case 0x6a40: case 0x6a80: case 0x6ac0: case 0x6b00: case 0x6b40: case 0x6b80: case 0x6bc0:
case 0x6c00: case 0x6c40: case 0x6c80: case 0x6cc0: case 0x6d00: case 0x6d40: case 0x6d80: case 0x6dc0:
case 0x6e00: case 0x6e40: case 0x6e80: case 0x6ec0: case 0x6f00: case 0x6f40: case 0x6f80: case 0x6fc0:
- pc = MakeEA (ea1, hi, pc, 4);
- pc = MakeEA (ea2, lo, pc, 4);
+ ea1 = MakeEA (hi, pc, 4, opcodes);
+ ea2 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "ADD %s,%s", ea1, ea2);
break;
case 0x7800: case 0x7840: case 0x7880: case 0x78c0: case 0x7900: case 0x7940: case 0x7980: case 0x79c0:
- pc = MakeEA (ea1, lo, pc, 4);
+ ea1 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "XOR %s,%s", regs[hi & 7], ea1);
break;
@@ -381,59 +378,59 @@ CPU_DISASSEMBLE(t11)
break;
case 0x8a00:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "CLRB %s", ea1);
break;
case 0x8a40:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "COMB %s", ea1);
break;
case 0x8a80:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "INCB %s", ea1);
break;
case 0x8ac0:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "DECB %s", ea1);
break;
case 0x8b00:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "NEGB %s", ea1);
break;
case 0x8b40:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "ADCB %s", ea1);
break;
case 0x8b80:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "SBCB %s", ea1);
break;
case 0x8bc0:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "TSTB %s", ea1);
break;
case 0x8c00:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "RORB %s", ea1);
break;
case 0x8c40:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "ROLB %s", ea1);
break;
case 0x8c80:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "ASRB %s", ea1);
break;
case 0x8cc0:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "ASLB %s", ea1);
break;
case 0x8d00:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "MTPS %s", ea1);
break;
case 0x8dc0:
- pc = MakeEA (ea1, lo, pc, 2);
+ ea1 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "MFPS %s", ea1);
break;
case 0x9000: case 0x9040: case 0x9080: case 0x90c0: case 0x9100: case 0x9140: case 0x9180: case 0x91c0:
@@ -444,8 +441,8 @@ CPU_DISASSEMBLE(t11)
case 0x9a00: case 0x9a40: case 0x9a80: case 0x9ac0: case 0x9b00: case 0x9b40: case 0x9b80: case 0x9bc0:
case 0x9c00: case 0x9c40: case 0x9c80: case 0x9cc0: case 0x9d00: case 0x9d40: case 0x9d80: case 0x9dc0:
case 0x9e00: case 0x9e40: case 0x9e80: case 0x9ec0: case 0x9f00: case 0x9f40: case 0x9f80: case 0x9fc0:
- pc = MakeEA (ea1, hi, pc, 2);
- pc = MakeEA (ea2, lo, pc, 2);
+ ea1 = MakeEA (hi, pc, 2, opcodes);
+ ea2 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "MOVB %s,%s", ea1, ea2);
break;
case 0xa000: case 0xa040: case 0xa080: case 0xa0c0: case 0xa100: case 0xa140: case 0xa180: case 0xa1c0:
@@ -456,8 +453,8 @@ CPU_DISASSEMBLE(t11)
case 0xaa00: case 0xaa40: case 0xaa80: case 0xaac0: case 0xab00: case 0xab40: case 0xab80: case 0xabc0:
case 0xac00: case 0xac40: case 0xac80: case 0xacc0: case 0xad00: case 0xad40: case 0xad80: case 0xadc0:
case 0xae00: case 0xae40: case 0xae80: case 0xaec0: case 0xaf00: case 0xaf40: case 0xaf80: case 0xafc0:
- pc = MakeEA (ea1, hi, pc, 2);
- pc = MakeEA (ea2, lo, pc, 2);
+ ea1 = MakeEA (hi, pc, 2, opcodes);
+ ea2 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "CMPB %s,%s", ea1, ea2);
break;
case 0xb000: case 0xb040: case 0xb080: case 0xb0c0: case 0xb100: case 0xb140: case 0xb180: case 0xb1c0:
@@ -468,8 +465,8 @@ CPU_DISASSEMBLE(t11)
case 0xba00: case 0xba40: case 0xba80: case 0xbac0: case 0xbb00: case 0xbb40: case 0xbb80: case 0xbbc0:
case 0xbc00: case 0xbc40: case 0xbc80: case 0xbcc0: case 0xbd00: case 0xbd40: case 0xbd80: case 0xbdc0:
case 0xbe00: case 0xbe40: case 0xbe80: case 0xbec0: case 0xbf00: case 0xbf40: case 0xbf80: case 0xbfc0:
- pc = MakeEA (ea1, hi, pc, 2);
- pc = MakeEA (ea2, lo, pc, 2);
+ ea1 = MakeEA (hi, pc, 2, opcodes);
+ ea2 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "BITB %s,%s", ea1, ea2);
break;
case 0xc000: case 0xc040: case 0xc080: case 0xc0c0: case 0xc100: case 0xc140: case 0xc180: case 0xc1c0:
@@ -480,8 +477,8 @@ CPU_DISASSEMBLE(t11)
case 0xca00: case 0xca40: case 0xca80: case 0xcac0: case 0xcb00: case 0xcb40: case 0xcb80: case 0xcbc0:
case 0xcc00: case 0xcc40: case 0xcc80: case 0xccc0: case 0xcd00: case 0xcd40: case 0xcd80: case 0xcdc0:
case 0xce00: case 0xce40: case 0xce80: case 0xcec0: case 0xcf00: case 0xcf40: case 0xcf80: case 0xcfc0:
- pc = MakeEA (ea1, hi, pc, 2);
- pc = MakeEA (ea2, lo, pc, 2);
+ ea1 = MakeEA (hi, pc, 2, opcodes);
+ ea2 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "BICB %s,%s", ea1, ea2);
break;
case 0xd000: case 0xd040: case 0xd080: case 0xd0c0: case 0xd100: case 0xd140: case 0xd180: case 0xd1c0:
@@ -492,8 +489,8 @@ CPU_DISASSEMBLE(t11)
case 0xda00: case 0xda40: case 0xda80: case 0xdac0: case 0xdb00: case 0xdb40: case 0xdb80: case 0xdbc0:
case 0xdc00: case 0xdc40: case 0xdc80: case 0xdcc0: case 0xdd00: case 0xdd40: case 0xdd80: case 0xddc0:
case 0xde00: case 0xde40: case 0xde80: case 0xdec0: case 0xdf00: case 0xdf40: case 0xdf80: case 0xdfc0:
- pc = MakeEA (ea1, hi, pc, 2);
- pc = MakeEA (ea2, lo, pc, 2);
+ ea1 = MakeEA (hi, pc, 2, opcodes);
+ ea2 = MakeEA (lo, pc, 2, opcodes);
util::stream_format(stream, "BISB %s,%s", ea1, ea2);
break;
case 0xe000: case 0xe040: case 0xe080: case 0xe0c0: case 0xe100: case 0xe140: case 0xe180: case 0xe1c0:
@@ -504,8 +501,8 @@ CPU_DISASSEMBLE(t11)
case 0xea00: case 0xea40: case 0xea80: case 0xeac0: case 0xeb00: case 0xeb40: case 0xeb80: case 0xebc0:
case 0xec00: case 0xec40: case 0xec80: case 0xecc0: case 0xed00: case 0xed40: case 0xed80: case 0xedc0:
case 0xee00: case 0xee40: case 0xee80: case 0xeec0: case 0xef00: case 0xef40: case 0xef80: case 0xefc0:
- pc = MakeEA (ea1, hi, pc, 4);
- pc = MakeEA (ea2, lo, pc, 4);
+ ea1 = MakeEA (hi, pc, 4, opcodes);
+ ea2 = MakeEA (lo, pc, 4, opcodes);
util::stream_format(stream, "SUB %s,%s", ea1, ea2);
break;
@@ -514,5 +511,10 @@ CPU_DISASSEMBLE(t11)
break;
}
- return (pc - PC) | flags | DASMFLAG_SUPPORTED;
+ return (pc - PC) | flags | SUPPORTED;
+}
+
+u32 t11_disassembler::opcode_alignment() const
+{
+ return 2;
}