static WRITE8_HANDLER( sound_command_w ) { soundlatch_w(0,data); timer_set(TIME_NOW,data,nmi_callback); }
static void sound_w( int offset, int data ){ soundlatch_w(offset,data); cpu_cause_interrupt(1,M6809_INT_IRQ); }
static WRITE16_HANDLER( sound_w ) { supbtime_state *state = space->machine().driver_data<supbtime_state>(); soundlatch_w(space, 0, data & 0xff); device_set_input_line(state->m_audiocpu, 0, HOLD_LINE); }
static WRITE8_HANDLER( tbowl_sound_command_w ) { soundlatch_w(offset,data); cpunum_set_input_line(2,INPUT_LINE_NMI,PULSE_LINE); }
static WRITE8_HANDLER( soundcommand_w ) { soundlatch_w(space, 0, data); cputag_set_input_line(space->machine, "audiocpu", 0, HOLD_LINE); }
static WRITE16_HANDLER( powerins_soundlatch_w ) { if (ACCESSING_BITS_0_7) soundlatch_w(space, 0, data & 0xff); }
static WRITE16_HANDLER( lastduel_sound_w ) { if (ACCESSING_LSB) soundlatch_w(0,data & 0xff); }
static WRITE8_HANDLER( galivan_sound_command_w ) { soundlatch_w(offset,(data << 1) | 1); }
static WRITE_HANDLER( sauro_sound_command_w ) { data |= 0x80; soundlatch_w(offset,data); }
static WRITE_HANDLER( lasso_sound_command_w ) { soundlatch_w(offset,data); cpu_cause_interrupt( 2, Z80_IRQ_INT ); /* ? */ }
static WRITE_HANDLER( sound_command_w ) { soundlatch_w(offset,data); cpu_set_irq_line(1,M6809_IRQ_LINE,HOLD_LINE); }
static WRITE8_HANDLER( wc90_sound_command_w ) { soundlatch_w(space, offset, data); cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE); }
static WRITE8_HANDLER( solomon_sh_command_w ) { soundlatch_w(offset,data); cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); }
static WRITE_HANDLER( snowbros_68000_sound_w ) { soundlatch_w(offset,data); cpu_cause_interrupt(1,Z80_NMI_INT); }
static WRITE8_HANDLER(snd_w) { dacholer_state *state = (dacholer_state *)space->machine->driver_data; soundlatch_w(space, offset, data); cpu_set_input_line(state->audiocpu, INPUT_LINE_NMI, PULSE_LINE); }
static WRITE_HANDLER( cpu_sound_command_w ) { soundlatch_w(offset,data); }
static WRITE8_HANDLER( sound_command_w ) { soundlatch_w(space, 0, data); timer_call_after_resynch(space->machine, NULL, data, nmi_callback); }
static WRITE_HANDLER( sound_cpu_command_w ) { soundlatch_w(0,data); cpu_cause_interrupt(1,M6809_INT_NMI); }
static WRITE8_HANDLER( xain_sound_command_w ) { soundlatch_w(offset,data); cpunum_set_input_line(2,M6809_IRQ_LINE,HOLD_LINE); }
void cop01_sound_command_w(int offset,int data) { soundlatch_w(offset,data); cpu_cause_interrupt(1,0xff); }
static WRITE8_HANDLER( tryout_sound_w ) { soundlatch_w(0,data); cpunum_set_input_line( 1, 0, PULSE_LINE ); }
static WRITE8_HANDLER( crimfght_sh_irqtrigger_w ) { crimfght_state *state = space->machine().driver_data<crimfght_state>(); soundlatch_w(space, offset, data); device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff); }
static WRITE16_HANDLER( semicom_soundcmd_w ) { if (ACCESSING_LSB) soundlatch_w(0,data & 0xff); }
static WRITE8_HANDLER( cop01_sound_command_w ) { soundlatch_w(space,offset,data); cputag_set_input_line_and_vector(space->machine, "audiocpu", 0, HOLD_LINE, 0xff); }
static WRITE_HANDLER( sound_w ){ soundlatch_w(offset,data); cpu_cause_interrupt(1,M6809_INT_IRQ); }
static WRITE8_HANDLER( sound_command_w ) { soundlatch_w( machine, 0, data ); cpunum_set_input_line_and_vector(machine, 3, 0, HOLD_LINE, 0xff ); }
static WRITE8_HANDLER( sound_command_w ) { sound_cpu_busy = snk_sound_busy_bit; soundlatch_w(0, data); cpunum_set_input_line(2, 0, HOLD_LINE); }
static WRITE8_HANDLER( sound_w ) { soundlatch_w(offset,data); cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); }
static WRITE16_HANDLER( m107_soundlatch_w ) { space->machine().scheduler().synchronize(FUNC(setvector_callback), V30_ASSERT); soundlatch_w(space, 0, data & 0xff); // logerror("soundlatch_w %02x\n",data); }
static WRITE16_HANDLER( dblewing_prot_w ) { dblewing_state *state = space->machine().driver_data<dblewing_state>(); // if (offset * 2 != 0x380) // printf("dblewing prot w %08x, %04x, %04x %04x\n", cpu_get_pc(&space->device()), offset * 2, mem_mask, data); switch (offset * 2) { case 0x088: state->m_088_data = data; if(state->m_088_data == 0) { state->m_boss_4_data = 0; } else if(state->m_088_data & 0x8000) { state->m_boss_4_data = 0x50; } else { state->m_boss_4_data = 0x40; } return; case 0x104: state->m_104_data = data; return; // p1 inputs select screen OK case 0x18a: state->m_18a_data = data; switch (state->m_18a_data) { case 0x6b94: state->m_boss_5_data = 0x10; break; //initialize case 0x7c68: state->m_boss_5_data = 0x60; break; //go up case 0xfb1d: state->m_boss_5_data = 0x50; break; case 0x977c: state->m_boss_5_data = 0x50; break; case 0x8a49: state->m_boss_5_data = 0x60; break; } return; case 0x200: state->m_200_data = data; switch (state->m_200_data) { case 0x5a19: state->m_boss_move = 1; break; case 0x3b28: state->m_boss_move = 2; break; case 0x1d4d: state->m_boss_move = 1; break; } //popmessage("%04x",state->m_200_data); return; case 0x280: state->m_280_data = data; switch (state->m_280_data) { case 0x6b94: state->m_boss_5sx_data = 0x10; break; case 0x7519: state->m_boss_5sx_data = 0x60; break; case 0xfc68: state->m_boss_5sx_data = 0x50; break; case 0x02dd: state->m_boss_5sx_data = 0x50; break; case 0x613c: state->m_boss_5sx_data = 0x50; break; } //printf("%04x\n",state->m_280_data); return; case 0x380: // sound write soundlatch_w(space, 0, data & 0xff); state->m_sound_irq |= 0x02; device_set_input_line(state->m_audiocpu, 0, (state->m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); return; case 0x384: state->m_384_data = data; switch(state->m_384_data) { case 0xaa41: state->m_boss_6_data = 1; break; case 0x5a97: state->m_boss_6_data = 2; break; case 0xbac5: state->m_boss_6_data = 3; break; case 0x0afb: state->m_boss_6_data = 4; break; case 0x6a99: state->m_boss_6_data = 5; break; case 0xda8f: state->m_boss_6_data = 6; break; } return; case 0x38e: state->m_38e_data = data; switch(state->m_38e_data) { case 0x6c13: state->m_boss_shoot_type = 3; break; case 0xc311: state->m_boss_shoot_type = 0; break; case 0x1593: state->m_boss_shoot_type = 1; break; case 0xf9db: state->m_boss_shoot_type = 2; break; case 0xf742: state->m_boss_shoot_type = 3; break; case 0xeff5: state->m_boss_move = 1; break; case 0xd2f1: state->m_boss_move = 2; break; //default: printf("%04x\n",state->m_38e_data); break; //case 0xe65a: state->m_boss_shoot_type = 0; break; } return; case 0x58c: // 3rd player 1st level state->m_58c_data = data; if(state->m_58c_data == 0) { state->m_boss_move = 5; } else { state->m_boss_move = 2; } return; case 0x60a: state->m_60a_data = data; if(state->m_60a_data & 0x8000) { state->m_boss_3_data = 2; } else { state->m_boss_3_data = 9; } return; case 0x580: state->m_580_data = data; return; case 0x406: state->m_406_data = data; return; // p2 inputs select screen OK } // printf("dblewing prot w %08x, %04x, %04x %04x\n", cpu_get_pc(&space->device()), offset * 2, mem_mask, data); if ((offset * 2) == 0x008) { state->m_008_data = data; return; } if ((offset * 2) == 0x080) { state->m_080_data = data; return; } // p3 3rd boss? if ((offset * 2) == 0x28c) { state->m_28c_data = data; return; } if ((offset * 2) == 0x408) { state->m_408_data = data; return; } // 3rd player 1st level? if ((offset * 2) == 0x40e) { state->m_40e_data = data; return; } // 3rd player 2nd level? if ((offset * 2) == 0x608) { state->m_608_data = data; return; } if ((offset * 2) == 0x70c) { state->m_70c_data = data; return; } if ((offset * 2) == 0x78a) { state->m_78a_data = data; return; } if ((offset * 2) == 0x788) { state->m_788_data = data; return; } }