summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/majorpkr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/majorpkr.cpp')
-rw-r--r--src/mame/drivers/majorpkr.cpp84
1 files changed, 44 insertions, 40 deletions
diff --git a/src/mame/drivers/majorpkr.cpp b/src/mame/drivers/majorpkr.cpp
index f0271ea12ca..24ec91ec071 100644
--- a/src/mame/drivers/majorpkr.cpp
+++ b/src/mame/drivers/majorpkr.cpp
@@ -742,23 +742,26 @@ WRITE8_MEMBER(majorpkr_state::pulses_w)
* Memory map information *
*************************/
-ADDRESS_MAP_START(majorpkr_state::map)
- AM_RANGE(0x0000, 0xdfff) AM_ROM
- AM_RANGE(0xe000, 0xe7ff) AM_ROMBANK("rom_bank")
- AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xf000, 0xf7ff) AM_DEVICE("palette_bank", address_map_bank_device, amap8)
- AM_RANGE(0xf800, 0xffff) AM_DEVICE("vram_bank", address_map_bank_device, amap8)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(majorpkr_state::palettebanks)
- AM_RANGE(0x0000, 0x1fff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(majorpkr_state::vrambanks)
- AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(fg_vram_w) AM_SHARE("fg_vram")
- AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(bg_vram_w) AM_SHARE("bg_vram")
- AM_RANGE(0x1000, 0x1fff) AM_RAM // spare vram? cleared during boot along with fg and bg
-ADDRESS_MAP_END
+void majorpkr_state::map(address_map &map)
+{
+ map(0x0000, 0xdfff).rom();
+ map(0xe000, 0xe7ff).bankr("rom_bank");
+ map(0xe800, 0xefff).ram().share("nvram");
+ map(0xf000, 0xf7ff).m(m_palette_bank, FUNC(address_map_bank_device::amap8));
+ map(0xf800, 0xffff).m(m_vram_bank, FUNC(address_map_bank_device::amap8));
+}
+
+void majorpkr_state::palettebanks(address_map &map)
+{
+ map(0x0000, 0x1fff).ram().w("palette", FUNC(palette_device::write8)).share("palette");
+}
+
+void majorpkr_state::vrambanks(address_map &map)
+{
+ map(0x0000, 0x07ff).ram().w(this, FUNC(majorpkr_state::fg_vram_w)).share("fg_vram");
+ map(0x0800, 0x0fff).ram().w(this, FUNC(majorpkr_state::bg_vram_w)).share("bg_vram");
+ map(0x1000, 0x1fff).ram(); // spare vram? cleared during boot along with fg and bg
+}
/*
00 W ---> ROM bank.
@@ -781,29 +784,30 @@ ADDRESS_MAP_END
60 W ---> PSG SN76489/96 initialization routines.
(Maybe a leftover for different hardware).
*/
-ADDRESS_MAP_START(majorpkr_state::portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(rom_bank_w)
- AM_RANGE(0x01, 0x01) AM_WRITE(palette_bank_w)
- AM_RANGE(0x02, 0x02) AM_WRITE(vram_bank_w)
-
- AM_RANGE(0x10, 0x10) AM_READ(mux_port2_r) // muxed set of controls.
- AM_RANGE(0x10, 0x10) AM_WRITE(pulses_w) // kind of watchdog on bit4... mech counters on bits 0-1-2-3.
- AM_RANGE(0x11, 0x11) AM_READ_PORT("IN1")
- AM_RANGE(0x11, 0x11) AM_WRITE(mux_sel_w) // multiplexer selector.
- AM_RANGE(0x12, 0x12) AM_READ_PORT("IN2")
- AM_RANGE(0x12, 0x12) AM_WRITE(vidreg_w) // video registers: normal or up down screen.
- AM_RANGE(0x13, 0x13) AM_READ(mux_port_r) // all 4 DIP switches banks multiplexed.
- AM_RANGE(0x13, 0x13) AM_WRITE(lamps_a_w) // lamps a out.
- AM_RANGE(0x14, 0x14) AM_READ_PORT("TEST") // "freeze" switch.
- AM_RANGE(0x14, 0x14) AM_WRITE(lamps_b_w) // lamps b out.
-
- AM_RANGE(0x30, 0x30) AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE(0x31, 0x31) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
-
- AM_RANGE(0x50, 0x50) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x60, 0x60) AM_WRITENOP // leftover from a PSG SN76489/96?...
-ADDRESS_MAP_END
+void majorpkr_state::portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).w(this, FUNC(majorpkr_state::rom_bank_w));
+ map(0x01, 0x01).w(this, FUNC(majorpkr_state::palette_bank_w));
+ map(0x02, 0x02).w(this, FUNC(majorpkr_state::vram_bank_w));
+
+ map(0x10, 0x10).r(this, FUNC(majorpkr_state::mux_port2_r)); // muxed set of controls.
+ map(0x10, 0x10).w(this, FUNC(majorpkr_state::pulses_w)); // kind of watchdog on bit4... mech counters on bits 0-1-2-3.
+ map(0x11, 0x11).portr("IN1");
+ map(0x11, 0x11).w(this, FUNC(majorpkr_state::mux_sel_w)); // multiplexer selector.
+ map(0x12, 0x12).portr("IN2");
+ map(0x12, 0x12).w(this, FUNC(majorpkr_state::vidreg_w)); // video registers: normal or up down screen.
+ map(0x13, 0x13).r(this, FUNC(majorpkr_state::mux_port_r)); // all 4 DIP switches banks multiplexed.
+ map(0x13, 0x13).w(this, FUNC(majorpkr_state::lamps_a_w)); // lamps a out.
+ map(0x14, 0x14).portr("TEST"); // "freeze" switch.
+ map(0x14, 0x14).w(this, FUNC(majorpkr_state::lamps_b_w)); // lamps b out.
+
+ map(0x30, 0x30).w("crtc", FUNC(mc6845_device::address_w));
+ map(0x31, 0x31).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
+
+ map(0x50, 0x50).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x60, 0x60).nopw(); // leftover from a PSG SN76489/96?...
+}
/*************************