diff --git a/src/machine/m_at_socket7_s7.c b/src/machine/m_at_socket7_s7.c index c0314ad88..5dbd00b48 100644 --- a/src/machine/m_at_socket7_s7.c +++ b/src/machine/m_at_socket7_s7.c @@ -322,10 +322,10 @@ machine_at_m7shi_init(const machine_t *model) pci_register_slot(0x10, PCI_CARD_NORMAL, 2, 3, 4, 1); pci_register_slot(0x0F, PCI_CARD_NORMAL, 1, 2, 3, 4); pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - device_add(&i430vx_device); + device_add(&i430hx_device); device_add(&piix3_device); device_add(&keyboard_ps2_ami_pci_device); - device_add(&fdc37c932fr_device); + device_add(&fdc37c935_device); device_add(&intel_flash_bxt_device); return ret; @@ -510,8 +510,9 @@ machine_at_brio80xx_init(const machine_t *model) device_add(&i430vx_device); device_add(&piix3_device); device_add(&keyboard_ps2_ami_pci_device); - device_add(&fdc37c932fr_device); - device_add(&intel_flash_bxt_device); + device_add(&fdc37c935_device); + // device_add(&intel_flash_bxt_device); + device_add(&sst_flash_29ee020_device); return ret; } diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index cd64e4830..b116a452a 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -242,7 +242,7 @@ const machine_t machines[] = { { "[Socket 7 HX] Acer V35n", "acerv35n", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 192, 8, 127, machine_at_acerv35n_init, NULL }, { "[Socket 7 HX] ASUS P/I-P55T2P4", "p55t2p4", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 256, 8, 127, machine_at_p55t2p4_init, NULL }, - { "[Socket 7 HX] Micronics M7S-Hi", "m7shi", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_m7shi_init, NULL }, + { "[Socket 7 HX] Micronics M7S-Hi", "m7shi", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 511, machine_at_m7shi_init, NULL }, { "[Socket 7 HX] TC430HX", "tc430hx", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 255, machine_at_tc430hx_init, NULL }, { "[Socket 7 HX] Toshiba Equium 5200D", "equium5200", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 192, 8, 127, machine_at_equium5200_init, NULL }, diff --git a/src/sio_fdc37c93x.c b/src/sio_fdc37c93x.c index e5ed9e164..7e08ab373 100644 --- a/src/sio_fdc37c93x.c +++ b/src/sio_fdc37c93x.c @@ -393,6 +393,8 @@ fdc37c93x_write(uint16_t port, uint8_t val, void *priv) fdc37c93x_serial_handler(dev, 0); if (valxor & 0x20) fdc37c93x_serial_handler(dev, 1); + if ((valxor & 0x40) && (dev->chip_id != 0x02)) + fdc37c932fr_access_bus_handler(dev); break; } @@ -406,6 +408,8 @@ fdc37c93x_write(uint16_t port, uint8_t val, void *priv) case 0x30: case 0x60: case 0x61: + if ((dev->cur_reg == 0x30) && (val & 0x01)) + dev->regs[0x22] |= 0x01; if (valxor) fdc37c93x_fdc_handler(dev); break; @@ -454,6 +458,8 @@ fdc37c93x_write(uint16_t port, uint8_t val, void *priv) case 0x60: case 0x61: case 0x70: + if ((dev->cur_reg == 0x30) && (val & 0x01)) + dev->regs[0x22] |= 0x08; if (valxor) fdc37c93x_lpt_handler(dev); break; @@ -466,6 +472,8 @@ fdc37c93x_write(uint16_t port, uint8_t val, void *priv) case 0x60: case 0x61: case 0x70: + if ((dev->cur_reg == 0x30) && (val & 0x01)) + dev->regs[0x22] |= 0x10; if (valxor) fdc37c93x_serial_handler(dev, 0); break; @@ -478,6 +486,8 @@ fdc37c93x_write(uint16_t port, uint8_t val, void *priv) case 0x60: case 0x61: case 0x70: + if ((dev->cur_reg == 0x30) && (val & 0x01)) + dev->regs[0x22] |= 0x20; if (valxor) fdc37c93x_serial_handler(dev, 1); break; @@ -556,6 +566,8 @@ fdc37c93x_write(uint16_t port, uint8_t val, void *priv) case 0x60: case 0x61: case 0x70: + if ((dev->cur_reg == 0x30) && (val & 0x01)) + dev->regs[0x22] |= 0x40; if (valxor) fdc37c932fr_access_bus_handler(dev); break; @@ -757,6 +769,8 @@ fdc37c93x_init(const device_t *info) if (dev->chip_id == 0x03) dev->access_bus = device_add(&access_bus_device); + io_sethandler(0x370, 0x0002, + fdc37c93x_read, NULL, NULL, fdc37c93x_write, NULL, NULL, dev); io_sethandler(0x3f0, 0x0002, fdc37c93x_read, NULL, NULL, fdc37c93x_write, NULL, NULL, dev);