diff options
Diffstat (limited to 'src/devices/cpu/bcp/bcpdasm.cpp')
-rw-r--r-- | src/devices/cpu/bcp/bcpdasm.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/devices/cpu/bcp/bcpdasm.cpp b/src/devices/cpu/bcp/bcpdasm.cpp index 84b77327f37..c7fc6fdf6f6 100644 --- a/src/devices/cpu/bcp/bcpdasm.cpp +++ b/src/devices/cpu/bcp/bcpdasm.cpp @@ -7,15 +7,8 @@ ***************************************************************************/ #include "emu.h" -#include "util/disasmintf.h" #include "bcpdasm.h" -#include "util/strformat.h" - -using osd::u32; -using util::BIT; -using offs_t = u32; - //************************************************************************** // BCP DISASSEMBLER @@ -230,12 +223,13 @@ offs_t dp8344_disassembler::disassemble(std::ostream &stream, offs_t pc, const d { // 8C00-8DFF, 0000-FFFF: LJMP Rs,p,s,nn (2 + 2 T-states) util::stream_format(stream, "%-8s", "ljmp"); + words |= STEP_COND; } else { // 8E00-8FFF, 0000-FFFF: LCALL Rs,p,s,nn (2 + 2 T-states) util::stream_format(stream, "%-8s", "lcall"); - words |= STEP_OVER; + words |= STEP_OVER | STEP_COND; } format_register(stream, inst & 0x001f); util::stream_format(stream, ",%d,%d,", (inst & 0x00e0) >> 5, BIT(inst, 8)); @@ -304,7 +298,10 @@ offs_t dp8344_disassembler::disassemble(std::ostream &stream, offs_t pc, const d // AF00-A7FF: RETF f,s{,{g}{,rf}} (2 or 3 T-states) // AF80-AFF0: RET {g{,rf}} (2 T-states) if (!BIT(inst, 7)) + { util::stream_format(stream, (inst & 0x0070) == 0 ? "r%s" : "r%-7s", cc_to_string(inst & 0x0007, BIT(inst, 3))); + words |= STEP_COND; + } else util::stream_format(stream, (inst & 0x0070) == 0 ? "%s" : "%-8s", "ret"); @@ -387,7 +384,7 @@ offs_t dp8344_disassembler::disassemble(std::ostream &stream, offs_t pc, const d // C900-C9FF: SHL Rsd,b (2 T-states) util::stream_format(stream, "%-8s", "shl"); format_register(stream, inst & 0x001f); - util::stream_format(stream, ",%d", (inst & 0x00e0) >> 5); + util::stream_format(stream, ",%d", (inst & 0x00e0) == 0 ? 0 : 8 - ((inst & 0x00e0) >> 5)); break; case 0xa00: case 0xa80: @@ -455,6 +452,7 @@ offs_t dp8344_disassembler::disassemble(std::ostream &stream, offs_t pc, const d // D000-DFFF: JMP f,s,n (2 or 3 T-states) util::stream_format(stream, "j%-7s", cc_to_string((inst & 0x0700) >> 8, BIT(inst, 11))); format_address(stream, pc + 1 + s8(inst & 0x00ff)); + words |= STEP_COND; break; case 0xe000: case 0xf000: |