summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/cyberbal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cyberbal.cpp')
-rw-r--r--src/mame/drivers/cyberbal.cpp171
1 files changed, 88 insertions, 83 deletions
diff --git a/src/mame/drivers/cyberbal.cpp b/src/mame/drivers/cyberbal.cpp
index ced3401ec8b..61e3296afba 100644
--- a/src/mame/drivers/cyberbal.cpp
+++ b/src/mame/drivers/cyberbal.cpp
@@ -121,30 +121,31 @@ WRITE16_MEMBER(cyberbal_state::p2_reset_w)
*
*************************************/
-ADDRESS_MAP_START(cyberbal_state::main_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0xfc0000, 0xfc0fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
- AM_RANGE(0xfc8000, 0xfcffff) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0xff00)
- AM_RANGE(0xfd0000, 0xfd1fff) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write16)
- AM_RANGE(0xfd2000, 0xfd3fff) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
- AM_RANGE(0xfd4000, 0xfd5fff) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0xfd6000, 0xfd7fff) AM_WRITE(p2_reset_w)
- AM_RANGE(0xfd8000, 0xfd9fff) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0xff00)
- AM_RANGE(0xfe0000, 0xfe0fff) AM_READ_PORT("IN0")
- AM_RANGE(0xfe1000, 0xfe1fff) AM_READ_PORT("IN1")
- AM_RANGE(0xfe8000, 0xfe8fff) AM_RAM_DEVWRITE("rpalette", palette_device, write16) AM_SHARE("rpalette")
- AM_RANGE(0xfec000, 0xfecfff) AM_RAM_DEVWRITE("lpalette", palette_device, write16) AM_SHARE("lpalette")
- AM_RANGE(0xff0000, 0xff1fff) AM_RAM_DEVWRITE("playfield2", tilemap_device, write16) AM_SHARE("playfield2")
- AM_RANGE(0xff2000, 0xff2fff) AM_RAM_DEVWRITE("alpha2", tilemap_device, write16) AM_SHARE("alpha2")
- AM_RANGE(0xff3000, 0xff37ff) AM_RAM AM_SHARE("mob2")
- AM_RANGE(0xff3800, 0xff3fff) AM_RAM AM_SHARE("ff3800")
- AM_RANGE(0xff4000, 0xff5fff) AM_RAM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
- AM_RANGE(0xff6000, 0xff6fff) AM_RAM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
- AM_RANGE(0xff7000, 0xff77ff) AM_RAM AM_SHARE("mob")
- AM_RANGE(0xff7800, 0xff9fff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0xffa000, 0xffbfff) AM_READONLY AM_WRITENOP AM_SHARE("extraram")
- AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("mainram")
-ADDRESS_MAP_END
+void cyberbal_state::main_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0xfc0000, 0xfc0fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
+ map(0xfc8000, 0xfcffff).r(m_soundcomm, FUNC(atari_sound_comm_device::main_response_r)).umask16(0xff00);
+ map(0xfd0000, 0xfd1fff).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write16));
+ map(0xfd2000, 0xfd3fff).w(m_soundcomm, FUNC(atari_sound_comm_device::sound_reset_w));
+ map(0xfd4000, 0xfd5fff).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0xfd6000, 0xfd7fff).w(this, FUNC(cyberbal_state::p2_reset_w));
+ map(0xfd8000, 0xfd9fff).w(m_soundcomm, FUNC(atari_sound_comm_device::main_command_w)).umask16(0xff00);
+ map(0xfe0000, 0xfe0fff).portr("IN0");
+ map(0xfe1000, 0xfe1fff).portr("IN1");
+ map(0xfe8000, 0xfe8fff).ram().w("rpalette", FUNC(palette_device::write16)).share("rpalette");
+ map(0xfec000, 0xfecfff).ram().w("lpalette", FUNC(palette_device::write16)).share("lpalette");
+ map(0xff0000, 0xff1fff).ram().w(m_playfield2_tilemap, FUNC(tilemap_device::write16)).share("playfield2");
+ map(0xff2000, 0xff2fff).ram().w(m_alpha2_tilemap, FUNC(tilemap_device::write16)).share("alpha2");
+ map(0xff3000, 0xff37ff).ram().share("mob2");
+ map(0xff3800, 0xff3fff).ram().share("ff3800");
+ map(0xff4000, 0xff5fff).ram().w("playfield", FUNC(tilemap_device::write16)).share("playfield");
+ map(0xff6000, 0xff6fff).ram().w("alpha", FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff7000, 0xff77ff).ram().share("mob");
+ map(0xff7800, 0xff9fff).ram().share("sharedram");
+ map(0xffa000, 0xffbfff).readonly().nopw().share("extraram");
+ map(0xffc000, 0xffffff).ram().share("mainram");
+}
@@ -154,24 +155,25 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(cyberbal_state::extra_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0xfc0000, 0xfdffff) AM_WRITE(video_int_ack_w)
- AM_RANGE(0xfe0000, 0xfe0fff) AM_READ_PORT("IN0")
- AM_RANGE(0xfe1000, 0xfe1fff) AM_READ_PORT("IN1")
- AM_RANGE(0xfe8000, 0xfe8fff) AM_RAM_DEVWRITE("rpalette", palette_device, write16) AM_SHARE("rpalette")
- AM_RANGE(0xfec000, 0xfecfff) AM_RAM_DEVWRITE("lpalette", palette_device, write16) AM_SHARE("lpalette")
- AM_RANGE(0xff0000, 0xff1fff) AM_RAM_DEVWRITE("playfield2", tilemap_device, write16) AM_SHARE("playfield2")
- AM_RANGE(0xff2000, 0xff2fff) AM_RAM_DEVWRITE("alpha2", tilemap_device, write16) AM_SHARE("alpha2")
- AM_RANGE(0xff3000, 0xff37ff) AM_RAM AM_SHARE("mob2")
- AM_RANGE(0xff3800, 0xff3fff) AM_RAM AM_SHARE("ff3800")
- AM_RANGE(0xff4000, 0xff5fff) AM_RAM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
- AM_RANGE(0xff6000, 0xff6fff) AM_RAM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
- AM_RANGE(0xff7000, 0xff77ff) AM_RAM AM_SHARE("mob")
- AM_RANGE(0xff7800, 0xff9fff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0xffa000, 0xffbfff) AM_RAM AM_SHARE("extraram")
- AM_RANGE(0xffc000, 0xffffff) AM_READONLY AM_WRITENOP AM_SHARE("mainram")
-ADDRESS_MAP_END
+void cyberbal_state::extra_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0xfc0000, 0xfdffff).w(this, FUNC(cyberbal_state::video_int_ack_w));
+ map(0xfe0000, 0xfe0fff).portr("IN0");
+ map(0xfe1000, 0xfe1fff).portr("IN1");
+ map(0xfe8000, 0xfe8fff).ram().w("rpalette", FUNC(palette_device::write16)).share("rpalette");
+ map(0xfec000, 0xfecfff).ram().w("lpalette", FUNC(palette_device::write16)).share("lpalette");
+ map(0xff0000, 0xff1fff).ram().w(m_playfield2_tilemap, FUNC(tilemap_device::write16)).share("playfield2");
+ map(0xff2000, 0xff2fff).ram().w(m_alpha2_tilemap, FUNC(tilemap_device::write16)).share("alpha2");
+ map(0xff3000, 0xff37ff).ram().share("mob2");
+ map(0xff3800, 0xff3fff).ram().share("ff3800");
+ map(0xff4000, 0xff5fff).ram().w("playfield", FUNC(tilemap_device::write16)).share("playfield");
+ map(0xff6000, 0xff6fff).ram().w("alpha", FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff7000, 0xff77ff).ram().share("mob");
+ map(0xff7800, 0xff9fff).ram().share("sharedram");
+ map(0xffa000, 0xffbfff).ram().share("extraram");
+ map(0xffc000, 0xffffff).readonly().nopw().share("mainram");
+}
@@ -181,20 +183,21 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(cyberbal_state::sound_map)
- AM_RANGE(0x0000, 0x1fff) AM_RAM
- AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0x2800, 0x2801) AM_WRITE(sound_68k_6502_w)
- AM_RANGE(0x2802, 0x2803) AM_DEVREADWRITE("soundcomm", atari_sound_comm_device, sound_irq_ack_r, sound_irq_ack_w)
- AM_RANGE(0x2804, 0x2805) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_response_w)
- AM_RANGE(0x2806, 0x2807) AM_WRITE(sound_bank_select_w)
- AM_RANGE(0x2c00, 0x2c01) AM_DEVREAD("soundcomm", atari_sound_comm_device, sound_command_r)
- AM_RANGE(0x2c02, 0x2c03) AM_READ(special_port3_r)
- AM_RANGE(0x2c04, 0x2c05) AM_READ(sound_68k_6502_r)
- AM_RANGE(0x2c06, 0x2c07) AM_READ(sound_6502_stat_r)
- AM_RANGE(0x3000, 0x3fff) AM_ROMBANK("soundbank")
- AM_RANGE(0x4000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+void cyberbal_state::sound_map(address_map &map)
+{
+ map(0x0000, 0x1fff).ram();
+ map(0x2000, 0x2001).rw(m_ymsnd, FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0x2800, 0x2801).w(this, FUNC(cyberbal_state::sound_68k_6502_w));
+ map(0x2802, 0x2803).rw(m_soundcomm, FUNC(atari_sound_comm_device::sound_irq_ack_r), FUNC(atari_sound_comm_device::sound_irq_ack_w));
+ map(0x2804, 0x2805).w(m_soundcomm, FUNC(atari_sound_comm_device::sound_response_w));
+ map(0x2806, 0x2807).w(this, FUNC(cyberbal_state::sound_bank_select_w));
+ map(0x2c00, 0x2c01).r(m_soundcomm, FUNC(atari_sound_comm_device::sound_command_r));
+ map(0x2c02, 0x2c03).r(this, FUNC(cyberbal_state::special_port3_r));
+ map(0x2c04, 0x2c05).r(this, FUNC(cyberbal_state::sound_68k_6502_r));
+ map(0x2c06, 0x2c07).r(this, FUNC(cyberbal_state::sound_6502_stat_r));
+ map(0x3000, 0x3fff).bankr("soundbank");
+ map(0x4000, 0xffff).rom();
+}
@@ -204,14 +207,15 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(cyberbal_state::sound_68k_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0xff8000, 0xff87ff) AM_READ(sound_68k_r)
- AM_RANGE(0xff8800, 0xff8fff) AM_WRITE(sound_68k_w)
- AM_RANGE(0xff9000, 0xff97ff) AM_WRITE(io_68k_irq_ack_w)
- AM_RANGE(0xff9800, 0xff9fff) AM_WRITE(sound_68k_dac_w)
- AM_RANGE(0xfff000, 0xffffff) AM_RAM
-ADDRESS_MAP_END
+void cyberbal_state::sound_68k_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0xff8000, 0xff87ff).r(this, FUNC(cyberbal_state::sound_68k_r));
+ map(0xff8800, 0xff8fff).w(this, FUNC(cyberbal_state::sound_68k_w));
+ map(0xff9000, 0xff97ff).w(this, FUNC(cyberbal_state::io_68k_irq_ack_w));
+ map(0xff9800, 0xff9fff).w(this, FUNC(cyberbal_state::sound_68k_dac_w));
+ map(0xfff000, 0xffffff).ram();
+}
@@ -221,25 +225,26 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(cyberbal2p_state::cyberbal2p_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0xfc0000, 0xfc0003) AM_READ_PORT("IN0")
- AM_RANGE(0xfc2000, 0xfc2003) AM_READ_PORT("IN1")
- AM_RANGE(0xfc4000, 0xfc4003) AM_READ_PORT("IN2")
- AM_RANGE(0xfc6000, 0xfc6003) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0xff00)
- AM_RANGE(0xfc8000, 0xfc8fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
- AM_RANGE(0xfca000, 0xfcafff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0xfd0000, 0xfd0003) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write16)
- AM_RANGE(0xfd2000, 0xfd2003) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
- AM_RANGE(0xfd4000, 0xfd4003) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0xfd6000, 0xfd6003) AM_WRITE(video_int_ack_w)
- AM_RANGE(0xfd8000, 0xfd8003) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0xff00)
- AM_RANGE(0xfe0000, 0xfe0003) AM_READ(sound_state_r)
- AM_RANGE(0xff0000, 0xff1fff) AM_RAM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
- AM_RANGE(0xff2000, 0xff2fff) AM_RAM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
- AM_RANGE(0xff3000, 0xff37ff) AM_RAM AM_SHARE("mob")
- AM_RANGE(0xff3800, 0xffffff) AM_RAM
-ADDRESS_MAP_END
+void cyberbal2p_state::cyberbal2p_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0xfc0000, 0xfc0003).portr("IN0");
+ map(0xfc2000, 0xfc2003).portr("IN1");
+ map(0xfc4000, 0xfc4003).portr("IN2");
+ map(0xfc6000, 0xfc6003).r("jsa", FUNC(atari_jsa_ii_device::main_response_r)).umask16(0xff00);
+ map(0xfc8000, 0xfc8fff).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff);
+ map(0xfca000, 0xfcafff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
+ map(0xfd0000, 0xfd0003).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write16));
+ map(0xfd2000, 0xfd2003).w("jsa", FUNC(atari_jsa_ii_device::sound_reset_w));
+ map(0xfd4000, 0xfd4003).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0xfd6000, 0xfd6003).w(this, FUNC(cyberbal2p_state::video_int_ack_w));
+ map(0xfd8000, 0xfd8003).w("jsa", FUNC(atari_jsa_ii_device::main_command_w)).umask16(0xff00);
+ map(0xfe0000, 0xfe0003).r(this, FUNC(cyberbal2p_state::sound_state_r));
+ map(0xff0000, 0xff1fff).ram().w("playfield", FUNC(tilemap_device::write16)).share("playfield");
+ map(0xff2000, 0xff2fff).ram().w("alpha", FUNC(tilemap_device::write16)).share("alpha");
+ map(0xff3000, 0xff37ff).ram().share("mob");
+ map(0xff3800, 0xffffff).ram();
+}