diff options
Diffstat (limited to 'src/mame/drivers/savquest.cpp')
-rw-r--r-- | src/mame/drivers/savquest.cpp | 66 |
1 files changed, 34 insertions, 32 deletions
diff --git a/src/mame/drivers/savquest.cpp b/src/mame/drivers/savquest.cpp index 51c6eb62029..6414f74ac33 100644 --- a/src/mame/drivers/savquest.cpp +++ b/src/mame/drivers/savquest.cpp @@ -736,40 +736,42 @@ WRITE8_MEMBER(savquest_state::smram_w) } -ADDRESS_MAP_START(savquest_state::savquest_map) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8(smram_r,smram_w,0xffffffff) //AM_DEVREADWRITE8("vga", vga_device, mem_r, mem_w, 0xffffffff) - AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) - AM_RANGE(0x000f0000, 0x000fffff) AM_ROMBANK("bios_f0000") AM_WRITE(bios_f0000_ram_w) - AM_RANGE(0x000e0000, 0x000e3fff) AM_ROMBANK("bios_e0000") AM_WRITE(bios_e0000_ram_w) - AM_RANGE(0x000e4000, 0x000e7fff) AM_ROMBANK("bios_e4000") AM_WRITE(bios_e4000_ram_w) - AM_RANGE(0x000e8000, 0x000ebfff) AM_ROMBANK("bios_e8000") AM_WRITE(bios_e8000_ram_w) - AM_RANGE(0x000ec000, 0x000effff) AM_ROMBANK("bios_ec000") AM_WRITE(bios_ec000_ram_w) - AM_RANGE(0x00100000, 0x07ffffff) AM_RAM // 128MB RAM - AM_RANGE(0xe0000000, 0xe0fbffff) AM_DEVREADWRITE("voodoo", voodoo_device, voodoo_r, voodoo_w) - AM_RANGE(0xfffc0000, 0xffffffff) AM_ROM AM_REGION("bios", 0) /* System BIOS */ -ADDRESS_MAP_END - -ADDRESS_MAP_START(savquest_state::savquest_io) - AM_IMPORT_FROM(pcat32_io_common) - AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", ds12885_device, read, write, 0xffffffff) - - AM_RANGE(0x00e8, 0x00ef) AM_NOP - - AM_RANGE(0x0170, 0x0177) AM_DEVREADWRITE("ide2", ide_controller_32_device, read_cs0, write_cs0) - AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs0, write_cs0) - AM_RANGE(0x0378, 0x037b) AM_READWRITE8(parallel_port_r, parallel_port_w, 0xffffffff) - AM_RANGE(0x03b0, 0x03bf) AM_DEVREADWRITE8("vga", vga_device, port_03b0_r, port_03b0_w, 0xffffffff) - AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", vga_device, port_03c0_r, port_03c0_w, 0xffffffff) - AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("vga", vga_device, port_03d0_r, port_03d0_w, 0xffffffff) - AM_RANGE(0x0370, 0x0377) AM_DEVREADWRITE("ide2", ide_controller_32_device, read_cs1, write_cs1) - AM_RANGE(0x03f0, 0x03f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs1, write_cs1) - - AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write) +void savquest_state::savquest_map(address_map &map) +{ + map.unmap_value_high(); + map(0x00000000, 0x0009ffff).ram(); + map(0x000a0000, 0x000bffff).rw(this, FUNC(savquest_state::smram_r), FUNC(savquest_state::smram_w)); //AM_DEVREADWRITE8("vga", vga_device, mem_r, mem_w, 0xffffffff) + map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0); + map(0x000f0000, 0x000fffff).bankr("bios_f0000").w(this, FUNC(savquest_state::bios_f0000_ram_w)); + map(0x000e0000, 0x000e3fff).bankr("bios_e0000").w(this, FUNC(savquest_state::bios_e0000_ram_w)); + map(0x000e4000, 0x000e7fff).bankr("bios_e4000").w(this, FUNC(savquest_state::bios_e4000_ram_w)); + map(0x000e8000, 0x000ebfff).bankr("bios_e8000").w(this, FUNC(savquest_state::bios_e8000_ram_w)); + map(0x000ec000, 0x000effff).bankr("bios_ec000").w(this, FUNC(savquest_state::bios_ec000_ram_w)); + map(0x00100000, 0x07ffffff).ram(); // 128MB RAM + map(0xe0000000, 0xe0fbffff).rw(m_voodoo, FUNC(voodoo_device::voodoo_r), FUNC(voodoo_device::voodoo_w)); + map(0xfffc0000, 0xffffffff).rom().region("bios", 0); /* System BIOS */ +} + +void savquest_state::savquest_io(address_map &map) +{ + pcat32_io_common(map); + map(0x0070, 0x007f).rw(m_mc146818, FUNC(ds12885_device::read), FUNC(ds12885_device::write)); + + map(0x00e8, 0x00ef).noprw(); + + map(0x0170, 0x0177).rw("ide2", FUNC(ide_controller_32_device::read_cs0), FUNC(ide_controller_32_device::write_cs0)); + map(0x01f0, 0x01f7).rw("ide", FUNC(ide_controller_32_device::read_cs0), FUNC(ide_controller_32_device::write_cs0)); + map(0x0378, 0x037b).rw(this, FUNC(savquest_state::parallel_port_r), FUNC(savquest_state::parallel_port_w)); + map(0x03b0, 0x03bf).rw(m_vga, FUNC(vga_device::port_03b0_r), FUNC(vga_device::port_03b0_w)); + map(0x03c0, 0x03cf).rw(m_vga, FUNC(vga_device::port_03c0_r), FUNC(vga_device::port_03c0_w)); + map(0x03d0, 0x03df).rw(m_vga, FUNC(vga_device::port_03d0_r), FUNC(vga_device::port_03d0_w)); + map(0x0370, 0x0377).rw("ide2", FUNC(ide_controller_32_device::read_cs1), FUNC(ide_controller_32_device::write_cs1)); + map(0x03f0, 0x03f7).rw("ide", FUNC(ide_controller_32_device::read_cs1), FUNC(ide_controller_32_device::write_cs1)); + + map(0x0cf8, 0x0cff).rw("pcibus", FUNC(pci_bus_legacy_device::read), FUNC(pci_bus_legacy_device::write)); // AM_RANGE(0x5000, 0x5007) // routes to port $eb -ADDRESS_MAP_END +} #define AT_KEYB_HELPER(bit, text, key1) \ PORT_BIT( bit, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(text) PORT_CODE(key1) |