diff options
Diffstat (limited to 'src/mame/drivers/rallyx.cpp')
-rw-r--r-- | src/mame/drivers/rallyx.cpp | 77 |
1 files changed, 40 insertions, 37 deletions
diff --git a/src/mame/drivers/rallyx.cpp b/src/mame/drivers/rallyx.cpp index b2f4c929312..b430f91495f 100644 --- a/src/mame/drivers/rallyx.cpp +++ b/src/mame/drivers/rallyx.cpp @@ -283,43 +283,46 @@ WRITE_LINE_MEMBER(rallyx_state::coin_counter_2_w) * *************************************/ -ADDRESS_MAP_START(rallyx_state::rallyx_map) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(rallyx_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x9800, 0x9fff) AM_RAM - AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") - AM_RANGE(0xa080, 0xa080) AM_READ_PORT("P2") - AM_RANGE(0xa100, 0xa100) AM_READ_PORT("DSW") - AM_RANGE(0xa000, 0xa00f) AM_WRITEONLY AM_SHARE("radarattr") - AM_RANGE(0xa080, 0xa080) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) - AM_RANGE(0xa100, 0xa11f) AM_DEVWRITE("namco", namco_device, pacman_sound_w) - AM_RANGE(0xa130, 0xa130) AM_WRITE(rallyx_scrollx_w) - AM_RANGE(0xa140, 0xa140) AM_WRITE(rallyx_scrolly_w) - AM_RANGE(0xa170, 0xa170) AM_WRITENOP /* ? */ - AM_RANGE(0xa180, 0xa187) AM_DEVWRITE("mainlatch", ls259_device, write_d0) -ADDRESS_MAP_END - -ADDRESS_MAP_START(rallyx_state::io_map) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0, 0) AM_WRITE(rallyx_interrupt_vector_w) -ADDRESS_MAP_END - - -ADDRESS_MAP_START(rallyx_state::jungler_map) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(rallyx_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x9800, 0x9fff) AM_RAM - AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") - AM_RANGE(0xa080, 0xa080) AM_READ_PORT("P2") - AM_RANGE(0xa100, 0xa100) AM_READ_PORT("DSW1") - AM_RANGE(0xa180, 0xa180) AM_READ_PORT("DSW2") - AM_RANGE(0xa000, 0xa00f) AM_MIRROR(0x00f0) AM_WRITEONLY AM_SHARE("radarattr") // jungler writes to a03x - AM_RANGE(0xa080, 0xa080) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) - AM_RANGE(0xa100, 0xa100) AM_DEVWRITE("timeplt_audio", timeplt_audio_device, sound_data_w) - AM_RANGE(0xa130, 0xa130) AM_WRITE(rallyx_scrollx_w) /* only jungler and tactcian */ - AM_RANGE(0xa140, 0xa140) AM_WRITE(rallyx_scrolly_w) /* only jungler and tactcian */ - AM_RANGE(0xa180, 0xa187) AM_DEVWRITE("mainlatch", ls259_device, write_d0) -ADDRESS_MAP_END +void rallyx_state::rallyx_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x8000, 0x8fff).ram().w(this, FUNC(rallyx_state::rallyx_videoram_w)).share("videoram"); + map(0x9800, 0x9fff).ram(); + map(0xa000, 0xa000).portr("P1"); + map(0xa080, 0xa080).portr("P2"); + map(0xa100, 0xa100).portr("DSW"); + map(0xa000, 0xa00f).writeonly().share("radarattr"); + map(0xa080, 0xa080).w("watchdog", FUNC(watchdog_timer_device::reset_w)); + map(0xa100, 0xa11f).w(m_namco_sound, FUNC(namco_device::pacman_sound_w)); + map(0xa130, 0xa130).w(this, FUNC(rallyx_state::rallyx_scrollx_w)); + map(0xa140, 0xa140).w(this, FUNC(rallyx_state::rallyx_scrolly_w)); + map(0xa170, 0xa170).nopw(); /* ? */ + map(0xa180, 0xa187).w("mainlatch", FUNC(ls259_device::write_d0)); +} + +void rallyx_state::io_map(address_map &map) +{ + map.global_mask(0xff); + map(0, 0).w(this, FUNC(rallyx_state::rallyx_interrupt_vector_w)); +} + + +void rallyx_state::jungler_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0x8000, 0x8fff).ram().w(this, FUNC(rallyx_state::rallyx_videoram_w)).share("videoram"); + map(0x9800, 0x9fff).ram(); + map(0xa000, 0xa000).portr("P1"); + map(0xa080, 0xa080).portr("P2"); + map(0xa100, 0xa100).portr("DSW1"); + map(0xa180, 0xa180).portr("DSW2"); + map(0xa000, 0xa00f).mirror(0x00f0).writeonly().share("radarattr"); // jungler writes to a03x + map(0xa080, 0xa080).w("watchdog", FUNC(watchdog_timer_device::reset_w)); + map(0xa100, 0xa100).w(m_timeplt_audio, FUNC(timeplt_audio_device::sound_data_w)); + map(0xa130, 0xa130).w(this, FUNC(rallyx_state::rallyx_scrollx_w)); /* only jungler and tactcian */ + map(0xa140, 0xa140).w(this, FUNC(rallyx_state::rallyx_scrolly_w)); /* only jungler and tactcian */ + map(0xa180, 0xa187).w("mainlatch", FUNC(ls259_device::write_d0)); +} /************************************* |