1
0
mirror of https://github.com/mnaberez/py65.git synced 2024-06-07 12:29:27 +00:00
This commit is contained in:
User Apple2 2017-05-10 23:19:44 +00:00
commit 33b48ffbfb
3 changed files with 17 additions and 14 deletions

View File

@ -9,6 +9,9 @@
allow the addresses of the ``getc`` and ``putc`` handlers to be
changed. Patch by Mario Keller.
- Fixed a 65C02 bug where the TSB and TRB instructions did not set
the Z flag correctly. Thanks to Kris Kennaway for reporting it.
0.24 (2015-03-31)
- Released as a universal wheel.

View File

@ -50,7 +50,7 @@ class MPU(mpu6502.MPU):
m = self.memory[address]
self.p &= ~self.ZERO
z = m & self.a
if z != 0:
if z == 0:
self.p |= self.ZERO
self.memory[address] = m | self.a
@ -59,7 +59,7 @@ class MPU(mpu6502.MPU):
m = self.memory[address]
self.p &= ~self.ZERO
z = m & self.a
if z != 0:
if z == 0:
self.p |= self.ZERO
self.memory[address] = m & ~self.a

View File

@ -1218,7 +1218,7 @@ class MPUTests(unittest.TestCase, Common6502Tests):
# TSB Zero Page
def test_tsb_sp_ones(self):
def test_tsb_zp_ones(self):
mpu = self._make_mpu()
mpu.memory[0x00BB] = 0xE0
# $0000 TSB $BD
@ -1227,11 +1227,11 @@ class MPUTests(unittest.TestCase, Common6502Tests):
self.assertEqual(0xE0, mpu.memory[0x00BB])
mpu.step()
self.assertEqual(0xF0, mpu.memory[0x00BB])
self.assertEqual(mpu.ZERO, mpu.p & mpu.ZERO)
self.assertEqual(0, mpu.p & mpu.ZERO)
self.assertEqual(0x0002, mpu.pc)
self.assertEqual(5, mpu.processorCycles)
def test_tsb_sp_zeros(self):
def test_tsb_zp_zeros(self):
mpu = self._make_mpu()
mpu.memory[0x00BB] = 0x80
# $0000 TSB $BD
@ -1240,7 +1240,7 @@ class MPUTests(unittest.TestCase, Common6502Tests):
self.assertEqual(0x80, mpu.memory[0x00BB])
mpu.step()
self.assertEqual(0xE0, mpu.memory[0x00BB])
self.assertEqual(0, mpu.p & mpu.ZERO)
self.assertEqual(mpu.ZERO, mpu.p & mpu.ZERO)
self.assertEqual(0x0002, mpu.pc)
self.assertEqual(5, mpu.processorCycles)
@ -1255,7 +1255,7 @@ class MPUTests(unittest.TestCase, Common6502Tests):
self.assertEqual(0xE0, mpu.memory[0xFEED])
mpu.step()
self.assertEqual(0xF0, mpu.memory[0xFEED])
self.assertEqual(mpu.ZERO, mpu.p & mpu.ZERO)
self.assertEqual(0, mpu.p & mpu.ZERO)
self.assertEqual(0x0003, mpu.pc)
self.assertEqual(6, mpu.processorCycles)
@ -1268,13 +1268,13 @@ class MPUTests(unittest.TestCase, Common6502Tests):
self.assertEqual(0x80, mpu.memory[0xFEED])
mpu.step()
self.assertEqual(0xE0, mpu.memory[0xFEED])
self.assertEqual(0, mpu.p & mpu.ZERO)
self.assertEqual(mpu.ZERO, mpu.p & mpu.ZERO)
self.assertEqual(0x0003, mpu.pc)
self.assertEqual(6, mpu.processorCycles)
# TRB Zero Page
def test_trb_sp_ones(self):
def test_trb_zp_ones(self):
mpu = self._make_mpu()
mpu.memory[0x00BB] = 0xE0
# $0000 TRB $BD
@ -1283,11 +1283,11 @@ class MPUTests(unittest.TestCase, Common6502Tests):
self.assertEqual(0xE0, mpu.memory[0x00BB])
mpu.step()
self.assertEqual(0x80, mpu.memory[0x00BB])
self.assertEqual(mpu.ZERO, mpu.p & mpu.ZERO)
self.assertEqual(0, mpu.p & mpu.ZERO)
self.assertEqual(0x0002, mpu.pc)
self.assertEqual(5, mpu.processorCycles)
def test_trb_sp_zeros(self):
def test_trb_zp_zeros(self):
mpu = self._make_mpu()
mpu.memory[0x00BB] = 0x80
# $0000 TRB $BD
@ -1296,7 +1296,7 @@ class MPUTests(unittest.TestCase, Common6502Tests):
self.assertEqual(0x80, mpu.memory[0x00BB])
mpu.step()
self.assertEqual(0x80, mpu.memory[0x00BB])
self.assertEqual(0, mpu.p & mpu.ZERO)
self.assertEqual(mpu.ZERO, mpu.p & mpu.ZERO)
self.assertEqual(0x0002, mpu.pc)
self.assertEqual(5, mpu.processorCycles)
@ -1311,7 +1311,7 @@ class MPUTests(unittest.TestCase, Common6502Tests):
self.assertEqual(0xE0, mpu.memory[0xFEED])
mpu.step()
self.assertEqual(0x80, mpu.memory[0xFEED])
self.assertEqual(mpu.ZERO, mpu.p & mpu.ZERO)
self.assertEqual(0, mpu.p & mpu.ZERO)
self.assertEqual(0x0003, mpu.pc)
self.assertEqual(6, mpu.processorCycles)
@ -1324,7 +1324,7 @@ class MPUTests(unittest.TestCase, Common6502Tests):
self.assertEqual(0x80, mpu.memory[0xFEED])
mpu.step()
self.assertEqual(0x80, mpu.memory[0xFEED])
self.assertEqual(0, mpu.p & mpu.ZERO)
self.assertEqual(mpu.ZERO, mpu.p & mpu.ZERO)
self.assertEqual(0x0003, mpu.pc)
self.assertEqual(6, mpu.processorCycles)