diff options
Diffstat (limited to 'src/mame/drivers/rampart.cpp')
-rw-r--r-- | src/mame/drivers/rampart.cpp | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/src/mame/drivers/rampart.cpp b/src/mame/drivers/rampart.cpp index 9ffb6401fd6..bce638b62d0 100644 --- a/src/mame/drivers/rampart.cpp +++ b/src/mame/drivers/rampart.cpp @@ -127,31 +127,32 @@ WRITE16_MEMBER(rampart_state::latch_w) *************************************/ /* full memory map deduced from schematics and GALs */ -ADDRESS_MAP_START(rampart_state::main_map) - ADDRESS_MAP_GLOBAL_MASK(0x7fffff) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x140000, 0x147fff) AM_MIRROR(0x438000) AM_ROM /* slapstic goes here */ - AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_SHARE("bitmap") - AM_RANGE(0x220000, 0x3bffff) AM_WRITENOP /* the code blasts right through this when initializing */ - AM_RANGE(0x3c0000, 0x3c07ff) AM_MIRROR(0x019800) AM_DEVREADWRITE8("palette", palette_device, read8, write8, 0xff00) AM_SHARE("palette") - AM_RANGE(0x3e0000, 0x3e07ff) AM_MIRROR(0x010000) AM_RAM AM_SHARE("mob") - AM_RANGE(0x3e0800, 0x3e3f3f) AM_MIRROR(0x010000) AM_RAM - AM_RANGE(0x3e3f40, 0x3e3f7f) AM_MIRROR(0x010000) AM_RAM AM_SHARE("mob:slip") - AM_RANGE(0x3e3f80, 0x3effff) AM_MIRROR(0x010000) AM_RAM - AM_RANGE(0x460000, 0x460001) AM_MIRROR(0x019ffe) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00) - AM_RANGE(0x480000, 0x480003) AM_MIRROR(0x019ffc) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0xff00) - AM_RANGE(0x500000, 0x500fff) AM_MIRROR(0x019000) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff) - AM_RANGE(0x5a6000, 0x5a6001) AM_MIRROR(0x019ffe) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write16) - AM_RANGE(0x640000, 0x640001) AM_MIRROR(0x019ffe) AM_WRITE(latch_w) - AM_RANGE(0x640000, 0x640001) AM_MIRROR(0x019ffc) AM_READ_PORT("IN0") - AM_RANGE(0x640002, 0x640003) AM_MIRROR(0x019ffc) AM_READ_PORT("IN1") - AM_RANGE(0x6c0000, 0x6c0001) AM_MIRROR(0x019ff8) AM_READ_PORT("TRACK0") - AM_RANGE(0x6c0002, 0x6c0003) AM_MIRROR(0x019ff8) AM_READ_PORT("TRACK1") - AM_RANGE(0x6c0004, 0x6c0005) AM_MIRROR(0x019ff8) AM_READ_PORT("TRACK2") - AM_RANGE(0x6c0006, 0x6c0007) AM_MIRROR(0x019ff8) AM_READ_PORT("TRACK3") - AM_RANGE(0x726000, 0x726001) AM_MIRROR(0x019ffe) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) - AM_RANGE(0x7e6000, 0x7e6001) AM_MIRROR(0x019ffe) AM_WRITE(scanline_int_ack_w) -ADDRESS_MAP_END +void rampart_state::main_map(address_map &map) +{ + map.global_mask(0x7fffff); + map(0x000000, 0x0fffff).rom(); + map(0x140000, 0x147fff).mirror(0x438000).rom(); /* slapstic goes here */ + map(0x200000, 0x21ffff).ram().share("bitmap"); + map(0x220000, 0x3bffff).nopw(); /* the code blasts right through this when initializing */ + map(0x3c0000, 0x3c07ff).mirror(0x019800).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0xff00).share("palette"); + map(0x3e0000, 0x3e07ff).mirror(0x010000).ram().share("mob"); + map(0x3e0800, 0x3e3f3f).mirror(0x010000).ram(); + map(0x3e3f40, 0x3e3f7f).mirror(0x010000).ram().share("mob:slip"); + map(0x3e3f80, 0x3effff).mirror(0x010000).ram(); + map(0x460000, 0x460000).mirror(0x019ffe).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x480000, 0x480003).mirror(0x019ffc).w(m_ym2413, FUNC(ym2413_device::write)).umask16(0xff00); + map(0x500000, 0x500fff).mirror(0x019000).rw("eeprom", FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write)).umask16(0x00ff); + map(0x5a6000, 0x5a6001).mirror(0x019ffe).w("eeprom", FUNC(eeprom_parallel_28xx_device::unlock_write16)); + map(0x640000, 0x640001).mirror(0x019ffe).w(this, FUNC(rampart_state::latch_w)); + map(0x640000, 0x640001).mirror(0x019ffc).portr("IN0"); + map(0x640002, 0x640003).mirror(0x019ffc).portr("IN1"); + map(0x6c0000, 0x6c0001).mirror(0x019ff8).portr("TRACK0"); + map(0x6c0002, 0x6c0003).mirror(0x019ff8).portr("TRACK1"); + map(0x6c0004, 0x6c0005).mirror(0x019ff8).portr("TRACK2"); + map(0x6c0006, 0x6c0007).mirror(0x019ff8).portr("TRACK3"); + map(0x726000, 0x726001).mirror(0x019ffe).w("watchdog", FUNC(watchdog_timer_device::reset16_w)); + map(0x7e6000, 0x7e6001).mirror(0x019ffe).w(this, FUNC(rampart_state::scanline_int_ack_w)); +} |