From 014552f235b6a5175dd74b9db8a13ffe0c9927e5 Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 29 Jun 2020 04:32:30 +0200 Subject: [PATCH] Fixes to SiS 496/497 and W83787F. --- src/chipset/sis_85c496.c | 2 +- src/sio/sio_w83787f.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/chipset/sis_85c496.c b/src/chipset/sis_85c496.c index 978f5d29e..0bec0232f 100644 --- a/src/chipset/sis_85c496.c +++ b/src/chipset/sis_85c496.c @@ -259,7 +259,7 @@ sis_85c49x_pci_write(int func, int addr, uint8_t val, void *priv) case 0x48: case 0x49: case 0x4a: case 0x4b: /* DRAM Boundary */ case 0x4c: case 0x4d: case 0x4e: case 0x4f: // dev->pci_conf[addr] = val; - spd_write_drbs(dev->pci_conf, 0x40, 0x4f, 1); + spd_write_drbs(dev->pci_conf, 0x48, 0x4f, 1); break; case 0x50: case 0x51: /* Exclusive Area 0 Setup */ dev->pci_conf[addr] = val; diff --git a/src/sio/sio_w83787f.c b/src/sio/sio_w83787f.c index f1a6e51d8..8fe4f4bf7 100644 --- a/src/sio/sio_w83787f.c +++ b/src/sio/sio_w83787f.c @@ -183,7 +183,7 @@ static void w83787f_fdc_handler(w83787f_t *dev) { fdc_remove(dev->fdc); - if (!(dev->regs[0] & 0x20)) + if (!(dev->regs[0] & 0x20) && !(dev->regs[6] & 0x08)) fdc_set_base(dev->fdc, (dev->regs[0] & 0x10) ? 0x03f0 : 0x0370); } @@ -251,11 +251,8 @@ w83787f_write(uint16_t port, uint8_t val, void *priv) w83787f_lpt_handler(dev); break; case 6: - if (valxor & 0x08) { - fdc_remove(dev->fdc); - if (!(dev->regs[6] & 0x08)) - fdc_set_base(dev->fdc, 0x03f0); - } + if (valxor & 0x08) + w83787f_fdc_handler(dev); break; case 7: if (valxor & 0x03) @@ -283,6 +280,9 @@ w83787f_write(uint16_t port, uint8_t val, void *priv) if (valxor & 0x80) w83787f_lpt_handler(dev); break; + case 0xB: + pclog("Writing %02X to CRB\n", val); + break; case 0xC: if (valxor & 0x20) w83787f_remap(dev);