1
0
This commit is contained in:
Aiden
2026-05-27 11:50:10 +10:00
parent 0d099235c5
commit c0304c575c
55 changed files with 26035 additions and 16 deletions

View File

@@ -191,6 +191,28 @@ class EmulatorHarnessTest(unittest.TestCase):
self.assertEqual(writes[-1].value, 0x77)
self.assertEqual(writes[-1].pc, 0x1000)
def test_panel_input_injection_sets_source_shadow_previous_and_dirty_edge(self):
emulator = H8536Emulator(bytes(rom_with_reset()))
injection = emulator.inject_panel_input("cam-power", pressed=True)
self.assertEqual(injection.action.panel_input.selector, 0x0007)
self.assertEqual(emulator.memory.read8(0xF105) & 0x08, 0x08)
self.assertEqual(emulator.memory.read8(0xF6D4) & 0x08, 0x08)
self.assertEqual(emulator.memory.read8(0xF6E4) & 0x08, 0x00)
self.assertEqual(emulator.memory.read8(0xF6F2) & 0x10, 0x10)
def test_panel_input_release_forces_opposite_previous_sample(self):
emulator = H8536Emulator(bytes(rom_with_reset()))
injection = emulator.inject_panel_input("call", pressed=False)
self.assertEqual(injection.action.panel_input.selector, 0x0015)
self.assertEqual(emulator.memory.read8(0xF006) & 0x20, 0x00)
self.assertEqual(emulator.memory.read8(0xF6DB) & 0x20, 0x00)
self.assertEqual(emulator.memory.read8(0xF6EB) & 0x20, 0x20)
self.assertEqual(emulator.memory.read8(0xF6F3) & 0x08, 0x08)
if __name__ == "__main__":
unittest.main()