diff options
Diffstat (limited to 'src/mame/drivers/warriorb.c')
-rw-r--r-- | src/mame/drivers/warriorb.c | 122 |
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 ) |