summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/atari_s1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/atari_s1.cpp')
-rw-r--r--src/mame/drivers/atari_s1.cpp81
1 files changed, 42 insertions, 39 deletions
diff --git a/src/mame/drivers/atari_s1.cpp b/src/mame/drivers/atari_s1.cpp
index ae401856c32..fedceb0ead6 100644
--- a/src/mame/drivers/atari_s1.cpp
+++ b/src/mame/drivers/atari_s1.cpp
@@ -114,45 +114,48 @@ private:
required_ioport_array<10> m_switch;
};
-ADDRESS_MAP_START(atari_s1_state::atari_s1_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x00ff) AM_RAM AM_SHARE("ram")
- AM_RANGE(0x1080, 0x1083) AM_READWRITE(m1080_r,m1080_w)
- AM_RANGE(0x1084, 0x1087) AM_READWRITE(m1084_r,m1084_w)
- AM_RANGE(0x1088, 0x108b) AM_READWRITE(m1088_r,m1088_w)
- AM_RANGE(0x108c, 0x108f) AM_READWRITE(m108c_r,m108c_w)
- AM_RANGE(0x2000, 0x204f) AM_MIRROR(0x0F80) AM_READ(switch_r) AM_WRITENOP // aavenger ROL 200B causes a spurious write
- AM_RANGE(0x3000, 0x3fff) AM_WRITE(audioen_w) // audio enable
- AM_RANGE(0x4000, 0x4fff) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x5080, 0x508f) AM_WRITE(meter_w) // time2000 only
- AM_RANGE(0x6000, 0x6fff) AM_WRITE(audiores_w) // audio reset
- AM_RANGE(0x7000, 0x7fff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(atari_s1_state::atarians_map) // more ram
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x01ff) AM_RAM AM_SHARE("ram")
- AM_RANGE(0x1080, 0x1083) AM_READWRITE(m1080_r,m1080_w)
- AM_RANGE(0x1084, 0x1087) AM_READWRITE(m1084_r,m1084_w)
- AM_RANGE(0x1088, 0x108b) AM_READWRITE(m1088_r,m1088_w)
- AM_RANGE(0x108c, 0x108f) AM_READWRITE(m108c_r,m108c_w)
- AM_RANGE(0x2000, 0x204f) AM_MIRROR(0x0F80) AM_READ(switch_r)
- AM_RANGE(0x3000, 0x3fff) AM_WRITE(audioen_w) // audio enable
- AM_RANGE(0x4000, 0x4fff) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x6000, 0x6fff) AM_WRITE(audiores_w) // audio reset
- AM_RANGE(0x7000, 0x7fff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(atari_s1_state::midearth_map)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x01ff) AM_RAM AM_SHARE("ram")
- AM_RANGE(0x1000, 0x11ff) AM_WRITE(midearth_w)
- AM_RANGE(0x2000, 0x204f) AM_MIRROR(0x0F80) AM_READ(switch_r)
- AM_RANGE(0x3000, 0x3fff) AM_WRITE(audioen_w) // audio enable
- AM_RANGE(0x4000, 0x4fff) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x6000, 0x6fff) AM_WRITE(audiores_w) // audio reset
- AM_RANGE(0x7000, 0x7fff) AM_ROM AM_WRITENOP // writes to FFFF due to poor coding at 7FF5
-ADDRESS_MAP_END
+void atari_s1_state::atari_s1_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x00ff).ram().share("ram");
+ map(0x1080, 0x1083).rw(this, FUNC(atari_s1_state::m1080_r), FUNC(atari_s1_state::m1080_w));
+ map(0x1084, 0x1087).rw(this, FUNC(atari_s1_state::m1084_r), FUNC(atari_s1_state::m1084_w));
+ map(0x1088, 0x108b).rw(this, FUNC(atari_s1_state::m1088_r), FUNC(atari_s1_state::m1088_w));
+ map(0x108c, 0x108f).rw(this, FUNC(atari_s1_state::m108c_r), FUNC(atari_s1_state::m108c_w));
+ map(0x2000, 0x204f).mirror(0x0F80).r(this, FUNC(atari_s1_state::switch_r)).nopw(); // aavenger ROL 200B causes a spurious write
+ map(0x3000, 0x3fff).w(this, FUNC(atari_s1_state::audioen_w)); // audio enable
+ map(0x4000, 0x4fff).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x5080, 0x508f).w(this, FUNC(atari_s1_state::meter_w)); // time2000 only
+ map(0x6000, 0x6fff).w(this, FUNC(atari_s1_state::audiores_w)); // audio reset
+ map(0x7000, 0x7fff).rom();
+}
+
+void atari_s1_state::atarians_map(address_map &map)
+{ // more ram
+ map.global_mask(0x7fff);
+ map(0x0000, 0x01ff).ram().share("ram");
+ map(0x1080, 0x1083).rw(this, FUNC(atari_s1_state::m1080_r), FUNC(atari_s1_state::m1080_w));
+ map(0x1084, 0x1087).rw(this, FUNC(atari_s1_state::m1084_r), FUNC(atari_s1_state::m1084_w));
+ map(0x1088, 0x108b).rw(this, FUNC(atari_s1_state::m1088_r), FUNC(atari_s1_state::m1088_w));
+ map(0x108c, 0x108f).rw(this, FUNC(atari_s1_state::m108c_r), FUNC(atari_s1_state::m108c_w));
+ map(0x2000, 0x204f).mirror(0x0F80).r(this, FUNC(atari_s1_state::switch_r));
+ map(0x3000, 0x3fff).w(this, FUNC(atari_s1_state::audioen_w)); // audio enable
+ map(0x4000, 0x4fff).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x6000, 0x6fff).w(this, FUNC(atari_s1_state::audiores_w)); // audio reset
+ map(0x7000, 0x7fff).rom();
+}
+
+void atari_s1_state::midearth_map(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x01ff).ram().share("ram");
+ map(0x1000, 0x11ff).w(this, FUNC(atari_s1_state::midearth_w));
+ map(0x2000, 0x204f).mirror(0x0F80).r(this, FUNC(atari_s1_state::switch_r));
+ map(0x3000, 0x3fff).w(this, FUNC(atari_s1_state::audioen_w)); // audio enable
+ map(0x4000, 0x4fff).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x6000, 0x6fff).w(this, FUNC(atari_s1_state::audiores_w)); // audio reset
+ map(0x7000, 0x7fff).rom().nopw(); // writes to FFFF due to poor coding at 7FF5
+}
static INPUT_PORTS_START( atari_s1 )
PORT_START("SWITCH.0") // 2000-2007