diff options
Diffstat (limited to 'src/devices/cpu/pic17/pic17d.cpp')
-rw-r--r-- | src/devices/cpu/pic17/pic17d.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/devices/cpu/pic17/pic17d.cpp b/src/devices/cpu/pic17/pic17d.cpp index faa1d666c13..139e5058631 100644 --- a/src/devices/cpu/pic17/pic17d.cpp +++ b/src/devices/cpu/pic17/pic17d.cpp @@ -161,6 +161,8 @@ offs_t pic17_disassembler::disassemble(std::ostream &stream, offs_t pc, const pi util::stream_format(stream, "%-8s", s_bit_ops[BIT(opcode, 11, 2)]); format_register(stream, opcode & 0x00ff); util::stream_format(stream, ",%d", BIT(opcode, 8, 3)); + if (BIT(opcode, 12)) + words |= STEP_COND; } else if (opcode >= 0x6000) { @@ -189,6 +191,7 @@ offs_t pic17_disassembler::disassemble(std::ostream &stream, offs_t pc, const pi { util::stream_format(stream, "%-8s", s_cp_ops[BIT(opcode, 8, 2)]); format_register(stream, opcode & 0x00ff); + words |= STEP_COND; } else if (opcode < 0x3500) { @@ -205,6 +208,8 @@ offs_t pic17_disassembler::disassemble(std::ostream &stream, offs_t pc, const pi format_register(stream, opcode & 0x00ff); if (opcode >= 0x0200) util::stream_format(stream, ",%c", BIT(opcode, 8) ? 'F' : 'W'); + if ((opcode & 0x3600) == 0x1600 || (opcode & 0x3c00) == 0x2400) + words |= STEP_COND; } else switch (opcode) { |