diff options
Diffstat (limited to 'src/mame/drivers/pengadvb.cpp')
-rw-r--r-- | src/mame/drivers/pengadvb.cpp | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/src/mame/drivers/pengadvb.cpp b/src/mame/drivers/pengadvb.cpp index ddfd39bc020..34e01c4a6be 100644 --- a/src/mame/drivers/pengadvb.cpp +++ b/src/mame/drivers/pengadvb.cpp @@ -101,34 +101,37 @@ WRITE8_MEMBER(pengadvb_state::megarom_bank_w) m_bank[offset >> 13 & 3]->set_entry(data & 0xf); } -ADDRESS_MAP_START(pengadvb_state::program_mem) - AM_RANGE(0x0000, 0xffff) AM_READWRITE(mem_r, mem_w) // 4 pages of 16KB -ADDRESS_MAP_END +void pengadvb_state::program_mem(address_map &map) +{ + map(0x0000, 0xffff).rw(this, FUNC(pengadvb_state::mem_r), FUNC(pengadvb_state::mem_w)); // 4 pages of 16KB +} -ADDRESS_MAP_START(pengadvb_state::bank_mem) +void pengadvb_state::bank_mem(address_map &map) +{ // slot 0, MSX BIOS - AM_RANGE(0x00000, 0x07fff) AM_ROM AM_REGION("maincpu", 0) + map(0x00000, 0x07fff).rom().region("maincpu", 0); // slot 1, MegaROM - AM_RANGE(0x14000, 0x15fff) AM_ROMBANK("bank0") - AM_RANGE(0x16000, 0x17fff) AM_ROMBANK("bank1") - AM_RANGE(0x18000, 0x19fff) AM_ROMBANK("bank2") - AM_RANGE(0x1a000, 0x1bfff) AM_ROMBANK("bank3") - AM_RANGE(0x14000, 0x1bfff) AM_WRITE(megarom_bank_w) + map(0x14000, 0x15fff).bankr("bank0"); + map(0x16000, 0x17fff).bankr("bank1"); + map(0x18000, 0x19fff).bankr("bank2"); + map(0x1a000, 0x1bfff).bankr("bank3"); + map(0x14000, 0x1bfff).w(this, FUNC(pengadvb_state::megarom_bank_w)); // slot 3, 16KB RAM - AM_RANGE(0x3c000, 0x3ffff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(pengadvb_state::io_mem) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x98, 0x98) AM_DEVREADWRITE("tms9128", tms9128_device, vram_read, vram_write) - AM_RANGE(0x99, 0x99) AM_DEVREADWRITE("tms9128", tms9128_device, register_read, register_write) - AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) - AM_RANGE(0xa2, 0xa2) AM_DEVREAD("aysnd", ay8910_device, data_r) - AM_RANGE(0xa8, 0xab) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) -ADDRESS_MAP_END + map(0x3c000, 0x3ffff).ram(); +} + +void pengadvb_state::io_mem(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xff); + map(0x98, 0x98).rw("tms9128", FUNC(tms9128_device::vram_read), FUNC(tms9128_device::vram_write)); + map(0x99, 0x99).rw("tms9128", FUNC(tms9128_device::register_read), FUNC(tms9128_device::register_write)); + map(0xa0, 0xa1).w("aysnd", FUNC(ay8910_device::address_data_w)); + map(0xa2, 0xa2).r("aysnd", FUNC(ay8910_device::data_r)); + map(0xa8, 0xab).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)); +} /*************************************************************************** |