]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
CIA interrupt bit getting set without interrupt enabled sticky bit fix
authorToni Wilen <twilen@winuae.net>
Sat, 26 Nov 2022 17:46:01 +0000 (19:46 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 26 Nov 2022 17:46:01 +0000 (19:46 +0200)
cia.cpp

diff --git a/cia.cpp b/cia.cpp
index 37adbe4156588452f87e95fda5a81372f03f7f50..aa69ec00c0e54d29f475827253e44fc98dd2ee08 100644 (file)
--- a/cia.cpp
+++ b/cia.cpp
@@ -760,14 +760,14 @@ static void CIA_sync_interrupt(int num, uae_u8 icr)
        struct CIA *c = &cia[num];
 
        if (acc_mode()) {
-               c->icr2 |= icr;
-               if ((c->icr1 & ICR_MASK) == (c->icr2 & ICR_MASK)) {
-                       return;
-               }
                if (!(icr & c->imask)) {
                        c->icr1 |= icr;
                        return;
                }
+               c->icr2 |= icr;
+               if ((c->icr1 & ICR_MASK) == (c->icr2 & ICR_MASK)) {
+                       return;
+               }
                int syncdelay = 0;
                int delay = get_cia_sync_cycles(&syncdelay);
                delay += syncdelay;