From 0fa41b7b9b7a7015bd7d1b2baa46b94c52319cd6 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Sun, 14 May 2017 22:40:53 +0200 Subject: [PATCH] Included MCA header and fixed aha1640 write function. --- src/scsi_aha154x.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/scsi_aha154x.c b/src/scsi_aha154x.c index 8a82b7e36..fc31f6af6 100644 --- a/src/scsi_aha154x.c +++ b/src/scsi_aha154x.c @@ -25,6 +25,7 @@ #include #include "ibm.h" #include "io.h" +#include "mca.h" #include "mem.h" #include "rom.h" #include "dma.h" @@ -2194,13 +2195,15 @@ void aha_mca_write(int port, uint8_t val, void *p) if (port < 0x102) return; - addr = aha_mca_addr[dev->pos_regs[4] & 7]; - if ((dev->pos_regs[2] & 1) && !(val & 1)) - io_removehandler(addr, 0x0004, aha_read, aha_readw, NULL, aha_write, aha_writew, NULL, dev); - if (!(dev->pos_regs[2] & 1) && (val & 1)) - io_sethandler(addr, 0x0004, aha_read, aha_readw, NULL, aha_write, aha_writew, NULL, dev); - + addr = aha_mca_addr[dev->pos_regs[4] & 6]; + io_removehandler(addr, 0x0004, aha_read, aha_readw, NULL, aha_write, aha_writew, NULL, dev); + dev->pos_regs[port & 7] = val; + + if (dev->pos_regs[2] & 1) + { + io_sethandler(addr, 0x0004, aha_read, aha_readw, NULL, aha_write, aha_writew, NULL, dev); + } }