summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/tp84.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tp84.cpp')
-rw-r--r--src/mame/drivers/tp84.cpp124
1 files changed, 64 insertions, 60 deletions
diff --git a/src/mame/drivers/tp84.cpp b/src/mame/drivers/tp84.cpp
index 6ec33348cf2..3df862b27dd 100644
--- a/src/mame/drivers/tp84.cpp
+++ b/src/mame/drivers/tp84.cpp
@@ -170,45 +170,47 @@ WRITE8_MEMBER(tp84_state::tp84_sh_irqtrigger_w)
-ADDRESS_MAP_START(tp84_state::tp84_cpu1_map)
- AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x2800, 0x2800) AM_READ_PORT("SYSTEM") AM_WRITEONLY AM_SHARE("palette_bank")
- AM_RANGE(0x2820, 0x2820) AM_READ_PORT("P1")
- AM_RANGE(0x2840, 0x2840) AM_READ_PORT("P2")
- AM_RANGE(0x2860, 0x2860) AM_READ_PORT("DSW1")
- AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW2")
- AM_RANGE(0x3000, 0x3007) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
- AM_RANGE(0x3800, 0x3800) AM_WRITE(tp84_sh_irqtrigger_w)
- AM_RANGE(0x3a00, 0x3a00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x3c00, 0x3c00) AM_WRITEONLY AM_SHARE("scroll_x")
- AM_RANGE(0x3e00, 0x3e00) AM_WRITEONLY AM_SHARE("scroll_y")
- AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("bg_videoram")
- AM_RANGE(0x4400, 0x47ff) AM_RAM AM_SHARE("fg_videoram")
- AM_RANGE(0x4800, 0x4bff) AM_RAM AM_SHARE("bg_colorram")
- AM_RANGE(0x4c00, 0x4fff) AM_RAM AM_SHARE("fg_colorram")
- AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x8000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(tp84_state::tp84b_cpu1_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("bg_videoram")
- AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("fg_videoram")
- AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("bg_colorram")
- AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("fg_colorram")
- AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1800, 0x1800) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("SYSTEM") AM_WRITEONLY AM_SHARE("palette_bank")
- AM_RANGE(0x1a20, 0x1a20) AM_READ_PORT("P1")
- AM_RANGE(0x1a40, 0x1a40) AM_READ_PORT("P2")
- AM_RANGE(0x1a60, 0x1a60) AM_READ_PORT("DSW1")
- AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2")
- AM_RANGE(0x1c00, 0x1c07) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
- AM_RANGE(0x1e00, 0x1e00) AM_WRITE(tp84_sh_irqtrigger_w)
- AM_RANGE(0x1e80, 0x1e80) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x1f00, 0x1f00) AM_WRITEONLY AM_SHARE("scroll_x")
- AM_RANGE(0x1f80, 0x1f80) AM_WRITEONLY AM_SHARE("scroll_y")
- AM_RANGE(0x8000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+void tp84_state::tp84_cpu1_map(address_map &map)
+{
+ map(0x2000, 0x2000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x2800, 0x2800).portr("SYSTEM").writeonly().share("palette_bank");
+ map(0x2820, 0x2820).portr("P1");
+ map(0x2840, 0x2840).portr("P2");
+ map(0x2860, 0x2860).portr("DSW1");
+ map(0x3000, 0x3000).portr("DSW2");
+ map(0x3000, 0x3007).w("mainlatch", FUNC(ls259_device::write_d0));
+ map(0x3800, 0x3800).w(this, FUNC(tp84_state::tp84_sh_irqtrigger_w));
+ map(0x3a00, 0x3a00).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x3c00, 0x3c00).writeonly().share("scroll_x");
+ map(0x3e00, 0x3e00).writeonly().share("scroll_y");
+ map(0x4000, 0x43ff).ram().share("bg_videoram");
+ map(0x4400, 0x47ff).ram().share("fg_videoram");
+ map(0x4800, 0x4bff).ram().share("bg_colorram");
+ map(0x4c00, 0x4fff).ram().share("fg_colorram");
+ map(0x5000, 0x57ff).ram().share("share1");
+ map(0x8000, 0xffff).rom();
+}
+
+void tp84_state::tp84b_cpu1_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram().share("bg_videoram");
+ map(0x0400, 0x07ff).ram().share("fg_videoram");
+ map(0x0800, 0x0bff).ram().share("bg_colorram");
+ map(0x0c00, 0x0fff).ram().share("fg_colorram");
+ map(0x1000, 0x17ff).ram().share("share1");
+ map(0x1800, 0x1800).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x1a00, 0x1a00).portr("SYSTEM").writeonly().share("palette_bank");
+ map(0x1a20, 0x1a20).portr("P1");
+ map(0x1a40, 0x1a40).portr("P2");
+ map(0x1a60, 0x1a60).portr("DSW1");
+ map(0x1c00, 0x1c00).portr("DSW2");
+ map(0x1c00, 0x1c07).w("mainlatch", FUNC(ls259_device::write_d0));
+ map(0x1e00, 0x1e00).w(this, FUNC(tp84_state::tp84_sh_irqtrigger_w));
+ map(0x1e80, 0x1e80).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x1f00, 0x1f00).writeonly().share("scroll_x");
+ map(0x1f80, 0x1f80).writeonly().share("scroll_y");
+ map(0x8000, 0xffff).rom();
+}
WRITE8_MEMBER(tp84_state::sub_irq_mask_w)
@@ -217,28 +219,30 @@ WRITE8_MEMBER(tp84_state::sub_irq_mask_w)
}
-ADDRESS_MAP_START(tp84_state::cpu2_map)
+void tp84_state::cpu2_map(address_map &map)
+{
// AM_RANGE(0x0000, 0x0000) AM_RAM /* Watch dog ?*/
- AM_RANGE(0x2000, 0x2000) AM_READ(tp84_scanline_r) /* beam position */
- AM_RANGE(0x4000, 0x4000) AM_WRITE(sub_irq_mask_w)
- AM_RANGE(0x6000, 0x679f) AM_RAM
- AM_RANGE(0x67a0, 0x67ff) AM_RAM_WRITE(tp84_spriteram_w) AM_SHARE("spriteram")
- AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xe000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tp84_state::audio_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_RAM
- AM_RANGE(0x6000, 0x6000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0x8000, 0x8000) AM_READ(tp84_sh_timer_r)
- AM_RANGE(0xa000, 0xa1ff) AM_WRITE(tp84_filter_w)
- AM_RANGE(0xc000, 0xc000) AM_WRITENOP
- AM_RANGE(0xc001, 0xc001) AM_DEVWRITE("y2404_1", y2404_device, write)
- AM_RANGE(0xc003, 0xc003) AM_DEVWRITE("y2404_2", y2404_device, write)
- AM_RANGE(0xc004, 0xc004) AM_DEVWRITE("y2404_3", y2404_device, write)
-ADDRESS_MAP_END
+ map(0x2000, 0x2000).r(this, FUNC(tp84_state::tp84_scanline_r)); /* beam position */
+ map(0x4000, 0x4000).w(this, FUNC(tp84_state::sub_irq_mask_w));
+ map(0x6000, 0x679f).ram();
+ map(0x67a0, 0x67ff).ram().w(this, FUNC(tp84_state::tp84_spriteram_w)).share("spriteram");
+ map(0x8000, 0x87ff).ram().share("share1");
+ map(0xe000, 0xffff).rom();
+}
+
+
+void tp84_state::audio_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x43ff).ram();
+ map(0x6000, 0x6000).r("soundlatch", FUNC(generic_latch_8_device::read));
+ map(0x8000, 0x8000).r(this, FUNC(tp84_state::tp84_sh_timer_r));
+ map(0xa000, 0xa1ff).w(this, FUNC(tp84_state::tp84_filter_w));
+ map(0xc000, 0xc000).nopw();
+ map(0xc001, 0xc001).w("y2404_1", FUNC(y2404_device::write));
+ map(0xc003, 0xc003).w("y2404_2", FUNC(y2404_device::write));
+ map(0xc004, 0xc004).w("y2404_3", FUNC(y2404_device::write));
+}