From: Toni Wilen Date: Sat, 26 Nov 2022 17:46:01 +0000 (+0200) Subject: CIA interrupt bit getting set without interrupt enabled sticky bit fix X-Git-Tag: 41000~54 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=0281cd8acf11fae720e68ab01119e6f46de129f9;p=francis%2Fwinuae.git CIA interrupt bit getting set without interrupt enabled sticky bit fix --- diff --git a/cia.cpp b/cia.cpp index 37adbe41..aa69ec00 100644 --- 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;