diff options
Diffstat (limited to 'src/mame/drivers/s7.cpp')
-rw-r--r-- | src/mame/drivers/s7.cpp | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/src/mame/drivers/s7.cpp b/src/mame/drivers/s7.cpp index 12d8933729d..a5f08031851 100644 --- a/src/mame/drivers/s7.cpp +++ b/src/mame/drivers/s7.cpp @@ -141,25 +141,27 @@ private: required_device<pia6821_device> m_pia30; }; -ADDRESS_MAP_START(s7_state::s7_main_map) - ADDRESS_MAP_GLOBAL_MASK(0x7fff) - AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x1000) - AM_RANGE(0x0100, 0x01ff) AM_READWRITE(nvram_r,nvram_w) - AM_RANGE(0x0200, 0x03ff) AM_RAM AM_MIRROR(0x1000) - AM_RANGE(0x1100, 0x11ff) AM_RAM - AM_RANGE(0x2100, 0x2103) AM_DEVREADWRITE("pia21", pia6821_device, read, write) // sound+solenoids - AM_RANGE(0x2200, 0x2203) AM_DEVREADWRITE("pia22", pia6821_device, read, write) // solenoids - AM_RANGE(0x2400, 0x2403) AM_DEVREADWRITE("pia24", pia6821_device, read, write) // lamps - AM_RANGE(0x2800, 0x2803) AM_DEVREADWRITE("pia28", pia6821_device, read, write) // display - AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("pia30", pia6821_device, read, write) // inputs - AM_RANGE(0x5000, 0x7fff) AM_ROM AM_REGION("roms", 0) -ADDRESS_MAP_END - -ADDRESS_MAP_START(s7_state::s7_audio_map) - AM_RANGE(0x0000, 0x00ff) AM_RAM - AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE("pias", pia6821_device, read, write) - AM_RANGE(0xb000, 0xffff) AM_ROM AM_REGION("audioroms", 0) -ADDRESS_MAP_END +void s7_state::s7_main_map(address_map &map) +{ + map.global_mask(0x7fff); + map(0x0000, 0x00ff).ram().mirror(0x1000); + map(0x0100, 0x01ff).rw(this, FUNC(s7_state::nvram_r), FUNC(s7_state::nvram_w)); + map(0x0200, 0x03ff).ram().mirror(0x1000); + map(0x1100, 0x11ff).ram(); + map(0x2100, 0x2103).rw(m_pia21, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sound+solenoids + map(0x2200, 0x2203).rw(m_pia22, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // solenoids + map(0x2400, 0x2403).rw(m_pia24, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps + map(0x2800, 0x2803).rw(m_pia28, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display + map(0x3000, 0x3003).rw(m_pia30, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs + map(0x5000, 0x7fff).rom().region("roms", 0); +} + +void s7_state::s7_audio_map(address_map &map) +{ + map(0x0000, 0x00ff).ram(); + map(0x0400, 0x0403).mirror(0x8000).rw(m_pias, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); + map(0xb000, 0xffff).rom().region("audioroms", 0); +} static INPUT_PORTS_START( s7 ) PORT_START("X0") |