diff options
| author | 2009-04-16 06:56:40 +0000 | |
|---|---|---|
| committer | 2009-04-16 06:56:40 +0000 | |
| commit | 21d976ec89dbad10f5f8fe655701ec1349633d7e (patch) | |
| tree | eed627f0ff6b72871a1ffdb0a6768b8e83e8e688 | |
| parent | 3e2dfc8f754695e9c05c2db3e93b6e4180ec5f8e (diff) | |
More memory map merges.
| -rw-r--r-- | src/mame/drivers/surpratk.c | 29 | ||||
| -rw-r--r-- | src/mame/drivers/system16.c | 420 | ||||
| -rw-r--r-- | src/mame/drivers/system18.c | 156 |
3 files changed, 211 insertions, 394 deletions
diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c index 5374caa0b65..9c8f53f0234 100644 --- a/src/mame/drivers/surpratk.c +++ b/src/mame/drivers/surpratk.c @@ -85,33 +85,22 @@ static WRITE8_HANDLER( surpratk_5fc0_w ) /********************************************/ -static ADDRESS_MAP_START( surpratk_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(bankedram_r) - AM_RANGE(0x0800, 0x1fff) AM_READ(SMH_RAM) - AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_BANK1) /* banked ROM */ +static ADDRESS_MAP_START( surpratk_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(&ram) + AM_RANGE(0x0800, 0x1fff) AM_RAM + AM_RANGE(0x2000, 0x3fff) AM_ROMBANK(1) /* banked ROM */ AM_RANGE(0x5f8c, 0x5f8c) AM_READ_PORT("P1") AM_RANGE(0x5f8d, 0x5f8d) AM_READ_PORT("P2") AM_RANGE(0x5f8e, 0x5f8e) AM_READ_PORT("DSW3") AM_RANGE(0x5f8f, 0x5f8f) AM_READ_PORT("DSW1") AM_RANGE(0x5f90, 0x5f90) AM_READ_PORT("DSW2") -// AM_RANGE(0x5f91, 0x5f91) AM_DEVREAD("ym", ym2151_status_port_r) /* ? */ - AM_RANGE(0x5fa0, 0x5faf) AM_READ(K053244_r) - AM_RANGE(0x5fc0, 0x5fc0) AM_READ(watchdog_reset_r) - AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_r) - AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( surpratk_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(bankedram_w) AM_BASE(&ram) - AM_RANGE(0x0800, 0x1fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_ROM) /* banked ROM */ - AM_RANGE(0x5fa0, 0x5faf) AM_WRITE(K053244_w) + AM_RANGE(0x5fa0, 0x5faf) AM_READWRITE(K053244_r, K053244_w) AM_RANGE(0x5fb0, 0x5fbf) AM_WRITE(K053251_w) - AM_RANGE(0x5fc0, 0x5fc0) AM_WRITE(surpratk_5fc0_w) + AM_RANGE(0x5fc0, 0x5fc0) AM_READWRITE(watchdog_reset_r, surpratk_5fc0_w) AM_RANGE(0x5fd0, 0x5fd1) AM_DEVWRITE("ym", ym2151_w) AM_RANGE(0x5fc4, 0x5fc4) AM_WRITE(surpratk_videobank_w) - AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_w) - AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) /* ROM */ + AM_RANGE(0x4000, 0x7fff) AM_READWRITE(K052109_r, K052109_w) + AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */ ADDRESS_MAP_END @@ -190,7 +179,7 @@ static MACHINE_DRIVER_START( surpratk ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", KONAMI, 3000000) /* 053248 */ - MDRV_CPU_PROGRAM_MAP(surpratk_readmem,surpratk_writemem) + MDRV_CPU_PROGRAM_MAP(surpratk_map,0) MDRV_CPU_VBLANK_INT("screen", surpratk_interrupt) MDRV_MACHINE_RESET(surpratk) diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c index 89c470f1948..a17187acb5e 100644 --- a/src/mame/drivers/system16.c +++ b/src/mame/drivers/system16.c @@ -304,65 +304,43 @@ static WRITE8_HANDLER( tturfbl_soundbank_w ) } } -static ADDRESS_MAP_START( tturfbl_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) +static ADDRESS_MAP_START(tturfbl_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_READ(tturfbl_soundbank_r) - AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START(tturfbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITENOP /* ROM bank */ AM_RANGE(0xe000, 0xe000) AM_WRITE(tturfbl_soundbank_w) + AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) AM_RANGE(0xf000, 0xf000) AM_WRITE(tturfbl_msm5205_data_w) - AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tturfbl_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x01) AM_DEVREAD("ym", ym2151_r) - AM_RANGE(0x80, 0x80) AM_READNOP + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( tturfbl_sound_writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( tturfbl_sound_io_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym2151_w) + AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) AM_RANGE(0x40, 0x40) AM_WRITENOP - AM_RANGE(0x80, 0x80) AM_WRITENOP + AM_RANGE(0x80, 0x80) AM_NOP ADDRESS_MAP_END /*******************************************************************************/ -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x01) AM_DEVREAD("ym", ym2151_r) + AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym2151_w) -ADDRESS_MAP_END - // 7759 -static ADDRESS_MAP_START( sound_readmem_7759, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0xdfff) AM_READ(SMH_BANK1) +static ADDRESS_MAP_START( sound_7759_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xdfff) AM_ROMBANK(1) AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END @@ -376,11 +354,12 @@ static WRITE8_DEVICE_HANDLER( upd7759_bank_w ) //* } -static ADDRESS_MAP_START( sound_writeport_7759, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sound_7759_io_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym2151_w) + AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) AM_RANGE(0x40, 0x40) AM_DEVWRITE("7759", upd7759_bank_w) AM_RANGE(0x80, 0x80) AM_DEVWRITE("7759", upd7759_port_w) + AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) ADDRESS_MAP_END @@ -429,8 +408,8 @@ static MACHINE_DRIVER_START( system16 ) MDRV_CPU_VBLANK_INT("screen", sys16_interrupt) MDRV_CPU_ADD("soundcpu", Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) + MDRV_CPU_PROGRAM_MAP(sound_map,0) + MDRV_CPU_IO_MAP(sound_io_map,0) /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -461,8 +440,8 @@ static MACHINE_DRIVER_START( system16_7759 ) MDRV_IMPORT_FROM(system16) MDRV_CPU_MODIFY("soundcpu") - MDRV_CPU_PROGRAM_MAP(sound_readmem_7759,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport_7759) + MDRV_CPU_PROGRAM_MAP(sound_7759_map,0) + MDRV_CPU_IO_MAP(sound_7759_io_map,0) /* sound hardware */ MDRV_SOUND_ADD("7759", UPD7759, UPD7759_STANDARD_CLOCK) @@ -619,29 +598,20 @@ INPUT_PORTS_END #endif /****************************************************************************/ -static ADDRESS_MAP_START( bayroute_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(SMH_ROM) - AM_RANGE(0x500000, 0x503fff) AM_READ(SYS16_MRA16_WORKINGRAM) - AM_RANGE(0x600000, 0x600fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x700000, 0x70ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x710000, 0x710fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x800000, 0x800fff) AM_READ(SYS16_MRA16_PALETTERAM) +static ADDRESS_MAP_START( bayroute_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0bffff) AM_ROM + AM_RANGE(0x100000, 0x100003) AM_WRITENOP // tilebank control? + AM_RANGE(0x500000, 0x503fff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0x600000, 0x600fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x700000, 0x70ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x710000, 0x710fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x800000, 0x800fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0x900000, 0x900001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0x901002, 0x901003) AM_READ_PORT("P1") AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2") AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_RANGE(0x902002, 0x902003) AM_READ_PORT("DSW1") AM_RANGE(0x902000, 0x902001) AM_READ_PORT("DSW2") -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bayroute_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x100003) AM_WRITENOP // tilebank control? - AM_RANGE(0x500000, 0x503fff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) - AM_RANGE(0x600000, 0x600fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x700000, 0x70ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x710000, 0x710fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x800000, 0x800fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0x900000, 0x900001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0xff0006, 0xff0007) AM_WRITE(sound_command_w) AM_RANGE(0xff0020, 0xff003f) AM_WRITENOP // config regs ADDRESS_MAP_END @@ -712,39 +682,30 @@ static MACHINE_DRIVER_START( bayroute ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16_7759) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(bayroute_readmem,bayroute_writemem) + MDRV_CPU_PROGRAM_MAP(bayroute_map,0) MDRV_MACHINE_RESET(bayroute) MACHINE_DRIVER_END /***************************************************************************/ -static ADDRESS_MAP_START( dduxbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) +static ADDRESS_MAP_START( dduxbl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0bffff) AM_ROM + AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w) + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) + AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_w) AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dduxbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_w) AM_RANGE(0xc46000, 0xc4603f) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END /***************************************************************************/ @@ -856,27 +817,13 @@ static MACHINE_DRIVER_START( dduxbl ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(dduxbl_readmem,dduxbl_writemem) + MDRV_CPU_PROGRAM_MAP(dduxbl_map,0) MDRV_MACHINE_RESET(dduxbl) MACHINE_DRIVER_END /***************************************************************************/ -static ADDRESS_MAP_START( eswat_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x418fff) AM_READ(SYS16_MRA16_TEXTRAM) //* - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") - AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") - AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") - AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") - AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - static int eswat_tilebank0; static WRITE16_HANDLER( eswat_tilebank0_w ) @@ -888,17 +835,22 @@ static WRITE16_HANDLER( eswat_tilebank0_w ) } -static ADDRESS_MAP_START( eswatbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) +static ADDRESS_MAP_START( eswatbl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x3e2000, 0x3e2001) AM_WRITE(eswat_tilebank0_w) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x418fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x418fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) + AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") + AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") + AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") + AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") + AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") + AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END /***************************************************************************/ @@ -984,7 +936,7 @@ static MACHINE_DRIVER_START( eswatbl ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16_7759) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(eswat_readmem,eswatbl_writemem) + MDRV_CPU_PROGRAM_MAP(eswatbl_map,0) MDRV_MACHINE_RESET(eswatbl) MACHINE_DRIVER_END @@ -1158,10 +1110,10 @@ INPUT_PORTS_END Flash Point (Datsu bootlegs = fpointbl, fpointbj) Has sound latch at $E000 instead of I/O ports $C0-FF */ -static ADDRESS_MAP_START( fpointbl_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) +static ADDRESS_MAP_START( fpointbl_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END static MACHINE_DRIVER_START( fpointbl ) @@ -1172,7 +1124,7 @@ static MACHINE_DRIVER_START( fpointbl ) MDRV_CPU_PROGRAM_MAP(fpointbl_map,0) MDRV_CPU_MODIFY("soundcpu") - MDRV_CPU_PROGRAM_MAP(fpointbl_sound_readmem,sound_writemem) + MDRV_CPU_PROGRAM_MAP(fpointbl_sound_map,0) MDRV_MACHINE_RESET(fpointbl) MACHINE_DRIVER_END @@ -1187,23 +1139,6 @@ static READ16_HANDLER( ga_io_service_r ) return (input_port_read(space->machine,"SERVICE") << 8) | (sys16_workingram[0x2c96/2] & 0x00ff); } -static ADDRESS_MAP_START( goldnaxe_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x110000, 0x110fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x140000, 0x140fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0x1f0000, 0x1f0003) AM_READ(SYS16_MRA16_EXTRAM) - AM_RANGE(0x200000, 0x200fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") - AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") - AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") - AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") - AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xffecd0, 0xffecd1) AM_READ(ga_io_players_r) - AM_RANGE(0xffec96, 0xffec97) AM_READ(ga_io_service_r) - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - static WRITE16_HANDLER( ga_sound_command_w ) { COMBINE_DATA( &sys16_workingram[(0xecfc-0xc000)/2] ); @@ -1223,19 +1158,26 @@ static WRITE16_HANDLER( goldnaxe_prot_w ) COMBINE_DATA( &sys16_workingram[(0xec1c-0xc000)/2] ); } -static ADDRESS_MAP_START( goldnaxe_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x110000, 0x110fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x140000, 0x140fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0x1f0000, 0x1f0003) AM_WRITE(SYS16_MWA16_EXTRAM) AM_BASE(&sys16_extraram) - AM_RANGE(0x200000, 0x200fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) +static ADDRESS_MAP_START( goldnaxe_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0bffff) AM_ROM + AM_RANGE(0x100000, 0x10ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x110000, 0x110fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x140000, 0x140fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0x1f0000, 0x1f0003) AM_READWRITE(SYS16_MRA16_EXTRAM, SYS16_MWA16_EXTRAM) AM_BASE(&sys16_extraram) + AM_RANGE(0x200000, 0x200fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) + AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") + AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") + AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") + AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") + AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") AM_RANGE(0xc43000, 0xc43001) AM_WRITENOP // ? // AM_RANGE(0xfe0006, 0xfe0007) AM_WRITENOP I think this is the real sound out AM_RANGE(0xffec1c, 0xffec1d) AM_WRITE(goldnaxe_prot_w)// how does this really work? + AM_RANGE(0xffecd0, 0xffecd1) AM_READ(ga_io_players_r) + AM_RANGE(0xffec96, 0xffec97) AM_READ(ga_io_service_r) AM_RANGE(0xffecfc, 0xffecfd) AM_WRITE(ga_sound_command_w)// probably just a buffer - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) /* fails SCRATCH RAM test because of hacks */ + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) /* fails SCRATCH RAM test because of hacks */ // AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(MWA15_NOP) /* 0x400 bytes; battery backed up */ ADDRESS_MAP_END @@ -1327,36 +1269,27 @@ static MACHINE_DRIVER_START( goldnaxe ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16_7759) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(goldnaxe_readmem,goldnaxe_writemem) + MDRV_CPU_PROGRAM_MAP(goldnaxe_map,0) MDRV_MACHINE_RESET(goldnaxe) MACHINE_DRIVER_END /***************************************************************************/ -static ADDRESS_MAP_START( passsht_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) +static ADDRESS_MAP_START( passsht_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x01ffff) AM_ROM + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( passsht_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END static int passht4b_io1_val; @@ -1414,34 +1347,25 @@ static READ16_HANDLER( passht4b_io3_r ) return passht4b_io3_val; } -static ADDRESS_MAP_START( passht4b_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) +static ADDRESS_MAP_START( passht4b_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x01ffff) AM_ROM + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) AM_RANGE(0xc41000, 0xc41001) AM_READ(passht4b_service_r) AM_RANGE(0xc41002, 0xc41003) AM_READ(passht4b_io1_r) AM_RANGE(0xc41004, 0xc41005) AM_READ(passht4b_io2_r) AM_RANGE(0xc41006, 0xc41007) AM_READ(passht4b_io3_r) - AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") + AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") + AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc43000, 0xc43001) AM_READ_PORT("P1") // test mode only AM_RANGE(0xc43002, 0xc43003) AM_READ_PORT("P2") AM_RANGE(0xc43004, 0xc43005) AM_READ_PORT("P3") AM_RANGE(0xc43006, 0xc43007) AM_READ_PORT("P4") - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( passht4b_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc4600a, 0xc4600b) AM_WRITE(sys16_coinctrl_w) /* coin counter doesn't work */ - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END /***************************************************************************/ @@ -1599,7 +1523,7 @@ static MACHINE_DRIVER_START( passsht ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16_7759) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(passsht_readmem,passsht_writemem) + MDRV_CPU_PROGRAM_MAP(passsht_map,0) MDRV_MACHINE_RESET(passsht) MACHINE_DRIVER_END @@ -1610,7 +1534,7 @@ static MACHINE_DRIVER_START( passht4b ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16_7759) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(passht4b_readmem,passht4b_writemem) + MDRV_CPU_PROGRAM_MAP(passht4b_map,0) MDRV_MACHINE_RESET(passht4b) MACHINE_DRIVER_END @@ -1647,29 +1571,20 @@ INPUT_PORTS_END /***************************************************************************/ -static ADDRESS_MAP_START( shinobl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) +static ADDRESS_MAP_START( shinobl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_nmi_w) + AM_RANGE(0xc40002, 0xc40003) AM_WRITE(sys16_3d_coinctrl_w) + AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") - AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW1") AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW2") - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( shinobl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_nmi_w) - AM_RANGE(0xc40002, 0xc40003) AM_WRITE(sys16_3d_coinctrl_w) - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END /***************************************************************************/ @@ -1712,7 +1627,7 @@ static MACHINE_DRIVER_START( shinob2 ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(shinobl_readmem,shinobl_writemem) + MDRV_CPU_PROGRAM_MAP(shinobl_map,0) MDRV_MACHINE_RESET(shinobl) MACHINE_DRIVER_END @@ -1721,34 +1636,23 @@ MACHINE_DRIVER_END /* bootleg has extra ram for regs? */ -static ADDRESS_MAP_START( tetrisbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x418000, 0x41803f) AM_READ(SYS16_MRA16_EXTRAM2) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) +static ADDRESS_MAP_START( tetrisbl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x418000, 0x41803f) AM_READWRITE(SYS16_MRA16_EXTRAM2, SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) + AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2") - AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") - AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xc80000, 0xc80001) AM_READNOP - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tetrisbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x418000, 0x41803f) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) + AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP - AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xc80000, 0xc80001) AM_NOP + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END @@ -1765,7 +1669,7 @@ static READ16_HANDLER(beautyb_unk2_r) } static ADDRESS_MAP_START( beautyb_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_READWRITE(SMH_ROM, SMH_NOP) + AM_RANGE(0x000000, 0x00ffff) AM_ROM //AM_RANGE(0x010000, 0x03ffff) AM_WRITENOP AM_RANGE(0x0280D6, 0x0280D7) AM_READ(beautyb_unk2_r) @@ -1783,7 +1687,7 @@ static ADDRESS_MAP_START( beautyb_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xc40000, 0xc40001) AM_WRITENOP AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP - AM_RANGE(0xffc000, 0xffffff) AM_RAM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END /***************************************************************************/ @@ -1854,7 +1758,7 @@ static MACHINE_DRIVER_START( tetrisbl ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(tetrisbl_readmem,tetrisbl_writemem) + MDRV_CPU_PROGRAM_MAP(tetrisbl_map,0) MDRV_MACHINE_RESET(tetrisbl) MACHINE_DRIVER_END @@ -1943,37 +1847,27 @@ INPUT_PORTS_END /***************************************************************************/ -static ADDRESS_MAP_START( tturfbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) +static ADDRESS_MAP_START( tturfbl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x2001e6, 0x2001e7) AM_READ(tt_io_service_r) AM_RANGE(0x2001e8, 0x2001e9) AM_READ(tt_io_player1_r) AM_RANGE(0x2001ea, 0x2001eb) AM_READ(tt_io_player2_r) - AM_RANGE(0x200000, 0x203fff) AM_READ(SYS16_MRA16_EXTRAM) - AM_RANGE(0x300000, 0x300fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x500000, 0x500fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0x600002, 0x600003) AM_READ_PORT("DSW1") + AM_RANGE(0x200000, 0x203fff) AM_READWRITE(SYS16_MRA16_EXTRAM, SYS16_MWA16_EXTRAM) AM_BASE(&sys16_extraram) + AM_RANGE(0x300000, 0x300fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x500000, 0x500fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0x600000, 0x600001) AM_WRITE(sys16_coinctrl_w) AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW2") + AM_RANGE(0x600002, 0x600003) AM_READ_PORT("DSW1") + AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w) + AM_RANGE(0x601000, 0x601001) AM_READ_PORT("SERVICE") AM_RANGE(0x601002, 0x601003) AM_READ_PORT("P1") AM_RANGE(0x601004, 0x601005) AM_READ_PORT("P2") - AM_RANGE(0x601000, 0x601001) AM_READ_PORT("SERVICE") - AM_RANGE(0x602002, 0x602003) AM_READ_PORT("DSW1") AM_RANGE(0x602000, 0x602001) AM_READ_PORT("DSW2") - AM_RANGE(0xc46000, 0xc4601f) AM_READ(SYS16_MRA16_EXTRAM3) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tturfbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(SYS16_MWA16_EXTRAM) AM_BASE(&sys16_extraram) - AM_RANGE(0x300000, 0x300fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x500000, 0x500fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0x600000, 0x600001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w) + AM_RANGE(0x602002, 0x602003) AM_READ_PORT("DSW1") AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP - AM_RANGE(0xc46000, 0xc4601f) AM_WRITE(SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3) + AM_RANGE(0xc46000, 0xc4601f) AM_READWRITE(SYS16_MRA16_EXTRAM3, SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3) AM_RANGE(0xff0020, 0xff003f) AM_WRITENOP // config regs ADDRESS_MAP_END @@ -2036,11 +1930,11 @@ static MACHINE_DRIVER_START( tturfbl ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16_7759) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(tturfbl_readmem,tturfbl_writemem) + MDRV_CPU_PROGRAM_MAP(tturfbl_map,0) MDRV_CPU_MODIFY("soundcpu") - MDRV_CPU_PROGRAM_MAP(tturfbl_sound_readmem,tturfbl_sound_writemem) - MDRV_CPU_IO_MAP(tturfbl_sound_readport,tturfbl_sound_writeport) + MDRV_CPU_PROGRAM_MAP(tturfbl_sound_map,0) + MDRV_CPU_IO_MAP(tturfbl_sound_io_map,0) MDRV_SOUND_REMOVE("7759") MDRV_SOUND_ADD("5205", MSM5205, 220000) @@ -2081,33 +1975,23 @@ INPUT_PORTS_END /***************************************************************************/ -static ADDRESS_MAP_START( wb3bbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) +static ADDRESS_MAP_START( wb3bbl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w) + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) + AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") - AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") - AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") - AM_RANGE(0xc46000, 0xc4601f) AM_READ(SYS16_MRA16_EXTRAM3) - AM_RANGE(0xff0000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wb3bbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) + AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP - AM_RANGE(0xc46000, 0xc4601f) AM_WRITE(SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3) - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xc46000, 0xc4601f) AM_READWRITE(SYS16_MRA16_EXTRAM3, SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3) + AM_RANGE(0xff0000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END /***************************************************************************/ @@ -2180,7 +2064,7 @@ static MACHINE_DRIVER_START( wb3bbl ) /* basic machine hardware */ MDRV_IMPORT_FROM(system16) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(wb3bbl_readmem,wb3bbl_writemem) + MDRV_CPU_PROGRAM_MAP(wb3bbl_map,0) MDRV_MACHINE_RESET(wb3bbl) MACHINE_DRIVER_END diff --git a/src/mame/drivers/system18.c b/src/mame/drivers/system18.c index f5122dd0078..18bcb1547bc 100644 --- a/src/mame/drivers/system18.c +++ b/src/mame/drivers/system18.c @@ -223,26 +223,17 @@ static WRITE8_HANDLER( shdancbl_bankctrl_w ) } } -static ADDRESS_MAP_START( shdancbl_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) +static ADDRESS_MAP_START(shdancbl_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_READ(shdancbl_soundbank_r) - AM_RANGE(0xc400, 0xc400) AM_READ(soundlatch_r) - AM_RANGE(0xcc00, 0xcc03) AM_DEVREAD("3438.0", ym3438_r) - AM_RANGE(0xd000, 0xd003) AM_DEVREAD("3438.1", ym3438_r) - AM_RANGE(0xdf00, 0xdfff) AM_READNOP - AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START(shdancbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITENOP /* ROM bank */ AM_RANGE(0xc000, 0xc00f) AM_WRITENOP + AM_RANGE(0xc400, 0xc400) AM_READ(soundlatch_r) AM_RANGE(0xc800, 0xc800) AM_WRITE(shdancbl_msm5205_data_w) - AM_RANGE(0xcc00, 0xcc03) AM_DEVWRITE("3438.0", ym3438_w) - AM_RANGE(0xd000, 0xd003) AM_DEVWRITE("3438.1", ym3438_w) + AM_RANGE(0xcc00, 0xcc03) AM_DEVREADWRITE("3438.0", ym3438_r, ym3438_w) + AM_RANGE(0xd000, 0xd003) AM_DEVREADWRITE("3438.1", ym3438_r, ym3438_w) AM_RANGE(0xd400, 0xd400) AM_WRITE(shdancbl_bankctrl_w) - AM_RANGE(0xdf00, 0xdfff) AM_WRITENOP - AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM) + AM_RANGE(0xdf00, 0xdfff) AM_NOP + AM_RANGE(0xe000, 0xffff) AM_RAM ADDRESS_MAP_END static ADDRESS_MAP_START( shdancbl_sound_io_map, ADDRESS_SPACE_IO, 8 ) @@ -262,20 +253,13 @@ static READ8_HANDLER( system18_bank_r ) return 0xFF; } -static ADDRESS_MAP_START( sound_readmem_18, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x9fff) AM_READ(SMH_ROM) +static ADDRESS_MAP_START( sound_18_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x9fff) AM_ROM AM_RANGE(0xa000, 0xbfff) AM_READ(system18_bank_r) /**** D/A register ****/ - AM_RANGE(0xd000, 0xdfff) AM_DEVREAD("5c68", rf5c68_mem_r) - AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem_18, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) - /**** D/A register ****/ AM_RANGE(0xc000, 0xc008) AM_DEVWRITE("5c68", rf5c68_w) - AM_RANGE(0xd000, 0xdfff) AM_DEVWRITE("5c68", rf5c68_mem_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM) //?? + AM_RANGE(0xd000, 0xdfff) AM_DEVREADWRITE("5c68", rf5c68_mem_r, rf5c68_mem_w) + AM_RANGE(0xe000, 0xffff) AM_RAM //?? ADDRESS_MAP_END @@ -649,36 +633,25 @@ static WRITE16_HANDLER( sys18_io_w ) */ /***************************************************************************/ -static ADDRESS_MAP_START( shdancbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x4407ff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(vdp_r) - AM_RANGE(0xe40000, 0xe4ffff) AM_READ(sys18_io_r) +static ADDRESS_MAP_START( shdancbl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(vdp_r, vdp_w) AM_RANGE(0xc40000, 0xc40001) AM_READ_PORT("COINAGE") AM_RANGE(0xc40002, 0xc40003) AM_READ_PORT("DSW1") + AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_irq_w) + AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") - AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( shdancbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(vdp_w) - AM_RANGE(0xe4001c, 0xe4001d) AM_WRITENOP // to prevent access to screen blanking control below - AM_RANGE(0xe40000, 0xe4ffff) AM_WRITE(sys18_io_w) - AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_irq_w) AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP // only used via clr.w after tilebank set AM_RANGE(0xc46000, 0xc46fff) AM_WRITENOP // bootleg specific video hardware + AM_RANGE(0xe4001c, 0xe4001d) AM_WRITENOP // to prevent access to screen blanking control below + AM_RANGE(0xe40000, 0xe4ffff) AM_READWRITE(sys18_io_r, sys18_io_w) AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END /***************************************************************************/ @@ -749,44 +722,26 @@ static DRIVER_INIT( shdancbl ) */ /***************************************************************************/ -static READ16_HANDLER( mwalkbl_skip_r ){ - if (cpu_get_pc(space->cpu)==0x308a) {cpu_spinuntil_int(space->cpu); return 0xffff;} - return sys16_workingram[0x202c/2]; -} - - -static ADDRESS_MAP_START( mwalkbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(vdp_r) +static ADDRESS_MAP_START( mwalkbl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) + AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(vdp_r, vdp_w) AM_RANGE(0xc40000, 0xc40001) AM_READ_PORT("COINAGE") AM_RANGE(0xc40002, 0xc40003) AM_READ_PORT("DSW1") + AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_nmi_w) + AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P3") AM_RANGE(0xc41008, 0xc41009) AM_READNOP // figure this out, extra input for 3p? - AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") - AM_RANGE(0xe40000, 0xe4ffff) AM_READ(SYS16_MRA16_EXTRAM2) - AM_RANGE(0xffe02c, 0xffe02d) AM_READ(mwalkbl_skip_r) - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mwalkbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(vdp_w) - AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_nmi_w) AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w) AM_RANGE(0xc46800, 0xc46801) AM_WRITE(sys18_tilebank_w) - AM_RANGE(0xe40000, 0xe4ffff) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) + AM_RANGE(0xe40000, 0xe4ffff) AM_READWRITE(SYS16_MRA16_EXTRAM2, SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END /***************************************************************************/ @@ -889,35 +844,24 @@ static DRIVER_INIT( mwalkbl ){ /* bootleg doesn't have real vdp or i/o */ -static ADDRESS_MAP_START( astormbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x110000, 0x110fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x140000, 0x140fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0x200000, 0x200fff) AM_READ(SYS16_MRA16_SPRITERAM) +static ADDRESS_MAP_START( astormbl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x100000, 0x10ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) + AM_RANGE(0x110000, 0x110fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) + AM_RANGE(0x140000, 0x140fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) + AM_RANGE(0x200000, 0x200fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("COINAGE") AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW1") + AM_RANGE(0xa00006, 0xa00007) AM_WRITE(sound_command_nmi_w) + AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE(sys18_tilebank_w) + AM_RANGE(0xa01000, 0xa01001) AM_READ_PORT("SERVICE") AM_RANGE(0xa01002, 0xa01003) AM_READ_PORT("P1") AM_RANGE(0xa01004, 0xa01005) AM_READ_PORT("P2") AM_RANGE(0xa01006, 0xa01007) AM_READ_PORT("P3") - AM_RANGE(0xa01000, 0xa01001) AM_READ_PORT("SERVICE") - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(vdp_r) - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( astormbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x110000, 0x110fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x140000, 0x140fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0x200000, 0x200fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0xa00006, 0xa00007) AM_WRITE(sound_command_nmi_w) - AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE(sys18_tilebank_w) - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(vdp_w) + AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(vdp_r, vdp_w) AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w) AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) + AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) ADDRESS_MAP_END @@ -1069,7 +1013,7 @@ static MACHINE_DRIVER_START( system18 ) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_CPU_ADD("soundcpu", Z80, 8000000) - MDRV_CPU_PROGRAM_MAP(sound_readmem_18,sound_writemem_18) + MDRV_CPU_PROGRAM_MAP(sound_18_map,0) MDRV_CPU_IO_MAP(sound_18_io_map,0) /* video hardware */ @@ -1112,7 +1056,7 @@ static MACHINE_DRIVER_START( astormbl ) /* basic machine hardware */ MDRV_IMPORT_FROM(system18) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(astormbl_readmem,astormbl_writemem) + MDRV_CPU_PROGRAM_MAP(astormbl_map,0) MDRV_MACHINE_RESET(astormbl) MACHINE_DRIVER_END @@ -1123,7 +1067,7 @@ static MACHINE_DRIVER_START( mwalkbl ) /* basic machine hardware */ MDRV_IMPORT_FROM(system18) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(mwalkbl_readmem,mwalkbl_writemem) + MDRV_CPU_PROGRAM_MAP(mwalkbl_map,0) MDRV_MACHINE_RESET(mwalkbl) MACHINE_DRIVER_END @@ -1134,10 +1078,10 @@ static MACHINE_DRIVER_START( shdancbl ) /* basic machine hardware */ MDRV_IMPORT_FROM(system18) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(shdancbl_readmem,shdancbl_writemem) + MDRV_CPU_PROGRAM_MAP(shdancbl_map,0) MDRV_CPU_MODIFY("soundcpu") - MDRV_CPU_PROGRAM_MAP(shdancbl_sound_readmem,shdancbl_sound_writemem) + MDRV_CPU_PROGRAM_MAP(shdancbl_sound_map,0) MDRV_CPU_IO_MAP(shdancbl_sound_io_map,0) MDRV_SOUND_REMOVE("5c68") |
