From 8e4757513f45f2b0920548eff9a20a3ed80f2c93 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Jun 2020 00:29:36 +0200 Subject: [PATCH] Automatic FINTR's on failed / zero-step seeks and recalibrates now also disable the timer, fixes booting floppies on Intel AMI BIOS'es. --- src/floppy/fdc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 0a70851fa..273b1fc52 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -93,6 +93,7 @@ int floppyrate[4]; int fdc_type = 0; +#define ENABLE_FDC_LOG 1 #ifdef ENABLE_FDC_LOG int fdc_do_log = ENABLE_FDC_LOG; @@ -1121,6 +1122,7 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) fdc->fintr = 1; fdc->interrupt = -4; } else { + timer_disable(&fdc->timer); fdc->interrupt = -3; fdc_callback(fdc); } @@ -1184,6 +1186,7 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) fdc->fintr = 1; fdc->interrupt = -4; } else { + timer_disable(&fdc->timer); fdc->interrupt = -3; fdc_callback(fdc); } @@ -1209,6 +1212,7 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) fdc->fintr = 1; fdc->interrupt = -4; } else { + timer_disable(&fdc->timer); fdc->interrupt = -3; fdc_callback(fdc); } @@ -1223,6 +1227,7 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) fdc->fintr = 1; fdc->interrupt = -4; } else { + timer_disable(&fdc->timer); fdc->interrupt = -3; fdc_callback(fdc); }