From 55af553ac4dbee15e90eda34961389e3a99768d5 Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 29 Sep 2025 20:19:51 +0200 Subject: [PATCH 1/2] Fix floppy drive behavior, fixes floppy drives in turbo mode on some machines. --- src/floppy/fdc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 71a03bac2..09886d6f8 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -733,7 +733,7 @@ fdc_io_command_phase1(fdc_t *fdc, int out) else ui_sb_update_icon(SB_FLOPPY | real_drive(fdc, fdc->drive), 1); - if (implied_seek) { + if (implied_seek && !fdd_get_turbo(real_drive(fdc, fdc->drive))) { fdc->stat = (fdc->stat & 0x0F) | 0x10 | (1 << real_drive(fdc, fdc->drive)); /* CB=1, per-drive busy */ return; } @@ -1940,7 +1940,7 @@ fdc_callback(void *priv) case 0x0f: /*Seek*/ fdc->st0 = 0x20 | (fdc->params[0] & 3); fdc->stat = 0x10 | (1 << fdc->rw_drive); - if (fdd_get_turbo(1 << fdc->rw_drive)) { + if (fdd_get_turbo(real_drive(fdc, fdc->rw_drive))) { if (fdc->flags & FDC_FLAG_PCJR) { fdc->fintr = 1; fdc->interrupt = -4; From e5fb4469de4a1a3ec836b2650801c364fe1444ac Mon Sep 17 00:00:00 2001 From: Toni Riikonen Date: Mon, 29 Sep 2025 22:13:41 +0300 Subject: [PATCH 2/2] Fixed FDD reset --- src/floppy/fdc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index e1cb0b4f1..09886d6f8 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -184,7 +184,7 @@ fdc_ctrl_reset(void *priv) { fdc_t *fdc = (fdc_t *) priv; - fdc->stat = 0x10; + fdc->stat = 0x80; fdc->pnum = fdc->ptot = 0; fdc->st0 = 0; fdc->head = 0;