summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/xexex.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/xexex.cpp')
-rw-r--r--src/mame/drivers/xexex.cpp86
1 files changed, 44 insertions, 42 deletions
diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp
index 0f9e81c6d56..f2e24ba08d5 100644
--- a/src/mame/drivers/xexex.cpp
+++ b/src/mame/drivers/xexex.cpp
@@ -334,59 +334,61 @@ TIMER_DEVICE_CALLBACK_MEMBER(xexex_state::xexex_interrupt)
}
-ADDRESS_MAP_START(xexex_state::main_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_SHARE("workram") // work RAM
+void xexex_state::main_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x080000, 0x08ffff).ram().share("workram"); // work RAM
#if XE_SKIPIDLE
- AM_RANGE(0x080014, 0x080015) AM_READ(xexex_waitskip_r) // helps sound CPU by giving back control as early as possible
+ map(0x080014, 0x080015).r(this, FUNC(xexex_state::xexex_waitskip_r)); // helps sound CPU by giving back control as early as possible
#endif
- AM_RANGE(0x090000, 0x097fff) AM_RAM AM_SHARE("spriteram") // K053247 sprite RAM
- AM_RANGE(0x098000, 0x09ffff) AM_READWRITE(spriteram_mirror_r, spriteram_mirror_w) // K053247 sprite RAM mirror read
- AM_RANGE(0x0c0000, 0x0c003f) AM_DEVWRITE("k056832", k056832_device, word_w) // VACSET (K054157)
- AM_RANGE(0x0c2000, 0x0c2007) AM_DEVWRITE("k053246", k053247_device, k053246_word_w) // OBJSET1
- AM_RANGE(0x0c4000, 0x0c4001) AM_DEVREAD("k053246", k053247_device, k053246_word_r) // Passthrough to sprite roms
- AM_RANGE(0x0c6000, 0x0c7fff) AM_DEVREADWRITE("k053250", k053250_device, ram_r, ram_w) // K053250 "road" RAM
- AM_RANGE(0x0c8000, 0x0c800f) AM_DEVREADWRITE("k053250", k053250_device, reg_r, reg_w)
- AM_RANGE(0x0ca000, 0x0ca01f) AM_DEVWRITE("k054338", k054338_device, word_w) // CLTC
- AM_RANGE(0x0cc000, 0x0cc01f) AM_DEVWRITE("k053251", k053251_device, lsb_w) // priority encoder
+ map(0x090000, 0x097fff).ram().share("spriteram"); // K053247 sprite RAM
+ map(0x098000, 0x09ffff).rw(this, FUNC(xexex_state::spriteram_mirror_r), FUNC(xexex_state::spriteram_mirror_w)); // K053247 sprite RAM mirror read
+ map(0x0c0000, 0x0c003f).w(m_k056832, FUNC(k056832_device::word_w)); // VACSET (K054157)
+ map(0x0c2000, 0x0c2007).w(m_k053246, FUNC(k053247_device::k053246_word_w)); // OBJSET1
+ map(0x0c4000, 0x0c4001).r(m_k053246, FUNC(k053247_device::k053246_word_r)); // Passthrough to sprite roms
+ map(0x0c6000, 0x0c7fff).rw(m_k053250, FUNC(k053250_device::ram_r), FUNC(k053250_device::ram_w)); // K053250 "road" RAM
+ map(0x0c8000, 0x0c800f).rw(m_k053250, FUNC(k053250_device::reg_r), FUNC(k053250_device::reg_w));
+ map(0x0ca000, 0x0ca01f).w(m_k054338, FUNC(k054338_device::word_w)); // CLTC
+ map(0x0cc000, 0x0cc01f).w(m_k053251, FUNC(k053251_device::lsb_w)); // priority encoder
// AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff) // CCU
- AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
- AM_RANGE(0x0d6000, 0x0d601f) AM_DEVICE8("k054321", k054321_device, main_map, 0x00ff)
- AM_RANGE(0x0d8000, 0x0d8007) AM_DEVWRITE("k056832", k056832_device, b_word_w) // VSCCS regs
- AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1")
- AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2")
- AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x0dc002, 0x0dc003) AM_READ_PORT("EEPROM")
- AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r, control2_w)
- AM_RANGE(0x100000, 0x17ffff) AM_ROM
- AM_RANGE(0x180000, 0x181fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w)
- AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w)
- AM_RANGE(0x190000, 0x191fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) // Passthrough to tile roms
- AM_RANGE(0x1a0000, 0x1a1fff) AM_DEVREAD("k053250", k053250_device, rom_r)
- AM_RANGE(0x1b0000, 0x1b1fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
+ map(0x0d4000, 0x0d4001).w(this, FUNC(xexex_state::sound_irq_w));
+ map(0x0d6000, 0x0d601f).m(m_k054321, FUNC(k054321_device::main_map)).umask16(0x00ff);
+ map(0x0d8000, 0x0d8007).w(m_k056832, FUNC(k056832_device::b_word_w)); // VSCCS regs
+ map(0x0da000, 0x0da001).portr("P1");
+ map(0x0da002, 0x0da003).portr("P2");
+ map(0x0dc000, 0x0dc001).portr("SYSTEM");
+ map(0x0dc002, 0x0dc003).portr("EEPROM");
+ map(0x0de000, 0x0de001).rw(this, FUNC(xexex_state::control2_r), FUNC(xexex_state::control2_w));
+ map(0x100000, 0x17ffff).rom();
+ map(0x180000, 0x181fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w));
+ map(0x182000, 0x183fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w));
+ map(0x190000, 0x191fff).r(m_k056832, FUNC(k056832_device::rom_word_r)); // Passthrough to tile roms
+ map(0x1a0000, 0x1a1fff).r(m_k053250, FUNC(k053250_device::rom_r));
+ map(0x1b0000, 0x1b1fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
#if XE_DEBUG
- AM_RANGE(0x0c0000, 0x0c003f) AM_DEVREAD("k056832", k056832_device, word_r)
- AM_RANGE(0x0c2000, 0x0c2007) AM_DEVREAD("k053246", k053247_device, k053246_reg_word_r)
- AM_RANGE(0x0ca000, 0x0ca01f) AM_DEVREAD("k054338", k054338_device, word_r)
- AM_RANGE(0x0cc000, 0x0cc01f) AM_DEVREAD("k053251", k053251_device, lsb_r)
- AM_RANGE(0x0d8000, 0x0d8007) AM_DEVREAD("k056832", k056832_device, b_word_r)
+ map(0x0c0000, 0x0c003f).r(m_k056832, FUNC(k056832_device::word_r));
+ map(0x0c2000, 0x0c2007).r(m_k053246, FUNC(k053247_device::k053246_reg_word_r));
+ map(0x0ca000, 0x0ca01f).r(m_k054338, FUNC(k054338_device::word_r));
+ map(0x0cc000, 0x0cc01f).r(m_k053251, FUNC(k053251_device::lsb_r));
+ map(0x0d8000, 0x0d8007).r(m_k056832, FUNC(k056832_device::b_word_r));
#endif
-ADDRESS_MAP_END
+}
-ADDRESS_MAP_START(xexex_state::sound_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("z80bank")
- AM_RANGE(0xc000, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xe22f) AM_DEVREADWRITE("k054539", k054539_device, read, write)
- AM_RANGE(0xec00, 0xec01) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xf000, 0xf003) AM_DEVICE("k054321", k054321_device, sound_map)
- AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
-ADDRESS_MAP_END
+void xexex_state::sound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("z80bank");
+ map(0xc000, 0xdfff).ram();
+ map(0xe000, 0xe22f).rw(m_k054539, FUNC(k054539_device::read), FUNC(k054539_device::write));
+ map(0xec00, 0xec01).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xf000, 0xf003).m(m_k054321, FUNC(k054321_device::sound_map));
+ map(0xf800, 0xf800).w(this, FUNC(xexex_state::sound_bankswitch_w));
+}
static INPUT_PORTS_START( xexex )