From 547fccccc6164ff1dc42d192a43ca8b26b1aeb7e Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Wed, 19 Jan 2022 15:59:17 -0500 Subject: [PATCH] Less magic numbers in FDC --- src/floppy/fdc.c | 6 +++--- src/floppy/fdc_magitronic.c | 2 +- src/include/86box/fdc.h | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 545eafd72..5f47a5c34 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -2311,7 +2311,7 @@ fdc_reset(void *priv) fdc->max_track = (fdc->flags & FDC_FLAG_MORE_TRACKS) ? 85 : 79; fdc_remove(fdc); - fdc_set_base(fdc, (fdc->flags & FDC_FLAG_PCJR) ? 0x00f0 : 0x03f0); + fdc_set_base(fdc, (fdc->flags & FDC_FLAG_PCJR) ? FDC_PRIMARY_PCJR_ADDR : FDC_PRIMARY_ADDR); current_drive = 0; @@ -2342,12 +2342,12 @@ fdc_init(const device_t *info) fdc->flags = info->local; - fdc->irq = 6; + fdc->irq = FDC_PRIMARY_IRQ; if (fdc->flags & FDC_FLAG_PCJR) timer_add(&fdc->watchdog_timer, fdc_watchdog_poll, fdc, 0); else - fdc->dma_ch = 2; + fdc->dma_ch = FDC_PRIMARY_DMA; fdc_log("FDC added: %04X (flags: %08X)\n", fdc->base_address, fdc->flags); diff --git a/src/floppy/fdc_magitronic.c b/src/floppy/fdc_magitronic.c index 2242cf760..807e021e7 100644 --- a/src/floppy/fdc_magitronic.c +++ b/src/floppy/fdc_magitronic.c @@ -101,7 +101,7 @@ b215_init(const device_t *info) rom_init(&dev->rom, ROM_B215, ROM_ADDR, 0x2000, 0x1fff, 0, MEM_MAPPING_EXTERNAL); dev->fdc_controller = device_add(&fdc_um8398_device); - io_sethandler(0x03f0, 1, b215_read, NULL, NULL, NULL, NULL, NULL, dev); + io_sethandler(FDC_PRIMARY_ADDR, 1, b215_read, NULL, NULL, NULL, NULL, NULL, dev); return dev; } diff --git a/src/include/86box/fdc.h b/src/include/86box/fdc.h index 87404e174..f50e82b58 100644 --- a/src/include/86box/fdc.h +++ b/src/include/86box/fdc.h @@ -24,6 +24,22 @@ extern int fdc_type; +#define FDC_PRIMARY_ADDR 0x03f0 +#define FDC_PRIMARY_IRQ 6 +#define FDC_PRIMARY_DMA 2 +#define FDC_PRIMARY_PCJR_ADDR 0x00f0 +#define FDC_PRIMARY_PCJR_IRQ 6 +#define FDC_PRIMARY_PCJR_DMA 2 +#define FDC_SECONDARY_ADDR 0x0370 +#define FDC_SECONDARY_IRQ 6 +#define FDC_SECONDARY_DMA 2 +#define FDC_TERTIARY_ADDR 0x0360 +#define FDC_TERTIARY_IRQ 6 +#define FDC_TERTIARY_DMA 2 +#define FDC_QUATERNARY_ADDR 0x03e0 +#define FDC_QUATERNARY_IRQ 6 +#define FDC_QUATERNARY_DMA 2 + #define FDC_FLAG_PCJR 0x01 /* PCjr */ #define FDC_FLAG_DISKCHG_ACTLOW 0x02 /* Amstrad, PS/1, PS/2 ISA */ #define FDC_FLAG_AT 0x04 /* AT+, PS/x */