summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/taito.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/taito.cpp')
-rw-r--r--src/mame/drivers/taito.cpp170
1 files changed, 88 insertions, 82 deletions
diff --git a/src/mame/drivers/taito.cpp b/src/mame/drivers/taito.cpp
index 5e5bb110bac..f923b6996e2 100644
--- a/src/mame/drivers/taito.cpp
+++ b/src/mame/drivers/taito.cpp
@@ -104,88 +104,94 @@ private:
};
-ADDRESS_MAP_START(taito_state::taito_map)
- AM_RANGE(0x0000, 0x27ff) AM_ROM AM_REGION("roms", 0)
- AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x0080) AM_READ_PORT("X0")
- AM_RANGE(0x2801, 0x2801) AM_MIRROR(0x0080) AM_READ_PORT("X1")
- AM_RANGE(0x2802, 0x2802) AM_MIRROR(0x0080) AM_READ_PORT("X2")
- AM_RANGE(0x2803, 0x2803) AM_MIRROR(0x0080) AM_READ_PORT("X3")
- AM_RANGE(0x2804, 0x2804) AM_MIRROR(0x0080) AM_READ_PORT("X4")
- AM_RANGE(0x2805, 0x2805) AM_MIRROR(0x0080) AM_READ_PORT("X5")
- AM_RANGE(0x2806, 0x2806) AM_MIRROR(0x0080) AM_READ_PORT("X6")
- AM_RANGE(0x2807, 0x2807) AM_MIRROR(0x0080) AM_READ_PORT("X7")
- AM_RANGE(0x2808, 0x2808) AM_MIRROR(0x0080) AM_READ_PORT("X8")
- AM_RANGE(0x2838, 0x2838) AM_MIRROR(0x0080) AM_READ_PORT("X0")
- AM_RANGE(0x2839, 0x2839) AM_MIRROR(0x0080) AM_READ_PORT("X1")
- AM_RANGE(0x283a, 0x283a) AM_MIRROR(0x0080) AM_READ_PORT("X2")
- AM_RANGE(0x283b, 0x283b) AM_MIRROR(0x0080) AM_READ_PORT("X3")
- AM_RANGE(0x283c, 0x283c) AM_MIRROR(0x0080) AM_READ_PORT("X4")
- AM_RANGE(0x283d, 0x283d) AM_MIRROR(0x0080) AM_READ_PORT("X5")
- AM_RANGE(0x283e, 0x283e) AM_MIRROR(0x0080) AM_READ_PORT("X6")
- AM_RANGE(0x283f, 0x283f) AM_MIRROR(0x0080) AM_READ_PORT("X7")
- AM_RANGE(0x4000, 0x407f) AM_RAM
- AM_RANGE(0x4080, 0x408f) AM_RAM AM_SHARE("ram")
- AM_RANGE(0x4090, 0x409f) AM_READWRITE(io_r,io_w)
- AM_RANGE(0x40a0, 0x40ff) AM_RAM
- AM_RANGE(0x4800, 0x48ff) AM_ROM AM_REGION("roms", 0x2000)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(taito_state::taito_sub_map)
- ADDRESS_MAP_GLOBAL_MASK(0x1fff)
- AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
- AM_RANGE(0x0400, 0x0403) AM_DEVREADWRITE("pia", pia6821_device, read, write)
- AM_RANGE(0x0800, 0x1fff) AM_ROM AM_REGION("cpu2", 0x0800)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(taito_state::taito_sub_map2)
- ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
- AM_RANGE(0x0400, 0x0403) AM_DEVREADWRITE("pia", pia6821_device, read, write)
- AM_RANGE(0x2000, 0x3fff) AM_ROM AM_REGION("cpu2", 0x2000)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(taito_state::taito_sub_map5)
- ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
- AM_RANGE(0x0400, 0x0403) AM_DEVREADWRITE("pia", pia6821_device, read, write)
- AM_RANGE(0x1000, 0x1000) AM_DEVWRITE("aysnd_0", ay8910_device, address_w)
- AM_RANGE(0x1003, 0x1003) AM_DEVWRITE("aysnd_0", ay8910_device, address_w)
- AM_RANGE(0x1007, 0x1007) AM_DEVREAD("aysnd_0", ay8910_device, data_r)
- AM_RANGE(0x100c, 0x100c) AM_DEVWRITE("aysnd_1", ay8910_device, address_w)
- AM_RANGE(0x100a, 0x100a) AM_DEVWRITE("aysnd_0", ay8910_device, data_w)
- AM_RANGE(0x100b, 0x100b) AM_DEVWRITE("aysnd_0", ay8910_device, data_w)
- AM_RANGE(0x100d, 0x100d) AM_DEVREAD("aysnd_1", ay8910_device, data_r)
- AM_RANGE(0x100e, 0x100e) AM_DEVWRITE("aysnd_1", ay8910_device, data_w)
- AM_RANGE(0x2000, 0x7fff) AM_ROM AM_REGION("cpu2", 0x2000)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(taito_state::shock_map)
- ADDRESS_MAP_GLOBAL_MASK(0x1fff)
- AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("roms", 0)
- AM_RANGE(0x1000, 0x100f) AM_RAM AM_SHARE("ram")
- AM_RANGE(0x1010, 0x101f) AM_READWRITE(io_r,io_w)
- AM_RANGE(0x1020, 0x10ff) AM_RAM
- AM_RANGE(0x1400, 0x1400) AM_READ_PORT("X0")
- AM_RANGE(0x1401, 0x1401) AM_READ_PORT("X1")
- AM_RANGE(0x1402, 0x1402) AM_READ_PORT("X2")
- AM_RANGE(0x1404, 0x1404) AM_READ_PORT("X4")
- AM_RANGE(0x1405, 0x1405) AM_READ_PORT("X5")
- AM_RANGE(0x1406, 0x1406) AM_READ_PORT("X6")
- AM_RANGE(0x14d8, 0x14d8) AM_READ_PORT("X0")
- AM_RANGE(0x14d9, 0x14d9) AM_READ_PORT("X1")
- AM_RANGE(0x14da, 0x14da) AM_READ_PORT("X2")
- AM_RANGE(0x14db, 0x14db) AM_READ_PORT("X3")
- AM_RANGE(0x14dc, 0x14dc) AM_READ_PORT("X4")
- AM_RANGE(0x14dd, 0x14dd) AM_READ_PORT("X5")
- AM_RANGE(0x1800, 0x1bff) AM_ROM AM_REGION("roms", 0x1800)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(taito_state::shock_sub_map)
- ADDRESS_MAP_GLOBAL_MASK(0x0fff)
- AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
- AM_RANGE(0x0400, 0x0403) AM_DEVREADWRITE("pia", pia6821_device, read, write)
- AM_RANGE(0x0800, 0x0fff) AM_ROM AM_REGION("cpu2", 0)
-ADDRESS_MAP_END
+void taito_state::taito_map(address_map &map)
+{
+ map(0x0000, 0x27ff).rom().region("roms", 0);
+ map(0x2800, 0x2800).mirror(0x0080).portr("X0");
+ map(0x2801, 0x2801).mirror(0x0080).portr("X1");
+ map(0x2802, 0x2802).mirror(0x0080).portr("X2");
+ map(0x2803, 0x2803).mirror(0x0080).portr("X3");
+ map(0x2804, 0x2804).mirror(0x0080).portr("X4");
+ map(0x2805, 0x2805).mirror(0x0080).portr("X5");
+ map(0x2806, 0x2806).mirror(0x0080).portr("X6");
+ map(0x2807, 0x2807).mirror(0x0080).portr("X7");
+ map(0x2808, 0x2808).mirror(0x0080).portr("X8");
+ map(0x2838, 0x2838).mirror(0x0080).portr("X0");
+ map(0x2839, 0x2839).mirror(0x0080).portr("X1");
+ map(0x283a, 0x283a).mirror(0x0080).portr("X2");
+ map(0x283b, 0x283b).mirror(0x0080).portr("X3");
+ map(0x283c, 0x283c).mirror(0x0080).portr("X4");
+ map(0x283d, 0x283d).mirror(0x0080).portr("X5");
+ map(0x283e, 0x283e).mirror(0x0080).portr("X6");
+ map(0x283f, 0x283f).mirror(0x0080).portr("X7");
+ map(0x4000, 0x407f).ram();
+ map(0x4080, 0x408f).ram().share("ram");
+ map(0x4090, 0x409f).rw(this, FUNC(taito_state::io_r), FUNC(taito_state::io_w));
+ map(0x40a0, 0x40ff).ram();
+ map(0x4800, 0x48ff).rom().region("roms", 0x2000);
+}
+
+void taito_state::taito_sub_map(address_map &map)
+{
+ map.global_mask(0x1fff);
+ map(0x0000, 0x007f).ram(); // internal to the cpu
+ map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x0800, 0x1fff).rom().region("cpu2", 0x0800);
+}
+
+void taito_state::taito_sub_map2(address_map &map)
+{
+ map.global_mask(0x3fff);
+ map(0x0000, 0x007f).ram(); // internal to the cpu
+ map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x2000, 0x3fff).rom().region("cpu2", 0x2000);
+}
+
+void taito_state::taito_sub_map5(address_map &map)
+{
+ map.global_mask(0x7fff);
+ map(0x0000, 0x007f).ram(); // internal to the cpu
+ map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x1000, 0x1000).w("aysnd_0", FUNC(ay8910_device::address_w));
+ map(0x1003, 0x1003).w("aysnd_0", FUNC(ay8910_device::address_w));
+ map(0x1007, 0x1007).r("aysnd_0", FUNC(ay8910_device::data_r));
+ map(0x100c, 0x100c).w("aysnd_1", FUNC(ay8910_device::address_w));
+ map(0x100a, 0x100a).w("aysnd_0", FUNC(ay8910_device::data_w));
+ map(0x100b, 0x100b).w("aysnd_0", FUNC(ay8910_device::data_w));
+ map(0x100d, 0x100d).r("aysnd_1", FUNC(ay8910_device::data_r));
+ map(0x100e, 0x100e).w("aysnd_1", FUNC(ay8910_device::data_w));
+ map(0x2000, 0x7fff).rom().region("cpu2", 0x2000);
+}
+
+void taito_state::shock_map(address_map &map)
+{
+ map.global_mask(0x1fff);
+ map(0x0000, 0x0fff).rom().region("roms", 0);
+ map(0x1000, 0x100f).ram().share("ram");
+ map(0x1010, 0x101f).rw(this, FUNC(taito_state::io_r), FUNC(taito_state::io_w));
+ map(0x1020, 0x10ff).ram();
+ map(0x1400, 0x1400).portr("X0");
+ map(0x1401, 0x1401).portr("X1");
+ map(0x1402, 0x1402).portr("X2");
+ map(0x1404, 0x1404).portr("X4");
+ map(0x1405, 0x1405).portr("X5");
+ map(0x1406, 0x1406).portr("X6");
+ map(0x14d8, 0x14d8).portr("X0");
+ map(0x14d9, 0x14d9).portr("X1");
+ map(0x14da, 0x14da).portr("X2");
+ map(0x14db, 0x14db).portr("X3");
+ map(0x14dc, 0x14dc).portr("X4");
+ map(0x14dd, 0x14dd).portr("X5");
+ map(0x1800, 0x1bff).rom().region("roms", 0x1800);
+}
+
+void taito_state::shock_sub_map(address_map &map)
+{
+ map.global_mask(0x0fff);
+ map(0x0000, 0x007f).ram(); // internal to the cpu
+ map(0x0400, 0x0403).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x0800, 0x0fff).rom().region("cpu2", 0);
+}
static INPUT_PORTS_START( taito )
PORT_START("X0")