From 245e27c893f73f48fbf5efb136b5e645957f91a6 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 8 Jul 2019 16:45:15 -0400 Subject: [PATCH] Solidifies belief that the shift register bit is cleared on read/write. --- Components/6522/Implementation/6522Implementation.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Components/6522/Implementation/6522Implementation.hpp b/Components/6522/Implementation/6522Implementation.hpp index b6de5fab4..296d83e87 100644 --- a/Components/6522/Implementation/6522Implementation.hpp +++ b/Components/6522/Implementation/6522Implementation.hpp @@ -92,6 +92,7 @@ template void MOS6522::set_register(int address, uint8_t value) registers_.shift = value; shift_bits_remaining_ = 8; registers_.interrupt_flags &= ~InterruptFlag::ShiftRegister; + reevaluate_interrupts(); break; // Control @@ -189,6 +190,8 @@ template uint8_t MOS6522::get_register(int address) { case 0xa: shift_bits_remaining_ = 8; + registers_.interrupt_flags &= ~InterruptFlag::ShiftRegister; + reevaluate_interrupts(); return registers_.shift; case 0xb: return registers_.auxiliary_control;