From da8d6860f055ffb73a45643646cd4bc8096abf55 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 25 Feb 2023 17:20:11 +0200 Subject: [PATCH] DSKSYNC on/off detection during read --- disk.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/disk.cpp b/disk.cpp index 201ff08e..22470d49 100644 --- a/disk.cpp +++ b/disk.cpp @@ -4031,6 +4031,7 @@ static void disk_doupdate_predict (int startcycle) bool isempty = drive_empty(drv); bool isunformatted = unformatted(drv); int mfmpos = drv->mfmpos; + bool dsksync_on2 = dsksync_on; if (drv->tracktiming[0]) updatetrackspeed (drv, mfmpos); int diskevent_flag = 0; @@ -4050,8 +4051,13 @@ static void disk_doupdate_predict (int startcycle) else tword |= getonebit(drv, drv->bigmfmbuf, mfmpos, &inc); } - if (dskdmaen != DSKDMA_READ && (tword & 0xffff) == dsksync && dsksync != 0) + if ((tword & 0xffff) != dsksync) { + dsksync_on2 = false; + } + if (dskdmaen != DSKDMA_READ && (tword & 0xffff) == dsksync && !dsksync_on2) { diskevent_flag |= DISK_WORDSYNC; + dsksync_on2 = true; + } } int pmfmpos = mfmpos; mfmpos += inc; -- 2.47.3