diff options
Diffstat (limited to 'src/mame/drivers/flstory.cpp')
-rw-r--r-- | src/mame/drivers/flstory.cpp | 139 |
1 files changed, 73 insertions, 66 deletions
diff --git a/src/mame/drivers/flstory.cpp b/src/mame/drivers/flstory.cpp index 5c0cee327b5..f2dd330ba6e 100644 --- a/src/mame/drivers/flstory.cpp +++ b/src/mame/drivers/flstory.cpp @@ -32,61 +32,65 @@ WRITE8_MEMBER(flstory_state::snd_reset_w) m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 1 ) ? ASSERT_LINE : CLEAR_LINE); } -ADDRESS_MAP_START(flstory_state::base_map) - AM_RANGE(0x0000, 0xbfff) AM_ROM +void flstory_state::base_map(address_map &map) +{ + map(0x0000, 0xbfff).rom(); // rumba lumber reads area 0xc800-0xcfff // onna34ro checks the whole range during POST but having a mirror or not doesn't make any difference for the check to pass - AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x800) AM_RAM_WRITE(flstory_videoram_w) AM_SHARE("videoram") + map(0xc000, 0xc7ff).mirror(0x800).ram().w(this, FUNC(flstory_state::flstory_videoram_w)).share("videoram"); - AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog */ - AM_RANGE(0xd002, 0xd002) AM_NOP /* unknown read & coin lock out? */ + map(0xd001, 0xd001).nopw(); /* watchdog */ + map(0xd002, 0xd002).noprw(); /* unknown read & coin lock out? */ - AM_RANGE(0xd400, 0xd400) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) - AM_RANGE(0xd400, 0xd400) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xd403, 0xd403) AM_READNOP AM_WRITE(snd_reset_w) // unknown read (set/clr side effect?) + map(0xd400, 0xd400).r(m_soundlatch2, FUNC(generic_latch_8_device::read)); + map(0xd400, 0xd400).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xd403, 0xd403).nopr().w(this, FUNC(flstory_state::snd_reset_w)); // unknown read (set/clr side effect?) - AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r) - AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW0") - AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1") - AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSW2") - AM_RANGE(0xd803, 0xd803) AM_READ_PORT("SYSTEM") - AM_RANGE(0xd804, 0xd804) AM_READ_PORT("P1") - AM_RANGE(0xd806, 0xd806) AM_READ_PORT("P2") + map(0xd401, 0xd401).r(this, FUNC(flstory_state::snd_flag_r)); + map(0xd800, 0xd800).portr("DSW0"); + map(0xd801, 0xd801).portr("DSW1"); + map(0xd802, 0xd802).portr("DSW2"); + map(0xd803, 0xd803).portr("SYSTEM"); + map(0xd804, 0xd804).portr("P1"); + map(0xd806, 0xd806).portr("P2"); - AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(flstory_scrlram_w) AM_SHARE("scrlram") + map(0xdc00, 0xdc9f).ram().share("spriteram"); + map(0xdca0, 0xdcbf).ram().w(this, FUNC(flstory_state::flstory_scrlram_w)).share("scrlram"); - AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(flstory_palette_r, flstory_palette_w) + map(0xdd00, 0xdeff).rw(this, FUNC(flstory_state::flstory_palette_r), FUNC(flstory_state::flstory_palette_w)); // victorious nine read 0xf80a during attract, unknown purpose - AM_RANGE(0xe000, 0xe7ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("workram") /* work RAM */ -ADDRESS_MAP_END + map(0xe000, 0xe7ff).mirror(0x1800).ram().share("workram"); /* work RAM */ +} -ADDRESS_MAP_START(flstory_state::flstory_map) - AM_IMPORT_FROM(base_map) - AM_RANGE(0xd000, 0xd000) AM_DEVREADWRITE("bmcu", taito68705_mcu_device, data_r, data_w) +void flstory_state::flstory_map(address_map &map) +{ + base_map(map); + map(0xd000, 0xd000).rw(m_bmcu, FUNC(taito68705_mcu_device::data_r), FUNC(taito68705_mcu_device::data_w)); - AM_RANGE(0xd805, 0xd805) AM_READ(flstory_mcu_status_r) + map(0xd805, 0xd805).r(this, FUNC(flstory_state::flstory_mcu_status_r)); // AM_RANGE(0xda00, 0xda00) AM_WRITEONLY - AM_RANGE(0xdcc0, 0xdcff) AM_RAM /* unknown */ - AM_RANGE(0xdf03, 0xdf03) AM_WRITE(flstory_gfxctrl_w) -ADDRESS_MAP_END + map(0xdcc0, 0xdcff).ram(); /* unknown */ + map(0xdf03, 0xdf03).w(this, FUNC(flstory_state::flstory_gfxctrl_w)); +} -ADDRESS_MAP_START(flstory_state::onna34ro_map) - AM_IMPORT_FROM(base_map) +void flstory_state::onna34ro_map(address_map &map) +{ + base_map(map); // AM_RANGE(0xd000, 0xd000) AM_DEVREADWRITE("bmcu", taito68705_mcu_device, data_r, data_w) // AM_RANGE(0xd805, 0xd805) AM_READ(flstory_mcu_status_r) // AM_RANGE(0xda00, 0xda00) AM_WRITEONLY - AM_RANGE(0xdcc0, 0xdcff) AM_RAM /* unknown */ - AM_RANGE(0xdf03, 0xdf03) AM_WRITE(flstory_gfxctrl_w) -ADDRESS_MAP_END + map(0xdcc0, 0xdcff).ram(); /* unknown */ + map(0xdf03, 0xdf03).w(this, FUNC(flstory_state::flstory_gfxctrl_w)); +} -ADDRESS_MAP_START(flstory_state::onna34ro_mcu_map) - AM_IMPORT_FROM(onna34ro_map) - AM_RANGE(0xd000, 0xd000) AM_DEVREADWRITE("bmcu", taito68705_mcu_device, data_r, data_w) - AM_RANGE(0xd805, 0xd805) AM_READ(flstory_mcu_status_r) -ADDRESS_MAP_END +void flstory_state::onna34ro_mcu_map(address_map &map) +{ + onna34ro_map(map); + map(0xd000, 0xd000).rw(m_bmcu, FUNC(taito68705_mcu_device::data_r), FUNC(taito68705_mcu_device::data_w)); + map(0xd805, 0xd805).r(this, FUNC(flstory_state::flstory_mcu_status_r)); +} CUSTOM_INPUT_MEMBER(flstory_state::victnine_mcu_status_bit01_r) { @@ -95,27 +99,29 @@ CUSTOM_INPUT_MEMBER(flstory_state::victnine_mcu_status_bit01_r) return (victnine_mcu_status_r(space, 0) & 3); } -ADDRESS_MAP_START(flstory_state::victnine_map) - AM_IMPORT_FROM(base_map) - AM_RANGE(0xd000, 0xd000) AM_READWRITE(victnine_mcu_r, victnine_mcu_w) +void flstory_state::victnine_map(address_map &map) +{ + base_map(map); + map(0xd000, 0xd000).rw(this, FUNC(flstory_state::victnine_mcu_r), FUNC(flstory_state::victnine_mcu_w)); - AM_RANGE(0xd805, 0xd805) AM_READ_PORT("EXTRA_P1") /* also mcu */ - AM_RANGE(0xd807, 0xd807) AM_READ_PORT("EXTRA_P2") + map(0xd805, 0xd805).portr("EXTRA_P1"); /* also mcu */ + map(0xd807, 0xd807).portr("EXTRA_P2"); // AM_RANGE(0xda00, 0xda00) AM_WRITEONLY - AM_RANGE(0xdce0, 0xdce0) AM_READWRITE(victnine_gfxctrl_r, victnine_gfxctrl_w) - AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP /* unknown */ -ADDRESS_MAP_END + map(0xdce0, 0xdce0).rw(this, FUNC(flstory_state::victnine_gfxctrl_r), FUNC(flstory_state::victnine_gfxctrl_w)); + map(0xdce1, 0xdce1).nopw(); /* unknown */ +} -ADDRESS_MAP_START(flstory_state::rumba_map) - AM_IMPORT_FROM(base_map) - AM_RANGE(0xd000, 0xd000) AM_DEVREADWRITE("bmcu", taito68705_mcu_device, data_r, data_w) +void flstory_state::rumba_map(address_map &map) +{ + base_map(map); + map(0xd000, 0xd000).rw(m_bmcu, FUNC(taito68705_mcu_device::data_r), FUNC(taito68705_mcu_device::data_w)); - AM_RANGE(0xd805, 0xd805) AM_READ(flstory_mcu_status_r) - AM_RANGE(0xd807, 0xd807) AM_READ_PORT("EXTRA_P2") + map(0xd805, 0xd805).r(this, FUNC(flstory_state::flstory_mcu_status_r)); + map(0xd807, 0xd807).portr("EXTRA_P2"); // AM_RANGE(0xda00, 0xda00) AM_WRITEONLY - AM_RANGE(0xdce0, 0xdce0) AM_READWRITE(victnine_gfxctrl_r, victnine_gfxctrl_w) + map(0xdce0, 0xdce0).rw(this, FUNC(flstory_state::victnine_gfxctrl_r), FUNC(flstory_state::victnine_gfxctrl_w)); // AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP /* unknown */ -ADDRESS_MAP_END +} @@ -162,20 +168,21 @@ WRITE8_MEMBER(flstory_state::sound_control_3_w) } -ADDRESS_MAP_START(flstory_state::sound_map) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("aysnd", ym2149_device, address_data_w) - AM_RANGE(0xca00, 0xca0d) AM_DEVWRITE("msm", msm5232_device, write) - AM_RANGE(0xcc00, 0xcc00) AM_WRITE(sound_control_0_w) - AM_RANGE(0xce00, 0xce00) AM_WRITE(sound_control_1_w) - AM_RANGE(0xd800, 0xd800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) - AM_RANGE(0xd800, 0xd800) AM_DEVWRITE("soundlatch2", generic_latch_8_device, write) - AM_RANGE(0xda00, 0xda00) AM_READ(snd_flag_r) AM_DEVWRITE("soundnmi", input_merger_device, in_set<1>) - AM_RANGE(0xdc00, 0xdc00) AM_DEVWRITE("soundnmi", input_merger_device, in_clear<1>) - AM_RANGE(0xde00, 0xde00) AM_READNOP AM_DEVWRITE("dac", dac_byte_interface, write) /* signed 8-bit DAC & unknown read */ - AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostics ROM */ -ADDRESS_MAP_END +void flstory_state::sound_map(address_map &map) +{ + map(0x0000, 0xbfff).rom(); + map(0xc000, 0xc7ff).ram(); + map(0xc800, 0xc801).w(m_ay, FUNC(ym2149_device::address_data_w)); + map(0xca00, 0xca0d).w(m_msm, FUNC(msm5232_device::write)); + map(0xcc00, 0xcc00).w(this, FUNC(flstory_state::sound_control_0_w)); + map(0xce00, 0xce00).w(this, FUNC(flstory_state::sound_control_1_w)); + map(0xd800, 0xd800).r(m_soundlatch, FUNC(generic_latch_8_device::read)); + map(0xd800, 0xd800).w(m_soundlatch2, FUNC(generic_latch_8_device::write)); + map(0xda00, 0xda00).r(this, FUNC(flstory_state::snd_flag_r)).w(m_soundnmi, FUNC(input_merger_device::in_set<1>)); + map(0xdc00, 0xdc00).w(m_soundnmi, FUNC(input_merger_device::in_clear<1>)); + map(0xde00, 0xde00).nopr().w("dac", FUNC(dac_byte_interface::write)); /* signed 8-bit DAC & unknown read */ + map(0xe000, 0xefff).rom(); /* space for diagnostics ROM */ +} |