diff options
Diffstat (limited to 'src/mame/drivers/pcat_dyn.cpp')
-rw-r--r-- | src/mame/drivers/pcat_dyn.cpp | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/src/mame/drivers/pcat_dyn.cpp b/src/mame/drivers/pcat_dyn.cpp index ae84e3b205b..2a1db32a81e 100644 --- a/src/mame/drivers/pcat_dyn.cpp +++ b/src/mame/drivers/pcat_dyn.cpp @@ -97,29 +97,31 @@ WRITE8_MEMBER(pcat_dyn_state::bank2_w) m_nvram_bank->set_entry(data & 1); } -ADDRESS_MAP_START(pcat_dyn_state::pcat_map) - AM_RANGE(0x00000000, 0x0009ffff) AM_RAM - AM_RANGE(0x000a0000, 0x000bffff) AM_DEVREADWRITE8("vga", trident_vga_device, mem_r, mem_w, 0xffffffff) - AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0) - AM_RANGE(0x000d0000, 0x000d0fff) AM_ROM AM_REGION("game_prg", 0x0000) AM_WRITE8(bank1_w, 0xffffffff) - AM_RANGE(0x000d1000, 0x000d1fff) AM_ROM AM_REGION("game_prg", 0x1000) AM_WRITE8(bank2_w, 0xffffffff) - AM_RANGE(0x000d2000, 0x000d2fff) AM_ROMBANK("prgbank") - AM_RANGE(0x000d3000, 0x000d3fff) AM_RAMBANK("nvram_bank") - AM_RANGE(0x000df400, 0x000df8ff) AM_RAM //I/O board? - AM_RANGE(0x000f0000, 0x000fffff) AM_ROM AM_REGION("bios", 0 ) - AM_RANGE(0x00100000, 0x001fffff) AM_RAM - AM_RANGE(0xffff0000, 0xffffffff) AM_ROM AM_REGION("bios", 0 ) -ADDRESS_MAP_END - -ADDRESS_MAP_START(pcat_dyn_state::pcat_io) - AM_IMPORT_FROM(pcat32_io_common) - AM_RANGE(0x03b0, 0x03bf) AM_DEVREADWRITE8("vga", trident_vga_device, port_03b0_r, port_03b0_w, 0xffffffff) - AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", trident_vga_device, port_03c0_r, port_03c0_w, 0xffffffff) - AM_RANGE(0x03d0, 0x03df) AM_DEVREADWRITE8("vga", trident_vga_device, port_03d0_r, port_03d0_w, 0xffffffff) - AM_RANGE(0x03f8, 0x03ff) AM_DEVREADWRITE8("ns16550", ns16550_device, ins8250_r, ins8250_w, 0xffffffff) - AM_RANGE(0x0530, 0x0533) AM_READ8(audio_r, 0xffffffff) - AM_RANGE(0x0534, 0x0537) AM_DEVREADWRITE8("ad1848", ad1848_device, read, write, 0xffffffff) -ADDRESS_MAP_END +void pcat_dyn_state::pcat_map(address_map &map) +{ + map(0x00000000, 0x0009ffff).ram(); + map(0x000a0000, 0x000bffff).rw("vga", FUNC(trident_vga_device::mem_r), FUNC(trident_vga_device::mem_w)); + map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0); + map(0x000d0000, 0x000d0fff).rom().region("game_prg", 0x0000).w(this, FUNC(pcat_dyn_state::bank1_w)); + map(0x000d1000, 0x000d1fff).rom().region("game_prg", 0x1000).w(this, FUNC(pcat_dyn_state::bank2_w)); + map(0x000d2000, 0x000d2fff).bankr("prgbank"); + map(0x000d3000, 0x000d3fff).bankrw("nvram_bank"); + map(0x000df400, 0x000df8ff).ram(); //I/O board? + map(0x000f0000, 0x000fffff).rom().region("bios", 0); + map(0x00100000, 0x001fffff).ram(); + map(0xffff0000, 0xffffffff).rom().region("bios", 0); +} + +void pcat_dyn_state::pcat_io(address_map &map) +{ + pcat32_io_common(map); + map(0x03b0, 0x03bf).rw("vga", FUNC(trident_vga_device::port_03b0_r), FUNC(trident_vga_device::port_03b0_w)); + map(0x03c0, 0x03cf).rw("vga", FUNC(trident_vga_device::port_03c0_r), FUNC(trident_vga_device::port_03c0_w)); + map(0x03d0, 0x03df).rw("vga", FUNC(trident_vga_device::port_03d0_r), FUNC(trident_vga_device::port_03d0_w)); + map(0x03f8, 0x03ff).rw("ns16550", FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w)); + map(0x0530, 0x0533).r(this, FUNC(pcat_dyn_state::audio_r)); + map(0x0534, 0x0537).rw("ad1848", FUNC(ad1848_device::read), FUNC(ad1848_device::write)); +} //TODO: use atmb device WRITE8_MEMBER( pcat_dyn_state::dma8237_1_dack_w ){ m_isabus->dack_w(1, data); } |