summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/mappy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mappy.cpp')
-rw-r--r--src/mame/drivers/mappy.cpp123
1 files changed, 65 insertions, 58 deletions
diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp
index ca752acf0ac..690b6d3c679 100644
--- a/src/mame/drivers/mappy.cpp
+++ b/src/mame/drivers/mappy.cpp
@@ -645,67 +645,74 @@ INTERRUPT_GEN_MEMBER(mappy_state::sub2_vblank_irq)
m_subcpu2->set_input_line(0, ASSERT_LINE);
}
-ADDRESS_MAP_START(mappy_state::superpac_cpu1_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_SHARE("videoram") /* video RAM */
- AM_RANGE(0x0800, 0x1fff) AM_RAM AM_SHARE("spriteram") /* work RAM with embedded sprite RAM */
- AM_RANGE(0x2000, 0x2000) AM_READWRITE(superpac_flipscreen_r, superpac_flipscreen_w)
- AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namco_15xx_device, sharedram_r, sharedram_w) /* shared RAM with the sound CPU */
- AM_RANGE(0x4800, 0x480f) AM_DEVREADWRITE("namcoio_1", namcoio_device, read, write) /* custom I/O chips interface */
- AM_RANGE(0x4810, 0x481f) AM_DEVREADWRITE("namcoio_2", namcoio_device, read, write) /* custom I/O chips interface */
- AM_RANGE(0x5000, 0x500f) AM_DEVWRITE("mainlatch", ls259_device, write_a0) /* various control bits */
- AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0xa000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mappy_state::phozon_cpu1_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_SHARE("videoram") /* video RAM */
- AM_RANGE(0x0800, 0x1fff) AM_RAM AM_SHARE("spriteram") /* shared RAM with CPU #2/sprite RAM*/
- AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namco_15xx_device, sharedram_r, sharedram_w) /* shared RAM with the sound CPU */
- AM_RANGE(0x4800, 0x480f) AM_DEVREADWRITE("namcoio_1", namcoio_device, read, write) /* custom I/O chips interface */
- AM_RANGE(0x4810, 0x481f) AM_DEVREADWRITE("namcoio_2", namcoio_device, read, write) /* custom I/O chips interface */
- AM_RANGE(0x5000, 0x500f) AM_DEVWRITE("mainlatch", ls259_device, write_a0) /* various control bits */
- AM_RANGE(0x7000, 0x7000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mappy_state::mappy_cpu1_map)
- AM_RANGE(0x0000, 0x0fff) AM_RAM_WRITE(mappy_videoram_w) AM_SHARE("videoram") /* video RAM */
- AM_RANGE(0x1000, 0x27ff) AM_RAM AM_SHARE("spriteram") /* work RAM with embedded sprite RAM */
- AM_RANGE(0x3800, 0x3fff) AM_WRITE(mappy_scroll_w) /* scroll */
- AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namco_15xx_device, sharedram_r, sharedram_w) /* shared RAM with the sound CPU */
- AM_RANGE(0x4800, 0x480f) AM_DEVREADWRITE("namcoio_1", namcoio_device, read, write) /* custom I/O chips interface */
- AM_RANGE(0x4810, 0x481f) AM_DEVREADWRITE("namcoio_2", namcoio_device, read, write) /* custom I/O chips interface */
- AM_RANGE(0x5000, 0x500f) AM_DEVWRITE("mainlatch", ls259_device, write_a0) /* various control bits */
- AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM code (only a000-ffff in Mappy) */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mappy_state::superpac_cpu2_map)
- AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", namco_15xx_device, sharedram_r, sharedram_w) /* shared RAM with the main CPU (also sound registers) */
- AM_RANGE(0x2000, 0x200f) AM_DEVWRITE("mainlatch", ls259_device, write_a0) /* various control bits */
- AM_RANGE(0xe000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mappy_state::phozon_cpu2_map)
- AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", namco_15xx_device, sharedram_r, sharedram_w) /* shared RAM with the main CPU + sound registers */
- AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mappy_state::mappy_cpu2_map)
- AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", namco_15xx_device, sharedram_r, sharedram_w) /* shared RAM with the main CPU (also sound registers) */
- AM_RANGE(0x2000, 0x200f) AM_DEVWRITE("mainlatch", ls259_device, write_a0) /* various control bits */
- AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM code */
-ADDRESS_MAP_END
+void mappy_state::superpac_cpu1_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().w(this, FUNC(mappy_state::superpac_videoram_w)).share("videoram"); /* video RAM */
+ map(0x0800, 0x1fff).ram().share("spriteram"); /* work RAM with embedded sprite RAM */
+ map(0x2000, 0x2000).rw(this, FUNC(mappy_state::superpac_flipscreen_r), FUNC(mappy_state::superpac_flipscreen_w));
+ map(0x4000, 0x43ff).rw(m_namco_15xx, FUNC(namco_15xx_device::sharedram_r), FUNC(namco_15xx_device::sharedram_w)); /* shared RAM with the sound CPU */
+ map(0x4800, 0x480f).rw("namcoio_1", FUNC(namcoio_device::read), FUNC(namcoio_device::write)); /* custom I/O chips interface */
+ map(0x4810, 0x481f).rw("namcoio_2", FUNC(namcoio_device::read), FUNC(namcoio_device::write)); /* custom I/O chips interface */
+ map(0x5000, 0x500f).w("mainlatch", FUNC(ls259_device::write_a0)); /* various control bits */
+ map(0x8000, 0x8000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0xa000, 0xffff).rom();
+}
+
+void mappy_state::phozon_cpu1_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().w(this, FUNC(mappy_state::superpac_videoram_w)).share("videoram"); /* video RAM */
+ map(0x0800, 0x1fff).ram().share("spriteram"); /* shared RAM with CPU #2/sprite RAM*/
+ map(0x4000, 0x43ff).rw(m_namco_15xx, FUNC(namco_15xx_device::sharedram_r), FUNC(namco_15xx_device::sharedram_w)); /* shared RAM with the sound CPU */
+ map(0x4800, 0x480f).rw("namcoio_1", FUNC(namcoio_device::read), FUNC(namcoio_device::write)); /* custom I/O chips interface */
+ map(0x4810, 0x481f).rw("namcoio_2", FUNC(namcoio_device::read), FUNC(namcoio_device::write)); /* custom I/O chips interface */
+ map(0x5000, 0x500f).w("mainlatch", FUNC(ls259_device::write_a0)); /* various control bits */
+ map(0x7000, 0x7000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x8000, 0xffff).rom(); /* ROM */
+}
+
+void mappy_state::mappy_cpu1_map(address_map &map)
+{
+ map(0x0000, 0x0fff).ram().w(this, FUNC(mappy_state::mappy_videoram_w)).share("videoram"); /* video RAM */
+ map(0x1000, 0x27ff).ram().share("spriteram"); /* work RAM with embedded sprite RAM */
+ map(0x3800, 0x3fff).w(this, FUNC(mappy_state::mappy_scroll_w)); /* scroll */
+ map(0x4000, 0x43ff).rw(m_namco_15xx, FUNC(namco_15xx_device::sharedram_r), FUNC(namco_15xx_device::sharedram_w)); /* shared RAM with the sound CPU */
+ map(0x4800, 0x480f).rw("namcoio_1", FUNC(namcoio_device::read), FUNC(namcoio_device::write)); /* custom I/O chips interface */
+ map(0x4810, 0x481f).rw("namcoio_2", FUNC(namcoio_device::read), FUNC(namcoio_device::write)); /* custom I/O chips interface */
+ map(0x5000, 0x500f).w("mainlatch", FUNC(ls259_device::write_a0)); /* various control bits */
+ map(0x8000, 0x8000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x8000, 0xffff).rom(); /* ROM code (only a000-ffff in Mappy) */
+}
+
+void mappy_state::superpac_cpu2_map(address_map &map)
+{
+ map(0x0000, 0x03ff).rw(m_namco_15xx, FUNC(namco_15xx_device::sharedram_r), FUNC(namco_15xx_device::sharedram_w)); /* shared RAM with the main CPU (also sound registers) */
+ map(0x2000, 0x200f).w("mainlatch", FUNC(ls259_device::write_a0)); /* various control bits */
+ map(0xe000, 0xffff).rom();
+}
+
+void mappy_state::phozon_cpu2_map(address_map &map)
+{
+ map(0x0000, 0x03ff).rw(m_namco_15xx, FUNC(namco_15xx_device::sharedram_r), FUNC(namco_15xx_device::sharedram_w)); /* shared RAM with the main CPU + sound registers */
+ map(0xe000, 0xffff).rom(); /* ROM */
+}
+
+void mappy_state::mappy_cpu2_map(address_map &map)
+{
+ map(0x0000, 0x03ff).rw(m_namco_15xx, FUNC(namco_15xx_device::sharedram_r), FUNC(namco_15xx_device::sharedram_w)); /* shared RAM with the main CPU (also sound registers) */
+ map(0x2000, 0x200f).w("mainlatch", FUNC(ls259_device::write_a0)); /* various control bits */
+ map(0xe000, 0xffff).rom(); /* ROM code */
+}
/* extra CPU only present in Phozon */
-ADDRESS_MAP_START(mappy_state::phozon_cpu3_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_SHARE("videoram") /* video RAM */
- AM_RANGE(0x0800, 0x1fff) AM_RAM AM_SHARE("spriteram") /* shared RAM with CPU #2/sprite RAM*/
- AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namco_15xx_device, sharedram_r, sharedram_w) /* shared RAM with CPU #2 */
- AM_RANGE(0xa000, 0xa7ff) AM_RAM /* RAM */
- AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM */
-ADDRESS_MAP_END
+void mappy_state::phozon_cpu3_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().w(this, FUNC(mappy_state::superpac_videoram_w)).share("videoram"); /* video RAM */
+ map(0x0800, 0x1fff).ram().share("spriteram"); /* shared RAM with CPU #2/sprite RAM*/
+ map(0x4000, 0x43ff).rw(m_namco_15xx, FUNC(namco_15xx_device::sharedram_r), FUNC(namco_15xx_device::sharedram_w)); /* shared RAM with CPU #2 */
+ map(0xa000, 0xa7ff).ram(); /* RAM */
+ map(0xe000, 0xffff).rom(); /* ROM */
+}