static WRITE8_HANDLER( gaplus_irq_3_ctrl_w ) { int bit = !BIT(offset, 13); cpu_interrupt_enable(space->machine->device("sub2"), bit); if (!bit) cputag_set_input_line(space->machine, "sub2", 0, CLEAR_LINE); }
static WRITE8_HANDLER( pacland_irq_2_ctrl_w ) { int bit = !BIT(offset, 13); cpu_interrupt_enable(space->machine->device("mcu"), bit); if (!bit) cputag_set_input_line(space->machine, "mcu", 0, CLEAR_LINE); }
static WRITE8_HANDLER( pacland_irq_1_ctrl_w ) { int bit = !BIT(offset, 11); cpu_interrupt_enable(cputag_get_cpu(space->machine, "maincpu"), bit); if (!bit) cputag_set_input_line(space->machine, "maincpu", 0, CLEAR_LINE); }
static WRITE8_HANDLER( gaplus_irq_1_ctrl_w ) { int bit = !BIT(offset, 11); cpu_interrupt_enable(space->machine().device("maincpu"), bit); if (!bit) cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE); }
static WRITE8_HANDLER( pacland_irq_2_ctrl_w ) { int bit = !BIT(offset,13); cpu_interrupt_enable(1,bit); if (!bit) cpunum_set_input_line(1, 0, CLEAR_LINE); }
static WRITE8_HANDLER( warpwarp_out3_w ) { switch (offset & 7) { case 0: set_led_status(0,data & 1); break; case 1: set_led_status(1,data & 1); break; case 2: set_led_status(2,data & 1); break; case 3: /* n.c. */ break; case 4: coin_lockout_global_w(~data & 1); break; case 5: coin_counter_w(0,data & 1); break; case 6: warpwarp_ball_on = data & 1; cpu_interrupt_enable(0,data & 1); if (~data & 1) cpunum_set_input_line(0, 0, CLEAR_LINE); break; case 7: flip_screen_set(data & 1); break; } }
static WRITE8_HANDLER( gaplus_irq_2_ctrl_w ) { int bit = offset & 1; cpu_interrupt_enable(space->machine().device("sub"), bit); if (!bit) cputag_set_input_line(space->machine(), "sub", 0, CLEAR_LINE); }
static WRITE8_HANDLER( port_sound_w ) { running_device *discrete = space->machine->device("discrete"); running_device *sn = space->machine->device("snsnd"); /* D0 - interrupt enable - also goes to PC3259 as /HTCTRL */ cpu_interrupt_enable(space->machine->device("maincpu"), (data & 0x01) ? TRUE : FALSE); crbaloon_set_clear_collision_address((data & 0x01) ? TRUE : FALSE); /* D1 - SOUND STOP */ sound_global_enable(space->machine, (data & 0x02) ? TRUE : FALSE); /* D2 - unlabeled - music enable */ crbaloon_audio_set_music_enable(discrete, 0, (data & 0x04) ? TRUE : FALSE); /* D3 - EXPLOSION */ crbaloon_audio_set_explosion_enable(sn, (data & 0x08) ? TRUE : FALSE); /* D4 - BREATH */ crbaloon_audio_set_breath_enable(sn, (data & 0x10) ? TRUE : FALSE); /* D5 - APPEAR */ crbaloon_audio_set_appear_enable(sn, (data & 0x20) ? TRUE : FALSE); /* D6 - unlabeled - laugh enable */ crbaloon_audio_set_laugh_enable(discrete, 0, (data & 0x40) ? TRUE : FALSE); /* D7 - unlabeled - goes to PC3259 pin 16 */ pc3259_update(); }
static WRITE8_HANDLER( warpwarp_out3_w ) { switch (offset & 7) { case 0: set_led_status(space->machine, 0,data & 1); break; case 1: set_led_status(space->machine, 1,data & 1); break; case 2: set_led_status(space->machine, 2,data & 1); break; case 3: /* n.c. */ break; case 4: coin_lockout_global_w(space->machine, ~data & 1); break; case 5: coin_counter_w(space->machine, 0,data & 1); break; case 6: warpwarp_ball_on = data & 1; cpu_interrupt_enable(space->machine->device("maincpu"), data & 1); if (~data & 1) cputag_set_input_line(space->machine, "maincpu", 0, CLEAR_LINE); break; case 7: flip_screen_set(space->machine, data & 1); break; } }
static WRITE8_HANDLER( irq1_ack_w ) { int bit = data & 1; cpu_interrupt_enable(space->machine->device("sub"), bit); if (!bit) cputag_set_input_line(space->machine, "sub", 0, CLEAR_LINE); }
static WRITE8_HANDLER( brkthru_1803_w ) { brkthru_state *state = space->machine().driver_data<brkthru_state>(); /* bit 0 = NMI enable */ cpu_interrupt_enable(state->m_maincpu, ~data & 1); /* bit 1 = ? maybe IRQ acknowledge */ }
static WRITE8_HANDLER( irq0_ack_w ) { int bit = data & 1; cpu_interrupt_enable(0,bit); if (!bit) cpunum_set_input_line(0, 0, CLEAR_LINE); }
static WRITE8_HANDLER( irq0_ack_w ) { int bit = data & 1; cpu_interrupt_enable(cputag_get_cpu(space->machine, "maincpu"), bit); if (!bit) cputag_set_input_line(space->machine, "maincpu", 0, CLEAR_LINE); }
static WRITE8_HANDLER( darwin_0803_w ) { brkthru_state *state = space->machine().driver_data<brkthru_state>(); /* bit 0 = NMI enable */ /*cpu_interrupt_enable(state->m_audiocpu, ~data & 1);*/ logerror("0803 %02X\n",data); cpu_interrupt_enable(state->m_maincpu, data & 1); /* bit 1 = ? maybe IRQ acknowledge */ }
static WRITE8_HANDLER( irqack_w ) { _20pacgal_state *state = space->machine().driver_data<_20pacgal_state>(); int bit = data & 1; cpu_interrupt_enable(state->m_maincpu, bit); if (!bit) device_set_input_line(state->m_maincpu, 0, CLEAR_LINE); }
static WRITE8_DEVICE_HANDLER( friskyt_portB_w ) { //logerror("PC %04x: 8910 port B = %02x\n",cpu_get_pc(space->cpu),data); /* bit 0 is IRQ enable */ cpu_interrupt_enable(cputag_get_cpu(device->machine, "maincpu"), data & 1); /* bit 1 flips screen */ /* bit 2 resets the microcontroller */ if (((portb & 4) == 0) && (data & 4)) { /* reset and start the protection mcu */ cputag_set_input_line(device->machine, "mcu", INPUT_LINE_RESET, PULSE_LINE); cputag_set_input_line(device->machine, "mcu", INPUT_LINE_HALT, CLEAR_LINE); } /* other bits unknown */ portb = data; }
static MACHINE_RESET( gaplus ) { /* on reset, VINTON is reset, while the other flags don't seem to be affected */ cpu_interrupt_enable(machine.device("sub"), 0); cputag_set_input_line(machine, "sub", 0, CLEAR_LINE); }
static TIMER_CALLBACK( interrupt_disable ) { zodiack_state *state = machine->driver_data<zodiack_state>(); //interrupt_enable = 0; cpu_interrupt_enable(state->maincpu, 0); }
static TIMER_CALLBACK( interrupt_disable ) { espial_state *state = machine.driver_data<espial_state>(); //interrupt_enable = 0; cpu_interrupt_enable(state->m_maincpu, 0); }
static TIMER_CALLBACK( interrupt_disable ) { //interrupt_enable = 0; cpu_interrupt_enable(0,0); }
static void interrupt_disable(int param) { /*interrupt_enable = 0; */ cpu_interrupt_enable(0,0); }