From aaf2561370abc5653a9c192ae7fa64d051d2308f Mon Sep 17 00:00:00 2001 From: ksherlock Date: Sat, 7 Jan 2023 08:54:14 -0500 Subject: apple2gs - make kmstatus match actual IIgs behavior; (#10798) * mouse data register is full until both x/y are read * X/Y bit set after X is read, cleared after Y is read * X/Y bit was accidentally dependent on the KGS_ANY_KEY_DOWN bit --- src/mame/apple/apple2gs.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/mame/apple/apple2gs.cpp b/src/mame/apple/apple2gs.cpp index 160e3a1ab19..ec78262a5d2 100644 --- a/src/mame/apple/apple2gs.cpp +++ b/src/mame/apple/apple2gs.cpp @@ -3534,12 +3534,13 @@ u8 apple2gs_state::keyglu_816_read(u8 offset) case GLU_MOUSEY: if (!m_glu_mouse_read_stat) { - m_glu_mouse_read_stat = 1; - m_glu_regs[GLU_KG_STATUS] &= ~KGS_MOUSEX_FULL; - m_glu_regs[GLU_SYSSTAT] &= ~GLU_STATUS_MOUSEIRQ; - keyglu_regen_irqs(); + m_glu_mouse_read_stat = true; return m_glu_regs[GLU_MOUSEX]; } + m_glu_mouse_read_stat = false; + m_glu_regs[GLU_KG_STATUS] &= ~KGS_MOUSEX_FULL; + m_glu_regs[GLU_SYSSTAT] &= ~GLU_STATUS_MOUSEIRQ; + keyglu_regen_irqs(); return m_glu_regs[GLU_MOUSEY]; case GLU_SYSSTAT: @@ -3550,7 +3551,7 @@ u8 apple2gs_state::keyglu_816_read(u8 offset) { sysstat |= GLU_STATUS_CMDFULL; } - if (m_glu_regs[GLU_KG_STATUS] & m_glu_mouse_read_stat) + if (m_glu_mouse_read_stat) { sysstat |= GLU_STATUS_MOUSEXY; } -- cgit v1.2.3