summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/taotaido.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/taotaido.cpp')
-rw-r--r--src/mame/drivers/taotaido.cpp63
1 files changed, 33 insertions, 30 deletions
diff --git a/src/mame/drivers/taotaido.cpp b/src/mame/drivers/taotaido.cpp
index c80d79e92c1..82c4a436742 100644
--- a/src/mame/drivers/taotaido.cpp
+++ b/src/mame/drivers/taotaido.cpp
@@ -96,23 +96,24 @@ WRITE8_MEMBER(taotaido_state::unknown_output_w)
// Bits 5, 4 also used?
}
-ADDRESS_MAP_START(taotaido_state::main_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgram") // bg ram?
- AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_SHARE("spriteram") // sprite ram
- AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("spriteram2") // sprite tile lookup ram
- AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // main ram
- AM_RANGE(0xffc000, 0xffcfff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // palette ram
- AM_RANGE(0xffe000, 0xffe3ff) AM_RAM AM_SHARE("scrollram") // rowscroll / rowselect / scroll ram
- AM_RANGE(0xffff80, 0xffff9f) AM_DEVREADWRITE8("io1", vs9209_device, read, write, 0x00ff)
- AM_RANGE(0xffffa0, 0xffffbf) AM_DEVREADWRITE8("io2", vs9209_device, read, write, 0x00ff)
- AM_RANGE(0xffff00, 0xffff0f) AM_WRITE(tileregs_w)
- AM_RANGE(0xffff10, 0xffff11) AM_WRITENOP // unknown
- AM_RANGE(0xffff20, 0xffff21) AM_WRITENOP // unknown - flip screen related
- AM_RANGE(0xffff40, 0xffff47) AM_WRITE(sprite_character_bank_select_w)
- AM_RANGE(0xffffc0, 0xffffc1) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff) // seems right
- AM_RANGE(0xffffe0, 0xffffe1) AM_READ(pending_command_r) // guess - seems to be needed for all the sounds to work
-ADDRESS_MAP_END
+void taotaido_state::main_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom();
+ map(0x800000, 0x803fff).ram().w(this, FUNC(taotaido_state::bgvideoram_w)).share("bgram"); // bg ram?
+ map(0xa00000, 0xa01fff).ram().share("spriteram"); // sprite ram
+ map(0xc00000, 0xc0ffff).ram().share("spriteram2"); // sprite tile lookup ram
+ map(0xfe0000, 0xfeffff).ram(); // main ram
+ map(0xffc000, 0xffcfff).ram().w("palette", FUNC(palette_device::write16)).share("palette"); // palette ram
+ map(0xffe000, 0xffe3ff).ram().share("scrollram"); // rowscroll / rowselect / scroll ram
+ map(0xffff80, 0xffff9f).rw("io1", FUNC(vs9209_device::read), FUNC(vs9209_device::write)).umask16(0x00ff);
+ map(0xffffa0, 0xffffbf).rw("io2", FUNC(vs9209_device::read), FUNC(vs9209_device::write)).umask16(0x00ff);
+ map(0xffff00, 0xffff0f).w(this, FUNC(taotaido_state::tileregs_w));
+ map(0xffff10, 0xffff11).nopw(); // unknown
+ map(0xffff20, 0xffff21).nopw(); // unknown - flip screen related
+ map(0xffff40, 0xffff47).w(this, FUNC(taotaido_state::sprite_character_bank_select_w));
+ map(0xffffc1, 0xffffc1).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // seems right
+ map(0xffffe0, 0xffffe1).r(this, FUNC(taotaido_state::pending_command_r)); // guess - seems to be needed for all the sounds to work
+}
/* sound cpu - same as aerofgt */
@@ -122,19 +123,21 @@ WRITE8_MEMBER(taotaido_state::sh_bankswitch_w)
membank("soundbank")->set_entry(data & 0x03);
}
-ADDRESS_MAP_START(taotaido_state::sound_map)
- AM_RANGE(0x0000, 0x77ff) AM_ROM
- AM_RANGE(0x7800, 0x7fff) AM_RAM
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("soundbank")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(taotaido_state::sound_port_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
- AM_RANGE(0x04, 0x04) AM_WRITE(sh_bankswitch_w)
- AM_RANGE(0x08, 0x08) AM_DEVWRITE("soundlatch", generic_latch_8_device, acknowledge_w)
- AM_RANGE(0x0c, 0x0c) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
-ADDRESS_MAP_END
+void taotaido_state::sound_map(address_map &map)
+{
+ map(0x0000, 0x77ff).rom();
+ map(0x7800, 0x7fff).ram();
+ map(0x8000, 0xffff).bankr("soundbank");
+}
+
+void taotaido_state::sound_port_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x03).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write));
+ map(0x04, 0x04).w(this, FUNC(taotaido_state::sh_bankswitch_w));
+ map(0x08, 0x08).w(m_soundlatch, FUNC(generic_latch_8_device::acknowledge_w));
+ map(0x0c, 0x0c).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+}
static INPUT_PORTS_START( taotaido )