diff --git a/src/emu/memory.h b/src/emu/memory.h index dc0284a2fa9..2b5f73b6812 100644 --- a/src/emu/memory.h +++ b/src/emu/memory.h @@ -26,7 +26,7 @@ /* address spaces */ enum { - ADDRESS_SPACE_PROGRAM = 0, /* program address space */ + ADDRESS_SPACE_PROGRAM = 0, /* program address space */ ADDRESS_SPACE_DATA, /* data address space */ ADDRESS_SPACE_IO, /* I/O address space */ ADDRESS_SPACES /* maximum number of address spaces */ diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c index efe10297c96..5a37f2af0fb 100644 --- a/src/mame/drivers/aquarium.c +++ b/src/mame/drivers/aquarium.c @@ -144,55 +144,36 @@ static WRITE8_HANDLER( aquarium_oki_w ) -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM) - AM_RANGE(0xc80000, 0xc81fff) AM_READ(SMH_RAM) /* sprite ram */ - AM_RANGE(0xd00000, 0xd00fff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_WRITE(aquarium_mid_videoram_w) AM_BASE(&aquarium_mid_videoram) + AM_RANGE(0xc01000, 0xc01fff) AM_RAM AM_WRITE(aquarium_bak_videoram_w) AM_BASE(&aquarium_bak_videoram) + AM_RANGE(0xc02000, 0xc03fff) AM_RAM AM_WRITE(aquarium_txt_videoram_w) AM_BASE(&aquarium_txt_videoram) + AM_RANGE(0xc80000, 0xc81fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0xd00000, 0xd00fff) AM_RAM AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) + AM_RANGE(0xd80014, 0xd8001f) AM_WRITE(SMH_RAM) AM_BASE(&aquarium_scroll) + AM_RANGE(0xd80068, 0xd80069) AM_WRITENOP /* probably not used */ AM_RANGE(0xd80080, 0xd80081) AM_READ(input_port_0_word_r) AM_RANGE(0xd80082, 0xd80083) AM_READ(SMH_NOP) /* stored but not read back ? check code at 0x01f440 */ AM_RANGE(0xd80084, 0xd80085) AM_READ(input_port_1_word_r) AM_RANGE(0xd80086, 0xd80087) AM_READ(aquarium_coins_r) - AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) /* RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0xc00000, 0xc00fff) AM_WRITE(aquarium_mid_videoram_w) AM_BASE(&aquarium_mid_videoram) - AM_RANGE(0xc01000, 0xc01fff) AM_WRITE(aquarium_bak_videoram_w) AM_BASE(&aquarium_bak_videoram) - AM_RANGE(0xc02000, 0xc03fff) AM_WRITE(aquarium_txt_videoram_w) AM_BASE(&aquarium_txt_videoram) - AM_RANGE(0xc80000, 0xc81fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xd00000, 0xd00fff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xd80014, 0xd8001f) AM_WRITE(SMH_RAM) AM_BASE(&aquarium_scroll) - AM_RANGE(0xd80068, 0xd80069) AM_WRITENOP /* probably not used */ AM_RANGE(0xd80088, 0xd80089) AM_WRITENOP /* ?? video related */ AM_RANGE(0xd8008a, 0xd8008b) AM_WRITE(aquarium_sound_w) - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) + AM_RANGE(0xff0000, 0xffffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( snd_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) - AM_RANGE(0x7800, 0x7fff) AM_READ(SMH_RAM) - AM_RANGE(0x8000, 0xffff) AM_READ(SMH_BANK1) +static ADDRESS_MAP_START( snd_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x7800, 0x7fff) AM_RAM + AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1) ADDRESS_MAP_END -static ADDRESS_MAP_START( snd_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x7800, 0x7fff) AM_WRITE(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( snd_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x02, 0x02) AM_READ(aquarium_oki_r) - AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( snd_writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( snd_portmap, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x02, 0x02) AM_WRITE(aquarium_oki_w) + AM_RANGE(0x01, 0x01) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w) + AM_RANGE(0x02, 0x02) AM_READWRITE(aquarium_oki_r, aquarium_oki_w) + AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r) AM_RANGE(0x06, 0x06) AM_WRITE(aquarium_snd_ack_w) AM_RANGE(0x08, 0x08) AM_WRITE(aquarium_z80_bank_w) ADDRESS_MAP_END @@ -369,13 +350,12 @@ static MACHINE_DRIVER_START( aquarium ) /* basic machine hardware */ MDRV_CPU_ADD(M68000, 32000000/2) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT("main", irq1_line_hold) MDRV_CPU_ADD(Z80, 6000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(snd_readmem,snd_writemem) - MDRV_CPU_IO_MAP(snd_readport,snd_writeport) + MDRV_CPU_PROGRAM_MAP(snd_map,0) + MDRV_CPU_IO_MAP(snd_portmap,0) #if AQUARIUS_HACK MDRV_MACHINE_RESET(aquarium) diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c index 5d0451e6136..e5bc46d73ac 100644 --- a/src/mame/drivers/argus.c +++ b/src/mame/drivers/argus.c @@ -276,25 +276,14 @@ static WRITE8_HANDLER( butasan_pagedram_w ) ***************************************************************************/ -static ADDRESS_MAP_START( argus_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) +static ADDRESS_MAP_START( argus_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(1) AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r) // Coin AM_RANGE(0xc001, 0xc001) AM_READ(input_port_1_r) // Player 1 AM_RANGE(0xc002, 0xc002) AM_READ(input_port_2_r) // Player 2 AM_RANGE(0xc003, 0xc003) AM_READ(input_port_3_r) // DSW 1 AM_RANGE(0xc004, 0xc004) AM_READ(input_port_4_r) // DSW 2 - AM_RANGE(0xc400, 0xcfff) AM_READ(argus_paletteram_r) - AM_RANGE(0xd000, 0xd7ff) AM_READ(argus_txram_r) - AM_RANGE(0xd800, 0xdfff) AM_READ(argus_bg1ram_r) - AM_RANGE(0xe000, 0xf1ff) AM_READ(SMH_RAM) - AM_RANGE(0xf200, 0xf7ff) AM_READ(SMH_RAM) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( argus_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_BANK1) AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_w) AM_RANGE(0xc201, 0xc201) AM_WRITE(argus_flipscreen_w) AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w) @@ -303,33 +292,22 @@ static ADDRESS_MAP_START( argus_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xc308, 0xc309) AM_WRITE(argus_bg1_scrollx_w) AM_BASE(&argus_bg1_scrollx) AM_RANGE(0xc30a, 0xc30b) AM_WRITE(argus_bg1_scrolly_w) AM_BASE(&argus_bg1_scrolly) AM_RANGE(0xc30c, 0xc30c) AM_WRITE(argus_bg_status_w) - AM_RANGE(0xc400, 0xcfff) AM_WRITE(argus_paletteram_w) AM_BASE(&argus_paletteram) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(argus_txram_w) AM_BASE(&argus_txram) - AM_RANGE(0xd800, 0xdfff) AM_WRITE(argus_bg1ram_w) AM_BASE(&argus_bg1ram) - AM_RANGE(0xe000, 0xf1ff) AM_WRITE(SMH_RAM) - AM_RANGE(0xf200, 0xf7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) + AM_RANGE(0xc400, 0xcfff) AM_READWRITE(argus_paletteram_r, argus_paletteram_w) AM_BASE(&argus_paletteram) + AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(argus_txram_r, argus_txram_w) AM_BASE(&argus_txram) + AM_RANGE(0xd800, 0xdfff) AM_READWRITE(argus_bg1ram_r, argus_bg1ram_w) AM_BASE(&argus_bg1ram) + AM_RANGE(0xe000, 0xf1ff) AM_RAM + AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( valtric_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) +static ADDRESS_MAP_START( valtric_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(1) AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r) // Coin AM_RANGE(0xc001, 0xc001) AM_READ(input_port_1_r) // Player 1 AM_RANGE(0xc002, 0xc002) AM_READ(input_port_2_r) // Player 2 AM_RANGE(0xc003, 0xc003) AM_READ(input_port_3_r) // DSW 1 AM_RANGE(0xc004, 0xc004) AM_READ(input_port_4_r) // DSW 2 - AM_RANGE(0xc400, 0xcfff) AM_READ(argus_paletteram_r) - AM_RANGE(0xd000, 0xd7ff) AM_READ(argus_txram_r) - AM_RANGE(0xd800, 0xdfff) AM_READ(argus_bg1ram_r) - AM_RANGE(0xe000, 0xf1ff) AM_READ(SMH_RAM) - AM_RANGE(0xf200, 0xf7ff) AM_READ(SMH_RAM) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( valtric_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_BANK1) AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_w) AM_RANGE(0xc201, 0xc201) AM_WRITE(argus_flipscreen_w) AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w) @@ -337,33 +315,22 @@ static ADDRESS_MAP_START( valtric_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xc30a, 0xc30b) AM_WRITE(argus_bg1_scrolly_w) AM_BASE(&argus_bg1_scrolly) AM_RANGE(0xc30c, 0xc30c) AM_WRITE(valtric_bg_status_w) AM_RANGE(0xc30d, 0xc30d) AM_WRITE(valtric_mosaic_w) - AM_RANGE(0xc400, 0xcfff) AM_WRITE(valtric_paletteram_w) AM_BASE(&argus_paletteram) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(argus_txram_w) AM_BASE(&argus_txram) - AM_RANGE(0xd800, 0xdfff) AM_WRITE(argus_bg1ram_w) AM_BASE(&argus_bg1ram) - AM_RANGE(0xe000, 0xf1ff) AM_WRITE(SMH_RAM) - AM_RANGE(0xf200, 0xf7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) + AM_RANGE(0xc400, 0xcfff) AM_READWRITE(argus_paletteram_r, valtric_paletteram_w) AM_BASE(&argus_paletteram) + AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(argus_txram_r, argus_txram_w) AM_BASE(&argus_txram) + AM_RANGE(0xd800, 0xdfff) AM_READWRITE(argus_bg1ram_r, argus_bg1ram_w) AM_BASE(&argus_bg1ram) + AM_RANGE(0xe000, 0xf1ff) AM_RAM + AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( butasan_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) +static ADDRESS_MAP_START( butasan_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(1) AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r) // Coin AM_RANGE(0xc001, 0xc001) AM_READ(input_port_1_r) // Player 1 AM_RANGE(0xc002, 0xc002) AM_READ(input_port_2_r) // Player 2 AM_RANGE(0xc003, 0xc003) AM_READ(input_port_3_r) // DSW 1 AM_RANGE(0xc004, 0xc004) AM_READ(input_port_4_r) // DSW 2 - AM_RANGE(0xc400, 0xc7ff) AM_READ(butasan_bg1ram_r) - AM_RANGE(0xc800, 0xcfff) AM_READ(argus_paletteram_r) - AM_RANGE(0xd000, 0xdfff) AM_READ(butasan_pagedram_r) - AM_RANGE(0xe000, 0xefff) AM_READ(SMH_RAM) - AM_RANGE(0xf000, 0xf67f) AM_READ(SMH_RAM) - AM_RANGE(0xf680, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( butasan_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_BANK1) AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_w) AM_RANGE(0xc201, 0xc201) AM_WRITE(argus_flipscreen_w) AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w) @@ -374,42 +341,21 @@ static ADDRESS_MAP_START( butasan_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xc308, 0xc309) AM_WRITE(argus_bg1_scrollx_w) AM_BASE(&argus_bg1_scrollx) AM_RANGE(0xc30a, 0xc30b) AM_WRITE(argus_bg1_scrolly_w) AM_BASE(&argus_bg1_scrolly) AM_RANGE(0xc30c, 0xc30c) AM_WRITE(butasan_bg1_status_w) - AM_RANGE(0xc400, 0xc7ff) AM_WRITE(butasan_bg1ram_w) AM_BASE(&butasan_bg1ram) - AM_RANGE(0xc800, 0xcfff) AM_WRITE(butasan_paletteram_w) AM_BASE(&argus_paletteram) - AM_RANGE(0xd000, 0xdfff) AM_WRITE(butasan_pagedram_w) - AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_RAM) - AM_RANGE(0xf000, 0xf67f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xf680, 0xffff) AM_WRITE(SMH_RAM) + AM_RANGE(0xc400, 0xc7ff) AM_READWRITE(butasan_bg1ram_r, butasan_bg1ram_w) AM_BASE(&butasan_bg1ram) + AM_RANGE(0xc800, 0xcfff) AM_READWRITE(argus_paletteram_r, butasan_paletteram_w) AM_BASE(&argus_paletteram) + AM_RANGE(0xd000, 0xdfff) AM_READWRITE(butasan_pagedram_r, butasan_pagedram_w) + AM_RANGE(0xe000, 0xefff) AM_RAM + AM_RANGE(0xf000, 0xf67f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xf680, 0xffff) AM_RAM ADDRESS_MAP_END WRITE8_HANDLER( bombsa_txram_w ); READ8_HANDLER( bombsa_txram_r ); -static ADDRESS_MAP_START( bombsa_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) - - AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM) - - AM_RANGE(0xd000, 0xd1ff) AM_READ(SMH_RAM) - AM_RANGE(0xd200, 0xd7ff) AM_READ(SMH_RAM) - AM_RANGE(0xd800, 0xdfff) AM_READ(SMH_RAM) - /* Input ports */ - AM_RANGE(0xe000, 0xe000) AM_READ(input_port_0_r) // Coin - AM_RANGE(0xe001, 0xe001) AM_READ(input_port_1_r) // Player 1 - AM_RANGE(0xe002, 0xe002) AM_READ(input_port_2_r) // Player 2 - AM_RANGE(0xe003, 0xe003) AM_READ(input_port_3_r) // DSW 1 - AM_RANGE(0xe004, 0xe004) AM_READ(input_port_4_r) // DSW 2 - - AM_RANGE(0xe800, 0xefff) AM_READ(bombsa_txram_r) - AM_RANGE(0xf000, 0xffff) AM_READ(bombsa_paletteram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bombsa_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_BANK1) - - AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) +static ADDRESS_MAP_START( bombsa_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(1) + AM_RANGE(0xc000, 0xcfff) AM_RAM /* ports look like the other games */ AM_RANGE(0xd000, 0xd000) AM_WRITE(soundlatch_w) // confirmed @@ -417,69 +363,52 @@ static ADDRESS_MAP_START( bombsa_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xd002, 0xd002) AM_WRITE(argus_bankselect_w) AM_RANGE(0xd003, 0xd003) AM_WRITE(bombsa_pageselect_w) // 0,1,0,1,0,1 etc. - AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) - AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd800, 0xdfff) AM_WRITE(SMH_RAM) + AM_RANGE(0xd000, 0xd1ff) AM_RAM + AM_RANGE(0xd200, 0xd7ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xd800, 0xdfff) AM_RAM + /* Input ports */ + AM_RANGE(0xe000, 0xe000) AM_READ(input_port_0_r) // Coin + AM_RANGE(0xe001, 0xe001) AM_READ(input_port_1_r) // Player 1 + AM_RANGE(0xe002, 0xe002) AM_READ(input_port_2_r) // Player 2 + AM_RANGE(0xe003, 0xe003) AM_READ(input_port_3_r) // DSW 1 + AM_RANGE(0xe004, 0xe004) AM_READ(input_port_4_r) // DSW 2 AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) // ?? - AM_RANGE(0xe800, 0xefff) AM_WRITE(bombsa_txram_w) AM_BASE(&argus_txram) // banked? it gets corrupted at game start, maybe its banked and one layer can be 16x16 or 8x8? - AM_RANGE(0xf000, 0xffff) AM_WRITE(bombsa_paletteram_w) AM_BASE(&argus_paletteram) // banked? + AM_RANGE(0xe800, 0xefff) AM_READWRITE(bombsa_txram_r, bombsa_txram_w) AM_BASE(&argus_txram) // banked? it gets corrupted at game start, maybe its banked and one layer can be 16x16 or 8x8? + AM_RANGE(0xf000, 0xffff) AM_READWRITE(bombsa_paletteram_r, bombsa_paletteram_w) AM_BASE(&argus_paletteram) // banked? ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_readmem_a, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( sound_map_a, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writemem_a, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem_b, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( sound_map_b, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xbfff) AM_ROM + AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writemem_b, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) +static ADDRESS_MAP_START( sound_map_c, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xbfff) AM_ROM + AM_RANGE(0xc000, 0xc7ff) AM_RAM + AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) + AM_RANGE(0xf000, 0xf000) AM_WRITEONLY // Is this a confirm of some sort? ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writemem_c, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) - AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_RAM) // Is this a confirm of some sort? -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport_1, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sound_portmap_1, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r) + AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) + AM_RANGE(0x01, 0x01) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writeport_1, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sound_portmap_2, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport_2, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r) - AM_RANGE(0x80, 0x80) AM_READ(YM2203_status_port_1_r) - AM_RANGE(0x81, 0x81) AM_READ(YM2203_read_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport_2, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0x80, 0x80) AM_WRITE(YM2203_control_port_1_w) - AM_RANGE(0x81, 0x81) AM_WRITE(YM2203_write_port_1_w) + AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) + AM_RANGE(0x01, 0x01) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w) + AM_RANGE(0x80, 0x80) AM_READWRITE(YM2203_status_port_1_r, YM2203_control_port_1_w) + AM_RANGE(0x81, 0x81) AM_READWRITE(YM2203_read_port_1_r, YM2203_write_port_1_w) ADDRESS_MAP_END @@ -772,13 +701,12 @@ static MACHINE_DRIVER_START( argus ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 5000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(argus_readmem,argus_writemem) + MDRV_CPU_PROGRAM_MAP(argus_map,0) MDRV_CPU_VBLANK_INT_HACK(argus_interrupt,2) MDRV_CPU_ADD(Z80, 5000000) - /* audio CPU */ /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem_a,sound_writemem_a) - MDRV_CPU_IO_MAP(sound_readport_1,sound_writeport_1) + MDRV_CPU_PROGRAM_MAP(sound_map_a,0) + MDRV_CPU_IO_MAP(sound_portmap_1,0) MDRV_INTERLEAVE(10) @@ -810,13 +738,12 @@ static MACHINE_DRIVER_START( valtric ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 5000000) /* 5 MHz */ - MDRV_CPU_PROGRAM_MAP(valtric_readmem,valtric_writemem) + MDRV_CPU_PROGRAM_MAP(valtric_map,0) MDRV_CPU_VBLANK_INT_HACK(argus_interrupt,2) MDRV_CPU_ADD(Z80, 5000000) - /* audio CPU */ /* 5 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem_a,sound_writemem_a) - MDRV_CPU_IO_MAP(sound_readport_2,sound_writeport_2) + MDRV_CPU_PROGRAM_MAP(sound_map_a,0) + MDRV_CPU_IO_MAP(sound_portmap_2,0) MDRV_INTERLEAVE(10) @@ -854,13 +781,12 @@ static MACHINE_DRIVER_START( butasan ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 5000000) /* 5 MHz */ - MDRV_CPU_PROGRAM_MAP(butasan_readmem,butasan_writemem) + MDRV_CPU_PROGRAM_MAP(butasan_map,0) MDRV_CPU_VBLANK_INT_HACK(argus_interrupt,2) MDRV_CPU_ADD(Z80, 5000000) - /* audio CPU */ /* 5 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem_b,sound_writemem_b) - MDRV_CPU_IO_MAP(sound_readport_2,sound_writeport_2) + MDRV_CPU_PROGRAM_MAP(sound_map_b,0) + MDRV_CPU_IO_MAP(sound_portmap_2,0) MDRV_INTERLEAVE(10) @@ -898,13 +824,12 @@ static MACHINE_DRIVER_START( bombsa ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 5000000) /* 5 MHz */ - MDRV_CPU_PROGRAM_MAP(bombsa_readmem,bombsa_writemem) + MDRV_CPU_PROGRAM_MAP(bombsa_map,0) MDRV_CPU_VBLANK_INT_HACK(argus_interrupt,2) - MDRV_CPU_ADD(Z80, 12000000 / 2) - /* audio CPU */ /* 6 MHz */ /* maybe CPU speeds are reversed? Probably not (ajg) */ - MDRV_CPU_PROGRAM_MAP(sound_readmem_b,sound_writemem_c) - MDRV_CPU_IO_MAP(sound_readport_2,sound_writeport_2) + MDRV_CPU_ADD(Z80, 12000000 / 2) /* maybe CPU speeds are reversed? Probably not (ajg) */ + MDRV_CPU_PROGRAM_MAP(sound_map_c,0) + MDRV_CPU_IO_MAP(sound_portmap_2,0) MDRV_INTERLEAVE(10) diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c index e7ab2c8ee22..f55d7093877 100644 --- a/src/mame/drivers/armedf.c +++ b/src/mame/drivers/armedf.c @@ -247,31 +247,20 @@ static WRITE16_HANDLER( legion_command_c ) -static ADDRESS_MAP_START( terraf_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x04ffff) AM_READ(SMH_ROM) - AM_RANGE(0x060000, 0x063fff) AM_READ(SMH_RAM) - AM_RANGE(0x064000, 0x064fff) AM_READ(SMH_RAM) - AM_RANGE(0x068000, 0x069fff) AM_READ(SMH_RAM) - AM_RANGE(0x06a000, 0x06a9ff) AM_READ(SMH_RAM) - AM_RANGE(0x06C000, 0x06C9ff) AM_READ(SMH_RAM) - AM_RANGE(0x070000, 0x070fff) AM_READ(SMH_RAM) - AM_RANGE(0x074000, 0x074fff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( terraf_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x04ffff) AM_ROM + AM_RANGE(0x060000, 0x0603ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x060400, 0x063fff) AM_RAM + AM_RANGE(0x064000, 0x064fff) AM_RAM AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x068000, 0x069fff) AM_RAM AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) + AM_RANGE(0x06a000, 0x06a9ff) AM_RAM + AM_RANGE(0x06c000, 0x06c9ff) AM_RAM + AM_RANGE(0x070000, 0x070fff) AM_RAM AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) + AM_RANGE(0x074000, 0x074fff) AM_RAM AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) AM_RANGE(0x078000, 0x078001) AM_READ(input_port_0_word_r) AM_RANGE(0x078002, 0x078003) AM_READ(input_port_1_word_r) AM_RANGE(0x078004, 0x078005) AM_READ(input_port_2_word_r) AM_RANGE(0x078006, 0x078007) AM_READ(input_port_3_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( terraf_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x04ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x060000, 0x0603ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x060400, 0x063fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x064000, 0x064fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x068000, 0x069fff) AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) - AM_RANGE(0x06a000, 0x06a9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06C000, 0x06C9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x070000, 0x070fff) AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) - AM_RANGE(0x074000, 0x074fff) AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) AM_RANGE(0x07c000, 0x07c001) AM_WRITE(terraf_io_w) AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w) AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) @@ -283,31 +272,20 @@ static ADDRESS_MAP_START( terraf_writemem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(terraf_fg_scroll_msb_arm_w) /* written between two consecutive writes to 7c008 */ ADDRESS_MAP_END -static ADDRESS_MAP_START( kodure_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_READ(SMH_ROM) - AM_RANGE(0x060000, 0x063fff) AM_READ(SMH_RAM) - AM_RANGE(0x064000, 0x064fff) AM_READ(SMH_RAM) - AM_RANGE(0x068000, 0x069fff) AM_READ(SMH_RAM) - AM_RANGE(0x06a000, 0x06a9ff) AM_READ(SMH_RAM) - AM_RANGE(0x06C000, 0x06C9ff) AM_READ(SMH_RAM) - AM_RANGE(0x070000, 0x070fff) AM_READ(SMH_RAM) - AM_RANGE(0x074000, 0x074fff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( kodure_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x05ffff) AM_ROM + AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x061000, 0x063fff) AM_RAM + AM_RANGE(0x064000, 0x064fff) AM_RAM AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x068000, 0x069fff) AM_RAM AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) + AM_RANGE(0x06a000, 0x06a9ff) AM_RAM + AM_RANGE(0x06c000, 0x06c9ff) AM_RAM + AM_RANGE(0x070000, 0x070fff) AM_RAM AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) + AM_RANGE(0x074000, 0x074fff) AM_RAM AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) AM_RANGE(0x078000, 0x078001) AM_READ(input_port_0_word_r) AM_RANGE(0x078002, 0x078003) AM_READ(input_port_1_word_r) AM_RANGE(0x078004, 0x078005) AM_READ(input_port_2_word_r) AM_RANGE(0x078006, 0x078007) AM_READ(input_port_3_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kodure_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x060000, 0x060fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x061000, 0x063fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x064000, 0x064fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x068000, 0x069fff) AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) - AM_RANGE(0x06a000, 0x06a9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06C000, 0x06C9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x070000, 0x070fff) AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) - AM_RANGE(0x074000, 0x074fff) AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) AM_RANGE(0x07c000, 0x07c001) AM_WRITE(kodure_io_w) AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w) AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) @@ -316,32 +294,21 @@ static ADDRESS_MAP_START( kodure_writemem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xffd000, 0xffd001) AM_WRITE(SMH_NOP) /* ? */ ADDRESS_MAP_END -static ADDRESS_MAP_START( cclimbr2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_READ(SMH_ROM) - AM_RANGE(0x060000, 0x063fff) AM_READ(SMH_RAM) - AM_RANGE(0x064000, 0x064fff) AM_READ(SMH_RAM) - AM_RANGE(0x068000, 0x069fff) AM_READ(SMH_RAM) - AM_RANGE(0x06a000, 0x06a9ff) AM_READ(SMH_RAM) - AM_RANGE(0x06c000, 0x06c9ff) AM_READ(SMH_RAM) - AM_RANGE(0x070000, 0x070fff) AM_READ(SMH_RAM) - AM_RANGE(0x074000, 0x074fff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( cclimbr2_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x05ffff) AM_ROM + AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x061000, 0x063fff) AM_RAM + AM_RANGE(0x064000, 0x064fff) AM_RAM AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x068000, 0x069fff) AM_RAM AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) + AM_RANGE(0x06a000, 0x06a9ff) AM_RAM + AM_RANGE(0x06c000, 0x06c9ff) AM_RAM + AM_RANGE(0x06ca00, 0x06cbff) AM_WRITEONLY + AM_RANGE(0x070000, 0x070fff) AM_RAM AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) + AM_RANGE(0x074000, 0x074fff) AM_RAM AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) AM_RANGE(0x078000, 0x078001) AM_READ(input_port_0_word_r) AM_RANGE(0x078002, 0x078003) AM_READ(input_port_1_word_r) AM_RANGE(0x078004, 0x078005) AM_READ(input_port_2_word_r) AM_RANGE(0x078006, 0x078007) AM_READ(input_port_3_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cclimbr2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x060000, 0x060fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x061000, 0x063fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x064000, 0x064fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x068000, 0x069fff) AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) - AM_RANGE(0x06a000, 0x06a9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06c000, 0x06c9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06ca00, 0x06cbff) AM_WRITE(SMH_RAM) - AM_RANGE(0x070000, 0x070fff) AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) - AM_RANGE(0x074000, 0x074fff) AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) AM_RANGE(0x07c000, 0x07c001) AM_WRITE(io_w) AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w) AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) @@ -350,17 +317,21 @@ static ADDRESS_MAP_START( cclimbr2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP) /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */ ADDRESS_MAP_END -static ADDRESS_MAP_START( legion_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x060000, 0x060fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x061000, 0x063fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x064000, 0x064fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x068000, 0x069fff) AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) - AM_RANGE(0x06a000, 0x06a9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06c000, 0x06c9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06ca00, 0x06cbff) AM_WRITE(SMH_RAM) - AM_RANGE(0x070000, 0x070fff) AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) - AM_RANGE(0x074000, 0x074fff) AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) +static ADDRESS_MAP_START( legion_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x05ffff) AM_ROM + AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x061000, 0x063fff) AM_RAM + AM_RANGE(0x064000, 0x064fff) AM_RAM AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x068000, 0x069fff) AM_RAM AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) + AM_RANGE(0x06a000, 0x06a9ff) AM_RAM + AM_RANGE(0x06c000, 0x06c9ff) AM_RAM + AM_RANGE(0x06ca00, 0x06cbff) AM_WRITEONLY + AM_RANGE(0x070000, 0x070fff) AM_RAM AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) + AM_RANGE(0x074000, 0x074fff) AM_RAM AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) + AM_RANGE(0x078000, 0x078001) AM_READ(input_port_0_word_r) + AM_RANGE(0x078002, 0x078003) AM_READ(input_port_1_word_r) + AM_RANGE(0x078004, 0x078005) AM_READ(input_port_2_word_r) + AM_RANGE(0x078006, 0x078007) AM_READ(input_port_3_word_r) AM_RANGE(0x07c000, 0x07c001) AM_WRITE(terraf_io_w) AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w) AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) @@ -369,19 +340,23 @@ static ADDRESS_MAP_START( legion_writemem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP) /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */ ADDRESS_MAP_END -static ADDRESS_MAP_START( legiono_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x040000, 0x04003f) AM_WRITE(SMH_RAM) AM_BASE(&legion_cmd) - AM_RANGE(0x040040, 0x05ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x060000, 0x060fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x061000, 0x063fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x064000, 0x064fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x068000, 0x069fff) AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) - AM_RANGE(0x06a000, 0x06a9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06c000, 0x06c9ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06ca00, 0x06cbff) AM_WRITE(SMH_RAM) - AM_RANGE(0x070000, 0x070fff) AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) - AM_RANGE(0x074000, 0x074fff) AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) +static ADDRESS_MAP_START( legiono_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x040000, 0x04003f) AM_WRITEONLY AM_BASE(&legion_cmd) + AM_RANGE(0x040040, 0x05ffff) AM_ROM + AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x061000, 0x063fff) AM_RAM + AM_RANGE(0x064000, 0x064fff) AM_RAM AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x068000, 0x069fff) AM_RAM AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) + AM_RANGE(0x06a000, 0x06a9ff) AM_RAM + AM_RANGE(0x06c000, 0x06c9ff) AM_RAM + AM_RANGE(0x06ca00, 0x06cbff) AM_WRITEONLY + AM_RANGE(0x070000, 0x070fff) AM_RAM AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) + AM_RANGE(0x074000, 0x074fff) AM_RAM AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) + AM_RANGE(0x078000, 0x078001) AM_READ(input_port_0_word_r) + AM_RANGE(0x078002, 0x078003) AM_READ(input_port_1_word_r) + AM_RANGE(0x078004, 0x078005) AM_READ(input_port_2_word_r) + AM_RANGE(0x078006, 0x078007) AM_READ(input_port_3_word_r) AM_RANGE(0x07c000, 0x07c001) AM_WRITE(terraf_io_w) AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w) AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) @@ -390,31 +365,20 @@ static ADDRESS_MAP_START( legiono_writemem, ADDRESS_SPACE_PROGRAM, 16 ) //AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP) /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */ ADDRESS_MAP_END -static ADDRESS_MAP_START( armedf_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_READ(SMH_ROM) - AM_RANGE(0x060000, 0x065fff) AM_READ(SMH_RAM) - AM_RANGE(0x066000, 0x066fff) AM_READ(SMH_RAM) - AM_RANGE(0x067000, 0x067fff) AM_READ(SMH_RAM) - AM_RANGE(0x068000, 0x069fff) AM_READ(SMH_RAM) - AM_RANGE(0x06a000, 0x06afff) AM_READ(SMH_RAM) - AM_RANGE(0x06b000, 0x06bfff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( armedf_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x05ffff) AM_ROM + AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x061000, 0x065fff) AM_RAM + AM_RANGE(0x066000, 0x066fff) AM_RAM AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) + AM_RANGE(0x067000, 0x067fff) AM_RAM AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) + AM_RANGE(0x068000, 0x069fff) AM_RAM AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) + AM_RANGE(0x06a000, 0x06afff) AM_RAM AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x06b000, 0x06bfff) AM_RAM AM_RANGE(0x06c000, 0x06c001) AM_READ(input_port_0_word_r) AM_RANGE(0x06c002, 0x06c003) AM_READ(input_port_1_word_r) AM_RANGE(0x06c004, 0x06c005) AM_READ(input_port_2_word_r) AM_RANGE(0x06c006, 0x06c007) AM_READ(input_port_3_word_r) - AM_RANGE(0x06c008, 0x06c7ff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( armedf_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x060000, 0x060fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x061000, 0x065fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x066000, 0x066fff) AM_WRITE(armedf_bg_videoram_w) AM_BASE(&armedf_bg_videoram) - AM_RANGE(0x067000, 0x067fff) AM_WRITE(armedf_fg_videoram_w) AM_BASE(&armedf_fg_videoram) - AM_RANGE(0x068000, 0x069fff) AM_WRITE(armedf_text_videoram_w) AM_BASE(&terraf_text_videoram) - AM_RANGE(0x06a000, 0x06afff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x06b000, 0x06bfff) AM_WRITE(SMH_RAM) - AM_RANGE(0x06c000, 0x06c7ff) AM_WRITE(SMH_RAM) + AM_RANGE(0x06c000, 0x06c7ff) AM_RAM AM_RANGE(0x06d000, 0x06d001) AM_WRITE(io_w) AM_RANGE(0x06d002, 0x06d003) AM_WRITE(armedf_bg_scrollx_w) AM_RANGE(0x06d004, 0x06d005) AM_WRITE(armedf_bg_scrolly_w) @@ -424,24 +388,14 @@ static ADDRESS_MAP_START( armedf_writemem, ADDRESS_SPACE_PROGRAM, 16 ) ADDRESS_MAP_END -static ADDRESS_MAP_START( soundreadmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xf7ff) AM_READ(SMH_ROM) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xf7ff) AM_ROM + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( soundwritemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xf7ff) AM_WRITE(SMH_ROM) - AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cclimbr2_soundreadmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) - AM_RANGE(0xc000, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cclimbr2_soundwritemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) - AM_RANGE(0xc000, 0xffff) AM_WRITE(SMH_RAM) +static ADDRESS_MAP_START( cclimbr2_soundmap, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xbfff) AM_ROM + AM_RANGE(0xc000, 0xffff) AM_RAM ADDRESS_MAP_END static READ8_HANDLER( soundlatch_clear_r ) @@ -450,18 +404,14 @@ static READ8_HANDLER( soundlatch_clear_r ) return 0; } -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x4, 0x4) AM_READ(soundlatch_clear_r) - AM_RANGE(0x6, 0x6) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x0, 0x0) AM_WRITE(YM3812_control_port_0_w) AM_RANGE(0x1, 0x1) AM_WRITE(YM3812_write_port_0_w) AM_RANGE(0x2, 0x2) AM_WRITE(DAC_0_signed_data_w) AM_RANGE(0x3, 0x3) AM_WRITE(DAC_1_signed_data_w) + AM_RANGE(0x4, 0x4) AM_READ(soundlatch_clear_r) + AM_RANGE(0x6, 0x6) AM_READ(soundlatch_r) ADDRESS_MAP_END @@ -761,13 +711,12 @@ static MACHINE_DRIVER_START( terraf ) /* basic machine hardware */ MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz?? */ - MDRV_CPU_PROGRAM_MAP(terraf_readmem,terraf_writemem) + MDRV_CPU_PROGRAM_MAP(terraf_map,0) MDRV_CPU_VBLANK_INT("main", irq1_line_hold) - MDRV_CPU_ADD(Z80, 3072000) - /* audio CPU */ /* 3.072 MHz???? */ - MDRV_CPU_PROGRAM_MAP(soundreadmem,soundwritemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz???? */ + MDRV_CPU_PROGRAM_MAP(sound_map,0) + MDRV_CPU_IO_MAP(sound_portmap,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* video hardware */ @@ -803,13 +752,13 @@ static MACHINE_DRIVER_START( kodure ) /* basic machine hardware */ MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz?? */ - MDRV_CPU_PROGRAM_MAP(kodure_readmem,kodure_writemem) + MDRV_CPU_PROGRAM_MAP(kodure_map,0) MDRV_CPU_VBLANK_INT("main", irq1_line_hold) MDRV_CPU_ADD(Z80, 3072000) /* audio CPU */ /* 3.072 MHz???? */ - MDRV_CPU_PROGRAM_MAP(soundreadmem,soundwritemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_PROGRAM_MAP(sound_map,0) + MDRV_CPU_IO_MAP(sound_portmap,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* video hardware */ @@ -845,13 +794,13 @@ static MACHINE_DRIVER_START( armedf ) /* basic machine hardware */ MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz?? */ - MDRV_CPU_PROGRAM_MAP(armedf_readmem,armedf_writemem) + MDRV_CPU_PROGRAM_MAP(armedf_map,0) MDRV_CPU_VBLANK_INT("main", irq1_line_hold) MDRV_CPU_ADD(Z80, 3072000) /* audio CPU */ /* 3.072 MHz???? */ - MDRV_CPU_PROGRAM_MAP(soundreadmem,soundwritemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_PROGRAM_MAP(sound_map,0) + MDRV_CPU_IO_MAP(sound_portmap,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* video hardware */ @@ -887,13 +836,12 @@ static MACHINE_DRIVER_START( cclimbr2 ) /* basic machine hardware */ MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz?? */ - MDRV_CPU_PROGRAM_MAP(cclimbr2_readmem,cclimbr2_writemem) + MDRV_CPU_PROGRAM_MAP(cclimbr2_map,0) MDRV_CPU_VBLANK_INT("main", irq2_line_hold) - MDRV_CPU_ADD(Z80, 3072000) - /* audio CPU */ /* 3.072 MHz???? */ - MDRV_CPU_PROGRAM_MAP(cclimbr2_soundreadmem,cclimbr2_soundwritemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz???? */ + MDRV_CPU_PROGRAM_MAP(cclimbr2_soundmap,0) + MDRV_CPU_IO_MAP(sound_portmap,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* video hardware */ @@ -929,13 +877,12 @@ static MACHINE_DRIVER_START( legion ) /* basic machine hardware */ MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz?? */ - MDRV_CPU_PROGRAM_MAP(cclimbr2_readmem,legion_writemem) + MDRV_CPU_PROGRAM_MAP(legion_map,0) MDRV_CPU_VBLANK_INT("main", irq2_line_hold) - MDRV_CPU_ADD(Z80, 3072000) - /* audio CPU */ /* 3.072 MHz???? */ - MDRV_CPU_PROGRAM_MAP(cclimbr2_soundreadmem,cclimbr2_soundwritemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz???? */ + MDRV_CPU_PROGRAM_MAP(cclimbr2_soundmap,0) + MDRV_CPU_IO_MAP(sound_portmap,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* video hardware */ @@ -971,13 +918,13 @@ static MACHINE_DRIVER_START( legiono ) /* basic machine hardware */ MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz?? */ - MDRV_CPU_PROGRAM_MAP(cclimbr2_readmem,legiono_writemem) + MDRV_CPU_PROGRAM_MAP(legiono_map,0) MDRV_CPU_VBLANK_INT("main", irq2_line_hold) MDRV_CPU_ADD(Z80, 3072000) /* audio CPU */ /* 3.072 MHz???? */ - MDRV_CPU_PROGRAM_MAP(cclimbr2_soundreadmem,cclimbr2_soundwritemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_PROGRAM_MAP(cclimbr2_soundmap,0) + MDRV_CPU_IO_MAP(sound_portmap,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* video hardware */ diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c index 5f295721343..fdf03e8af31 100644 --- a/src/mame/drivers/bagman.c +++ b/src/mame/drivers/bagman.c @@ -192,23 +192,14 @@ static WRITE8_HANDLER( bagman_coin_counter_w ) coin_counter_w(offset,data); } -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM) - AM_RANGE(0x6000, 0x67ff) AM_READ(SMH_RAM) - AM_RANGE(0x9000, 0x93ff) AM_READ(SMH_RAM) - AM_RANGE(0x9800, 0x9bff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x5fff) AM_ROM + AM_RANGE(0x6000, 0x67ff) AM_RAM + AM_RANGE(0x9000, 0x93ff) AM_RAM AM_WRITE(bagman_videoram_w) AM_BASE(&videoram) + AM_RANGE(0x9800, 0x9bff) AM_RAM AM_WRITE(bagman_colorram_w) AM_BASE(&colorram) + AM_RANGE(0x9c00, 0x9fff) AM_WRITENOP /* written to, but unused */ AM_RANGE(0xa000, 0xa000) AM_READ(bagman_pal16r6_r) //AM_RANGE(0xa800, 0xa805) AM_READ(bagman_ls259_r) /*just for debugging purposes*/ - AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r) /* DSW */ - AM_RANGE(0xb800, 0xb800) AM_READ(SMH_NOP) - AM_RANGE(0xc000, 0xffff) AM_READ(SMH_ROM) /* Super Bagman only */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x6000, 0x67ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x9000, 0x93ff) AM_WRITE(bagman_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x9800, 0x9bff) AM_WRITE(bagman_colorram_w) AM_BASE(&colorram) AM_RANGE(0xa000, 0xa000) AM_WRITE(interrupt_enable_w) AM_RANGE(0xa001, 0xa002) AM_WRITE(bagman_flipscreen_w) AM_RANGE(0xa003, 0xa003) AM_WRITE(SMH_RAM) AM_BASE(&bagman_video_enable) @@ -217,8 +208,10 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) /* here only to initialize the pointer, */ /* writes are handled by bagman_colorram_w */ AM_RANGE(0xa800, 0xa805) AM_WRITE(bagman_ls259_w) /* TMS5110 driving state machine */ - AM_RANGE(0x9c00, 0x9fff) AM_WRITE(SMH_NOP) /* written to, but unused */ AM_RANGE(0xa004, 0xa004) AM_WRITE(bagman_coin_counter_w) + AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r) /* DSW */ + AM_RANGE(0xb800, 0xb800) AM_READNOP + AM_RANGE(0xc000, 0xffff) AM_ROM /* Super Bagman only */ #if 0 AM_RANGE(0xa007, 0xa007) AM_WRITE(SMH_NOP) /* ???? */ @@ -227,44 +220,33 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) #endif ADDRESS_MAP_END -static ADDRESS_MAP_START( pickin_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM) - AM_RANGE(0x7000, 0x77ff) AM_READ(SMH_RAM) - AM_RANGE(0x8800, 0x8bff) AM_READ(SMH_RAM) - AM_RANGE(0x9800, 0x9bff) AM_READ(SMH_RAM) - AM_RANGE(0xa800, 0xa800) AM_READ(input_port_2_r) - AM_RANGE(0xb800, 0xb800) AM_READ(SMH_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pickin_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x7000, 0x77ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x8800, 0x8bff) AM_WRITE(bagman_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x9800, 0x9bff) AM_WRITE(bagman_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xa000, 0xa000) AM_WRITE(interrupt_enable_w) - AM_RANGE(0xa001, 0xa002) AM_WRITE(bagman_flipscreen_w) - AM_RANGE(0xa003, 0xa003) AM_WRITE(SMH_RAM) AM_BASE(&bagman_video_enable) +static ADDRESS_MAP_START( pickin_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x5fff) AM_ROM + AM_RANGE(0x7000, 0x77ff) AM_RAM + AM_RANGE(0x8800, 0x8bff) AM_RAM AM_WRITE(bagman_videoram_w) AM_BASE(&videoram) + AM_RANGE(0x9800, 0x9bff) AM_RAM AM_WRITE(bagman_colorram_w) AM_BASE(&colorram) AM_RANGE(0x9800, 0x981f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* hidden portion of color RAM */ /* here only to initialize the pointer, */ /* writes are handled by bagman_colorram_w */ AM_RANGE(0x9c00, 0x9fff) AM_WRITE(SMH_NOP) /* written to, but unused */ + AM_RANGE(0xa000, 0xa000) AM_WRITE(interrupt_enable_w) + AM_RANGE(0xa001, 0xa002) AM_WRITE(bagman_flipscreen_w) + AM_RANGE(0xa003, 0xa003) AM_WRITE(SMH_RAM) AM_BASE(&bagman_video_enable) AM_RANGE(0xa004, 0xa004) AM_WRITE(bagman_coin_counter_w) + AM_RANGE(0xa800, 0xa800) AM_READ(input_port_2_r) #if 0 AM_RANGE(0xa007, 0xa007) AM_WRITE(SMH_NOP) /* ???? */ AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP) /* ???? */ + AM_RANGE(0xb800, 0xb800) AM_READ(SMH_NOP) AM_RANGE(0xb800, 0xb800) AM_WRITE(SMH_NOP) /* ???? */ #endif ADDRESS_MAP_END -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x0c, 0x0c) AM_READ(AY8910_read_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w) AM_RANGE(0x09, 0x09) AM_WRITE(AY8910_write_port_0_w) + AM_RANGE(0x0c, 0x0c) AM_READ(AY8910_read_port_0_r) //AM_RANGE(0x56, 0x56) AM_WRITE(SMH_NOP) ADDRESS_MAP_END @@ -428,8 +410,8 @@ static MACHINE_DRIVER_START( bagman ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_PROGRAM_MAP(main_map,0) + MDRV_CPU_IO_MAP(main_portmap,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) MDRV_MACHINE_RESET(bagman) @@ -464,8 +446,8 @@ static MACHINE_DRIVER_START( pickin ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(pickin_readmem,pickin_writemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_PROGRAM_MAP(pickin_map,0) + MDRV_CPU_IO_MAP(main_portmap,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) MDRV_MACHINE_RESET(bagman) @@ -514,8 +496,8 @@ static MACHINE_DRIVER_START( botanic ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(pickin_readmem,pickin_writemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_PROGRAM_MAP(pickin_map,0) + MDRV_CPU_IO_MAP(main_portmap,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) MDRV_MACHINE_RESET(bagman) diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c index d57911b6a1a..468731519a4 100644 --- a/src/mame/drivers/battlera.c +++ b/src/mame/drivers/battlera.c @@ -74,27 +74,19 @@ static READ8_HANDLER( control_data_r ) /******************************************************************************/ -static ADDRESS_MAP_START( battlera_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(HuC6270_debug_r) /* Cheat to view vram data */ - AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8) - AM_RANGE(0x1fe000, 0x1fe001) AM_READ(HuC6270_register_r) - AM_RANGE(0x1ff000, 0x1ff001) AM_READ(control_data_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( battlera_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(HuC6270_debug_w) /* Cheat to edit vram data */ +static ADDRESS_MAP_START( battlera_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM + AM_RANGE(0x100000, 0x10ffff) AM_READWRITE(HuC6270_debug_r, HuC6270_debug_w) /* Cheat to edit vram data */ AM_RANGE(0x1e0800, 0x1e0801) AM_WRITE(battlera_sound_w) AM_RANGE(0x1e1000, 0x1e13ff) AM_WRITE(battlera_palette_w) AM_BASE(&paletteram) - AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8) /* Main ram */ - AM_RANGE(0x1fe000, 0x1fe001) AM_WRITE(HuC6270_register_w) + AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK(8) /* Main ram */ + AM_RANGE(0x1fe000, 0x1fe001) AM_READWRITE(HuC6270_register_r, HuC6270_register_w) AM_RANGE(0x1fe002, 0x1fe003) AM_WRITE(HuC6270_data_w) - AM_RANGE(0x1ff000, 0x1ff001) AM_WRITE(control_data_w) + AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(control_data_r, control_data_w) AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(H6280_irq_status_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( battlera_portwrite, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( battlera_portmap, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0x00, 0x01) AM_WRITE(HuC6270_register_w) AM_RANGE(0x02, 0x03) AM_WRITE(HuC6270_data_w) ADDRESS_MAP_END @@ -133,19 +125,13 @@ static WRITE8_HANDLER( battlera_adpcm_reset_w ) MSM5205_reset_w(0,0); } -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM) - AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK7) /* Main ram */ - AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x000000, 0x00ffff) AM_ROM AM_RANGE(0x040000, 0x040001) AM_WRITE(YM2203_w) AM_RANGE(0x080000, 0x080001) AM_WRITE(battlera_adpcm_data_w) AM_RANGE(0x1fe800, 0x1fe80f) AM_WRITE(C6280_0_w) - AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK7) /* Main ram */ - AM_RANGE(0x1ff000, 0x1ff001) AM_WRITE(battlera_adpcm_reset_w) + AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK(7) /* Main ram */ + AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(soundlatch_r, battlera_adpcm_reset_w) AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(H6280_irq_status_w) ADDRESS_MAP_END @@ -260,13 +246,12 @@ static MACHINE_DRIVER_START( battlera ) /* basic machine hardware */ MDRV_CPU_ADD(H6280,21477200/3) - MDRV_CPU_PROGRAM_MAP(battlera_readmem,battlera_writemem) - MDRV_CPU_IO_MAP(0,battlera_portwrite) + MDRV_CPU_PROGRAM_MAP(battlera_map,0) + MDRV_CPU_IO_MAP(battlera_portmap,0) MDRV_CPU_VBLANK_INT_HACK(battlera_interrupt,256) /* 8 prelines, 232 lines, 16 vblank? */ MDRV_CPU_ADD(H6280,21477200/3) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) + MDRV_CPU_PROGRAM_MAP(sound_map,0) /* video hardware */ MDRV_SCREEN_ADD("main", RASTER)