summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/madalien.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/madalien.cpp')
-rw-r--r--src/mame/drivers/madalien.cpp74
1 files changed, 38 insertions, 36 deletions
diff --git a/src/mame/drivers/madalien.cpp b/src/mame/drivers/madalien.cpp
index 9d10066ff00..5973d949a07 100644
--- a/src/mame/drivers/madalien.cpp
+++ b/src/mame/drivers/madalien.cpp
@@ -67,42 +67,44 @@ WRITE8_MEMBER(madalien_state::madalien_portB_w)
}
-ADDRESS_MAP_START(madalien_state::main_map)
- AM_RANGE(0x0000, 0x03ff) AM_RAM
-
- AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(madalien_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x6400, 0x67ff) AM_RAM
- AM_RANGE(0x6800, 0x7fff) AM_RAM_WRITE(madalien_charram_w) AM_SHARE("charram")
-
- AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x0ff0) AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE(0x8001, 0x8001) AM_MIRROR(0x0ff0) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
- AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x0ff0) AM_WRITEONLY AM_SHARE("video_control")
- AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x0ff0) AM_WRITE(madalien_output_w)
- AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x0ff0) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x8008, 0x8008) AM_MIRROR(0x07f0) AM_RAM_READ(shift_r) AM_SHARE("shift_hi")
- AM_RANGE(0x8009, 0x8009) AM_MIRROR(0x07f0) AM_RAM_READ(shift_rev_r) AM_SHARE("shift_lo")
- AM_RANGE(0x800b, 0x800b) AM_MIRROR(0x07f0) AM_WRITEONLY AM_SHARE("video_flags")
- AM_RANGE(0x800c, 0x800c) AM_MIRROR(0x07f0) AM_WRITEONLY AM_SHARE("headlight_pos")
- AM_RANGE(0x800d, 0x800d) AM_MIRROR(0x07f0) AM_WRITEONLY AM_SHARE("edge1_pos")
- AM_RANGE(0x800e, 0x800e) AM_MIRROR(0x07f0) AM_WRITEONLY AM_SHARE("edge2_pos")
- AM_RANGE(0x800f, 0x800f) AM_MIRROR(0x07f0) AM_WRITEONLY AM_SHARE("scroll")
-
- AM_RANGE(0x9000, 0x9000) AM_MIRROR(0x0ff0) AM_READ_PORT("PLAYER1")
- AM_RANGE(0x9001, 0x9001) AM_MIRROR(0x0ff0) AM_READ_PORT("DSW")
- AM_RANGE(0x9002, 0x9002) AM_MIRROR(0x0ff0) AM_READ_PORT("PLAYER2")
-
- AM_RANGE(0xa000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(madalien_state::audio_map)
- AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
- AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x1ffc) AM_RAM /* unknown device in an epoxy block, might be tilt detection */
- AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1ffc) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0x8000, 0x8001) AM_MIRROR(0x1ffc) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
- AM_RANGE(0x8002, 0x8002) AM_MIRROR(0x1ffc) AM_DEVWRITE("soundlatch2", generic_latch_8_device, write)
- AM_RANGE(0xf800, 0xffff) AM_ROM
-ADDRESS_MAP_END
+void madalien_state::main_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+
+ map(0x6000, 0x63ff).ram().w(this, FUNC(madalien_state::madalien_videoram_w)).share("videoram");
+ map(0x6400, 0x67ff).ram();
+ map(0x6800, 0x7fff).ram().w(this, FUNC(madalien_state::madalien_charram_w)).share("charram");
+
+ map(0x8000, 0x8000).mirror(0x0ff0).w("crtc", FUNC(mc6845_device::address_w));
+ map(0x8001, 0x8001).mirror(0x0ff0).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
+ map(0x8004, 0x8004).mirror(0x0ff0).writeonly().share("video_control");
+ map(0x8005, 0x8005).mirror(0x0ff0).w(this, FUNC(madalien_state::madalien_output_w));
+ map(0x8006, 0x8006).mirror(0x0ff0).r(m_soundlatch2, FUNC(generic_latch_8_device::read)).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x8008, 0x8008).mirror(0x07f0).ram().r(this, FUNC(madalien_state::shift_r)).share("shift_hi");
+ map(0x8009, 0x8009).mirror(0x07f0).ram().r(this, FUNC(madalien_state::shift_rev_r)).share("shift_lo");
+ map(0x800b, 0x800b).mirror(0x07f0).writeonly().share("video_flags");
+ map(0x800c, 0x800c).mirror(0x07f0).writeonly().share("headlight_pos");
+ map(0x800d, 0x800d).mirror(0x07f0).writeonly().share("edge1_pos");
+ map(0x800e, 0x800e).mirror(0x07f0).writeonly().share("edge2_pos");
+ map(0x800f, 0x800f).mirror(0x07f0).writeonly().share("scroll");
+
+ map(0x9000, 0x9000).mirror(0x0ff0).portr("PLAYER1");
+ map(0x9001, 0x9001).mirror(0x0ff0).portr("DSW");
+ map(0x9002, 0x9002).mirror(0x0ff0).portr("PLAYER2");
+
+ map(0xa000, 0xffff).rom();
+}
+
+
+void madalien_state::audio_map(address_map &map)
+{
+ map(0x0000, 0x03ff).mirror(0x1c00).ram();
+ map(0x6000, 0x6003).mirror(0x1ffc).ram(); /* unknown device in an epoxy block, might be tilt detection */
+ map(0x8000, 0x8000).mirror(0x1ffc).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0x8000, 0x8001).mirror(0x1ffc).w("aysnd", FUNC(ay8910_device::address_data_w));
+ map(0x8002, 0x8002).mirror(0x1ffc).w(m_soundlatch2, FUNC(generic_latch_8_device::write));
+ map(0xf800, 0xffff).rom();
+}
static INPUT_PORTS_START( madalien )