summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/m6809/base6x09.ops
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/m6809/base6x09.ops')
-rw-r--r--src/devices/cpu/m6809/base6x09.ops18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/devices/cpu/m6809/base6x09.ops b/src/devices/cpu/m6809/base6x09.ops
index 8a36ecf2b78..2bad6eec6f8 100644
--- a/src/devices/cpu/m6809/base6x09.ops
+++ b/src/devices/cpu/m6809/base6x09.ops
@@ -239,8 +239,8 @@ CMP8:
return;
SBC8:
- m_temp.w = (uint16_t)read_operand() + (m_cc & CC_C ? 1 : 0);
- regop8() = set_flags(CC_NZVC, regop8(), m_temp.b.l, regop8() - m_temp.w);
+ m_temp.b.l = read_operand();
+ regop8() = set_flags(CC_NZVC, regop8(), m_temp.b.l, regop8() - m_temp.b.l - (m_cc & CC_C ? 1 : 0));
return;
AND8:
@@ -259,8 +259,8 @@ EOR8:
return;
ADC8:
- m_temp.w = (uint16_t)read_operand() + (m_cc & CC_C ? 1 : 0);
- regop8() = set_flags(add8_sets_h() ? CC_HNZVC : CC_NZVC, regop8(), m_temp.b.l, regop8() + m_temp.w);
+ m_temp.b.l = read_operand();
+ regop8() = set_flags(add8_sets_h() ? CC_HNZVC : CC_NZVC, regop8(), m_temp.b.l, regop8() + m_temp.b.l + (m_cc & CC_C ? 1 : 0));
return;
OR8:
@@ -332,9 +332,9 @@ SYNC:
// massaging the PC this way makes the debugger's behavior more
// intuitive
m_pc.w--;
-
+
@eat_remaining();
-
+
// unmassage...
m_pc.w++;
}
@@ -396,7 +396,7 @@ LBSR:
JSR:
@eat(2);
goto GOTO_SUBROUTINE;
-
+
GOTO_SUBROUTINE:
@write_memory(--m_s.w, m_pc.b.l);
@write_memory(--m_s.w, m_pc.b.h);
@@ -442,7 +442,7 @@ CWAI:
m_pc.w -= 2;
@eat_remaining();
-
+
// unmassage...
m_pc.w += 2;
}
@@ -526,7 +526,7 @@ SOFTWARE_INTERRUPT:
m_temp.w = entire_state_registers();
%PUSH_REGISTERS;
goto INTERRUPT_VECTOR;
-
+
DIRECT:
@set_ea(((uint16_t)m_dp << 8) | read_opcode_arg());
@eat(hd6309_native_mode() ? 0 : 1);