diff options
Diffstat (limited to 'src/mame/drivers/pmd85.cpp')
-rw-r--r-- | src/mame/drivers/pmd85.cpp | 142 |
1 files changed, 75 insertions, 67 deletions
diff --git a/src/mame/drivers/pmd85.cpp b/src/mame/drivers/pmd85.cpp index 42cfb573d5e..a77b1a8ea01 100644 --- a/src/mame/drivers/pmd85.cpp +++ b/src/mame/drivers/pmd85.cpp @@ -220,77 +220,85 @@ uint32_t pmd85_state::screen_update_pmd85(screen_device &screen, bitmap_ind16 &b /* I/O ports */ -ADDRESS_MAP_START(pmd85_state::pmd85_io_map) - AM_RANGE( 0x00, 0xff) AM_READWRITE(pmd85_io_r, pmd85_io_w ) -ADDRESS_MAP_END +void pmd85_state::pmd85_io_map(address_map &map) +{ + map(0x00, 0xff).rw(this, FUNC(pmd85_state::pmd85_io_r), FUNC(pmd85_state::pmd85_io_w)); +} -ADDRESS_MAP_START(pmd85_state::mato_io_map) - AM_RANGE( 0x00, 0xff) AM_READWRITE(mato_io_r, mato_io_w ) -ADDRESS_MAP_END +void pmd85_state::mato_io_map(address_map &map) +{ + map(0x00, 0xff).rw(this, FUNC(pmd85_state::mato_io_r), FUNC(pmd85_state::mato_io_w)); +} /* memory w/r functions */ -ADDRESS_MAP_START(pmd85_state::pmd85_mem) - AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1") - AM_RANGE(0x1000, 0x1fff) AM_RAMBANK("bank2") - AM_RANGE(0x2000, 0x2fff) AM_RAMBANK("bank3") - AM_RANGE(0x3000, 0x3fff) AM_RAMBANK("bank4") - AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank5") - AM_RANGE(0x8000, 0x8fff) AM_READ_BANK("bank6") - AM_RANGE(0x9000, 0x9fff) AM_NOP - AM_RANGE(0xa000, 0xafff) AM_READ_BANK("bank7") - AM_RANGE(0xb000, 0xbfff) AM_NOP - AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank8") -ADDRESS_MAP_END - -ADDRESS_MAP_START(pmd85_state::pmd852a_mem) - AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1") - AM_RANGE(0x1000, 0x1fff) AM_RAMBANK("bank2") - AM_RANGE(0x2000, 0x2fff) AM_RAMBANK("bank3") - AM_RANGE(0x3000, 0x3fff) AM_RAMBANK("bank4") - AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank5") - AM_RANGE(0x8000, 0x8fff) AM_READ_BANK("bank6") - AM_RANGE(0x9000, 0x9fff) AM_RAMBANK("bank7") - AM_RANGE(0xa000, 0xafff) AM_READ_BANK("bank8") - AM_RANGE(0xb000, 0xbfff) AM_RAMBANK("bank9") - AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank10") -ADDRESS_MAP_END - -ADDRESS_MAP_START(pmd85_state::pmd853_mem) - AM_RANGE(0x0000, 0x1fff) AM_READ_BANK("bank1") AM_WRITE_BANK("bank9") - AM_RANGE(0x2000, 0x3fff) AM_READ_BANK("bank2") AM_WRITE_BANK("bank10") - AM_RANGE(0x4000, 0x5fff) AM_READ_BANK("bank3") AM_WRITE_BANK("bank11") - AM_RANGE(0x6000, 0x7fff) AM_READ_BANK("bank4") AM_WRITE_BANK("bank12") - AM_RANGE(0x8000, 0x9fff) AM_READ_BANK("bank5") AM_WRITE_BANK("bank13") - AM_RANGE(0xa000, 0xbfff) AM_READ_BANK("bank6") AM_WRITE_BANK("bank14") - AM_RANGE(0xc000, 0xdfff) AM_READ_BANK("bank7") AM_WRITE_BANK("bank15") - AM_RANGE(0xe000, 0xffff) AM_READ_BANK("bank8") AM_WRITE_BANK("bank16") -ADDRESS_MAP_END - -ADDRESS_MAP_START(pmd85_state::alfa_mem) - AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("bank1") - AM_RANGE(0x1000, 0x33ff) AM_RAMBANK("bank2") - AM_RANGE(0x3400, 0x3fff) AM_RAMBANK("bank3") - AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank4") - AM_RANGE(0x8000, 0x8fff) AM_READ_BANK("bank5") - AM_RANGE(0x9000, 0xb3ff) AM_READ_BANK("bank6") - AM_RANGE(0xb400, 0xbfff) AM_NOP - AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank7") -ADDRESS_MAP_END - -ADDRESS_MAP_START(pmd85_state::mato_mem) - AM_RANGE(0x0000, 0x3fff) AM_RAMBANK("bank1") - AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank2") - AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank3") - AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank4") -ADDRESS_MAP_END - -ADDRESS_MAP_START(pmd85_state::c2717_mem) - AM_RANGE(0x0000, 0x3fff) AM_RAMBANK("bank1") - AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank2") - AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank3") - AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank4") -ADDRESS_MAP_END +void pmd85_state::pmd85_mem(address_map &map) +{ + map(0x0000, 0x0fff).bankrw("bank1"); + map(0x1000, 0x1fff).bankrw("bank2"); + map(0x2000, 0x2fff).bankrw("bank3"); + map(0x3000, 0x3fff).bankrw("bank4"); + map(0x4000, 0x7fff).bankrw("bank5"); + map(0x8000, 0x8fff).bankr("bank6"); + map(0x9000, 0x9fff).noprw(); + map(0xa000, 0xafff).bankr("bank7"); + map(0xb000, 0xbfff).noprw(); + map(0xc000, 0xffff).bankrw("bank8"); +} + +void pmd85_state::pmd852a_mem(address_map &map) +{ + map(0x0000, 0x0fff).bankrw("bank1"); + map(0x1000, 0x1fff).bankrw("bank2"); + map(0x2000, 0x2fff).bankrw("bank3"); + map(0x3000, 0x3fff).bankrw("bank4"); + map(0x4000, 0x7fff).bankrw("bank5"); + map(0x8000, 0x8fff).bankr("bank6"); + map(0x9000, 0x9fff).bankrw("bank7"); + map(0xa000, 0xafff).bankr("bank8"); + map(0xb000, 0xbfff).bankrw("bank9"); + map(0xc000, 0xffff).bankrw("bank10"); +} + +void pmd85_state::pmd853_mem(address_map &map) +{ + map(0x0000, 0x1fff).bankr("bank1").bankw("bank9"); + map(0x2000, 0x3fff).bankr("bank2").bankw("bank10"); + map(0x4000, 0x5fff).bankr("bank3").bankw("bank11"); + map(0x6000, 0x7fff).bankr("bank4").bankw("bank12"); + map(0x8000, 0x9fff).bankr("bank5").bankw("bank13"); + map(0xa000, 0xbfff).bankr("bank6").bankw("bank14"); + map(0xc000, 0xdfff).bankr("bank7").bankw("bank15"); + map(0xe000, 0xffff).bankr("bank8").bankw("bank16"); +} + +void pmd85_state::alfa_mem(address_map &map) +{ + map(0x0000, 0x0fff).bankrw("bank1"); + map(0x1000, 0x33ff).bankrw("bank2"); + map(0x3400, 0x3fff).bankrw("bank3"); + map(0x4000, 0x7fff).bankrw("bank4"); + map(0x8000, 0x8fff).bankr("bank5"); + map(0x9000, 0xb3ff).bankr("bank6"); + map(0xb400, 0xbfff).noprw(); + map(0xc000, 0xffff).bankrw("bank7"); +} + +void pmd85_state::mato_mem(address_map &map) +{ + map(0x0000, 0x3fff).bankrw("bank1"); + map(0x4000, 0x7fff).bankrw("bank2"); + map(0x8000, 0xbfff).bankr("bank3"); + map(0xc000, 0xffff).bankrw("bank4"); +} + +void pmd85_state::c2717_mem(address_map &map) +{ + map(0x0000, 0x3fff).bankrw("bank1"); + map(0x4000, 0x7fff).bankrw("bank2"); + map(0x8000, 0xbfff).bankr("bank3"); + map(0xc000, 0xffff).bankrw("bank4"); +} /* keyboard input */ |