diff options
Diffstat (limited to 'src/mame/drivers/rastersp.cpp')
-rw-r--r-- | src/mame/drivers/rastersp.cpp | 71 |
1 files changed, 37 insertions, 34 deletions
diff --git a/src/mame/drivers/rastersp.cpp b/src/mame/drivers/rastersp.cpp index 1b2110ad582..32362424b42 100644 --- a/src/mame/drivers/rastersp.cpp +++ b/src/mame/drivers/rastersp.cpp @@ -673,40 +673,43 @@ READ32_MEMBER( rastersp_state::dsp_speedup_r ) * *************************************/ -ADDRESS_MAP_START(rastersp_state::cpu_map) - AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("dram") - AM_RANGE(0x01000000, 0x010bffff) AM_NOP // External ROM - AM_RANGE(0x010c0000, 0x010cffff) AM_ROM AM_REGION("bios", 0) - AM_RANGE(0x02200000, 0x022fffff) AM_READWRITE8(nvram_r, nvram_w, 0x000000ff) - AM_RANGE(0x02200800, 0x02200803) AM_WRITENOP // ? - AM_RANGE(0x02208000, 0x02208fff) AM_DEVREADWRITE("scsibus:7:ncr53c700", ncr53c7xx_device, read, write) - AM_RANGE(0x0220e000, 0x0220e003) AM_WRITE(dpylist_w) - AM_RANGE(0xfff00000, 0xffffffff) AM_RAMBANK("bank3") -ADDRESS_MAP_END - -ADDRESS_MAP_START(rastersp_state::io_map) - AM_RANGE(0x0020, 0x0023) AM_WRITE(cyrix_cache_w) - AM_RANGE(0x1000, 0x1003) AM_READ_PORT("P1") AM_WRITE(port1_w) - AM_RANGE(0x1004, 0x1007) AM_READ_PORT("P2") AM_WRITE(port2_w) - AM_RANGE(0x1008, 0x100b) AM_READ_PORT("COMMON") AM_WRITE(port3_w) - AM_RANGE(0x100c, 0x100f) AM_READ_PORT("DSW2") - AM_RANGE(0x1010, 0x1013) AM_READ_PORT("DSW1") - AM_RANGE(0x1014, 0x1017) AM_READ_PORT("EXTRA") - AM_RANGE(0x4000, 0x4007) AM_DEVREADWRITE8("rtc", mc146818_device, read, write, 0x000000ff) - AM_RANGE(0x6008, 0x600b) AM_READNOP AM_WRITENOP // RS232 -ADDRESS_MAP_END - - -ADDRESS_MAP_START(rastersp_state::dsp_map) - AM_RANGE(0x000000, 0x0fffff) AM_RAMBANK("bank1") - AM_RANGE(0x400000, 0x40ffff) AM_ROM AM_REGION("dspboot", 0) - AM_RANGE(0x808000, 0x80807f) AM_READWRITE(tms32031_control_r, tms32031_control_w) - AM_RANGE(0x880402, 0x880402) AM_WRITE(dsp_unk_w) - AM_RANGE(0x883c00, 0x883c00) AM_WRITE(dsp_486_int_w) - AM_RANGE(0xc00000, 0xc03fff) AM_RAMBANK("bank2") - AM_RANGE(0xc80000, 0xc80000) AM_WRITE(dsp_ctrl_w) - AM_RANGE(0xfc0000, 0xffffff) AM_RAMBANK("bank3") -ADDRESS_MAP_END +void rastersp_state::cpu_map(address_map &map) +{ + map(0x00000000, 0x003fffff).ram().share("dram"); + map(0x01000000, 0x010bffff).noprw(); // External ROM + map(0x010c0000, 0x010cffff).rom().region("bios", 0); + map(0x02200000, 0x022fffff).rw(this, FUNC(rastersp_state::nvram_r), FUNC(rastersp_state::nvram_w)).umask32(0x000000ff); + map(0x02200800, 0x02200803).nopw(); // ? + map(0x02208000, 0x02208fff).rw("scsibus:7:ncr53c700", FUNC(ncr53c7xx_device::read), FUNC(ncr53c7xx_device::write)); + map(0x0220e000, 0x0220e003).w(this, FUNC(rastersp_state::dpylist_w)); + map(0xfff00000, 0xffffffff).bankrw("bank3"); +} + +void rastersp_state::io_map(address_map &map) +{ + map(0x0020, 0x0023).w(this, FUNC(rastersp_state::cyrix_cache_w)); + map(0x1000, 0x1003).portr("P1").w(this, FUNC(rastersp_state::port1_w)); + map(0x1004, 0x1007).portr("P2").w(this, FUNC(rastersp_state::port2_w)); + map(0x1008, 0x100b).portr("COMMON").w(this, FUNC(rastersp_state::port3_w)); + map(0x100c, 0x100f).portr("DSW2"); + map(0x1010, 0x1013).portr("DSW1"); + map(0x1014, 0x1017).portr("EXTRA"); + map(0x4000, 0x4007).rw("rtc", FUNC(mc146818_device::read), FUNC(mc146818_device::write)).umask32(0x000000ff); + map(0x6008, 0x600b).nopr().nopw(); // RS232 +} + + +void rastersp_state::dsp_map(address_map &map) +{ + map(0x000000, 0x0fffff).bankrw("bank1"); + map(0x400000, 0x40ffff).rom().region("dspboot", 0); + map(0x808000, 0x80807f).rw(this, FUNC(rastersp_state::tms32031_control_r), FUNC(rastersp_state::tms32031_control_w)); + map(0x880402, 0x880402).w(this, FUNC(rastersp_state::dsp_unk_w)); + map(0x883c00, 0x883c00).w(this, FUNC(rastersp_state::dsp_486_int_w)); + map(0xc00000, 0xc03fff).bankrw("bank2"); + map(0xc80000, 0xc80000).w(this, FUNC(rastersp_state::dsp_ctrl_w)); + map(0xfc0000, 0xffffff).bankrw("bank3"); +} |