From e140db7d1467e51e775e31c9b46e6e282abf6300 Mon Sep 17 00:00:00 2001 From: OBattler Date: Sat, 29 Nov 2025 06:40:53 +0100 Subject: [PATCH] Always take the PCjr path for 0-step seeks, fixes 1B/V3 without breaking 386BSD. --- src/floppy/fdc.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 09886d6f8..c1bf04618 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -1312,14 +1312,8 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) fdc->step = 1; } else { fdc->st0 = 0x20 | (fdc->params[0] & 3); - if (fdc->flags & FDC_FLAG_PCJR) { - fdc->fintr = 1; - fdc->interrupt = -4; - } else { - timer_disable(&fdc->timer); - fdc->interrupt = -3; - fdc_callback(fdc); - } + fdc->fintr = 1; + fdc->interrupt = -4; break; } } else { @@ -1327,14 +1321,9 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) if ((fdc->params[1] - fdc->pcn[fdc->params[0] & 3]) == 0) { fdc_log("Failed seek\n"); fdc->st0 = 0x20 | (fdc->params[0] & 3); - if (fdc->flags & FDC_FLAG_PCJR) { - fdc->fintr = 1; - fdc->interrupt = -4; - } else { - timer_disable(&fdc->timer); - fdc->interrupt = -3; - fdc_callback(fdc); - } + /* Always use the PCjr code, so both 386BSD and 1B/V3 work. */ + fdc->fintr = 1; + fdc->interrupt = -4; break; } if (fdc->params[1] > fdc->pcn[fdc->params[0] & 3])