summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/atarifb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/atarifb.cpp')
-rw-r--r--src/mame/drivers/atarifb.cpp164
1 files changed, 84 insertions, 80 deletions
diff --git a/src/mame/drivers/atarifb.cpp b/src/mame/drivers/atarifb.cpp
index 6c25b6fc0fd..46f19408752 100644
--- a/src/mame/drivers/atarifb.cpp
+++ b/src/mame/drivers/atarifb.cpp
@@ -150,86 +150,90 @@ PALETTE_INIT_MEMBER(atarifb_state, atarifb)
*
*************************************/
-ADDRESS_MAP_START(atarifb_state::atarifb_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x01ff) AM_RAM
- AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_SHARE("p1_videoram")
- AM_RANGE(0x0260, 0x039f) AM_RAM
- AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_SHARE("p2_videoram")
- AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_SHARE("field_videoram")
- AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_SHARE("scroll_register") /* OUT 0 */
- AM_RANGE(0x2001, 0x2001) AM_WRITE(atarifb_out1_w) /* OUT 1 */
- AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
- AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
- AM_RANGE(0x3000, 0x3000) AM_NOP /* Interrupt Acknowledge */
- AM_RANGE(0x4000, 0x4000) AM_READ(atarifb_in0_r)
- AM_RANGE(0x4002, 0x4002) AM_READ(atarifb_in2_r)
- AM_RANGE(0x5000, 0x5000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x6000, 0x7fff) AM_ROM
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(atarifb_state::atarifb4_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x01ff) AM_RAM
- AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_SHARE("p1_videoram")
- AM_RANGE(0x0260, 0x039f) AM_RAM
- AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_SHARE("p2_videoram")
- AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_SHARE("field_videoram")
- AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_SHARE("scroll_register") /* OUT 0 */
- AM_RANGE(0x2001, 0x2001) AM_WRITE(atarifb4_out1_w) /* OUT 1 */
- AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
- AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
- AM_RANGE(0x3000, 0x3000) AM_NOP /* Interrupt Acknowledge */
- AM_RANGE(0x4000, 0x4000) AM_READ(atarifb4_in0_r)
- AM_RANGE(0x4001, 0x4001) AM_READ_PORT("EXTRA")
- AM_RANGE(0x4002, 0x4002) AM_READ(atarifb4_in2_r)
- AM_RANGE(0x5000, 0x5000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x6000, 0x7fff) AM_ROM
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(atarifb_state::abaseb_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x01ff) AM_RAM
- AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_SHARE("p1_videoram")
- AM_RANGE(0x0260, 0x039f) AM_RAM
- AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_SHARE("p2_videoram")
- AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_SHARE("field_videoram")
- AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_SHARE("scroll_register") /* OUT 0 */
- AM_RANGE(0x2001, 0x2001) AM_WRITE(abaseb_out1_w) /* OUT 1 */
- AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
- AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
- AM_RANGE(0x3000, 0x3000) AM_NOP /* Interrupt Acknowledge */
- AM_RANGE(0x4000, 0x4000) AM_READ(atarifb_in0_r)
- AM_RANGE(0x4002, 0x4002) AM_READ(atarifb_in2_r)
- AM_RANGE(0x5000, 0x5000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x6000, 0x7fff) AM_ROM
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(atarifb_state::soccer_map)
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x01ff) AM_RAM
- AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_SHARE("p1_videoram")
- AM_RANGE(0x0260, 0x039f) AM_RAM
- AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_SHARE("p2_videoram")
- AM_RANGE(0x0800, 0x0bbf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_SHARE("field_videoram")
- AM_RANGE(0x0bc0, 0x0bff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x1000, 0x1000) AM_WRITEONLY AM_SHARE("scroll_register") /* OUT 0 */
- AM_RANGE(0x1001, 0x1001) AM_WRITE(soccer_out1_w) /* OUT 1 */
- AM_RANGE(0x1002, 0x1002) AM_WRITE(soccer_out2_w) /* OUT 2 */
- AM_RANGE(0x1004, 0x1004) AM_WRITENOP /* Interrupt Acknowledge */
- AM_RANGE(0x1005, 0x1005) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x1800, 0x1800) AM_READ(atarifb4_in0_r)
- AM_RANGE(0x1801, 0x1801) AM_READ_PORT("EXTRA")
- AM_RANGE(0x1802, 0x1802) AM_READ(atarifb4_in2_r)
- AM_RANGE(0x1803, 0x1803) AM_READ_PORT("DSW1")
- AM_RANGE(0x2000, 0x3fff) AM_ROM
-ADDRESS_MAP_END
+void atarifb_state::atarifb_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x01ff).ram();
+ map(0x0200, 0x025f).ram().w(this, FUNC(atarifb_state::atarifb_alpha1_videoram_w)).share("p1_videoram");
+ map(0x0260, 0x039f).ram();
+ map(0x03a0, 0x03ff).ram().w(this, FUNC(atarifb_state::atarifb_alpha2_videoram_w)).share("p2_videoram");
+ map(0x1000, 0x13bf).ram().w(this, FUNC(atarifb_state::atarifb_field_videoram_w)).share("field_videoram");
+ map(0x13c0, 0x13ff).ram().share("spriteram");
+ map(0x2000, 0x2000).writeonly().share("scroll_register"); /* OUT 0 */
+ map(0x2001, 0x2001).w(this, FUNC(atarifb_state::atarifb_out1_w)); /* OUT 1 */
+ map(0x2002, 0x2002).w(this, FUNC(atarifb_state::atarifb_out2_w)); /* OUT 2 */
+ map(0x2003, 0x2003).w(this, FUNC(atarifb_state::atarifb_out3_w)); /* OUT 3 */
+ map(0x3000, 0x3000).noprw(); /* Interrupt Acknowledge */
+ map(0x4000, 0x4000).r(this, FUNC(atarifb_state::atarifb_in0_r));
+ map(0x4002, 0x4002).r(this, FUNC(atarifb_state::atarifb_in2_r));
+ map(0x5000, 0x5000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x6000, 0x7fff).rom();
+}
+
+
+void atarifb_state::atarifb4_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x01ff).ram();
+ map(0x0200, 0x025f).ram().w(this, FUNC(atarifb_state::atarifb_alpha1_videoram_w)).share("p1_videoram");
+ map(0x0260, 0x039f).ram();
+ map(0x03a0, 0x03ff).ram().w(this, FUNC(atarifb_state::atarifb_alpha2_videoram_w)).share("p2_videoram");
+ map(0x1000, 0x13bf).ram().w(this, FUNC(atarifb_state::atarifb_field_videoram_w)).share("field_videoram");
+ map(0x13c0, 0x13ff).ram().share("spriteram");
+ map(0x2000, 0x2000).writeonly().share("scroll_register"); /* OUT 0 */
+ map(0x2001, 0x2001).w(this, FUNC(atarifb_state::atarifb4_out1_w)); /* OUT 1 */
+ map(0x2002, 0x2002).w(this, FUNC(atarifb_state::atarifb_out2_w)); /* OUT 2 */
+ map(0x2003, 0x2003).w(this, FUNC(atarifb_state::atarifb_out3_w)); /* OUT 3 */
+ map(0x3000, 0x3000).noprw(); /* Interrupt Acknowledge */
+ map(0x4000, 0x4000).r(this, FUNC(atarifb_state::atarifb4_in0_r));
+ map(0x4001, 0x4001).portr("EXTRA");
+ map(0x4002, 0x4002).r(this, FUNC(atarifb_state::atarifb4_in2_r));
+ map(0x5000, 0x5000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x6000, 0x7fff).rom();
+}
+
+
+void atarifb_state::abaseb_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x01ff).ram();
+ map(0x0200, 0x025f).ram().w(this, FUNC(atarifb_state::atarifb_alpha1_videoram_w)).share("p1_videoram");
+ map(0x0260, 0x039f).ram();
+ map(0x03a0, 0x03ff).ram().w(this, FUNC(atarifb_state::atarifb_alpha2_videoram_w)).share("p2_videoram");
+ map(0x1000, 0x13bf).ram().w(this, FUNC(atarifb_state::atarifb_field_videoram_w)).share("field_videoram");
+ map(0x13c0, 0x13ff).ram().share("spriteram");
+ map(0x2000, 0x2000).writeonly().share("scroll_register"); /* OUT 0 */
+ map(0x2001, 0x2001).w(this, FUNC(atarifb_state::abaseb_out1_w)); /* OUT 1 */
+ map(0x2002, 0x2002).w(this, FUNC(atarifb_state::atarifb_out2_w)); /* OUT 2 */
+ map(0x2003, 0x2003).w(this, FUNC(atarifb_state::atarifb_out3_w)); /* OUT 3 */
+ map(0x3000, 0x3000).noprw(); /* Interrupt Acknowledge */
+ map(0x4000, 0x4000).r(this, FUNC(atarifb_state::atarifb_in0_r));
+ map(0x4002, 0x4002).r(this, FUNC(atarifb_state::atarifb_in2_r));
+ map(0x5000, 0x5000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x6000, 0x7fff).rom();
+}
+
+
+void atarifb_state::soccer_map(address_map &map)
+{
+ map.global_mask(0x3fff);
+ map(0x0000, 0x01ff).ram();
+ map(0x0200, 0x025f).ram().w(this, FUNC(atarifb_state::atarifb_alpha1_videoram_w)).share("p1_videoram");
+ map(0x0260, 0x039f).ram();
+ map(0x03a0, 0x03ff).ram().w(this, FUNC(atarifb_state::atarifb_alpha2_videoram_w)).share("p2_videoram");
+ map(0x0800, 0x0bbf).ram().w(this, FUNC(atarifb_state::atarifb_field_videoram_w)).share("field_videoram");
+ map(0x0bc0, 0x0bff).ram().share("spriteram");
+ map(0x1000, 0x1000).writeonly().share("scroll_register"); /* OUT 0 */
+ map(0x1001, 0x1001).w(this, FUNC(atarifb_state::soccer_out1_w)); /* OUT 1 */
+ map(0x1002, 0x1002).w(this, FUNC(atarifb_state::soccer_out2_w)); /* OUT 2 */
+ map(0x1004, 0x1004).nopw(); /* Interrupt Acknowledge */
+ map(0x1005, 0x1005).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x1800, 0x1800).r(this, FUNC(atarifb_state::atarifb4_in0_r));
+ map(0x1801, 0x1801).portr("EXTRA");
+ map(0x1802, 0x1802).r(this, FUNC(atarifb_state::atarifb4_in2_r));
+ map(0x1803, 0x1803).portr("DSW1");
+ map(0x2000, 0x3fff).rom();
+}