From 6cf9099ce1bf7f192c5c7e8683bb4655c356d37f Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Tue, 23 Feb 2021 21:57:02 -0500 Subject: [PATCH] Don't clear the mouse data full flag until both registers have been read. --- Machines/Apple/AppleIIgs/ADB.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Machines/Apple/AppleIIgs/ADB.cpp b/Machines/Apple/AppleIIgs/ADB.cpp index 20b0bfde1..7276a2801 100644 --- a/Machines/Apple/AppleIIgs/ADB.cpp +++ b/Machines/Apple/AppleIIgs/ADB.cpp @@ -74,10 +74,13 @@ uint8_t GLU::get_mouse_data() { // b7: 1 = button is up; 0 = button is down. // b6: delta sign bit; 1 = negative. // b5–b0: mouse delta. - status_ &= ~uint8_t(CPUFlags::MouseDataFull); const uint8_t result = registers_[visible_mouse_register_]; - visible_mouse_register_ += (visible_mouse_register_ == 2); + if(visible_mouse_register_ == 2) { + ++visible_mouse_register_; + } else { + status_ &= ~uint8_t(CPUFlags::MouseDataFull); + } return result; }