diff options
Diffstat (limited to 'src/mame/drivers/konamim2.cpp')
-rw-r--r-- | src/mame/drivers/konamim2.cpp | 102 |
1 files changed, 54 insertions, 48 deletions
diff --git a/src/mame/drivers/konamim2.cpp b/src/mame/drivers/konamim2.cpp index eececad4fcb..30973076bad 100644 --- a/src/mame/drivers/konamim2.cpp +++ b/src/mame/drivers/konamim2.cpp @@ -1170,71 +1170,77 @@ READ8_MEMBER(konamim2_state::id7_r) return 0x07; } -ADDRESS_MAP_START(konamim2_state::m2_main) - AM_RANGE(0x00000000, 0x0000007f) AM_RAM // ??? - AM_RANGE(0x00010040, 0x00010047) AM_READWRITE(irq_enable_r, irq_enable_w) - AM_RANGE(0x00010050, 0x00010057) AM_READ(irq_active_r) - AM_RANGE(0x00020000, 0x00020007) AM_READWRITE(unk4_r, unk4_w) - AM_RANGE(0x00020400, 0x000207ff) AM_RAM // ??? - AM_RANGE(0x00020800, 0x00020807) AM_RAM // ??? - AM_RANGE(0x00030000, 0x00030007) AM_READ(unk30000_r) - AM_RANGE(0x00030010, 0x00030017) AM_WRITE(video_w) - AM_RANGE(0x00030030, 0x00030037) AM_READ(unk30030_r) - AM_RANGE(0x00030400, 0x00030407) AM_WRITE32(video_irq_ack_w,0x00000000ffffffffU) +void konamim2_state::m2_main(address_map &map) +{ + map(0x00000000, 0x0000007f).ram(); // ??? + map(0x00010040, 0x00010047).rw(this, FUNC(konamim2_state::irq_enable_r), FUNC(konamim2_state::irq_enable_w)); + map(0x00010050, 0x00010057).r(this, FUNC(konamim2_state::irq_active_r)); + map(0x00020000, 0x00020007).rw(this, FUNC(konamim2_state::unk4_r), FUNC(konamim2_state::unk4_w)); + map(0x00020400, 0x000207ff).ram(); // ??? + map(0x00020800, 0x00020807).ram(); // ??? + map(0x00030000, 0x00030007).r(this, FUNC(konamim2_state::unk30000_r)); + map(0x00030010, 0x00030017).w(this, FUNC(konamim2_state::video_w)); + map(0x00030030, 0x00030037).r(this, FUNC(konamim2_state::unk30030_r)); + map(0x00030404, 0x00030407).w(this, FUNC(konamim2_state::video_irq_ack_w)); - AM_RANGE(0x01000000, 0x01000fff) AM_READWRITE(cde_r, cde_w) + map(0x01000000, 0x01000fff).rw(this, FUNC(konamim2_state::cde_r), FUNC(konamim2_state::cde_w)); - AM_RANGE(0x02000000, 0x02000fff) AM_READ(device2_r) + map(0x02000000, 0x02000fff).r(this, FUNC(konamim2_state::device2_r)); - AM_RANGE(0x03000000, 0x03000007) AM_READ8(id3_r, 0x00ff000000000000U) + map(0x03000001, 0x03000001).r(this, FUNC(konamim2_state::id3_r)); - AM_RANGE(0x04000000, 0x04000007) AM_READ8(id4_r, 0x00ff000000000000U) - AM_RANGE(0x04000010, 0x04000017) AM_WRITE8(serial_w,0x00000000000000ffU) - AM_RANGE(0x04000018, 0x0400001f) AM_READ(unk1_r) // serial status - AM_RANGE(0x04000020, 0x04000027) AM_WRITE(reset_w) - AM_RANGE(0x04000418, 0x0400041f) AM_WRITE(unk4000418_w) // serial status ack - AM_RANGE(0x04000208, 0x0400020f) AM_READ(unk3_r) - AM_RANGE(0x04000280, 0x04000287) AM_READ(unk4000280_r) + map(0x04000001, 0x04000001).r(this, FUNC(konamim2_state::id4_r)); + map(0x04000017, 0x04000017).w(this, FUNC(konamim2_state::serial_w)); + map(0x04000018, 0x0400001f).r(this, FUNC(konamim2_state::unk1_r)); // serial status + map(0x04000020, 0x04000027).w(this, FUNC(konamim2_state::reset_w)); + map(0x04000418, 0x0400041f).w(this, FUNC(konamim2_state::unk4000418_w)); // serial status ack + map(0x04000208, 0x0400020f).r(this, FUNC(konamim2_state::unk3_r)); + map(0x04000280, 0x04000287).r(this, FUNC(konamim2_state::unk4000280_r)); - AM_RANGE(0x05000000, 0x05000007) AM_READ8(id5_r, 0x00ff000000000000U) + map(0x05000001, 0x05000001).r(this, FUNC(konamim2_state::id5_r)); - AM_RANGE(0x06000000, 0x06000007) AM_READ8(id6_r, 0x00ff000000000000U) + map(0x06000001, 0x06000001).r(this, FUNC(konamim2_state::id6_r)); - AM_RANGE(0x07000000, 0x07000007) AM_READ8(id7_r, 0x00ff000000000000U) + map(0x07000001, 0x07000001).r(this, FUNC(konamim2_state::id7_r)); - AM_RANGE(0x10000008, 0x10001007) AM_NOP // ??? + map(0x10000008, 0x10001007).noprw(); // ??? - AM_RANGE(0x20000000, 0x201fffff) AM_ROM AM_SHARE("share2") - AM_RANGE(0x40000000, 0x407fffff) AM_RAM AM_SHARE("main_ram") - AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("boot", 0) AM_SHARE("share2") -ADDRESS_MAP_END + map(0x20000000, 0x201fffff).rom().share("share2"); + map(0x40000000, 0x407fffff).ram().share("main_ram"); + map(0xfff00000, 0xffffffff).rom().region("boot", 0).share("share2"); +} -ADDRESS_MAP_START(konamim2_state::m2_main_m) - AM_IMPORT_FROM( m2_main ) - AM_RANGE(0x10000000, 0x10000007) AM_READ(cpu_r<true>) -ADDRESS_MAP_END +void konamim2_state::m2_main_m(address_map &map) +{ + m2_main(map); + map(0x10000000, 0x10000007).r(this, FUNC(konamim2_state::cpu_r<true>)); +} -ADDRESS_MAP_START(konamim2_state::m2_main_s) - AM_IMPORT_FROM( m2_main ) - AM_RANGE(0x10000000, 0x10000007) AM_READ(cpu_r<false>) -ADDRESS_MAP_END +void konamim2_state::m2_main_s(address_map &map) +{ + m2_main(map); + map(0x10000000, 0x10000007).r(this, FUNC(konamim2_state::cpu_r<false>)); +} -ADDRESS_MAP_START(konamim2_state::_3do_m2_main) +void konamim2_state::_3do_m2_main(address_map &map) +{ // ADDRESS_MAP_UNMAP_HIGH - AM_IMPORT_FROM( m2_main ) + m2_main(map); // AM_RANGE(0x00000000, 0x000cffff) devices? -ADDRESS_MAP_END +} -ADDRESS_MAP_START(konamim2_state::_3do_m2_main_m) - AM_IMPORT_FROM( _3do_m2_main ) - AM_RANGE(0x10000000, 0x10000007) AM_READ(cpu_r<true>) -ADDRESS_MAP_END +void konamim2_state::_3do_m2_main_m(address_map &map) +{ + _3do_m2_main(map); + map(0x10000000, 0x10000007).r(this, FUNC(konamim2_state::cpu_r<true>)); +} -ADDRESS_MAP_START(konamim2_state::_3do_m2_main_s) - AM_IMPORT_FROM( _3do_m2_main ) - AM_RANGE(0x10000000, 0x10000007) AM_READ(cpu_r<false>) -ADDRESS_MAP_END +void konamim2_state::_3do_m2_main_s(address_map &map) +{ + _3do_m2_main(map); + map(0x10000000, 0x10000007).r(this, FUNC(konamim2_state::cpu_r<false>)); +} static INPUT_PORTS_START( m2 ) |