diff options
Diffstat (limited to 'src/mame/drivers/pulsar.cpp')
-rw-r--r-- | src/mame/drivers/pulsar.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/mame/drivers/pulsar.cpp b/src/mame/drivers/pulsar.cpp index 064bdd0afa2..e4c9fe0970a 100644 --- a/src/mame/drivers/pulsar.cpp +++ b/src/mame/drivers/pulsar.cpp @@ -81,21 +81,23 @@ private: required_device<msm5832_device> m_rtc; }; -ADDRESS_MAP_START(pulsar_state::pulsar_mem) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0000, 0x07ff) AM_READ_BANK("bankr0") AM_WRITE_BANK("bankw0") - AM_RANGE(0x0800, 0xf7ff) AM_RAM - AM_RANGE(0xf800, 0xffff) AM_READ_BANK("bankr1") AM_WRITE_BANK("bankw1") -ADDRESS_MAP_END - -ADDRESS_MAP_START(pulsar_state::pulsar_io) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0xc0, 0xc3) AM_MIRROR(0x0c) AM_DEVREADWRITE("dart", z80dart_device, ba_cd_r, ba_cd_w) - AM_RANGE(0xd0, 0xd3) AM_MIRROR(0x0c) AM_DEVREADWRITE("fdc", fd1797_device, read, write) - AM_RANGE(0xe0, 0xe3) AM_MIRROR(0x0c) AM_DEVREADWRITE("ppi", i8255_device, read, write) - AM_RANGE(0xf0, 0xff) AM_WRITE(baud_w) -ADDRESS_MAP_END +void pulsar_state::pulsar_mem(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0x07ff).bankr("bankr0").bankw("bankw0"); + map(0x0800, 0xf7ff).ram(); + map(0xf800, 0xffff).bankr("bankr1").bankw("bankw1"); +} + +void pulsar_state::pulsar_io(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xff); + map(0xc0, 0xc3).mirror(0x0c).rw("dart", FUNC(z80dart_device::ba_cd_r), FUNC(z80dart_device::ba_cd_w)); + map(0xd0, 0xd3).mirror(0x0c).rw(m_fdc, FUNC(fd1797_device::read), FUNC(fd1797_device::write)); + map(0xe0, 0xe3).mirror(0x0c).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)); + map(0xf0, 0xff).w(this, FUNC(pulsar_state::baud_w)); +} WRITE8_MEMBER( pulsar_state::baud_w ) |