summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/m6502/m6502d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/m6502/m6502d.cpp')
-rw-r--r--src/devices/cpu/m6502/m6502d.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/devices/cpu/m6502/m6502d.cpp b/src/devices/cpu/m6502/m6502d.cpp
index 589aafdf3b7..f299f77cfc6 100644
--- a/src/devices/cpu/m6502/m6502d.cpp
+++ b/src/devices/cpu/m6502/m6502d.cpp
@@ -62,6 +62,11 @@ offs_t m6502_base_disassembler::disassemble(std::ostream &stream, offs_t pc, con
flags |= 3;
break;
+ case DASM_amr:
+ util::stream_format(stream, " $%02x%02x, #$%02x, $%04x", params.r8(pc+2), params.r8(pc+1), params.r8(pc+3), uint16_t(pc + 5 + int8_t(params.r8(pc+4))));
+ flags |= 5;
+ break;
+
case DASM_bzp:
util::stream_format(stream, "%d $%02x", (opcodes.r8(pc) >> 4) & 7, params.r8(pc+1));
flags |= 2;
@@ -87,6 +92,11 @@ offs_t m6502_base_disassembler::disassemble(std::ostream &stream, offs_t pc, con
flags |= 2;
break;
+ case DASM_ima:
+ util::stream_format(stream, " #$%02x, $%02x%02x", params.r8(pc+1), params.r8(pc+3), params.r8(pc+2));
+ flags |= 4;
+ break;
+
case DASM_imm:
util::stream_format(stream, " #$%02x", params.r8(pc+1));
flags |= 2;
@@ -101,6 +111,11 @@ offs_t m6502_base_disassembler::disassemble(std::ostream &stream, offs_t pc, con
flags |= 3;
break;
+ case DASM_ipx:
+ util::stream_format(stream, " ($%02x), x", params.r8(pc+1));
+ flags |= 2;
+ break;
+
case DASM_isy:
util::stream_format(stream, " ($%02x, s), y", params.r8(pc+1));
flags |= 2;
@@ -126,6 +141,11 @@ offs_t m6502_base_disassembler::disassemble(std::ostream &stream, offs_t pc, con
flags |= 3;
break;
+ case DASM_vec:
+ util::stream_format(stream, "%d", (opcodes.r8(pc) >> 4) & 7);
+ flags |= 1;
+ break;
+
case DASM_zpb:
util::stream_format(stream, "%d $%02x, $%04x", (opcodes.r8(pc) >> 4) & 7, params.r8(pc+1), (pc & 0xf0000) | uint16_t(pc + 3 + int8_t(params.r8(pc+2))));
flags |= 3;
@@ -172,7 +192,7 @@ offs_t m6502_base_disassembler::disassemble(std::ostream &stream, offs_t pc, con
break;
case DASM_bar:
- util::stream_format(stream, " %d, a, $%04x", (opcodes.r8(pc) >> 5) & 7, (pc & 0xf0000) | uint16_t(pc + 3 + int8_t(params.r8(pc+1))));
+ util::stream_format(stream, " %d, a, $%04x", (opcodes.r8(pc) >> 5) & 7, (pc & 0xf0000) | uint16_t(pc + 2 + int8_t(params.r8(pc+1))));
flags |= 2;
break;