From 0c98ad9146b2eed61451a8276817ea533666a342 Mon Sep 17 00:00:00 2001 From: Daniel Gurney Date: Fri, 19 Mar 2021 20:39:20 +0200 Subject: [PATCH 1/2] Remove optimized builds from README --- README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 12d9c48f9..233b863bd 100644 --- a/README.md +++ b/README.md @@ -34,18 +34,15 @@ Automatic builds For your convenience, we compile a number of 86Box builds per revision on our Jenkins instance. -| Regular | Debug | Optimized | Experimental | -|:-------:|:-----:|:---------:|:------------:| -|[![Build Status](http://ci.86box.net/job/86Box/badge/icon)](http://ci.86box.net/job/86Box)|[![Build Status](http://ci.86box.net/job/86Box-Debug/badge/icon)](http://ci.86box.net/job/86Box-Debug)|[![Build Status](http://ci.86box.net/job/86Box-Optimized/badge/icon)](http://ci.86box.net/job/86Box-Optimized)|[![Build Status](http://ci.86box.net/job/86Box-Dev/badge/icon)](http://ci.86box.net/job/86Box-Dev) +| Regular | Debug | Experimental | +|:-------:|:-----:|:------------:| +|[![Build Status](http://ci.86box.net/job/86Box/badge/icon)](http://ci.86box.net/job/86Box)|[![Build Status](http://ci.86box.net/job/86Box-Debug/badge/icon)](http://ci.86box.net/job/86Box-Debug)|[![Build Status](http://ci.86box.net/job/86Box-Dev/badge/icon)](http://ci.86box.net/job/86Box-Dev) ### Legend * **Regular** builds are compiled using the settings in the building guide above. Use these if you don't know which build to use. * **Debug** builds are same as regular builds but include debug symbols. If you don't need them, you don't need to use this build. -* **Optimized** builds have the same feature set as regular builds, but are - optimized for every modern Intel and AMD processor architecture, which might - improve the emulator's performance in certain scenarios. * **Experimental (Dev)** builds are similar to regular builds but are compiled with certain unfinished features enabled. These builds are not optimized for maximum performance. From 0c9cc06238fc62234ab0237e1ca9dc7b12a45ce1 Mon Sep 17 00:00:00 2001 From: OBattler Date: Sat, 20 Mar 2021 04:45:38 +0100 Subject: [PATCH 2/2] Fixes to the UMC UM8669F Super I/O chip - now reconfiguring device ports actually works. --- src/sio/sio_um8669f.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/sio/sio_um8669f.c b/src/sio/sio_um8669f.c index 54e531ab5..c7cf65970 100644 --- a/src/sio/sio_um8669f.c +++ b/src/sio/sio_um8669f.c @@ -114,28 +114,28 @@ um8669f_pnp_write(uint16_t port, uint8_t val, void *priv) switch (dev->cur_device) { case DEV_FDC: - if ((dev->cur_reg == REG_ENABLE) && valxor) { + if (valxor) { fdc_remove(dev->fdc); if (dev->dev[DEV_FDC].enable & 1) - fdc_set_base(dev->fdc, 0x03f0); + fdc_set_base(dev->fdc, dev->dev[DEV_FDC].addr); } break; case DEV_COM1: - if ((dev->cur_reg == REG_ENABLE) && valxor) { + if (valxor) { serial_remove(dev->uart[0]); if (dev->dev[DEV_COM1].enable & 1) serial_setup(dev->uart[0], dev->dev[DEV_COM1].addr, dev->dev[DEV_COM1].irq); } break; case DEV_COM2: - if ((dev->cur_reg == REG_ENABLE) && valxor) { + if (valxor) { serial_remove(dev->uart[1]); if (dev->dev[DEV_COM2].enable & 1) serial_setup(dev->uart[1], dev->dev[DEV_COM2].addr, dev->dev[DEV_COM2].irq); } break; case DEV_LPT1: - if ((dev->cur_reg == REG_ENABLE) && valxor) { + if (valxor) { lpt1_remove(); if (dev->dev[DEV_LPT1].enable & 1) lpt1_init(dev->dev[DEV_LPT1].addr); @@ -202,6 +202,13 @@ um8669f_write(uint16_t port, uint8_t val, void *priv) if (dev->cur_reg_108 == 0xc1) { new_pnp_active = !!(dev->regs_108[0xc1] & 0x80); if (new_pnp_active != dev->pnp_active) { + io_removehandler(0x0279, 0x0001, + NULL, NULL, NULL, um8669f_pnp_write, NULL, NULL, dev); + io_removehandler(0x0a79, 0x0001, + NULL, NULL, NULL, um8669f_pnp_write, NULL, NULL, dev); + io_removehandler(0x03e3, 0x0001, + um8669f_pnp_read, NULL, NULL, NULL, NULL, NULL, dev); + if (new_pnp_active) { io_sethandler(0x0279, 0x0001, NULL, NULL, NULL, um8669f_pnp_write, NULL, NULL, dev); @@ -209,14 +216,8 @@ um8669f_write(uint16_t port, uint8_t val, void *priv) NULL, NULL, NULL, um8669f_pnp_write, NULL, NULL, dev); io_sethandler(0x03e3, 0x0001, um8669f_pnp_read, NULL, NULL, NULL, NULL, NULL, dev); - } else { - io_removehandler(0x0279, 0x0001, - NULL, NULL, NULL, um8669f_pnp_write, NULL, NULL, dev); - io_removehandler(0x0a79, 0x0001, - NULL, NULL, NULL, um8669f_pnp_write, NULL, NULL, dev); - io_removehandler(0x03e3, 0x0001, - um8669f_pnp_read, NULL, NULL, NULL, NULL, NULL, dev); } + dev->pnp_active = new_pnp_active; } }