From ce124e02a8bf2b503564408fc3f27639a0921cb0 Mon Sep 17 00:00:00 2001 From: tim lindner Date: Thu, 8 Feb 2024 18:14:57 -0800 Subject: hd6309.cpp: Fix index addressing modes (#12016) * Add missing index addressing modes. Pop CPU state if indexed addressing mode caused illegal operation trap. --- src/devices/cpu/m6809/hd6309.lst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/devices/cpu/m6809/hd6309.lst b/src/devices/cpu/m6809/hd6309.lst index bcab03276dc..93005fe3bd0 100644 --- a/src/devices/cpu/m6809/hd6309.lst +++ b/src/devices/cpu/m6809/hd6309.lst @@ -744,13 +744,13 @@ INDEXED: eat((hd6309_native_mode() && !(m_opcode & 0x10)) ? 2 : 5); break; - case 0x0F: + case 0x0F: case 0x10: // 6309 specific mode m_temp.w = m_q.r.w; eat(1); break; - case 0x2F: + case 0x2F: case 0x30: // 6309 specific mode @m_temp.b.h = read_opcode_arg(); @m_temp.b.l = read_opcode_arg(); @@ -758,14 +758,14 @@ INDEXED: eat(hd6309_native_mode() ? 1 : 5); break; - case 0x4F: + case 0x4F: case 0x50: // 6309 specific mode m_temp.w = m_q.r.w; m_q.r.w += 2; eat((hd6309_native_mode() && !(m_opcode & 0x10)) ? 2 : 4); break; - case 0x6F: + case 0x6F: case 0x70: // 6309 specific mode m_q.r.w -= 2; m_temp.w = m_q.r.w; @@ -773,6 +773,7 @@ INDEXED: break; default: + pop_state(); goto ILLEGAL; } -- cgit v1.2.3