diff options
Diffstat (limited to 'src/devices/cpu/cop400/cop410ds.cpp')
-rw-r--r-- | src/devices/cpu/cop400/cop410ds.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/devices/cpu/cop400/cop410ds.cpp b/src/devices/cpu/cop400/cop410ds.cpp index 4570417538f..9da69df8034 100644 --- a/src/devices/cpu/cop400/cop410ds.cpp +++ b/src/devices/cpu/cop400/cop410ds.cpp @@ -9,11 +9,17 @@ ***************************************************************************/ #include "emu.h" +#include "cop410ds.h" -CPU_DISASSEMBLE(cop410) +u32 cop410_disassembler::opcode_alignment() const { - uint8_t opcode = oprom[0]; - uint8_t next_opcode = oprom[1]; + return 1; +} + +offs_t cop410_disassembler::disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms) +{ + uint8_t opcode = opcodes.r8(pc); + uint8_t next_opcode = opcodes.r8(pc+1); uint16_t address; uint32_t flags = 0; int bytes = 1; @@ -38,7 +44,7 @@ CPU_DISASSEMBLE(cop410) { address = (uint16_t)(0x80 | (opcode & 0x3F)); util::stream_format(stream, "JSRP %03X", address); - flags = DASMFLAG_STEP_OVER; + flags = STEP_OVER; } } } @@ -72,7 +78,7 @@ CPU_DISASSEMBLE(cop410) { address = ((opcode & 0x01) << 8) | next_opcode; util::stream_format(stream, "JSR %03X", address); - flags = DASMFLAG_STEP_OVER; + flags = STEP_OVER; bytes = 2; } else if (opcode >= 0x70 && opcode <= 0x7F) @@ -302,12 +308,12 @@ CPU_DISASSEMBLE(cop410) case 0x48: util::stream_format(stream, "RET"); - flags = DASMFLAG_STEP_OUT; + flags = STEP_OUT; break; case 0x49: util::stream_format(stream, "RETSK"); - flags = DASMFLAG_STEP_OUT; + flags = STEP_OUT; break; case 0x4B: @@ -348,5 +354,5 @@ CPU_DISASSEMBLE(cop410) } } - return bytes | flags | DASMFLAG_SUPPORTED; + return bytes | flags | SUPPORTED; } |