summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/bbusters.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/bbusters.cpp')
-rw-r--r--src/mame/drivers/bbusters.cpp125
1 files changed, 65 insertions, 60 deletions
diff --git a/src/mame/drivers/bbusters.cpp b/src/mame/drivers/bbusters.cpp
index 1d01bf14713..fdd2ab80dc7 100644
--- a/src/mame/drivers/bbusters.cpp
+++ b/src/mame/drivers/bbusters.cpp
@@ -324,74 +324,79 @@ READ16_MEMBER(bbusters_state::mechatt_gun_r)
/*******************************************************************************/
-ADDRESS_MAP_START(bbusters_state::bbusters_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_SHARE("ram")
- AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(video_w) AM_SHARE("videoram")
- AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x0a1000, 0x0a7fff) AM_RAM /* service mode */
- AM_RANGE(0x0a8000, 0x0a8fff) AM_RAM AM_SHARE("spriteram2")
- AM_RANGE(0x0a9000, 0x0affff) AM_RAM /* service mode */
- AM_RANGE(0x0b0000, 0x0b1fff) AM_RAM_WRITE(pf1_w) AM_SHARE("pf1_data")
- AM_RANGE(0x0b2000, 0x0b3fff) AM_RAM_WRITE(pf2_w) AM_SHARE("pf2_data")
- AM_RANGE(0x0b4000, 0x0b5fff) AM_RAM /* service mode */
- AM_RANGE(0x0b8000, 0x0b8003) AM_WRITEONLY AM_SHARE("pf1_scroll_data")
- AM_RANGE(0x0b8008, 0x0b800b) AM_WRITEONLY AM_SHARE("pf2_scroll_data")
- AM_RANGE(0x0d0000, 0x0d0fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("COINS") /* Coins */
- AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("IN0") /* Player 1 & 2 */
- AM_RANGE(0x0e0004, 0x0e0005) AM_READ_PORT("IN1") /* Player 3 */
- AM_RANGE(0x0e0008, 0x0e0009) AM_READ_PORT("DSW1") /* Dip 1 */
- AM_RANGE(0x0e000a, 0x0e000b) AM_READ_PORT("DSW2") /* Dip 2 */
- AM_RANGE(0x0e0018, 0x0e0019) AM_READ(sound_status_r)
- AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(kludge_r, gun_select_w)
- AM_RANGE(0x0e8002, 0x0e8003) AM_READ(control_3_r)
+void bbusters_state::bbusters_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x080000, 0x08ffff).ram().share("ram");
+ map(0x090000, 0x090fff).ram().w(this, FUNC(bbusters_state::video_w)).share("videoram");
+ map(0x0a0000, 0x0a0fff).ram().share("spriteram");
+ map(0x0a1000, 0x0a7fff).ram(); /* service mode */
+ map(0x0a8000, 0x0a8fff).ram().share("spriteram2");
+ map(0x0a9000, 0x0affff).ram(); /* service mode */
+ map(0x0b0000, 0x0b1fff).ram().w(this, FUNC(bbusters_state::pf1_w)).share("pf1_data");
+ map(0x0b2000, 0x0b3fff).ram().w(this, FUNC(bbusters_state::pf2_w)).share("pf2_data");
+ map(0x0b4000, 0x0b5fff).ram(); /* service mode */
+ map(0x0b8000, 0x0b8003).writeonly().share("pf1_scroll_data");
+ map(0x0b8008, 0x0b800b).writeonly().share("pf2_scroll_data");
+ map(0x0d0000, 0x0d0fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
+ map(0x0e0000, 0x0e0001).portr("COINS"); /* Coins */
+ map(0x0e0002, 0x0e0003).portr("IN0"); /* Player 1 & 2 */
+ map(0x0e0004, 0x0e0005).portr("IN1"); /* Player 3 */
+ map(0x0e0008, 0x0e0009).portr("DSW1"); /* Dip 1 */
+ map(0x0e000a, 0x0e000b).portr("DSW2"); /* Dip 2 */
+ map(0x0e0018, 0x0e0019).r(this, FUNC(bbusters_state::sound_status_r));
+ map(0x0e8000, 0x0e8001).rw(this, FUNC(bbusters_state::kludge_r), FUNC(bbusters_state::gun_select_w));
+ map(0x0e8002, 0x0e8003).r(this, FUNC(bbusters_state::control_3_r));
/* AM_RANGE(0x0f0008, 0x0f0009) AM_WRITENOP */
- AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(three_gun_output_w)
- AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(sound_cpu_w)
- AM_RANGE(0x0f8000, 0x0f80ff) AM_READ(eprom_r) AM_WRITEONLY AM_SHARE("eeprom") /* Eeprom */
-ADDRESS_MAP_END
+ map(0x0f0008, 0x0f0009).w(this, FUNC(bbusters_state::three_gun_output_w));
+ map(0x0f0018, 0x0f0019).w(this, FUNC(bbusters_state::sound_cpu_w));
+ map(0x0f8000, 0x0f80ff).r(this, FUNC(bbusters_state::eprom_r)).writeonly().share("eeprom"); /* Eeprom */
+}
/*******************************************************************************/
-ADDRESS_MAP_START(bbusters_state::mechatt_map)
- AM_RANGE(0x000000, 0x06ffff) AM_ROM
- AM_RANGE(0x070000, 0x07ffff) AM_RAM AM_SHARE("ram")
- AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(video_w) AM_SHARE("videoram")
- AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x0a1000, 0x0a7fff) AM_WRITENOP
- AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE(pf1_w) AM_SHARE("pf1_data")
- AM_RANGE(0x0b8000, 0x0b8003) AM_WRITEONLY AM_SHARE("pf1_scroll_data")
- AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM_WRITE(pf2_w) AM_SHARE("pf2_data")
- AM_RANGE(0x0c8000, 0x0c8003) AM_WRITEONLY AM_SHARE("pf2_scroll_data")
- AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("IN0")
- AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("DSW1")
- AM_RANGE(0x0e0004, 0x0e0007) AM_READ(mechatt_gun_r)
+void bbusters_state::mechatt_map(address_map &map)
+{
+ map(0x000000, 0x06ffff).rom();
+ map(0x070000, 0x07ffff).ram().share("ram");
+ map(0x090000, 0x090fff).ram().w(this, FUNC(bbusters_state::video_w)).share("videoram");
+ map(0x0a0000, 0x0a0fff).ram().share("spriteram");
+ map(0x0a1000, 0x0a7fff).nopw();
+ map(0x0b0000, 0x0b3fff).ram().w(this, FUNC(bbusters_state::pf1_w)).share("pf1_data");
+ map(0x0b8000, 0x0b8003).writeonly().share("pf1_scroll_data");
+ map(0x0c0000, 0x0c3fff).ram().w(this, FUNC(bbusters_state::pf2_w)).share("pf2_data");
+ map(0x0c8000, 0x0c8003).writeonly().share("pf2_scroll_data");
+ map(0x0d0000, 0x0d07ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
+ map(0x0e0000, 0x0e0001).portr("IN0");
+ map(0x0e0002, 0x0e0003).portr("DSW1");
+ map(0x0e0004, 0x0e0007).r(this, FUNC(bbusters_state::mechatt_gun_r));
/* AM_RANGE(0x0e4002, 0x0e4003) AM_WRITENOP Gun force feedback? */
- AM_RANGE(0x0e4002, 0x0e4003) AM_WRITE(two_gun_output_w)
- AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(sound_status_r, sound_cpu_w)
-ADDRESS_MAP_END
+ map(0x0e4002, 0x0e4003).w(this, FUNC(bbusters_state::two_gun_output_w));
+ map(0x0e8000, 0x0e8001).rw(this, FUNC(bbusters_state::sound_status_r), FUNC(bbusters_state::sound_cpu_w));
+}
/******************************************************************************/
-ADDRESS_MAP_START(bbusters_state::sound_map)
- AM_RANGE(0x0000, 0xefff) AM_ROM
- AM_RANGE(0xf000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_WRITE(sound_status_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(bbusters_state::sound_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
- AM_RANGE(0xc0, 0xc1) AM_WRITENOP /* -> Main CPU */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(bbusters_state::sounda_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2608_device, read, write)
- AM_RANGE(0xc0, 0xc1) AM_WRITENOP /* -> Main CPU */
-ADDRESS_MAP_END
+void bbusters_state::sound_map(address_map &map)
+{
+ map(0x0000, 0xefff).rom();
+ map(0xf000, 0xf7ff).ram();
+ map(0xf800, 0xf800).r(m_soundlatch, FUNC(generic_latch_8_device::read)).w(this, FUNC(bbusters_state::sound_status_w));
+}
+
+void bbusters_state::sound_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x03).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write));
+ map(0xc0, 0xc1).nopw(); /* -> Main CPU */
+}
+
+void bbusters_state::sounda_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x03).rw("ymsnd", FUNC(ym2608_device::read), FUNC(ym2608_device::write));
+ map(0xc0, 0xc1).nopw(); /* -> Main CPU */
+}
/******************************************************************************/