From a0a08848106933e78d673ac3313c3f3caeece5d3 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Thu, 24 Apr 2014 04:52:35 +0000 Subject: [PATCH] h8: disassembly fix (nw) --- src/emu/cpu/h8/h8.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/emu/cpu/h8/h8.c b/src/emu/cpu/h8/h8.c index 5835d911fcb..2c52745397d 100644 --- a/src/emu/cpu/h8/h8.c +++ b/src/emu/cpu/h8/h8.c @@ -417,11 +417,17 @@ void h8_device::disassemble_am(char *&buffer, int am, offs_t pc, const UINT8 *op break; case DASM_abs16: - buffer += sprintf(buffer, "@%08x", INT16((oprom[offset-2] << 8) | oprom[offset-1])); + if(offset >= 6) + buffer += sprintf(buffer, "@%08x", INT16((oprom[offset-4] << 8) | oprom[offset-3])); + else + buffer += sprintf(buffer, "@%08x", INT16((oprom[offset-2] << 8) | oprom[offset-1])); break; case DASM_abs32: - buffer += sprintf(buffer, "@%08x", (oprom[offset-4] << 24) | (oprom[offset-3] << 16) | (oprom[offset-2] << 8) | oprom[offset-1]); + if(offset >= 8) + buffer += sprintf(buffer, "@%08x", (oprom[offset-6] << 24) | (oprom[offset-5] << 16) | (oprom[offset-4] << 8) | oprom[offset-3]); + else + buffer += sprintf(buffer, "@%08x", (oprom[offset-4] << 24) | (oprom[offset-3] << 16) | (oprom[offset-2] << 8) | oprom[offset-1]); break; case DASM_abs8i: