summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/flstory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/flstory.cpp')
-rw-r--r--src/mame/drivers/flstory.cpp139
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 */
+}