summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/williams.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/williams.cpp')
-rw-r--r--src/mame/audio/williams.cpp103
1 files changed, 54 insertions, 49 deletions
diff --git a/src/mame/audio/williams.cpp b/src/mame/audio/williams.cpp
index 74bf40c525a..63877527def 100644
--- a/src/mame/audio/williams.cpp
+++ b/src/mame/audio/williams.cpp
@@ -159,15 +159,16 @@ WRITE8_MEMBER(williams_cvsd_sound_device::cvsd_clock_set_w)
// audio CPU map
//-------------------------------------------------
-ADDRESS_MAP_START(williams_cvsd_sound_device::williams_cvsd_map)
- AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM
- AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x1ffe) AM_DEVREADWRITE("ym2151", ym2151_device, read, write)
- AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE("pia", pia6821_device, read, write)
- AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x07ff) AM_WRITE(cvsd_digit_clock_clear_w)
- AM_RANGE(0x6800, 0x6800) AM_MIRROR(0x07ff) AM_WRITE(cvsd_clock_set_w)
- AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x07ff) AM_WRITE(bank_select_w)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank")
-ADDRESS_MAP_END
+void williams_cvsd_sound_device::williams_cvsd_map(address_map &map)
+{
+ map(0x0000, 0x07ff).mirror(0x1800).ram();
+ map(0x2000, 0x2001).mirror(0x1ffe).rw("ym2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0x4000, 0x4003).mirror(0x1ffc).rw("pia", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x6000, 0x6000).mirror(0x07ff).w(this, FUNC(williams_cvsd_sound_device::cvsd_digit_clock_clear_w));
+ map(0x6800, 0x6800).mirror(0x07ff).w(this, FUNC(williams_cvsd_sound_device::cvsd_clock_set_w));
+ map(0x7800, 0x7800).mirror(0x07ff).w(this, FUNC(williams_cvsd_sound_device::bank_select_w));
+ map(0x8000, 0xffff).bankr("rombank");
+}
//-------------------------------------------------
@@ -455,36 +456,38 @@ WRITE8_MEMBER(williams_narc_sound_device::cvsd_clock_set_w)
// master CPU map
//-------------------------------------------------
-ADDRESS_MAP_START(williams_narc_sound_device::williams_narc_master_map)
- AM_RANGE(0x0000, 0x1fff) AM_RAM
- AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x03fe) AM_DEVREADWRITE("ym2151", ym2151_device, read, write)
- AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x03ff) AM_WRITE(master_talkback_w)
- AM_RANGE(0x2c00, 0x2c00) AM_MIRROR(0x03ff) AM_WRITE(command2_w)
- AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x03ff) AM_DEVWRITE("dac1", dac_byte_interface, write)
- AM_RANGE(0x3400, 0x3400) AM_MIRROR(0x03ff) AM_READ(command_r)
- AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x03ff) AM_WRITE(master_bank_select_w)
- AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x03ff) AM_WRITE(master_sync_w)
- AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("masterbank")
- AM_RANGE(0xc000, 0xffff) AM_ROMBANK("masterupper")
-ADDRESS_MAP_END
+void williams_narc_sound_device::williams_narc_master_map(address_map &map)
+{
+ map(0x0000, 0x1fff).ram();
+ map(0x2000, 0x2001).mirror(0x03fe).rw("ym2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0x2800, 0x2800).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::master_talkback_w));
+ map(0x2c00, 0x2c00).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::command2_w));
+ map(0x3000, 0x3000).mirror(0x03ff).w("dac1", FUNC(dac_byte_interface::write));
+ map(0x3400, 0x3400).mirror(0x03ff).r(this, FUNC(williams_narc_sound_device::command_r));
+ map(0x3800, 0x3800).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::master_bank_select_w));
+ map(0x3c00, 0x3c00).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::master_sync_w));
+ map(0x4000, 0xbfff).bankr("masterbank");
+ map(0xc000, 0xffff).bankr("masterupper");
+}
//-------------------------------------------------
// slave CPU map
//-------------------------------------------------
-ADDRESS_MAP_START(williams_narc_sound_device::williams_narc_slave_map)
- AM_RANGE(0x0000, 0x1fff) AM_RAM
- AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x03ff) AM_WRITE(cvsd_clock_set_w)
- AM_RANGE(0x2400, 0x2400) AM_MIRROR(0x03ff) AM_WRITE(cvsd_digit_clock_clear_w)
- AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x03ff) AM_WRITE(slave_talkback_w)
- AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x03ff) AM_DEVWRITE("dac2", dac_byte_interface, write)
- AM_RANGE(0x3400, 0x3400) AM_MIRROR(0x03ff) AM_READ(command2_r)
- AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x03ff) AM_WRITE(slave_bank_select_w)
- AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x03ff) AM_WRITE(slave_sync_w)
- AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("slavebank")
- AM_RANGE(0xc000, 0xffff) AM_ROMBANK("slaveupper")
-ADDRESS_MAP_END
+void williams_narc_sound_device::williams_narc_slave_map(address_map &map)
+{
+ map(0x0000, 0x1fff).ram();
+ map(0x2000, 0x2000).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::cvsd_clock_set_w));
+ map(0x2400, 0x2400).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::cvsd_digit_clock_clear_w));
+ map(0x2800, 0x2800).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::slave_talkback_w));
+ map(0x3000, 0x3000).mirror(0x03ff).w("dac2", FUNC(dac_byte_interface::write));
+ map(0x3400, 0x3400).mirror(0x03ff).r(this, FUNC(williams_narc_sound_device::command2_r));
+ map(0x3800, 0x3800).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::slave_bank_select_w));
+ map(0x3c00, 0x3c00).mirror(0x03ff).w(this, FUNC(williams_narc_sound_device::slave_sync_w));
+ map(0x4000, 0xbfff).bankr("slavebank");
+ map(0xc000, 0xffff).bankr("slaveupper");
+}
//-------------------------------------------------
@@ -717,28 +720,30 @@ WRITE8_MEMBER(williams_adpcm_sound_device::talkback_w)
// audio CPU map
//-------------------------------------------------
-ADDRESS_MAP_START(williams_adpcm_sound_device::williams_adpcm_map)
- AM_RANGE(0x0000, 0x1fff) AM_RAM
- AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x03ff) AM_WRITE(bank_select_w)
- AM_RANGE(0x2400, 0x2401) AM_MIRROR(0x03fe) AM_DEVREADWRITE("ym2151", ym2151_device, read, write)
- AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x03ff) AM_DEVWRITE("dac", dac_byte_interface, write)
- AM_RANGE(0x2c00, 0x2c00) AM_MIRROR(0x03ff) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x03ff) AM_READ(command_r)
- AM_RANGE(0x3400, 0x3400) AM_MIRROR(0x03ff) AM_WRITE(oki6295_bank_select_w)
- AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x03ff) AM_WRITE(talkback_w)
- AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("rombank")
- AM_RANGE(0xc000, 0xffff) AM_ROMBANK("romupper")
-ADDRESS_MAP_END
+void williams_adpcm_sound_device::williams_adpcm_map(address_map &map)
+{
+ map(0x0000, 0x1fff).ram();
+ map(0x2000, 0x2000).mirror(0x03ff).w(this, FUNC(williams_adpcm_sound_device::bank_select_w));
+ map(0x2400, 0x2401).mirror(0x03fe).rw("ym2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0x2800, 0x2800).mirror(0x03ff).w("dac", FUNC(dac_byte_interface::write));
+ map(0x2c00, 0x2c00).mirror(0x03ff).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x3000, 0x3000).mirror(0x03ff).r(this, FUNC(williams_adpcm_sound_device::command_r));
+ map(0x3400, 0x3400).mirror(0x03ff).w(this, FUNC(williams_adpcm_sound_device::oki6295_bank_select_w));
+ map(0x3c00, 0x3c00).mirror(0x03ff).w(this, FUNC(williams_adpcm_sound_device::talkback_w));
+ map(0x4000, 0xbfff).bankr("rombank");
+ map(0xc000, 0xffff).bankr("romupper");
+}
//-------------------------------------------------
// OKI6295 map
//-------------------------------------------------
-ADDRESS_MAP_START(williams_adpcm_sound_device::williams_adpcm_oki_map)
- AM_RANGE(0x00000, 0x1ffff) AM_ROMBANK("okibank")
- AM_RANGE(0x20000, 0x3ffff) AM_ROM AM_REGION("oki", 0x60000)
-ADDRESS_MAP_END
+void williams_adpcm_sound_device::williams_adpcm_oki_map(address_map &map)
+{
+ map(0x00000, 0x1ffff).bankr("okibank");
+ map(0x20000, 0x3ffff).rom().region("oki", 0x60000);
+}
//-------------------------------------------------