summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/warriorb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/warriorb.c')
-rw-r--r--src/mame/drivers/warriorb.c122
1 files changed, 41 insertions, 81 deletions
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 )