summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/atari_s2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/atari_s2.cpp')
-rw-r--r--src/mame/drivers/atari_s2.cpp116
1 files changed, 59 insertions, 57 deletions
diff --git a/src/mame/drivers/atari_s2.cpp b/src/mame/drivers/atari_s2.cpp
index d3e762dd366..36739819bde 100644
--- a/src/mame/drivers/atari_s2.cpp
+++ b/src/mame/drivers/atari_s2.cpp
@@ -77,63 +77,65 @@ private:
};
-ADDRESS_MAP_START(atari_s2_state::atari_s2_map)
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM
- AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_SHARE("nvram") // battery backed
- AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.0")
- AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.1")
- AM_RANGE(0x1002, 0x1002) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.2")
- AM_RANGE(0x1003, 0x1003) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.3")
- AM_RANGE(0x1004, 0x1004) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.4")
- AM_RANGE(0x1005, 0x1005) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.5")
- AM_RANGE(0x1006, 0x1006) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.6")
- AM_RANGE(0x1007, 0x1007) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.7")
- AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x071F) AM_WRITE(sound0_w)
- AM_RANGE(0x1820, 0x1820) AM_MIRROR(0x071F) AM_WRITE(sound1_w)
- AM_RANGE(0x1840, 0x1847) AM_MIRROR(0x0718) AM_WRITE(display_w)
- AM_RANGE(0x1860, 0x1867) AM_MIRROR(0x0718) AM_WRITE(lamp_w)
- AM_RANGE(0x1880, 0x1880) AM_MIRROR(0x071F) AM_WRITE(sol0_w)
- AM_RANGE(0x18a0, 0x18a7) AM_MIRROR(0x0718) AM_WRITE(sol1_w)
- AM_RANGE(0x18c0, 0x18c0) AM_MIRROR(0x071F) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x18e0, 0x18e0) AM_MIRROR(0x071F) AM_WRITE(intack_w)
- AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x07FC) AM_READ_PORT("DSW0")
- AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x07FC) AM_READ_PORT("DSW1")
- AM_RANGE(0x2002, 0x2002) AM_MIRROR(0x07FC) AM_READ_PORT("DSW2")
- AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x07FC) AM_READ_PORT("DSW3")
- AM_RANGE(0x2800, 0x3fff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(atari_s2_state::atari_s3_map)
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM
- AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_SHARE("nvram") // battery backed
- AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.0")
- AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.1")
- AM_RANGE(0x1002, 0x1002) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.2")
- AM_RANGE(0x1003, 0x1003) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.3")
- AM_RANGE(0x1004, 0x1004) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.4")
- AM_RANGE(0x1005, 0x1005) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.5")
- AM_RANGE(0x1006, 0x1006) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.6")
- AM_RANGE(0x1007, 0x1007) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.7")
- AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x071F) AM_WRITE(sound0_w)
- AM_RANGE(0x1820, 0x1820) AM_MIRROR(0x071F) AM_WRITE(sound1_w)
- AM_RANGE(0x1840, 0x1847) AM_MIRROR(0x0718) AM_WRITE(display_w)
- AM_RANGE(0x1860, 0x1867) AM_MIRROR(0x0718) AM_WRITE(lamp_w)
- AM_RANGE(0x1880, 0x1880) AM_MIRROR(0x071F) AM_WRITE(sol0_w)
- AM_RANGE(0x18a0, 0x18a7) AM_MIRROR(0x0718) AM_WRITE(sol1_w)
- AM_RANGE(0x18c0, 0x18c0) AM_MIRROR(0x071F) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x18e0, 0x18e0) AM_MIRROR(0x071F) AM_WRITE(intack_w)
- AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x07F4) AM_READ_PORT("DSW0")
- AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x07F4) AM_READ_PORT("DSW1")
- AM_RANGE(0x2002, 0x2002) AM_MIRROR(0x07F4) AM_READ_PORT("DSW2")
- AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x07F4) AM_READ_PORT("DSW3")
- AM_RANGE(0x2008, 0x2008) AM_MIRROR(0x07F4) AM_READ_PORT("DSW4")
- AM_RANGE(0x2009, 0x2009) AM_MIRROR(0x07F4) AM_READ_PORT("DSW5")
- AM_RANGE(0x200a, 0x200a) AM_MIRROR(0x07F4) AM_READ_PORT("DSW6")
- AM_RANGE(0x200b, 0x200b) AM_MIRROR(0x07F4) AM_READ_PORT("DSW7")
- AM_RANGE(0x2800, 0x3fff) AM_ROM
-ADDRESS_MAP_END
+void atari_s2_state::atari_s2_map(address_map &map)
+{
+ map.global_mask(0x3fff);
+ map(0x0000, 0x00ff).mirror(0x0700).ram();
+ map(0x0800, 0x08ff).mirror(0x0700).ram().share("nvram"); // battery backed
+ map(0x1000, 0x1000).mirror(0x07F8).portr("SWITCH.0");
+ map(0x1001, 0x1001).mirror(0x07F8).portr("SWITCH.1");
+ map(0x1002, 0x1002).mirror(0x07F8).portr("SWITCH.2");
+ map(0x1003, 0x1003).mirror(0x07F8).portr("SWITCH.3");
+ map(0x1004, 0x1004).mirror(0x07F8).portr("SWITCH.4");
+ map(0x1005, 0x1005).mirror(0x07F8).portr("SWITCH.5");
+ map(0x1006, 0x1006).mirror(0x07F8).portr("SWITCH.6");
+ map(0x1007, 0x1007).mirror(0x07F8).portr("SWITCH.7");
+ map(0x1800, 0x1800).mirror(0x071F).w(this, FUNC(atari_s2_state::sound0_w));
+ map(0x1820, 0x1820).mirror(0x071F).w(this, FUNC(atari_s2_state::sound1_w));
+ map(0x1840, 0x1847).mirror(0x0718).w(this, FUNC(atari_s2_state::display_w));
+ map(0x1860, 0x1867).mirror(0x0718).w(this, FUNC(atari_s2_state::lamp_w));
+ map(0x1880, 0x1880).mirror(0x071F).w(this, FUNC(atari_s2_state::sol0_w));
+ map(0x18a0, 0x18a7).mirror(0x0718).w(this, FUNC(atari_s2_state::sol1_w));
+ map(0x18c0, 0x18c0).mirror(0x071F).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x18e0, 0x18e0).mirror(0x071F).w(this, FUNC(atari_s2_state::intack_w));
+ map(0x2000, 0x2000).mirror(0x07FC).portr("DSW0");
+ map(0x2001, 0x2001).mirror(0x07FC).portr("DSW1");
+ map(0x2002, 0x2002).mirror(0x07FC).portr("DSW2");
+ map(0x2003, 0x2003).mirror(0x07FC).portr("DSW3");
+ map(0x2800, 0x3fff).rom();
+}
+
+void atari_s2_state::atari_s3_map(address_map &map)
+{
+ map.global_mask(0x3fff);
+ map(0x0000, 0x00ff).mirror(0x0700).ram();
+ map(0x0800, 0x08ff).mirror(0x0700).ram().share("nvram"); // battery backed
+ map(0x1000, 0x1000).mirror(0x07F8).portr("SWITCH.0");
+ map(0x1001, 0x1001).mirror(0x07F8).portr("SWITCH.1");
+ map(0x1002, 0x1002).mirror(0x07F8).portr("SWITCH.2");
+ map(0x1003, 0x1003).mirror(0x07F8).portr("SWITCH.3");
+ map(0x1004, 0x1004).mirror(0x07F8).portr("SWITCH.4");
+ map(0x1005, 0x1005).mirror(0x07F8).portr("SWITCH.5");
+ map(0x1006, 0x1006).mirror(0x07F8).portr("SWITCH.6");
+ map(0x1007, 0x1007).mirror(0x07F8).portr("SWITCH.7");
+ map(0x1800, 0x1800).mirror(0x071F).w(this, FUNC(atari_s2_state::sound0_w));
+ map(0x1820, 0x1820).mirror(0x071F).w(this, FUNC(atari_s2_state::sound1_w));
+ map(0x1840, 0x1847).mirror(0x0718).w(this, FUNC(atari_s2_state::display_w));
+ map(0x1860, 0x1867).mirror(0x0718).w(this, FUNC(atari_s2_state::lamp_w));
+ map(0x1880, 0x1880).mirror(0x071F).w(this, FUNC(atari_s2_state::sol0_w));
+ map(0x18a0, 0x18a7).mirror(0x0718).w(this, FUNC(atari_s2_state::sol1_w));
+ map(0x18c0, 0x18c0).mirror(0x071F).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x18e0, 0x18e0).mirror(0x071F).w(this, FUNC(atari_s2_state::intack_w));
+ map(0x2000, 0x2000).mirror(0x07F4).portr("DSW0");
+ map(0x2001, 0x2001).mirror(0x07F4).portr("DSW1");
+ map(0x2002, 0x2002).mirror(0x07F4).portr("DSW2");
+ map(0x2003, 0x2003).mirror(0x07F4).portr("DSW3");
+ map(0x2008, 0x2008).mirror(0x07F4).portr("DSW4");
+ map(0x2009, 0x2009).mirror(0x07F4).portr("DSW5");
+ map(0x200a, 0x200a).mirror(0x07F4).portr("DSW6");
+ map(0x200b, 0x200b).mirror(0x07F4).portr("DSW7");
+ map(0x2800, 0x3fff).rom();
+}
static INPUT_PORTS_START( atari_s2 )
PORT_START("DSW0")