mirror of
https://github.com/jtauber/applepy.git
synced 2024-11-23 10:31:02 +00:00
reimplemented CMP, CPX and CPY based on 2006/2007 code
This commit is contained in:
parent
6fb2d79cda
commit
84bdef67cd
21
applepy.py
21
applepy.py
@ -639,22 +639,19 @@ class CPU:
|
||||
# COMPARISON
|
||||
|
||||
def CMP(self, operand_address):
|
||||
value = self.memory.read_byte(operand_address)
|
||||
self.carry_flag = (self.accumulator >= value)
|
||||
self.zero_flag = (self.accumulator == value)
|
||||
self.sign_flag = (self.accumulator < 0x80) # @@@ is this right?
|
||||
result = self.accumulator - self.memory.read_byte(operand_address)
|
||||
self.carry_flag = (result >= 0)
|
||||
self.update_nz(result)
|
||||
|
||||
def CPX(self, operand_address):
|
||||
value = self.memory.read_byte(operand_address)
|
||||
self.carry_flag = (self.x_index >= value)
|
||||
self.zero_flag = (self.x_index == value)
|
||||
self.sign_flag = (self.x_index < 0x80) # TODO: is this right?
|
||||
result = self.x_index - self.memory.read_byte(operand_address)
|
||||
self.carry_flag = (result >= 0)
|
||||
self.update_nz(result)
|
||||
|
||||
def CPY(self, operand_address):
|
||||
value = self.memory.read_byte(operand_address)
|
||||
self.carry_flag = (self.y_index >= value)
|
||||
self.zero_flag = (self.y_index == value)
|
||||
self.sign_flag = (self.y_index < 0x80) # @@@ is this right?
|
||||
result = self.y_index - self.memory.read_byte(operand_address)
|
||||
self.carry_flag = (result >= 0)
|
||||
self.update_nz(result)
|
||||
|
||||
# SYSTEM
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user