summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/lkage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/lkage.cpp')
-rw-r--r--src/mame/drivers/lkage.cpp99
1 files changed, 52 insertions, 47 deletions
diff --git a/src/mame/drivers/lkage.cpp b/src/mame/drivers/lkage.cpp
index ed93dfd02f8..98e574e3a54 100644
--- a/src/mame/drivers/lkage.cpp
+++ b/src/mame/drivers/lkage.cpp
@@ -116,39 +116,42 @@ READ8_MEMBER(lkage_state::sound_status_r)
return 0xff;
}
-ADDRESS_MAP_START(lkage_state::lkage_map)
- AM_RANGE(0x0000, 0xdfff) AM_ROM
- AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work ram */
- AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0xf000, 0xf003) AM_RAM AM_SHARE("vreg") /* video registers */
- AM_RANGE(0xf060, 0xf060) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0xf061, 0xf061) AM_WRITENOP AM_READ(sound_status_r)
- AM_RANGE(0xf063, 0xf063) AM_WRITENOP /* pulsed; nmi on sound cpu? */
- AM_RANGE(0xf080, 0xf080) AM_READ_PORT("DSW1")
- AM_RANGE(0xf081, 0xf081) AM_READ_PORT("DSW2")
- AM_RANGE(0xf082, 0xf082) AM_READ_PORT("DSW3")
- AM_RANGE(0xf083, 0xf083) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xf084, 0xf084) AM_READ_PORT("P1")
- AM_RANGE(0xf086, 0xf086) AM_READ_PORT("P2")
- AM_RANGE(0xf0a0, 0xf0a3) AM_RAM /* unknown */
- AM_RANGE(0xf0c0, 0xf0c5) AM_RAM AM_SHARE("scroll")
- AM_RANGE(0xf0e1, 0xf0e1) AM_WRITENOP /* pulsed */
- AM_RANGE(0xf100, 0xf15f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xf160, 0xf1ff) AM_RAM /* unknown - no valid sprite data */
- AM_RANGE(0xf400, 0xffff) AM_RAM_WRITE(lkage_videoram_w) AM_SHARE("videoram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(lkage_state::lkage_map_mcu)
- AM_IMPORT_FROM(lkage_map)
- AM_RANGE(0xf062, 0xf062) AM_DEVREADWRITE("bmcu", taito68705_mcu_device, data_r, data_w)
- AM_RANGE(0xf087, 0xf087) AM_READ(mcu_status_r)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(lkage_state::lkage_map_boot)
- AM_IMPORT_FROM(lkage_map)
- AM_RANGE(0xf062, 0xf062) AM_READWRITE(fake_mcu_r, fake_mcu_w)
- AM_RANGE(0xf087, 0xf087) AM_READ(fake_status_r)
-ADDRESS_MAP_END
+void lkage_state::lkage_map(address_map &map)
+{
+ map(0x0000, 0xdfff).rom();
+ map(0xe000, 0xe7ff).ram(); /* work ram */
+ map(0xe800, 0xefff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0xf000, 0xf003).ram().share("vreg"); /* video registers */
+ map(0xf060, 0xf060).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0xf061, 0xf061).nopw().r(this, FUNC(lkage_state::sound_status_r));
+ map(0xf063, 0xf063).nopw(); /* pulsed; nmi on sound cpu? */
+ map(0xf080, 0xf080).portr("DSW1");
+ map(0xf081, 0xf081).portr("DSW2");
+ map(0xf082, 0xf082).portr("DSW3");
+ map(0xf083, 0xf083).portr("SYSTEM");
+ map(0xf084, 0xf084).portr("P1");
+ map(0xf086, 0xf086).portr("P2");
+ map(0xf0a0, 0xf0a3).ram(); /* unknown */
+ map(0xf0c0, 0xf0c5).ram().share("scroll");
+ map(0xf0e1, 0xf0e1).nopw(); /* pulsed */
+ map(0xf100, 0xf15f).ram().share("spriteram");
+ map(0xf160, 0xf1ff).ram(); /* unknown - no valid sprite data */
+ map(0xf400, 0xffff).ram().w(this, FUNC(lkage_state::lkage_videoram_w)).share("videoram");
+}
+
+void lkage_state::lkage_map_mcu(address_map &map)
+{
+ lkage_map(map);
+ map(0xf062, 0xf062).rw(m_bmcu, FUNC(taito68705_mcu_device::data_r), FUNC(taito68705_mcu_device::data_w));
+ map(0xf087, 0xf087).r(this, FUNC(lkage_state::mcu_status_r));
+}
+
+void lkage_state::lkage_map_boot(address_map &map)
+{
+ lkage_map(map);
+ map(0xf062, 0xf062).rw(this, FUNC(lkage_state::fake_mcu_r), FUNC(lkage_state::fake_mcu_w));
+ map(0xf087, 0xf087).r(this, FUNC(lkage_state::fake_status_r));
+}
READ8_MEMBER(lkage_state::port_fetch_r)
@@ -156,26 +159,28 @@ READ8_MEMBER(lkage_state::port_fetch_r)
return memregion("user1")->base()[offset];
}
-ADDRESS_MAP_START(lkage_state::lkage_io_map)
- AM_RANGE(0x4000, 0x7fff) AM_READ(port_fetch_r)
-ADDRESS_MAP_END
+void lkage_state::lkage_io_map(address_map &map)
+{
+ map(0x4000, 0x7fff).r(this, FUNC(lkage_state::port_fetch_r));
+}
/***************************************************************************/
/* sound section is almost identical to Bubble Bobble, YM2203 instead of YM3526 */
-ADDRESS_MAP_START(lkage_state::lkage_sound_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
- AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym2", ym2203_device, read, write)
- AM_RANGE(0xb000, 0xb000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_WRITENOP /* ??? */
- AM_RANGE(0xb001, 0xb001) AM_READNOP /* ??? */ AM_WRITE(lkage_sh_nmi_enable_w)
- AM_RANGE(0xb002, 0xb002) AM_WRITE(lkage_sh_nmi_disable_w)
- AM_RANGE(0xb003, 0xb003) AM_WRITENOP
- AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostic ROM? */
-ADDRESS_MAP_END
+void lkage_state::lkage_sound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x87ff).ram();
+ map(0x9000, 0x9001).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
+ map(0xa000, 0xa001).rw("ym2", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
+ map(0xb000, 0xb000).r(m_soundlatch, FUNC(generic_latch_8_device::read)).nopw(); /* ??? */
+ map(0xb001, 0xb001).nopr() /* ??? */ .w(this, FUNC(lkage_state::lkage_sh_nmi_enable_w));
+ map(0xb002, 0xb002).w(this, FUNC(lkage_state::lkage_sh_nmi_disable_w));
+ map(0xb003, 0xb003).nopw();
+ map(0xe000, 0xefff).rom(); /* space for diagnostic ROM? */
+}
/***************************************************************************/