]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Check that new DSKLEN value does not have WRITE bit set.
authorToni Wilen <twilen@winuae.net>
Thu, 1 Mar 2018 15:50:10 +0000 (17:50 +0200)
committerToni Wilen <twilen@winuae.net>
Thu, 1 Mar 2018 15:50:10 +0000 (17:50 +0200)
disk.cpp

index a5b8ffc39072502ec03038b1513734c3aff95f76..de4ff0727d14f939a238003435c0c40b8e3ac58f 100644 (file)
--- a/disk.cpp
+++ b/disk.cpp
@@ -3886,7 +3886,7 @@ void DSKLEN (uae_u16 v, int hpos)
        dsklength2 = dsklength = dsklen & 0x3fff;
 
        if ((v & 0x8000) && (prev & 0x8000)) {
-               if (dskdmaen == DSKDMA_READ) {
+               if (dskdmaen == DSKDMA_READ && !(v & 0x4000)) {
                        // update only currently active DMA length, don't change DMA state
                        write_log(_T("warning: Disk read DMA length rewrite %d -> %d. (%04x) PC=%08x\n"), prev & 0x3fff, v & 0x3fff, v, M68K_GETPC);
                        return;