summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-04-16 04:54:57 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-04-16 04:54:57 +0000
commita7c928efaae3431fe54735632d9e70f1a80cc9b7 (patch)
tree00ae0242b1a26561e859f057ba9536c003865a49
parent212d7e36d4f65db45cd1671211479aeb802c81f1 (diff)
Memory map merges.
-rw-r--r--src/emu/memory.h2
-rw-r--r--src/mame/drivers/aquarium.c62
-rw-r--r--src/mame/drivers/argus.c223
-rw-r--r--src/mame/drivers/armedf.c259
-rw-r--r--src/mame/drivers/bagman.c72
-rw-r--r--src/mame/drivers/battlera.c43
6 files changed, 240 insertions, 421 deletions
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)
-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 )
- 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)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writeport_1, 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)
+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_readport_2, 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(0x80, 0x80) AM_READ(YM2203_status_port_1_r)
- AM_RANGE(0x81, 0x81) AM_READ(YM2203_read_port_1_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_2, 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)
- 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)