summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/atetris.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/atetris.cpp')
-rw-r--r--src/mame/drivers/atetris.cpp107
1 files changed, 55 insertions, 52 deletions
diff --git a/src/mame/drivers/atetris.cpp b/src/mame/drivers/atetris.cpp
index c52d23bd2fc..e9f18b087df 100644
--- a/src/mame/drivers/atetris.cpp
+++ b/src/mame/drivers/atetris.cpp
@@ -193,61 +193,64 @@ WRITE8_MEMBER(atetris_state::nvram_enable_w)
*************************************/
/* full address map derived from schematics */
-ADDRESS_MAP_START(atetris_state::main_map)
- AM_RANGE(0x0000, 0x0fff) AM_RAM
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0x2400, 0x25ff) AM_MIRROR(0x0200) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
- AM_RANGE(0x2800, 0x280f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
- AM_RANGE(0x2810, 0x281f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
- AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x03ff) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x3400, 0x3400) AM_MIRROR(0x03ff) AM_WRITE(nvram_enable_w)
- AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x03ff) AM_WRITE(irq_ack_w)
- AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x03ff) AM_WRITE(coincount_w)
- AM_RANGE(0x4000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x7fff) AM_READ(slapstic_r)
- AM_RANGE(0x8000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(atetris_state::atetrisb2_map)
- AM_RANGE(0x0000, 0x0fff) AM_RAM
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x2000, 0x20ff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
- AM_RANGE(0x2802, 0x2802) AM_DEVWRITE("sn1", sn76496_device, write)
- AM_RANGE(0x2804, 0x2804) AM_DEVWRITE("sn2", sn76496_device, write)
- AM_RANGE(0x2806, 0x2806) AM_DEVWRITE("sn3", sn76496_device, write)
- AM_RANGE(0x2808, 0x2808) AM_READ_PORT("IN0")
- AM_RANGE(0x2818, 0x2818) AM_READ_PORT("IN1")
- AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x3400, 0x3400) AM_WRITE(nvram_enable_w)
- AM_RANGE(0x3800, 0x3800) AM_WRITE(irq_ack_w)
- AM_RANGE(0x3c00, 0x3c00) AM_WRITE(coincount_w)
- AM_RANGE(0x4000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x7fff) AM_READ(slapstic_r)
- AM_RANGE(0x8000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(atetris_state::atetrisb3_map)
- AM_RANGE(0x0000, 0x0fff) AM_RAM
- AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x2000, 0x20ff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
+void atetris_state::main_map(address_map &map)
+{
+ map(0x0000, 0x0fff).ram();
+ map(0x1000, 0x1fff).ram().w(this, FUNC(atetris_state::videoram_w)).share("videoram");
+ map(0x2000, 0x20ff).mirror(0x0300).ram().w("palette", FUNC(palette_device::write8)).share("palette");
+ map(0x2400, 0x25ff).mirror(0x0200).ram().w(this, FUNC(atetris_state::nvram_w)).share("nvram");
+ map(0x2800, 0x280f).mirror(0x03e0).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write));
+ map(0x2810, 0x281f).mirror(0x03e0).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write));
+ map(0x3000, 0x3000).mirror(0x03ff).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x3400, 0x3400).mirror(0x03ff).w(this, FUNC(atetris_state::nvram_enable_w));
+ map(0x3800, 0x3800).mirror(0x03ff).w(this, FUNC(atetris_state::irq_ack_w));
+ map(0x3c00, 0x3c00).mirror(0x03ff).w(this, FUNC(atetris_state::coincount_w));
+ map(0x4000, 0x5fff).rom();
+ map(0x6000, 0x7fff).r(this, FUNC(atetris_state::slapstic_r));
+ map(0x8000, 0xffff).rom();
+}
+
+
+void atetris_state::atetrisb2_map(address_map &map)
+{
+ map(0x0000, 0x0fff).ram();
+ map(0x1000, 0x1fff).ram().w(this, FUNC(atetris_state::videoram_w)).share("videoram");
+ map(0x2000, 0x20ff).ram().w("palette", FUNC(palette_device::write8)).share("palette");
+ map(0x2400, 0x25ff).ram().w(this, FUNC(atetris_state::nvram_w)).share("nvram");
+ map(0x2802, 0x2802).w("sn1", FUNC(sn76496_device::write));
+ map(0x2804, 0x2804).w("sn2", FUNC(sn76496_device::write));
+ map(0x2806, 0x2806).w("sn3", FUNC(sn76496_device::write));
+ map(0x2808, 0x2808).portr("IN0");
+ map(0x2818, 0x2818).portr("IN1");
+ map(0x3000, 0x3000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x3400, 0x3400).w(this, FUNC(atetris_state::nvram_enable_w));
+ map(0x3800, 0x3800).w(this, FUNC(atetris_state::irq_ack_w));
+ map(0x3c00, 0x3c00).w(this, FUNC(atetris_state::coincount_w));
+ map(0x4000, 0x5fff).rom();
+ map(0x6000, 0x7fff).r(this, FUNC(atetris_state::slapstic_r));
+ map(0x8000, 0xffff).rom();
+}
+
+
+void atetris_state::atetrisb3_map(address_map &map)
+{
+ map(0x0000, 0x0fff).ram();
+ map(0x1000, 0x1fff).ram().w(this, FUNC(atetris_state::videoram_w)).share("videoram");
+ map(0x2000, 0x20ff).ram().w("palette", FUNC(palette_device::write8)).share("palette");
+ map(0x2400, 0x25ff).ram().w(this, FUNC(atetris_state::nvram_w)).share("nvram");
//AM_RANGE(0x2802, 0x2802) AM_DEVWRITE("sn1", sn76489_device, write)
//AM_RANGE(0x2804, 0x2804) AM_DEVWRITE("sn2", sn76489_device, write)
//AM_RANGE(0x2806, 0x2806) AM_DEVWRITE("sn3", sn76489_device, write)
- AM_RANGE(0x2808, 0x2808) AM_READ_PORT("IN0")
- AM_RANGE(0x2818, 0x2818) AM_READ_PORT("IN1")
- AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x3400, 0x3400) AM_WRITE(nvram_enable_w)
- AM_RANGE(0x3800, 0x3800) AM_WRITE(irq_ack_w)
- AM_RANGE(0x3c00, 0x3c00) AM_WRITE(coincount_w)
- AM_RANGE(0x4000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x7fff) AM_READ(slapstic_r)
- AM_RANGE(0x8000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+ map(0x2808, 0x2808).portr("IN0");
+ map(0x2818, 0x2818).portr("IN1");
+ map(0x3000, 0x3000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x3400, 0x3400).w(this, FUNC(atetris_state::nvram_enable_w));
+ map(0x3800, 0x3800).w(this, FUNC(atetris_state::irq_ack_w));
+ map(0x3c00, 0x3c00).w(this, FUNC(atetris_state::coincount_w));
+ map(0x4000, 0x5fff).rom();
+ map(0x6000, 0x7fff).r(this, FUNC(atetris_state::slapstic_r));
+ map(0x8000, 0xffff).rom();
+}