From: Toni Wilen Date: Sat, 1 Oct 2022 16:48:26 +0000 (+0300) Subject: Only set DSKSYNC interrupt if it wasn't already set. X-Git-Tag: 41000~132 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=e490ea5cfb9358fc7532b10eb7031407eca375ea;p=francis%2Fwinuae.git Only set DSKSYNC interrupt if it wasn't already set. --- diff --git a/disk.cpp b/disk.cpp index 8cf0caf3..682d952e 100644 --- a/disk.cpp +++ b/disk.cpp @@ -4056,6 +4056,7 @@ static void wordsync_detected(bool startup) static void disk_doupdate_read_reallynothing(int floppybits, bool state) { + bool done = false; // Only because there is at least one demo that checks wrong bit // and hangs unless DSKSYNC bit it set with zero DSKSYNC value... if (INTREQR() & 0x1000) @@ -4079,8 +4080,9 @@ static void disk_doupdate_read_reallynothing(int floppybits, bool state) dskbytr_val = word & 0xff; dskbytr_val |= 0x8000; } - if (!(adkcon & 0x200) && word == dsksync) { + if (!done && !(adkcon & 0x200) && word == dsksync) { INTREQ(0x8000 | 0x1000); + done = true; } bitoffset++; bitoffset &= 15;