This commit is contained in:
RichardG867
2021-03-20 01:23:21 -03:00
2 changed files with 16 additions and 18 deletions

View File

@@ -34,18 +34,15 @@ Automatic builds
For your convenience, we compile a number of 86Box builds per revision on our For your convenience, we compile a number of 86Box builds per revision on our
Jenkins instance. Jenkins instance.
| Regular | Debug | Optimized | Experimental | | 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-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) |[![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 ### Legend
* **Regular** builds are compiled using the settings in the building guide * **Regular** builds are compiled using the settings in the building guide
above. Use these if you don't know which build to use. above. Use these if you don't know which build to use.
* **Debug** builds are same as regular builds but include debug symbols. * **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. 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 * **Experimental (Dev)** builds are similar to regular builds but are compiled
with certain unfinished features enabled. These builds are not optimized for maximum performance. with certain unfinished features enabled. These builds are not optimized for maximum performance.

View File

@@ -114,28 +114,28 @@ um8669f_pnp_write(uint16_t port, uint8_t val, void *priv)
switch (dev->cur_device) { switch (dev->cur_device) {
case DEV_FDC: case DEV_FDC:
if ((dev->cur_reg == REG_ENABLE) && valxor) { if (valxor) {
fdc_remove(dev->fdc); fdc_remove(dev->fdc);
if (dev->dev[DEV_FDC].enable & 1) if (dev->dev[DEV_FDC].enable & 1)
fdc_set_base(dev->fdc, 0x03f0); fdc_set_base(dev->fdc, dev->dev[DEV_FDC].addr);
} }
break; break;
case DEV_COM1: case DEV_COM1:
if ((dev->cur_reg == REG_ENABLE) && valxor) { if (valxor) {
serial_remove(dev->uart[0]); serial_remove(dev->uart[0]);
if (dev->dev[DEV_COM1].enable & 1) if (dev->dev[DEV_COM1].enable & 1)
serial_setup(dev->uart[0], dev->dev[DEV_COM1].addr, dev->dev[DEV_COM1].irq); serial_setup(dev->uart[0], dev->dev[DEV_COM1].addr, dev->dev[DEV_COM1].irq);
} }
break; break;
case DEV_COM2: case DEV_COM2:
if ((dev->cur_reg == REG_ENABLE) && valxor) { if (valxor) {
serial_remove(dev->uart[1]); serial_remove(dev->uart[1]);
if (dev->dev[DEV_COM2].enable & 1) if (dev->dev[DEV_COM2].enable & 1)
serial_setup(dev->uart[1], dev->dev[DEV_COM2].addr, dev->dev[DEV_COM2].irq); serial_setup(dev->uart[1], dev->dev[DEV_COM2].addr, dev->dev[DEV_COM2].irq);
} }
break; break;
case DEV_LPT1: case DEV_LPT1:
if ((dev->cur_reg == REG_ENABLE) && valxor) { if (valxor) {
lpt1_remove(); lpt1_remove();
if (dev->dev[DEV_LPT1].enable & 1) if (dev->dev[DEV_LPT1].enable & 1)
lpt1_init(dev->dev[DEV_LPT1].addr); 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) { if (dev->cur_reg_108 == 0xc1) {
new_pnp_active = !!(dev->regs_108[0xc1] & 0x80); new_pnp_active = !!(dev->regs_108[0xc1] & 0x80);
if (new_pnp_active != dev->pnp_active) { 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) { if (new_pnp_active) {
io_sethandler(0x0279, 0x0001, io_sethandler(0x0279, 0x0001,
NULL, NULL, NULL, um8669f_pnp_write, NULL, NULL, dev); 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); NULL, NULL, NULL, um8669f_pnp_write, NULL, NULL, dev);
io_sethandler(0x03e3, 0x0001, io_sethandler(0x03e3, 0x0001,
um8669f_pnp_read, NULL, NULL, NULL, NULL, NULL, dev); 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; dev->pnp_active = new_pnp_active;
} }
} }