From 072b0266af70ce51eacad08831950e5ebcb2ea8a Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 9 Nov 2019 20:12:09 -0500 Subject: [PATCH] It seems status reads are not required to clear the interrupt line. --- Components/6850/6850.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Components/6850/6850.cpp b/Components/6850/6850.cpp index c61c4bb4d..9b08ca8eb 100644 --- a/Components/6850/6850.cpp +++ b/Components/6850/6850.cpp @@ -25,7 +25,6 @@ uint8_t ACIA::read(int address) { received_data_ |= NoValueMask; return uint8_t(received_data_); } else { - clear_interrupt_cause(StatusNeedsRead); return ((received_data_ & NoValueMask) ? 0x00 : 0x01) | ((next_transmission_ == NoValueMask) ? 0x02 : 0x00) | @@ -176,7 +175,7 @@ void ACIA::set_interrupt_delegate(InterruptDelegate *delegate) { void ACIA::add_interrupt_cause(int cause) { const bool is_changing_state = !interrupt_causes_; - interrupt_causes_ |= cause | StatusNeedsRead; + interrupt_causes_ |= cause; if(interrupt_delegate_ && is_changing_state) interrupt_delegate_->acia6850_did_change_interrupt_status(this); }