summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ddenlovr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ddenlovr.cpp')
-rw-r--r--src/mame/drivers/ddenlovr.cpp1966
1 files changed, 1007 insertions, 959 deletions
diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp
index 2daf04e9e75..aa8cea9a4f6 100644
--- a/src/mame/drivers/ddenlovr.cpp
+++ b/src/mame/drivers/ddenlovr.cpp
@@ -1956,39 +1956,40 @@ WRITE16_MEMBER(ddenlovr_state::quiz365_protection_w)
COMBINE_DATA(m_quiz365_protection + offset);
}
-ADDRESS_MAP_START(ddenlovr_state::quiz365_map)
- AM_RANGE(0x000000, 0x17ffff) AM_ROM // ROM
+void ddenlovr_state::quiz365_map(address_map &map)
+{
+ map(0x000000, 0x17ffff).rom(); // ROM
- AM_RANGE(0x200000, 0x2003ff) AM_WRITE8(rongrong_palette_w, 0x00ff)
+ map(0x200000, 0x2003ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)).umask16(0x00ff);
- AM_RANGE(0x200c02, 0x200c03) AM_READ(quiz365_protection_r) // Protection
- AM_RANGE(0x200e0a, 0x200e0d) AM_WRITE(quiz365_protection_w) // Protection
+ map(0x200c02, 0x200c03).r(this, FUNC(ddenlovr_state::quiz365_protection_r)); // Protection
+ map(0x200e0a, 0x200e0d).w(this, FUNC(ddenlovr_state::quiz365_protection_w)); // Protection
// AM_RANGE(0x201000, 0x2017ff) AM_WRITEONLY // ?
- AM_RANGE(0x300200, 0x300201) AM_WRITE8(ddenlovr_select2_w, 0x00ff)
- AM_RANGE(0x300202, 0x300203) AM_WRITE8(quiz365_coincounter_w, 0x00ff) // Coin Counters + more stuff written on startup
- AM_RANGE(0x300204, 0x300207) AM_READ(quiz365_input2_r) //
-
- AM_RANGE(0x300240, 0x300247) AM_WRITE8(ddenlovr_palette_base_w, 0x00ff)
- AM_RANGE(0x300248, 0x30024f) AM_WRITE8(ddenlovr_palette_mask_w, 0x00ff)
- AM_RANGE(0x300250, 0x300257) AM_WRITE8(ddenlovr_transparency_pen_w, 0x00ff)
- AM_RANGE(0x300258, 0x30025f) AM_WRITE8(ddenlovr_transparency_mask_w, 0x00ff)
- AM_RANGE(0x300268, 0x300269) AM_WRITE8(ddenlovr_bgcolor_w, 0x00ff)
- AM_RANGE(0x30026a, 0x30026b) AM_WRITE8(ddenlovr_priority_w, 0x00ff)
- AM_RANGE(0x30026c, 0x30026d) AM_WRITE8(ddenlovr_layer_enable_w, 0x00ff)
- AM_RANGE(0x300270, 0x300271) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
- AM_RANGE(0x300280, 0x300283) AM_WRITE8(ddenlovr_blitter_w, 0x00ff)
- AM_RANGE(0x300286, 0x300287) AM_READ(ddenlovr_gfxrom_r) // Video Chip
-
- AM_RANGE(0x3002c0, 0x3002c1) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)// Sound
- AM_RANGE(0x300300, 0x300303) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
- AM_RANGE(0x300340, 0x30035f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
- AM_RANGE(0x300380, 0x300383) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
- AM_RANGE(0x300384, 0x300385) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
- AM_RANGE(0x3003c0, 0x3003cf) AM_DEVWRITE8("mainlatch", ls259_device, write_d0, 0x00ff)
-
- AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
-ADDRESS_MAP_END
+ map(0x300201, 0x300201).w(this, FUNC(ddenlovr_state::ddenlovr_select2_w));
+ map(0x300203, 0x300203).w(this, FUNC(ddenlovr_state::quiz365_coincounter_w)); // Coin Counters + more stuff written on startup
+ map(0x300204, 0x300207).r(this, FUNC(ddenlovr_state::quiz365_input2_r)); //
+
+ map(0x300240, 0x300247).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff);
+ map(0x300248, 0x30024f).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff);
+ map(0x300250, 0x300257).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w)).umask16(0x00ff);
+ map(0x300258, 0x30025f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w)).umask16(0x00ff);
+ map(0x300269, 0x300269).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x30026b, 0x30026b).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x30026d, 0x30026d).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x300270, 0x300271).r(this, FUNC(ddenlovr_state::unk16_r)); // ? must be 78 on startup (not necessary in ddlover)
+ map(0x300280, 0x300283).w(this, FUNC(ddenlovr_state::ddenlovr_blitter_w)).umask16(0x00ff);
+ map(0x300286, 0x300287).r(this, FUNC(ddenlovr_state::ddenlovr_gfxrom_r)); // Video Chip
+
+ map(0x3002c1, 0x3002c1).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));// Sound
+ map(0x300300, 0x300303).w("ym2413", FUNC(ym2413_device::write)).umask16(0x00ff);
+ map(0x300340, 0x30035f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff);
+ map(0x300380, 0x300383).w("aysnd", FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
+ map(0x300385, 0x300385).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x3003c0, 0x3003cf).w(m_mainlatch, FUNC(ls259_device::write_d0)).umask16(0x00ff);
+
+ map(0xff0000, 0xffffff).ram(); // RAM
+}
READ16_MEMBER(ddenlovr_state::ddenlovj_dsw_r)
@@ -2012,36 +2013,37 @@ CUSTOM_INPUT_MEMBER(ddenlovr_state::ddenlovj_blitter_r)
return m_ddenlovr_blitter_irq_flag ? 0x03 : 0x00; // bit 4 = 1 -> blitter busy
}
-ADDRESS_MAP_START(ddenlovr_state::ddenlovj_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
+void ddenlovr_state::ddenlovj_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom(); // ROM
- AM_RANGE(0x200000, 0x2003ff) AM_WRITE8(rongrong_palette_w, 0x00ff)
+ map(0x200000, 0x2003ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)).umask16(0x00ff);
// AM_RANGE(0x201000, 0x2017ff) AM_WRITEONLY // ? B0 on startup, then 00
- AM_RANGE(0x300040, 0x300047) AM_WRITE8(ddenlovr_palette_base_w, 0x00ff)
- AM_RANGE(0x300048, 0x30004f) AM_WRITE8(ddenlovr_palette_mask_w, 0x00ff)
- AM_RANGE(0x300050, 0x300057) AM_WRITE8(ddenlovr_transparency_pen_w, 0x00ff)
- AM_RANGE(0x300058, 0x30005f) AM_WRITE8(ddenlovr_transparency_mask_w, 0x00ff)
- AM_RANGE(0x300068, 0x300069) AM_WRITE8(ddenlovr_bgcolor_w, 0x00ff)
- AM_RANGE(0x30006a, 0x30006b) AM_WRITE8(ddenlovr_priority_w, 0x00ff)
- AM_RANGE(0x30006c, 0x30006d) AM_WRITE8(ddenlovr_layer_enable_w, 0x00ff)
- AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
- AM_RANGE(0x300080, 0x300083) AM_WRITE8(ddenlovr_blitter_w, 0x00ff)
- AM_RANGE(0x300086, 0x300087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
- AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
- AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
- AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
- AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1")
- AM_RANGE(0x300182, 0x300183) AM_READ_PORT("P2")
- AM_RANGE(0x300184, 0x300185) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x300186, 0x300187) AM_READ(ddenlovj_dsw_r) // DSW
- AM_RANGE(0x300188, 0x300189) AM_WRITE8(ddenlovj_coincounter_w, 0x00ff)
- AM_RANGE(0x30018a, 0x30018b) AM_WRITE8(ddenlovr_select_w, 0x00ff) // DSW select
- AM_RANGE(0x30018c, 0x30018d) AM_WRITE8(ddenlovr_oki_bank_w, 0x00ff)
- AM_RANGE(0x3001c0, 0x3001cf) AM_DEVWRITE8("mainlatch", ls259_device, write_d0, 0x00ff)
- AM_RANGE(0x300240, 0x300241) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)// Sound
- AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
-ADDRESS_MAP_END
+ map(0x300040, 0x300047).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff);
+ map(0x300048, 0x30004f).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff);
+ map(0x300050, 0x300057).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w)).umask16(0x00ff);
+ map(0x300058, 0x30005f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w)).umask16(0x00ff);
+ map(0x300069, 0x300069).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x30006b, 0x30006b).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x30006d, 0x30006d).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x300070, 0x300071).r(this, FUNC(ddenlovr_state::unk16_r)); // ? must be 78 on startup (not necessary in ddlover)
+ map(0x300080, 0x300083).w(this, FUNC(ddenlovr_state::ddenlovr_blitter_w)).umask16(0x00ff);
+ map(0x300086, 0x300087).r(this, FUNC(ddenlovr_state::ddenlovr_gfxrom_r)); // Video Chip
+ map(0x3000c0, 0x3000c3).w("ym2413", FUNC(ym2413_device::write)).umask16(0x00ff);
+ map(0x300100, 0x30011f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff);
+ map(0x300140, 0x300143).w("aysnd", FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
+ map(0x300180, 0x300181).portr("P1");
+ map(0x300182, 0x300183).portr("P2");
+ map(0x300184, 0x300185).portr("SYSTEM");
+ map(0x300186, 0x300187).r(this, FUNC(ddenlovr_state::ddenlovj_dsw_r)); // DSW
+ map(0x300189, 0x300189).w(this, FUNC(ddenlovr_state::ddenlovj_coincounter_w));
+ map(0x30018b, 0x30018b).w(this, FUNC(ddenlovr_state::ddenlovr_select_w)); // DSW select
+ map(0x30018d, 0x30018d).w(this, FUNC(ddenlovr_state::ddenlovr_oki_bank_w));
+ map(0x3001c0, 0x3001cf).w(m_mainlatch, FUNC(ls259_device::write_d0)).umask16(0x00ff);
+ map(0x300241, 0x300241).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));// Sound
+ map(0xff0000, 0xffffff).ram(); // RAM
+}
READ16_MEMBER(ddenlovr_state::ddenlovrk_protection1_r)
@@ -2067,73 +2069,75 @@ WRITE16_MEMBER(ddenlovr_state::ddenlovrk_protection2_w)
m_oki->set_rom_bank((*m_protection2) & 0x7);
}
-ADDRESS_MAP_START(ddenlovr_state::ddenlovrk_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
+void ddenlovr_state::ddenlovrk_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom(); // ROM
- AM_RANGE(0x100000, 0x100001) AM_RAM_READ(ddenlovrk_protection1_r) AM_SHARE("protection1")
- AM_RANGE(0x200000, 0x200001) AM_READWRITE(ddenlovrk_protection2_r, ddenlovrk_protection2_w) AM_SHARE("protection2")
+ map(0x100000, 0x100001).ram().r(this, FUNC(ddenlovr_state::ddenlovrk_protection1_r)).share("protection1");
+ map(0x200000, 0x200001).rw(this, FUNC(ddenlovr_state::ddenlovrk_protection2_r), FUNC(ddenlovr_state::ddenlovrk_protection2_w)).share("protection2");
- AM_RANGE(0xd00000, 0xd003ff) AM_WRITE8(rongrong_palette_w, 0x00ff)
+ map(0xd00000, 0xd003ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)).umask16(0x00ff);
// AM_RANGE(0xd01000, 0xd017ff) AM_RAM // ? B0 on startup, then 00
- AM_RANGE(0xe00040, 0xe00047) AM_WRITE8(ddenlovr_palette_base_w, 0x00ff)
- AM_RANGE(0xe00048, 0xe0004f) AM_WRITE8(ddenlovr_palette_mask_w, 0x00ff)
- AM_RANGE(0xe00050, 0xe00057) AM_WRITE8(ddenlovr_transparency_pen_w, 0x00ff)
- AM_RANGE(0xe00058, 0xe0005f) AM_WRITE8(ddenlovr_transparency_mask_w, 0x00ff)
- AM_RANGE(0xe00068, 0xe00069) AM_WRITE8(ddenlovr_bgcolor_w, 0x00ff)
- AM_RANGE(0xe0006a, 0xe0006b) AM_WRITE8(ddenlovr_priority_w, 0x00ff)
- AM_RANGE(0xe0006c, 0xe0006d) AM_WRITE8(ddenlovr_layer_enable_w, 0x00ff)
- AM_RANGE(0xe00070, 0xe00071) AM_READNOP
- AM_RANGE(0xe00080, 0xe00083) AM_WRITE8(ddenlovr_blitter_w, 0x00ff)
- AM_RANGE(0xe00086, 0xe00087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
-
- AM_RANGE(0xe00100, 0xe00101) AM_READ_PORT("P1")
- AM_RANGE(0xe00102, 0xe00103) AM_READ_PORT("P2")
- AM_RANGE(0xe00104, 0xe00105) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xe00200, 0xe00201) AM_READ_PORT("DSW")
- AM_RANGE(0xe00300, 0xe0030f) AM_DEVWRITE8("mainlatch", ls259_device, write_d0, 0x00ff)
- AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
- AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
- AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
- AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
- AM_RANGE(0xe00700, 0xe00701) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
-ADDRESS_MAP_END
+ map(0xe00040, 0xe00047).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff);
+ map(0xe00048, 0xe0004f).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff);
+ map(0xe00050, 0xe00057).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w)).umask16(0x00ff);
+ map(0xe00058, 0xe0005f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w)).umask16(0x00ff);
+ map(0xe00069, 0xe00069).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0xe0006b, 0xe0006b).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0xe0006d, 0xe0006d).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0xe00070, 0xe00071).nopr();
+ map(0xe00080, 0xe00083).w(this, FUNC(ddenlovr_state::ddenlovr_blitter_w)).umask16(0x00ff);
+ map(0xe00086, 0xe00087).r(this, FUNC(ddenlovr_state::ddenlovr_gfxrom_r)); // Video Chip
+ map(0xe00100, 0xe00101).portr("P1");
+ map(0xe00102, 0xe00103).portr("P2");
+ map(0xe00104, 0xe00105).portr("SYSTEM");
+ map(0xe00200, 0xe00201).portr("DSW");
+ map(0xe00300, 0xe0030f).w(m_mainlatch, FUNC(ls259_device::write_d0)).umask16(0x00ff);
+ map(0xe00400, 0xe00403).w("ym2413", FUNC(ym2413_device::write)).umask16(0x00ff);
+ map(0xe00500, 0xe0051f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff);
+ map(0xe00600, 0xe00603).w("aysnd", FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
+ map(0xe00605, 0xe00605).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0xe00701, 0xe00701).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0xff0000, 0xffffff).ram(); // RAM
+}
-ADDRESS_MAP_START(ddenlovr_state::ddenlovr_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
- AM_RANGE(0x300000, 0x300001) AM_WRITE8(ddenlovr_oki_bank_w, 0x00ff)
+void ddenlovr_state::ddenlovr_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom(); // ROM
- AM_RANGE(0xd00000, 0xd003ff) AM_WRITE8(rongrong_palette_w, 0x00ff)
+ map(0x300001, 0x300001).w(this, FUNC(ddenlovr_state::ddenlovr_oki_bank_w));
+
+ map(0xd00000, 0xd003ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)).umask16(0x00ff);
// AM_RANGE(0xd01000, 0xd017ff) AM_RAM // ? B0 on startup, then 00
- AM_RANGE(0xe00040, 0xe00047) AM_WRITE8(ddenlovr_palette_base_w, 0x00ff)
- AM_RANGE(0xe00048, 0xe0004f) AM_WRITE8(ddenlovr_palette_mask_w, 0x00ff)
- AM_RANGE(0xe00050, 0xe00057) AM_WRITE8(ddenlovr_transparency_pen_w, 0x00ff)
- AM_RANGE(0xe00058, 0xe0005f) AM_WRITE8(ddenlovr_transparency_mask_w, 0x00ff)
- AM_RANGE(0xe00068, 0xe00069) AM_WRITE8(ddenlovr_bgcolor_w, 0x00ff)
- AM_RANGE(0xe0006a, 0xe0006b) AM_WRITE8(ddenlovr_priority_w, 0x00ff)
- AM_RANGE(0xe0006c, 0xe0006d) AM_WRITE8(ddenlovr_layer_enable_w, 0x00ff)
- AM_RANGE(0xe00070, 0xe00071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
- AM_RANGE(0xe00080, 0xe00083) AM_WRITE8(ddenlovr_blitter_w, 0x00ff)
- AM_RANGE(0xe00086, 0xe00087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
-
- AM_RANGE(0xe00100, 0xe00101) AM_READ_PORT("P1")
- AM_RANGE(0xe00102, 0xe00103) AM_READ_PORT("P2")
- AM_RANGE(0xe00104, 0xe00105) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xe00200, 0xe00201) AM_READ_PORT("DSW")
- AM_RANGE(0xe00300, 0xe0030f) AM_DEVWRITE8("mainlatch", ls259_device, write_d0, 0x00ff)
- AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
- AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
- AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
- AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
- AM_RANGE(0xe00700, 0xe00701) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
-ADDRESS_MAP_END
+ map(0xe00040, 0xe00047).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff);
+ map(0xe00048, 0xe0004f).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff);
+ map(0xe00050, 0xe00057).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w)).umask16(0x00ff);
+ map(0xe00058, 0xe0005f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w)).umask16(0x00ff);
+ map(0xe00069, 0xe00069).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0xe0006b, 0xe0006b).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0xe0006d, 0xe0006d).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0xe00070, 0xe00071).r(this, FUNC(ddenlovr_state::unk16_r)); // ? must be 78 on startup (not necessary in ddlover)
+ map(0xe00080, 0xe00083).w(this, FUNC(ddenlovr_state::ddenlovr_blitter_w)).umask16(0x00ff);
+ map(0xe00086, 0xe00087).r(this, FUNC(ddenlovr_state::ddenlovr_gfxrom_r)); // Video Chip
+
+ map(0xe00100, 0xe00101).portr("P1");
+ map(0xe00102, 0xe00103).portr("P2");
+ map(0xe00104, 0xe00105).portr("SYSTEM");
+ map(0xe00200, 0xe00201).portr("DSW");
+ map(0xe00300, 0xe0030f).w(m_mainlatch, FUNC(ls259_device::write_d0)).umask16(0x00ff);
+ map(0xe00400, 0xe00403).w("ym2413", FUNC(ym2413_device::write)).umask16(0x00ff);
+ map(0xe00500, 0xe0051f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff);
+ map(0xe00600, 0xe00603).w("aysnd", FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
+ map(0xe00605, 0xe00605).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0xe00701, 0xe00701).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0xff0000, 0xffffff).ram(); // RAM
+}
CUSTOM_INPUT_MEMBER(ddenlovr_state::nettoqc_special_r)
@@ -2177,38 +2181,39 @@ WRITE8_MEMBER(ddenlovr_state::nettoqc_oki_bank_w )
m_oki->set_rom_bank(data & 3);
}
-ADDRESS_MAP_START(ddenlovr_state::nettoqc_map)
- AM_RANGE(0x000000, 0x17ffff) AM_ROM // ROM
-
- AM_RANGE(0x200000, 0x2003ff) AM_WRITE8(rongrong_palette_w, 0x00ff)
- AM_RANGE(0x200c02, 0x200c03) AM_READ(nettoqc_protection1_r) // Protection 1
- AM_RANGE(0x200e0a, 0x200e0d) AM_WRITEONLY AM_SHARE("protection1") // ""
- AM_RANGE(0x201000, 0x2017ff) AM_WRITEONLY // ?
-
- AM_RANGE(0x300040, 0x300047) AM_WRITE8(ddenlovr_palette_base_w, 0x00ff)
- AM_RANGE(0x300048, 0x30004f) AM_WRITE8(ddenlovr_palette_mask_w, 0x00ff)
- AM_RANGE(0x300050, 0x300057) AM_WRITE8(ddenlovr_transparency_pen_w, 0x00ff)
- AM_RANGE(0x300058, 0x30005f) AM_WRITE8(ddenlovr_transparency_mask_w, 0x00ff)
- AM_RANGE(0x300068, 0x300069) AM_WRITE8(ddenlovr_bgcolor_w, 0x00ff)
- AM_RANGE(0x30006a, 0x30006b) AM_WRITE8(ddenlovr_priority_w, 0x00ff)
- AM_RANGE(0x30006c, 0x30006d) AM_WRITE8(ddenlovr_layer_enable_w, 0x00ff)
- AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
- AM_RANGE(0x300080, 0x300083) AM_WRITE8(ddenlovr_blitter_w, 0x00ff)
- AM_RANGE(0x300086, 0x300087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
- AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
- AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
- AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
- AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1")
- AM_RANGE(0x300182, 0x300183) AM_READ_PORT("P2")
- AM_RANGE(0x300184, 0x300185) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x300186, 0x300187) AM_READ(nettoqc_input_r) // DSW's
- AM_RANGE(0x300188, 0x300189) AM_WRITE8(nettoqc_coincounter_w, 0x00ff)
- AM_RANGE(0x30018a, 0x30018b) AM_WRITE8(ddenlovr_select_w, 0x00ff)
- AM_RANGE(0x30018c, 0x30018d) AM_WRITE8(nettoqc_oki_bank_w, 0x00ff)
- AM_RANGE(0x3001c0, 0x3001cf) AM_DEVWRITE8("mainlatch", ls259_device, write_d0, 0x00ff)
- AM_RANGE(0x300240, 0x300241) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
-ADDRESS_MAP_END
+void ddenlovr_state::nettoqc_map(address_map &map)
+{
+ map(0x000000, 0x17ffff).rom(); // ROM
+
+ map(0x200000, 0x2003ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)).umask16(0x00ff);
+ map(0x200c02, 0x200c03).r(this, FUNC(ddenlovr_state::nettoqc_protection1_r)); // Protection 1
+ map(0x200e0a, 0x200e0d).writeonly().share("protection1"); // ""
+ map(0x201000, 0x2017ff).writeonly(); // ?
+
+ map(0x300040, 0x300047).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff);
+ map(0x300048, 0x30004f).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff);
+ map(0x300050, 0x300057).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w)).umask16(0x00ff);
+ map(0x300058, 0x30005f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w)).umask16(0x00ff);
+ map(0x300069, 0x300069).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x30006b, 0x30006b).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x30006d, 0x30006d).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x300070, 0x300071).r(this, FUNC(ddenlovr_state::unk16_r)); // ? must be 78 on startup (not necessary in ddlover)
+ map(0x300080, 0x300083).w(this, FUNC(ddenlovr_state::ddenlovr_blitter_w)).umask16(0x00ff);
+ map(0x300086, 0x300087).r(this, FUNC(ddenlovr_state::ddenlovr_gfxrom_r)); // Video Chip
+ map(0x3000c0, 0x3000c3).w("ym2413", FUNC(ym2413_device::write)).umask16(0x00ff);
+ map(0x300100, 0x30011f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff);
+ map(0x300140, 0x300143).w("aysnd", FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
+ map(0x300180, 0x300181).portr("P1");
+ map(0x300182, 0x300183).portr("P2");
+ map(0x300184, 0x300185).portr("SYSTEM");
+ map(0x300186, 0x300187).r(this, FUNC(ddenlovr_state::nettoqc_input_r)); // DSW's
+ map(0x300189, 0x300189).w(this, FUNC(ddenlovr_state::nettoqc_coincounter_w));
+ map(0x30018b, 0x30018b).w(this, FUNC(ddenlovr_state::ddenlovr_select_w));
+ map(0x30018d, 0x30018d).w(this, FUNC(ddenlovr_state::nettoqc_oki_bank_w));
+ map(0x3001c0, 0x3001cf).w(m_mainlatch, FUNC(ls259_device::write_d0)).umask16(0x00ff);
+ map(0x300241, 0x300241).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0xff0000, 0xffffff).ram(); // RAM
+}
READ16_MEMBER(ddenlovr_state::ultrchmp_protection2_r)
@@ -2226,42 +2231,43 @@ WRITE16_MEMBER(ddenlovr_state::ultrchmp_protection2_w)
m_oki->set_rom_bank(data & 0xf);
}
-ADDRESS_MAP_START(ddenlovr_state::ultrchmp_map)
- AM_RANGE(0x000000, 0x17ffff) AM_ROM // ROM
-
- AM_RANGE(0x224680, 0x224681) AM_RAM_READ(ultrchmp_protection2_r) AM_SHARE("protection2") // Protection 2
- AM_RANGE(0x313570, 0x313571) AM_WRITE(ultrchmp_protection2_w) // "" + OKI bank
-
- AM_RANGE(0xd00000, 0xd003ff) AM_WRITE8(rongrong_palette_w, 0x00ff)
-
- AM_RANGE(0xd00c02, 0xd00c03) AM_READ(nettoqc_protection1_r) // Protection 1
- AM_RANGE(0xd00e0a, 0xd00e0d) AM_WRITEONLY AM_SHARE("protection1") // ""
-
- AM_RANGE(0xd01000, 0xd017ff) AM_WRITEONLY // ?
-
- AM_RANGE(0xe00040, 0xe00047) AM_WRITE8(ddenlovr_palette_base_w, 0x00ff)
- AM_RANGE(0xe00048, 0xe0004f) AM_WRITE8(ddenlovr_palette_mask_w, 0x00ff)
- AM_RANGE(0xe00050, 0xe00057) AM_WRITE8(ddenlovr_transparency_pen_w, 0x00ff)
- AM_RANGE(0xe00058, 0xe0005f) AM_WRITE8(ddenlovr_transparency_mask_w, 0x00ff)
- AM_RANGE(0xe00068, 0xe00069) AM_WRITE8(ddenlovr_bgcolor_w, 0x00ff)
- AM_RANGE(0xe0006a, 0xe0006b) AM_WRITE8(ddenlovr_priority_w, 0x00ff)
- AM_RANGE(0xe0006c, 0xe0006d) AM_WRITE8(ddenlovr_layer_enable_w, 0x00ff)
- AM_RANGE(0xe00070, 0xe00071) AM_READNOP
- AM_RANGE(0xe00080, 0xe00083) AM_WRITE8(ddenlovr_blitter_w, 0x00ff)
- AM_RANGE(0xe00086, 0xe00087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
-
- AM_RANGE(0xe00100, 0xe00101) AM_READ_PORT("P1")
- AM_RANGE(0xe00102, 0xe00103) AM_READ_PORT("P2")
- AM_RANGE(0xe00104, 0xe00105) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xe00200, 0xe00201) AM_READ_PORT("DSW")
- AM_RANGE(0xe00300, 0xe0030f) AM_DEVWRITE8("mainlatch", ls259_device, write_d0, 0x00ff)
- AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
- AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
- AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
- AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
- AM_RANGE(0xe00700, 0xe00701) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("nvram") // RAM (Battey-backed)
-ADDRESS_MAP_END
+void ddenlovr_state::ultrchmp_map(address_map &map)
+{
+ map(0x000000, 0x17ffff).rom(); // ROM
+
+ map(0x224680, 0x224681).ram().r(this, FUNC(ddenlovr_state::ultrchmp_protection2_r)).share("protection2"); // Protection 2
+ map(0x313570, 0x313571).w(this, FUNC(ddenlovr_state::ultrchmp_protection2_w)); // "" + OKI bank
+
+ map(0xd00000, 0xd003ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)).umask16(0x00ff);
+
+ map(0xd00c02, 0xd00c03).r(this, FUNC(ddenlovr_state::nettoqc_protection1_r)); // Protection 1
+ map(0xd00e0a, 0xd00e0d).writeonly().share("protection1"); // ""
+
+ map(0xd01000, 0xd017ff).writeonly(); // ?
+
+ map(0xe00040, 0xe00047).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff);
+ map(0xe00048, 0xe0004f).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff);
+ map(0xe00050, 0xe00057).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w)).umask16(0x00ff);
+ map(0xe00058, 0xe0005f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w)).umask16(0x00ff);
+ map(0xe00069, 0xe00069).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0xe0006b, 0xe0006b).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0xe0006d, 0xe0006d).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0xe00070, 0xe00071).nopr();
+ map(0xe00080, 0xe00083).w(this, FUNC(ddenlovr_state::ddenlovr_blitter_w)).umask16(0x00ff);
+ map(0xe00086, 0xe00087).r(this, FUNC(ddenlovr_state::ddenlovr_gfxrom_r)); // Video Chip
+
+ map(0xe00100, 0xe00101).portr("P1");
+ map(0xe00102, 0xe00103).portr("P2");
+ map(0xe00104, 0xe00105).portr("SYSTEM");
+ map(0xe00200, 0xe00201).portr("DSW");
+ map(0xe00300, 0xe0030f).w(m_mainlatch, FUNC(ls259_device::write_d0)).umask16(0x00ff);
+ map(0xe00400, 0xe00403).w("ym2413", FUNC(ym2413_device::write)).umask16(0x00ff);
+ map(0xe00500, 0xe0051f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff);
+ map(0xe00600, 0xe00603).w("aysnd", FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
+ map(0xe00605, 0xe00605).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0xe00701, 0xe00701).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0xff0000, 0xffffff).ram().share("nvram"); // RAM (Battey-backed)
+}
/***************************************************************************
@@ -2291,78 +2297,82 @@ WRITE8_MEMBER(ddenlovr_state::rongrong_select_w)
}
-ADDRESS_MAP_START(ddenlovr_state::quizchq_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0x8000, 0x81ff) AM_WRITE(rongrong_palette_w)
-ADDRESS_MAP_END
+void ddenlovr_state::quizchq_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+ map(0x8000, 0x81ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w));
+}
-ADDRESS_MAP_START(ddenlovr_state::quizchq_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w)
- AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x1b, 0x1b) AM_READWRITE(rongrong_blitter_busy_r, rongrong_blitter_busy_w)
-
- AM_RANGE(0x1c, 0x1c) AM_READ(rongrong_input_r)
- AM_RANGE(0x1e, 0x1e) AM_WRITE(rongrong_select_w)
- AM_RANGE(0x20, 0x20) AM_WRITE(ddenlovr_select2_w)
- AM_RANGE(0x22, 0x23) AM_READ(rongrong_input2_r)
-
- AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
-
- AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x8c, 0x8f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x94, 0x94) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x95, 0x95) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x98, 0x98) AM_READ(unk_r) // ? must be 78 on startup
-
- AM_RANGE(0xa0, 0xaf) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0xc0, 0xc0) AM_WRITE(quizchq_oki_bank_w)
- AM_RANGE(0xc2, 0xc2) AM_WRITENOP // enables palette RAM at 8000
-ADDRESS_MAP_END
+void ddenlovr_state::quizchq_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w(this, FUNC(ddenlovr_state::rongrong_blitter_w));
+ map(0x03, 0x03).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x1b, 0x1b).rw(this, FUNC(ddenlovr_state::rongrong_blitter_busy_r), FUNC(ddenlovr_state::rongrong_blitter_busy_w));
+ map(0x1c, 0x1c).r(this, FUNC(ddenlovr_state::rongrong_input_r));
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::rongrong_select_w));
+ map(0x20, 0x20).w(this, FUNC(ddenlovr_state::ddenlovr_select2_w));
+ map(0x22, 0x23).r(this, FUNC(ddenlovr_state::rongrong_input2_r));
+ map(0x40, 0x40).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x60, 0x61).w("ym2413", FUNC(ym2413_device::write));
-ADDRESS_MAP_START(ddenlovr_state::rongrong_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w)
-ADDRESS_MAP_END
+ map(0x80, 0x83).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x84, 0x87).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x88, 0x8b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x8c, 0x8f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x94, 0x94).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x95, 0x95).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x96, 0x96).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x98, 0x98).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
-ADDRESS_MAP_START(ddenlovr_state::rongrong_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w)
- AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x1b, 0x1b) AM_READWRITE(rongrong_blitter_busy_r, rongrong_blitter_busy_w)
-
- AM_RANGE(0x1c, 0x1c) AM_READ(rongrong_input_r)
- AM_RANGE(0x1e, 0x1e) AM_WRITE(rongrong_select_w)
-
- AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
-
- AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x8c, 0x8f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x94, 0x94) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x95, 0x95) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x98, 0x98) AM_READ(unk_r) // ? must be 78 on startup
-
- AM_RANGE(0xa0, 0xa0) AM_WRITE(ddenlovr_select2_w)
- AM_RANGE(0xa2, 0xa3) AM_READ(rongrong_input2_r)
- AM_RANGE(0xc2, 0xc2) AM_WRITENOP // enables palette RAM at f000, and protection device at f705/f706/f601
-ADDRESS_MAP_END
+ map(0xa0, 0xaf).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0xc0, 0xc0).w(this, FUNC(ddenlovr_state::quizchq_oki_bank_w));
+ map(0xc2, 0xc2).nopw(); // enables palette RAM at 8000
+}
+
+
+
+void ddenlovr_state::rongrong_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+ map(0xf000, 0xf1ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w));
+}
+
+void ddenlovr_state::rongrong_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w(this, FUNC(ddenlovr_state::rongrong_blitter_w));
+ map(0x03, 0x03).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x1b, 0x1b).rw(this, FUNC(ddenlovr_state::rongrong_blitter_busy_r), FUNC(ddenlovr_state::rongrong_blitter_busy_w));
+
+ map(0x1c, 0x1c).r(this, FUNC(ddenlovr_state::rongrong_input_r));
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::rongrong_select_w));
+
+ map(0x20, 0x2f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x40, 0x40).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x60, 0x61).w("ym2413", FUNC(ym2413_device::write));
+
+ map(0x80, 0x83).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x84, 0x87).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x88, 0x8b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x8c, 0x8f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x94, 0x94).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x95, 0x95).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x96, 0x96).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x98, 0x98).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+
+ map(0xa0, 0xa0).w(this, FUNC(ddenlovr_state::ddenlovr_select2_w));
+ map(0xa2, 0xa3).r(this, FUNC(ddenlovr_state::rongrong_input2_r));
+ map(0xc2, 0xc2).nopw(); // enables palette RAM at f000, and protection device at f705/f706/f601
+}
/*
1e input select,1c input read
3e=dsw1 3d=dsw2
@@ -2429,77 +2439,81 @@ READ8_MEMBER(ddenlovr_state::mmpanic_link_r){ return 0xff; }
/* Main CPU */
-ADDRESS_MAP_START(ddenlovr_state::mmpanic_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x0051, 0x0051) AM_READ(magic_r) // ?
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0x8000, 0x81ff) AM_WRITE(rongrong_palette_w)
-ADDRESS_MAP_END
+void ddenlovr_state::mmpanic_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x0051, 0x0051).r(this, FUNC(ddenlovr_state::magic_r)); // ?
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+ map(0x8000, 0x81ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w));
+}
-ADDRESS_MAP_START(ddenlovr_state::mmpanic_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x0f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
+void ddenlovr_state::mmpanic_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x0f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
// Layers 0-3:
- AM_RANGE(0x20, 0x23) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x24, 0x27) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x28, 0x2b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x2c, 0x2f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x34, 0x34) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x35, 0x35) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x36, 0x36) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x38, 0x38) AM_READ(unk_r) // ? must be 78 on startup
+ map(0x20, 0x23).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x24, 0x27).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x28, 0x2b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x2c, 0x2f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x34, 0x34).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x35, 0x35).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x36, 0x36).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x38, 0x38).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
// Layers 4-7:
- AM_RANGE(0x40, 0x43) AM_WRITE(ddenlovr_palette_base2_w)
- AM_RANGE(0x44, 0x47) AM_WRITE(ddenlovr_palette_mask2_w)
- AM_RANGE(0x48, 0x4b) AM_WRITE(ddenlovr_transparency_pen2_w)
- AM_RANGE(0x4c, 0x4f) AM_WRITE(ddenlovr_transparency_mask2_w)
- AM_RANGE(0x54, 0x54) AM_WRITE(ddenlovr_bgcolor2_w)
- AM_RANGE(0x55, 0x55) AM_WRITE(ddenlovr_priority2_w)
- AM_RANGE(0x56, 0x56) AM_WRITE(ddenlovr_layer_enable2_w)
- AM_RANGE(0x58, 0x58) AM_READ(unk_r) // ? must be 78 on startup
-
- AM_RANGE(0x60, 0x61) AM_WRITE(mmpanic_blitter_w)
- AM_RANGE(0x63, 0x63) AM_READ(rongrong_gfxrom_r) // Video Chip
- AM_RANGE(0x64, 0x65) AM_WRITE(mmpanic_blitter2_w)
- AM_RANGE(0x68, 0x68) AM_WRITE(ddenlovr_select_w)
- AM_RANGE(0x69, 0x69) AM_WRITE(mmpanic_lockout_w)
- AM_RANGE(0x6a, 0x6a) AM_READ_PORT("IN0")
- AM_RANGE(0x6b, 0x6b) AM_READ_PORT("IN1")
- AM_RANGE(0x6c, 0x6d) AM_READ(mmpanic_link_r) // Other cabinets?
- AM_RANGE(0x74, 0x74) AM_WRITE(mmpanic_rombank_w)
- AM_RANGE(0x78, 0x78) AM_WRITENOP // 0, during RST 08 (irq acknowledge?)
- AM_RANGE(0x7c, 0x7c) AM_DEVREADWRITE("oki", okim6295_device, read, write) // Sound
- AM_RANGE(0x8c, 0x8c) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x88, 0x88) AM_WRITE(mmpanic_leds_w) // Leds
- AM_RANGE(0x90, 0x90) AM_WRITENOP // written just before port 8c
- AM_RANGE(0x94, 0x94) AM_READ_PORT("DSW1")
- AM_RANGE(0x98, 0x98) AM_READ_PORT("DSW2")
- AM_RANGE(0x9c, 0x9c) AM_READ_PORT("DSW3") // DSW 1&2 high bits
- AM_RANGE(0xa6, 0xa6) AM_WRITE(mmpanic_leds2_w) //
-ADDRESS_MAP_END
+ map(0x40, 0x43).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base2_w));
+ map(0x44, 0x47).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask2_w));
+ map(0x48, 0x4b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen2_w));
+ map(0x4c, 0x4f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask2_w));
+ map(0x54, 0x54).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor2_w));
+ map(0x55, 0x55).w(this, FUNC(ddenlovr_state::ddenlovr_priority2_w));
+ map(0x56, 0x56).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable2_w));
+ map(0x58, 0x58).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+
+ map(0x60, 0x61).w(this, FUNC(ddenlovr_state::mmpanic_blitter_w));
+ map(0x63, 0x63).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r)); // Video Chip
+ map(0x64, 0x65).w(this, FUNC(ddenlovr_state::mmpanic_blitter2_w));
+ map(0x68, 0x68).w(this, FUNC(ddenlovr_state::ddenlovr_select_w));
+ map(0x69, 0x69).w(this, FUNC(ddenlovr_state::mmpanic_lockout_w));
+ map(0x6a, 0x6a).portr("IN0");
+ map(0x6b, 0x6b).portr("IN1");
+ map(0x6c, 0x6d).r(this, FUNC(ddenlovr_state::mmpanic_link_r)); // Other cabinets?
+ map(0x74, 0x74).w(this, FUNC(ddenlovr_state::mmpanic_rombank_w));
+ map(0x78, 0x78).nopw(); // 0, during RST 08 (irq acknowledge?)
+ map(0x7c, 0x7c).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0x8c, 0x8c).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x88, 0x88).w(this, FUNC(ddenlovr_state::mmpanic_leds_w)); // Leds
+ map(0x90, 0x90).nopw(); // written just before port 8c
+ map(0x94, 0x94).portr("DSW1");
+ map(0x98, 0x98).portr("DSW2");
+ map(0x9c, 0x9c).portr("DSW3"); // DSW 1&2 high bits
+ map(0xa6, 0xa6).w(this, FUNC(ddenlovr_state::mmpanic_leds2_w)); //
+}
/* Sound CPU */
-ADDRESS_MAP_START(ddenlovr_state::mmpanic_sound_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x66ff) AM_RAM // RAM
- AM_RANGE(0x8000, 0xffff) AM_ROM // ROM
-ADDRESS_MAP_END
+void ddenlovr_state::mmpanic_sound_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x66ff).ram(); // RAM
+ map(0x8000, 0xffff).rom(); // ROM
+}
-ADDRESS_MAP_START(ddenlovr_state::mmpanic_sound_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0x02, 0x02) AM_READNOP // read just before port 00
- AM_RANGE(0x04, 0x04) AM_NOP // read only once at the start
- AM_RANGE(0x06, 0x06) AM_WRITENOP // almost always 1, sometimes 0
- AM_RANGE(0x08, 0x09) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("aysnd", ay8910_device, address_w)
-ADDRESS_MAP_END
+void ddenlovr_state::mmpanic_sound_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0x02, 0x02).nopr(); // read just before port 00
+ map(0x04, 0x04).noprw(); // read only once at the start
+ map(0x06, 0x06).nopw(); // almost always 1, sometimes 0
+ map(0x08, 0x09).w("ym2413", FUNC(ym2413_device::write));
+ map(0x0c, 0x0c).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x0e, 0x0e).w("aysnd", FUNC(ay8910_device::address_w));
+}
@@ -2509,15 +2523,16 @@ ADDRESS_MAP_END
/* Main CPU */
-ADDRESS_MAP_START(ddenlovr_state::funkyfig_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
+void ddenlovr_state::funkyfig_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom();
+ map(0x6000, 0x6fff).ram();
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
- AM_RANGE(0x8000, 0x81ff) AM_WRITE(rongrong_palette_w)
- AM_RANGE(0x8400, 0x87ff) AM_WRITENOP
-ADDRESS_MAP_END
+ map(0x8000, 0xffff).bankr("bank1");
+ map(0x8000, 0x81ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w));
+ map(0x8400, 0x87ff).nopw();
+}
READ8_MEMBER(ddenlovr_state::funkyfig_busy_r)
@@ -2590,47 +2605,49 @@ WRITE8_MEMBER(ddenlovr_state::funkyfig_lockout_w)
}
}
-ADDRESS_MAP_START(ddenlovr_state::funkyfig_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("oki", okim6295_device, read, write) // Sound
- AM_RANGE(0x01, 0x01) AM_WRITE(mmpanic_leds_w) // Leds
- AM_RANGE(0x02, 0x02) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x04, 0x04) AM_READ(funkyfig_busy_r)
- AM_RANGE(0x1c, 0x1c) AM_READ(funkyfig_dsw_r)
- AM_RANGE(0x1e, 0x1e) AM_WRITE(funkyfig_rombank_w)
- AM_RANGE(0x20, 0x21) AM_WRITE(funkyfig_blitter_w)
- AM_RANGE(0x23, 0x23) AM_READ(rongrong_gfxrom_r) // Video Chip
- AM_RANGE(0x40, 0x4f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
+void ddenlovr_state::funkyfig_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0x01, 0x01).w(this, FUNC(ddenlovr_state::mmpanic_leds_w)); // Leds
+ map(0x02, 0x02).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x04, 0x04).r(this, FUNC(ddenlovr_state::funkyfig_busy_r));
+ map(0x1c, 0x1c).r(this, FUNC(ddenlovr_state::funkyfig_dsw_r));
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::funkyfig_rombank_w));
+ map(0x20, 0x21).w(this, FUNC(ddenlovr_state::funkyfig_blitter_w));
+ map(0x23, 0x23).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r)); // Video Chip
+ map(0x40, 0x4f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
// Layers 0-3:
- AM_RANGE(0x60, 0x63) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x64, 0x67) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x68, 0x6b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x6c, 0x6f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x74, 0x74) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x75, 0x75) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x76, 0x76) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x78, 0x78) AM_READ(unk_r) // ? must be 78 on startup
-
- AM_RANGE(0x80, 0x80) AM_WRITE(ddenlovr_select2_w)
- AM_RANGE(0x81, 0x81) AM_WRITE(funkyfig_lockout_w)
- AM_RANGE(0x82, 0x82) AM_READ(funkyfig_coin_r)
- AM_RANGE(0x83, 0x83) AM_READ(funkyfig_key_r)
-
- AM_RANGE(0xa2, 0xa2) AM_WRITE(mmpanic_leds2_w)
-ADDRESS_MAP_END
+ map(0x60, 0x63).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x64, 0x67).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x68, 0x6b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x6c, 0x6f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x74, 0x74).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x75, 0x75).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x76, 0x76).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x78, 0x78).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+
+ map(0x80, 0x80).w(this, FUNC(ddenlovr_state::ddenlovr_select2_w));
+ map(0x81, 0x81).w(this, FUNC(ddenlovr_state::funkyfig_lockout_w));
+ map(0x82, 0x82).r(this, FUNC(ddenlovr_state::funkyfig_coin_r));
+ map(0x83, 0x83).r(this, FUNC(ddenlovr_state::funkyfig_key_r));
+
+ map(0xa2, 0xa2).w(this, FUNC(ddenlovr_state::mmpanic_leds2_w));
+}
/* Sound CPU */
-ADDRESS_MAP_START(ddenlovr_state::funkyfig_sound_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0x04, 0x04) AM_READNOP // read only once at the start
- AM_RANGE(0x08, 0x09) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("aysnd", ay8910_device, address_w)
-ADDRESS_MAP_END
+void ddenlovr_state::funkyfig_sound_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x02, 0x02).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0x04, 0x04).nopr(); // read only once at the start
+ map(0x08, 0x09).w("ym2413", FUNC(ym2413_device::write));
+ map(0x0c, 0x0c).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x0e, 0x0e).w("aysnd", FUNC(ay8910_device::address_w));
+}
/***************************************************************************
@@ -2645,12 +2662,13 @@ WRITE8_MEMBER(ddenlovr_state::hanakanz_rombank_w)
membank("bank2")->set_entry(((data & 0xf0) >> 4));
}
-ADDRESS_MAP_START(ddenlovr_state::hanakanz_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
-ADDRESS_MAP_END
+void ddenlovr_state::hanakanz_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+}
WRITE8_MEMBER(ddenlovr_state::hanakanz_keyb_w)
@@ -2766,94 +2784,98 @@ READ8_MEMBER(ddenlovr_state::hanakanz_rand_r)
return machine().rand();
}
-ADDRESS_MAP_START(ddenlovr_state::hanakanz_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x2c, 0x2c) AM_READWRITE(hanakanz_busy_r, hanakanz_oki_bank_w)
- AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
- AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w)
- AM_RANGE(0x31, 0x31) AM_WRITE(hanakanz_dsw_w)
- AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
- AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
- AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
- AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
- AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x91, 0x92) AM_READ(hanakanz_keyb_r)
- AM_RANGE(0x93, 0x93) AM_WRITE(hanakanz_coincounter_w)
- AM_RANGE(0x94, 0x94) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0x96, 0x96) AM_READ(hanakanz_rand_r)
- AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(ddenlovr_state::hkagerou_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x2c, 0x2c) AM_READWRITE(hanakanz_busy_r, hanakanz_oki_bank_w)
- AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
- AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w)
- AM_RANGE(0x31, 0x31) AM_WRITE(hanakanz_dsw_w)
- AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
- AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
- AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
- AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
- AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r)
- AM_RANGE(0xb3, 0xb3) AM_WRITE(hanakanz_coincounter_w)
- AM_RANGE(0xb4, 0xb4) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0xb6, 0xb6) AM_READ(hanakanz_rand_r)
- AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
-ADDRESS_MAP_END
+void ddenlovr_state::hanakanz_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x2c, 0x2c).rw(this, FUNC(ddenlovr_state::hanakanz_busy_r), FUNC(ddenlovr_state::hanakanz_oki_bank_w));
+ map(0x2e, 0x2e).w(this, FUNC(ddenlovr_state::hanakanz_blitter_reg_w));
+ map(0x30, 0x30).w(this, FUNC(ddenlovr_state::hanakanz_rombank_w));
+ map(0x31, 0x31).w(this, FUNC(ddenlovr_state::hanakanz_dsw_w));
+ map(0x32, 0x32).r(this, FUNC(ddenlovr_state::hanakanz_dsw_r));
+ map(0x80, 0x80).w(this, FUNC(ddenlovr_state::hanakanz_blitter_data_w));
+ map(0x81, 0x81).w(this, FUNC(ddenlovr_state::hanakanz_palette_w));
+ map(0x83, 0x84).r(this, FUNC(ddenlovr_state::hanakanz_gfxrom_r));
+ map(0x90, 0x90).portr("SYSTEM");
+ map(0x91, 0x92).r(this, FUNC(ddenlovr_state::hanakanz_keyb_r));
+ map(0x93, 0x93).w(this, FUNC(ddenlovr_state::hanakanz_coincounter_w));
+ map(0x94, 0x94).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w));
+ map(0x96, 0x96).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0xa0, 0xa1).w("ym2413", FUNC(ym2413_device::write));
+ map(0xc0, 0xc0).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xe0, 0xef).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+}
+
+
+void ddenlovr_state::hkagerou_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x2c, 0x2c).rw(this, FUNC(ddenlovr_state::hanakanz_busy_r), FUNC(ddenlovr_state::hanakanz_oki_bank_w));
+ map(0x2e, 0x2e).w(this, FUNC(ddenlovr_state::hanakanz_blitter_reg_w));
+ map(0x30, 0x30).w(this, FUNC(ddenlovr_state::hanakanz_rombank_w));
+ map(0x31, 0x31).w(this, FUNC(ddenlovr_state::hanakanz_dsw_w));
+ map(0x32, 0x32).r(this, FUNC(ddenlovr_state::hanakanz_dsw_r));
+ map(0x80, 0x80).w(this, FUNC(ddenlovr_state::hanakanz_blitter_data_w));
+ map(0x81, 0x81).w(this, FUNC(ddenlovr_state::hanakanz_palette_w));
+ map(0x83, 0x84).r(this, FUNC(ddenlovr_state::hanakanz_gfxrom_r));
+ map(0xa0, 0xa1).w("ym2413", FUNC(ym2413_device::write));
+ map(0xb0, 0xb0).portr("SYSTEM");
+ map(0xb1, 0xb2).r(this, FUNC(ddenlovr_state::hanakanz_keyb_r));
+ map(0xb3, 0xb3).w(this, FUNC(ddenlovr_state::hanakanz_coincounter_w));
+ map(0xb4, 0xb4).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w));
+ map(0xb6, 0xb6).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0xc0, 0xc0).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xe0, 0xef).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+}
// same as hkagerou, different inputs, no RTC
-ADDRESS_MAP_START(ddenlovr_state::kotbinyo_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x2c, 0x2c) AM_READWRITE(hanakanz_busy_r, hanakanz_oki_bank_w)
- AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
- AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w)
- AM_RANGE(0x31, 0x31) AM_WRITE(hanakanz_dsw_w)
- AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
- AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
- AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
- AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
- AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM")
+void ddenlovr_state::kotbinyo_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x2c, 0x2c).rw(this, FUNC(ddenlovr_state::hanakanz_busy_r), FUNC(ddenlovr_state::hanakanz_oki_bank_w));
+ map(0x2e, 0x2e).w(this, FUNC(ddenlovr_state::hanakanz_blitter_reg_w));
+ map(0x30, 0x30).w(this, FUNC(ddenlovr_state::hanakanz_rombank_w));
+ map(0x31, 0x31).w(this, FUNC(ddenlovr_state::hanakanz_dsw_w));
+ map(0x32, 0x32).r(this, FUNC(ddenlovr_state::hanakanz_dsw_r));
+ map(0x80, 0x80).w(this, FUNC(ddenlovr_state::hanakanz_blitter_data_w));
+ map(0x81, 0x81).w(this, FUNC(ddenlovr_state::hanakanz_palette_w));
+ map(0x83, 0x84).r(this, FUNC(ddenlovr_state::hanakanz_gfxrom_r));
+ map(0xa0, 0xa1).w("ym2413", FUNC(ym2413_device::write));
+ map(0xb0, 0xb0).portr("SYSTEM");
// AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r)
- AM_RANGE(0xb1, 0xb1) AM_READ_PORT("KEYB0")
- AM_RANGE(0xb2, 0xb2) AM_READ_PORT("KEYB1")
- AM_RANGE(0xb3, 0xb3) AM_WRITE(hanakanz_coincounter_w)
+ map(0xb1, 0xb1).portr("KEYB0");
+ map(0xb2, 0xb2).portr("KEYB1");
+ map(0xb3, 0xb3).w(this, FUNC(ddenlovr_state::hanakanz_coincounter_w));
// AM_RANGE(0xb4, 0xb4) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0xb6, 0xb6) AM_READ(hanakanz_rand_r)
- AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ map(0xb6, 0xb6).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0xc0, 0xc0).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
// AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
-ADDRESS_MAP_END
+}
// same as hkagerou, different inputs, no RTC
-ADDRESS_MAP_START(ddenlovr_state::kotbinsp_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x2c, 0x2c) AM_READWRITE(hanakanz_busy_r, hanakanz_oki_bank_w)
- AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
- AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w)
- AM_RANGE(0x31, 0x31) AM_WRITE(hanakanz_dsw_w)
- AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
- AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
- AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
- AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
- AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
+void ddenlovr_state::kotbinsp_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x2c, 0x2c).rw(this, FUNC(ddenlovr_state::hanakanz_busy_r), FUNC(ddenlovr_state::hanakanz_oki_bank_w));
+ map(0x2e, 0x2e).w(this, FUNC(ddenlovr_state::hanakanz_blitter_reg_w));
+ map(0x30, 0x30).w(this, FUNC(ddenlovr_state::hanakanz_rombank_w));
+ map(0x31, 0x31).w(this, FUNC(ddenlovr_state::hanakanz_dsw_w));
+ map(0x32, 0x32).r(this, FUNC(ddenlovr_state::hanakanz_dsw_r));
+ map(0x80, 0x80).w(this, FUNC(ddenlovr_state::hanakanz_blitter_data_w));
+ map(0x81, 0x81).w(this, FUNC(ddenlovr_state::hanakanz_palette_w));
+ map(0x83, 0x84).r(this, FUNC(ddenlovr_state::hanakanz_gfxrom_r));
+ map(0xa0, 0xa1).w("ym2413", FUNC(ym2413_device::write));
+ map(0x90, 0x90).portr("SYSTEM");
// AM_RANGE(0x91, 0x91) AM_READ(hanakanz_keyb_r)
- AM_RANGE(0x91, 0x91) AM_READ_PORT("KEYB0")
- AM_RANGE(0x92, 0x92) AM_READ_PORT("KEYB1")
- AM_RANGE(0x93, 0x93) AM_WRITE(hanakanz_coincounter_w)
+ map(0x91, 0x91).portr("KEYB0");
+ map(0x92, 0x92).portr("KEYB1");
+ map(0x93, 0x93).w(this, FUNC(ddenlovr_state::hanakanz_coincounter_w));
// AM_RANGE(0x94, 0x94) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0x96, 0x96) AM_READ(hanakanz_rand_r)
- AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ map(0x96, 0x96).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0xc0, 0xc0).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
// AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
-ADDRESS_MAP_END
+}
WRITE8_MEMBER(ddenlovr_state::mjreach1_protection_w)
@@ -2866,26 +2888,27 @@ READ8_MEMBER(ddenlovr_state::mjreach1_protection_r)
return m_prot_val;
}
-ADDRESS_MAP_START(ddenlovr_state::mjreach1_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x2c, 0x2c) AM_READWRITE(hanakanz_busy_r, hanakanz_oki_bank_w)
- AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
- AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w)
- AM_RANGE(0x31, 0x31) AM_WRITE(hanakanz_dsw_w)
- AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
- AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
- AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
- AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
- AM_RANGE(0x90, 0x90) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0x92, 0x92) AM_READ(hanakanz_rand_r)
- AM_RANGE(0x93, 0x93) AM_READWRITE(mjreach1_protection_r, mjreach1_protection_w)
- AM_RANGE(0x94, 0x94) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x95, 0x96) AM_READ(hanakanz_keyb_r)
- AM_RANGE(0x97, 0x97) AM_WRITE(hanakanz_coincounter_w)
- AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
-ADDRESS_MAP_END
+void ddenlovr_state::mjreach1_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x2c, 0x2c).rw(this, FUNC(ddenlovr_state::hanakanz_busy_r), FUNC(ddenlovr_state::hanakanz_oki_bank_w));
+ map(0x2e, 0x2e).w(this, FUNC(ddenlovr_state::hanakanz_blitter_reg_w));
+ map(0x30, 0x30).w(this, FUNC(ddenlovr_state::hanakanz_rombank_w));
+ map(0x31, 0x31).w(this, FUNC(ddenlovr_state::hanakanz_dsw_w));
+ map(0x32, 0x32).r(this, FUNC(ddenlovr_state::hanakanz_dsw_r));
+ map(0x80, 0x80).w(this, FUNC(ddenlovr_state::hanakanz_blitter_data_w));
+ map(0x81, 0x81).w(this, FUNC(ddenlovr_state::hanakanz_palette_w));
+ map(0x83, 0x84).r(this, FUNC(ddenlovr_state::hanakanz_gfxrom_r));
+ map(0x90, 0x90).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w));
+ map(0x92, 0x92).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0x93, 0x93).rw(this, FUNC(ddenlovr_state::mjreach1_protection_r), FUNC(ddenlovr_state::mjreach1_protection_w));
+ map(0x94, 0x94).portr("SYSTEM");
+ map(0x95, 0x96).r(this, FUNC(ddenlovr_state::hanakanz_keyb_r));
+ map(0x97, 0x97).w(this, FUNC(ddenlovr_state::hanakanz_coincounter_w));
+ map(0xa0, 0xa1).w("ym2413", FUNC(ym2413_device::write));
+ map(0xc0, 0xc0).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xe0, 0xef).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+}
/***************************************************************************
@@ -2992,28 +3015,29 @@ WRITE8_MEMBER(ddenlovr_state::mjchuuka_oki_bank_w )
#endif
}
-ADDRESS_MAP_START(ddenlovr_state::mjchuuka_portmap) // 16 bit I/O
- AM_RANGE(0x13, 0x13) AM_MIRROR(0xff00) AM_READ(hanakanz_rand_r)
- AM_RANGE(0x1c, 0x1c) AM_MIRROR(0xff00) AM_WRITE(hanakanz_rombank_w)
- AM_RANGE(0x1e, 0x1e) AM_MIRROR(0xff00) AM_WRITE(mjchuuka_oki_bank_w)
- AM_RANGE(0x20, 0x20) AM_SELECT(0xff00) AM_WRITE(mjchuuka_blitter_w)
- AM_RANGE(0x21, 0x21) AM_SELECT(0xff00) AM_WRITE(mjchuuka_palette_w)
- AM_RANGE(0x23, 0x23) AM_MIRROR(0xff00) AM_READ(mjchuuka_gfxrom_0_r)
- AM_RANGE(0x40, 0x40) AM_MIRROR(0xff00) AM_WRITE(mjchuuka_coincounter_w)
- AM_RANGE(0x41, 0x41) AM_MIRROR(0xff00) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0x42, 0x42) AM_MIRROR(0xff00) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x43, 0x44) AM_MIRROR(0xff00) AM_READ(mjchuuka_keyb_r)
- AM_RANGE(0x45, 0x45) AM_MIRROR(0xff00) AM_READ(mjchuuka_gfxrom_1_r)
- AM_RANGE(0x60, 0x60) AM_MIRROR(0xff00) AM_READ_PORT("DSW1")
- AM_RANGE(0x61, 0x61) AM_MIRROR(0xff00) AM_READ_PORT("DSW2")
- AM_RANGE(0x62, 0x62) AM_MIRROR(0xff00) AM_READ_PORT("DSW3")
- AM_RANGE(0x63, 0x63) AM_MIRROR(0xff00) AM_READ_PORT("DSW4")
- AM_RANGE(0x64, 0x64) AM_MIRROR(0xff00) AM_READ_PORT("DSW5") // DSW 1-4 high bits
- AM_RANGE(0x80, 0x80) AM_MIRROR(0xff00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
-ADDRESS_MAP_END
+void ddenlovr_state::mjchuuka_portmap(address_map &map)
+{ // 16 bit I/O
+ map(0x13, 0x13).mirror(0xff00).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0x1c, 0x1c).mirror(0xff00).w(this, FUNC(ddenlovr_state::hanakanz_rombank_w));
+ map(0x1e, 0x1e).mirror(0xff00).w(this, FUNC(ddenlovr_state::mjchuuka_oki_bank_w));
+ map(0x20, 0x20).select(0xff00).w(this, FUNC(ddenlovr_state::mjchuuka_blitter_w));
+ map(0x21, 0x21).select(0xff00).w(this, FUNC(ddenlovr_state::mjchuuka_palette_w));
+ map(0x23, 0x23).mirror(0xff00).r(this, FUNC(ddenlovr_state::mjchuuka_gfxrom_0_r));
+ map(0x40, 0x40).mirror(0xff00).w(this, FUNC(ddenlovr_state::mjchuuka_coincounter_w));
+ map(0x41, 0x41).mirror(0xff00).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w));
+ map(0x42, 0x42).mirror(0xff00).portr("SYSTEM");
+ map(0x43, 0x44).mirror(0xff00).r(this, FUNC(ddenlovr_state::mjchuuka_keyb_r));
+ map(0x45, 0x45).mirror(0xff00).r(this, FUNC(ddenlovr_state::mjchuuka_gfxrom_1_r));
+ map(0x60, 0x60).mirror(0xff00).portr("DSW1");
+ map(0x61, 0x61).mirror(0xff00).portr("DSW2");
+ map(0x62, 0x62).mirror(0xff00).portr("DSW3");
+ map(0x63, 0x63).mirror(0xff00).portr("DSW4");
+ map(0x64, 0x64).mirror(0xff00).portr("DSW5"); // DSW 1-4 high bits
+ map(0x80, 0x80).mirror(0xff00).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xa0, 0xa1).mirror(0xff00).w("ym2413", FUNC(ym2413_device::write));
+ map(0xc0, 0xcf).mirror(0xff00).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0xe0, 0xe1).mirror(0xff00).w("aysnd", FUNC(ay8910_device::address_data_w));
+}
/***************************************************************************
@@ -3037,57 +3061,59 @@ READ8_MEMBER(ddenlovr_state::mjschuka_protection_r)
return m_prot_val;
}
-ADDRESS_MAP_START(ddenlovr_state::mjschuka_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x0f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(sryudens_rambank_w) // ? ack on RTC int
- AM_RANGE(0x1e, 0x1e) AM_WRITE(mjflove_rombank_w)
+void ddenlovr_state::mjschuka_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x0f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x1c, 0x1c).nopr().w(this, FUNC(ddenlovr_state::sryudens_rambank_w)); // ? ack on RTC int
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::mjflove_rombank_w));
- AM_RANGE(0x20, 0x23) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x24, 0x27) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x28, 0x2b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x2c, 0x2f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x34, 0x34) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x35, 0x35) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x36, 0x36) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x38, 0x38) AM_READNOP // ? ack or watchdog
+ map(0x20, 0x23).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x24, 0x27).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x28, 0x2b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x2c, 0x2f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x34, 0x34).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x35, 0x35).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x36, 0x36).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x38, 0x38).nopr(); // ? ack or watchdog
- AM_RANGE(0x40, 0x41) AM_WRITE(mjmyster_blitter_w)
- AM_RANGE(0x43, 0x43) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x50, 0x50) AM_WRITE(mjflove_okibank_w)
+ map(0x40, 0x41).w(this, FUNC(ddenlovr_state::mjmyster_blitter_w));
+ map(0x43, 0x43).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x50, 0x50).w(this, FUNC(ddenlovr_state::mjflove_okibank_w));
- AM_RANGE(0x54, 0x54) AM_READWRITE(mjschuka_protection_r, mjschuka_protection_w)
+ map(0x54, 0x54).rw(this, FUNC(ddenlovr_state::mjschuka_protection_r), FUNC(ddenlovr_state::mjschuka_protection_w));
// 58 writes ? (0/1)
- AM_RANGE(0x5c, 0x5c) AM_READ(hanakanz_rand_r)
-
- AM_RANGE(0x60, 0x60) AM_WRITE(sryudens_coincounter_w)
- AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0x62, 0x62) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x63, 0x64) AM_READ(sryudens_keyb_r)
-
- AM_RANGE(0x68, 0x68) AM_READ_PORT("DSW1")
- AM_RANGE(0x69, 0x69) AM_READ_PORT("DSW2")
- AM_RANGE(0x6a, 0x6a) AM_READ_PORT("DSW3")
- AM_RANGE(0x6b, 0x6b) AM_READ_PORT("DSW4")
- AM_RANGE(0x6c, 0x6c) AM_READ_PORT("DSW5") // DSW 1-4 high bits
- AM_RANGE(0x70, 0x71) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
- AM_RANGE(0x74, 0x74) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x78, 0x79) AM_DEVWRITE("ym2413", ym2413_device, write)
-ADDRESS_MAP_END
+ map(0x5c, 0x5c).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+
+ map(0x60, 0x60).w(this, FUNC(ddenlovr_state::sryudens_coincounter_w));
+ map(0x61, 0x61).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w));
+ map(0x62, 0x62).portr("SYSTEM");
+ map(0x63, 0x64).r(this, FUNC(ddenlovr_state::sryudens_keyb_r));
+
+ map(0x68, 0x68).portr("DSW1");
+ map(0x69, 0x69).portr("DSW2");
+ map(0x6a, 0x6a).portr("DSW3");
+ map(0x6b, 0x6b).portr("DSW4");
+ map(0x6c, 0x6c).portr("DSW5"); // DSW 1-4 high bits
+ map(0x70, 0x71).w("aysnd", FUNC(ay8910_device::address_data_w));
+ map(0x74, 0x74).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x78, 0x79).w("ym2413", FUNC(ym2413_device::write));
+}
/***************************************************************************
Mahjong The Mysterious World
***************************************************************************/
-ADDRESS_MAP_START(ddenlovr_state::mjmyster_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM/RAM (Banked)
- AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w) // RAM enabled by bit 4 of rombank
- AM_RANGE(0xf200, 0xffff) AM_WRITENOP // ""
-ADDRESS_MAP_END
+void ddenlovr_state::mjmyster_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM/RAM (Banked)
+ map(0xf000, 0xf1ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)); // RAM enabled by bit 4 of rombank
+ map(0xf200, 0xffff).nopw(); // ""
+}
WRITE8_MEMBER(ddenlovr_state::mjmyster_rambank_w)
{
@@ -3168,33 +3194,34 @@ WRITE8_MEMBER(ddenlovr_state::mjmyster_blitter_w)
blitter_w(0, offset, data, 0xfc);
}
-ADDRESS_MAP_START(ddenlovr_state::mjmyster_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_WRITE(mjmyster_blitter_w)
- AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x1c, 0x1c) AM_WRITE(mjmyster_rambank_w)
- AM_RANGE(0x1e, 0x1e) AM_WRITE(mmpanic_rombank_w)
- AM_RANGE(0x20, 0x20) AM_WRITE(mjmyster_select2_w)
- AM_RANGE(0x21, 0x21) AM_WRITE(mjmyster_coincounter_w)
- AM_RANGE(0x22, 0x22) AM_READ(mjmyster_coins_r)
- AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r)
- AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x42, 0x43) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0x60, 0x6f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x8c, 0x8f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x94, 0x94) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x95, 0x95) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x98, 0x98) AM_READ(unk_r) // ? must be 78 on startup
- AM_RANGE(0xc2, 0xc2) AM_READ(hanakanz_rand_r)
- AM_RANGE(0xc3, 0xc3) AM_READ(mjmyster_dsw_r)
-ADDRESS_MAP_END
+void ddenlovr_state::mjmyster_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w(this, FUNC(ddenlovr_state::mjmyster_blitter_w));
+ map(0x03, 0x03).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x1c, 0x1c).w(this, FUNC(ddenlovr_state::mjmyster_rambank_w));
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::mmpanic_rombank_w));
+ map(0x20, 0x20).w(this, FUNC(ddenlovr_state::mjmyster_select2_w));
+ map(0x21, 0x21).w(this, FUNC(ddenlovr_state::mjmyster_coincounter_w));
+ map(0x22, 0x22).r(this, FUNC(ddenlovr_state::mjmyster_coins_r));
+ map(0x23, 0x23).r(this, FUNC(ddenlovr_state::mjmyster_keyb_r));
+ map(0x40, 0x40).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x42, 0x43).w("ym2413", FUNC(ym2413_device::write));
+ map(0x44, 0x44).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x46, 0x46).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x48, 0x48).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0x60, 0x6f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x80, 0x83).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x84, 0x87).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x88, 0x8b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x8c, 0x8f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x94, 0x94).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x95, 0x95).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x96, 0x96).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x98, 0x98).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+ map(0xc2, 0xc2).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0xc3, 0xc3).r(this, FUNC(ddenlovr_state::mjmyster_dsw_r));
+}
/***************************************************************************
Hanafuda Hana Ginga
@@ -3216,15 +3243,16 @@ READ8_MEMBER(ddenlovr_state::hginga_protection_r)
return rom[0x10000 + 0x8000 * (m_hginga_rombank & 0x7) + 0xf601 - 0x8000];
}
-ADDRESS_MAP_START(ddenlovr_state::hginga_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM/RAM (Banked)
- AM_RANGE(0xf601, 0xf601) AM_READ(hginga_protection_r)
- AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w) // RAM enabled by bit 4 of rombank
- AM_RANGE(0xf700, 0xf706) AM_WRITENOP
-ADDRESS_MAP_END
+void ddenlovr_state::hginga_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM/RAM (Banked)
+ map(0xf601, 0xf601).r(this, FUNC(ddenlovr_state::hginga_protection_r));
+ map(0xf000, 0xf1ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)); // RAM enabled by bit 4 of rombank
+ map(0xf700, 0xf706).nopw();
+}
READ8_MEMBER(ddenlovr_state::hginga_dsw_r )
{
@@ -3338,31 +3366,32 @@ WRITE8_MEMBER(ddenlovr_state::hginga_blitter_w)
blitter_w(0, offset, data, 0xfc);
}
-ADDRESS_MAP_START(ddenlovr_state::hginga_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_WRITE(hginga_blitter_w)
- AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w)
- AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
- AM_RANGE(0x22, 0x23) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0x40, 0x40) AM_WRITE(hginga_input_w)
- AM_RANGE(0x41, 0x41) AM_WRITE(hginga_coins_w)
- AM_RANGE(0x42, 0x42) AM_READ(hginga_coins_r)
- AM_RANGE(0x43, 0x43) AM_READ(hginga_input_r)
- AM_RANGE(0x60, 0x6f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x80, 0x80) AM_WRITE(hginga_80_w)
- AM_RANGE(0xa0, 0xa3) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0xa4, 0xa7) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0xa8, 0xab) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0xac, 0xaf) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0xb4, 0xb4) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0xb5, 0xb5) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0xb6, 0xb6) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0xb8, 0xb8) AM_READ(unk_r) // ? must be 78 on startup
-ADDRESS_MAP_END
+void ddenlovr_state::hginga_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w(this, FUNC(ddenlovr_state::hginga_blitter_w));
+ map(0x03, 0x03).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x1c, 0x1c).nopr().w(this, FUNC(ddenlovr_state::mjmyster_rambank_w));
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::hginga_rombank_w));
+ map(0x22, 0x23).w("ym2413", FUNC(ym2413_device::write));
+ map(0x24, 0x24).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x26, 0x26).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x28, 0x28).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0x40, 0x40).w(this, FUNC(ddenlovr_state::hginga_input_w));
+ map(0x41, 0x41).w(this, FUNC(ddenlovr_state::hginga_coins_w));
+ map(0x42, 0x42).r(this, FUNC(ddenlovr_state::hginga_coins_r));
+ map(0x43, 0x43).r(this, FUNC(ddenlovr_state::hginga_input_r));
+ map(0x60, 0x6f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x80, 0x80).w(this, FUNC(ddenlovr_state::hginga_80_w));
+ map(0xa0, 0xa3).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0xa4, 0xa7).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0xa8, 0xab).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0xac, 0xaf).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0xb4, 0xb4).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0xb5, 0xb5).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0xb6, 0xb6).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0xb8, 0xb8).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+}
/***************************************************************************
@@ -3437,42 +3466,44 @@ READ8_MEMBER(ddenlovr_state::hgokou_protection_r)
return rom[0x10000 + 0x8000 * (m_hginga_rombank & 0x7) + 0xe601 - 0x8000];
}
-ADDRESS_MAP_START(ddenlovr_state::hgokou_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0xe000, 0xe1ff) AM_WRITE(rongrong_palette_w)
- AM_RANGE(0xe601, 0xe601) AM_READ(hgokou_protection_r)
- AM_RANGE(0xe700, 0xe706) AM_WRITENOP
-ADDRESS_MAP_END
+void ddenlovr_state::hgokou_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+ map(0xe000, 0xe1ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w));
+ map(0xe601, 0xe601).r(this, FUNC(ddenlovr_state::hgokou_protection_r));
+ map(0xe700, 0xe706).nopw();
+}
-ADDRESS_MAP_START(ddenlovr_state::hgokou_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_WRITE(hginga_blitter_w)
- AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w) // ? ack on RTC int
- AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
- AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x40, 0x43) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x44, 0x47) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x48, 0x4b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x4c, 0x4f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x54, 0x54) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x55, 0x55) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x56, 0x56) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x58, 0x58) AM_READ(unk_r) // ? must be 78 on startup
- AM_RANGE(0x60, 0x60) AM_WRITE(hgokou_dsw_sel_w)
- AM_RANGE(0x61, 0x61) AM_WRITE(hgokou_input_w)
- AM_RANGE(0x62, 0x62) AM_READ(hgokou_input_r)
- AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x82, 0x83) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x84, 0x84) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE(0x86, 0x86) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x88, 0x88) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0xb0, 0xb0) AM_READ(hanakanz_rand_r)
-ADDRESS_MAP_END
+void ddenlovr_state::hgokou_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w(this, FUNC(ddenlovr_state::hginga_blitter_w));
+ map(0x03, 0x03).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x1c, 0x1c).nopr().w(this, FUNC(ddenlovr_state::mjmyster_rambank_w)); // ? ack on RTC int
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::hginga_rombank_w));
+ map(0x20, 0x2f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x40, 0x43).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x44, 0x47).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x48, 0x4b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x4c, 0x4f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x54, 0x54).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x55, 0x55).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x56, 0x56).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x58, 0x58).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+ map(0x60, 0x60).w(this, FUNC(ddenlovr_state::hgokou_dsw_sel_w));
+ map(0x61, 0x61).w(this, FUNC(ddenlovr_state::hgokou_input_w));
+ map(0x62, 0x62).r(this, FUNC(ddenlovr_state::hgokou_input_r));
+ map(0x80, 0x80).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x82, 0x83).w("ym2413", FUNC(ym2413_device::write));
+ map(0x84, 0x84).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x86, 0x86).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x88, 0x88).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0xb0, 0xb0).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+}
/***************************************************************************
@@ -3503,32 +3534,33 @@ READ8_MEMBER(ddenlovr_state::hgokbang_input_r)
return 0xff;
}
-ADDRESS_MAP_START(ddenlovr_state::hgokbang_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_WRITE(hginga_blitter_w)
- AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w) // ? ack on RTC int
- AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
- AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x22, 0x23) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0x40, 0x40) AM_WRITE(hgokou_dsw_sel_w)
- AM_RANGE(0x41, 0x41) AM_WRITE(hgokou_input_w)
- AM_RANGE(0x42, 0x42) AM_READ(hgokou_input_r)
- AM_RANGE(0x43, 0x43) AM_READ(hgokbang_input_r)
- AM_RANGE(0x60, 0x6f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0xa0, 0xa3) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0xa4, 0xa7) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0xa8, 0xab) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0xac, 0xaf) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0xb4, 0xb4) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0xb5, 0xb5) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0xb6, 0xb6) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0xb8, 0xb8) AM_READ(unk_r) // ? must be 78 on startup
- AM_RANGE(0xe0, 0xe0) AM_READ(hanakanz_rand_r)
-ADDRESS_MAP_END
+void ddenlovr_state::hgokbang_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w(this, FUNC(ddenlovr_state::hginga_blitter_w));
+ map(0x03, 0x03).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x1c, 0x1c).nopr().w(this, FUNC(ddenlovr_state::mjmyster_rambank_w)); // ? ack on RTC int
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::hginga_rombank_w));
+ map(0x20, 0x20).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x22, 0x23).w("ym2413", FUNC(ym2413_device::write));
+ map(0x24, 0x24).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x26, 0x26).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x28, 0x28).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0x40, 0x40).w(this, FUNC(ddenlovr_state::hgokou_dsw_sel_w));
+ map(0x41, 0x41).w(this, FUNC(ddenlovr_state::hgokou_input_w));
+ map(0x42, 0x42).r(this, FUNC(ddenlovr_state::hgokou_input_r));
+ map(0x43, 0x43).r(this, FUNC(ddenlovr_state::hgokbang_input_r));
+ map(0x60, 0x6f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0xa0, 0xa3).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0xa4, 0xa7).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0xa8, 0xab).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0xac, 0xaf).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0xb4, 0xb4).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0xb5, 0xb5).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0xb6, 0xb6).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0xb8, 0xb8).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+ map(0xe0, 0xe0).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+}
/***************************************************************************
@@ -3584,37 +3616,39 @@ WRITE8_MEMBER(ddenlovr_state::hparadis_coin_w)
}
}
-ADDRESS_MAP_START(ddenlovr_state::hparadis_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0xc000, 0xc1ff) AM_WRITE(rongrong_palette_w)
-ADDRESS_MAP_END
+void ddenlovr_state::hparadis_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+ map(0xc000, 0xc1ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w));
+}
// the RTC seems unused
-ADDRESS_MAP_START(ddenlovr_state::hparadis_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w)
- AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x1b, 0x1b) AM_READWRITE(rongrong_blitter_busy_r, rongrong_blitter_busy_w)
- AM_RANGE(0x1c, 0x1c) AM_READ(hparadis_dsw_r)
- AM_RANGE(0x1e, 0x1e) AM_WRITE(hparadis_select_w)
- AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x60, 0x61) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x8c, 0x8f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x94, 0x94) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x95, 0x95) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x98, 0x98) AM_READ(unk_r) // ? must be 78 on startup
- AM_RANGE(0xa0, 0xa0) AM_WRITE(hginga_input_w)
- AM_RANGE(0xa1, 0xa1) AM_WRITE(hparadis_coin_w)
- AM_RANGE(0xa2, 0xa3) AM_READ(hparadis_input_r)
- AM_RANGE(0xc2, 0xc2) AM_WRITENOP // enables palette RAM at c000
-ADDRESS_MAP_END
+void ddenlovr_state::hparadis_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w(this, FUNC(ddenlovr_state::rongrong_blitter_w));
+ map(0x03, 0x03).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x1b, 0x1b).rw(this, FUNC(ddenlovr_state::rongrong_blitter_busy_r), FUNC(ddenlovr_state::rongrong_blitter_busy_w));
+ map(0x1c, 0x1c).r(this, FUNC(ddenlovr_state::hparadis_dsw_r));
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::hparadis_select_w));
+ map(0x40, 0x40).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x60, 0x61).w("ym2413", FUNC(ym2413_device::write));
+ map(0x80, 0x83).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x84, 0x87).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x88, 0x8b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x8c, 0x8f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x94, 0x94).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x95, 0x95).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x96, 0x96).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x98, 0x98).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+ map(0xa0, 0xa0).w(this, FUNC(ddenlovr_state::hginga_input_w));
+ map(0xa1, 0xa1).w(this, FUNC(ddenlovr_state::hparadis_coin_w));
+ map(0xa2, 0xa3).r(this, FUNC(ddenlovr_state::hparadis_input_r));
+ map(0xc2, 0xc2).nopw(); // enables palette RAM at c000
+}
/***************************************************************************
@@ -3636,33 +3670,34 @@ READ8_MEMBER(ddenlovr_state::mjmywrld_coins_r)
return 0xff;
}
-ADDRESS_MAP_START(ddenlovr_state::mjmywrld_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_WRITE(mjmyster_blitter_w)
- AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x1c, 0x1c) AM_WRITE(mjmyster_rambank_w)
- AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
- AM_RANGE(0x20, 0x20) AM_WRITE(mjmyster_select2_w)
- AM_RANGE(0x21, 0x21) AM_WRITE(mjmyster_coincounter_w)
- AM_RANGE(0x22, 0x22) AM_READ(mjmywrld_coins_r)
- AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r)
- AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x42, 0x43) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0x60, 0x6f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x8c, 0x8f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x94, 0x94) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x95, 0x95) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x98, 0x98) AM_READ(unk_r) // ? must be 78 on startup
- AM_RANGE(0xc0, 0xc0) AM_READ(hanakanz_rand_r)
- AM_RANGE(0xe0, 0xe0) AM_READ(mjmyster_dsw_r)
-ADDRESS_MAP_END
+void ddenlovr_state::mjmywrld_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w(this, FUNC(ddenlovr_state::mjmyster_blitter_w));
+ map(0x03, 0x03).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x1c, 0x1c).w(this, FUNC(ddenlovr_state::mjmyster_rambank_w));
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::hginga_rombank_w));
+ map(0x20, 0x20).w(this, FUNC(ddenlovr_state::mjmyster_select2_w));
+ map(0x21, 0x21).w(this, FUNC(ddenlovr_state::mjmyster_coincounter_w));
+ map(0x22, 0x22).r(this, FUNC(ddenlovr_state::mjmywrld_coins_r));
+ map(0x23, 0x23).r(this, FUNC(ddenlovr_state::mjmyster_keyb_r));
+ map(0x40, 0x40).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x42, 0x43).w("ym2413", FUNC(ym2413_device::write));
+ map(0x44, 0x44).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x46, 0x46).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x48, 0x48).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0x60, 0x6f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x80, 0x83).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x84, 0x87).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x88, 0x8b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x8c, 0x8f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x94, 0x94).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x95, 0x95).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x96, 0x96).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x98, 0x98).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+ map(0xc0, 0xc0).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0xe0, 0xe0).r(this, FUNC(ddenlovr_state::mjmyster_dsw_r));
+}
/***************************************************************************
@@ -3720,47 +3755,48 @@ READ16_MEMBER(ddenlovr_state::akamaru_e0010d_r)
return 0xffff; // read but not used, it seems
}
-ADDRESS_MAP_START(ddenlovr_state::akamaru_map)
- AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
+void ddenlovr_state::akamaru_map(address_map &map)
+{
+ map(0x000000, 0x1fffff).rom(); // ROM
- AM_RANGE(0x213570, 0x213571) AM_WRITE(akamaru_protection1_w) // OKI bank
- AM_RANGE(0x624680, 0x624681) AM_READ(akamaru_protection1_r)
+ map(0x213570, 0x213571).w(this, FUNC(ddenlovr_state::akamaru_protection1_w)); // OKI bank
+ map(0x624680, 0x624681).r(this, FUNC(ddenlovr_state::akamaru_protection1_r));
- AM_RANGE(0xd00000, 0xd003ff) AM_WRITE8(rongrong_palette_w, 0x00ff)
- AM_RANGE(0xd00e00, 0xd00e09) AM_WRITENOP
- AM_RANGE(0xd01000, 0xd017ff) AM_WRITENOP // 0
+ map(0xd00000, 0xd003ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w)).umask16(0x00ff);
+ map(0xd00e00, 0xd00e09).nopw();
+ map(0xd01000, 0xd017ff).nopw(); // 0
- AM_RANGE(0xe00040, 0xe00047) AM_WRITE8(ddenlovr_palette_base_w, 0x00ff)
- AM_RANGE(0xe00048, 0xe0004f) AM_WRITE8(ddenlovr_palette_mask_w, 0x00ff)
- AM_RANGE(0xe00050, 0xe00057) AM_WRITE8(ddenlovr_transparency_pen_w, 0x00ff)
- AM_RANGE(0xe00058, 0xe0005f) AM_WRITE8(ddenlovr_transparency_mask_w, 0x00ff)
- AM_RANGE(0xe00068, 0xe00069) AM_WRITE8(ddenlovr_bgcolor_w, 0x00ff)
- AM_RANGE(0xe0006a, 0xe0006b) AM_WRITE8(ddenlovr_priority_w, 0x00ff)
- AM_RANGE(0xe0006c, 0xe0006d) AM_WRITE8(ddenlovr_bgcolor_w, 0x00ff)
- AM_RANGE(0xe00070, 0xe00071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
- AM_RANGE(0xe00080, 0xe00083) AM_WRITE8(ddenlovr_blitter_w, 0x00ff)
- AM_RANGE(0xe00086, 0xe00087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
+ map(0xe00040, 0xe00047).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w)).umask16(0x00ff);
+ map(0xe00048, 0xe0004f).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w)).umask16(0x00ff);
+ map(0xe00050, 0xe00057).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w)).umask16(0x00ff);
+ map(0xe00058, 0xe0005f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w)).umask16(0x00ff);
+ map(0xe00069, 0xe00069).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0xe0006b, 0xe0006b).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0xe0006d, 0xe0006d).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0xe00070, 0xe00071).r(this, FUNC(ddenlovr_state::unk16_r)); // ? must be 78 on startup (not necessary in ddlover)
+ map(0xe00080, 0xe00083).w(this, FUNC(ddenlovr_state::ddenlovr_blitter_w)).umask16(0x00ff);
+ map(0xe00086, 0xe00087).r(this, FUNC(ddenlovr_state::ddenlovr_gfxrom_r)); // Video Chip
- AM_RANGE(0xe00100, 0xe00101) AM_READ_PORT("P1")
- AM_RANGE(0xe00102, 0xe00103) AM_READ_PORT("P2")
- AM_RANGE(0xe00104, 0xe00105) AM_READ_PORT("SYSTEM")
+ map(0xe00100, 0xe00101).portr("P1");
+ map(0xe00102, 0xe00103).portr("P2");
+ map(0xe00104, 0xe00105).portr("SYSTEM");
- AM_RANGE(0xe00106, 0xe00107) AM_READ(akamaru_protection2_r)
- AM_RANGE(0xe00108, 0xe0010b) AM_WRITEONLY AM_SHARE("protection2")
+ map(0xe00106, 0xe00107).r(this, FUNC(ddenlovr_state::akamaru_protection2_r));
+ map(0xe00108, 0xe0010b).writeonly().share("protection2");
- AM_RANGE(0xe0010c, 0xe0010d) AM_READ(akamaru_e0010d_r)
- AM_RANGE(0xe00200, 0xe00201) AM_READ(akamaru_dsw_r) // DSW
+ map(0xe0010c, 0xe0010d).r(this, FUNC(ddenlovr_state::akamaru_e0010d_r));
+ map(0xe00200, 0xe00201).r(this, FUNC(ddenlovr_state::akamaru_dsw_r)); // DSW
- AM_RANGE(0xe00204, 0xe00205) AM_READ(akamaru_blitter_r) // Blitter Busy & IRQ
+ map(0xe00204, 0xe00205).r(this, FUNC(ddenlovr_state::akamaru_blitter_r)); // Blitter Busy & IRQ
- AM_RANGE(0xe00300, 0xe0030f) AM_DEVWRITE8("mainlatch", ls259_device, write_d0, 0x00ff) AM_READNOP
- AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
- AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0x00ff)
- AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
- AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
- AM_RANGE(0xe00700, 0xe00701) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
-ADDRESS_MAP_END
+ map(0xe00300, 0xe0030f).w(m_mainlatch, FUNC(ls259_device::write_d0)).umask16(0x00ff).nopr();
+ map(0xe00400, 0xe00403).w("ym2413", FUNC(ym2413_device::write)).umask16(0x00ff);
+ map(0xe00500, 0xe0051f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff);
+ map(0xe00600, 0xe00603).w("aysnd", FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
+ map(0xe00605, 0xe00605).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0xe00701, 0xe00701).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0xff0000, 0xffffff).ram(); // RAM
+}
/***************************************************************************
@@ -3822,34 +3858,35 @@ WRITE8_MEMBER(ddenlovr_state::mjflove_coincounter_w)
}
}
-ADDRESS_MAP_START(ddenlovr_state::mjflove_portmap) // 16 bit I/O
- AM_RANGE(0x0010, 0x0010) AM_READ(hanakanz_rand_r) AM_MIRROR(0xff00)
- AM_RANGE(0x001c, 0x001c) AM_READ_PORT("DSW2") AM_MIRROR(0xff00)
- AM_RANGE(0x001e, 0x001e) AM_WRITE(hanakanz_keyb_w) AM_MIRROR(0xff00)
- AM_RANGE(0x0020, 0x0023) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x0024, 0x0027) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x0028, 0x002b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x002c, 0x002f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x0034, 0x0034) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x0035, 0x0035) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x0036, 0x0036) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x0038, 0x0038) AM_READNOP // ? ack or watchdog
- AM_RANGE(0x0040, 0x0041) AM_WRITE(mjflove_blitter_w) AM_MIRROR(0xff00)
- AM_RANGE(0x0043, 0x0043) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x0080, 0x0081) AM_READ(mjflove_keyb_r)
- AM_RANGE(0x0082, 0x0082) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x00da, 0x00da) AM_READ(mjflove_protection_r) AM_MIRROR(0xff00)
- AM_RANGE(0x00f2, 0x00f2) AM_WRITE(mjmyster_rambank_w) AM_MIRROR(0xff00)
- AM_RANGE(0x00f8, 0x00f8) AM_WRITE(mjflove_rombank_w) AM_MIRROR(0xff00)
- AM_RANGE(0x00fa, 0x00fa) AM_WRITE(mjflove_okibank_w)
- AM_RANGE(0x0100, 0x0100) AM_READ_PORT("DSW1")
- AM_RANGE(0x0181, 0x0181) AM_WRITENOP // ? int. enable
- AM_RANGE(0x0184, 0x0184) AM_WRITE(mjflove_coincounter_w)
- AM_RANGE(0x0200, 0x0201) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x0280, 0x028f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x0300, 0x0301) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
- AM_RANGE(0x0380, 0x0380) AM_DEVREADWRITE("oki", okim6295_device, read, write)
-ADDRESS_MAP_END
+void ddenlovr_state::mjflove_portmap(address_map &map)
+{ // 16 bit I/O
+ map(0x0010, 0x0010).r(this, FUNC(ddenlovr_state::hanakanz_rand_r)).mirror(0xff00);
+ map(0x001c, 0x001c).portr("DSW2").mirror(0xff00);
+ map(0x001e, 0x001e).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w)).mirror(0xff00);
+ map(0x0020, 0x0023).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x0024, 0x0027).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x0028, 0x002b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x002c, 0x002f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x0034, 0x0034).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x0035, 0x0035).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x0036, 0x0036).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x0038, 0x0038).nopr(); // ? ack or watchdog
+ map(0x0040, 0x0041).w(this, FUNC(ddenlovr_state::mjflove_blitter_w)).mirror(0xff00);
+ map(0x0043, 0x0043).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x0080, 0x0081).r(this, FUNC(ddenlovr_state::mjflove_keyb_r));
+ map(0x0082, 0x0082).portr("SYSTEM");
+ map(0x00da, 0x00da).r(this, FUNC(ddenlovr_state::mjflove_protection_r)).mirror(0xff00);
+ map(0x00f2, 0x00f2).w(this, FUNC(ddenlovr_state::mjmyster_rambank_w)).mirror(0xff00);
+ map(0x00f8, 0x00f8).w(this, FUNC(ddenlovr_state::mjflove_rombank_w)).mirror(0xff00);
+ map(0x00fa, 0x00fa).w(this, FUNC(ddenlovr_state::mjflove_okibank_w));
+ map(0x0100, 0x0100).portr("DSW1");
+ map(0x0181, 0x0181).nopw(); // ? int. enable
+ map(0x0184, 0x0184).w(this, FUNC(ddenlovr_state::mjflove_coincounter_w));
+ map(0x0200, 0x0201).w("ym2413", FUNC(ym2413_device::write));
+ map(0x0280, 0x028f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x0300, 0x0301).w("aysnd", FUNC(ay8910_device::address_data_w));
+ map(0x0380, 0x0380).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+}
/***************************************************************************
@@ -3872,24 +3909,25 @@ READ8_MEMBER(ddenlovr_state::jongtei_busy_r)
return 0x04; // !bit 2 = blitter busy
}
-ADDRESS_MAP_START(ddenlovr_state::jongtei_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x2c, 0x2c) AM_READWRITE(jongtei_busy_r, jongtei_okibank_w)
- AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
- AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w)
- AM_RANGE(0x31, 0x31) AM_WRITE(jongtei_dsw_keyb_w)
- AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
- AM_RANGE(0x40, 0x40) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x41, 0x42) AM_READ(hanakanz_keyb_r)
- AM_RANGE(0x43, 0x43) AM_WRITE(hanakanz_coincounter_w)
- AM_RANGE(0x46, 0x46) AM_READ(hanakanz_rand_r)
- AM_RANGE(0x60, 0x60) AM_WRITE(hanakanz_blitter_data_w)
- AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_palette_w)
- AM_RANGE(0x63, 0x64) AM_READ(hanakanz_gfxrom_r)
- AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
-ADDRESS_MAP_END
+void ddenlovr_state::jongtei_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x2c, 0x2c).rw(this, FUNC(ddenlovr_state::jongtei_busy_r), FUNC(ddenlovr_state::jongtei_okibank_w));
+ map(0x2e, 0x2e).w(this, FUNC(ddenlovr_state::hanakanz_blitter_reg_w));
+ map(0x30, 0x30).w(this, FUNC(ddenlovr_state::hanakanz_rombank_w));
+ map(0x31, 0x31).w(this, FUNC(ddenlovr_state::jongtei_dsw_keyb_w));
+ map(0x32, 0x32).r(this, FUNC(ddenlovr_state::hanakanz_dsw_r));
+ map(0x40, 0x40).portr("SYSTEM");
+ map(0x41, 0x42).r(this, FUNC(ddenlovr_state::hanakanz_keyb_r));
+ map(0x43, 0x43).w(this, FUNC(ddenlovr_state::hanakanz_coincounter_w));
+ map(0x46, 0x46).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0x60, 0x60).w(this, FUNC(ddenlovr_state::hanakanz_blitter_data_w));
+ map(0x61, 0x61).w(this, FUNC(ddenlovr_state::hanakanz_palette_w));
+ map(0x63, 0x64).r(this, FUNC(ddenlovr_state::hanakanz_gfxrom_r));
+ map(0x80, 0x81).w("ym2413", FUNC(ym2413_device::write));
+ map(0xa0, 0xa0).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xc0, 0xcf).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+}
/***************************************************************************
@@ -3928,38 +3966,40 @@ READ8_MEMBER(ddenlovr_state::mjgnight_protection_r)
return m_prot_val;
}
-ADDRESS_MAP_START(ddenlovr_state::mjgnight_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x2c, 0x2c) AM_READWRITE(jongtei_busy_r, jongtei_okibank_w)
- AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
- AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w)
- AM_RANGE(0x31, 0x31) AM_WRITE(jongtei_dsw_keyb_w)
- AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
- AM_RANGE(0x40, 0x40) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x41, 0x42) AM_READ(hanakanz_keyb_r)
- AM_RANGE(0x46, 0x46) AM_WRITE(mjgnight_coincounter_w)
- AM_RANGE(0x46, 0x46) AM_READ(hanakanz_rand_r)
- AM_RANGE(0x47, 0x47) AM_READWRITE(mjgnight_protection_r, mjgnight_protection_w)
- AM_RANGE(0x60, 0x60) AM_WRITE(hanakanz_blitter_data_w)
- AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_palette_w)
- AM_RANGE(0x63, 0x64) AM_READ(hanakanz_gfxrom_r)
- AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
-ADDRESS_MAP_END
+void ddenlovr_state::mjgnight_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x2c, 0x2c).rw(this, FUNC(ddenlovr_state::jongtei_busy_r), FUNC(ddenlovr_state::jongtei_okibank_w));
+ map(0x2e, 0x2e).w(this, FUNC(ddenlovr_state::hanakanz_blitter_reg_w));
+ map(0x30, 0x30).w(this, FUNC(ddenlovr_state::hanakanz_rombank_w));
+ map(0x31, 0x31).w(this, FUNC(ddenlovr_state::jongtei_dsw_keyb_w));
+ map(0x32, 0x32).r(this, FUNC(ddenlovr_state::hanakanz_dsw_r));
+ map(0x40, 0x40).portr("SYSTEM");
+ map(0x41, 0x42).r(this, FUNC(ddenlovr_state::hanakanz_keyb_r));
+ map(0x46, 0x46).w(this, FUNC(ddenlovr_state::mjgnight_coincounter_w));
+ map(0x46, 0x46).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0x47, 0x47).rw(this, FUNC(ddenlovr_state::mjgnight_protection_r), FUNC(ddenlovr_state::mjgnight_protection_w));
+ map(0x60, 0x60).w(this, FUNC(ddenlovr_state::hanakanz_blitter_data_w));
+ map(0x61, 0x61).w(this, FUNC(ddenlovr_state::hanakanz_palette_w));
+ map(0x63, 0x64).r(this, FUNC(ddenlovr_state::hanakanz_gfxrom_r));
+ map(0x80, 0x81).w("ym2413", FUNC(ym2413_device::write));
+ map(0xa0, 0xa0).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xc0, 0xcf).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+}
/***************************************************************************
Mahjong Seiryu Densetsu
***************************************************************************/
-ADDRESS_MAP_START(ddenlovr_state::sryudens_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0xe000, 0xe1ff) AM_WRITE(rongrong_palette_w)
-ADDRESS_MAP_END
+void ddenlovr_state::sryudens_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+ map(0xe000, 0xe1ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w));
+}
READ8_MEMBER(ddenlovr_state::sryudens_keyb_r)
{
@@ -4003,36 +4043,37 @@ WRITE8_MEMBER(ddenlovr_state::sryudens_rambank_w)
//logerror("%04x: rambank = %02x\n", m_maincpu->pc(), data);
}
-ADDRESS_MAP_START(ddenlovr_state::sryudens_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x02, 0x03) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x04, 0x05) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
- AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(sryudens_rambank_w) // ? ack on RTC int
- AM_RANGE(0x1e, 0x1e) AM_WRITE(mjflove_rombank_w)
- AM_RANGE(0x20, 0x23) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x24, 0x27) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x28, 0x2b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x2c, 0x2f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x34, 0x34) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x35, 0x35) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x36, 0x36) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x38, 0x38) AM_READNOP // ? ack or watchdog
- AM_RANGE(0x40, 0x41) AM_WRITE(mjflove_blitter_w)
- AM_RANGE(0x43, 0x43) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x50, 0x50) AM_READ(hanakanz_rand_r)
- AM_RANGE(0x70, 0x70) AM_WRITE(quizchq_oki_bank_w)
- AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x90, 0x90) AM_READ_PORT("DSW1")
- AM_RANGE(0x91, 0x91) AM_READ_PORT("DSW2")
- AM_RANGE(0x92, 0x92) AM_READ_PORT("DSW4")
- AM_RANGE(0x93, 0x93) AM_READ_PORT("DSW3")
- AM_RANGE(0x94, 0x94) AM_READ_PORT("DSWTOP")
- AM_RANGE(0x98, 0x98) AM_WRITE(sryudens_coincounter_w)
- AM_RANGE(0x99, 0x99) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0x9a, 0x9a) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x9b, 0x9c) AM_READ(sryudens_keyb_r)
-ADDRESS_MAP_END
+void ddenlovr_state::sryudens_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x02, 0x03).w("ym2413", FUNC(ym2413_device::write));
+ map(0x04, 0x05).w("aysnd", FUNC(ay8910_device::address_data_w));
+ map(0x1c, 0x1c).nopr().w(this, FUNC(ddenlovr_state::sryudens_rambank_w)); // ? ack on RTC int
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::mjflove_rombank_w));
+ map(0x20, 0x23).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x24, 0x27).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x28, 0x2b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x2c, 0x2f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x34, 0x34).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x35, 0x35).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x36, 0x36).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x38, 0x38).nopr(); // ? ack or watchdog
+ map(0x40, 0x41).w(this, FUNC(ddenlovr_state::mjflove_blitter_w));
+ map(0x43, 0x43).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x50, 0x50).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0x70, 0x70).w(this, FUNC(ddenlovr_state::quizchq_oki_bank_w));
+ map(0x80, 0x8f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x90, 0x90).portr("DSW1");
+ map(0x91, 0x91).portr("DSW2");
+ map(0x92, 0x92).portr("DSW4");
+ map(0x93, 0x93).portr("DSW3");
+ map(0x94, 0x94).portr("DSWTOP");
+ map(0x98, 0x98).w(this, FUNC(ddenlovr_state::sryudens_coincounter_w));
+ map(0x99, 0x99).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w));
+ map(0x9a, 0x9a).portr("SYSTEM");
+ map(0x9b, 0x9c).r(this, FUNC(ddenlovr_state::sryudens_keyb_r));
+}
/***************************************************************************
@@ -4057,45 +4098,47 @@ WRITE8_MEMBER(ddenlovr_state::janshinp_coincounter_w)
#endif
}
-ADDRESS_MAP_START(ddenlovr_state::janshinp_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0xe000, 0xe1ff) AM_WRITE(rongrong_palette_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(ddenlovr_state::janshinp_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1")
- AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW2")
- AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW4")
- AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW3")
- AM_RANGE(0x04, 0x04) AM_READ_PORT("DSWTOP")
- AM_RANGE(0x08, 0x08) AM_WRITE(janshinp_coincounter_w)
- AM_RANGE(0x09, 0x09) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0x0a, 0x0a) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x0b, 0x0c) AM_READ(sryudens_keyb_r)
- AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(sryudens_rambank_w) // ? ack on RTC int
- AM_RANGE(0x1e, 0x1e) AM_WRITE(mjflove_rombank_w)
- AM_RANGE(0x20, 0x23) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x24, 0x27) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x28, 0x2b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x2c, 0x2f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x34, 0x34) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x35, 0x35) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x36, 0x36) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x38, 0x38) AM_READNOP // ? ack or watchdog
- AM_RANGE(0x40, 0x41) AM_WRITE(mjflove_blitter_w)
- AM_RANGE(0x43, 0x43) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x50, 0x5f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x60, 0x60) AM_READ(hanakanz_rand_r)
- AM_RANGE(0x70, 0x70) AM_WRITE(quizchq_oki_bank_w)
- AM_RANGE(0x80, 0x80) AM_RAM
- AM_RANGE(0x90, 0x90) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x92, 0x93) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x94, 0x95) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
-ADDRESS_MAP_END
+void ddenlovr_state::janshinp_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+ map(0xe000, 0xe1ff).w(this, FUNC(ddenlovr_state::rongrong_palette_w));
+}
+
+void ddenlovr_state::janshinp_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).portr("DSW1");
+ map(0x01, 0x01).portr("DSW2");
+ map(0x02, 0x02).portr("DSW4");
+ map(0x03, 0x03).portr("DSW3");
+ map(0x04, 0x04).portr("DSWTOP");
+ map(0x08, 0x08).w(this, FUNC(ddenlovr_state::janshinp_coincounter_w));
+ map(0x09, 0x09).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w));
+ map(0x0a, 0x0a).portr("SYSTEM");
+ map(0x0b, 0x0c).r(this, FUNC(ddenlovr_state::sryudens_keyb_r));
+ map(0x1c, 0x1c).nopr().w(this, FUNC(ddenlovr_state::sryudens_rambank_w)); // ? ack on RTC int
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::mjflove_rombank_w));
+ map(0x20, 0x23).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x24, 0x27).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x28, 0x2b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x2c, 0x2f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x34, 0x34).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x35, 0x35).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x36, 0x36).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x38, 0x38).nopr(); // ? ack or watchdog
+ map(0x40, 0x41).w(this, FUNC(ddenlovr_state::mjflove_blitter_w));
+ map(0x43, 0x43).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x50, 0x5f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x60, 0x60).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0x70, 0x70).w(this, FUNC(ddenlovr_state::quizchq_oki_bank_w));
+ map(0x80, 0x80).ram();
+ map(0x90, 0x90).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x92, 0x93).w("ym2413", FUNC(ym2413_device::write));
+ map(0x94, 0x95).w("aysnd", FUNC(ay8910_device::address_data_w));
+}
/***************************************************************************
@@ -4142,41 +4185,43 @@ READ8_MEMBER(ddenlovr_state::seljan2_dsw_r )
return 0xff;
}
-ADDRESS_MAP_START(ddenlovr_state::seljan2_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
- AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(seljan2_palette_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(ddenlovr_state::seljan2_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x0f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x1c, 0x1c) AM_READ(seljan2_busy_r) AM_WRITE(hanakanz_keyb_w)
- AM_RANGE(0x1e, 0x1e) AM_WRITE(sryudens_coincounter_w)
- AM_RANGE(0x20, 0x23) AM_WRITE(ddenlovr_palette_base_w)
- AM_RANGE(0x24, 0x27) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE(0x28, 0x2b) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE(0x2c, 0x2f) AM_WRITE(ddenlovr_transparency_mask_w)
- AM_RANGE(0x34, 0x34) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE(0x35, 0x35) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE(0x36, 0x36) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE(0x38, 0x38) AM_READNOP // ? ack or watchdog
- AM_RANGE(0x40, 0x41) AM_WRITE(mjflove_blitter_w)
- AM_RANGE(0x43, 0x43) AM_READ(rongrong_gfxrom_r)
- AM_RANGE(0x50, 0x51) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0x54, 0x54) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x58, 0x58) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0x5c, 0x5c) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w) // dsw
- AM_RANGE(0x60, 0x60) AM_READNOP AM_WRITE(sryudens_rambank_w) // ? ack on RTC int
- AM_RANGE(0x70, 0x70) AM_WRITE(seljan2_rombank_w)
- AM_RANGE(0x80, 0x80) AM_READ_PORT("SYSTEM") AM_WRITE(seljan2_palette_enab_w) // writes: 1 = palette RAM at b000, 0 = ROM
- AM_RANGE(0x84, 0x84) AM_READ(daimyojn_keyb1_r)
- AM_RANGE(0x88, 0x88) AM_READ(daimyojn_keyb2_r)
- AM_RANGE(0x90, 0x90) AM_WRITE(quizchq_oki_bank_w)
- AM_RANGE(0xa0, 0xa0) AM_READ(hanakanz_rand_r)
-ADDRESS_MAP_END
+void ddenlovr_state::seljan2_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom(); // ROM
+ map(0x6000, 0x6fff).ram(); // RAM
+ map(0x7000, 0x7fff).bankrw("bank2"); // RAM (Banked)
+ map(0x8000, 0xffff).bankr("bank1"); // ROM (Banked)
+ map(0x8000, 0xffff).w(this, FUNC(ddenlovr_state::seljan2_palette_w));
+}
+
+void ddenlovr_state::seljan2_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x0f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x1c, 0x1c).r(this, FUNC(ddenlovr_state::seljan2_busy_r)).w(this, FUNC(ddenlovr_state::hanakanz_keyb_w));
+ map(0x1e, 0x1e).w(this, FUNC(ddenlovr_state::sryudens_coincounter_w));
+ map(0x20, 0x23).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w));
+ map(0x24, 0x27).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0x28, 0x2b).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0x2c, 0x2f).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
+ map(0x34, 0x34).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0x35, 0x35).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0x36, 0x36).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0x38, 0x38).nopr(); // ? ack or watchdog
+ map(0x40, 0x41).w(this, FUNC(ddenlovr_state::mjflove_blitter_w));
+ map(0x43, 0x43).r(this, FUNC(ddenlovr_state::rongrong_gfxrom_r));
+ map(0x50, 0x51).w("ym2413", FUNC(ym2413_device::write));
+ map(0x54, 0x54).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x58, 0x58).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0x5c, 0x5c).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); // dsw
+ map(0x60, 0x60).nopr().w(this, FUNC(ddenlovr_state::sryudens_rambank_w)); // ? ack on RTC int
+ map(0x70, 0x70).w(this, FUNC(ddenlovr_state::seljan2_rombank_w));
+ map(0x80, 0x80).portr("SYSTEM").w(this, FUNC(ddenlovr_state::seljan2_palette_enab_w)); // writes: 1 = palette RAM at b000, 0 = ROM
+ map(0x84, 0x84).r(this, FUNC(ddenlovr_state::daimyojn_keyb1_r));
+ map(0x88, 0x88).r(this, FUNC(ddenlovr_state::daimyojn_keyb2_r));
+ map(0x90, 0x90).w(this, FUNC(ddenlovr_state::quizchq_oki_bank_w));
+ map(0xa0, 0xa0).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+}
/***************************************************************************
@@ -4299,47 +4344,49 @@ WRITE8_MEMBER(ddenlovr_state::htengoku_blit_romregion_w)
logerror("%04x: unmapped romregion=%02X\n", m_maincpu->pc(), data);
}
-ADDRESS_MAP_START(ddenlovr_state::htengoku_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x07 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
- AM_RANGE( 0x20, 0x20 ) AM_WRITE(htengoku_select_w) // Controls
- AM_RANGE( 0x21, 0x21 ) AM_WRITE(htengoku_coin_w) //
- AM_RANGE( 0x22, 0x22 ) AM_READ(htengoku_coin_r) //
- AM_RANGE( 0x23, 0x23 ) AM_READ(htengoku_input_r) //
- AM_RANGE( 0x40, 0x40 ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // AY8910
- AM_RANGE( 0x42, 0x42 ) AM_DEVREAD("aysnd", ay8910_device, data_r) //
- AM_RANGE( 0x44, 0x44 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) //
- AM_RANGE( 0x46, 0x47 ) AM_DEVWRITE("ym2413", ym2413_device, write) //
- AM_RANGE( 0x80, 0x8f ) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE( 0xa0, 0xa3 ) AM_WRITE(ddenlovr_palette_base_w) // ddenlovr mixer chip
- AM_RANGE( 0xa4, 0xa7 ) AM_WRITE(ddenlovr_palette_mask_w)
- AM_RANGE( 0xa8, 0xab ) AM_WRITE(ddenlovr_transparency_pen_w)
- AM_RANGE( 0xac, 0xaf ) AM_WRITE(ddenlovr_transparency_mask_w)
+void ddenlovr_state::htengoku_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x07).w(this, FUNC(ddenlovr_state::dynax_blitter_rev2_w)); // Blitter
+ map(0x20, 0x20).w(this, FUNC(ddenlovr_state::htengoku_select_w)); // Controls
+ map(0x21, 0x21).w(this, FUNC(ddenlovr_state::htengoku_coin_w)); //
+ map(0x22, 0x22).r(this, FUNC(ddenlovr_state::htengoku_coin_r)); //
+ map(0x23, 0x23).r(this, FUNC(ddenlovr_state::htengoku_input_r)); //
+ map(0x40, 0x40).w("aysnd", FUNC(ay8910_device::address_w)); // AY8910
+ map(0x42, 0x42).r("aysnd", FUNC(ay8910_device::data_r)); //
+ map(0x44, 0x44).w("aysnd", FUNC(ay8910_device::data_w)); //
+ map(0x46, 0x47).w("ym2413", FUNC(ym2413_device::write)); //
+ map(0x80, 0x8f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0xa0, 0xa3).w(this, FUNC(ddenlovr_state::ddenlovr_palette_base_w)); // ddenlovr mixer chip
+ map(0xa4, 0xa7).w(this, FUNC(ddenlovr_state::ddenlovr_palette_mask_w));
+ map(0xa8, 0xab).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_pen_w));
+ map(0xac, 0xaf).w(this, FUNC(ddenlovr_state::ddenlovr_transparency_mask_w));
// b0-b3 ?
- AM_RANGE( 0xb4, 0xb4 ) AM_WRITE(ddenlovr_bgcolor_w)
- AM_RANGE( 0xb5, 0xb5 ) AM_WRITE(ddenlovr_priority_w)
- AM_RANGE( 0xb6, 0xb6 ) AM_WRITE(ddenlovr_layer_enable_w)
- AM_RANGE( 0xb8, 0xb8 ) AM_READ(unk_r) // ? must be 78 on startup
- AM_RANGE( 0xc2, 0xc2 ) AM_WRITE(htengoku_rombank_w) // BANK ROM Select
- AM_RANGE( 0xc0, 0xc0 ) AM_WRITE(dynax_extra_scrollx_w) // screen scroll X
- AM_RANGE( 0xc1, 0xc1 ) AM_WRITE(dynax_extra_scrolly_w) // screen scroll Y
- AM_RANGE( 0xc3, 0xc3 ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
- AM_RANGE( 0xc4, 0xc4 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen
- AM_RANGE( 0xc5, 0xc5 ) AM_WRITE(dynax_blit_dest_w) // Destination Layer
- AM_RANGE( 0xc6, 0xc6 ) AM_WRITE(htengoku_blit_romregion_w) // Blitter ROM bank
- AM_RANGE( 0xe0, 0xe7 ) AM_DEVWRITE("mainlatch", ls259_device, write_d1)
-ADDRESS_MAP_END
+ map(0xb4, 0xb4).w(this, FUNC(ddenlovr_state::ddenlovr_bgcolor_w));
+ map(0xb5, 0xb5).w(this, FUNC(ddenlovr_state::ddenlovr_priority_w));
+ map(0xb6, 0xb6).w(this, FUNC(ddenlovr_state::ddenlovr_layer_enable_w));
+ map(0xb8, 0xb8).r(this, FUNC(ddenlovr_state::unk_r)); // ? must be 78 on startup
+ map(0xc2, 0xc2).w(this, FUNC(ddenlovr_state::htengoku_rombank_w)); // BANK ROM Select
+ map(0xc0, 0xc0).w(this, FUNC(ddenlovr_state::dynax_extra_scrollx_w)); // screen scroll X
+ map(0xc1, 0xc1).w(this, FUNC(ddenlovr_state::dynax_extra_scrolly_w)); // screen scroll Y
+ map(0xc3, 0xc3).w(this, FUNC(ddenlovr_state::dynax_vblank_ack_w)); // VBlank IRQ Ack
+ map(0xc4, 0xc4).w(this, FUNC(ddenlovr_state::dynax_blit_pen_w)); // Destination Pen
+ map(0xc5, 0xc5).w(this, FUNC(ddenlovr_state::dynax_blit_dest_w)); // Destination Layer
+ map(0xc6, 0xc6).w(this, FUNC(ddenlovr_state::htengoku_blit_romregion_w)); // Blitter ROM bank
+ map(0xe0, 0xe7).w(m_mainlatch, FUNC(ls259_device::write_d1));
+}
/***************************************************************************
Hanafuda Hana Tengoku
***************************************************************************/
-ADDRESS_MAP_START(ddenlovr_state::htengoku_mem_map)
- AM_RANGE( 0x0000, 0x5fff ) AM_ROM
- AM_RANGE( 0x6000, 0x6fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x7000, 0x7fff ) AM_RAM
- AM_RANGE( 0x8000, 0xffff ) AM_DEVICE("bankdev", address_map_bank_device, amap8)
-ADDRESS_MAP_END
+void ddenlovr_state::htengoku_mem_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom();
+ map(0x6000, 0x6fff).ram().share("nvram");
+ map(0x7000, 0x7fff).ram();
+ map(0x8000, 0xffff).m(m_bankdev, FUNC(address_map_bank_device::amap8));
+}
ADDRESS_MAP_START(dynax_state::htengoku_banked_map)
AM_RANGE(0x00000, 0x3ffff) AM_ROM AM_REGION("maincpu", 0x10000)
@@ -4502,28 +4549,29 @@ READ8_MEMBER(ddenlovr_state::daimyojn_year_hack_r)
return offset ? 1 : 0; // year = 0x10 (BCD)
}
-ADDRESS_MAP_START(ddenlovr_state::daimyojn_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x2c, 0x2c) AM_READWRITE(jongtei_busy_r, daimyojn_okibank_w)
- AM_RANGE(0x2e, 0x2e) AM_WRITE(daimyojn_palette_sel_w)
- AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_blitter_reg_w)
- AM_RANGE(0x31, 0x31) AM_WRITE(jongtei_dsw_keyb_w)
- AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
- AM_RANGE(0x40, 0x40) AM_WRITE(daimyojn_blitter_data_palette_w)
- AM_RANGE(0x42, 0x44) AM_READ(hanakanz_gfxrom_r)
- AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE(0x8a, 0x8b) AM_READ(daimyojn_year_hack_r) // ?
- AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
- AM_RANGE(0xa2, 0xa2) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xa8, 0xa8) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xaa, 0xaa) AM_READ(daimyojn_keyb1_r)
- AM_RANGE(0xac, 0xac) AM_READ(daimyojn_keyb2_r)
- AM_RANGE(0xae, 0xae) AM_WRITE(hanakanz_coincounter_w)
- AM_RANGE(0xb0, 0xb0) AM_WRITE(mjmyster_rambank_w)
- AM_RANGE(0xc0, 0xc0) AM_WRITE(mjflove_rombank_w)
- AM_RANGE(0xd0, 0xd0) AM_READ(hanakanz_rand_r)
- AM_RANGE(0xe0, 0xe0) AM_READWRITE(daimyojn_protection_r, daimyojn_protection_w)
-ADDRESS_MAP_END
+void ddenlovr_state::daimyojn_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x2c, 0x2c).rw(this, FUNC(ddenlovr_state::jongtei_busy_r), FUNC(ddenlovr_state::daimyojn_okibank_w));
+ map(0x2e, 0x2e).w(this, FUNC(ddenlovr_state::daimyojn_palette_sel_w));
+ map(0x30, 0x30).w(this, FUNC(ddenlovr_state::hanakanz_blitter_reg_w));
+ map(0x31, 0x31).w(this, FUNC(ddenlovr_state::jongtei_dsw_keyb_w));
+ map(0x32, 0x32).r(this, FUNC(ddenlovr_state::hanakanz_dsw_r));
+ map(0x40, 0x40).w(this, FUNC(ddenlovr_state::daimyojn_blitter_data_palette_w));
+ map(0x42, 0x44).r(this, FUNC(ddenlovr_state::hanakanz_gfxrom_r));
+ map(0x80, 0x8f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x8a, 0x8b).r(this, FUNC(ddenlovr_state::daimyojn_year_hack_r)); // ?
+ map(0xa0, 0xa1).w("ym2413", FUNC(ym2413_device::write));
+ map(0xa2, 0xa2).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xa8, 0xa8).portr("SYSTEM");
+ map(0xaa, 0xaa).r(this, FUNC(ddenlovr_state::daimyojn_keyb1_r));
+ map(0xac, 0xac).r(this, FUNC(ddenlovr_state::daimyojn_keyb2_r));
+ map(0xae, 0xae).w(this, FUNC(ddenlovr_state::hanakanz_coincounter_w));
+ map(0xb0, 0xb0).w(this, FUNC(ddenlovr_state::mjmyster_rambank_w));
+ map(0xc0, 0xc0).w(this, FUNC(ddenlovr_state::mjflove_rombank_w));
+ map(0xd0, 0xd0).r(this, FUNC(ddenlovr_state::hanakanz_rand_r));
+ map(0xe0, 0xe0).rw(this, FUNC(ddenlovr_state::daimyojn_protection_r), FUNC(ddenlovr_state::daimyojn_protection_w));
+}