summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/gijoe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/gijoe.cpp')
-rw-r--r--src/mame/drivers/gijoe.cpp68
1 files changed, 35 insertions, 33 deletions
diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp
index 9e2c3a782b8..76387f11e95 100644
--- a/src/mame/drivers/gijoe.cpp
+++ b/src/mame/drivers/gijoe.cpp
@@ -197,41 +197,43 @@ WRITE16_MEMBER(gijoe_state::sound_irq_w)
m_audiocpu->set_input_line(0, HOLD_LINE);
}
-ADDRESS_MAP_START(gijoe_state::gijoe_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x100000, 0x100fff) AM_RAM AM_SHARE("spriteram") // Sprites
- AM_RANGE(0x110000, 0x110007) AM_DEVWRITE("k053246", k053247_device, k053246_word_w)
- AM_RANGE(0x120000, 0x121fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) // Graphic planes
- AM_RANGE(0x122000, 0x123fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) // Graphic planes mirror read
- AM_RANGE(0x130000, 0x131fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) // Passthrough to tile roms
- AM_RANGE(0x160000, 0x160007) AM_DEVWRITE("k056832", k056832_device, b_word_w) // VSCCS (board dependent)
- AM_RANGE(0x170000, 0x170001) AM_WRITENOP // Watchdog
- AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_SHARE("workram") // Main RAM. Spec. 180000-1803ff, 180400-187fff
- AM_RANGE(0x190000, 0x190fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x1a0000, 0x1a001f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
- AM_RANGE(0x1b0000, 0x1b003f) AM_DEVWRITE("k056832", k056832_device, word_w)
- AM_RANGE(0x1c0000, 0x1c001f) AM_DEVICE8("k054321", k054321_device, main_map, 0x00ff)
- AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE(sound_irq_w)
- AM_RANGE(0x1e0000, 0x1e0001) AM_READ_PORT("P1_P2")
- AM_RANGE(0x1e0002, 0x1e0003) AM_READ_PORT("P3_P4")
- AM_RANGE(0x1e4000, 0x1e4001) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x1e4002, 0x1e4003) AM_READ_PORT("START")
- AM_RANGE(0x1e8000, 0x1e8001) AM_READWRITE(control2_r, control2_w)
- AM_RANGE(0x1f0000, 0x1f0001) AM_DEVREAD("k053246", k053247_device, k053246_word_r)
+void gijoe_state::gijoe_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom();
+ map(0x100000, 0x100fff).ram().share("spriteram"); // Sprites
+ map(0x110000, 0x110007).w(m_k053246, FUNC(k053247_device::k053246_word_w));
+ map(0x120000, 0x121fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); // Graphic planes
+ map(0x122000, 0x123fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); // Graphic planes mirror read
+ map(0x130000, 0x131fff).r(m_k056832, FUNC(k056832_device::rom_word_r)); // Passthrough to tile roms
+ map(0x160000, 0x160007).w(m_k056832, FUNC(k056832_device::b_word_w)); // VSCCS (board dependent)
+ map(0x170000, 0x170001).nopw(); // Watchdog
+ map(0x180000, 0x18ffff).ram().share("workram"); // Main RAM. Spec. 180000-1803ff, 180400-187fff
+ map(0x190000, 0x190fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x1a0000, 0x1a001f).w(m_k053251, FUNC(k053251_device::lsb_w));
+ map(0x1b0000, 0x1b003f).w(m_k056832, FUNC(k056832_device::word_w));
+ map(0x1c0000, 0x1c001f).m(m_k054321, FUNC(k054321_device::main_map)).umask16(0x00ff);
+ map(0x1d0000, 0x1d0001).w(this, FUNC(gijoe_state::sound_irq_w));
+ map(0x1e0000, 0x1e0001).portr("P1_P2");
+ map(0x1e0002, 0x1e0003).portr("P3_P4");
+ map(0x1e4000, 0x1e4001).portr("SYSTEM");
+ map(0x1e4002, 0x1e4003).portr("START");
+ map(0x1e8000, 0x1e8001).rw(this, FUNC(gijoe_state::control2_r), FUNC(gijoe_state::control2_w));
+ map(0x1f0000, 0x1f0001).r(m_k053246, FUNC(k053247_device::k053246_word_r));
#if JOE_DEBUG
- AM_RANGE(0x110000, 0x110007) AM_DEVREAD("k053246", k053247_device, k053246_reg_word_r)
- AM_RANGE(0x160000, 0x160007) AM_DEVREAD("k056832", k056832_device, b_word_r)
- AM_RANGE(0x1a0000, 0x1a001f) AM_DEVREAD("k053251", k053251_device, lsb_r)
- AM_RANGE(0x1b0000, 0x1b003f) AM_DEVREAD("k056832", k056832_device, word_r)
+ map(0x110000, 0x110007).r(m_k053246, FUNC(k053247_device::k053246_reg_word_r));
+ map(0x160000, 0x160007).r(m_k056832, FUNC(k056832_device::b_word_r));
+ map(0x1a0000, 0x1a001f).r(m_k053251, FUNC(k053251_device::lsb_r));
+ map(0x1b0000, 0x1b003f).r(m_k056832, FUNC(k056832_device::word_r));
#endif
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(gijoe_state::sound_map)
- AM_RANGE(0xf000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xfa2f) AM_DEVREADWRITE("k054539", k054539_device, read, write)
- AM_RANGE(0xfc00, 0xfc03) AM_DEVICE("k054321", k054321_device, sound_map)
- AM_RANGE(0x0000, 0xefff) AM_ROM
-ADDRESS_MAP_END
+}
+
+void gijoe_state::sound_map(address_map &map)
+{
+ map(0xf000, 0xf7ff).ram();
+ map(0xf800, 0xfa2f).rw(m_k054539, FUNC(k054539_device::read), FUNC(k054539_device::write));
+ map(0xfc00, 0xfc03).m(m_k054321, FUNC(k054321_device::sound_map));
+ map(0x0000, 0xefff).rom();
+}
static INPUT_PORTS_START( gijoe )
PORT_START("START")