From e961d7e00d562b959d8ef1ff5a13e78e9b050586 Mon Sep 17 00:00:00 2001 From: Greg Hewgill Date: Sun, 7 Aug 2011 18:33:42 +1200 Subject: [PATCH] simplify calculating signed values in adc and sbc --- applepy.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/applepy.py b/applepy.py index 006cbf6..14f49a0 100644 --- a/applepy.py +++ b/applepy.py @@ -602,12 +602,10 @@ class CPU: # @@@ doesn't handle BCD yet assert not self.decimal_mode_flag - a1 = a2 = self.accumulator - if a1 & 0x80: - a1 = (a1 & 0x7F) - 0x80 - m1 = m2 = self.memory.read_byte(operand_address) - if m1 & 0x80: - m1 = (m1 & 0x7F) - 0x80 + a2 = self.accumulator + a1 = signed(a2) + m2 = self.memory.read_byte(operand_address) + m1 = signed(m2) # twos complement addition result1 = a1 + m1 + self.carry_flag @@ -624,12 +622,10 @@ class CPU: # @@@ doesn't handle BCD yet assert not self.decimal_mode_flag - a1 = a2 = self.accumulator - if a1 & 0x80: - a1 = (a1 & 0x7F) - 0x80 - m1 = m2 = self.memory.read_byte(operand_address) - if m1 & 0x80: - m1 = (m1 & 0x7F) - 0x80 + a2 = self.accumulator + a1 = signed(a2) + m2 = self.memory.read_byte(operand_address) + m1 = signed(m2) # twos complement subtraction result1 = a1 - m1 - [1, 0][self.carry_flag]