diff options
Diffstat (limited to 'src/mame/drivers/primo.cpp')
-rw-r--r-- | src/mame/drivers/primo.cpp | 61 |
1 files changed, 33 insertions, 28 deletions
diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp index e917ed6e4d8..9dc3f5d31ed 100644 --- a/src/mame/drivers/primo.cpp +++ b/src/mame/drivers/primo.cpp @@ -117,34 +117,39 @@ Interrupts: #include "formats/primoptp.h" -ADDRESS_MAP_START(primo_state::primoa_port) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE( 0x00, 0x3f ) AM_READWRITE(primo_be_1_r, primo_ki_1_w ) - AM_RANGE( 0xfd, 0xfd ) AM_WRITE(primo_FD_w ) -ADDRESS_MAP_END - -ADDRESS_MAP_START(primo_state::primob_port) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE( 0x00, 0x3f ) AM_READWRITE(primo_be_1_r, primo_ki_1_w ) - AM_RANGE( 0x40, 0x7f ) AM_READWRITE(primo_be_2_r, primo_ki_2_w ) - AM_RANGE( 0xfd, 0xfd ) AM_WRITE(primo_FD_w ) -ADDRESS_MAP_END - -ADDRESS_MAP_START(primo_state::primo32_mem) - AM_RANGE( 0x0000, 0x3fff ) AM_RAMBANK("bank1") - AM_RANGE( 0x4000, 0x7fff ) AM_RAM AM_MIRROR ( 0x8000 ) -ADDRESS_MAP_END - -ADDRESS_MAP_START(primo_state::primo48_mem) - AM_RANGE( 0x0000, 0x3fff ) AM_RAMBANK("bank1") - AM_RANGE( 0x4000, 0x7fff ) AM_RAM - AM_RANGE( 0x8000, 0xbfff ) AM_RAM AM_MIRROR ( 0x4000 ) -ADDRESS_MAP_END - -ADDRESS_MAP_START(primo_state::primo64_mem) - AM_RANGE( 0x0000, 0x3fff ) AM_RAMBANK("bank1") - AM_RANGE( 0x4000, 0xffff ) AM_RAM -ADDRESS_MAP_END +void primo_state::primoa_port(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0x3f).rw(this, FUNC(primo_state::primo_be_1_r), FUNC(primo_state::primo_ki_1_w)); + map(0xfd, 0xfd).w(this, FUNC(primo_state::primo_FD_w)); +} + +void primo_state::primob_port(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0x3f).rw(this, FUNC(primo_state::primo_be_1_r), FUNC(primo_state::primo_ki_1_w)); + map(0x40, 0x7f).rw(this, FUNC(primo_state::primo_be_2_r), FUNC(primo_state::primo_ki_2_w)); + map(0xfd, 0xfd).w(this, FUNC(primo_state::primo_FD_w)); +} + +void primo_state::primo32_mem(address_map &map) +{ + map(0x0000, 0x3fff).bankrw("bank1"); + map(0x4000, 0x7fff).ram().mirror(0x8000); +} + +void primo_state::primo48_mem(address_map &map) +{ + map(0x0000, 0x3fff).bankrw("bank1"); + map(0x4000, 0x7fff).ram(); + map(0x8000, 0xbfff).ram().mirror(0x4000); +} + +void primo_state::primo64_mem(address_map &map) +{ + map(0x0000, 0x3fff).bankrw("bank1"); + map(0x4000, 0xffff).ram(); +} static INPUT_PORTS_START( primo ) PORT_START( "IN0" ) |