summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Andrew Gardner <andrew-gardner@users.noreply.github.com>2008-04-13 18:02:50 +0000
committer Andrew Gardner <andrew-gardner@users.noreply.github.com>2008-04-13 18:02:50 +0000
commit76e7b85e1fdaccec130e2871583eece1836c9610 (patch)
treeade8de38f9c768f01db0a89c221c23c25069a863
parent6d37b87e5deaa7b543db84b8e0ea71d3e0549dfb (diff)
Finished memory map merge for W drivers.
Some whitespace touch-ups.
-rw-r--r--src/emu/drivers/xtal.h8
-rw-r--r--src/mame/drivers/undrfire.c59
-rw-r--r--src/mame/drivers/warpwarp.c85
-rw-r--r--src/mame/drivers/warriorb.c122
-rw-r--r--src/mame/drivers/wc90.c90
5 files changed, 121 insertions, 243 deletions
diff --git a/src/emu/drivers/xtal.h b/src/emu/drivers/xtal.h
index 5d219ec003c..0c2d55b7722 100644
--- a/src/emu/drivers/xtal.h
+++ b/src/emu/drivers/xtal.h
@@ -111,7 +111,7 @@ enum
XTAL_27_164MHz = 27164000, /* Typically used on 90's Taito PCBs to drive the custom chips */
XTAL_28MHz = 28000000,
XTAL_28_37516MHz = 28375160, /* Amiga PAL systems */
- XTAL_28_63636MHz = 28636360, /* later Leland games and Atari GT, Amiga NTSC , Raiden2 h/w */
+ XTAL_28_63636MHz = 28636360, /* Later Leland games and Atari GT, Amiga NTSC , Raiden2 h/w */
XTAL_30_4761MHz = 30476100, /* Taito JC */
XTAL_32MHz = 32000000,
XTAL_32_22MHz = 32220000, /* Typically used on 90's Data East PCBs */
@@ -136,11 +136,11 @@ enum
XTAL_60MHz = 60000000,
XTAL_61_44MHz = 61440000, /* dkong */
XTAL_64MHz = 64000000, /* BattleToads */
- XTAL_66_6667MHz = 66666700, /* later Midway games */
+ XTAL_66_6667MHz = 66666700, /* Later Midway games */
XTAL_67_7376MHz = 67737600, /* PSX-based h/w, Sony ZN1-2-based */
XTAL_73_728MHz = 73728000, /* Ms. Pac-Man/Galaga 20th Anniversary */
- XTAL_100MHz = 100000000, /* PSX-based Namco System 12, Vegas, Sony ZN1-2-based */
- XTAL_101_4912MHz = 101491200, /* PSX-based Namco System 10 */
+ XTAL_100MHz = 100000000, /* PSX-based Namco System 12, Vegas, Sony ZN1-2-based */
+ XTAL_101_4912MHz = 101491200, /* PSX-based Namco System 10 */
/* Resonators (There are probably more. Almost always used for driving OKI sound chips) */
diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c
index b0df874ebe5..5209d3cfebc 100644
--- a/src/mame/drivers/undrfire.c
+++ b/src/mame/drivers/undrfire.c
@@ -469,45 +469,26 @@ static WRITE32_HANDLER( cbombers_cpua_ctrl_w )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( undrfire_readmem, ADDRESS_SPACE_PROGRAM, 32 )
- AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
- AM_RANGE(0x200000, 0x21ffff) AM_READ(SMH_RAM) /* main CPUA ram */
- AM_RANGE(0x300000, 0x303fff) AM_READ(SMH_RAM) /* sprite ram */
-// AM_RANGE(0x304000, 0x304003) AM_READ(SMH_RAM) // debugging
-// AM_RANGE(0x304400, 0x304403) AM_READ(SMH_RAM) // debugging
- AM_RANGE(0x500000, 0x500007) AM_READ(undrfire_input_r)
- AM_RANGE(0x600000, 0x600007) AM_READ(unknown_hardware_r) /* unknown byte reads at $156e */
- AM_RANGE(0x700000, 0x7007ff) AM_READ(SMH_RAM)
- AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0480SCP_long_r) /* tilemaps */
- AM_RANGE(0x830000, 0x83002f) AM_READ(TC0480SCP_ctrl_long_r) // debugging
- AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_long_r) /* piv tilemaps */
- AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_long_r)
- AM_RANGE(0xa00000, 0xa0ffff) AM_READ(SMH_RAM) /* palette ram */
- AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM) // ?? single bytes
+static ADDRESS_MAP_START( undrfire_map, ADDRESS_SPACE_PROGRAM, 32 )
+ AM_RANGE(0x000000, 0x1fffff) AM_ROM
+ AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE(&undrfire_ram)
+ AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
+// AM_RANGE(0x304000, 0x304003) AM_RAM // debugging - doesn't change ???
+// AM_RANGE(0x304400, 0x304403) AM_RAM // debugging - doesn't change ???
+ AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
+ AM_RANGE(0x500000, 0x500007) AM_READWRITE(undrfire_input_r, undrfire_input_w) /* eerom etc. */
+ AM_RANGE(0x600000, 0x600007) AM_READWRITE(unknown_hardware_r, unknown_int_req_w) /* int request for unknown hardware */
+ AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_BASE(&f3_shared_ram)
+ AM_RANGE(0x800000, 0x80ffff) AM_READWRITE(TC0480SCP_long_r, TC0480SCP_long_w) /* tilemaps */
+ AM_RANGE(0x830000, 0x83002f) AM_READWRITE(TC0480SCP_ctrl_long_r, TC0480SCP_ctrl_long_w)
+ AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0100SCN_long_r, TC0100SCN_long_w) /* piv tilemaps */
+ AM_RANGE(0x920000, 0x92000f) AM_READWRITE(TC0100SCN_ctrl_long_r, TC0100SCN_ctrl_long_w)
+ AM_RANGE(0xa00000, 0xa0ffff) AM_RAM AM_WRITE(color_ram_w) AM_BASE(&paletteram32)
+ AM_RANGE(0xb00000, 0xb003ff) AM_RAM /* single bytes, blending ??? */
+ AM_RANGE(0xd00000, 0xd00003) AM_WRITE(rotate_control_w) /* perhaps port based rotate control? */
AM_RANGE(0xf00000, 0xf00007) AM_READ(undrfire_lightgun_r) /* stick coords read at $11b2-bc */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( undrfire_writemem, ADDRESS_SPACE_PROGRAM, 32 )
- AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x200000, 0x21ffff) AM_WRITE(SMH_RAM) AM_BASE(&undrfire_ram)
- AM_RANGE(0x300000, 0x303fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
-// AM_RANGE(0x304000, 0x304003) AM_WRITE(SMH_RAM) // ??? doesn't change
-// AM_RANGE(0x304400, 0x304403) AM_WRITE(SMH_RAM) // ??? doesn't change
- AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
- AM_RANGE(0x500000, 0x500007) AM_WRITE(undrfire_input_w) /* eerom etc. */
- AM_RANGE(0x600000, 0x600007) AM_WRITE(unknown_int_req_w) /* int request for unknown hardware */
- AM_RANGE(0x700000, 0x7007ff) AM_WRITE(SMH_RAM) AM_BASE(&f3_shared_ram)
- AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_long_w) /* tilemaps */
- AM_RANGE(0x830000, 0x83002f) AM_WRITE(TC0480SCP_ctrl_long_w)
- AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_long_w) /* piv tilemaps */
- AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_long_w)
- AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(color_ram_w) AM_BASE(&paletteram32)
- AM_RANGE(0xb00000, 0xb003ff) AM_WRITE(SMH_RAM) // single bytes, blending ??
- AM_RANGE(0xd00000, 0xd00003) AM_WRITE(rotate_control_w) /* perhaps port based rotate control? */
-ADDRESS_MAP_END
-
-
-
static ADDRESS_MAP_START( cbombers_readmem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
AM_RANGE(0x200000, 0x21ffff) AM_READ(SMH_RAM) /* main CPUA ram */
@@ -523,8 +504,7 @@ static ADDRESS_MAP_START( cbombers_readmem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x900000, 0x90ffff) AM_READ(SMH_RAM)
AM_RANGE(0xa00000, 0xa0ffff) AM_READ(SMH_RAM) /* Palette ram */
- AM_RANGE(0xe00000, 0xe0ffff) AM_READ(SMH_RAM) /* Shared ram */
-
+ AM_RANGE(0xe00000, 0xe0ffff) AM_READ(SMH_RAM) /* Shared ram */
ADDRESS_MAP_END
static ADDRESS_MAP_START( cbombers_writemem, ADDRESS_SPACE_PROGRAM, 32 )
@@ -551,7 +531,6 @@ static ADDRESS_MAP_START( cbombers_writemem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM)
AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(color_ram_w) AM_BASE(&paletteram32)
AM_RANGE(0xe00000, 0xe0ffff) AM_WRITE(SMH_RAM) AM_BASE(&shared_ram)
-
ADDRESS_MAP_END
static ADDRESS_MAP_START( cbombers_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
@@ -784,7 +763,7 @@ static MACHINE_DRIVER_START( undrfire )
/* basic machine hardware */
MDRV_CPU_ADD(M68EC020, 16000000) /* 16 MHz */
- MDRV_CPU_PROGRAM_MAP(undrfire_readmem,undrfire_writemem)
+ MDRV_CPU_PROGRAM_MAP(undrfire_map,0)
MDRV_CPU_VBLANK_INT("main", undrfire_interrupt)
TAITO_F3_SOUND_SYSTEM_CPU(16000000)
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index f7840ad9efb..ce77c467b90 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -299,78 +299,47 @@ static WRITE8_HANDLER( warpwarp_out3_w )
-static ADDRESS_MAP_START( readmem_geebee, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_READ(SMH_RAM)
- AM_RANGE(0x3000, 0x37ff) AM_READ(SMH_ROM) /* 3000-33ff in GeeBee */
- AM_RANGE(0x4000, 0x40ff) AM_READ(SMH_RAM)
- AM_RANGE(0x5000, 0x53ff) AM_READ(geebee_in_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem_geebee, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_WRITE(geebee_videoram_w) AM_BASE(&geebee_videoram)
+static ADDRESS_MAP_START( geebee_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x23ff) AM_RAM AM_WRITE(geebee_videoram_w) AM_BASE(&geebee_videoram)
AM_RANGE(0x2400, 0x27ff) AM_WRITE(geebee_videoram_w) /* mirror used by kaiteik due to a bug */
- AM_RANGE(0x3000, 0x37ff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x4000, 0x40ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x3000, 0x37ff) AM_ROM /* 3000-33ff in GeeBee */
+ AM_RANGE(0x4000, 0x40ff) AM_RAM
+ AM_RANGE(0x5000, 0x53ff) AM_READ(geebee_in_r)
AM_RANGE(0x6000, 0x6fff) AM_WRITE(geebee_out6_w)
AM_RANGE(0x7000, 0x7fff) AM_WRITE(geebee_out7_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport_geebee, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( geebee_port_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x50, 0x53) AM_READ(geebee_in_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writeport_geebee, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x60, 0x6f) AM_WRITE(geebee_out6_w)
AM_RANGE(0x70, 0x7f) AM_WRITE(geebee_out7_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readmem_bombbee, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_READ(SMH_RAM)
- AM_RANGE(0x4000, 0x47ff) AM_READ(SMH_RAM)
- AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_ROM)
- AM_RANGE(0x6000, 0x600f) AM_READ(warpwarp_sw_r)
- AM_RANGE(0x6010, 0x601f) AM_READ(warpwarp_vol_r)
- AM_RANGE(0x6020, 0x602f) AM_READ(warpwarp_dsw1_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( readmem_warpwarp, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0x83ff) AM_READ(SMH_RAM)
- AM_RANGE(0x4000, 0x47ff) AM_READ(SMH_RAM)
- AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_ROM)
- AM_RANGE(0xc000, 0xc00f) AM_READ(warpwarp_sw_r)
- AM_RANGE(0xc010, 0xc01f) AM_READ(warpwarp_vol_r)
- AM_RANGE(0xc020, 0xc02f) AM_READ(warpwarp_dsw1_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem_bombbee, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x4000, 0x47ff) AM_WRITE(warpwarp_videoram_w) AM_BASE(&warpwarp_videoram)
- AM_RANGE(0x4800, 0x4fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x6000, 0x600f) AM_WRITE(warpwarp_out0_w)
- AM_RANGE(0x6010, 0x601f) AM_WRITE(warpwarp_music1_w)
- AM_RANGE(0x6020, 0x602f) AM_WRITE(warpwarp_music2_w)
+static ADDRESS_MAP_START( bombbee_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x23ff) AM_RAM
+ AM_RANGE(0x4000, 0x47ff) AM_RAM AM_WRITE(warpwarp_videoram_w) AM_BASE(&warpwarp_videoram)
+ AM_RANGE(0x4800, 0x4fff) AM_ROM
+ AM_RANGE(0x6000, 0x600f) AM_READWRITE(warpwarp_sw_r, warpwarp_out0_w)
+ AM_RANGE(0x6010, 0x601f) AM_READWRITE(warpwarp_vol_r, warpwarp_music1_w)
+ AM_RANGE(0x6020, 0x602f) AM_READWRITE(warpwarp_dsw1_r, warpwarp_music2_w)
AM_RANGE(0x6030, 0x603f) AM_WRITE(warpwarp_out3_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( writemem_warpwarp, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x4000, 0x47ff) AM_WRITE(warpwarp_videoram_w) AM_BASE(&warpwarp_videoram)
- AM_RANGE(0x4800, 0x4fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xc00f) AM_WRITE(warpwarp_out0_w)
- AM_RANGE(0xc010, 0xc01f) AM_WRITE(warpwarp_music1_w)
- AM_RANGE(0xc020, 0xc02f) AM_WRITE(warpwarp_music2_w)
+static ADDRESS_MAP_START( warpwarp_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x8000, 0x83ff) AM_RAM
+ AM_RANGE(0x4000, 0x47ff) AM_RAM AM_WRITE(warpwarp_videoram_w) AM_BASE(&warpwarp_videoram)
+ AM_RANGE(0x4800, 0x4fff) AM_ROM
+ AM_RANGE(0xc000, 0xc00f) AM_READWRITE(warpwarp_sw_r, warpwarp_out0_w)
+ AM_RANGE(0xc010, 0xc01f) AM_READWRITE(warpwarp_vol_r, warpwarp_music1_w)
+ AM_RANGE(0xc020, 0xc02f) AM_READWRITE(warpwarp_dsw1_r, warpwarp_music2_w)
AM_RANGE(0xc030, 0xc03f) AM_WRITE(warpwarp_out3_w)
ADDRESS_MAP_END
-
static INPUT_PORTS_START( geebee )
PORT_START_TAG("SW0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
@@ -835,8 +804,8 @@ static MACHINE_DRIVER_START( geebee )
/* basic machine hardware */
MDRV_CPU_ADD_TAG("main", 8080,XTAL_18_432MHz/9) /* verified on pcb */
- MDRV_CPU_PROGRAM_MAP(readmem_geebee,writemem_geebee)
- MDRV_CPU_IO_MAP(readport_geebee,writeport_geebee)
+ MDRV_CPU_PROGRAM_MAP(geebee_map,0)
+ MDRV_CPU_IO_MAP(geebee_port_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_pulse)
/* video hardware */
@@ -879,7 +848,7 @@ static MACHINE_DRIVER_START( bombbee )
/* basic machine hardware */
MDRV_CPU_ADD_TAG("main", 8080,18432000/9) /* 18.432 MHz / 9 */
- MDRV_CPU_PROGRAM_MAP(readmem_bombbee,writemem_bombbee)
+ MDRV_CPU_PROGRAM_MAP(bombbee_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
/* video hardware */
@@ -910,7 +879,7 @@ static MACHINE_DRIVER_START( warpwarp )
/* basic machine hardware */
MDRV_IMPORT_FROM(bombbee)
MDRV_CPU_MODIFY("main")
- MDRV_CPU_PROGRAM_MAP(readmem_warpwarp,writemem_warpwarp)
+ MDRV_CPU_PROGRAM_MAP(warpwarp_map,0)
MACHINE_DRIVER_END
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index a752d24a5fa..4cddff32f40 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -212,91 +212,51 @@ static WRITE8_HANDLER( warriorb_pancontrol )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( darius2d_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
- AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) /* main ram */
- AM_RANGE(0x200000, 0x213fff) AM_READ(TC0100SCN_word_0_r) /* tilemaps (1st screen) */
- AM_RANGE(0x220000, 0x22000f) AM_READ(TC0100SCN_ctrl_word_0_r)
- AM_RANGE(0x240000, 0x253fff) AM_READ(TC0100SCN_word_1_r) /* tilemaps (2nd screen) */
- AM_RANGE(0x260000, 0x26000f) AM_READ(TC0100SCN_ctrl_word_1_r)
- AM_RANGE(0x400000, 0x400007) AM_READ(TC0110PCR_word_r) /* palette (1st screen) */
- AM_RANGE(0x420000, 0x420007) AM_READ(TC0110PCR_word_1_r) /* palette (2nd screen) */
- AM_RANGE(0x600000, 0x6013ff) AM_READ(SMH_RAM) /* sprite ram */
- AM_RANGE(0x800000, 0x80000f) AM_READ(TC0220IOC_halfword_r)
- AM_RANGE(0x830000, 0x830003) AM_READ(warriorb_sound_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( darius2d_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x200000, 0x213fff) AM_WRITE(TC0100SCN_dual_screen_w) /* tilemaps (all screens) */
- AM_RANGE(0x214000, 0x2141ff) AM_WRITE(SMH_NOP) /* error in screen clearing code ? */
- AM_RANGE(0x220000, 0x22000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
- AM_RANGE(0x240000, 0x253fff) AM_WRITE(TC0100SCN_word_1_w) /* tilemaps (2nd screen) */
- AM_RANGE(0x260000, 0x26000f) AM_WRITE(TC0100SCN_ctrl_word_1_w)
- AM_RANGE(0x400000, 0x400007) AM_WRITE(TC0110PCR_step1_word_w) /* palette (1st screen) */
- AM_RANGE(0x420000, 0x420007) AM_WRITE(TC0110PCR_step1_word_1_w) /* palette (2nd screen) */
- AM_RANGE(0x600000, 0x6013ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
- AM_RANGE(0x800000, 0x80000f) AM_WRITE(TC0220IOC_halfword_w)
+static ADDRESS_MAP_START( darius2d_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM
+ AM_RANGE(0x100000, 0x10ffff) AM_RAM /* main ram */
+ AM_RANGE(0x200000, 0x213fff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_dual_screen_w) /* tilemaps (all screens) */
+ AM_RANGE(0x214000, 0x2141ff) AM_WRITE(SMH_NOP) /* error in screen clearing code ? */
+ AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
+ AM_RANGE(0x240000, 0x253fff) AM_READWRITE(TC0100SCN_word_1_r, TC0100SCN_word_1_w) /* tilemaps (2nd screen) */
+ AM_RANGE(0x260000, 0x26000f) AM_READWRITE(TC0100SCN_ctrl_word_1_r, TC0100SCN_ctrl_word_1_w)
+ AM_RANGE(0x400000, 0x400007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) /* palette (1st screen) */
+ AM_RANGE(0x420000, 0x420007) AM_READWRITE(TC0110PCR_word_1_r, TC0110PCR_step1_word_1_w) /* palette (2nd screen) */
+ AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x800000, 0x80000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
// AM_RANGE(0x820000, 0x820001) AM_WRITE(SMH_NOP) // ???
- AM_RANGE(0x830000, 0x830003) AM_WRITE(warriorb_sound_w)
+ AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( warriorb_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
- AM_RANGE(0x200000, 0x213fff) AM_READ(SMH_RAM) /* main ram */
- AM_RANGE(0x300000, 0x313fff) AM_READ(TC0100SCN_word_0_r) /* tilemaps (1st screen) */
- AM_RANGE(0x320000, 0x32000f) AM_READ(TC0100SCN_ctrl_word_0_r)
- AM_RANGE(0x340000, 0x353fff) AM_READ(TC0100SCN_word_1_r) /* tilemaps (2nd screen) */
- AM_RANGE(0x360000, 0x36000f) AM_READ(TC0100SCN_ctrl_word_1_r)
- AM_RANGE(0x400000, 0x400007) AM_READ(TC0110PCR_word_r) /* palette (1st screen) */
- AM_RANGE(0x420000, 0x420007) AM_READ(TC0110PCR_word_1_r) /* palette (2nd screen) */
- AM_RANGE(0x600000, 0x6013ff) AM_READ(SMH_RAM) /* sprite ram */
- AM_RANGE(0x800000, 0x80000f) AM_READ(TC0510NIO_halfword_r)
- AM_RANGE(0x830000, 0x830003) AM_READ(warriorb_sound_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( warriorb_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x200000, 0x213fff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x300000, 0x313fff) AM_WRITE(TC0100SCN_dual_screen_w) /* tilemaps (all screens) */
- AM_RANGE(0x320000, 0x32000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
- AM_RANGE(0x340000, 0x353fff) AM_WRITE(TC0100SCN_word_1_w) /* tilemaps (2nd screen) */
- AM_RANGE(0x360000, 0x36000f) AM_WRITE(TC0100SCN_ctrl_word_1_w)
- AM_RANGE(0x400000, 0x400007) AM_WRITE(TC0110PCR_step1_word_w) /* palette (1st screen) */
- AM_RANGE(0x420000, 0x420007) AM_WRITE(TC0110PCR_step1_word_1_w) /* palette (2nd screen) */
- AM_RANGE(0x600000, 0x6013ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
- AM_RANGE(0x800000, 0x80000f) AM_WRITE(TC0510NIO_halfword_w)
+static ADDRESS_MAP_START( warriorb_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x1fffff) AM_ROM
+ AM_RANGE(0x200000, 0x213fff) AM_RAM
+ AM_RANGE(0x300000, 0x313fff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_dual_screen_w) /* tilemaps (all screens) */
+ AM_RANGE(0x320000, 0x32000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
+ AM_RANGE(0x340000, 0x353fff) AM_READWRITE(TC0100SCN_word_1_r, TC0100SCN_word_1_w) /* tilemaps (2nd screen) */
+ AM_RANGE(0x360000, 0x36000f) AM_READWRITE(TC0100SCN_ctrl_word_1_r, TC0100SCN_ctrl_word_1_w)
+ AM_RANGE(0x400000, 0x400007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) /* palette (1st screen) */
+ AM_RANGE(0x420000, 0x420007) AM_READWRITE(TC0110PCR_word_1_r, TC0110PCR_step1_word_1_w) /* palette (2nd screen) */
+ AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x800000, 0x80000f) AM_READWRITE(TC0510NIO_halfword_r, TC0510NIO_halfword_w)
// AM_RANGE(0x820000, 0x820001) AM_WRITE(SMH_NOP) // ? uses bits 0,2,3
- AM_RANGE(0x830000, 0x830003) AM_WRITE(warriorb_sound_w)
+ AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
ADDRESS_MAP_END
-
/***************************************************************************/
-static ADDRESS_MAP_START( z80_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
- AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10)
- AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_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(0xe200, 0xe200) AM_READ(SMH_NOP)
- AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
- AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_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( z80_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x7fff) AM_READWRITE(SMH_BANK10, SMH_ROM)
+ 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(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
+ AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
AM_RANGE(0xe400, 0xe403) AM_WRITE(warriorb_pancontrol) /* pan */
+ AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
@@ -487,12 +447,12 @@ static MACHINE_DRIVER_START( darius2d )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? (Might well be 16!) */
- MDRV_CPU_PROGRAM_MAP(darius2d_readmem,darius2d_writemem)
+ MDRV_CPU_PROGRAM_MAP(darius2d_map,0)
MDRV_CPU_VBLANK_INT("left", irq4_line_hold)
- MDRV_CPU_ADD(Z80,16000000/4)
/* audio CPU */ /* 4 MHz ? */
- MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
+ MDRV_CPU_ADD(Z80,16000000/4)
+ MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
MDRV_MACHINE_START( warriorb )
MDRV_MACHINE_RESET( taito_dualscreen )
@@ -546,12 +506,12 @@ static MACHINE_DRIVER_START( warriorb )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ? */
- MDRV_CPU_PROGRAM_MAP(warriorb_readmem,warriorb_writemem)
+ MDRV_CPU_PROGRAM_MAP(warriorb_map,0)
MDRV_CPU_VBLANK_INT("left", irq4_line_hold)
- MDRV_CPU_ADD(Z80,16000000/4)
/* audio CPU */ /* 4 MHz ? */
- MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
+ MDRV_CPU_ADD(Z80,16000000/4)
+ MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
MDRV_MACHINE_START( warriorb )
MDRV_MACHINE_RESET( taito_dualscreen )
diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c
index 9721e4a43f1..562ccc4f481 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -116,43 +116,21 @@ static WRITE8_HANDLER( wc90_sound_command_w )
-static ADDRESS_MAP_START( wc90_readmem1, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_RAM) /* Main RAM */
- AM_RANGE(0xa000, 0xafff) AM_READ(SMH_RAM) /* fg video ram */
- AM_RANGE(0xb000, 0xbfff) AM_READ(SMH_RAM)
- AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM) /* bg video ram */
- AM_RANGE(0xd000, 0xdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xe000, 0xefff) AM_READ(SMH_RAM) /* tx video ram */
- AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_BANK1)
- AM_RANGE(0xf800, 0xfbff) AM_READ(wc90_shared_r)
+static ADDRESS_MAP_START( wc90_map_1, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x9fff) AM_RAM /* Main RAM */
+ AM_RANGE(0xa000, 0xafff) AM_RAM AM_WRITE(wc90_fgvideoram_w) AM_BASE(&wc90_fgvideoram) /* fg video ram */
+ AM_RANGE(0xb000, 0xbfff) AM_RAM
+ AM_RANGE(0xc000, 0xcfff) AM_RAM AM_WRITE(wc90_bgvideoram_w) AM_BASE(&wc90_bgvideoram)
+ AM_RANGE(0xd000, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xefff) AM_RAM AM_WRITE(wc90_txvideoram_w) AM_BASE(&wc90_txvideoram) /* tx video ram */
+ AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(SMH_BANK1, SMH_ROM)
+ AM_RANGE(0xf800, 0xfbff) AM_READWRITE(wc90_shared_r, wc90_shared_w) AM_BASE(&wc90_shared)
AM_RANGE(0xfc00, 0xfc00) AM_READ(input_port_0_r) /* Stick 1 */
AM_RANGE(0xfc02, 0xfc02) AM_READ(input_port_1_r) /* Stick 2 */
AM_RANGE(0xfc05, 0xfc05) AM_READ(input_port_4_r) /* Start & Coin */
AM_RANGE(0xfc06, 0xfc06) AM_READ(input_port_2_r) /* DIP Switch A */
AM_RANGE(0xfc07, 0xfc07) AM_READ(input_port_3_r) /* DIP Switch B */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( wc90_readmem2, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM)
- AM_RANGE(0xd000, 0xd7ff) AM_READ(SMH_RAM)
- AM_RANGE(0xd800, 0xdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xe000, 0xe7ff) AM_READ(SMH_RAM)
- AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_BANK2)
- AM_RANGE(0xf800, 0xfbff) AM_READ(wc90_shared_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( wc90_writemem1, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x8000, 0x9fff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xa000, 0xafff) AM_WRITE(wc90_fgvideoram_w) AM_BASE(&wc90_fgvideoram)
- AM_RANGE(0xb000, 0xbfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(wc90_bgvideoram_w) AM_BASE(&wc90_bgvideoram)
- AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xe000, 0xefff) AM_WRITE(wc90_txvideoram_w) AM_BASE(&wc90_txvideoram)
- AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xf800, 0xfbff) AM_WRITE(wc90_shared_w) AM_BASE(&wc90_shared)
AM_RANGE(0xfc02, 0xfc02) AM_WRITE(SMH_RAM) AM_BASE(&wc90_scroll0ylo)
AM_RANGE(0xfc03, 0xfc03) AM_WRITE(SMH_RAM) AM_BASE(&wc90_scroll0yhi)
AM_RANGE(0xfc06, 0xfc06) AM_WRITE(SMH_RAM) AM_BASE(&wc90_scroll0xlo)
@@ -170,38 +148,30 @@ static ADDRESS_MAP_START( wc90_writemem1, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xfce0, 0xfce0) AM_WRITE(wc90_bankswitch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wc90_writemem2, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xd000, 0xd7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0xd800, 0xdfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xe000, 0xe7ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram)
- AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xf800, 0xfbff) AM_WRITE(wc90_shared_w)
+static ADDRESS_MAP_START( wc90_map_2, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xbfff) AM_ROM
+ AM_RANGE(0xc000, 0xcfff) AM_RAM
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0xd800, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram)
+ AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(SMH_BANK2, SMH_ROM)
+ AM_RANGE(0xf800, 0xfbff) AM_READWRITE(wc90_shared_r, wc90_shared_w)
AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90_bankswitch1_w)
AM_RANGE(0xfc01, 0xfc01) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
- AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM)
- AM_RANGE(0xf800, 0xf800) AM_READ(YM2608_status_port_0_A_r)
- AM_RANGE(0xf802, 0xf802) AM_READ(YM2608_status_port_0_B_r)
- AM_RANGE(0xfc00, 0xfc00) AM_READ(SMH_NOP) /* ??? adpcm ??? */
- AM_RANGE(0xfc10, 0xfc10) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xf800, 0xf800) AM_WRITE(YM2608_control_port_0_A_w)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xbfff) AM_ROM
+ AM_RANGE(0xf000, 0xf7ff) AM_RAM
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(YM2608_status_port_0_A_r, YM2608_control_port_0_A_w)
AM_RANGE(0xf801, 0xf801) AM_WRITE(YM2608_data_port_0_A_w)
- AM_RANGE(0xf802, 0xf802) AM_WRITE(YM2608_control_port_0_B_w)
+ AM_RANGE(0xf802, 0xf802) AM_READWRITE(YM2608_status_port_0_B_r, YM2608_control_port_0_B_w)
AM_RANGE(0xf803, 0xf803) AM_WRITE(YM2608_data_port_0_B_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_READ(SMH_NOP) /* ??? adpcm ??? */
+ AM_RANGE(0xfc10, 0xfc10) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-
static INPUT_PORTS_START( wc90 )
PORT_START /* IN0 bit 0-5 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
@@ -347,17 +317,17 @@ static MACHINE_DRIVER_START( wc90 )
/* basic machine hardware */
MDRV_CPU_ADD(Z80, 6000000) /* 6.0 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(wc90_readmem1,wc90_writemem1)
+ MDRV_CPU_PROGRAM_MAP(wc90_map_1,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_CPU_ADD(Z80, 6000000) /* 6.0 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(wc90_readmem2,wc90_writemem2)
+ MDRV_CPU_PROGRAM_MAP(wc90_map_2,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
- MDRV_CPU_ADD(Z80, 4000000)
/* audio CPU */ /* 4 MHz ???? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- /* NMIs are triggered by the main CPU */
+ MDRV_CPU_ADD(Z80, 4000000)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ /* NMIs are triggered by the main CPU */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)