summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/bwidow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/bwidow.cpp')
-rw-r--r--src/mame/drivers/bwidow.cpp121
1 files changed, 62 insertions, 59 deletions
diff --git a/src/mame/drivers/bwidow.cpp b/src/mame/drivers/bwidow.cpp
index bdae3bcabba..783972ebef7 100644
--- a/src/mame/drivers/bwidow.cpp
+++ b/src/mame/drivers/bwidow.cpp
@@ -375,65 +375,68 @@ WRITE8_MEMBER(bwidow_state::irq_ack_w)
*
*************************************/
-ADDRESS_MAP_START(bwidow_state::bwidow_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
- AM_RANGE(0x2800, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x67ff) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
- AM_RANGE(0x6800, 0x6fff) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
- AM_RANGE(0x7000, 0x7000) AM_DEVREAD("earom", atari_vg_earom_device, read)
- AM_RANGE(0x7800, 0x7800) AM_READ_PORT("IN0")
- AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN3")
- AM_RANGE(0x8800, 0x8800) AM_READ_PORT("IN4")
- AM_RANGE(0x8800, 0x8800) AM_WRITE(bwidow_misc_w) /* coin counters, leds */
- AM_RANGE(0x8840, 0x8840) AM_DEVWRITE("avg", avg_device, go_w)
- AM_RANGE(0x8880, 0x8880) AM_DEVWRITE("avg", avg_device, reset_w)
- AM_RANGE(0x88c0, 0x88c0) AM_WRITE(irq_ack_w) /* interrupt acknowledge */
- AM_RANGE(0x8900, 0x8900) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
- AM_RANGE(0x8940, 0x897f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
- AM_RANGE(0x8980, 0x89ed) AM_WRITENOP /* watchdog clear */
- AM_RANGE(0x9000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(bwidow_state::bwidowp_map)
- AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0x0800, 0x080f) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
- AM_RANGE(0x0810, 0x081f) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
- AM_RANGE(0x1000, 0x1000) AM_READ(bwidowp_in_r)
- AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0")
- AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("avg", avg_device, go_w)
- AM_RANGE(0x2800, 0x2800) AM_DEVWRITE("avg", avg_device, reset_w)
- AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x3800, 0x3800) AM_WRITE(bwidow_misc_w) /* coin counters, leds */
- AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x4000)
- AM_RANGE(0x4800, 0x6fff) AM_ROM
- AM_RANGE(0x6000, 0x6000) AM_WRITE(irq_ack_w) /* interrupt acknowledge */
- AM_RANGE(0x8000, 0x803f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
- AM_RANGE(0x8800, 0x8800) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
- AM_RANGE(0x9000, 0x9000) AM_DEVREAD("earom", atari_vg_earom_device, read)
- AM_RANGE(0x9800, 0x9800) AM_WRITENOP /* ? written once at startup */
- AM_RANGE(0xa000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(bwidow_state::spacduel_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM
- AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0")
- AM_RANGE(0x0900, 0x0907) AM_READ(spacduel_IN3_r) /* IN1 */
- AM_RANGE(0x0905, 0x0906) AM_WRITENOP /* ignore? */
- AM_RANGE(0x0a00, 0x0a00) AM_DEVREAD("earom", atari_vg_earom_device, read)
- AM_RANGE(0x0c00, 0x0c00) AM_WRITE(spacduel_coin_counter_w) /* coin out */
- AM_RANGE(0x0c80, 0x0c80) AM_DEVWRITE("avg", avg_device, go_w)
- AM_RANGE(0x0d00, 0x0d00) AM_WRITENOP /* watchdog clear */
- AM_RANGE(0x0d80, 0x0d80) AM_DEVWRITE("avg", avg_device, reset_w)
- AM_RANGE(0x0e00, 0x0e00) AM_WRITE(irq_ack_w) /* interrupt acknowledge */
- AM_RANGE(0x0e80, 0x0e80) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
- AM_RANGE(0x0f00, 0x0f3f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
- AM_RANGE(0x1000, 0x10ff) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
- AM_RANGE(0x1400, 0x14ff) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
- AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
- AM_RANGE(0x2800, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+void bwidow_state::bwidow_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram();
+ map(0x2000, 0x27ff).ram().share("vectorram").region("maincpu", 0x2000);
+ map(0x2800, 0x5fff).rom();
+ map(0x6000, 0x67ff).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write));
+ map(0x6800, 0x6fff).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write));
+ map(0x7000, 0x7000).r("earom", FUNC(atari_vg_earom_device::read));
+ map(0x7800, 0x7800).portr("IN0");
+ map(0x8000, 0x8000).portr("IN3");
+ map(0x8800, 0x8800).portr("IN4");
+ map(0x8800, 0x8800).w(this, FUNC(bwidow_state::bwidow_misc_w)); /* coin counters, leds */
+ map(0x8840, 0x8840).w("avg", FUNC(avg_device::go_w));
+ map(0x8880, 0x8880).w("avg", FUNC(avg_device::reset_w));
+ map(0x88c0, 0x88c0).w(this, FUNC(bwidow_state::irq_ack_w)); /* interrupt acknowledge */
+ map(0x8900, 0x8900).w("earom", FUNC(atari_vg_earom_device::ctrl_w));
+ map(0x8940, 0x897f).w("earom", FUNC(atari_vg_earom_device::write));
+ map(0x8980, 0x89ed).nopw(); /* watchdog clear */
+ map(0x9000, 0xffff).rom();
+}
+
+void bwidow_state::bwidowp_map(address_map &map)
+{
+ map(0x0000, 0x07ff).ram();
+ map(0x0800, 0x080f).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write));
+ map(0x0810, 0x081f).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write));
+ map(0x1000, 0x1000).r(this, FUNC(bwidow_state::bwidowp_in_r));
+ map(0x1800, 0x1800).portr("IN0");
+ map(0x2000, 0x2000).w("avg", FUNC(avg_device::go_w));
+ map(0x2800, 0x2800).w("avg", FUNC(avg_device::reset_w));
+ map(0x3000, 0x3000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x3800, 0x3800).w(this, FUNC(bwidow_state::bwidow_misc_w)); /* coin counters, leds */
+ map(0x4000, 0x47ff).ram().share("vectorram").region("maincpu", 0x4000);
+ map(0x4800, 0x6fff).rom();
+ map(0x6000, 0x6000).w(this, FUNC(bwidow_state::irq_ack_w)); /* interrupt acknowledge */
+ map(0x8000, 0x803f).w("earom", FUNC(atari_vg_earom_device::write));
+ map(0x8800, 0x8800).w("earom", FUNC(atari_vg_earom_device::ctrl_w));
+ map(0x9000, 0x9000).r("earom", FUNC(atari_vg_earom_device::read));
+ map(0x9800, 0x9800).nopw(); /* ? written once at startup */
+ map(0xa000, 0xffff).rom();
+}
+
+void bwidow_state::spacduel_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+ map(0x0800, 0x0800).portr("IN0");
+ map(0x0900, 0x0907).r(this, FUNC(bwidow_state::spacduel_IN3_r)); /* IN1 */
+ map(0x0905, 0x0906).nopw(); /* ignore? */
+ map(0x0a00, 0x0a00).r("earom", FUNC(atari_vg_earom_device::read));
+ map(0x0c00, 0x0c00).w(this, FUNC(bwidow_state::spacduel_coin_counter_w)); /* coin out */
+ map(0x0c80, 0x0c80).w("avg", FUNC(avg_device::go_w));
+ map(0x0d00, 0x0d00).nopw(); /* watchdog clear */
+ map(0x0d80, 0x0d80).w("avg", FUNC(avg_device::reset_w));
+ map(0x0e00, 0x0e00).w(this, FUNC(bwidow_state::irq_ack_w)); /* interrupt acknowledge */
+ map(0x0e80, 0x0e80).w("earom", FUNC(atari_vg_earom_device::ctrl_w));
+ map(0x0f00, 0x0f3f).w("earom", FUNC(atari_vg_earom_device::write));
+ map(0x1000, 0x10ff).rw("pokey1", FUNC(pokey_device::read), FUNC(pokey_device::write));
+ map(0x1400, 0x14ff).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write));
+ map(0x2000, 0x27ff).ram().share("vectorram").region("maincpu", 0x2000);
+ map(0x2800, 0x3fff).rom();
+ map(0x4000, 0xffff).rom();
+}