From f5009ef43c3a9c5cde1fcfe167781d40b396513b Mon Sep 17 00:00:00 2001 From: SarahW Date: Fri, 8 Dec 2017 20:10:59 +0000 Subject: [PATCH] Fix HD indicator LED on IBM ESDI adapter. --- src/hdd_esdi.c | 1 + src/ibm.h | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/hdd_esdi.c b/src/hdd_esdi.c index 1b32b1b..8bbc41e 100644 --- a/src/hdd_esdi.c +++ b/src/hdd_esdi.c @@ -437,6 +437,7 @@ static void esdi_callback(void *p) if (esdi->rba >= hdd_file->sectors) fatal("Read past end of drive\n"); hdd_read_sectors(hdd_file, esdi->rba, 1, esdi->data); + readflash_set(READFLASH_HDC, esdi->cmd_dev == ATTN_DEVICE_0 ? 0 : 1); } // pclog("Read sector %i %i %08x\n", esdi->sector_pos, esdi->data_pos, esdi->rba*512); while (esdi->data_pos < 256) diff --git a/src/ibm.h b/src/ibm.h index 2ad1aa3..a314370 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -5,9 +5,9 @@ #define READFLASH_FDC 0 #define READFLASH_HDC 4 -#define readflash_set(offset, drive) readflash |= 1<<(offset+drive) -#define readflash_clear(offset, drive) readflash &= ~(1<<(offset+drive)) -#define readflash_get(offset, drive) ((readflash&(1<<(offset+drive))) != 0) +#define readflash_set(offset, drive) readflash |= 1<<((offset)+(drive)) +#define readflash_clear(offset, drive) readflash &= ~(1<<((offset)+(drive))) +#define readflash_get(offset, drive) ((readflash&(1<<((offset)+(drive)))) != 0) /*Memory*/ uint8_t *ram;