From 96428c2bda9816dc3156a1118eeae49ad62dbaec Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 23 Jun 2020 18:48:16 +0200 Subject: [PATCH] More minor floppy changes. --- src/floppy/fdc.c | 14 +++----------- src/include/86box/fdc.h | 8 +++----- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 64e1735cd..5184bbe5f 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -197,7 +197,6 @@ fdc_ctrl_reset(void *p) fdc->st0 = 0; fdc->lock = 0; fdc->head = 0; - fdc->abort = 0; fdc->step = 0; if (!(fdc->flags & FDC_FLAG_AT)) fdc->rate = 2; @@ -679,10 +678,9 @@ fdc_io_command_phase1(fdc_t *fdc, int out) fdc->stat = out ? 0x90 : 0x50; if ((fdc->flags & FDC_FLAG_PCJR) || !fdc->dma) fdc->stat |= 0x20; - if (out) { - fdc->written = 0; + if (out) fdc->pos = 0; - } else + else fdc->inread = 1; } @@ -706,7 +704,7 @@ fdc_sis(fdc_t *fdc) fdc->reset_stat--; } else { if (fdc->fintr) { - fdc->res[9] = (fdc->st0 & ~0x04) | (fdd_get_head(fdc->drive & 0x03) ? 4 : 0); + fdc->res[9] = (fdc->st0 & ~0x04) | (fdd_get_head(real_drive(fdc, fdc->drive)) ? 4 : 0); fdc->fintr = 0; } else { fdc->res[10] = 0x80; @@ -1132,7 +1130,6 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) fdc->head = (fdc->params[0] & 4) ? 1 : 0; fdd_set_head(real_drive(fdc, fdc->drive), (fdc->params[0] & 4) ? 1 : 0); fdc->gap = fdc->params[3]; - fdc->dtl = 4000000; fdc->format_sectors = fdc->params[2]; fdc->format_n = fdc->params[1]; fdc->format_state = 1; @@ -1990,10 +1987,6 @@ int fdc_getdata(fdc_t *fdc, int last) int data; if ((fdc->flags & FDC_FLAG_PCJR) || !fdc->dma) { - if (fdc->written) { - fdc_overrun(fdc); - return -1; - } if ((fdc->flags & FDC_FLAG_PCJR) || !fdc->fifo) { data = fdc->dat; @@ -2022,7 +2015,6 @@ int fdc_getdata(fdc_t *fdc, int last) fdc->tc = 1; } - fdc->written = 0; return data & 0xff; } diff --git a/src/include/86box/fdc.h b/src/include/86box/fdc.h index 441d28f2e..7e2a9916b 100644 --- a/src/include/86box/fdc.h +++ b/src/include/86box/fdc.h @@ -38,7 +38,7 @@ extern int fdc_type; typedef struct { - uint8_t dor, stat, command, processed_cmd, dat, st0, swap; + uint8_t dor, stat, command, processed_cmd, dat, st0, swap, dtl; uint8_t swwp, disable_write; uint8_t params[8], res[11]; uint8_t specify[2]; @@ -53,11 +53,9 @@ typedef struct { int pnum, ptot; int rate, reset_stat; int lock, perp; - int abort; int format_state, format_n; - int tc, written; int step, seek_dir; - int noprec; + int tc, noprec; int data_ready, inread; int bitcell_period, enh_mode; @@ -67,7 +65,7 @@ typedef struct { int fifo, tfifo; int fifobufpos, drv2en; - int gap, dtl; + int gap; int enable_3f1, format_sectors; int max_track, mfm; int deleted, wrong_am;