summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/zn.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/zn.cpp')
-rw-r--r--src/mame/drivers/zn.cpp384
1 files changed, 205 insertions, 179 deletions
diff --git a/src/mame/drivers/zn.cpp b/src/mame/drivers/zn.cpp
index 21316c400e4..54bbd44e76e 100644
--- a/src/mame/drivers/zn.cpp
+++ b/src/mame/drivers/zn.cpp
@@ -357,22 +357,23 @@ WRITE8_MEMBER(zn_state::coin_w)
}
}
-ADDRESS_MAP_START(zn_state::zn_map)
- AM_RANGE(0x1fa00000, 0x1fa00003) AM_READ_PORT("P1")
- AM_RANGE(0x1fa00100, 0x1fa00103) AM_READ_PORT("P2")
- AM_RANGE(0x1fa00200, 0x1fa00203) AM_READ_PORT("SERVICE")
- AM_RANGE(0x1fa00300, 0x1fa00303) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x1fa10000, 0x1fa10003) AM_READ_PORT("P3")
- AM_RANGE(0x1fa10100, 0x1fa10103) AM_READ_PORT("P4")
- AM_RANGE(0x1fa10200, 0x1fa10203) AM_READ8(boardconfig_r, 0x000000ff)
- AM_RANGE(0x1fa10300, 0x1fa10303) AM_READWRITE8(znsecsel_r, znsecsel_w, 0x000000ff)
- AM_RANGE(0x1fa20000, 0x1fa20003) AM_WRITE8(coin_w, 0x000000ff)
- AM_RANGE(0x1fa30000, 0x1fa30003) AM_NOP /* ?? */
- AM_RANGE(0x1fa40000, 0x1fa40003) AM_READNOP /* ?? */
- AM_RANGE(0x1fa60000, 0x1fa60003) AM_READNOP /* ?? */
- AM_RANGE(0x1faf0000, 0x1faf07ff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xffffffff) /* eeprom */
- AM_RANGE(0x1fb20000, 0x1fb20007) AM_READ16(unknown_r, 0xffffffff)
-ADDRESS_MAP_END
+void zn_state::zn_map(address_map &map)
+{
+ map(0x1fa00000, 0x1fa00003).portr("P1");
+ map(0x1fa00100, 0x1fa00103).portr("P2");
+ map(0x1fa00200, 0x1fa00203).portr("SERVICE");
+ map(0x1fa00300, 0x1fa00303).portr("SYSTEM");
+ map(0x1fa10000, 0x1fa10003).portr("P3");
+ map(0x1fa10100, 0x1fa10103).portr("P4");
+ map(0x1fa10200, 0x1fa10200).r(this, FUNC(zn_state::boardconfig_r));
+ map(0x1fa10300, 0x1fa10300).rw(this, FUNC(zn_state::znsecsel_r), FUNC(zn_state::znsecsel_w));
+ map(0x1fa20000, 0x1fa20000).w(this, FUNC(zn_state::coin_w));
+ map(0x1fa30000, 0x1fa30003).noprw(); /* ?? */
+ map(0x1fa40000, 0x1fa40003).nopr(); /* ?? */
+ map(0x1fa60000, 0x1fa60003).nopr(); /* ?? */
+ map(0x1faf0000, 0x1faf07ff).rw("at28c16", FUNC(at28c16_device::read), FUNC(at28c16_device::write)); /* eeprom */
+ map(0x1fb20000, 0x1fb20007).r(this, FUNC(zn_state::unknown_r));
+}
MACHINE_CONFIG_START(zn_state::zn1_1mb_vram)
@@ -597,17 +598,18 @@ INTERRUPT_GEN_MEMBER(zn_state::qsound_interrupt)
device.execute().set_input_line(0, HOLD_LINE);
}
-ADDRESS_MAP_START(zn_state::coh1000c_map)
- AM_IMPORT_FROM(zn_map)
-
- AM_RANGE(0x1f000000, 0x1f3fffff) AM_ROM AM_REGION("bankedroms", 0)
- AM_RANGE(0x1f400000, 0x1f7fffff) AM_ROMBANK("rombank1")
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(bank_coh1000c_w, 0x000000ff)
- AM_RANGE(0x1fb40010, 0x1fb40013) AM_READ16(capcom_kickharness_r, 0x0000ffff)
- AM_RANGE(0x1fb40020, 0x1fb40023) AM_READ16(capcom_kickharness_r, 0x0000ffff)
- AM_RANGE(0x1fb80000, 0x1fbfffff) AM_ROM AM_REGION("countryrom", 0)
- AM_RANGE(0x1fb60000, 0x1fb60003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x000000ff)
-ADDRESS_MAP_END
+void zn_state::coh1000c_map(address_map &map)
+{
+ zn_map(map);
+
+ map(0x1f000000, 0x1f3fffff).rom().region("bankedroms", 0);
+ map(0x1f400000, 0x1f7fffff).bankr("rombank1");
+ map(0x1fb00000, 0x1fb00000).w(this, FUNC(zn_state::bank_coh1000c_w));
+ map(0x1fb40010, 0x1fb40011).r(this, FUNC(zn_state::capcom_kickharness_r));
+ map(0x1fb40020, 0x1fb40021).r(this, FUNC(zn_state::capcom_kickharness_r));
+ map(0x1fb80000, 0x1fbfffff).rom().region("countryrom", 0);
+ map(0x1fb60000, 0x1fb60000).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+}
MACHINE_START_MEMBER(zn_state,coh1000c)
{
@@ -627,19 +629,21 @@ MACHINE_RESET_MEMBER(zn_state,glpracr)
MACHINE_RESET_CALL_MEMBER(coh1000c);
}
-ADDRESS_MAP_START(zn_state::qsound_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("soundbank") /* banked (contains music data) */
- AM_RANGE(0xd000, 0xd002) AM_DEVWRITE("qsound", qsound_device, qsound_w)
- AM_RANGE(0xd003, 0xd003) AM_WRITE(qsound_bankswitch_w)
- AM_RANGE(0xd007, 0xd007) AM_DEVREAD("qsound", qsound_device, qsound_r)
- AM_RANGE(0xf000, 0xffff) AM_RAM
-ADDRESS_MAP_END
+void zn_state::qsound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("soundbank"); /* banked (contains music data) */
+ map(0xd000, 0xd002).w("qsound", FUNC(qsound_device::qsound_w));
+ map(0xd003, 0xd003).w(this, FUNC(zn_state::qsound_bankswitch_w));
+ map(0xd007, 0xd007).r("qsound", FUNC(qsound_device::qsound_r));
+ map(0xf000, 0xffff).ram();
+}
-ADDRESS_MAP_START(zn_state::qsound_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
-ADDRESS_MAP_END
+void zn_state::qsound_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+}
MACHINE_CONFIG_START(zn_state::coh1000c)
zn1_1mb_vram(config);
@@ -1084,14 +1088,15 @@ WRITE8_MEMBER(zn_state::fx1a_sound_bankswitch_w)
m_soundbank->set_entry( ( data - 1 ) & 0x07 );
}
-ADDRESS_MAP_START(zn_state::coh1000ta_map)
- AM_IMPORT_FROM(zn_map)
+void zn_state::coh1000ta_map(address_map &map)
+{
+ zn_map(map);
- AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("rombank1")
- AM_RANGE(0x1fb40000, 0x1fb40003) AM_WRITE8(bank_coh1000t_w, 0x000000ff)
- AM_RANGE(0x1fb80000, 0x1fb80003) AM_DEVWRITE8("tc0140syt", tc0140syt_device, master_port_w, 0x000000ff)
- AM_RANGE(0x1fb80000, 0x1fb80003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, master_comm_r, master_comm_w, 0x00ff0000)
-ADDRESS_MAP_END
+ map(0x1f000000, 0x1f7fffff).bankr("rombank1");
+ map(0x1fb40000, 0x1fb40000).w(this, FUNC(zn_state::bank_coh1000t_w));
+ map(0x1fb80000, 0x1fb80000).w("tc0140syt", FUNC(tc0140syt_device::master_port_w));
+ map(0x1fb80002, 0x1fb80002).rw("tc0140syt", FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
+}
MACHINE_START_MEMBER(zn_state,coh1000ta)
{
@@ -1107,18 +1112,19 @@ MACHINE_RESET_MEMBER(zn_state,coh1000ta)
m_soundbank->set_entry( 0 );
}
-ADDRESS_MAP_START(zn_state::fx1a_sound_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("soundbank")
- AM_RANGE(0xc000, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
- AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w)
- AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w)
- AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
- AM_RANGE(0xee00, 0xee00) AM_NOP /* ? */
- AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE(fx1a_sound_bankswitch_w)
-ADDRESS_MAP_END
+void zn_state::fx1a_sound_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x7fff).bankr("soundbank");
+ map(0xc000, 0xdfff).ram();
+ map(0xe000, 0xe003).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write));
+ map(0xe200, 0xe200).nopr().w("tc0140syt", FUNC(tc0140syt_device::slave_port_w));
+ map(0xe201, 0xe201).rw("tc0140syt", FUNC(tc0140syt_device::slave_comm_r), FUNC(tc0140syt_device::slave_comm_w));
+ map(0xe400, 0xe403).nopw(); /* pan */
+ map(0xee00, 0xee00).noprw(); /* ? */
+ map(0xf000, 0xf000).nopw(); /* ? */
+ map(0xf200, 0xf200).w(this, FUNC(zn_state::fx1a_sound_bankswitch_w));
+}
MACHINE_CONFIG_START(zn_state::coh1000ta)
@@ -1156,17 +1162,18 @@ READ8_MEMBER(zn_state::fx1b_fram_r)
return m_fx1b_fram[offset];
}
-ADDRESS_MAP_START(zn_state::coh1000tb_map)
- AM_IMPORT_FROM(zn_map)
- AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("rombank1")
- AM_RANGE(0x1fb00000, 0x1fb003ff) AM_READWRITE8(fx1b_fram_r, fx1b_fram_w, 0x00ff00ff)
- AM_RANGE(0x1fb40000, 0x1fb40003) AM_WRITE8(bank_coh1000t_w, 0x000000ff)
- AM_RANGE(0x1fb80000, 0x1fb80003) AM_DEVWRITE16("taito_zoom", taito_zoom_device, reg_data_w, 0x0000ffff)
- AM_RANGE(0x1fb80000, 0x1fb80003) AM_DEVWRITE16("taito_zoom", taito_zoom_device, reg_address_w, 0xffff0000)
- AM_RANGE(0x1fba0000, 0x1fba0003) AM_DEVWRITE16("taito_zoom", taito_zoom_device, sound_irq_w, 0x0000ffff)
- AM_RANGE(0x1fbc0000, 0x1fbc0003) AM_DEVREAD16("taito_zoom", taito_zoom_device, sound_irq_r, 0x0000ffff)
- AM_RANGE(0x1fbe0000, 0x1fbe01ff) AM_DEVREADWRITE8("taito_zoom", taito_zoom_device, shared_ram_r, shared_ram_w, 0x00ff00ff) // M66220FP for comm with the MN10200
-ADDRESS_MAP_END
+void zn_state::coh1000tb_map(address_map &map)
+{
+ zn_map(map);
+ map(0x1f000000, 0x1f7fffff).bankr("rombank1");
+ map(0x1fb00000, 0x1fb003ff).rw(this, FUNC(zn_state::fx1b_fram_r), FUNC(zn_state::fx1b_fram_w)).umask32(0x00ff00ff);
+ map(0x1fb40000, 0x1fb40000).w(this, FUNC(zn_state::bank_coh1000t_w));
+ map(0x1fb80000, 0x1fb80001).w(m_zoom, FUNC(taito_zoom_device::reg_data_w));
+ map(0x1fb80002, 0x1fb80003).w(m_zoom, FUNC(taito_zoom_device::reg_address_w));
+ map(0x1fba0000, 0x1fba0001).w(m_zoom, FUNC(taito_zoom_device::sound_irq_w));
+ map(0x1fbc0000, 0x1fbc0001).r(m_zoom, FUNC(taito_zoom_device::sound_irq_r));
+ map(0x1fbe0000, 0x1fbe01ff).rw(m_zoom, FUNC(taito_zoom_device::shared_ram_r), FUNC(taito_zoom_device::shared_ram_w)).umask32(0x00ff00ff); // M66220FP for comm with the MN10200
+}
DRIVER_INIT_MEMBER(zn_state,coh1000tb)
{
@@ -1436,14 +1443,15 @@ DRIVER_INIT_MEMBER(zn_state,primrag2)
save_item(NAME(m_vt83c461_latch));
}
-ADDRESS_MAP_START(zn_state::coh1000w_map)
- AM_IMPORT_FROM(zn_map)
- AM_RANGE(0x1f000000, 0x1f1fffff) AM_ROM AM_REGION("roms", 0)
- AM_RANGE(0x1f000000, 0x1f000003) AM_WRITENOP
- AM_RANGE(0x1f7e8000, 0x1f7e8003) AM_NOP
- AM_RANGE(0x1f7e4000, 0x1f7e4fff) AM_READWRITE16(vt83c461_16_r, vt83c461_16_w, 0xffffffff)
- AM_RANGE(0x1f7f4000, 0x1f7f4fff) AM_READWRITE16(vt83c461_32_r, vt83c461_32_w, 0xffffffff)
-ADDRESS_MAP_END
+void zn_state::coh1000w_map(address_map &map)
+{
+ zn_map(map);
+ map(0x1f000000, 0x1f1fffff).rom().region("roms", 0);
+ map(0x1f000000, 0x1f000003).nopw();
+ map(0x1f7e8000, 0x1f7e8003).noprw();
+ map(0x1f7e4000, 0x1f7e4fff).rw(this, FUNC(zn_state::vt83c461_16_r), FUNC(zn_state::vt83c461_16_w));
+ map(0x1f7f4000, 0x1f7f4fff).rw(this, FUNC(zn_state::vt83c461_32_r), FUNC(zn_state::vt83c461_32_w));
+}
MACHINE_CONFIG_START(zn_state::coh1000w)
zn1_2mb_vram(config);
@@ -1619,14 +1627,15 @@ WRITE8_MEMBER(zn_state::coh1002e_sound_irq_w)
m_audiocpu->set_input_line(2, HOLD_LINE); // irq 2 on the 68k
}
-ADDRESS_MAP_START(zn_state::coh1002e_map)
- AM_IMPORT_FROM(zn_map)
+void zn_state::coh1002e_map(address_map &map)
+{
+ zn_map(map);
- AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("rombank1")
- AM_RANGE(0x1fa10300, 0x1fa10303) AM_WRITE8(coh1002e_bank_w, 0x000000ff)
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x000000ff)
- AM_RANGE(0x1fb00004, 0x1fb00007) AM_WRITE8(coh1002e_sound_irq_w, 0x000000ff)
-ADDRESS_MAP_END
+ map(0x1f000000, 0x1f7fffff).bankr("rombank1");
+ map(0x1fa10300, 0x1fa10300).w(this, FUNC(zn_state::coh1002e_bank_w));
+ map(0x1fb00000, 0x1fb00000).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x1fb00004, 0x1fb00004).w(this, FUNC(zn_state::coh1002e_sound_irq_w));
+}
MACHINE_START_MEMBER(zn_state,coh1002e)
{
@@ -1642,23 +1651,26 @@ MACHINE_RESET_MEMBER(zn_state,coh1002e)
m_okibank->set_entry( 0 );
}
-ADDRESS_MAP_START(zn_state::psarc_snd_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x080000, 0x0fffff) AM_RAM
- AM_RANGE(0x100000, 0x10001f) AM_DEVREADWRITE8("ymf", ymf271_device, read, write, 0x00ff )
- AM_RANGE(0x180008, 0x180009) AM_DEVREAD8("soundlatch", generic_latch_8_device, read, 0x00ff )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITENOP
- AM_RANGE(0x100020, 0xffffff) AM_WRITENOP
-ADDRESS_MAP_END
+void zn_state::psarc_snd_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x080000, 0x0fffff).ram();
+ map(0x100000, 0x10001f).rw("ymf", FUNC(ymf271_device::read), FUNC(ymf271_device::write)).umask16(0x00ff);
+ map(0x180009, 0x180009).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0x000000, 0x07ffff).nopw();
+ map(0x100020, 0xffffff).nopw();
+}
-ADDRESS_MAP_START(zn_state::beastrzrb_snd_map) // Internal ROM Not dumped
+void zn_state::beastrzrb_snd_map(address_map &map)
+{ // Internal ROM Not dumped
// AM_RANGE(0x0000, 0x0fff) AM_ROM
-ADDRESS_MAP_END
+}
-ADDRESS_MAP_START(zn_state::oki_map)
- AM_RANGE(0x00000, 0x2ffff) AM_ROM
- AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("okibank")
-ADDRESS_MAP_END
+void zn_state::oki_map(address_map &map)
+{
+ map(0x00000, 0x2ffff).rom();
+ map(0x30000, 0x3ffff).bankr("okibank");
+}
MACHINE_CONFIG_START(zn_state::coh1002e)
zn1_2mb_vram(config);
@@ -1791,14 +1803,15 @@ READ16_MEMBER(zn_state::bam2_unk_r)
return 0;
}
-ADDRESS_MAP_START(zn_state::bam2_map)
- AM_IMPORT_FROM(zn_map)
+void zn_state::bam2_map(address_map &map)
+{
+ zn_map(map);
- AM_RANGE(0x1f000000, 0x1f3fffff) AM_ROM AM_REGION("bankedroms", 0)
- AM_RANGE(0x1f400000, 0x1f7fffff) AM_ROMBANK("rombank1")
- AM_RANGE(0x1fa20000, 0x1fa20003) AM_READ16(bam2_unk_r, 0x0000ffff)
- AM_RANGE(0x1fb00000, 0x1fb00007) AM_READWRITE16(bam2_mcu_r, bam2_mcu_w, 0xffffffff)
-ADDRESS_MAP_END
+ map(0x1f000000, 0x1f3fffff).rom().region("bankedroms", 0);
+ map(0x1f400000, 0x1f7fffff).bankr("rombank1");
+ map(0x1fa20000, 0x1fa20001).r(this, FUNC(zn_state::bam2_unk_r));
+ map(0x1fb00000, 0x1fb00007).rw(this, FUNC(zn_state::bam2_mcu_r), FUNC(zn_state::bam2_mcu_w));
+}
DRIVER_INIT_MEMBER(zn_state,bam2)
{
@@ -2101,27 +2114,30 @@ WRITE8_MEMBER(zn_state::nbajamex_backup_w)
-ADDRESS_MAP_START(zn_state::coh1000a_map)
- AM_IMPORT_FROM(zn_map)
- AM_RANGE(0x1fbfff00, 0x1fbfff03) AM_WRITE16(acpsx_00_w, 0xffffffff)
- AM_RANGE(0x1fbfff10, 0x1fbfff13) AM_WRITE16(acpsx_10_w, 0xffff0000)
-ADDRESS_MAP_END
+void zn_state::coh1000a_map(address_map &map)
+{
+ zn_map(map);
+ map(0x1fbfff00, 0x1fbfff03).w(this, FUNC(zn_state::acpsx_00_w));
+ map(0x1fbfff12, 0x1fbfff13).w(this, FUNC(zn_state::acpsx_10_w));
+}
-ADDRESS_MAP_START(zn_state::nbajamex_map)
- AM_IMPORT_FROM(coh1000a_map)
+void zn_state::nbajamex_map(address_map &map)
+{
+ coh1000a_map(map);
- AM_RANGE(0x1f000000, 0x1f7fffff) AM_DEVICE("nbajamex_bankmap", address_map_bank_device, amap32)
- AM_RANGE(0x1fbfff00, 0x1fbfff07) AM_WRITE16(nbajamex_bank_w, 0xffffffff)
- AM_RANGE(0x1fbfff08, 0x1fbfff0b) AM_READ16(nbajamex_08_r, 0xffff)
- AM_RANGE(0x1fbfff80, 0x1fbfff83) AM_READWRITE16(nbajamex_80_r, nbajamex_80_w, 0xffff)
-ADDRESS_MAP_END
+ map(0x1f000000, 0x1f7fffff).m(m_nbajamex_bankmap, FUNC(address_map_bank_device::amap32));
+ map(0x1fbfff00, 0x1fbfff07).w(this, FUNC(zn_state::nbajamex_bank_w));
+ map(0x1fbfff08, 0x1fbfff09).r(this, FUNC(zn_state::nbajamex_08_r));
+ map(0x1fbfff80, 0x1fbfff81).rw(this, FUNC(zn_state::nbajamex_80_r), FUNC(zn_state::nbajamex_80_w));
+}
-ADDRESS_MAP_START(zn_state::nbajamex_bank_map)
- AM_RANGE(0x000000, 0x1fffff) AM_MIRROR(0x800000) AM_ROMBANK("rombank1")
- AM_RANGE(0x200000, 0x207fff) AM_MIRROR(0x800000) AM_WRITE8(nbajamex_backup_w, 0xffffffff)
- AM_RANGE(0x200000, 0x207fff) AM_ROMBANK("sram")
- AM_RANGE(0xa00000, 0xffffff) AM_ROMBANK("rombank2")
-ADDRESS_MAP_END
+void zn_state::nbajamex_bank_map(address_map &map)
+{
+ map(0x000000, 0x1fffff).mirror(0x800000).bankr("rombank1");
+ map(0x200000, 0x207fff).mirror(0x800000).w(this, FUNC(zn_state::nbajamex_backup_w));
+ map(0x200000, 0x207fff).bankr("sram");
+ map(0xa00000, 0xffffff).bankr("rombank2");
+}
DRIVER_INIT_MEMBER(zn_state,nbajamex)
{
@@ -2153,13 +2169,14 @@ DRIVER_INIT_MEMBER(zn_state,jdredd)
save_item(NAME(m_jdredd_gun_mux));
}
-ADDRESS_MAP_START(zn_state::jdredd_map)
- AM_IMPORT_FROM(coh1000a_map)
+void zn_state::jdredd_map(address_map &map)
+{
+ coh1000a_map(map);
- AM_RANGE(0x1f000000, 0x1f1fffff) AM_ROM AM_REGION("roms", 0)
- AM_RANGE(0x1fbfff80, 0x1fbfff8f) AM_DEVREADWRITE16("ata", ata_interface_device, read_cs1, write_cs1, 0xffffffff)
- AM_RANGE(0x1fbfff90, 0x1fbfff9f) AM_DEVREADWRITE16("ata", ata_interface_device, read_cs0, write_cs0, 0xffffffff)
-ADDRESS_MAP_END
+ map(0x1f000000, 0x1f1fffff).rom().region("roms", 0);
+ map(0x1fbfff80, 0x1fbfff8f).rw("ata", FUNC(ata_interface_device::read_cs1), FUNC(ata_interface_device::write_cs1));
+ map(0x1fbfff90, 0x1fbfff9f).rw("ata", FUNC(ata_interface_device::read_cs0), FUNC(ata_interface_device::write_cs0));
+}
MACHINE_CONFIG_START(zn_state::coh1000a)
zn1_2mb_vram(config);
@@ -2327,13 +2344,14 @@ WRITE8_MEMBER(zn_state::coh1001l_bank_w)
m_rombank[0]->set_entry( data & 3 );
}
-ADDRESS_MAP_START(zn_state::coh1001l_map)
- AM_IMPORT_FROM(zn_map)
+void zn_state::coh1001l_map(address_map &map)
+{
+ zn_map(map);
- AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("rombank1")
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_DEVWRITE16("soundlatch16", generic_latch_16_device, write, 0x0000ffff)
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(coh1001l_bank_w, 0x00ff0000)
-ADDRESS_MAP_END
+ map(0x1f000000, 0x1f7fffff).bankr("rombank1");
+ map(0x1fb00000, 0x1fb00001).w(m_soundlatch16, FUNC(generic_latch_16_device::write));
+ map(0x1fb00002, 0x1fb00002).w(this, FUNC(zn_state::coh1001l_bank_w));
+}
MACHINE_START_MEMBER(zn_state,coh1001l)
{
@@ -2345,12 +2363,13 @@ MACHINE_RESET_MEMBER(zn_state,coh1001l)
m_rombank[0]->set_entry( 0 );
}
-ADDRESS_MAP_START(zn_state::atlus_snd_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x100001) AM_DEVREAD("soundlatch16", generic_latch_16_device, read) AM_WRITE(coh1001l_sound_unk_w)
- AM_RANGE(0x200000, 0x200003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0x00ff)
- AM_RANGE(0x700000, 0x70ffff) AM_RAM
-ADDRESS_MAP_END
+void zn_state::atlus_snd_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x100000, 0x100001).r(m_soundlatch16, FUNC(generic_latch_16_device::read)).w(this, FUNC(zn_state::coh1001l_sound_unk_w));
+ map(0x200000, 0x200003).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask16(0x00ff);
+ map(0x700000, 0x70ffff).ram();
+}
MACHINE_CONFIG_START(zn_state::coh1001l)
@@ -2391,12 +2410,13 @@ WRITE8_MEMBER(zn_state::coh1002v_bank_w)
m_rombank[0]->set_entry( data );
}
-ADDRESS_MAP_START(zn_state::coh1002v_map)
- AM_IMPORT_FROM(zn_map)
- AM_RANGE(0x1f000000, 0x1f27ffff) AM_ROM AM_REGION("fixedroms", 0)
- AM_RANGE(0x1fb00000, 0x1fbfffff) AM_ROMBANK("rombank1")
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(coh1002v_bank_w, 0x000000ff)
-ADDRESS_MAP_END
+void zn_state::coh1002v_map(address_map &map)
+{
+ zn_map(map);
+ map(0x1f000000, 0x1f27ffff).rom().region("fixedroms", 0);
+ map(0x1fb00000, 0x1fbfffff).bankr("rombank1");
+ map(0x1fb00000, 0x1fb00000).w(this, FUNC(zn_state::coh1002v_bank_w));
+}
MACHINE_START_MEMBER(zn_state,coh1002v)
{
@@ -2581,11 +2601,12 @@ WRITE8_MEMBER(zn_state::coh1002m_bank_w)
m_rombank[0]->set_entry( data );
}
-ADDRESS_MAP_START(zn_state::coh1002m_map)
- AM_IMPORT_FROM(zn_map)
- AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("rombank1")
- AM_RANGE(0x1fb00004, 0x1fb00007) AM_WRITE8(coh1002m_bank_w, 0x00ff0000)
-ADDRESS_MAP_END
+void zn_state::coh1002m_map(address_map &map)
+{
+ zn_map(map);
+ map(0x1f000000, 0x1f7fffff).bankr("rombank1");
+ map(0x1fb00006, 0x1fb00006).w(this, FUNC(zn_state::coh1002m_bank_w));
+}
MACHINE_START_MEMBER(zn_state,coh1002m)
{
@@ -2612,12 +2633,13 @@ READ8_MEMBER(zn_state::cbaj_sound_main_status_r)
return m_cbaj_fifo[1]->ef_r() << 1;
}
-ADDRESS_MAP_START(zn_state::coh1002msnd_map)
- AM_IMPORT_FROM(coh1002m_map)
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_DEVREAD8("cbaj_fifo2", fifo7200_device, data_byte_r, 0x000000ff)
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_DEVWRITE8("cbaj_fifo1", fifo7200_device, data_byte_w, 0x000000ff)
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_READ8(cbaj_sound_main_status_r, 0xff000000)
-ADDRESS_MAP_END
+void zn_state::coh1002msnd_map(address_map &map)
+{
+ coh1002m_map(map);
+ map(0x1fb00000, 0x1fb00000).r("cbaj_fifo2", FUNC(fifo7200_device::data_byte_r));
+ map(0x1fb00000, 0x1fb00000).w("cbaj_fifo1", FUNC(fifo7200_device::data_byte_w));
+ map(0x1fb00003, 0x1fb00003).r(this, FUNC(zn_state::cbaj_sound_main_status_r));
+}
READ8_MEMBER(zn_state::cbaj_sound_z80_status_r)
{
@@ -2625,27 +2647,31 @@ READ8_MEMBER(zn_state::cbaj_sound_z80_status_r)
return m_cbaj_fifo[0]->ef_r() << 1;
}
-ADDRESS_MAP_START(zn_state::cbaj_z80_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(zn_state::cbaj_z80_port_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x84, 0x85) AM_DEVREADWRITE("ymz", ymz280b_device, read, write)
- AM_RANGE(0x90, 0x90) AM_DEVREAD("cbaj_fifo1", fifo7200_device, data_byte_r)
- AM_RANGE(0x90, 0x90) AM_DEVWRITE("cbaj_fifo2", fifo7200_device, data_byte_w)
- AM_RANGE(0x91, 0x91) AM_READ(cbaj_sound_z80_status_r)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(zn_state::coh1002ml_link_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(zn_state::coh1002ml_link_port_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
+void zn_state::cbaj_z80_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xffff).ram();
+}
+
+void zn_state::cbaj_z80_port_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x84, 0x85).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write));
+ map(0x90, 0x90).r("cbaj_fifo1", FUNC(fifo7200_device::data_byte_r));
+ map(0x90, 0x90).w("cbaj_fifo2", FUNC(fifo7200_device::data_byte_w));
+ map(0x91, 0x91).r(this, FUNC(zn_state::cbaj_sound_z80_status_r));
+}
+
+void zn_state::coh1002ml_link_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xffff).ram();
+}
+
+void zn_state::coh1002ml_link_port_map(address_map &map)
+{
+ map.global_mask(0xff);
+}
MACHINE_CONFIG_START(zn_state::coh1002msnd)
coh1002m(config);