diff options
Diffstat (limited to 'src/mame/drivers/rastan.cpp')
-rw-r--r-- | src/mame/drivers/rastan.cpp | 71 |
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)); +} |