diff options
Diffstat (limited to 'src/mame/drivers/atarifb.cpp')
-rw-r--r-- | src/mame/drivers/atarifb.cpp | 164 |
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(); +} |