machine/i82371sb: fix PIC mapping

This commit is contained in:
angelosa 2024-02-24 20:07:15 +01:00
parent 1615b8551a
commit c38f675ae0
2 changed files with 14 additions and 4 deletions

View File

@ -35,16 +35,23 @@ void i82371sb_isa_device::config_map(address_map &map)
void i82371sb_isa_device::internal_io_map(address_map &map)
{
map(0x0000, 0x001f).rw("dma8237_1", FUNC(am9517a_device::read), FUNC(am9517a_device::write));
map(0x0020, 0x003f).rw("pic8259_master", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x0020, 0x0021).rw("pic8259_master", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
// map(0x002e, 0x002f) Super I/O config
map(0x0040, 0x005f).rw("pit8254", FUNC(pit8254_device::read), FUNC(pit8254_device::write));
map(0x0061, 0x0061).rw(FUNC(i82371sb_isa_device::at_portb_r), FUNC(i82371sb_isa_device::at_portb_w));
// map(0x0070, 0x0070) RTC address, bit 7 NMI enable
// map(0x0071, 0x0071) RTC data
// map(0x0078, 0x0079) Board Configuration
map(0x0080, 0x009f).rw(FUNC(i82371sb_isa_device::at_page8_r), FUNC(i82371sb_isa_device::at_page8_w));
map(0x00a0, 0x00bf).rw("pic8259_slave", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x00a0, 0x00a1).rw("pic8259_slave", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x00b2, 0x00b3).rw(FUNC(i82371sb_isa_device::read_apmcapms), FUNC(i82371sb_isa_device::write_apmcapms));
// Up to $de according to TC430HX spec?
map(0x00c0, 0x00df).rw(FUNC(i82371sb_isa_device::at_dma8237_2_r), FUNC(i82371sb_isa_device::at_dma8237_2_w));
map(0x00e0, 0x00ef).noprw();
// map(0x00f0, 0x00f0) Reset Numeric Error
// map(0x0270, 0x0273) I/O read port for PnP
map(0x04d0, 0x04d1).rw(FUNC(i82371sb_isa_device::eisa_irq_read), FUNC(i82371sb_isa_device::eisa_irq_write));
map(0x0cf9, 0x0cf9).rw(FUNC(i82371sb_isa_device::reset_control_r), FUNC(i82371sb_isa_device::reset_control_w));
map(0x00e0, 0x00ef).noprw();
}
//-------------------------------------------------
@ -817,6 +824,7 @@ void i82371sb_isa_device::pc_mirq0_w(int state)
redirect_irq(irq, state);
}
// FIXME: this is PIIX specific, doesn't exist on PIIX3
void i82371sb_isa_device::pc_mirq1_w(int state)
{
int irq = mbirq1 & 15;

View File

@ -6,6 +6,8 @@
TODO:
- Convert most stuff declared here to generic interfaces;
\- Despite what the datasheet claims it really looks like that a separate Super I/O provides
the usual x86 resources;
- Flash ROM handling
\- Doesn't survive a soft reset;
- Fix EISA;
@ -16,7 +18,7 @@
- RTC extended bank enable;
\- Doesn't survive a CMOS write after fast reset;
- Shadow registers for PIC and PIT;
- IRQ remaps
- IRQ remaps for PCI_SLOT
\- INTA GUI
\- INTB AUDIO and MODEM
\- INTC ethernet