summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/rastan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/rastan.cpp')
-rw-r--r--src/mame/drivers/rastan.cpp71
1 files changed, 37 insertions, 34 deletions
diff --git a/src/mame/drivers/rastan.cpp b/src/mame/drivers/rastan.cpp
index 1eb9c45d895..a7d6a45aa1f 100644
--- a/src/mame/drivers/rastan.cpp
+++ b/src/mame/drivers/rastan.cpp
@@ -208,40 +208,43 @@ WRITE8_MEMBER(rastan_state::rastan_msm5205_stop_w)
-ADDRESS_MAP_START(rastan_state::rastan_map)
- AM_RANGE(0x000000, 0x05ffff) AM_ROM
- AM_RANGE(0x10c000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x350008, 0x350009) AM_WRITENOP /* 0 only (often) ? */
- AM_RANGE(0x380000, 0x380001) AM_WRITE(rastan_spritectrl_w) /* sprite palette bank, coin counters & lockout */
- AM_RANGE(0x390000, 0x390001) AM_READ_PORT("P1")
- AM_RANGE(0x390002, 0x390003) AM_READ_PORT("P2")
- AM_RANGE(0x390004, 0x390005) AM_READ_PORT("SPECIAL")
- AM_RANGE(0x390006, 0x390007) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x390008, 0x390009) AM_READ_PORT("DSWA")
- AM_RANGE(0x39000a, 0x39000b) AM_READ_PORT("DSWB")
- AM_RANGE(0x3c0000, 0x3c0001) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_DEVWRITE8("ciu", pc060ha_device, master_port_w, 0x00ff)
- AM_RANGE(0x3e0002, 0x3e0003) AM_DEVREADWRITE8("ciu", pc060ha_device, master_comm_r, master_comm_w, 0x00ff)
- AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE("pc080sn", pc080sn_device, word_r, word_w)
- AM_RANGE(0xc20000, 0xc20003) AM_DEVWRITE("pc080sn", pc080sn_device, yscroll_word_w)
- AM_RANGE(0xc40000, 0xc40003) AM_DEVWRITE("pc080sn", pc080sn_device, xscroll_word_w)
- AM_RANGE(0xc50000, 0xc50003) AM_DEVWRITE("pc080sn", pc080sn_device, ctrl_word_w)
- AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w) /* sprite ram */
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(rastan_state::rastan_s_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
- AM_RANGE(0x8000, 0x8fff) AM_RAM
- AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("ciu", pc060ha_device, slave_port_w)
- AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE("ciu", pc060ha_device, slave_comm_r, slave_comm_w)
- AM_RANGE(0xb000, 0xb000) AM_WRITE(rastan_msm5205_address_w)
- AM_RANGE(0xc000, 0xc000) AM_WRITE(rastan_msm5205_start_w)
- AM_RANGE(0xd000, 0xd000) AM_WRITE(rastan_msm5205_stop_w)
-ADDRESS_MAP_END
+void rastan_state::rastan_map(address_map &map)
+{
+ map(0x000000, 0x05ffff).rom();
+ map(0x10c000, 0x10ffff).ram();
+ map(0x200000, 0x200fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
+ map(0x350008, 0x350009).nopw(); /* 0 only (often) ? */
+ map(0x380000, 0x380001).w(this, FUNC(rastan_state::rastan_spritectrl_w)); /* sprite palette bank, coin counters & lockout */
+ map(0x390000, 0x390001).portr("P1");
+ map(0x390002, 0x390003).portr("P2");
+ map(0x390004, 0x390005).portr("SPECIAL");
+ map(0x390006, 0x390007).portr("SYSTEM");
+ map(0x390008, 0x390009).portr("DSWA");
+ map(0x39000a, 0x39000b).portr("DSWB");
+ map(0x3c0000, 0x3c0001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x3e0000, 0x3e0001).nopr();
+ map(0x3e0001, 0x3e0001).w("ciu", FUNC(pc060ha_device::master_port_w));
+ map(0x3e0003, 0x3e0003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w));
+ map(0xc00000, 0xc0ffff).rw(m_pc080sn, FUNC(pc080sn_device::word_r), FUNC(pc080sn_device::word_w));
+ map(0xc20000, 0xc20003).w(m_pc080sn, FUNC(pc080sn_device::yscroll_word_w));
+ map(0xc40000, 0xc40003).w(m_pc080sn, FUNC(pc080sn_device::xscroll_word_w));
+ map(0xc50000, 0xc50003).w(m_pc080sn, FUNC(pc080sn_device::ctrl_word_w));
+ map(0xd00000, 0xd03fff).rw(m_pc090oj, FUNC(pc090oj_device::word_r), FUNC(pc090oj_device::word_w)); /* sprite ram */
+}
+
+
+void rastan_state::rastan_s_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x7fff).bankr("bank1");
+ map(0x8000, 0x8fff).ram();
+ map(0x9000, 0x9001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xa000, 0xa000).w("ciu", FUNC(pc060ha_device::slave_port_w));
+ map(0xa001, 0xa001).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w));
+ map(0xb000, 0xb000).w(this, FUNC(rastan_state::rastan_msm5205_address_w));
+ map(0xc000, 0xc000).w(this, FUNC(rastan_state::rastan_msm5205_start_w));
+ map(0xd000, 0xd000).w(this, FUNC(rastan_state::rastan_msm5205_stop_w));
+}