]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Fix zero length disk dma not finishing when dsksync is detected.
authorToni Wilen <twilen@winuae.net>
Tue, 26 Dec 2023 17:10:20 +0000 (19:10 +0200)
committerToni Wilen <twilen@winuae.net>
Tue, 26 Dec 2023 17:10:20 +0000 (19:10 +0200)
disk.cpp

index b0519d1606bf956a30e6fc8b519387a7de1a7ceb..20e053140e62bb50025999461b8bc0aa9ab8b2b8 100644 (file)
--- a/disk.cpp
+++ b/disk.cpp
@@ -4276,7 +4276,12 @@ static void wordsync_detected(bool startup)
        if (dskdmaen != DSKDMA_OFF) {
                int prev_dma_enabled = dma_enable;
                if (!startup) {
-                       dma_enable = 1;
+                       if (!dma_enable) {
+                               dma_enable = 1;
+                               if (dsklength == 0) {
+                                       disk_dmafinished();
+                               }
+                       }
                }
                if (disk_debug_logging) {
                        int pos = -1;
@@ -4801,7 +4806,7 @@ static void DSKLEN_2(uae_u16 v, int hpos)
                        return;
                }
                dskdmaen = DSKDMA_READ;
-               DISK_start ();
+               DISK_start();
                weirddma = dsklength < 544 * 11 * 2;
        }
        if (!(v & 0x8000)) {