summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pbaction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pbaction.cpp')
-rw-r--r--src/mame/drivers/pbaction.cpp78
1 files changed, 41 insertions, 37 deletions
diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp
index cba2e934d6f..6f474f63515 100644
--- a/src/mame/drivers/pbaction.cpp
+++ b/src/mame/drivers/pbaction.cpp
@@ -86,43 +86,47 @@ WRITE8_MEMBER(pbaction_state::nmi_mask_w)
m_nmi_mask = data & 1;
}
-ADDRESS_MAP_START(pbaction_state::pbaction_map)
- AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("work_ram")
- AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(pbaction_videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(pbaction_colorram2_w) AM_SHARE("colorram2")
- AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(pbaction_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(pbaction_colorram_w) AM_SHARE("colorram")
- AM_RANGE(0xe000, 0xe07f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xe400, 0xe5ff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0xe600, 0xe600) AM_READ_PORT("P1") AM_WRITE(nmi_mask_w)
- AM_RANGE(0xe601, 0xe601) AM_READ_PORT("P2")
- AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xe604, 0xe604) AM_READ_PORT("DSW1") AM_WRITE(pbaction_flipscreen_w)
- AM_RANGE(0xe605, 0xe605) AM_READ_PORT("DSW2")
- AM_RANGE(0xe606, 0xe606) AM_READNOP /* ??? */ AM_WRITE(pbaction_scroll_w)
- AM_RANGE(0xe800, 0xe800) AM_WRITE(pbaction_sh_command_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(pbaction_state::decrypted_opcodes_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM AM_SHARE("decrypted_opcodes")
- AM_RANGE(0x8000, 0xbfff) AM_ROM AM_REGION("maincpu", 0x8000)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(pbaction_state::pbaction_sound_map)
- AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x8000, 0x8000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xffff, 0xffff) AM_WRITENOP /* watchdog? */
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(pbaction_state::pbaction_sound_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x10, 0x11) AM_DEVWRITE("ay1", ay8910_device, address_data_w)
- AM_RANGE(0x20, 0x21) AM_DEVWRITE("ay2", ay8910_device, address_data_w)
- AM_RANGE(0x30, 0x31) AM_DEVWRITE("ay3", ay8910_device, address_data_w)
-ADDRESS_MAP_END
+void pbaction_state::pbaction_map(address_map &map)
+{
+ map(0x0000, 0xbfff).rom();
+ map(0xc000, 0xcfff).ram().share("work_ram");
+ map(0xd000, 0xd3ff).ram().w(this, FUNC(pbaction_state::pbaction_videoram2_w)).share("videoram2");
+ map(0xd400, 0xd7ff).ram().w(this, FUNC(pbaction_state::pbaction_colorram2_w)).share("colorram2");
+ map(0xd800, 0xdbff).ram().w(this, FUNC(pbaction_state::pbaction_videoram_w)).share("videoram");
+ map(0xdc00, 0xdfff).ram().w(this, FUNC(pbaction_state::pbaction_colorram_w)).share("colorram");
+ map(0xe000, 0xe07f).ram().share("spriteram");
+ map(0xe400, 0xe5ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0xe600, 0xe600).portr("P1").w(this, FUNC(pbaction_state::nmi_mask_w));
+ map(0xe601, 0xe601).portr("P2");
+ map(0xe602, 0xe602).portr("SYSTEM");
+ map(0xe604, 0xe604).portr("DSW1").w(this, FUNC(pbaction_state::pbaction_flipscreen_w));
+ map(0xe605, 0xe605).portr("DSW2");
+ map(0xe606, 0xe606).nopr() /* ??? */ .w(this, FUNC(pbaction_state::pbaction_scroll_w));
+ map(0xe800, 0xe800).w(this, FUNC(pbaction_state::pbaction_sh_command_w));
+}
+
+void pbaction_state::decrypted_opcodes_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom().share("decrypted_opcodes");
+ map(0x8000, 0xbfff).rom().region("maincpu", 0x8000);
+}
+
+void pbaction_state::pbaction_sound_map(address_map &map)
+{
+ map(0x0000, 0x1fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x8000, 0x8000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0xffff, 0xffff).nopw(); /* watchdog? */
+}
+
+
+void pbaction_state::pbaction_sound_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x10, 0x11).w("ay1", FUNC(ay8910_device::address_data_w));
+ map(0x20, 0x21).w("ay2", FUNC(ay8910_device::address_data_w));
+ map(0x30, 0x31).w("ay3", FUNC(ay8910_device::address_data_w));
+}
static INPUT_PORTS_START( pbaction )