diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c index 6961e734b0b..d0da0453be5 100644 --- a/src/mame/drivers/taito_z.c +++ b/src/mame/drivers/taito_z.c @@ -898,19 +898,6 @@ static UINT16 eep_latch = 0; //static UINT16 *taitoz_ram; //static UINT16 *motor_ram; -static size_t taitoz_sharedram_size; -static UINT16 *taitoz_sharedram; /* read externally to draw Spacegun crosshair */ - -static READ16_HANDLER( sharedram_r ) -{ - return taitoz_sharedram[offset]; -} - -static WRITE16_HANDLER( sharedram_w ) -{ - COMBINE_DATA(&taitoz_sharedram[offset]); -} - static void parse_control(running_machine *machine) { /* bit 0 enables cpu B */ @@ -1541,473 +1528,257 @@ static MACHINE_START( taitoz ) ***********************************************************/ -static ADDRESS_MAP_START( contcirc_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x080000, 0x083fff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x084000, 0x087fff) AM_READ(sharedram_r) - AM_RANGE(0x100000, 0x100007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x200000, 0x20ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x220000, 0x22000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x300000, 0x301fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ - AM_RANGE(0x400000, 0x4006ff) AM_READ(SMH_RAM) /* spriteram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( contcirc_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x084000, 0x087fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) +static ADDRESS_MAP_START( contcirc_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x080000, 0x083fff) AM_RAM + AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE(1) AM_RANGE(0x090000, 0x090001) AM_WRITE(contcirc_out_w) /* road palette bank, sub CPU reset, 3d glasses control */ - AM_RANGE(0x100000, 0x100007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x220000, 0x22000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ - AM_RANGE(0x400000, 0x4006ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x100000, 0x100007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w) /* palette */ + AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ + AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) + AM_RANGE(0x300000, 0x301fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) /* "root ram" */ + AM_RANGE(0x400000, 0x4006ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) ADDRESS_MAP_END -static ADDRESS_MAP_START( contcirc_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x080000, 0x083fff) AM_READ(SMH_RAM) - AM_RANGE(0x084000, 0x087fff) AM_READ(sharedram_r) - AM_RANGE(0x100000, 0x100001) AM_READ(contcirc_input_bypass_r) - AM_RANGE(0x100002, 0x100003) AM_READ(TC0220IOC_halfword_port_r) /* (actually game uses TC040IOC) */ - AM_RANGE(0x200000, 0x200003) AM_READ(taitoz_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( contcirc_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x084000, 0x087fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x100000, 0x100001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x100002, 0x100003) AM_WRITE(TC0220IOC_halfword_port_w) - AM_RANGE(0x200000, 0x200003) AM_WRITE(taitoz_sound_w) +static ADDRESS_MAP_START( contcirc_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x080000, 0x083fff) AM_RAM + AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE(1) + AM_RANGE(0x100000, 0x100001) AM_READWRITE(contcirc_input_bypass_r, TC0220IOC_halfword_portreg_w) + AM_RANGE(0x100002, 0x100003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w) /* (actually game uses TC040IOC) */ + AM_RANGE(0x200000, 0x200003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( chasehq_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x107fff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) - AM_RANGE(0x10c000, 0x10ffff) AM_READ(SMH_RAM) /* extra CPUA ram */ - AM_RANGE(0x400000, 0x400001) AM_READ(chasehq_input_bypass_r) - AM_RANGE(0x400002, 0x400003) AM_READ(TC0220IOC_halfword_port_r) - AM_RANGE(0x820000, 0x820003) AM_READ(taitoz_sound_r) - AM_RANGE(0xa00000, 0xa00007) AM_READ(TC0110PCR_word_r) /* palette */ - 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, 0xd007ff) AM_READ(SMH_RAM) /* spriteram */ - AM_RANGE(0xe00000, 0xe003ff) AM_READ(chasehq_motor_r) /* motor cpu */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chasehq_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(SMH_RAM) - AM_RANGE(0x400000, 0x400001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x400002, 0x400003) AM_WRITE(TC0220IOC_halfword_port_w) +static ADDRESS_MAP_START( chasehq_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x100000, 0x107fff) AM_RAM + AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1) + AM_RANGE(0x10c000, 0x10ffff) AM_RAM + AM_RANGE(0x400000, 0x400001) AM_READWRITE(chasehq_input_bypass_r, TC0220IOC_halfword_portreg_w) + AM_RANGE(0x400002, 0x400003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w) AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x820000, 0x820003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0xa00000, 0xa00007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ - 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, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xe00000, 0xe003ff) AM_WRITE(chasehq_motor_w) /* motor cpu */ + AM_RANGE(0x820000, 0x820003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) + AM_RANGE(0xa00000, 0xa00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) /* palette */ + 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, 0xd007ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0xe00000, 0xe003ff) AM_READWRITE(chasehq_motor_r, chasehq_motor_w) /* motor cpu */ ADDRESS_MAP_END -static ADDRESS_MAP_START( chq_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) - AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) - AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chq_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) +static ADDRESS_MAP_START( chq_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x01ffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM + AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1) + AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( enforce_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x300000, 0x3006ff) AM_READ(SMH_RAM) /* spriteram */ - AM_RANGE(0x400000, 0x401fff) AM_READ(TC0150ROD_word_r) /* "root ram" ??? */ - AM_RANGE(0x500000, 0x500007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x600000, 0x60ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x620000, 0x62000f) AM_READ(TC0100SCN_ctrl_word_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( enforce_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) +static ADDRESS_MAP_START( enforce_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM + AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w) // works without? - AM_RANGE(0x300000, 0x3006ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" ??? */ - AM_RANGE(0x500000, 0x500007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x620000, 0x62000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) + AM_RANGE(0x300000, 0x3006ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x400000, 0x401fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) /* "root ram" ??? */ + AM_RANGE(0x500000, 0x500007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w) /* palette */ + AM_RANGE(0x600000, 0x60ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ + AM_RANGE(0x620000, 0x62000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( enforce_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x200000, 0x200003) AM_READ(taitoz_sound_r) - AM_RANGE(0x300000, 0x300001) AM_READ(TC0220IOC_halfword_portreg_r) - AM_RANGE(0x300002, 0x300003) AM_READ(TC0220IOC_halfword_port_r) /* (actually game uses TC040IOC ?) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( enforce_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x200000, 0x200003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0x300000, 0x300001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x300002, 0x300003) AM_WRITE(TC0220IOC_halfword_port_w) +static ADDRESS_MAP_START( enforce_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM + AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) + AM_RANGE(0x200000, 0x200003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) + AM_RANGE(0x300000, 0x300001) AM_READWRITE(TC0220IOC_halfword_portreg_r, TC0220IOC_halfword_portreg_w) + AM_RANGE(0x300002, 0x300003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( bshark_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x800000, 0x800007) AM_READ(bshark_stick_r) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(SMH_RAM) /* palette */ - AM_RANGE(0xc00000, 0xc00fff) AM_READ(SMH_RAM) /* spriteram */ - 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( bshark_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) - AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w) +static ADDRESS_MAP_START( bshark_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x100000, 0x10ffff) AM_RAM + AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1) + AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_noz80_ctrl_w) - AM_RANGE(0x800000, 0x800007) AM_WRITE(bshark_stick_w) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xc00000, 0xc00fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xd00000, 0xd0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xd20000, 0xd2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) + AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w) + AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) + AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + 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( bshark_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x108000, 0x10bfff) AM_READ(SMH_RAM) - AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) -// AM_RANGE(0x40000a, 0x40000b) AM_READ(taitoz_unknown_r) // ??? - AM_RANGE(0x600000, 0x600007) AM_DEVREAD8("ym", ym2610_r, 0x00ff) - AM_RANGE(0x60000c, 0x60000d) AM_READNOP - AM_RANGE(0x60000e, 0x60000f) AM_READNOP - AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bshark_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x108000, 0x10bfff) AM_WRITE(SMH_RAM) - AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) +static ADDRESS_MAP_START( bshark_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x108000, 0x10bfff) AM_RAM + AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1) AM_RANGE(0x400000, 0x400007) AM_WRITE(spacegun_pancontrol) /* pan */ - AM_RANGE(0x600000, 0x600007) AM_DEVWRITE8("ym", ym2610_w, 0x00ff) - AM_RANGE(0x60000c, 0x60000d) AM_WRITENOP // interrupt controller? - AM_RANGE(0x60000e, 0x60000f) AM_WRITENOP - AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ +// AM_RANGE(0x40000a, 0x40000b) AM_READ(taitoz_unknown_r) // ??? + AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8("ym", ym2610_r, ym2610_w, 0x00ff) + AM_RANGE(0x60000c, 0x60000d) AM_NOP // interrupt controller? + AM_RANGE(0x60000e, 0x60000f) AM_NOP + AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) /* "root ram" */ ADDRESS_MAP_END -static ADDRESS_MAP_START( sci_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x107fff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) /* extent ?? */ - AM_RANGE(0x10c000, 0x10ffff) AM_READ(SMH_RAM) /* extra CPUA ram */ - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) +static ADDRESS_MAP_START( sci_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x100000, 0x107fff) AM_RAM + AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1) + AM_RANGE(0x10c000, 0x10ffff) AM_RAM + AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) AM_RANGE(0x200010, 0x20001f) AM_READ(sci_steer_input_r) - AM_RANGE(0x420000, 0x420003) AM_READ(taitoz_sound_r) - AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM) - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xa20000, 0xa2000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM) /* spriteram */ // Raine draws only 0x1000 - AM_RANGE(0xc08000, 0xc08001) AM_READ(sci_spriteframe_r) // debugging -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sci_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(SMH_RAM) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) // AM_RANGE(0x400000, 0x400001) AM_WRITE(cpua_ctrl_w) // ?? doesn't seem to fit what's written - AM_RANGE(0x420000, 0x420003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xa20000, 0xa2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xc08000, 0xc08001) AM_WRITE(sci_spriteframe_w) + AM_RANGE(0x420000, 0x420003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) + AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) + AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ + AM_RANGE(0xa20000, 0xa2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) + AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0xc08000, 0xc08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( sci_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) - AM_RANGE(0x200000, 0x203fff) AM_READ(SMH_RAM) - AM_RANGE(0x208000, 0x20bfff) AM_READ(sharedram_r) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0150ROD_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sci_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x208000, 0x20bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0150ROD_word_w) +static ADDRESS_MAP_START( sci_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x01ffff) AM_ROM + AM_RANGE(0x200000, 0x203fff) AM_RAM + AM_RANGE(0x208000, 0x20bfff) AM_RAM AM_SHARE(1) + AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( nightstr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x820000, 0x820003) AM_READ(taitoz_sound_r) - AM_RANGE(0xa00000, 0xa00007) AM_READ(TC0110PCR_word_r) /* palette */ - 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, 0xd007ff) AM_READ(SMH_RAM) /* spriteram */ - AM_RANGE(0xe40000, 0xe40007) AM_READ(nightstr_stick_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nightstr_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) - AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w) +static ADDRESS_MAP_START( nightstr_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x100000, 0x10ffff) AM_RAM + AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1) + AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x820000, 0x820003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0xa00000, 0xa00007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ - 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, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x820000, 0x820003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) + AM_RANGE(0xa00000, 0xa00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) /* palette */ + 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, 0xd007ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP /* ??? */ // AM_RANGE(0xe00008, 0xe00009) AM_WRITENOP /* ??? */ // AM_RANGE(0xe00010, 0xe00011) AM_WRITENOP /* ??? */ - AM_RANGE(0xe40000, 0xe40007) AM_WRITE(bshark_stick_w) + AM_RANGE(0xe40000, 0xe40007) AM_READWRITE(nightstr_stick_r, bshark_stick_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( nightstr_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nightstr_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ +static ADDRESS_MAP_START( nightstr_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM + AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) + AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) /* "root ram" */ ADDRESS_MAP_END -static ADDRESS_MAP_START( aquajack_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x300000, 0x300007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* (like Contcirc, uses CPUA for road) */ - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xa20000, 0xa2000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xc40000, 0xc403ff) AM_READ(SMH_RAM) /* spriteram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( aquajack_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) +static ADDRESS_MAP_START( aquajack_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM + AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w) // not needed, but it's probably like the others - AM_RANGE(0x300000, 0x300007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ - AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xa20000, 0xa2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xc40000, 0xc403ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x300000, 0x300007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) /* palette */ + AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) + AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ + AM_RANGE(0xa20000, 0xa2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) + AM_RANGE(0xc40000, 0xc403ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) ADDRESS_MAP_END -static ADDRESS_MAP_START( aquajack_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x300000, 0x300003) AM_READ(taitoz_sound_r) +static ADDRESS_MAP_START( aquajack_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM + AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) + AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) + AM_RANGE(0x300000, 0x300003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) AM_RANGE(0x800800, 0x80083f) AM_READ(aquajack_unknown_r) // Read regularly after write to 800800... -// AM_RANGE(0x900000, 0x900007) AM_READ(taitoz_unknown_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( aquajack_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) - AM_RANGE(0x300000, 0x300003) AM_WRITE(taitoz_sound_w) // AM_RANGE(0x800800, 0x800801) AM_WRITE(taitoz_unknown_w) -// AM_RANGE(0x900000, 0x900007) AM_WRITE(taitoz_unknown_w) +// AM_RANGE(0x900000, 0x900007) AM_READWRITE(taitoz_unknown_r, taitoz_unknown_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( spacegun_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x30c000, 0x30ffff) AM_READ(SMH_RAM) /* local CPUA ram */ - AM_RANGE(0x310000, 0x31ffff) AM_READ(sharedram_r) /* extent correct acc. to CPUB inits */ - AM_RANGE(0x500000, 0x5005ff) AM_READ(SMH_RAM) /* spriteram */ - AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xb00000, 0xb00007) AM_READ(TC0110PCR_word_r) /* palette */ +static ADDRESS_MAP_START( spacegun_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x30c000, 0x30ffff) AM_RAM + AM_RANGE(0x310000, 0x31ffff) AM_RAM AM_SHARE(1) + AM_RANGE(0x500000, 0x5005ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ + AM_RANGE(0x920000, 0x92000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) + AM_RANGE(0xb00000, 0xb00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w) /* palette */ ADDRESS_MAP_END -static ADDRESS_MAP_START( spacegun_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x30c000, 0x30ffff) AM_WRITE(SMH_RAM) - AM_RANGE(0x310000, 0x31ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x500000, 0x5005ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xb00000, 0xb00007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacegun_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x20c000, 0x20ffff) AM_READ(SMH_RAM) /* local CPUB ram */ - AM_RANGE(0x210000, 0x21ffff) AM_READ(sharedram_r) - AM_RANGE(0x800000, 0x80000f) AM_READ(spacegun_input_bypass_r) - AM_RANGE(0xc00000, 0xc00007) AM_DEVREAD8("ym", ym2610_r, 0x00ff) - AM_RANGE(0xc0000c, 0xc0000d) AM_READNOP - AM_RANGE(0xc0000e, 0xc0000f) AM_READNOP - AM_RANGE(0xf00000, 0xf00007) AM_READ(spacegun_lightgun_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacegun_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x20c000, 0x20ffff) AM_WRITE(SMH_RAM) - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(sharedram_w) - AM_RANGE(0x800000, 0x80000f) AM_WRITE(spacegun_output_bypass_w) - AM_RANGE(0xc00000, 0xc00007) AM_DEVWRITE8("ym", ym2610_w, 0x00ff) - AM_RANGE(0xc0000c, 0xc0000d) AM_WRITENOP // interrupt controller? - AM_RANGE(0xc0000e, 0xc0000f) AM_WRITENOP +static ADDRESS_MAP_START( spacegun_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x20c000, 0x20ffff) AM_RAM + AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE(1) + AM_RANGE(0x800000, 0x80000f) AM_READWRITE(spacegun_input_bypass_r, spacegun_output_bypass_w) + AM_RANGE(0xc00000, 0xc00007) AM_DEVREADWRITE8("ym", ym2610_r, ym2610_w, 0x00ff) + AM_RANGE(0xc0000c, 0xc0000d) AM_NOP // interrupt controller? + AM_RANGE(0xc0000e, 0xc0000f) AM_NOP AM_RANGE(0xc20000, 0xc20007) AM_WRITE(spacegun_pancontrol) /* pan */ // AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP /* ??? */ - AM_RANGE(0xf00000, 0xf00007) AM_WRITE(spacegun_lightgun_w) + AM_RANGE(0xf00000, 0xf00007) AM_READWRITE(spacegun_lightgun_r, spacegun_lightgun_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( dblaxle_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x200000, 0x203fff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x210000, 0x21ffff) AM_READ(sharedram_r) - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0510NIO_halfword_wordswap_r) +static ADDRESS_MAP_START( dblaxle_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x200000, 0x203fff) AM_RAM + AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE(1) + AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0510NIO_halfword_wordswap_r, TC0510NIO_halfword_wordswap_w) AM_RANGE(0x400010, 0x40001f) AM_READ(dblaxle_steer_input_r) - AM_RANGE(0x620000, 0x620003) AM_READ(taitoz_sound_r) - AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM) /* palette */ - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0xa30000, 0xa3002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM) /* spriteram */ - AM_RANGE(0xc08000, 0xc08001) AM_READ(sci_spriteframe_r) // debugging -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dblaxle_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w) /* could this be causing int6 ? */ - AM_RANGE(0x620000, 0x620003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0480SCP_word_w) /* tilemap mirror */ - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ - AM_RANGE(0xa30000, 0xa3002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ - AM_RANGE(0xc08000, 0xc08001) AM_WRITE(sci_spriteframe_w) /* set in int6, seems to stay zero */ + AM_RANGE(0x620000, 0x620003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) + AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w) /* tilemap mirror */ + AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w) /* tilemaps */ + AM_RANGE(0xa30000, 0xa3002f) AM_READWRITE(TC0480SCP_ctrl_word_r, TC0480SCP_ctrl_word_w) + AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ + AM_RANGE(0xc08000, 0xc08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w) /* set in int6, seems to stay zero */ ADDRESS_MAP_END -static ADDRESS_MAP_START( dblaxle_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) - AM_RANGE(0x110000, 0x11ffff) AM_READ(sharedram_r) - AM_RANGE(0x300000, 0x301fff) AM_READ(TC0150ROD_word_r) - AM_RANGE(0x500000, 0x503fff) AM_READ(SMH_RAM) /* network ram ? (see Gunbustr) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dblaxle_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x110000, 0x11ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(TC0150ROD_word_w) - AM_RANGE(0x500000, 0x503fff) AM_WRITE(SMH_RAM) /* network ram ? (see Gunbustr) */ +static ADDRESS_MAP_START( dblaxle_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM + AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE(1) + AM_RANGE(0x300000, 0x301fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) + AM_RANGE(0x500000, 0x503fff) AM_RAM /* network ram ? (see Gunbustr) */ ADDRESS_MAP_END -static ADDRESS_MAP_START( racingb_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) /* main CPUA ram */ - AM_RANGE(0x110000, 0x11ffff) AM_READ(sharedram_r) - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_wordswap_r) +static ADDRESS_MAP_START( racingb_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM + AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE(1) + AM_RANGE(0x300000, 0x30000f) AM_READWRITE(TC0510NIO_halfword_wordswap_r, TC0510NIO_halfword_wordswap_w) AM_RANGE(0x300010, 0x30001f) AM_READ(dblaxle_steer_input_r) - AM_RANGE(0x520000, 0x520003) AM_READ(taitoz_sound_r) - AM_RANGE(0x700000, 0x701fff) AM_READ(SMH_RAM) /* palette */ - AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0x930000, 0x93002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM) /* spriteram */ - AM_RANGE(0xb08000, 0xb08001) AM_READ(sci_spriteframe_r) // debugging -ADDRESS_MAP_END - -static ADDRESS_MAP_START( racingb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x110000, 0x11ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) AM_RANGE(0x500002, 0x500003) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x520000, 0x520003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ - AM_RANGE(0x930000, 0x93002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ - AM_RANGE(0xb08000, 0xb08001) AM_WRITE(sci_spriteframe_w) /* alternates 0/0x100 */ + AM_RANGE(0x520000, 0x520003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) + AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w) /* tilemaps */ + AM_RANGE(0x930000, 0x93002f) AM_READWRITE(TC0480SCP_ctrl_word_r, TC0480SCP_ctrl_word_w) + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ + AM_RANGE(0xb08000, 0xb08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w) /* alternates 0/0x100 */ ADDRESS_MAP_END -static ADDRESS_MAP_START( racingb_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x403fff) AM_READ(SMH_RAM) - AM_RANGE(0x410000, 0x41ffff) AM_READ(sharedram_r) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0150ROD_word_r) - AM_RANGE(0xd00000, 0xd03fff) AM_READ(SMH_RAM) /* network ram ? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( racingb_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x403fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x410000, 0x41ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0150ROD_word_w) - AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(SMH_RAM) /* network ram ? */ +static ADDRESS_MAP_START( racingb_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x400000, 0x403fff) AM_RAM + AM_RANGE(0x410000, 0x41ffff) AM_RAM AM_SHARE(1) + AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) + AM_RANGE(0xd00000, 0xd03fff) AM_RAM /* network ram ? */ 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, 0xe003) AM_DEVREAD("ym", ym2610_r) - AM_RANGE(0xe200, 0xe200) AM_READNOP - AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) - AM_RANGE(0xea00, 0xea00) AM_READNOP -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, 0xe003) AM_DEVWRITE("ym", ym2610_w) - AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) +static ADDRESS_MAP_START( z80_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(10) + AM_RANGE(0xc000, 0xdfff) AM_RAM + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w) + AM_RANGE(0xe200, 0xe200) AM_READNOP AM_WRITE(taitosound_slave_port_w) + AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITE(taitoz_pancontrol) /* pan */ + AM_RANGE(0xea00, 0xea00) AM_READNOP AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) @@ -3128,14 +2899,14 @@ static MACHINE_DRIVER_START( contcirc ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(contcirc_readmem,contcirc_writemem) + MDRV_CPU_PROGRAM_MAP(contcirc_map,0) MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) + MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(contcirc_cpub_readmem,contcirc_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(contcirc_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) MDRV_MACHINE_START(taitoz) @@ -3184,14 +2955,14 @@ static MACHINE_DRIVER_START( chasehq ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(chasehq_readmem,chasehq_writemem) + MDRV_CPU_PROGRAM_MAP(chasehq_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) + MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(chq_cpub_readmem,chq_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(chq_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_MACHINE_START(taitoz) @@ -3238,14 +3009,14 @@ static MACHINE_DRIVER_START( enforce ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(enforce_readmem,enforce_writemem) + MDRV_CPU_PROGRAM_MAP(enforce_map,0) MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) + MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(enforce_cpub_readmem,enforce_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(enforce_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) MDRV_MACHINE_START(taitoz) @@ -3295,11 +3066,11 @@ static MACHINE_DRIVER_START( bshark ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(bshark_readmem,bshark_writemem) + MDRV_CPU_PROGRAM_MAP(bshark_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(bshark_cpub_readmem,bshark_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(bshark_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_MACHINE_START(taitoz) @@ -3347,14 +3118,14 @@ static MACHINE_DRIVER_START( sci ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(sci_readmem,sci_writemem) + MDRV_CPU_PROGRAM_MAP(sci_map,0) MDRV_CPU_VBLANK_INT("screen", sci_interrupt) MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) + MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(sci_cpub_readmem,sci_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(sci_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_MACHINE_START(taitoz) @@ -3402,14 +3173,14 @@ static MACHINE_DRIVER_START( nightstr ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(nightstr_readmem,nightstr_writemem) + MDRV_CPU_PROGRAM_MAP(nightstr_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) + MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(nightstr_cpub_readmem,nightstr_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(nightstr_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_MACHINE_START(taitoz) @@ -3458,14 +3229,14 @@ static MACHINE_DRIVER_START( aquajack ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(aquajack_readmem,aquajack_writemem) + MDRV_CPU_PROGRAM_MAP(aquajack_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) + MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(aquajack_cpub_readmem,aquajack_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(aquajack_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_MACHINE_START(taitoz) @@ -3513,11 +3284,11 @@ static MACHINE_DRIVER_START( spacegun ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(spacegun_readmem,spacegun_writemem) + MDRV_CPU_PROGRAM_MAP(spacegun_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_CPU_ADD("sub", M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(spacegun_cpub_readmem,spacegun_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(spacegun_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_MACHINE_START(taitoz) @@ -3565,14 +3336,14 @@ static MACHINE_DRIVER_START( dblaxle ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(dblaxle_readmem,dblaxle_writemem) + MDRV_CPU_PROGRAM_MAP(dblaxle_map,0) MDRV_CPU_VBLANK_INT("screen", dblaxle_interrupt) MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) + MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) MDRV_CPU_ADD("sub", M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(dblaxle_cpub_readmem,dblaxle_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(dblaxle_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", dblaxle_cpub_interrupt) MDRV_MACHINE_START(taitoz) @@ -3620,14 +3391,14 @@ static MACHINE_DRIVER_START( racingb ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(racingb_readmem,racingb_writemem) + MDRV_CPU_PROGRAM_MAP(racingb_map,0) MDRV_CPU_VBLANK_INT("screen", dblaxle_interrupt) MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) + MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) MDRV_CPU_ADD("sub", M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(racingb_cpub_readmem,racingb_cpub_writemem) + MDRV_CPU_PROGRAM_MAP(racingb_cpub_map,0) MDRV_CPU_VBLANK_INT("screen", dblaxle_cpub_interrupt) MDRV_MACHINE_START(taitoz)