summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-02-26 10:56:21 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-02-26 10:56:21 +0000
commit3fbf56dc0f6ce894215839e5a1b701541d3f8bf3 (patch)
treea5ae293bd6d9749f5a3c69e93a1f9b00e85391c0
parente8d437422c41226aab25d707fcccd07e07d7849f (diff)
Merged memory maps.
-rw-r--r--src/mame/drivers/1945kiii.c40
-rw-r--r--src/mame/drivers/4enraya.c22
-rw-r--r--src/mame/drivers/88games.c53
-rw-r--r--src/mame/drivers/ace.c32
-rw-r--r--src/mame/drivers/actfancr.c79
-rw-r--r--src/mame/drivers/aeroboto.c68
-rw-r--r--src/mame/drivers/aerofgt.c415
-rw-r--r--src/mame/drivers/ajax.c91
-rw-r--r--src/mame/drivers/aliens.c46
-rw-r--r--src/mame/drivers/alpha68k.c247
-rw-r--r--src/mame/drivers/ambush.c36
-rw-r--r--src/mame/drivers/amspdwy.c73
-rw-r--r--src/mame/drivers/angelkds.c81
-rw-r--r--src/mame/drivers/asuka.c230
-rw-r--r--src/mame/drivers/aztarac.c61
-rw-r--r--src/mame/machine/ajax.c12
16 files changed, 547 insertions, 1039 deletions
diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c
index 1d156833697..3f72af0081c 100644
--- a/src/mame/drivers/1945kiii.c
+++ b/src/mame/drivers/1945kiii.c
@@ -129,37 +129,25 @@ static WRITE16_HANDLER( k3_soundbanks_w )
-static ADDRESS_MAP_START( k3_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM)
- AM_RANGE(0x200000, 0x200fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x240000, 0x240fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x280000, 0x280fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x2c0000, 0x2c0fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x400000, 0x400001) AM_READ(input_port_0_word_r)
- AM_RANGE(0x440000, 0x440001) AM_READ(input_port_1_word_r)
- AM_RANGE(0x480000, 0x480001) AM_READ(input_port_2_word_r)
- AM_RANGE(0x4c0000, 0x4c0001) AM_READ(OKIM6295_status_1_msb_r)
- AM_RANGE(0x500000, 0x500001) AM_READ(OKIM6295_status_0_msb_r)
- AM_RANGE(0x8c0000, 0x8cffff) AM_READ(MRA16_RAM)// not used?
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( k3_writemem, ADDRESS_SPACE_PROGRAM, 16 )
+static ADDRESS_MAP_START( k3_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0009CE, 0x0009CF) AM_WRITE(MWA16_NOP) // bug in code? (clean up log)
AM_RANGE(0x0009D2, 0x0009D3) AM_WRITE(MWA16_NOP) // bug in code? (clean up log)
- AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) // ROM
- AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) // Main Ram
- AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) // palette
- AM_RANGE(0x240000, 0x240fff) AM_WRITE(MWA16_RAM) AM_BASE(&k3_spriteram_1)
- AM_RANGE(0x280000, 0x280fff) AM_WRITE(MWA16_RAM) AM_BASE(&k3_spriteram_2)
- AM_RANGE(0x2c0000, 0x2c0fff) AM_WRITE(k3_bgram_w) AM_BASE(&k3_bgram)
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
+ AM_RANGE(0x100000, 0x10ffff) AM_RAM // Main Ram
+ AM_RANGE(0x200000, 0x200fff) AM_READWRITE(MRA16_RAM, paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) // palette
+ AM_RANGE(0x240000, 0x240fff) AM_RAM AM_BASE(&k3_spriteram_1)
+ AM_RANGE(0x280000, 0x280fff) AM_RAM AM_BASE(&k3_spriteram_2)
+ AM_RANGE(0x2c0000, 0x2c0fff) AM_READWRITE(MRA16_RAM, k3_bgram_w) AM_BASE(&k3_bgram)
AM_RANGE(0x340000, 0x340001) AM_WRITE(k3_scrollx_w)
AM_RANGE(0x380000, 0x380001) AM_WRITE(k3_scrolly_w)
AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(k3_soundbanks_w)
- AM_RANGE(0x4c0000, 0x4c0001) AM_WRITE(OKIM6295_data_1_msb_w)
- AM_RANGE(0x500000, 0x500001) AM_WRITE(OKIM6295_data_0_msb_w)
- AM_RANGE(0x8c0000, 0x8cffff) AM_WRITE(MWA16_RAM) // not used?
+ AM_RANGE(0x400000, 0x400001) AM_READ(input_port_0_word_r)
+ AM_RANGE(0x440000, 0x440001) AM_READ(input_port_1_word_r)
+ AM_RANGE(0x480000, 0x480001) AM_READ(input_port_2_word_r)
+ AM_RANGE(0x4c0000, 0x4c0001) AM_READWRITE(OKIM6295_status_1_msb_r, OKIM6295_data_1_msb_w)
+ AM_RANGE(0x500000, 0x500001) AM_READWRITE(OKIM6295_status_0_msb_r, OKIM6295_data_0_msb_w)
+ AM_RANGE(0x8c0000, 0x8cffff) AM_RAM // not used?
ADDRESS_MAP_END
static INPUT_PORTS_START( k3 )
@@ -257,7 +245,7 @@ GFXDECODE_END
static MACHINE_DRIVER_START( k3 )
MDRV_CPU_ADD(M68000, 16000000)
- MDRV_CPU_PROGRAM_MAP(k3_readmem,k3_writemem)
+ MDRV_CPU_PROGRAM_MAP(k3_map,0)
MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
MDRV_GFXDECODE(1945kiii)
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index b4d92ca0b47..39a896aef6b 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -77,27 +77,17 @@ static WRITE8_HANDLER( sound_control_w )
last=data;
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_READ(MRA8_RAM)
- AM_RANGE(0xd000, 0xffff) AM_READ(MRA8_NOP)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xbfff) AM_ROM
+ AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xdfff) AM_WRITE(fenraya_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x23, 0x23) AM_WRITE(sound_data_w)
AM_RANGE(0x33, 0x33) AM_WRITE(sound_control_w)
ADDRESS_MAP_END
@@ -169,8 +159,8 @@ static MACHINE_DRIVER_START( 4enraya )
/* basic machine hardware */
MDRV_CPU_ADD(Z80,8000000/2)
- 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(irq0_line_hold,4)
/* video hardware */
diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c
index 6b51b4fb745..fa6441831c4 100644
--- a/src/mame/drivers/88games.c
+++ b/src/mame/drivers/88games.c
@@ -120,10 +120,16 @@ static WRITE8_HANDLER( speech_msg_w )
upd7759_port_w( speech_chip, data );
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_RAM) AM_BASE(&banked_rom) /* banked ROM + palette RAM */
- AM_RANGE(0x2000, 0x37ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x3800, 0x3fff) AM_READ(bankedram_r)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE(&banked_rom) /* banked ROM + palette RAM */
+ AM_RANGE(0x1000, 0x1fff) AM_READWRITE(MRA8_RAM, paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram_1000) /* banked ROM + palette RAM */
+ AM_RANGE(0x2000, 0x2fff) AM_RAM
+ AM_RANGE(0x3000, 0x37ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
+ AM_RANGE(0x3800, 0x3fff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(&ram)
+ AM_RANGE(0x5f84, 0x5f84) AM_WRITE(k88games_5f84_w)
+ AM_RANGE(0x5f88, 0x5f88) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(soundlatch_w)
+ AM_RANGE(0x5f90, 0x5f90) AM_WRITE(k88games_sh_irqtrigger_w)
AM_RANGE(0x5f94, 0x5f94) AM_READ(input_port_0_r)
// AM_RANGE(0x5f95, 0x5f95) AM_READ(input_port_1_r)
// AM_RANGE(0x5f96, 0x5f96) AM_READ(input_port_2_r)
@@ -131,38 +137,18 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5f96, 0x5f96) AM_READ(cheat2_r) /* P3 and P4 IO and handle fake button for cheating */
AM_RANGE(0x5f97, 0x5f97) AM_READ(input_port_3_r)
AM_RANGE(0x5f9b, 0x5f9b) AM_READ(input_port_4_r)
- AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_051960_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_RAM) /* banked ROM */
- AM_RANGE(0x1000, 0x1fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram_1000) /* banked ROM + palette RAM */
- AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x3000, 0x37ff) AM_WRITE(MWA8_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
- AM_RANGE(0x3800, 0x3fff) AM_WRITE(bankedram_w) AM_BASE(&ram)
- AM_RANGE(0x5f84, 0x5f84) AM_WRITE(k88games_5f84_w)
- AM_RANGE(0x5f88, 0x5f88) AM_WRITE(watchdog_reset_w)
- AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(soundlatch_w)
- AM_RANGE(0x5f90, 0x5f90) AM_WRITE(k88games_sh_irqtrigger_w)
AM_RANGE(0x5fc0, 0x5fcf) AM_WRITE(K051316_ctrl_0_w)
- AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_051960_w)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0x4000, 0x7fff) AM_READWRITE(K052109_051960_r, K052109_051960_w)
+ AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
- AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(speech_msg_w)
+ AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w)
- AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w)
+ AM_RANGE(0xc001, 0xc001) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0xe000, 0xe000) AM_WRITE(speech_control_w)
ADDRESS_MAP_END
@@ -292,12 +278,11 @@ static MACHINE_DRIVER_START( 88games )
/* basic machine hardware */
MDRV_CPU_ADD(KONAMI, 3000000) /* ? */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT(k88games_interrupt,1)
MDRV_CPU_ADD(Z80, 3579545)
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_MACHINE_RESET(88games)
MDRV_NVRAM_HANDLER(generic_0fill)
diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c
index 61b905911c5..64292de5471 100644
--- a/src/mame/drivers/ace.c
+++ b/src/mame/drivers/ace.c
@@ -143,13 +143,19 @@ static READ8_HANDLER( unk_r )
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
+/* 5x2101 - SRAM 256x4 */
+/* 3x3106 - SRAM 256x1 */
+/* 1x3622 - ROM 512x4 - doesn't seem to be used ????????????*/
+
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x09ff) AM_READ(MRA8_ROM)
+ AM_RANGE(0x0000, 0x09ff) AM_ROM
- AM_RANGE(0x2000, 0x20ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x8300, 0x83ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x8000, 0x80ff) AM_READ(ace_characterram_r)
+ AM_RANGE(0x2000, 0x20ff) AM_RAM AM_BASE(&ace_scoreram) /* 2x2101 */
+ AM_RANGE(0x8300, 0x83ff) AM_RAM AM_BASE(&ace_ram2) /* 2x2101 */
+ AM_RANGE(0x8000, 0x80ff) AM_READWRITE(ace_characterram_r, ace_characterram_w) AM_BASE(&ace_characterram) /* 3x3101 (3bits: 0, 1, 2) */
+
+ AM_RANGE(0xc000, 0xc005) AM_WRITE(ace_objpos_w)
/* players inputs */
AM_RANGE(0xc008, 0xc008) AM_READ(input_port_0_r)
@@ -188,20 +194,6 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
-/* 5x2101 - SRAM 256x4 */
-/* 3x3106 - SRAM 256x1 */
-/* 1x3622 - ROM 512x4 - doesn't seem to be used ????????????*/
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x09ff) AM_WRITE(MWA8_ROM)
-
- AM_RANGE(0x2000, 0x20ff) AM_WRITE(MWA8_RAM) AM_BASE(&ace_scoreram) /* 2x2101 */
- AM_RANGE(0x8300, 0x83ff) AM_WRITE(MWA8_RAM) AM_BASE(&ace_ram2) /* 2x2101 */
- AM_RANGE(0x8000, 0x80ff) AM_WRITE(ace_characterram_w) AM_BASE(&ace_characterram) /* 3x3101 (3bits: 0, 1, 2) */
-
- AM_RANGE(0xc000, 0xc005) AM_WRITE(ace_objpos_w)
-ADDRESS_MAP_END
-
static INPUT_PORTS_START( ace )
@@ -319,7 +311,7 @@ static MACHINE_DRIVER_START( ace )
/* basic machine hardware */
MDRV_CPU_ADD(8080, 18000000 / 9) /* 2 MHz ? */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c
index bb772a889cf..080d6fa41ba 100644
--- a/src/mame/drivers/actfancr.c
+++ b/src/mame/drivers/actfancr.c
@@ -90,75 +90,50 @@ static WRITE8_HANDLER( actfancr_sound_w )
/******************************************************************************/
-static ADDRESS_MAP_START( actfan_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x000000, 0x02ffff) AM_READ(MRA8_ROM)
- AM_RANGE(0x062000, 0x063fff) AM_READ(actfancr_pf1_data_r)
- AM_RANGE(0x072000, 0x0727ff) AM_READ(actfancr_pf2_data_r)
- AM_RANGE(0x100000, 0x1007ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x130000, 0x130003) AM_READ(actfan_control_1_r)
- AM_RANGE(0x140000, 0x140001) AM_READ(actfan_control_0_r)
- AM_RANGE(0x120000, 0x1205ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x1f0000, 0x1f3fff) AM_READ(MRA8_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( actfan_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x000000, 0x02ffff) AM_WRITE(MWA8_ROM)
+static ADDRESS_MAP_START( actfan_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x000000, 0x02ffff) AM_ROM
AM_RANGE(0x060000, 0x06001f) AM_WRITE(actfancr_pf1_control_w)
- AM_RANGE(0x062000, 0x063fff) AM_WRITE(actfancr_pf1_data_w) AM_BASE(&actfancr_pf1_data)
+ AM_RANGE(0x062000, 0x063fff) AM_READWRITE(actfancr_pf1_data_r, actfancr_pf1_data_w) AM_BASE(&actfancr_pf1_data)
AM_RANGE(0x070000, 0x07001f) AM_WRITE(actfancr_pf2_control_w)
- AM_RANGE(0x072000, 0x0727ff) AM_WRITE(actfancr_pf2_data_w) AM_BASE(&actfancr_pf2_data)
- AM_RANGE(0x100000, 0x1007ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x072000, 0x0727ff) AM_READWRITE(actfancr_pf2_data_r, actfancr_pf2_data_w) AM_BASE(&actfancr_pf2_data)
+ AM_RANGE(0x100000, 0x1007ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x110000, 0x110001) AM_WRITE(buffer_spriteram_w)
- AM_RANGE(0x120000, 0x1205ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE(&paletteram)
+ AM_RANGE(0x120000, 0x1205ff) AM_READWRITE(MRA8_RAM, paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE(&paletteram)
+ AM_RANGE(0x130000, 0x130003) AM_READ(actfan_control_1_r)
+ AM_RANGE(0x140000, 0x140001) AM_READ(actfan_control_0_r)
AM_RANGE(0x150000, 0x150001) AM_WRITE(actfancr_sound_w)
- AM_RANGE(0x1f0000, 0x1f3fff) AM_WRITE(MWA8_RAM) AM_BASE(&actfancr_ram) /* Main ram */
+ AM_RANGE(0x1f0000, 0x1f3fff) AM_RAM AM_BASE(&actfancr_ram) /* Main ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( triothep_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA8_ROM)
- AM_RANGE(0x044000, 0x045fff) AM_READ(actfancr_pf2_data_r)
- AM_RANGE(0x064000, 0x0647ff) AM_READ(actfancr_pf1_data_r)
- AM_RANGE(0x120000, 0x1207ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x130000, 0x1305ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x140000, 0x140001) AM_READ(MRA8_NOP) /* Value doesn't matter */
- AM_RANGE(0x1f0000, 0x1f3fff) AM_READ(MRA8_RAM)
- AM_RANGE(0x1ff000, 0x1ff001) AM_READ(triothep_control_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( triothep_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA8_ROM)
+static ADDRESS_MAP_START( triothep_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04001f) AM_WRITE(actfancr_pf2_control_w)
- AM_RANGE(0x044000, 0x045fff) AM_WRITE(actfancr_pf2_data_w) AM_BASE(&actfancr_pf2_data)
+ AM_RANGE(0x044000, 0x045fff) AM_READWRITE(actfancr_pf2_data_r, actfancr_pf2_data_w) AM_BASE(&actfancr_pf2_data)
AM_RANGE(0x046400, 0x0467ff) AM_WRITE(MWA8_NOP) /* Pf2 rowscroll - is it used? */
AM_RANGE(0x060000, 0x06001f) AM_WRITE(actfancr_pf1_control_w)
- AM_RANGE(0x064000, 0x0647ff) AM_WRITE(actfancr_pf1_data_w) AM_BASE(&actfancr_pf1_data)
+ AM_RANGE(0x064000, 0x0647ff) AM_READWRITE(actfancr_pf1_data_r, actfancr_pf1_data_w) AM_BASE(&actfancr_pf1_data)
AM_RANGE(0x066400, 0x0667ff) AM_WRITE(MWA8_RAM) AM_BASE(&actfancr_pf1_rowscroll_data)
AM_RANGE(0x100000, 0x100001) AM_WRITE(actfancr_sound_w)
AM_RANGE(0x110000, 0x110001) AM_WRITE(buffer_spriteram_w)
- AM_RANGE(0x120000, 0x1207ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0x130000, 0x1305ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE(&paletteram)
- AM_RANGE(0x1f0000, 0x1f3fff) AM_WRITE(MWA8_RAM) AM_BASE(&actfancr_ram) /* Main ram */
- AM_RANGE(0x1ff000, 0x1ff001) AM_WRITE(triothep_control_select_w)
+ AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x130000, 0x1305ff) AM_READWRITE(MRA8_RAM, paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE(&paletteram)
+ AM_RANGE(0x140000, 0x140001) AM_READNOP /* Value doesn't matter */
+ AM_RANGE(0x1f0000, 0x1f3fff) AM_RAM AM_BASE(&actfancr_ram) /* Main ram */
+ AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(triothep_control_r, triothep_control_select_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(H6280_irq_status_w)
ADDRESS_MAP_END
/******************************************************************************/
-static ADDRESS_MAP_START( dec0_s_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
- AM_RANGE(0x3800, 0x3800) AM_READ(OKIM6295_status_0_r)
- AM_RANGE(0x4000, 0xffff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( dec0_s_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM)
+static ADDRESS_MAP_START( dec0_s_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x0801, 0x0801) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x1000, 0x1000) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x1001, 0x1001) AM_WRITE(YM3812_write_port_0_w)
- AM_RANGE(0x3800, 0x3800) AM_WRITE(OKIM6295_data_0_w)
- AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
+ AM_RANGE(0x3800, 0x3800) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
+ AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
/******************************************************************************/
@@ -376,12 +351,12 @@ static MACHINE_DRIVER_START( actfancr )
/* basic machine hardware */
MDRV_CPU_ADD(H6280,21477200/3) /* Should be accurate */
- MDRV_CPU_PROGRAM_MAP(actfan_readmem,actfan_writemem)
+ MDRV_CPU_PROGRAM_MAP(actfan_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1) /* VBL */
MDRV_CPU_ADD(M6502, 1500000)
/* audio CPU */ /* Should be accurate */
- MDRV_CPU_PROGRAM_MAP(dec0_s_readmem,dec0_s_writemem)
+ MDRV_CPU_PROGRAM_MAP(dec0_s_map,0)
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
@@ -420,12 +395,12 @@ static MACHINE_DRIVER_START( triothep )
/* basic machine hardware */
MDRV_CPU_ADD(H6280,XTAL_21_4772MHz/3) /* XIN=21.4772Mhz, verified on pcb */
- MDRV_CPU_PROGRAM_MAP(triothep_readmem,triothep_writemem)
+ MDRV_CPU_PROGRAM_MAP(triothep_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1) /* VBL */
MDRV_CPU_ADD(M6502, XTAL_12MHz/8) /* verified on pcb */
/* audio CPU */ /* Should be accurate */
- MDRV_CPU_PROGRAM_MAP(dec0_s_readmem,dec0_s_writemem)
+ MDRV_CPU_PROGRAM_MAP(dec0_s_map,0)
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c
index dbeb6c3c5ef..cf1dad3504e 100644
--- a/src/mame/drivers/aeroboto.c
+++ b/src/mame/drivers/aeroboto.c
@@ -73,57 +73,38 @@ static WRITE8_HANDLER ( aeroboto_1a2_w )
if (data) disable_irq = 1;
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM) // main RAM
- AM_RANGE(0x0800, 0x08ff) AM_READ(MRA8_RAM) // tile color buffer; copied to 0x2000
- AM_RANGE(0x1000, 0x17ff) AM_READ(MRA8_RAM) // tile RAM
- AM_RANGE(0x1800, 0x183f) AM_READ(MRA8_RAM) // horizontal scroll regs
- AM_RANGE(0x2000, 0x20ff) AM_READ(MRA8_RAM) // tile color RAM
- AM_RANGE(0x2800, 0x28ff) AM_READ(MRA8_RAM) // sprite RAM
- AM_RANGE(0x2973, 0x2973) AM_READ(aeroboto_2973_r) // protection read
- AM_RANGE(0x3000, 0x3000) AM_READ(aeroboto_in0_r)
- AM_RANGE(0x3001, 0x3001) AM_READ(input_port_2_r)
- AM_RANGE(0x3002, 0x3002) AM_READ(input_port_3_r)
- AM_RANGE(0x3004, 0x3004) AM_READ(aeroboto_201_r) // protection read
- AM_RANGE(0x3800, 0x3800) AM_READ(MRA8_NOP) // watchdog or IRQ ack
- AM_RANGE(0x4000, 0xffff) AM_READ(MRA8_ROM) // main ROM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x01a2, 0x01a2) AM_WRITE(aeroboto_1a2_w) // affects IRQ line (more protection?)
- AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) AM_BASE(&aeroboto_mainram)
- AM_RANGE(0x0800, 0x08ff) AM_WRITE(MWA8_RAM)
+ AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(&aeroboto_mainram) // main RAM
+ AM_RANGE(0x0800, 0x08ff) AM_RAM // tile color buffer; copied to 0x2000
AM_RANGE(0x0900, 0x09ff) AM_WRITE(MWA8_RAM) // a backup of default tile colors
- AM_RANGE(0x1000, 0x17ff) AM_WRITE(aeroboto_videoram_w) AM_BASE(&aeroboto_videoram)
- AM_RANGE(0x1800, 0x183f) AM_WRITE(MWA8_RAM) AM_BASE(&aeroboto_hscroll)
- AM_RANGE(0x2000, 0x20ff) AM_WRITE(aeroboto_tilecolor_w) AM_BASE(&aeroboto_tilecolor)
+ AM_RANGE(0x1000, 0x17ff) AM_READWRITE(MRA8_RAM, aeroboto_videoram_w) AM_BASE(&aeroboto_videoram) // tile RAM
+ AM_RANGE(0x1800, 0x183f) AM_RAM AM_BASE(&aeroboto_hscroll) // horizontal scroll regs
+ AM_RANGE(0x2000, 0x20ff) AM_READWRITE(MRA8_RAM, aeroboto_tilecolor_w) AM_BASE(&aeroboto_tilecolor) // tile color RAM
AM_RANGE(0x1840, 0x27ff) AM_WRITE(MWA8_NOP) // cleared during custom LSI test
- AM_RANGE(0x2800, 0x28ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x2800, 0x28ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) // sprite RAM
AM_RANGE(0x2900, 0x2fff) AM_WRITE(MWA8_NOP) // cleared along with sprite RAM
- AM_RANGE(0x3000, 0x3000) AM_WRITE(aeroboto_3000_w)
- AM_RANGE(0x3001, 0x3001) AM_WRITE(soundlatch_w)
- AM_RANGE(0x3002, 0x3002) AM_WRITE(soundlatch2_w)
- AM_RANGE(0x3003, 0x3003) AM_WRITE(MWA8_RAM) AM_BASE(&aeroboto_vscroll)
- AM_RANGE(0x3004, 0x3004) AM_WRITE(MWA8_RAM) AM_BASE(&aeroboto_starx)
- AM_RANGE(0x3005, 0x3005) AM_WRITE(MWA8_RAM) AM_BASE(&aeroboto_stary) // usable but probably wrong
- AM_RANGE(0x3006, 0x3006) AM_WRITE(MWA8_RAM) AM_BASE(&aeroboto_bgcolor)
- AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_RAM)
- AM_RANGE(0x9002, 0x9002) AM_READ(AY8910_read_port_0_r)
- AM_RANGE(0xa002, 0xa002) AM_READ(AY8910_read_port_1_r)
- AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM)
+ AM_RANGE(0x2973, 0x2973) AM_READ(aeroboto_2973_r) // protection read
+ AM_RANGE(0x3000, 0x3000) AM_READWRITE(aeroboto_in0_r, aeroboto_3000_w)
+ AM_RANGE(0x3001, 0x3001) AM_READWRITE(input_port_2_r, soundlatch_w)
+ AM_RANGE(0x3002, 0x3002) AM_READWRITE(input_port_3_r, soundlatch2_w)
+ AM_RANGE(0x3003, 0x3003) AM_WRITEONLY AM_BASE(&aeroboto_vscroll)
+ AM_RANGE(0x3004, 0x3004) AM_READWRITE(aeroboto_201_r, MWA8_RAM) AM_BASE(&aeroboto_starx)
+ AM_RANGE(0x3005, 0x3005) AM_WRITEONLY AM_BASE(&aeroboto_stary) // usable but probably wrong
+ AM_RANGE(0x3006, 0x3006) AM_WRITEONLY AM_BASE(&aeroboto_bgcolor)
+ AM_RANGE(0x3800, 0x3800) AM_READNOP // watchdog or IRQ ack
+ AM_RANGE(0x4000, 0xffff) AM_ROM // main ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_RAM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x9001, 0x9001) AM_WRITE(AY8910_write_port_0_w)
+ AM_RANGE(0x9002, 0x9002) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0xa000, 0xa000) AM_WRITE(AY8910_control_port_1_w)
AM_RANGE(0xa001, 0xa001) AM_WRITE(AY8910_write_port_1_w)
- AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0xa002, 0xa002) AM_READ(AY8910_read_port_1_r)
+ AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -247,12 +228,11 @@ static MACHINE_DRIVER_START( formatz )
/* basic machine hardware */
MDRV_CPU_ADD(M6809, XTAL_10MHz/8) /* verified on pcb */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT(aeroboto_interrupt,1)
MDRV_CPU_ADD(M6809, XTAL_10MHz/16) /* verified on pcb */
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
/* video hardware */
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index b4c871259b0..c63a58b07e1 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -161,55 +161,42 @@ static WRITE16_HANDLER( pspikesb_oki_banking_w )
}
-static ADDRESS_MAP_START( pspikes_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM)
- AM_RANGE(0x200000, 0x203fff) AM_READ(MRA16_RAM)
- AM_RANGE(0xff8000, 0xff8fff) AM_READ(MRA16_RAM)
- AM_RANGE(0xffd000, 0xffdfff) AM_READ(MRA16_RAM)
- AM_RANGE(0xffe000, 0xffefff) AM_READ(MRA16_RAM)
- AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r)
- AM_RANGE(0xfff002, 0xfff003) AM_READ(input_port_1_word_r)
- AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_2_word_r)
- AM_RANGE(0xfff006, 0xfff007) AM_READ(pending_command_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( pspikes_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0x200000, 0x203fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
- AM_RANGE(0xff8000, 0xff8fff) AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
- AM_RANGE(0xffc000, 0xffc3ff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
- AM_RANGE(0xffd000, 0xffdfff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0xfff000, 0xfff001) AM_WRITE(pspikes_palette_bank_w)
- AM_RANGE(0xfff002, 0xfff003) AM_WRITE(pspikes_gfxbank_w)
- AM_RANGE(0xfff004, 0xfff005) AM_WRITE(aerofgt_bg1scrolly_w)
- AM_RANGE(0xfff006, 0xfff007) AM_WRITE(sound_command_w)
+static ADDRESS_MAP_START( pspikes_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
+ AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
+ AM_RANGE(0xff8000, 0xff8fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0xffc000, 0xffc3ff) AM_WRITEONLY AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
+ AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
+ AM_RANGE(0xffe000, 0xffefff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0xfff000, 0xfff001) AM_READWRITE(input_port_0_word_r, pspikes_palette_bank_w)
+ AM_RANGE(0xfff002, 0xfff003) AM_READWRITE(input_port_1_word_r, pspikes_gfxbank_w)
+ AM_RANGE(0xfff004, 0xfff005) AM_READWRITE(input_port_2_word_r, aerofgt_bg1scrolly_w)
+ AM_RANGE(0xfff006, 0xfff007) AM_READWRITE(pending_command_r, sound_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( pspikesb_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
- AM_RANGE(0xff8000, 0xff8fff) AM_RAM AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0xc04000, 0xc04001) AM_WRITENOP
+ AM_RANGE(0xff8000, 0xff8fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
AM_RANGE(0xffd200, 0xffd201) AM_WRITE(pspikesb_gfxbank_w)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0xffe000, 0xffefff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r)
AM_RANGE(0xfff002, 0xfff003) AM_READ(input_port_1_word_r)
- AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_2_word_r)
- AM_RANGE(0xfff004, 0xfff005) AM_WRITE(aerofgt_bg1scrolly_w)
- AM_RANGE(0xfff008, 0xfff009) AM_WRITE(pspikesb_oki_banking_w)
- AM_RANGE(0xc04000, 0xc04001) AM_WRITENOP
+ AM_RANGE(0xfff004, 0xfff005) AM_READWRITE(input_port_2_word_r, aerofgt_bg1scrolly_w)
AM_RANGE(0xfff006, 0xfff007) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w)
+ AM_RANGE(0xfff008, 0xfff009) AM_WRITE(pspikesb_oki_banking_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( pallavol_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
+ AM_RANGE(0xc04000, 0xc04001) AM_WRITENOP
AM_RANGE(0xff8000, 0xff8fff) AM_RAM AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
//AM_RANGE(0xffd200, 0xffd201) AM_WRITE(pspikesb_gfxbank_w)
@@ -217,21 +204,19 @@ static ADDRESS_MAP_START( pallavol_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r)
AM_RANGE(0xfff002, 0xfff003) AM_READ(input_port_1_word_r) AM_WRITE(pspikes_gfxbank_w)
- AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_2_word_r)
- AM_RANGE(0xfff004, 0xfff005) AM_WRITE(aerofgt_bg1scrolly_w)
- AM_RANGE(0xfff008, 0xfff009) AM_NOP
- AM_RANGE(0xc04000, 0xc04001) AM_WRITENOP
+ AM_RANGE(0xfff004, 0xfff005) AM_READWRITE(input_port_2_word_r, aerofgt_bg1scrolly_w)
AM_RANGE(0xfff006, 0xfff007) AM_NOP
+ AM_RANGE(0xfff008, 0xfff009) AM_NOP
ADDRESS_MAP_END
static ADDRESS_MAP_START( pspikesc_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
- AM_RANGE(0xff8000, 0xff8fff) AM_RAM AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0xff8000, 0xff8fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0xffe000, 0xffefff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
AM_RANGE(0xfff000, 0xfff001) AM_READWRITE(input_port_0_word_r, pspikes_palette_bank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READWRITE(input_port_1_word_r, pspikes_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_2_word_r)
@@ -239,182 +224,105 @@ static ADDRESS_MAP_START( pspikesc_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xfff006, 0xfff007) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( karatblz_readmem, ADDRESS_SPACE_PROGRAM, 16 )
+static ADDRESS_MAP_START( karatblz_map, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x080000, 0x081fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x082000, 0x083fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0a0000, 0x0affff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0b0000, 0x0bffff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0c0000, 0x0cffff) AM_READ(MRA16_RAM) /* work RAM */
- AM_RANGE(0x0f8000, 0x0fbfff) AM_READ(MRA16_RAM) /* work RAM */
- AM_RANGE(0x0fc000, 0x0fc7ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0fe000, 0x0fe7ff) AM_READ(MRA16_RAM)
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x080000, 0x081fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0x082000, 0x083fff) AM_READWRITE(MRA16_RAM, aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
+ AM_RANGE(0x0a0000, 0x0affff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
+ AM_RANGE(0x0b0000, 0x0bffff) AM_RAM AM_BASE(&aerofgt_spriteram2) AM_SIZE(&aerofgt_spriteram2_size)
+ AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
+ AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */
+ AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
+ AM_RANGE(0x0fe000, 0x0fe7ff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x0ff000, 0x0ff001) AM_READ(input_port_0_word_r)
- AM_RANGE(0x0ff002, 0x0ff003) AM_READ(input_port_1_word_r)
+ AM_RANGE(0x0ff002, 0x0ff003) AM_READWRITE(input_port_1_word_r, karatblz_gfxbank_w)
AM_RANGE(0x0ff004, 0x0ff005) AM_READ(input_port_2_word_r)
- AM_RANGE(0x0ff006, 0x0ff007) AM_READ(input_port_3_word_r)
- AM_RANGE(0x0ff008, 0x0ff009) AM_READ(input_port_4_word_r)
- AM_RANGE(0x0ff00a, 0x0ff00b) AM_READ(pending_command_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( karatblz_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x080000, 0x081fff) AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
- AM_RANGE(0x082000, 0x083fff) AM_WRITE(aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
- AM_RANGE(0x0a0000, 0x0affff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
- AM_RANGE(0x0b0000, 0x0bffff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram2) AM_SIZE(&aerofgt_spriteram2_size)
- AM_RANGE(0x0c0000, 0x0cffff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0x0f8000, 0x0fbfff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0x0fc000, 0x0fc7ff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
- AM_RANGE(0x0fe000, 0x0fe7ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0x0ff002, 0x0ff003) AM_WRITE(karatblz_gfxbank_w)
- AM_RANGE(0x0ff006, 0x0ff007) AM_WRITE(sound_command_w)
- AM_RANGE(0x0ff008, 0x0ff009) AM_WRITE(aerofgt_bg1scrollx_w)
- AM_RANGE(0x0ff00a, 0x0ff00b) AM_WRITE(aerofgt_bg1scrolly_w)
+ AM_RANGE(0x0ff006, 0x0ff007) AM_READWRITE(input_port_3_word_r, sound_command_w)
+ AM_RANGE(0x0ff008, 0x0ff009) AM_READWRITE(input_port_4_word_r, aerofgt_bg1scrollx_w)
+ AM_RANGE(0x0ff00a, 0x0ff00b) AM_READWRITE(pending_command_r, aerofgt_bg1scrolly_w)
AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITE(aerofgt_bg2scrollx_w)
AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(aerofgt_bg2scrolly_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( spinlbrk_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x080000, 0x080fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x082000, 0x082fff) AM_READ(MRA16_RAM)
- AM_RANGE(0xff8000, 0xffbfff) AM_READ(MRA16_RAM)
- AM_RANGE(0xffc000, 0xffc7ff) AM_READ(MRA16_RAM)
- AM_RANGE(0xffd000, 0xffd1ff) AM_READ(MRA16_RAM)
- AM_RANGE(0xffe000, 0xffe7ff) AM_READ(MRA16_RAM)
- AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r)
- AM_RANGE(0xfff002, 0xfff003) AM_READ(input_port_1_word_r)
+static ADDRESS_MAP_START( spinlbrk_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x080000, 0x080fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0x082000, 0x082fff) AM_READWRITE(MRA16_RAM, aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
+ AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* work RAM */
+ AM_RANGE(0xffc000, 0xffc7ff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
+ AM_RANGE(0xffd000, 0xffd1ff) AM_RAM AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
+ AM_RANGE(0xffe000, 0xffe7ff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0xfff000, 0xfff001) AM_READWRITE(input_port_0_word_r, spinlbrk_gfxbank_w)
+ AM_RANGE(0xfff002, 0xfff003) AM_READWRITE(input_port_1_word_r, aerofgt_bg2scrollx_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_2_word_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( spinlbrk_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x080000, 0x080fff) AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
- AM_RANGE(0x082000, 0x082fff) AM_WRITE(aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
- AM_RANGE(0xff8000, 0xffbfff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0xffc000, 0xffc7ff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
- AM_RANGE(0xffd000, 0xffd1ff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffe7ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0xfff000, 0xfff001) AM_WRITE(spinlbrk_gfxbank_w)
- AM_RANGE(0xfff002, 0xfff003) AM_WRITE(aerofgt_bg2scrollx_w)
AM_RANGE(0xfff006, 0xfff007) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( turbofrc_readmem, ADDRESS_SPACE_PROGRAM, 16 )
+static ADDRESS_MAP_START( turbofrc_map, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
- AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x0c0000, 0x0cffff) AM_READ(MRA16_RAM) /* work RAM */
- AM_RANGE(0x0d0000, 0x0d1fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0d2000, 0x0d3fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0e0000, 0x0e3fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0e4000, 0x0e7fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0f8000, 0x0fbfff) AM_READ(MRA16_RAM) /* work RAM */
- AM_RANGE(0x0fc000, 0x0fc7ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0fd000, 0x0fdfff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0fe000, 0x0fe7ff) AM_READ(MRA16_RAM)
+ AM_RANGE(0x000000, 0x0bffff) AM_ROM
+ AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
+ AM_RANGE(0x0d0000, 0x0d1fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0x0d2000, 0x0d3fff) AM_READWRITE(MRA16_RAM, aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
+ AM_RANGE(0x0e0000, 0x0e3fff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
+ AM_RANGE(0x0e4000, 0x0e7fff) AM_RAM AM_BASE(&aerofgt_spriteram2) AM_SIZE(&aerofgt_spriteram2_size)
+ AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */
+ AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
+ AM_RANGE(0x0fd000, 0x0fdfff) AM_RAM AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
+ AM_RANGE(0x0fe000, 0x0fe7ff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x0ff000, 0x0ff001) AM_READ(input_port_0_word_r)
- AM_RANGE(0x0ff002, 0x0ff003) AM_READ(input_port_1_word_r)
- AM_RANGE(0x0ff004, 0x0ff005) AM_READ(input_port_2_word_r)
- AM_RANGE(0x0ff006, 0x0ff007) AM_READ(pending_command_r)
+ AM_RANGE(0x0ff002, 0x0ff003) AM_READWRITE(input_port_1_word_r, aerofgt_bg1scrolly_w)
+ AM_RANGE(0x0ff004, 0x0ff005) AM_READWRITE(input_port_2_word_r, aerofgt_bg2scrollx_w)
+ AM_RANGE(0x0ff006, 0x0ff007) AM_READWRITE(pending_command_r, aerofgt_bg2scrolly_w)
AM_RANGE(0x0ff008, 0x0ff009) AM_READ(input_port_3_word_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( turbofrc_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
- AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x0c0000, 0x0cffff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0x0d0000, 0x0d1fff) AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
- AM_RANGE(0x0d2000, 0x0d3fff) AM_WRITE(aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
- AM_RANGE(0x0e0000, 0x0e3fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
- AM_RANGE(0x0e4000, 0x0e7fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram2) AM_SIZE(&aerofgt_spriteram2_size)
- AM_RANGE(0x0f8000, 0x0fbfff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0x0fc000, 0x0fc7ff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
- AM_RANGE(0x0fd000, 0x0fdfff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
- AM_RANGE(0x0fe000, 0x0fe7ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0x0ff002, 0x0ff003) AM_WRITE(aerofgt_bg1scrolly_w)
- AM_RANGE(0x0ff004, 0x0ff005) AM_WRITE(aerofgt_bg2scrollx_w)
- AM_RANGE(0x0ff006, 0x0ff007) AM_WRITE(aerofgt_bg2scrolly_w)
AM_RANGE(0x0ff008, 0x0ff00b) AM_WRITE(turbofrc_gfxbank_w)
AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITE(MWA16_NOP) /* related to bg2 (written together with the scroll registers) */
AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(turbofrc_sound_command_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerofgtb_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x0c0000, 0x0cffff) AM_READ(MRA16_RAM) /* work RAM */
- AM_RANGE(0x0d0000, 0x0d1fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0d2000, 0x0d3fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0e0000, 0x0e3fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0e4000, 0x0e7fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0f8000, 0x0fbfff) AM_READ(MRA16_RAM) /* work RAM */
- AM_RANGE(0x0fc000, 0x0fc7ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0fd000, 0x0fd7ff) AM_READ(MRA16_RAM)
+static ADDRESS_MAP_START( aerofgtb_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
+ AM_RANGE(0x0d0000, 0x0d1fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0x0d2000, 0x0d3fff) AM_READWRITE(MRA16_RAM, aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
+ AM_RANGE(0x0e0000, 0x0e3fff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
+ AM_RANGE(0x0e4000, 0x0e7fff) AM_RAM AM_BASE(&aerofgt_spriteram2) AM_SIZE(&aerofgt_spriteram2_size)
+ AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */
+ AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
+ AM_RANGE(0x0fd000, 0x0fd7ff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x0fe000, 0x0fe001) AM_READ(input_port_0_word_r)
- AM_RANGE(0x0fe002, 0x0fe003) AM_READ(input_port_1_word_r)
- AM_RANGE(0x0fe004, 0x0fe005) AM_READ(input_port_2_word_r)
- AM_RANGE(0x0fe006, 0x0fe007) AM_READ(pending_command_r)
+ AM_RANGE(0x0fe002, 0x0fe003) AM_READWRITE(input_port_1_word_r, aerofgt_bg1scrolly_w)
+ AM_RANGE(0x0fe004, 0x0fe005) AM_READWRITE(input_port_2_word_r, aerofgt_bg2scrollx_w)
+ AM_RANGE(0x0fe006, 0x0fe007) AM_READWRITE(pending_command_r, aerofgt_bg2scrolly_w)
AM_RANGE(0x0fe008, 0x0fe009) AM_READ(input_port_3_word_r)
- AM_RANGE(0x0ff000, 0x0fffff) AM_READ(MRA16_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( aerofgtb_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x0c0000, 0x0cffff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0x0d0000, 0x0d1fff) AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
- AM_RANGE(0x0d2000, 0x0d3fff) AM_WRITE(aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
- AM_RANGE(0x0e0000, 0x0e3fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
- AM_RANGE(0x0e4000, 0x0e7fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram2) AM_SIZE(&aerofgt_spriteram2_size)
- AM_RANGE(0x0f8000, 0x0fbfff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0x0fc000, 0x0fc7ff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
- AM_RANGE(0x0fd000, 0x0fd7ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0x0fe002, 0x0fe003) AM_WRITE(aerofgt_bg1scrolly_w)
- AM_RANGE(0x0fe004, 0x0fe005) AM_WRITE(aerofgt_bg2scrollx_w)
- AM_RANGE(0x0fe006, 0x0fe007) AM_WRITE(aerofgt_bg2scrolly_w)
AM_RANGE(0x0fe008, 0x0fe00b) AM_WRITE(turbofrc_gfxbank_w)
AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE(turbofrc_sound_command_w)
- AM_RANGE(0x0ff000, 0x0fffff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_rasterram) /* used only for the scroll registers */
+ AM_RANGE(0x0ff000, 0x0fffff) AM_RAM AM_BASE(&aerofgt_rasterram) /* used only for the scroll registers */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerofgt_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x1a0000, 0x1a07ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1b0000, 0x1b07ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1b0800, 0x1b0801) AM_READ(MRA16_NOP) /* ??? */
- AM_RANGE(0x1b0ff0, 0x1b0fff) AM_READ(MRA16_RAM) /* stack area during boot */
- AM_RANGE(0x1b2000, 0x1b3fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1b4000, 0x1b5fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1c0000, 0x1c3fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1c4000, 0x1c7fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1d0000, 0x1d1fff) AM_READ(MRA16_RAM)
- AM_RANGE(0xfef000, 0xffefff) AM_READ(MRA16_RAM) /* work RAM */
+static ADDRESS_MAP_START( aerofgt_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x1a0000, 0x1a07ff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0x1b0000, 0x1b07ff) AM_RAM AM_BASE(&aerofgt_rasterram) /* used only for the scroll registers */
+ AM_RANGE(0x1b0800, 0x1b0801) AM_NOP /* ??? */
+ AM_RANGE(0x1b0ff0, 0x1b0fff) AM_RAM /* stack area during boot */
+ AM_RANGE(0x1b2000, 0x1b3fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0x1b4000, 0x1b5fff) AM_READWRITE(MRA16_RAM, aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
+ AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
+ AM_RANGE(0x1c4000, 0x1c7fff) AM_RAM AM_BASE(&aerofgt_spriteram2) AM_SIZE(&aerofgt_spriteram2_size)
+ AM_RANGE(0x1d0000, 0x1d1fff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
+ AM_RANGE(0xfef000, 0xffefff) AM_RAM /* work RAM */
+ AM_RANGE(0xffff80, 0xffff87) AM_WRITE(aerofgt_gfxbank_w)
+ AM_RANGE(0xffff88, 0xffff89) AM_WRITE(aerofgt_bg1scrolly_w) /* + something else in the top byte */
+ AM_RANGE(0xffff90, 0xffff91) AM_WRITE(aerofgt_bg2scrolly_w) /* + something else in the top byte */
AM_RANGE(0xffffa0, 0xffffa1) AM_READ(input_port_0_word_r)
AM_RANGE(0xffffa2, 0xffffa3) AM_READ(input_port_1_word_r)
AM_RANGE(0xffffa4, 0xffffa5) AM_READ(input_port_2_word_r)
AM_RANGE(0xffffa6, 0xffffa7) AM_READ(input_port_3_word_r)
AM_RANGE(0xffffa8, 0xffffa9) AM_READ(input_port_4_word_r)
- AM_RANGE(0xffffac, 0xffffad) AM_READ(pending_command_r)
+ AM_RANGE(0xffffac, 0xffffad) AM_READWRITE(pending_command_r, MWA16_NOP) /* ??? */
AM_RANGE(0xffffae, 0xffffaf) AM_READ(input_port_5_word_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( aerofgt_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x1a0000, 0x1a07ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0x1b0000, 0x1b07ff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_rasterram) /* used only for the scroll registers */
- AM_RANGE(0x1b0800, 0x1b0801) AM_WRITE(MWA16_NOP) /* ??? */
- AM_RANGE(0x1b0ff0, 0x1b0fff) AM_WRITE(MWA16_RAM) /* stack area during boot */
- AM_RANGE(0x1b2000, 0x1b3fff) AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
- AM_RANGE(0x1b4000, 0x1b5fff) AM_WRITE(aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
- AM_RANGE(0x1c0000, 0x1c3fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
- AM_RANGE(0x1c4000, 0x1c7fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram2) AM_SIZE(&aerofgt_spriteram2_size)
- AM_RANGE(0x1d0000, 0x1d1fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
- AM_RANGE(0xfef000, 0xffefff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0xffff80, 0xffff87) AM_WRITE(aerofgt_gfxbank_w)
- AM_RANGE(0xffff88, 0xffff89) AM_WRITE(aerofgt_bg1scrolly_w) /* + something else in the top byte */
- AM_RANGE(0xffff90, 0xffff91) AM_WRITE(aerofgt_bg2scrolly_w) /* + something else in the top byte */
- AM_RANGE(0xffffac, 0xffffad) AM_WRITE(MWA16_NOP) /* ??? */
AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
@@ -444,83 +352,50 @@ static ADDRESS_MAP_START( aerfboot_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x10b800, 0x10bfff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wbbc97_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x3fffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x500000, 0x50ffff) AM_READ(MRA16_RAM)
- AM_RANGE(0x600000, 0x605fff) AM_READ(MRA16_RAM)
- AM_RANGE(0xa00000, 0xa3ffff) AM_READ(MRA16_RAM)
- AM_RANGE(0xff8000, 0xff8fff) AM_READ(MRA16_RAM)
- AM_RANGE(0xffd000, 0xffdfff) AM_READ(MRA16_RAM)
- AM_RANGE(0xffe000, 0xffefff) AM_READ(MRA16_RAM)
- AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r)
- AM_RANGE(0xfff002, 0xfff003) AM_READ(input_port_1_word_r)
- AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_2_word_r)
- AM_RANGE(0xfff006, 0xfff007) AM_READNOP
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( wbbc97_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x3fffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x500000, 0x50ffff) AM_WRITE(MWA16_RAM) /* work RAM */
- AM_RANGE(0x600000, 0x605fff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
- AM_RANGE(0xa00000, 0xa3ffff) AM_WRITE(MWA16_RAM) AM_BASE(&wbbc97_bitmapram)
- AM_RANGE(0xff8000, 0xff8fff) AM_WRITE(aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
- AM_RANGE(0xffc000, 0xffc3ff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
- AM_RANGE(0xffd000, 0xffdfff) AM_WRITE(MWA16_RAM) AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
- AM_RANGE(0xffe000, 0xffefff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0xfff000, 0xfff001) AM_WRITE(pspikes_palette_bank_w)
- AM_RANGE(0xfff002, 0xfff003) AM_WRITE(pspikes_gfxbank_w)
- AM_RANGE(0xfff004, 0xfff005) AM_WRITE(aerofgt_bg1scrolly_w)
- AM_RANGE(0xfff006, 0xfff007) AM_WRITE(sound_command_w)
+static ADDRESS_MAP_START( wbbc97_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x500000, 0x50ffff) AM_RAM /* work RAM */
+ AM_RANGE(0x600000, 0x605fff) AM_RAM AM_BASE(&aerofgt_spriteram1) AM_SIZE(&aerofgt_spriteram1_size)
+ AM_RANGE(0xa00000, 0xa3ffff) AM_RAM AM_BASE(&wbbc97_bitmapram)
+ AM_RANGE(0xff8000, 0xff8fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
+ AM_RANGE(0xffc000, 0xffc3ff) AM_WRITEONLY AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
+ AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_BASE(&aerofgt_rasterram) /* bg1 scroll registers */
+ AM_RANGE(0xffe000, 0xffefff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0xfff000, 0xfff001) AM_READWRITE(input_port_0_word_r, pspikes_palette_bank_w)
+ AM_RANGE(0xfff002, 0xfff003) AM_READWRITE(input_port_1_word_r, pspikes_gfxbank_w)
+ AM_RANGE(0xfff004, 0xfff005) AM_READWRITE(input_port_2_word_r, aerofgt_bg1scrolly_w)
+ AM_RANGE(0xfff006, 0xfff007) AM_READWRITE(MRA16_NOP, sound_command_w)
AM_RANGE(0xfff00e, 0xfff00f) AM_WRITE(wbbc97_bitmap_enable_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x77ff) AM_READ(MRA8_ROM)
- AM_RANGE(0x7800, 0x7fff) AM_READ(MRA8_RAM)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK1)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x77ff) AM_ROM
+ AM_RANGE(0x7800, 0x7fff) AM_RAM
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x77ff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x7800, 0x7fff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( turbofrc_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x14, 0x14) AM_READ(soundlatch_r)
- AM_RANGE(0x18, 0x18) AM_READ(YM2610_status_port_0_A_r)
- AM_RANGE(0x1a, 0x1a) AM_READ(YM2610_status_port_0_B_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( turbofrc_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( turbofrc_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x00, 0x00) AM_WRITE(aerofgt_sh_bankswitch_w)
- AM_RANGE(0x14, 0x14) AM_WRITE(pending_command_clear_w)
- AM_RANGE(0x18, 0x18) AM_WRITE(YM2610_control_port_0_A_w)
+ AM_RANGE(0x14, 0x14) AM_READWRITE(soundlatch_r, pending_command_clear_w)
+ AM_RANGE(0x18, 0x18) AM_READWRITE(YM2610_status_port_0_A_r, YM2610_control_port_0_A_w)
AM_RANGE(0x19, 0x19) AM_WRITE(YM2610_data_port_0_A_w)
- AM_RANGE(0x1a, 0x1a) AM_WRITE(YM2610_control_port_0_B_w)
+ AM_RANGE(0x1a, 0x1a) AM_READWRITE(YM2610_status_port_0_B_r, YM2610_control_port_0_B_w)
AM_RANGE(0x1b, 0x1b) AM_WRITE(YM2610_data_port_0_B_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerofgt_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_READ(YM2610_status_port_0_A_r)
- AM_RANGE(0x02, 0x02) AM_READ(YM2610_status_port_0_B_r)
- AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( aerofgt_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( aerofgt_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_WRITE(YM2610_control_port_0_A_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(YM2610_status_port_0_A_r, YM2610_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2610_data_port_0_A_w)
- AM_RANGE(0x02, 0x02) AM_WRITE(YM2610_control_port_0_B_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(YM2610_status_port_0_B_r, YM2610_control_port_0_B_w)
AM_RANGE(0x03, 0x03) AM_WRITE(YM2610_data_port_0_B_w)
AM_RANGE(0x04, 0x04) AM_WRITE(aerofgt_sh_bankswitch_w)
AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w)
+ AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aerfboot_snd_map, ADDRESS_SPACE_PROGRAM, 8 )
+static ADDRESS_MAP_START( aerfboot_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
@@ -1388,13 +1263,12 @@ static MACHINE_DRIVER_START( pspikes )
/* basic machine hardware */
MDRV_CPU_ADD(M68000,20000000/2) /* 10 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(pspikes_readmem,pspikes_writemem)
+ MDRV_CPU_PROGRAM_MAP(pspikes_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
- MDRV_CPU_ADD(Z80,8000000/2)
- /* audio CPU */ /* 4 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(turbofrc_sound_readport,turbofrc_sound_writeport)
+ MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz ??? */
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(turbofrc_sound_portmap,0)
/* IRQs are triggered by the YM2610 */
MDRV_MACHINE_RESET(aerofgt)
@@ -1515,13 +1389,12 @@ static MACHINE_DRIVER_START( karatblz )
/* basic machine hardware */
MDRV_CPU_ADD(M68000,20000000/2) /* 10 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(karatblz_readmem,karatblz_writemem)
+ MDRV_CPU_PROGRAM_MAP(karatblz_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)
- MDRV_CPU_ADD(Z80,8000000/2)
- /* audio CPU */ /* 4 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(turbofrc_sound_readport,turbofrc_sound_writeport)
+ MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz ??? */
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(turbofrc_sound_portmap,0)
/* IRQs are triggered by the YM2610 */
MDRV_MACHINE_RESET(aerofgt)
@@ -1554,13 +1427,12 @@ static MACHINE_DRIVER_START( spinlbrk )
/* basic machine hardware */
MDRV_CPU_ADD(M68000,20000000/2) /* 10 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(spinlbrk_readmem,spinlbrk_writemem)
+ MDRV_CPU_PROGRAM_MAP(spinlbrk_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* there are vectors for 3 and 4 too */
- MDRV_CPU_ADD(Z80,8000000/2)
- /* audio CPU */ /* 4 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(turbofrc_sound_readport,turbofrc_sound_writeport)
+ MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz ??? */
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(turbofrc_sound_portmap,0)
/* IRQs are triggered by the YM2610 */
MDRV_MACHINE_RESET(aerofgt)
@@ -1593,13 +1465,12 @@ static MACHINE_DRIVER_START( turbofrc )
/* basic machine hardware */
MDRV_CPU_ADD(M68000,20000000/2) /* 10 MHz (verified on pcb) */
- MDRV_CPU_PROGRAM_MAP(turbofrc_readmem,turbofrc_writemem)
+ MDRV_CPU_PROGRAM_MAP(turbofrc_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
- MDRV_CPU_ADD(Z80,5000000)
- /* audio CPU */ /* 5 MHz (verified on pcb) */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(turbofrc_sound_readport,turbofrc_sound_writeport)
+ MDRV_CPU_ADD(Z80,5000000) /* 5 MHz (verified on pcb) */
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(turbofrc_sound_portmap,0)
/* IRQs are triggered by the YM2610 */
MDRV_MACHINE_RESET(aerofgt)
@@ -1632,13 +1503,12 @@ static MACHINE_DRIVER_START( aerofgtb )
/* basic machine hardware */
MDRV_CPU_ADD(M68000,20000000/2) /* 10 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(aerofgtb_readmem,aerofgtb_writemem)
+ MDRV_CPU_PROGRAM_MAP(aerofgtb_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
- MDRV_CPU_ADD(Z80,8000000/2)
- /* audio CPU */ /* 4 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(aerofgt_sound_readport,aerofgt_sound_writeport)
+ MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz ??? */
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(aerofgt_sound_portmap,0)
/* IRQs are triggered by the YM2610 */
MDRV_MACHINE_RESET(aerofgt)
@@ -1672,13 +1542,12 @@ static MACHINE_DRIVER_START( aerofgt )
/* basic machine hardware */
MDRV_CPU_ADD(M68000,20000000/2) /* 10 MHz (verified on pcb) */
- MDRV_CPU_PROGRAM_MAP(aerofgt_readmem,aerofgt_writemem)
+ MDRV_CPU_PROGRAM_MAP(aerofgt_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
- MDRV_CPU_ADD(Z80,5000000)
- /* audio CPU */ /* 5 MHz (verified on pcb) */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(aerofgt_sound_readport,aerofgt_sound_writeport)
+ MDRV_CPU_ADD(Z80,5000000) /* 5 MHz (verified on pcb) */
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(aerofgt_sound_portmap,0)
/* IRQs are triggered by the YM2610 */
MDRV_MACHINE_RESET(aerofgt)
@@ -1716,7 +1585,7 @@ static MACHINE_DRIVER_START( aerfboot )
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)
MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(aerfboot_snd_map,0)
+ MDRV_CPU_PROGRAM_MAP(aerfboot_sound_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@@ -1744,7 +1613,7 @@ static MACHINE_DRIVER_START( wbbc97 )
/* basic machine hardware */
MDRV_CPU_ADD(M68000,20000000/2) /* 10 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(wbbc97_readmem,wbbc97_writemem)
+ MDRV_CPU_PROGRAM_MAP(wbbc97_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* all irq vectors are the same */
MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz ??? */
diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c
index f4821c52e77..017e0c46501 100644
--- a/src/mame/drivers/ajax.c
+++ b/src/mame/drivers/ajax.c
@@ -15,15 +15,11 @@ TO DO:
#include "sound/2151intf.h"
#include "sound/k007232.h"
-extern UINT8 *ajax_sharedram;
-
static WRITE8_HANDLER( k007232_extvol_w );
static WRITE8_HANDLER( sound_bank_w );
/* from machine/ajax.c */
WRITE8_HANDLER( ajax_bankswitch_2_w );
-READ8_HANDLER( ajax_sharedram_r );
-WRITE8_HANDLER( ajax_sharedram_w );
READ8_HANDLER( ajax_ls138_f10_r );
WRITE8_HANDLER( ajax_ls138_f10_w );
MACHINE_RESET( ajax );
@@ -35,66 +31,39 @@ VIDEO_UPDATE( ajax );
/****************************************************************************/
-static ADDRESS_MAP_START( ajax_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01c0) AM_READ(ajax_ls138_f10_r) /* inputs + DIPSW */
- AM_RANGE(0x0800, 0x0807) AM_READ(K051937_r) /* sprite control registers */
- AM_RANGE(0x0c00, 0x0fff) AM_READ(K051960_r) /* sprite RAM 2128SL at J7 */
- AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_RAM) /* palette */
- AM_RANGE(0x2000, 0x3fff) AM_READ(ajax_sharedram_r) /* shared RAM with the 6809 */
- AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) /* RAM 6264L at K10*/
- AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK2) /* banked ROM */
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM N11 */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( ajax_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01c0) AM_WRITE(ajax_ls138_f10_w) /* bankswitch + sound command + FIRQ command */
- AM_RANGE(0x0800, 0x0807) AM_WRITE(K051937_w) /* sprite control registers */
- AM_RANGE(0x0c00, 0x0fff) AM_WRITE(K051960_w) /* sprite RAM 2128SL at J7 */
- AM_RANGE(0x1000, 0x1fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette */
- AM_RANGE(0x2000, 0x3fff) AM_WRITE(ajax_sharedram_w) /* shared RAM with the 6809 */
- AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_RAM) /* RAM 6264L at K10 */
- AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM) /* banked ROM */
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM N11 */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( ajax_readmem_2, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_READ(K051316_0_r) /* 051316 zoom/rotation layer */
- AM_RANGE(0x1000, 0x17ff) AM_READ(K051316_rom_0_r) /* 051316 (ROM test) */
- AM_RANGE(0x2000, 0x3fff) AM_READ(ajax_sharedram_r) /* shared RAM with the 052001 */
- AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_r) /* video RAM + color RAM + video registers */
- AM_RANGE(0x8000, 0x9fff) AM_READ(MRA8_BANK1) /* banked ROM */
- AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) /* ROM I16 */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( ajax_writemem_2, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_WRITE(K051316_0_w) /* 051316 zoom/rotation layer */
- AM_RANGE(0x0800, 0x080f) AM_WRITE(K051316_ctrl_0_w) /* 051316 control registers */
- AM_RANGE(0x1800, 0x1800) AM_WRITE(ajax_bankswitch_2_w) /* bankswitch control */
- AM_RANGE(0x2000, 0x3fff) AM_WRITE(ajax_sharedram_w) AM_BASE(&ajax_sharedram)/* shared RAM with the 052001 */
- AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_w) /* video RAM + color RAM + video registers */
- AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_ROM) /* banked ROM */
- AM_RANGE(0xa000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM I16 */
+static ADDRESS_MAP_START( ajax_main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x01c0) AM_READWRITE(ajax_ls138_f10_r, ajax_ls138_f10_w) /* bankswitch + sound command + FIRQ command */
+ AM_RANGE(0x0800, 0x0807) AM_READWRITE(K051937_r, K051937_w) /* sprite control registers */
+ AM_RANGE(0x0c00, 0x0fff) AM_READWRITE(K051960_r, K051960_w) /* sprite RAM 2128SL at J7 */
+ AM_RANGE(0x1000, 0x1fff) AM_READWRITE(MRA8_RAM, paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette */
+ AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE(1) /* shared RAM with the 6809 */
+ AM_RANGE(0x4000, 0x5fff) AM_RAM /* RAM 6264L at K10 */
+ AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(2) /* banked ROM */
+ AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM N11 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ajax_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM F6 */
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM 2128SL at D16 */
- AM_RANGE(0xa000, 0xa00d) AM_READ(K007232_read_port_0_r) /* 007232 registers (chip 1) */
- AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_1_r) /* 007232 registers (chip 2) */
- AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) /* YM2151 */
- AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) /* soundlatch_r */
+static ADDRESS_MAP_START( ajax_sub_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x07ff) AM_READWRITE(K051316_0_r, K051316_0_w) /* 051316 zoom/rotation layer */
+ AM_RANGE(0x0800, 0x080f) AM_WRITE(K051316_ctrl_0_w) /* 051316 control registers */
+ AM_RANGE(0x1000, 0x17ff) AM_READ(K051316_rom_0_r) /* 051316 (ROM test) */
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(ajax_bankswitch_2_w) /* bankswitch control */
+ AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE(1) /* shared RAM with the 052001 */
+ AM_RANGE(0x4000, 0x7fff) AM_READWRITE(K052109_r, K052109_w) /* video RAM + color RAM + video registers */
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(1) /* banked ROM */
+ AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM I16 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ajax_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM F6 */
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM 2128SL at D16 */
+static ADDRESS_MAP_START( ajax_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM F6 */
+ AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM 2128SL at D16 */
AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w) /* 007232 bankswitch */
- AM_RANGE(0xa000, 0xa00d) AM_WRITE(K007232_write_port_0_w) /* 007232 registers (chip 1) */
- AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_1_w) /* 007232 registers (chip 2) */
- AM_RANGE(0xb80c, 0xb80c) AM_WRITE(k007232_extvol_w) /* extra volume, goes to the 007232 w/ A11 */
- /* selecting a different latch for the external port */
+ AM_RANGE(0xa000, 0xa00d) AM_READWRITE(K007232_read_port_0_r, K007232_write_port_0_w) /* 007232 registers (chip 1) */
+ AM_RANGE(0xb000, 0xb00d) AM_READWRITE(K007232_read_port_1_r, K007232_write_port_1_w) /* 007232 registers (chip 2) */
+ AM_RANGE(0xb80c, 0xb80c) AM_WRITE(k007232_extvol_w) /* extra volume, goes to the 007232 w/ A11 */
+ /* selecting a different latch for the external port */
AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) /* YM2151 */
- AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) /* YM2151 */
+ AM_RANGE(0xc001, 0xc001) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w) /* YM2151 */
+ AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) /* soundlatch_r */
ADDRESS_MAP_END
@@ -270,14 +239,14 @@ static MACHINE_DRIVER_START( ajax )
/* basic machine hardware */
MDRV_CPU_ADD(KONAMI, 3000000) /* 12/4 MHz*/
- MDRV_CPU_PROGRAM_MAP(ajax_readmem,ajax_writemem)
+ MDRV_CPU_PROGRAM_MAP(ajax_main_map,0)
MDRV_CPU_VBLANK_INT(ajax_interrupt,1) /* IRQs triggered by the 051960 */
MDRV_CPU_ADD(M6809, 3000000) /* ? */
- MDRV_CPU_PROGRAM_MAP(ajax_readmem_2,ajax_writemem_2)
+ MDRV_CPU_PROGRAM_MAP(ajax_sub_map,0)
MDRV_CPU_ADD(Z80, 3579545) /* 3.58 MHz */
- MDRV_CPU_PROGRAM_MAP(ajax_readmem_sound,ajax_writemem_sound)
+ MDRV_CPU_PROGRAM_MAP(ajax_sound_map,0)
MDRV_INTERLEAVE(10)
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index fdb5b2c5bc4..fd83292bd9e 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -89,45 +89,30 @@ static WRITE8_HANDLER( aliens_snd_bankswitch_w )
}
-static ADDRESS_MAP_START( aliens_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_READ(bankedram_r) /* palette + work RAM */
- AM_RANGE(0x0400, 0x1fff) AM_READ(MRA8_RAM)
- AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_BANK1) /* banked ROM */
+static ADDRESS_MAP_START( aliens_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x03ff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(&ram) /* palette + work RAM */
+ AM_RANGE(0x0400, 0x1fff) AM_RAM
+ AM_RANGE(0x2000, 0x3fff) AM_ROMBANK(1) /* banked ROM */
AM_RANGE(0x5f80, 0x5f80) AM_READ(input_port_2_r) /* DIPSW #3 */
AM_RANGE(0x5f81, 0x5f81) AM_READ(input_port_3_r) /* Player 1 inputs */
AM_RANGE(0x5f82, 0x5f82) AM_READ(input_port_4_r) /* Player 2 inputs */
AM_RANGE(0x5f83, 0x5f83) AM_READ(input_port_1_r) /* DIPSW #2 */
AM_RANGE(0x5f84, 0x5f84) AM_READ(input_port_0_r) /* DIPSW #1 */
- AM_RANGE(0x5f88, 0x5f88) AM_READ(watchdog_reset_r)
- AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_051960_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM e24_j02.bin */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( aliens_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_WRITE(bankedram_w) AM_BASE(&ram) /* palette + work RAM */
- AM_RANGE(0x0400, 0x1fff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x2000, 0x3fff) AM_WRITE(MWA8_ROM) /* banked ROM */
- AM_RANGE(0x5f88, 0x5f88) AM_WRITE(aliens_coin_counter_w) /* coin counters */
+ AM_RANGE(0x5f88, 0x5f88) AM_READWRITE(watchdog_reset_r, aliens_coin_counter_w) /* coin counters */
AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(aliens_sh_irqtrigger_w) /* cause interrupt on audio CPU */
- AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_051960_w)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM e24_j02.bin */
+ AM_RANGE(0x4000, 0x7fff) AM_READWRITE(K052109_051960_r, K052109_051960_w)
+ AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM e24_j02.bin */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aliens_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM g04_b03.bin */
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM */
- AM_RANGE(0xa001, 0xa001) AM_READ(YM2151_status_port_0_r)
+static ADDRESS_MAP_START( aliens_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM g04_b03.bin */
+ AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2151_register_port_0_w)
+ AM_RANGE(0xa001, 0xa001) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) /* soundlatch_r */
- AM_RANGE(0xe000, 0xe00d) AM_READ(K007232_read_port_0_r)
+ AM_RANGE(0xe000, 0xe00d) AM_READWRITE(K007232_read_port_0_r, K007232_write_port_0_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( aliens_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM g04_b03.bin */
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM */
- AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2151_register_port_0_w)
- AM_RANGE(0xa001, 0xa001) AM_WRITE(YM2151_data_port_0_w)
- AM_RANGE(0xe000, 0xe00d) AM_WRITE(K007232_write_port_0_w)
-ADDRESS_MAP_END
/***************************************************************************
@@ -252,12 +237,11 @@ static MACHINE_DRIVER_START( aliens )
/* basic machine hardware */
MDRV_CPU_ADD(KONAMI, 3000000) /* ? */
- MDRV_CPU_PROGRAM_MAP(aliens_readmem,aliens_writemem)
+ MDRV_CPU_PROGRAM_MAP(aliens_map,0)
MDRV_CPU_VBLANK_INT(aliens_interrupt,1)
MDRV_CPU_ADD(Z80, 3579545)
- /* audio CPU */ /* ? */
- MDRV_CPU_PROGRAM_MAP(aliens_readmem_sound,aliens_writemem_sound)
+ MDRV_CPU_PROGRAM_MAP(aliens_sound_map,0)
MDRV_MACHINE_RESET(aliens)
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index bd2353e35b8..5d251decf85 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -686,42 +686,25 @@ static READ16_HANDLER( alpha_V_trigger_r )
/******************************************************************************/
-static ADDRESS_MAP_START( kyros_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) // main program
- AM_RANGE(0x020000, 0x020fff) AM_READ(MRA16_RAM) // work RAM
- AM_RANGE(0x040000, 0x041fff) AM_READ(MRA16_RAM) // sprite RAM
- AM_RANGE(0x060000, 0x060001) AM_READ(MRA16_RAM) // MSB: watchdog
- AM_RANGE(0x080000, 0x0801ff) AM_READ(kyros_alpha_trigger_r)
+static ADDRESS_MAP_START( kyros_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x01ffff) AM_ROM // main program
+ AM_RANGE(0x020000, 0x020fff) AM_RAM AM_BASE(&shared_ram) // work RAM
+ AM_RANGE(0x040000, 0x041fff) AM_RAM AM_BASE(&spriteram16) // sprite RAM
+ AM_RANGE(0x060000, 0x060001) AM_RAM AM_BASE(&videoram16) // MSB: watchdog, LSB: BGC
+ AM_RANGE(0x080000, 0x0801ff) AM_READWRITE(kyros_alpha_trigger_r, alpha_microcontroller_w)
AM_RANGE(0x0c0000, 0x0c0001) AM_READ(input_port_0_word_r)
- AM_RANGE(0x0e0000, 0x0e0001) AM_READ(kyros_dip_r)
+ AM_RANGE(0x0e0000, 0x0e0001) AM_READWRITE(kyros_dip_r, kyros_sound_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kyros_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x020000, 0x020fff) AM_WRITE(MWA16_RAM) AM_BASE(&shared_ram)
- AM_RANGE(0x040000, 0x041fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16)
- AM_RANGE(0x060000, 0x060001) AM_WRITE(MWA16_RAM) AM_BASE(&videoram16) // LSB: BGC
- AM_RANGE(0x080000, 0x0801ff) AM_WRITE(alpha_microcontroller_w)
- AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE(kyros_sound_w)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( alpha68k_I_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) // main program
- AM_RANGE(0x080000, 0x083fff) AM_READ(MRA16_RAM) // work RAM
- AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) // video RAM
- AM_RANGE(0x180000, 0x180001) AM_READ(input_port_3_word_r) // LSB: DSW0
+static ADDRESS_MAP_START( alpha68k_I_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM // main program
+ AM_RANGE(0x080000, 0x083fff) AM_RAM // work RAM
+ AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE(&spriteram16) // video RAM
+ AM_RANGE(0x180000, 0x180001) AM_READWRITE(input_port_3_word_r, MWA16_NOP) // LSB: DSW0, MSB: watchdog(?)
AM_RANGE(0x180008, 0x180009) AM_READ(input_port_4_word_r) // LSB: DSW1
AM_RANGE(0x300000, 0x300001) AM_READ(input_port_0_word_r) // joy1, joy2
AM_RANGE(0x340000, 0x340001) AM_READ(input_port_1_word_r) // coin, start, service
- AM_RANGE(0x380000, 0x380001) AM_READ(input_port_2_word_r) // joy3, joy4
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( alpha68k_I_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_NOP)
- AM_RANGE(0x080000, 0x083fff) AM_WRITE(MWA16_RAM)
- AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16)
- AM_RANGE(0x180000, 0x180001) AM_WRITE(MWA16_NOP) // MSB: watchdog(?)
- AM_RANGE(0x380000, 0x380001) AM_WRITE(paddlema_soundlatch_w) // LSB: sound latch write and RST38 trigger
+ AM_RANGE(0x380000, 0x380001) AM_READWRITE(input_port_2_word_r, paddlema_soundlatch_w) // LSB: sound latch write and RST38 trigger, joy3, joy4
ADDRESS_MAP_END
static ADDRESS_MAP_START( alpha68k_II_map, ADDRESS_SPACE_PROGRAM, 16 )
@@ -743,54 +726,39 @@ static ADDRESS_MAP_START( alpha68k_II_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x800000, 0x83ffff) AM_ROMBANK(8)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alpha68k_V_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x040000, 0x043fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x080000, 0x080001) AM_READ(control_1_r) /* Joysticks */
+static ADDRESS_MAP_START( alpha68k_V_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x040000, 0x043fff) AM_RAM AM_BASE(&shared_ram)
+ AM_RANGE(0x080000, 0x080001) AM_READWRITE(control_1_r, alpha68k_V_sound_w) /* Joysticks */
AM_RANGE(0x0c0000, 0x0c0001) AM_READ(control_2_V_r) /* Dip 2 */
- AM_RANGE(0x0d8000, 0x0d8001) AM_READ(MRA16_NOP) /* IRQ ack? */
- AM_RANGE(0x0e0000, 0x0e0001) AM_READ(MRA16_NOP) /* IRQ ack? */
- AM_RANGE(0x0e8000, 0x0e8001) AM_READ(MRA16_NOP) /* watchdog? */
- AM_RANGE(0x100000, 0x100fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x200000, 0x207fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x300000, 0x303fff) AM_READ(alpha_V_trigger_r)
- AM_RANGE(0x400000, 0x401fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x800000, 0x83ffff) AM_READ(MRA16_BANK8)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( alpha68k_V_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_NOP)
- AM_RANGE(0x040000, 0x043fff) AM_WRITE(MWA16_RAM) AM_BASE(&shared_ram)
- AM_RANGE(0x080000, 0x080001) AM_WRITE(alpha68k_V_sound_w)
AM_RANGE(0x0c0000, 0x0c00ff) AM_WRITE(alpha68k_V_video_control_w)
- AM_RANGE(0x100000, 0x100fff) AM_WRITE(alpha68k_videoram_w) AM_BASE(&videoram16)
- AM_RANGE(0x200000, 0x207fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16)
+ AM_RANGE(0x0d8000, 0x0d8001) AM_READNOP /* IRQ ack? */
+ AM_RANGE(0x0e0000, 0x0e0001) AM_READNOP /* IRQ ack? */
+ AM_RANGE(0x0e8000, 0x0e8001) AM_READNOP /* watchdog? */
+ AM_RANGE(0x100000, 0x100fff) AM_READWRITE(MRA16_RAM, alpha68k_videoram_w) AM_BASE(&videoram16)
+ AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE(&spriteram16)
+ AM_RANGE(0x300000, 0x303fff) AM_READ(alpha_V_trigger_r)
AM_RANGE(0x300000, 0x3001ff) AM_WRITE(alpha_microcontroller_w)
AM_RANGE(0x303e00, 0x303fff) AM_WRITE(alpha_microcontroller_w) /* Gang Wars mirror */
- AM_RANGE(0x400000, 0x401fff) AM_WRITE(alpha68k_paletteram_w) AM_BASE(&paletteram16)
+ AM_RANGE(0x400000, 0x401fff) AM_READWRITE(MRA16_RAM, alpha68k_paletteram_w) AM_BASE(&paletteram16)
+ AM_RANGE(0x800000, 0x83ffff) AM_ROMBANK(8)
ADDRESS_MAP_END
static READ16_HANDLER(sound_cpu_r) { return 1; }
-static ADDRESS_MAP_START( tnexspce_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x070000, 0x073fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0a0000, 0x0a3fff) AM_READ(MRA16_RAM)
+static ADDRESS_MAP_START( tnexspce_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x070000, 0x073fff) AM_RAM
+ AM_RANGE(0x0a0000, 0x0a3fff) AM_RAM AM_BASE(&spriteram16)
+ AM_RANGE(0x0d0000, 0x0d0001) AM_WRITENOP // unknown write port (0)
AM_RANGE(0x0e0000, 0x0e0001) AM_READ(input_port_0_word_r)
AM_RANGE(0x0e0002, 0x0e0003) AM_READ(input_port_1_word_r)
AM_RANGE(0x0e0004, 0x0e0005) AM_READ(input_port_2_word_r)
+ AM_RANGE(0x0e0006, 0x0e0007) AM_WRITENOP // unknown write port (0)
AM_RANGE(0x0e0008, 0x0e0009) AM_READ(input_port_3_word_r)
AM_RANGE(0x0e000a, 0x0e000b) AM_READ(input_port_4_word_r)
+ AM_RANGE(0x0e000e, 0x0e000f) AM_WRITENOP // unknown write port (0)
AM_RANGE(0x0e0018, 0x0e0019) AM_READ(sound_cpu_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( tnexspce_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x070000, 0x073fff) AM_WRITE(MWA16_RAM)
- AM_RANGE(0x0a0000, 0x0a3fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16)
- AM_RANGE(0x0d0000, 0x0d0001) AM_WRITE(MWA16_NOP) // unknown write port (0)
- AM_RANGE(0x0e0006, 0x0e0007) AM_WRITE(MWA16_NOP) // unknown write port (0)
- AM_RANGE(0x0e000e, 0x0e000f) AM_WRITE(MWA16_NOP) // unknown write port (0)
AM_RANGE(0x0f0000, 0x0f0001) AM_WRITE(tnexspce_unknown_w)
AM_RANGE(0x0f0002, 0x0f0005) AM_WRITE(tnexspce_coin_counters_w)
AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(tnexspce_soundlatch_w)
@@ -807,26 +775,16 @@ static WRITE8_HANDLER( sound_bank_w )
memory_set_bankptr(7,&RAM[bankaddress]);
}
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_BANK7)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
+ AM_RANGE(0xc000, 0xffff) AM_ROMBANK(7)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
-ADDRESS_MAP_END
-//AT
-static ADDRESS_MAP_START( kyros_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM)
- AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM)
+static ADDRESS_MAP_START( kyros_sound_map, 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( kyros_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM)
AM_RANGE(0xe002, 0xe002) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0xe004, 0xe004) AM_WRITE(DAC_0_signed_data_w)
AM_RANGE(0xe006, 0xe00e) AM_WRITE(MWA8_NOP) // soundboard I/O's, ignored
@@ -839,18 +797,13 @@ static ADDRESS_MAP_START( kyros_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
*/
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sstingry_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
+static ADDRESS_MAP_START( sstingry_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc100, 0xc100) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sstingry_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
AM_RANGE(0xc102, 0xc102) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0xc104, 0xc104) AM_WRITE(DAC_0_signed_data_w)
- AM_RANGE(0xc106, 0xc10e) AM_WRITE(MWA8_NOP) // soundboard I/O's, ignored
+ AM_RANGE(0xc106, 0xc10e) AM_WRITENOP // soundboard I/O's, ignored
ADDRESS_MAP_END
static ADDRESS_MAP_START( jongbou_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
@@ -858,44 +811,25 @@ static ADDRESS_MAP_START( jongbou_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x83ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( alpha68k_I_s_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x9fff) AM_READ(MRA8_ROM) // sound program
- AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
- AM_RANGE(0xe800, 0xe800) AM_READ(YM3812_status_port_0_r)
- AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) // work RAM
- AM_RANGE(0xfc00, 0xfc00) AM_READ(MRA8_RAM) // unknown port
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( alpha68k_I_s_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x9fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(soundlatch_clear_w)
- AM_RANGE(0xe800, 0xe800) AM_WRITE(YM3812_control_port_0_w)
+static ADDRESS_MAP_START( alpha68k_I_s_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x9fff) AM_ROM
+ AM_RANGE(0xe000, 0xe000) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
+ AM_RANGE(0xe800, 0xe800) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0xec00, 0xec00) AM_WRITE(YM3812_write_port_0_w)
- AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE(MWA8_RAM) // unknown port
+ AM_RANGE(0xf000, 0xf7ff) AM_RAM
+ AM_RANGE(0xfc00, 0xfc00) AM_RAM // unknown port
ADDRESS_MAP_END
-//ZT
-static ADDRESS_MAP_START( tnexspce_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xefff) AM_READ(MRA8_ROM)
- AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r) //AT
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnexspce_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xefff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xf800, 0xf800) AM_WRITE(soundlatch_clear_w) //AT
+static ADDRESS_MAP_START( tnexspce_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xefff) AM_ROM
+ AM_RANGE(0xf000, 0xf7ff) AM_RAM
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
AM_RANGE(0x08, 0x08) AM_WRITE(DAC_0_signed_data_w)
AM_RANGE(0x0a, 0x0a) AM_WRITE(YM2413_register_port_0_w)
AM_RANGE(0x0b, 0x0b) AM_WRITE(YM2413_data_port_0_w)
@@ -904,7 +838,7 @@ static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x0e, 0x0e) AM_WRITE(sound_bank_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kyros_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( kyros_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x10, 0x10) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x11, 0x11) AM_WRITE(YM2203_write_port_0_w)
@@ -914,7 +848,7 @@ static ADDRESS_MAP_START( kyros_sound_writeport, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x91, 0x91) AM_WRITE(YM2203_control_port_2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jongbou_sound_io_map, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( jongbou_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
@@ -922,18 +856,13 @@ static ADDRESS_MAP_START( jongbou_sound_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x06, 0x06) AM_WRITE(MWA8_NOP)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnexspce_sound_readport, ADDRESS_SPACE_IO, 8 ) //AT
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_READ(YM3812_status_port_0_r)
- AM_RANGE(0x3b, 0x3b) AM_READ(MRA8_NOP) // unknown read port
- AM_RANGE(0x3d, 0x3d) AM_READ(MRA8_NOP) // unknown read port
- AM_RANGE(0x7b, 0x7b) AM_READ(MRA8_NOP) // unknown read port
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( tnexspce_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( tnexspce_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_WRITE(YM3812_control_port_0_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(YM3812_write_port_0_w)
+ AM_RANGE(0x3b, 0x3b) AM_READNOP // unknown read port
+ AM_RANGE(0x3d, 0x3d) AM_READNOP // unknown read port
+ AM_RANGE(0x7b, 0x7b) AM_READNOP // unknown read port
ADDRESS_MAP_END
/******************************************************************************/
@@ -2056,13 +1985,13 @@ static MACHINE_DRIVER_START( sstingry )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 6000000) /* 24MHz/4? */
- MDRV_CPU_PROGRAM_MAP(kyros_readmem,kyros_writemem)
+ MDRV_CPU_PROGRAM_MAP(kyros_map,0)
MDRV_CPU_VBLANK_INT(alpha68k_interrupt,2)
MDRV_CPU_ADD(Z80, 3579545)
/* audio CPU */ /* ? */
- MDRV_CPU_PROGRAM_MAP(sstingry_sound_readmem,sstingry_sound_writemem)
- MDRV_CPU_IO_MAP(0,kyros_sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(sstingry_sound_map,0)
+ MDRV_CPU_IO_MAP(kyros_sound_portmap,0)
//AT
MDRV_CPU_VBLANK_INT(irq0_line_hold, 2)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 4000)
@@ -2106,13 +2035,13 @@ static MACHINE_DRIVER_START( kyros )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 6000000) /* 24MHz/4? */
- MDRV_CPU_PROGRAM_MAP(kyros_readmem,kyros_writemem)
+ MDRV_CPU_PROGRAM_MAP(kyros_map,0)
MDRV_CPU_VBLANK_INT(alpha68k_interrupt,2)
MDRV_CPU_ADD(Z80, 3579545)
/* audio CPU */ /* ? */
- MDRV_CPU_PROGRAM_MAP(kyros_sound_readmem,kyros_sound_writemem)
- MDRV_CPU_IO_MAP(0,kyros_sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(kyros_sound_map,0)
+ MDRV_CPU_IO_MAP(kyros_sound_portmap,0)
//AT
MDRV_CPU_VBLANK_INT(irq0_line_hold, 2)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 4000)
@@ -2155,13 +2084,12 @@ static MACHINE_DRIVER_START( jongbou )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 8000000)
- MDRV_CPU_PROGRAM_MAP(kyros_readmem,kyros_writemem)
+ MDRV_CPU_PROGRAM_MAP(kyros_map,0)
MDRV_CPU_VBLANK_INT(alpha68k_interrupt,17) // must be at least 4 for the controls to be smooth
MDRV_CPU_ADD(Z80, 4000000)
- /* audio CPU */
MDRV_CPU_PROGRAM_MAP(jongbou_sound_map,0)
- MDRV_CPU_IO_MAP(jongbou_sound_io_map,0)
+ MDRV_CPU_IO_MAP(jongbou_sound_portmap,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold, 160) // guess, controls sound speed
MDRV_MACHINE_RESET(common)
@@ -2191,12 +2119,11 @@ static MACHINE_DRIVER_START( alpha68k_I )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 6000000) /* 24MHz/4? */
- MDRV_CPU_PROGRAM_MAP(alpha68k_I_readmem,alpha68k_I_writemem)
+ MDRV_CPU_PROGRAM_MAP(alpha68k_I_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* VBL */
MDRV_CPU_ADD(Z80, 4000000) // 4Mhz seems to yield the correct tone
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(alpha68k_I_s_readmem, alpha68k_I_s_writemem)
+ MDRV_CPU_PROGRAM_MAP(alpha68k_I_s_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@@ -2229,8 +2156,8 @@ static MACHINE_DRIVER_START( alpha68k_II )
MDRV_CPU_ADD(Z80, /*3579545*/3579545*2) /* Unlikely but needed to stop nested NMI's */
/* audio CPU */ /* Correct?? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(sound_readport,sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(sound_portmap,0)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 7500) //AT
MDRV_MACHINE_RESET(common)
@@ -2277,9 +2204,8 @@ static MACHINE_DRIVER_START( alpha68k_II_gm )
MDRV_CPU_VBLANK_INT(alpha68k_interrupt, 4)
MDRV_CPU_ADD(Z80, 4000000*2)
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(sound_readmem, sound_writemem)
- MDRV_CPU_IO_MAP(sound_readport, sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(sound_portmap,0)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 7500)
MDRV_MACHINE_RESET(common)
@@ -2316,13 +2242,12 @@ static MACHINE_DRIVER_START( alpha68k_V )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 10000000) /* ? */
- MDRV_CPU_PROGRAM_MAP(alpha68k_V_readmem,alpha68k_V_writemem)
+ MDRV_CPU_PROGRAM_MAP(alpha68k_V_map,0)
MDRV_CPU_VBLANK_INT(irq3_line_hold,1)/* VBL */
MDRV_CPU_ADD(Z80, /*3579545*/3579545*2) /* Unlikely but needed to stop nested NMI's */
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(sound_readport,sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(sound_portmap,0)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 8500) //AT
MDRV_MACHINE_RESET(common)
@@ -2358,13 +2283,12 @@ static MACHINE_DRIVER_START( alpha68k_V_sb )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 10000000) /* ? */
- MDRV_CPU_PROGRAM_MAP(alpha68k_V_readmem,alpha68k_V_writemem)
+ MDRV_CPU_PROGRAM_MAP(alpha68k_V_map,0)
MDRV_CPU_VBLANK_INT(irq3_line_hold,1)/* VBL */
MDRV_CPU_ADD(Z80, /*3579545*/3579545*2) /* Unlikely but needed to stop nested NMI's */
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(sound_readport,sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(sound_portmap,0)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 8500) //AT
MDRV_MACHINE_RESET(common)
@@ -2400,13 +2324,12 @@ static MACHINE_DRIVER_START( tnexspce )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 9000000) /* Confirmed 18 MHz/2 */
- MDRV_CPU_PROGRAM_MAP(tnexspce_readmem,tnexspce_writemem)
+ MDRV_CPU_PROGRAM_MAP(tnexspce_map,0)
MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* VBL */
MDRV_CPU_ADD(Z80, 4000000)
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(tnexspce_sound_readmem, tnexspce_sound_writemem)
- MDRV_CPU_IO_MAP(tnexspce_sound_readport,tnexspce_sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(tnexspce_sound_map,0)
+ MDRV_CPU_IO_MAP(tnexspce_sound_portmap,0)
MDRV_MACHINE_RESET(tnexspce)
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index b8b370fee1f..05057d89d06 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -56,37 +56,27 @@ static WRITE8_HANDLER( flip_screen_w )
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ(watchdog_reset_r)
- AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM)
+ AM_RANGE(0xc000, 0xc7ff) AM_RAM
+ AM_RANGE(0xc080, 0xc09f) AM_BASE(&ambush_scrollram)
+ AM_RANGE(0xc100, 0xc1ff) AM_BASE(&colorram)
+ AM_RANGE(0xc200, 0xc3ff) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0xc400, 0xc7ff) AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0xc800, 0xc800) AM_READ(input_port_2_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xc080, 0xc09f) AM_WRITE(MWA8_RAM) AM_BASE(&ambush_scrollram)
- AM_RANGE(0xc100, 0xc1ff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram)
- AM_RANGE(0xc200, 0xc3ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0xc400, 0xc7ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0xcc00, 0xcc03) AM_WRITE(MWA8_NOP)
AM_RANGE(0xcc04, 0xcc04) AM_WRITE(flip_screen_w)
AM_RANGE(0xcc05, 0xcc05) AM_WRITE(MWA8_RAM) AM_BASE(&ambush_colorbank)
AM_RANGE(0xcc07, 0xcc07) AM_WRITE(ambush_coin_counter_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_READ(AY8910_read_port_0_r)
- AM_RANGE(0x80, 0x80) AM_READ(AY8910_read_port_1_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_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
- AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_1_w)
+ AM_RANGE(0x80, 0x80) AM_READWRITE(AY8910_read_port_1_r, AY8910_control_port_1_w)
AM_RANGE(0x81, 0x81) AM_WRITE(AY8910_write_port_1_w)
ADDRESS_MAP_END
@@ -184,8 +174,8 @@ static MACHINE_DRIVER_START( ambush )
/* basic machine hardware */
MDRV_CPU_ADD(Z80, 4000000) /* 4.00 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(irq0_line_hold,1)
/* video hardware */
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index 40672e158f8..aa44d37356c 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -72,33 +72,21 @@ static WRITE8_HANDLER( amspdwy_sound_w )
cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, PULSE_LINE);
}
-static ADDRESS_MAP_START( amspdwy_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM
-// AM_RANGE(0x8000, 0x801f) AM_READ(MRA8_RAM ) // Palette
- AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_READ(MRA8_RAM) // Layer, mirrored?
- AM_RANGE(0x9800, 0x9bff) AM_READ(MRA8_RAM ) // Layer
- AM_RANGE(0x9c00, 0x9fff) AM_READ(MRA8_RAM ) // Unused?
- AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r ) // DSW 1
- AM_RANGE(0xa400, 0xa400) AM_READ(input_port_1_r ) // DSW 2
- AM_RANGE(0xa800, 0xa800) AM_READ(amspdwy_wheel_0_r ) // Player 1
- AM_RANGE(0xac00, 0xac00) AM_READ(amspdwy_wheel_1_r ) // Player 2
- AM_RANGE(0xb400, 0xb400) AM_READ(amspdwy_sound_r ) // YM2151 Status + Buttons
- AM_RANGE(0xc000, 0xc0ff) AM_READ(MRA8_RAM ) // Sprites
- AM_RANGE(0xe000, 0xe7ff) AM_READ(MRA8_RAM ) // Work RAM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( amspdwy_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM
- AM_RANGE(0x8000, 0x801f) AM_WRITE(amspdwy_paletteram_w) AM_BASE(&paletteram ) // Palette
- AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_WRITE(amspdwy_videoram_w) AM_BASE(&videoram) // Layer, mirrored?
- AM_RANGE(0x9800, 0x9bff) AM_WRITE(amspdwy_colorram_w) AM_BASE(&colorram ) // Layer
- AM_RANGE(0x9c00, 0x9fff) AM_WRITE(MWA8_RAM ) // Unused?
-// AM_RANGE(0xa000, 0xa000) AM_WRITE(MWA8_NOP ) // ?
- AM_RANGE(0xa400, 0xa400) AM_WRITE(amspdwy_flipscreen_w ) // Toggle Flip Screen?
- AM_RANGE(0xb000, 0xb000) AM_WRITE(MWA8_NOP ) // ? Exiting IRQ
- AM_RANGE(0xb400, 0xb400) AM_WRITE(amspdwy_sound_w ) // To Sound CPU
- AM_RANGE(0xc000, 0xc0ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size ) // Sprites
- AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM ) // Work RAM
+static ADDRESS_MAP_START( amspdwy_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
+ AM_RANGE(0x8000, 0x801f) AM_WRITE(amspdwy_paletteram_w) AM_BASE(&paletteram)// Palette
+ AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_READWRITE(MRA8_RAM, amspdwy_videoram_w) AM_BASE(&videoram) // Layer, mirrored?
+ AM_RANGE(0x9800, 0x9bff) AM_READWRITE(MRA8_RAM, amspdwy_colorram_w) AM_BASE(&colorram) // Layer
+ AM_RANGE(0x9c00, 0x9fff) AM_RAM // Unused?
+// AM_RANGE(0xa000, 0xa000) AM_WRITENOP // ?
+ AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r) // DSW 1
+ AM_RANGE(0xa400, 0xa400) AM_READWRITE(input_port_1_r, amspdwy_flipscreen_w) // DSW 2 + Toggle Flip Screen?
+ AM_RANGE(0xa800, 0xa800) AM_READ(amspdwy_wheel_0_r) // Player 1
+ AM_RANGE(0xac00, 0xac00) AM_READ(amspdwy_wheel_1_r) // Player 2
+ AM_RANGE(0xb000, 0xb000) AM_WRITENOP // ? Exiting IRQ
+ AM_RANGE(0xb400, 0xb400) AM_READWRITE(amspdwy_sound_r, amspdwy_sound_w) // YM2151 status, To Sound CPU
+ AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)// Sprites
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM // Work RAM
ADDRESS_MAP_END
@@ -108,8 +96,8 @@ static READ8_HANDLER( amspdwy_port_r )
return Tracks[offset];
}
-static ADDRESS_MAP_START( amspdwy_readport, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(amspdwy_port_r )
+static ADDRESS_MAP_START( amspdwy_portmap, ADDRESS_SPACE_IO, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_READ(amspdwy_port_r)
ADDRESS_MAP_END
@@ -122,19 +110,14 @@ ADDRESS_MAP_END
***************************************************************************/
-static ADDRESS_MAP_START( amspdwy_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM
- AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_r ) // From Main CPU
- AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM ) // Work RAM
- AM_RANGE(0xffff, 0xffff) AM_READ(MRA8_NOP ) // ??? IY = FFFF at the start ?
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( amspdwy_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM
-// AM_RANGE(0x8000, 0x8000) AM_WRITE(MWA8_NOP ) // ? Written with 0 at the start
- AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2151_register_port_0_w ) // YM2151
- AM_RANGE(0xa001, 0xa001) AM_WRITE(YM2151_data_port_0_w ) //
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM ) // Work RAM
+static ADDRESS_MAP_START( amspdwy_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
+// AM_RANGE(0x8000, 0x8000) AM_WRITENOP // ? Written with 0 at the start
+ AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_r) // From Main CPU
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2151_register_port_0_w) // YM2151
+ AM_RANGE(0xa001, 0xa001) AM_WRITE(YM2151_data_port_0_w) //
+ AM_RANGE(0xc000, 0xdfff) AM_RAM // Work RAM
+ AM_RANGE(0xffff, 0xffff) AM_READNOP // ??? IY = FFFF at the start ?
ADDRESS_MAP_END
@@ -272,12 +255,12 @@ static MACHINE_DRIVER_START( amspdwy )
/* basic machine hardware */
MDRV_CPU_ADD(Z80,3000000)
- MDRV_CPU_PROGRAM_MAP(amspdwy_readmem,amspdwy_writemem)
- MDRV_CPU_IO_MAP(amspdwy_readport,0)
+ MDRV_CPU_PROGRAM_MAP(amspdwy_map,0)
+ MDRV_CPU_IO_MAP(amspdwy_portmap,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1) /* IRQ: 60Hz, NMI: retn */
MDRV_CPU_ADD(Z80,3000000) /* Can't be disabled: the YM2151 timers must work */
- MDRV_CPU_PROGRAM_MAP(amspdwy_sound_readmem,amspdwy_sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(amspdwy_sound_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index 4209bcf5ebd..4ca32291034 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -213,21 +213,16 @@ contain a level.
*/
-static ADDRESS_MAP_START( readmem_main, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1)
- AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM)
- AM_RANGE(0xe000, 0xefff) AM_READ(MRA8_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem_main, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xe000, 0xe3ff) AM_WRITE(angelkds_bgtopvideoram_w) AM_BASE(&angelkds_bgtopvideoram) /* Top Half of Screen */
- AM_RANGE(0xe400, 0xe7ff) AM_WRITE(angelkds_bgbotvideoram_w) AM_BASE(&angelkds_bgbotvideoram) /* Bottom Half of Screen */
- AM_RANGE(0xe800, 0xebff) AM_WRITE(angelkds_txvideoram_w) AM_BASE(&angelkds_txvideoram)
- AM_RANGE(0xec00, 0xecff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram)
- AM_RANGE(0xed00, 0xeeff) AM_WRITE(angelkds_paletteram_w) AM_BASE(&paletteram)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
+ AM_RANGE(0xc000, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xe3ff) AM_READWRITE(MRA8_RAM, angelkds_bgtopvideoram_w) AM_BASE(&angelkds_bgtopvideoram) /* Top Half of Screen */
+ AM_RANGE(0xe400, 0xe7ff) AM_READWRITE(MRA8_RAM, angelkds_bgbotvideoram_w) AM_BASE(&angelkds_bgbotvideoram) /* Bottom Half of Screen */
+ AM_RANGE(0xe800, 0xebff) AM_READWRITE(MRA8_RAM, angelkds_txvideoram_w) AM_BASE(&angelkds_txvideoram)
+ AM_RANGE(0xec00, 0xecff) AM_RAM AM_BASE(&spriteram)
+ AM_RANGE(0xed00, 0xeeff) AM_READWRITE(MRA8_RAM, angelkds_paletteram_w) AM_BASE(&paletteram)
+ AM_RANGE(0xef00, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xf000) AM_WRITE(angelkds_bgtopbank_write)
AM_RANGE(0xf001, 0xf001) AM_WRITE(angelkds_bgtopscroll_write)
AM_RANGE(0xf002, 0xf002) AM_WRITE(angelkds_bgbotbank_write)
@@ -236,54 +231,37 @@ static ADDRESS_MAP_START( writemem_main, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf005, 0xf005) AM_WRITE(angelkds_layer_ctrl_write)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport_main, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) // 00 on start-up, not again
+ AM_RANGE(0x42, 0x42) AM_WRITE(angelkds_cpu_bank_write)
+ AM_RANGE(0x43, 0x43) AM_WRITE(MWA8_NOP) // 9a on start-up, not again
AM_RANGE(0x40, 0x40) AM_READ(input_port_0_r) /* "Coinage" Dip Switches */
AM_RANGE(0x41, 0x41) AM_READ(input_port_1_r) /* Other Dip Switches */
AM_RANGE(0x42, 0x42) AM_READ(input_port_2_r) /* Players inputs (not needed ?) */
AM_RANGE(0x80, 0x80) AM_READ(input_port_3_r) /* System inputs */
AM_RANGE(0x81, 0x82) AM_READ(angelkds_input_r) /* Players inputs */
- AM_RANGE(0xc0, 0xc3) AM_READ(angelkds_main_sound_r) /* needed by spcpostn */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writeport_main, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) // 00 on start-up, not again
- AM_RANGE(0x42, 0x42) AM_WRITE(angelkds_cpu_bank_write)
- AM_RANGE(0x43, 0x43) AM_WRITE(MWA8_NOP) // 9a on start-up, not again
AM_RANGE(0x83, 0x83) AM_WRITE(MWA8_NOP) // 9b on start-up, not again
- AM_RANGE(0xc0, 0xc3) AM_WRITE(angelkds_main_sound_w) // 02 various points
+ AM_RANGE(0xc0, 0xc3) AM_READWRITE(angelkds_main_sound_r, angelkds_main_sound_w) // 02 various points
ADDRESS_MAP_END
/* sub cpu */
-static ADDRESS_MAP_START( readmem_sub, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xaaa9, 0xaaa9) AM_READ(MRA8_NOP)
- AM_RANGE(0xaaab, 0xaaab) AM_READ(MRA8_NOP)
- AM_RANGE(0xaaac, 0xaaac) AM_READ(MRA8_NOP)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem_sub, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( readport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r)
- AM_RANGE(0x40, 0x40) AM_READ(YM2203_status_port_1_r)
- AM_RANGE(0x80, 0x83) AM_READ(angelkds_sub_sound_r)
+static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
+ AM_RANGE(0xaaa9, 0xaaa9) AM_READNOP
+ AM_RANGE(0xaaab, 0xaaab) AM_READNOP
+ AM_RANGE(0xaaac, 0xaaac) AM_READNOP
ADDRESS_MAP_END
-static ADDRESS_MAP_START( writeport_sub, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( sub_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
- AM_RANGE(0x40, 0x40) AM_WRITE(YM2203_control_port_1_w)
+ AM_RANGE(0x40, 0x40) AM_READWRITE(YM2203_status_port_1_r, YM2203_control_port_1_w)
AM_RANGE(0x41, 0x41) AM_WRITE(YM2203_write_port_1_w)
- AM_RANGE(0x80, 0x83) AM_WRITE(angelkds_sub_sound_w) // spcpostn
+ AM_RANGE(0x80, 0x83) AM_READWRITE(angelkds_sub_sound_r, angelkds_sub_sound_w) // spcpostn
ADDRESS_MAP_END
@@ -616,14 +594,13 @@ GFXDECODE_END
static MACHINE_DRIVER_START( angelkds )
MDRV_CPU_ADD(Z80, 8000000) /* 8MHz? 6 seems too slow? */
- MDRV_CPU_PROGRAM_MAP(readmem_main,writemem_main)
- MDRV_CPU_IO_MAP(readport_main,writeport_main)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
+ MDRV_CPU_IO_MAP(main_portmap,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
MDRV_CPU_ADD(Z80, 4000000) /* 8 MHz? */
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(readmem_sub,writemem_sub)
- MDRV_CPU_IO_MAP(readport_sub,writeport_sub)
+ MDRV_CPU_PROGRAM_MAP(sub_map,0)
+ MDRV_CPU_IO_MAP(sub_portmap,0)
MDRV_INTERLEAVE(100)
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index 4218747371e..b917d18037d 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -299,177 +299,113 @@ static WRITE8_HANDLER( asuka_msm5205_stop_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( bonzeadv_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x080000, 0x0fffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x10c000, 0x10ffff) AM_READ(MRA16_RAM) /* main RAM */
- AM_RANGE(0x200000, 0x200007) AM_READ(TC0110PCR_word_r)
+static ADDRESS_MAP_START( bonzeadv_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x080000, 0x0fffff) AM_ROM
+ AM_RANGE(0x10c000, 0x10ffff) AM_RAM
+ AM_RANGE(0x200000, 0x200007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w)
AM_RANGE(0x390000, 0x390001) AM_READ(input_port_0_word_r)
- AM_RANGE(0x3b0000, 0x3b0001) AM_READ(input_port_1_word_r)
- AM_RANGE(0x3d0000, 0x3d0001) AM_READ(MRA16_NOP)
- AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_lsb_r)
- AM_RANGE(0x800000, 0x8007ff) AM_READ(bonzeadv_cchip_ram_r)
- AM_RANGE(0x800802, 0x800803) AM_READ(bonzeadv_cchip_ctrl_r)
- AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */
- AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
- AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( bonzeadv_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(MWA16_RAM)
- AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_step1_word_w)
AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(asuka_spritectrl_w)
+ AM_RANGE(0x3b0000, 0x3b0001) AM_READ(input_port_1_word_r)
AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(watchdog_reset16_w)
+ AM_RANGE(0x3d0000, 0x3d0001) AM_READNOP
AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_lsb_w)
- AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_lsb_w)
- AM_RANGE(0x800000, 0x8007ff) AM_WRITE(bonzeadv_cchip_ram_w)
- AM_RANGE(0x800802, 0x800803) AM_WRITE(bonzeadv_cchip_ctrl_w)
+ AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
+ AM_RANGE(0x800000, 0x8007ff) AM_READWRITE(bonzeadv_cchip_ram_r, bonzeadv_cchip_ram_w)
+ AM_RANGE(0x800802, 0x800803) AM_READWRITE(bonzeadv_cchip_ctrl_r, bonzeadv_cchip_ctrl_w)
AM_RANGE(0x800c00, 0x800c01) AM_WRITE(bonzeadv_cchip_bank_w)
- AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */
- AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
- AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram */
+ AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */
+ AM_RANGE(0xc20000, 0xc2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
+ AM_RANGE(0xd00000, 0xd03fff) AM_READWRITE(PC090OJ_word_0_r, PC090OJ_word_0_w) /* sprite ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( asuka_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) /* RAM */
- AM_RANGE(0x1076f0, 0x1076f1) AM_READ(MRA16_NOP) /* Mofflott init does dummy reads here */
- AM_RANGE(0x200000, 0x20000f) AM_READ(TC0110PCR_word_r)
- AM_RANGE(0x3e0000, 0x3e0001) AM_READ(MRA16_NOP)
- AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_lsb_r)
- AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r)
- AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */
- AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
- AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( asuka_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM)
- AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0110PCR_step1_word_w)
+static ADDRESS_MAP_START( asuka_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM
+ AM_RANGE(0x100000, 0x103fff) AM_RAM
+ AM_RANGE(0x1076f0, 0x1076f1) AM_READNOP /* Mofflott init does dummy reads here */
+ AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w)
AM_RANGE(0x3a0000, 0x3a0003) AM_WRITE(asuka_spritectrl_w)
- AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_lsb_w)
- AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_lsb_w)
- AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w)
- AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */
- AM_RANGE(0xc10000, 0xc103ff) AM_WRITE(MWA16_NOP) /* error in Asuka init code */
- AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
- AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram */
+ AM_RANGE(0x3e0000, 0x3e0001) AM_READWRITE(MRA16_NOP, taitosound_port16_lsb_w)
+ AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
+ AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
+ AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */
+ AM_RANGE(0xc10000, 0xc103ff) AM_WRITENOP /* error in Asuka init code */
+ AM_RANGE(0xc20000, 0xc2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
+ AM_RANGE(0xd00000, 0xd03fff) AM_READWRITE(PC090OJ_word_0_r, PC090OJ_word_0_w) /* sprite ram */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cadash_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x0c0000, 0x0c0001) AM_READ(MRA16_NOP)
- AM_RANGE(0x0c0002, 0x0c0003) AM_READ(taitosound_comm16_lsb_r)
- AM_RANGE(0x100000, 0x107fff) AM_READ(MRA16_RAM) /* RAM */
- AM_RANGE(0x800000, 0x800fff) AM_READ(MRA16_RAM) /* network ram */
- AM_RANGE(0x900000, 0x90000f) AM_READ(TC0220IOC_halfword_r)
- AM_RANGE(0xa00000, 0xa0000f) AM_READ(TC0110PCR_word_r)
- AM_RANGE(0xb00000, 0xb03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */
- AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */
- AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( cadash_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM)
+static ADDRESS_MAP_START( cadash_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080003) AM_WRITE(asuka_spritectrl_w)
- AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(taitosound_port16_lsb_w)
- AM_RANGE(0x0c0002, 0x0c0003) AM_WRITE(taitosound_comm16_lsb_w)
- AM_RANGE(0x100000, 0x107fff) AM_WRITE(MWA16_RAM)
- AM_RANGE(0x800000, 0x800fff) AM_WRITE(MWA16_RAM) /* network ram */
- AM_RANGE(0x900000, 0x90000f) AM_WRITE(TC0220IOC_halfword_w)
- AM_RANGE(0xa00000, 0xa0000f) AM_WRITE(TC0110PCR_step1_4bpg_word_w)
- AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram */
- AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */
- AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READWRITE(MRA16_NOP, taitosound_port16_lsb_w)
+ AM_RANGE(0x0c0002, 0x0c0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
+ AM_RANGE(0x100000, 0x107fff) AM_RAM
+ AM_RANGE(0x800000, 0x800fff) AM_RAM /* network ram */
+ AM_RANGE(0x900000, 0x90000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
+ AM_RANGE(0xa00000, 0xa0000f) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_4bpg_word_w)
+ AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(PC090OJ_word_0_r, PC090OJ_word_0_w) /* sprite ram */
+ AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */
+ AM_RANGE(0xc20000, 0xc2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( eto_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x100000, 0x10000f) AM_READ(TC0110PCR_word_r)
- AM_RANGE(0x200000, 0x203fff) AM_READ(MRA16_RAM) /* RAM */
- AM_RANGE(0x300000, 0x30000f) AM_READ(TC0220IOC_halfword_r)
+static ADDRESS_MAP_START( eto_map, ADDRESS_SPACE_PROGRAM, 16 ) /* N.B. tc100scn mirror overlaps spriteram */
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM
+ AM_RANGE(0x100000, 0x10000f) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w)
+ AM_RANGE(0x200000, 0x203fff) AM_RAM
+ AM_RANGE(0x300000, 0x30000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) /* service mode mirror */
- AM_RANGE(0x4e0000, 0x4e0001) AM_READ(MRA16_NOP)
- AM_RANGE(0x4e0002, 0x4e0003) AM_READ(taitosound_comm16_lsb_r)
- AM_RANGE(0xc00000, 0xc03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */
- AM_RANGE(0xd00000, 0xd0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */
- AM_RANGE(0xd20000, 0xd2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( eto_writemem, ADDRESS_SPACE_PROGRAM, 16 ) /* N.B. tc100scn mirror overlaps spriteram */
- AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x100000, 0x10000f) AM_WRITE(TC0110PCR_step1_word_w)
- AM_RANGE(0x200000, 0x203fff) AM_WRITE(MWA16_RAM)
- AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w)
AM_RANGE(0x4a0000, 0x4a0003) AM_WRITE(asuka_spritectrl_w)
- AM_RANGE(0x4e0000, 0x4e0001) AM_WRITE(taitosound_port16_lsb_w)
- AM_RANGE(0x4e0002, 0x4e0003) AM_WRITE(taitosound_comm16_lsb_w)
- AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram */
+ AM_RANGE(0x4e0000, 0x4e0001) AM_READWRITE(MRA16_NOP, taitosound_port16_lsb_w)
+ AM_RANGE(0x4e0002, 0x4e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
+ AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(PC090OJ_word_0_r, PC090OJ_word_0_w) /* sprite ram */
AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* service mode mirror */
- AM_RANGE(0xd00000, 0xd0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */
- AM_RANGE(0xd20000, 0xd2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
+ AM_RANGE(0xd00000, 0xd0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */
+ AM_RANGE(0xd20000, 0xd2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
ADDRESS_MAP_END
/***************************************************************************/
-static ADDRESS_MAP_START( bonzeadv_z80_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1)
- AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM)
- AM_RANGE(0xe000, 0xe000) AM_READ(YM2610_status_port_0_A_r)
- AM_RANGE(0xe001, 0xe001) AM_READ(YM2610_read_port_0_r)
- AM_RANGE(0xe002, 0xe002) AM_READ(YM2610_status_port_0_B_r)
- AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( bonzeadv_z80_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2610_control_port_0_A_w)
- AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2610_data_port_0_A_w)
- AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2610_control_port_0_B_w)
+static ADDRESS_MAP_START( bonzeadv_z80_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1)
+ AM_RANGE(0xc000, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xe000) AM_READWRITE(YM2610_status_port_0_A_r, YM2610_control_port_0_A_w)
+ AM_RANGE(0xe001, 0xe001) AM_READWRITE(YM2610_read_port_0_r, YM2610_data_port_0_A_w)
+ AM_RANGE(0xe002, 0xe002) AM_READWRITE(YM2610_status_port_0_B_r, YM2610_control_port_0_B_w)
AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2610_data_port_0_B_w)
AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
- AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
- AM_RANGE(0xe400, 0xe403) AM_WRITE(MWA8_NOP) /* pan */
- AM_RANGE(0xe600, 0xe600) AM_WRITE(MWA8_NOP)
- AM_RANGE(0xee00, 0xee00) AM_WRITE(MWA8_NOP)
- AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP)
+ AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
+ AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
+ AM_RANGE(0xe600, 0xe600) AM_WRITENOP
+ AM_RANGE(0xee00, 0xee00) AM_WRITENOP
+ AM_RANGE(0xf000, 0xf000) AM_WRITENOP
AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( z80_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1)
- AM_RANGE(0x8000, 0x8fff) AM_READ(MRA8_RAM)
- AM_RANGE(0x9001, 0x9001) AM_READ(YM2151_status_port_0_r)
- AM_RANGE(0x9002, 0x9100) AM_READ(MRA8_RAM)
- AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( z80_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM)
+static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1)
+ AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2151_register_port_0_w)
- AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2151_data_port_0_w)
+ AM_RANGE(0x9001, 0x9001) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
+// AM_RANGE(0x9002, 0x9100) AM_READ(MRA8_RAM)
AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w)
- AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w)
+ AM_RANGE(0xa001, 0xa001) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
AM_RANGE(0xb000, 0xb000) AM_WRITE(asuka_msm5205_address_w)
AM_RANGE(0xc000, 0xc000) AM_WRITE(asuka_msm5205_start_w)
AM_RANGE(0xd000, 0xd000) AM_WRITE(asuka_msm5205_stop_w)
ADDRESS_MAP_END
/* no MSM5205 */
-static ADDRESS_MAP_START( cadash_z80_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM)
+static ADDRESS_MAP_START( cadash_z80_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1)
+ AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2151_register_port_0_w)
- AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2151_data_port_0_w)
+ AM_RANGE(0x9001, 0x9001) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w)
- AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w)
+ AM_RANGE(0xa001, 0xa001) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
ADDRESS_MAP_END
@@ -851,11 +787,11 @@ static MACHINE_DRIVER_START( bonzeadv )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 8000000) /* checked on PCB */
- MDRV_CPU_PROGRAM_MAP(bonzeadv_readmem,bonzeadv_writemem)
+ MDRV_CPU_PROGRAM_MAP(bonzeadv_map,0)
MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
MDRV_CPU_ADD(Z80,4000000) /* sound CPU, also required for test mode */
- MDRV_CPU_PROGRAM_MAP(bonzeadv_z80_readmem,bonzeadv_z80_writemem)
+ MDRV_CPU_PROGRAM_MAP(bonzeadv_z80_map,0)
MDRV_INTERLEAVE(10)
@@ -887,11 +823,11 @@ static MACHINE_DRIVER_START( asuka )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, XTAL_16MHz/2) /* verified on pcb */
- MDRV_CPU_PROGRAM_MAP(asuka_readmem,asuka_writemem)
+ MDRV_CPU_PROGRAM_MAP(asuka_map,0)
MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
MDRV_CPU_ADD(Z80, XTAL_16MHz/4) /* verified on pcb */
- MDRV_CPU_PROGRAM_MAP(z80_readmem,z80_writemem)
+ MDRV_CPU_PROGRAM_MAP(z80_map,0)
MDRV_INTERLEAVE(10)
@@ -926,11 +862,11 @@ static MACHINE_DRIVER_START( cadash )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, XTAL_32MHz/2) /* 68000p12 running at 16Mhz, verified on pcb */
- MDRV_CPU_PROGRAM_MAP(cadash_readmem,cadash_writemem)
+ MDRV_CPU_PROGRAM_MAP(cadash_map,0)
MDRV_CPU_VBLANK_INT(cadash_interrupt,1)
MDRV_CPU_ADD(Z80, XTAL_8MHz/2) /* verified on pcb */
- MDRV_CPU_PROGRAM_MAP(z80_readmem,cadash_z80_writemem)
+ MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
MDRV_INTERLEAVE(10)
@@ -961,11 +897,11 @@ static MACHINE_DRIVER_START( mofflott )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(asuka_readmem,asuka_writemem)
+ MDRV_CPU_PROGRAM_MAP(asuka_map,0)
MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(z80_readmem,z80_writemem)
+ MDRV_CPU_PROGRAM_MAP(z80_map,0)
MDRV_INTERLEAVE(10)
@@ -1000,11 +936,11 @@ static MACHINE_DRIVER_START( galmedes )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(asuka_readmem,asuka_writemem)
+ MDRV_CPU_PROGRAM_MAP(asuka_map,0)
MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(z80_readmem,cadash_z80_writemem)
+ MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
MDRV_INTERLEAVE(10)
@@ -1035,11 +971,11 @@ static MACHINE_DRIVER_START( eto )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(eto_readmem,eto_writemem)
+ MDRV_CPU_PROGRAM_MAP(eto_map,0)
MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(z80_readmem,cadash_z80_writemem)
+ MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
MDRV_INTERLEAVE(10)
diff --git a/src/mame/drivers/aztarac.c b/src/mame/drivers/aztarac.c
index 0aa67a1aa10..4828e976d1e 100644
--- a/src/mame/drivers/aztarac.c
+++ b/src/mame/drivers/aztarac.c
@@ -72,26 +72,17 @@ static READ16_HANDLER( joystick_r )
*
*************************************/
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x00bfff) AM_READ(MRA16_ROM)
- AM_RANGE(0x022000, 0x022fff) AM_READ(nvram_r)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x00bfff) AM_ROM
+ AM_RANGE(0x022000, 0x0220ff) AM_READWRITE(nvram_r, MWA16_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
AM_RANGE(0x027000, 0x027001) AM_READ(joystick_r)
AM_RANGE(0x027004, 0x027005) AM_READ(input_port_3_word_r)
- AM_RANGE(0x027008, 0x027009) AM_READ(aztarac_sound_r)
+ AM_RANGE(0x027008, 0x027009) AM_READWRITE(aztarac_sound_r, aztarac_sound_w)
AM_RANGE(0x02700c, 0x02700d) AM_READ(input_port_2_word_r)
AM_RANGE(0x02700e, 0x02700f) AM_READ(watchdog_reset16_r)
- AM_RANGE(0xff8000, 0xffafff) AM_READ(MRA16_RAM)
- AM_RANGE(0xffe000, 0xffffff) AM_READ(MRA16_RAM)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x00bfff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x022000, 0x0220ff) AM_WRITE(MWA16_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
- AM_RANGE(0x027008, 0x027009) AM_WRITE(aztarac_sound_w)
- AM_RANGE(0xff8000, 0xffafff) AM_WRITE(MWA16_RAM) AM_BASE(&aztarac_vectorram)
+ AM_RANGE(0xff8000, 0xffafff) AM_RAM AM_BASE(&aztarac_vectorram)
AM_RANGE(0xffb000, 0xffb001) AM_WRITE(aztarac_ubr_w)
- AM_RANGE(0xffe000, 0xffffff) AM_WRITE(MWA16_RAM)
+ AM_RANGE(0xffe000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -102,30 +93,19 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8800) AM_READ(aztarac_snd_command_r)
- AM_RANGE(0x8c00, 0x8c01) AM_READ(AY8910_read_port_0_r)
- AM_RANGE(0x8c02, 0x8c03) AM_READ(AY8910_read_port_1_r)
- AM_RANGE(0x8c04, 0x8c05) AM_READ(AY8910_read_port_2_r)
- AM_RANGE(0x8c06, 0x8c07) AM_READ(AY8910_read_port_3_r)
- AM_RANGE(0x9000, 0x9000) AM_READ(aztarac_snd_status_r)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x8c00, 0x8c00) AM_WRITE(AY8910_write_port_0_w)
- AM_RANGE(0x8c01, 0x8c01) AM_WRITE(AY8910_control_port_0_w)
- AM_RANGE(0x8c02, 0x8c02) AM_WRITE(AY8910_write_port_1_w)
- AM_RANGE(0x8c03, 0x8c03) AM_WRITE(AY8910_control_port_1_w)
- AM_RANGE(0x8c04, 0x8c04) AM_WRITE(AY8910_write_port_2_w)
- AM_RANGE(0x8c05, 0x8c05) AM_WRITE(AY8910_control_port_2_w)
- AM_RANGE(0x8c06, 0x8c06) AM_WRITE(AY8910_write_port_3_w)
- AM_RANGE(0x8c07, 0x8c07) AM_WRITE(AY8910_control_port_3_w)
- AM_RANGE(0x9000, 0x9000) AM_WRITE(aztarac_snd_status_w)
+ AM_RANGE(0x8c00, 0x8c00) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
+ AM_RANGE(0x8c01, 0x8c01) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
+ AM_RANGE(0x8c02, 0x8c02) AM_READWRITE(AY8910_read_port_1_r, AY8910_write_port_1_w)
+ AM_RANGE(0x8c03, 0x8c03) AM_READWRITE(AY8910_read_port_1_r, AY8910_control_port_1_w)
+ AM_RANGE(0x8c04, 0x8c04) AM_READWRITE(AY8910_read_port_2_r, AY8910_write_port_2_w)
+ AM_RANGE(0x8c05, 0x8c05) AM_READWRITE(AY8910_read_port_2_r, AY8910_control_port_2_w)
+ AM_RANGE(0x8c06, 0x8c06) AM_READWRITE(AY8910_read_port_3_r, AY8910_write_port_3_w)
+ AM_RANGE(0x8c07, 0x8c07) AM_READWRITE(AY8910_read_port_3_r, AY8910_control_port_3_w)
+ AM_RANGE(0x9000, 0x9000) AM_READWRITE(aztarac_snd_status_r, aztarac_snd_status_w)
ADDRESS_MAP_END
@@ -169,12 +149,11 @@ static MACHINE_DRIVER_START( aztarac )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 8000000)
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
MDRV_CPU_ADD(Z80, 2000000)
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_CPU_PERIODIC_INT(aztarac_snd_timed_irq, 100)
MDRV_MACHINE_RESET(aztarac)
diff --git a/src/mame/machine/ajax.c b/src/mame/machine/ajax.c
index 676a2e6dfa8..1049bdf02eb 100644
--- a/src/mame/machine/ajax.c
+++ b/src/mame/machine/ajax.c
@@ -14,7 +14,6 @@
#include "cpu/konami/konami.h"
#include "video/konamiic.h"
-UINT8 *ajax_sharedram;
extern UINT8 ajax_priority;
static int firq_enable;
@@ -165,17 +164,6 @@ WRITE8_HANDLER( ajax_ls138_f10_w )
}
}
-/* Shared RAM between the 052001 and the 6809 (6264SL at I8) */
-READ8_HANDLER( ajax_sharedram_r )
-{
- return ajax_sharedram[offset];
-}
-
-WRITE8_HANDLER( ajax_sharedram_w )
-{
- ajax_sharedram[offset] = data;
-}
-
/* ajax_bankswitch_w_2:
Handled by the LS273 Octal +ve edge trigger D-type Flip-flop with Reset at K14: