summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/pingpong.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pingpong.cpp')
-rw-r--r--src/mame/drivers/pingpong.cpp76
1 files changed, 39 insertions, 37 deletions
diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp
index 16341198293..9462300868e 100644
--- a/src/mame/drivers/pingpong.cpp
+++ b/src/mame/drivers/pingpong.cpp
@@ -89,43 +89,45 @@ TIMER_DEVICE_CALLBACK_MEMBER(pingpong_state::merlinmm_interrupt)
}
}
-ADDRESS_MAP_START(pingpong_state::pingpong_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pingpong_colorram_w) AM_SHARE("colorram")
- AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pingpong_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x9000, 0x9002) AM_RAM
- AM_RANGE(0x9003, 0x9052) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x9053, 0x97ff) AM_RAM
- AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xa880, 0xa880) AM_READ_PORT("INPUTS")
- AM_RANGE(0xa900, 0xa900) AM_READ_PORT("DSW1")
- AM_RANGE(0xa980, 0xa980) AM_READ_PORT("DSW2")
- AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w) /* coin counters + irq enables */
- AM_RANGE(0xa200, 0xa200) AM_WRITENOP /* SN76496 data latch */
- AM_RANGE(0xa400, 0xa400) AM_DEVWRITE("snsnd", sn76496_device, write) /* trigger read */
- AM_RANGE(0xa600, 0xa600) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(pingpong_state::merlinmm_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x5400, 0x57ff) AM_RAM
- AM_RANGE(0x6000, 0x6007) AM_WRITENOP /* solenoid writes */
- AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN4")
- AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pingpong_colorram_w) AM_SHARE("colorram")
- AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pingpong_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x9000, 0x9002) AM_RAM
- AM_RANGE(0x9003, 0x9052) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x9053, 0x97ff) AM_RAM
- AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w) /* irq enables */
- AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
- AM_RANGE(0xa080, 0xa080) AM_READ_PORT("IN1")
- AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN2")
- AM_RANGE(0xa180, 0xa180) AM_READ_PORT("IN3")
- AM_RANGE(0xa200, 0xa200) AM_WRITENOP /* SN76496 data latch */
- AM_RANGE(0xa400, 0xa400) AM_DEVWRITE("snsnd", sn76496_device, write) /* trigger read */
- AM_RANGE(0xa600, 0xa600) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
-ADDRESS_MAP_END
+void pingpong_state::pingpong_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x83ff).ram().w(this, FUNC(pingpong_state::pingpong_colorram_w)).share("colorram");
+ map(0x8400, 0x87ff).ram().w(this, FUNC(pingpong_state::pingpong_videoram_w)).share("videoram");
+ map(0x9000, 0x9002).ram();
+ map(0x9003, 0x9052).ram().share("spriteram");
+ map(0x9053, 0x97ff).ram();
+ map(0xa800, 0xa800).portr("SYSTEM");
+ map(0xa880, 0xa880).portr("INPUTS");
+ map(0xa900, 0xa900).portr("DSW1");
+ map(0xa980, 0xa980).portr("DSW2");
+ map(0xa000, 0xa000).w(this, FUNC(pingpong_state::coin_w)); /* coin counters + irq enables */
+ map(0xa200, 0xa200).nopw(); /* SN76496 data latch */
+ map(0xa400, 0xa400).w("snsnd", FUNC(sn76496_device::write)); /* trigger read */
+ map(0xa600, 0xa600).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+}
+
+void pingpong_state::merlinmm_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x5000, 0x53ff).ram().share("nvram");
+ map(0x5400, 0x57ff).ram();
+ map(0x6000, 0x6007).nopw(); /* solenoid writes */
+ map(0x7000, 0x7000).portr("IN4");
+ map(0x8000, 0x83ff).ram().w(this, FUNC(pingpong_state::pingpong_colorram_w)).share("colorram");
+ map(0x8400, 0x87ff).ram().w(this, FUNC(pingpong_state::pingpong_videoram_w)).share("videoram");
+ map(0x9000, 0x9002).ram();
+ map(0x9003, 0x9052).ram().share("spriteram");
+ map(0x9053, 0x97ff).ram();
+ map(0xa000, 0xa000).w(this, FUNC(pingpong_state::coin_w)); /* irq enables */
+ map(0xa000, 0xa000).portr("IN0");
+ map(0xa080, 0xa080).portr("IN1");
+ map(0xa100, 0xa100).portr("IN2");
+ map(0xa180, 0xa180).portr("IN3");
+ map(0xa200, 0xa200).nopw(); /* SN76496 data latch */
+ map(0xa400, 0xa400).w("snsnd", FUNC(sn76496_device::write)); /* trigger read */
+ map(0xa600, 0xa600).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+}