EMualtor adjustments
This commit is contained in:
@@ -64,6 +64,8 @@ class P9FastPathTest(unittest.TestCase):
|
||||
self.assertEqual(emulator.cpu.regs[7], 0xFE7E)
|
||||
self.assertEqual(fast_path.events[-1].kind, "read_byte")
|
||||
self.assertEqual(fast_path.events[-1].value, 0x3C)
|
||||
self.assertEqual(fast_path.events[-1].source, "initial")
|
||||
self.assertEqual(fast_path.events[-1].queue_depth, 0)
|
||||
self.assertFalse(emulator.cpu.z)
|
||||
self.assertFalse(emulator.cpu.n)
|
||||
self.assertFalse(emulator.cpu.v)
|
||||
@@ -79,9 +81,30 @@ class P9FastPathTest(unittest.TestCase):
|
||||
self.assertTrue(fast_path.try_handle(emulator))
|
||||
self.assertEqual(emulator.cpu.regs[5], 0x0081)
|
||||
self.assertEqual(emulator.cpu.pc, 0x5678)
|
||||
self.assertEqual(fast_path.events[-1].source, "default_input_byte")
|
||||
self.assertEqual(fast_path.events[-1].queue_depth, 0)
|
||||
self.assertIn("source=default_input_byte", fast_path.events[-1].line())
|
||||
self.assertFalse(emulator.cpu.z)
|
||||
self.assertTrue(emulator.cpu.n)
|
||||
|
||||
def test_named_input_script_records_read_source_and_remaining_depth(self):
|
||||
emulator = H8536Emulator(bytes(rom_with_reset()))
|
||||
emulator.cpu.pc = LOC_C0DB_P9_READ_BYTE
|
||||
emulator.cpu.regs[7] = 0xFE82
|
||||
emulator.memory.write16(0xFE82, 0x6789)
|
||||
|
||||
fast_path = P9FastPath(P9FastPathConfig(enabled=True))
|
||||
fast_path.queue_input_script("idle-panel", [0x00, 0x80])
|
||||
|
||||
self.assertTrue(fast_path.try_handle(emulator))
|
||||
event = fast_path.events[-1]
|
||||
self.assertEqual(emulator.cpu.regs[5], 0x0000)
|
||||
self.assertEqual(event.kind, "read_byte")
|
||||
self.assertEqual(event.value, 0x00)
|
||||
self.assertEqual(event.source, "script:idle-panel")
|
||||
self.assertEqual(event.queue_depth, 1)
|
||||
self.assertEqual(fast_path.trace_lines(), ["read_byte pc=C0DB value=00 source=script:idle-panel queued=1"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user