diff options
Diffstat (limited to 'src/mame/drivers/puckpkmn.cpp')
-rw-r--r-- | src/mame/drivers/puckpkmn.cpp | 77 |
1 files changed, 40 insertions, 37 deletions
diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp index 78a400fc0f3..9c1233627bc 100644 --- a/src/mame/drivers/puckpkmn.cpp +++ b/src/mame/drivers/puckpkmn.cpp @@ -213,49 +213,51 @@ static INPUT_PORTS_START( jzth ) INPUT_PORTS_END -ADDRESS_MAP_START(md_boot_state::puckpkmn_map) - AM_RANGE(0x000000, 0x3fffff) AM_ROM /* Main 68k Program Roms */ - AM_RANGE(0x700010, 0x700011) AM_READ_PORT("P2") - AM_RANGE(0x700012, 0x700013) AM_READ_PORT("P1") - AM_RANGE(0x700014, 0x700015) AM_READ_PORT("UNK") - AM_RANGE(0x700016, 0x700017) AM_READ_PORT("DSW1") - AM_RANGE(0x700018, 0x700019) AM_READ_PORT("DSW2") - AM_RANGE(0x700022, 0x700023) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0xa04000, 0xa04003) AM_READWRITE8(megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff) - AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w) - - AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) +void md_boot_state::puckpkmn_map(address_map &map) +{ + map(0x000000, 0x3fffff).rom(); /* Main 68k Program Roms */ + map(0x700010, 0x700011).portr("P2"); + map(0x700012, 0x700013).portr("P1"); + map(0x700014, 0x700015).portr("UNK"); + map(0x700016, 0x700017).portr("DSW1"); + map(0x700018, 0x700019).portr("DSW2"); + map(0x700023, 0x700023).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0xa04000, 0xa04003).rw(this, FUNC(md_boot_state::megadriv_68k_YM2612_read), FUNC(md_boot_state::megadriv_68k_YM2612_write)); + map(0xc00000, 0xc0001f).rw(m_vdp, FUNC(sega315_5313_device::vdp_r), FUNC(sega315_5313_device::vdp_w)); + + map(0xe00000, 0xe0ffff).ram().mirror(0x1f0000); /* Unknown reads/writes: */ - AM_RANGE(0xa00000, 0xa00551) AM_WRITENOP /* ? */ + map(0xa00000, 0xa00551).nopw(); /* ? */ // AM_RANGE(0xa10000, 0xa10001) AM_READNOP /* ? once */ - AM_RANGE(0xa10002, 0xa10005) AM_NOP /* ? alternative way of reading inputs ? */ - AM_RANGE(0xa11100, 0xa11101) AM_NOP /* ? */ + map(0xa10002, 0xa10005).noprw(); /* ? alternative way of reading inputs ? */ + map(0xa11100, 0xa11101).noprw(); /* ? */ // AM_RANGE(0xa10008, 0xa1000d) AM_WRITENOP /* ? once */ // AM_RANGE(0xa14000, 0xa14003) AM_WRITENOP /* ? once */ - AM_RANGE(0xa11200, 0xa11201) AM_WRITENOP /* ? */ -ADDRESS_MAP_END + map(0xa11200, 0xa11201).nopw(); /* ? */ +} -ADDRESS_MAP_START(md_boot_state::jzth_map) - AM_RANGE(0x000000, 0x3fffff) AM_ROM - AM_RANGE(0x700010, 0x700011) AM_READ_PORT("P2") - AM_RANGE(0x700012, 0x700013) AM_READ_PORT("P1") - AM_RANGE(0x700014, 0x700015) AM_READ_PORT("UNK") - AM_RANGE(0x700016, 0x700017) AM_READ_PORT("DSW1") - AM_RANGE(0x700018, 0x700019) AM_READ_PORT("DSW2") - AM_RANGE(0x700022, 0x700023) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0xa04000, 0xa04003) AM_READWRITE8( megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff) - AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w) +void md_boot_state::jzth_map(address_map &map) +{ + map(0x000000, 0x3fffff).rom(); + map(0x700010, 0x700011).portr("P2"); + map(0x700012, 0x700013).portr("P1"); + map(0x700014, 0x700015).portr("UNK"); + map(0x700016, 0x700017).portr("DSW1"); + map(0x700018, 0x700019).portr("DSW2"); + map(0x700023, 0x700023).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0xa04000, 0xa04003).rw(this, FUNC(md_boot_state::megadriv_68k_YM2612_read), FUNC(md_boot_state::megadriv_68k_YM2612_write)); + map(0xc00000, 0xc0001f).rw(m_vdp, FUNC(sega315_5313_device::vdp_r), FUNC(sega315_5313_device::vdp_w)); - AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) + map(0xe00000, 0xe0ffff).ram().mirror(0x1f0000); - AM_RANGE(0xa00000, 0xa00551) AM_NOP + map(0xa00000, 0xa00551).noprw(); - AM_RANGE(0xA11100, 0xA11101) AM_NOP + map(0xA11100, 0xA11101).noprw(); - AM_RANGE(0x710000, 0x710001) AM_READWRITE(bl_710000_r,bl_710000_w) // protection, will erase the VDP address causing writes to 0 unless this returns 0xe -ADDRESS_MAP_END + map(0x710000, 0x710001).rw(this, FUNC(md_boot_state::bl_710000_r), FUNC(md_boot_state::bl_710000_w)); // protection, will erase the VDP address causing writes to 0 unless this returns 0xe +} READ16_MEMBER(md_boot_state::puckpkmna_70001c_r) { @@ -269,11 +271,12 @@ READ16_MEMBER(md_boot_state::puckpkmna_4b2476_r) return 0x3400; } -ADDRESS_MAP_START(md_boot_state::puckpkmna_map) - AM_IMPORT_FROM( puckpkmn_map ) - AM_RANGE(0x4b2476, 0x4b2477) AM_READ(puckpkmna_4b2476_r) - AM_RANGE(0x70001c, 0x70001d) AM_READ(puckpkmna_70001c_r) -ADDRESS_MAP_END +void md_boot_state::puckpkmna_map(address_map &map) +{ + puckpkmn_map(map); + map(0x4b2476, 0x4b2477).r(this, FUNC(md_boot_state::puckpkmna_4b2476_r)); + map(0x70001c, 0x70001d).r(this, FUNC(md_boot_state::puckpkmna_70001c_r)); +} MACHINE_CONFIG_START(md_boot_state::puckpkmn) md_ntsc(config); |