summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/mexico86.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mexico86.cpp')
-rw-r--r--src/mame/drivers/mexico86.cpp61
1 files changed, 32 insertions, 29 deletions
diff --git a/src/mame/drivers/mexico86.cpp b/src/mame/drivers/mexico86.cpp
index cf6099ee5bb..74250a8a540 100644
--- a/src/mame/drivers/mexico86.cpp
+++ b/src/mame/drivers/mexico86.cpp
@@ -80,25 +80,27 @@ READ8_MEMBER(mexico86_state::kiki_ym2203_r)
*
*************************************/
-ADDRESS_MAP_START(mexico86_state::mexico86_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked roms */
- AM_RANGE(0xc000, 0xe7ff) AM_RAM AM_SHARE("mainram") /* shared with sound cpu */
- AM_RANGE(0xe800, 0xe8ff) AM_RAM AM_SHARE("protection_ram") /* shared with mcu */
- AM_RANGE(0xe900, 0xefff) AM_RAM
- AM_RANGE(0xf000, 0xf000) AM_WRITE(mexico86_bankswitch_w) /* program and gfx ROM banks */
- AM_RANGE(0xf008, 0xf008) AM_WRITE(mexico86_f008_w) /* cpu reset lines + other unknown stuff */
- AM_RANGE(0xf010, 0xf010) AM_READ_PORT("IN3")
- AM_RANGE(0xf018, 0xf018) AM_WRITENOP /* watchdog? */
- AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("subram") /* communication ram - to connect 4 players's subboard */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mexico86_state::mexico86_sound_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xa7ff) AM_RAM AM_SHARE("mainram") /* shared with main */
- AM_RANGE(0xa800, 0xbfff) AM_RAM
- AM_RANGE(0xc000, 0xc001) AM_READ(kiki_ym2203_r) AM_DEVWRITE("ymsnd", ym2203_device, write)
-ADDRESS_MAP_END
+void mexico86_state::mexico86_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("bank1"); /* banked roms */
+ map(0xc000, 0xe7ff).ram().share("mainram"); /* shared with sound cpu */
+ map(0xe800, 0xe8ff).ram().share("protection_ram"); /* shared with mcu */
+ map(0xe900, 0xefff).ram();
+ map(0xf000, 0xf000).w(this, FUNC(mexico86_state::mexico86_bankswitch_w)); /* program and gfx ROM banks */
+ map(0xf008, 0xf008).w(this, FUNC(mexico86_state::mexico86_f008_w)); /* cpu reset lines + other unknown stuff */
+ map(0xf010, 0xf010).portr("IN3");
+ map(0xf018, 0xf018).nopw(); /* watchdog? */
+ map(0xf800, 0xffff).ram().share("subram"); /* communication ram - to connect 4 players's subboard */
+}
+
+void mexico86_state::mexico86_sound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xa7ff).ram().share("mainram"); /* shared with main */
+ map(0xa800, 0xbfff).ram();
+ map(0xc000, 0xc001).r(this, FUNC(mexico86_state::kiki_ym2203_r)).w(m_ymsnd, FUNC(ym2203_device::write));
+}
WRITE8_MEMBER(mexico86_state::mexico86_sub_output_w)
{
@@ -108,16 +110,17 @@ WRITE8_MEMBER(mexico86_state::mexico86_sub_output_w)
/*---- --x- <unknown, always high, irq ack?>*/
}
-ADDRESS_MAP_START(mexico86_state::mexico86_sub_cpu_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM /* sub cpu ram */
- AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("subram") /* shared with main */
- AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN4")
- AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN5")
- AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN6")
- AM_RANGE(0xc003, 0xc003) AM_READ_PORT("IN7")
- AM_RANGE(0xc004, 0xc004) AM_WRITE(mexico86_sub_output_w)
-ADDRESS_MAP_END
+void mexico86_state::mexico86_sub_cpu_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram(); /* sub cpu ram */
+ map(0x8000, 0x87ff).ram().share("subram"); /* shared with main */
+ map(0xc000, 0xc000).portr("IN4");
+ map(0xc001, 0xc001).portr("IN5");
+ map(0xc002, 0xc002).portr("IN6");
+ map(0xc003, 0xc003).portr("IN7");
+ map(0xc004, 0xc004).w(this, FUNC(mexico86_state::mexico86_sub_output_w));
+}
/*************************************
*