diff --git a/src/emu/cpu/m6809/base6x09.ops b/src/emu/cpu/m6809/base6x09.ops index c0a1f59c0db..ba4f9e223f0 100644 --- a/src/emu/cpu/m6809/base6x09.ops +++ b/src/emu/cpu/m6809/base6x09.ops @@ -165,7 +165,7 @@ ASR16: @m_temp.b.l = read_operand(1); m_cc &= ~CC_NZC; m_cc |= (m_temp.b.l & 1) ? CC_C : 0; - m_temp.w = set_flags(CC_NZ, ((INT16) m_temp.b.l) >> 1); + m_temp.w = set_flags(CC_NZ, ((INT16) m_temp.w) >> 1); @eat(hd6309_native_mode() ? 0 : 1); @write_operand(0, m_temp.b.h); write_operand(1, m_temp.b.l); diff --git a/src/emu/cpu/m6809/konami.ops b/src/emu/cpu/m6809/konami.ops index 274ee7e6798..ec39ccda88b 100644 --- a/src/emu/cpu/m6809/konami.ops +++ b/src/emu/cpu/m6809/konami.ops @@ -517,7 +517,7 @@ LSRD: else m_cc &= ~CC_C; - m_d.w = set_flags(CC_NZ, safe_shift_right(m_d.w, m_temp.b.l)); + m_d.w = set_flags(CC_NZ, safe_shift_right(m_d.w, m_temp.b.l)); } eat(1); return; @@ -582,7 +582,7 @@ ABS8: ABS16: @m_temp.b.h = read_operand(0); @m_temp.b.l = read_operand(1); - m_temp.w = set_flags(CC_NZVC, 0, m_temp.w, ((INT8) m_temp.w) >= 0 ? m_temp.w : -m_temp.w); + m_temp.w = set_flags(CC_NZVC, 0, m_temp.w, ((INT16) m_temp.w) >= 0 ? m_temp.w : -m_temp.w); @eat(1); @write_operand(0, m_temp.b.h); write_operand(1, m_temp.b.l);