From 4531f5c7a773b932c91122b063e2ae8e7955a6d5 Mon Sep 17 00:00:00 2001 From: TomW Date: Sun, 6 Mar 2016 17:23:01 +0000 Subject: [PATCH] IDE fixes for 'unusual' configurations. --- src/ide.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ide.c b/src/ide.c index 7188b13..a4c4565 100644 --- a/src/ide.c +++ b/src/ide.c @@ -675,7 +675,7 @@ void writeide(int ide_board, uint16_t addr, uint8_t val) // int c; // rpclog("Write IDE %08X %02X %08X %08X\n",addr,val,PC,armregs[12]); - if (ide->type == IDE_NONE && addr != 0x1f6 && addr != 0x3f6) return; + if (ide->type == IDE_NONE && (addr == 0x1f0 || addr == 0x1f7)) return; switch (addr) { @@ -926,7 +926,7 @@ void writeide(int ide_board, uint16_t addr, uint8_t val) ide->atastat = ide_other->atastat = BUSY_STAT; // pclog("IDE Reset %i\n", ide_board); } - ide->fdisk=val; + ide->fdisk = ide_other->fdisk = val; ide_irq_update(ide); return; } @@ -951,7 +951,7 @@ uint8_t readide(int ide_board, uint16_t addr) // pclog("ReadIDE %04X from %04X(%08X):%08X\n", addr, CS, cs, pc); // return 0xFF; - if (ide->type == IDE_NONE && addr != 0x1f6) return 0; + if (ide->type == IDE_NONE && (addr == 0x1f0 || addr == 0x1f7)) return 0; // /*if (addr!=0x1F7 && addr!=0x3F6) */pclog("Read IDEb %04X %02X %02X %i %04X:%04X %i %04X\n",addr,ide->atastat,(ide->atastat & ~DSC_STAT) | (ide->service ? SERVICE_STAT : 0),cur_ide[ide_board],CS,pc,ide_board, BX); //rpclog("Read IDE %08X %08X %02X\n",addr,PC,iomd.irqb.mask); switch (addr)