From 69c8c7a4c2dd5d93461465eee3c81d5f6f995937 Mon Sep 17 00:00:00 2001 From: cracyc Date: Mon, 16 Sep 2024 19:54:40 -0500 Subject: upd765: don't bail immediately when a sector address crc failure fixes ea interlock copy pro --- src/devices/machine/upd765.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/devices/machine/upd765.cpp b/src/devices/machine/upd765.cpp index 6c624134f4c..db8e1653191 100644 --- a/src/devices/machine/upd765.cpp +++ b/src/devices/machine/upd765.cpp @@ -1862,12 +1862,6 @@ void upd765_family_device::read_data_continue(floppy_info &fi) case SCAN_ID: LOGSTATE("SCAN_ID\n"); - if(cur_live.crc) { - fi.st0 |= ST0_FAIL; - st1 |= ST1_DE|ST1_ND; - fi.sub_state = COMMAND_DONE; - break; - } // MZ: This st1 handling ensures that both HX5102 floppy and the // Speedlock protection scheme are properly working. // a) HX5102 requires that the ND flag not be set when no address @@ -1889,6 +1883,13 @@ void upd765_family_device::read_data_continue(floppy_info &fi) live_start(fi, SEARCH_ADDRESS_MARK_HEADER); return; } + if(cur_live.crc) { + fi.st0 |= ST0_FAIL; + st1 |= ST1_DE; + st1 &= ~ST1_ND; + fi.sub_state = COMMAND_DONE; + break; + } st1 &= ~ST1_ND; st2 &= ~ST2_WC; LOGRW("reading sector %02x %02x %02x %02x\n", -- cgit v1.2.3