allow generic_pulse_irq_line to be longer than 1 cycle.

message to messdev: just change all callers:
generic_pulse_irq_line(x, y);
to
generic_pulse_irq_line(x, y, 1);
This commit is contained in:
Michaël Banaan Ananas 2012-02-11 10:01:01 +00:00
parent b1aa1cedf7
commit 495fe2b927
39 changed files with 65 additions and 65 deletions

View File

@ -583,17 +583,17 @@ static TIMER_CALLBACK( irq_pulse_clear )
/*------------------------------------------------- /*-------------------------------------------------
generic_pulse_irq_line - "pulse" an IRQ line by generic_pulse_irq_line - "pulse" an IRQ line by
asserting it and then clearing it 1 cycle asserting it and then clearing it x cycle(s)
later later
-------------------------------------------------*/ -------------------------------------------------*/
void generic_pulse_irq_line(device_t *device, int irqline) void generic_pulse_irq_line(device_t *device, int irqline, int cycles)
{ {
assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET); assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET && cycles > 0);
device_set_input_line(device, irqline, ASSERT_LINE); device_set_input_line(device, irqline, ASSERT_LINE);
cpu_device *cpudevice = downcast<cpu_device *>(device); cpu_device *cpudevice = downcast<cpu_device *>(device);
attotime target_time = cpudevice->local_time() + cpudevice->cycles_to_attotime(cpudevice->min_cycles()); attotime target_time = cpudevice->local_time() + cpudevice->cycles_to_attotime(cycles * cpudevice->min_cycles());
device->machine().scheduler().timer_set(target_time - device->machine().time(), FUNC(irq_pulse_clear), irqline, (void *)device); device->machine().scheduler().timer_set(target_time - device->machine().time(), FUNC(irq_pulse_clear), irqline, (void *)device);
} }
@ -601,16 +601,16 @@ void generic_pulse_irq_line(device_t *device, int irqline)
/*------------------------------------------------- /*-------------------------------------------------
generic_pulse_irq_line_and_vector - "pulse" an generic_pulse_irq_line_and_vector - "pulse" an
IRQ line by asserting it and then clearing it IRQ line by asserting it and then clearing it
1 cycle later, specifying a vector x cycle(s) later, specifying a vector
-------------------------------------------------*/ -------------------------------------------------*/
void generic_pulse_irq_line_and_vector(device_t *device, int irqline, int vector) void generic_pulse_irq_line_and_vector(device_t *device, int irqline, int vector, int cycles)
{ {
assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET); assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET && cycles > 0);
device_set_input_line_and_vector(device, irqline, ASSERT_LINE, vector); device_set_input_line_and_vector(device, irqline, ASSERT_LINE, vector);
cpu_device *cpudevice = downcast<cpu_device *>(device); cpu_device *cpudevice = downcast<cpu_device *>(device);
attotime target_time = cpudevice->local_time() + cpudevice->cycles_to_attotime(cpudevice->min_cycles()); attotime target_time = cpudevice->local_time() + cpudevice->cycles_to_attotime(cycles * cpudevice->min_cycles());
device->machine().scheduler().timer_set(target_time - device->machine().time(), FUNC(irq_pulse_clear), irqline, (void *)device); device->machine().scheduler().timer_set(target_time - device->machine().time(), FUNC(irq_pulse_clear), irqline, (void *)device);
} }
@ -633,35 +633,35 @@ INTERRUPT_GEN( nmi_line_assert ) { if (interrupt_enabled(device)) device_set_inp
-------------------------------------------------*/ -------------------------------------------------*/
INTERRUPT_GEN( irq0_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 0, HOLD_LINE); } INTERRUPT_GEN( irq0_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 0, HOLD_LINE); }
INTERRUPT_GEN( irq0_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 0); } INTERRUPT_GEN( irq0_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 0, 1); }
INTERRUPT_GEN( irq0_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 0, ASSERT_LINE); } INTERRUPT_GEN( irq0_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 0, ASSERT_LINE); }
INTERRUPT_GEN( irq1_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 1, HOLD_LINE); } INTERRUPT_GEN( irq1_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 1, HOLD_LINE); }
INTERRUPT_GEN( irq1_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 1); } INTERRUPT_GEN( irq1_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 1, 1); }
INTERRUPT_GEN( irq1_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 1, ASSERT_LINE); } INTERRUPT_GEN( irq1_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 1, ASSERT_LINE); }
INTERRUPT_GEN( irq2_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 2, HOLD_LINE); } INTERRUPT_GEN( irq2_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 2, HOLD_LINE); }
INTERRUPT_GEN( irq2_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 2); } INTERRUPT_GEN( irq2_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 2, 1); }
INTERRUPT_GEN( irq2_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 2, ASSERT_LINE); } INTERRUPT_GEN( irq2_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 2, ASSERT_LINE); }
INTERRUPT_GEN( irq3_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 3, HOLD_LINE); } INTERRUPT_GEN( irq3_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 3, HOLD_LINE); }
INTERRUPT_GEN( irq3_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 3); } INTERRUPT_GEN( irq3_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 3, 1); }
INTERRUPT_GEN( irq3_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 3, ASSERT_LINE); } INTERRUPT_GEN( irq3_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 3, ASSERT_LINE); }
INTERRUPT_GEN( irq4_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 4, HOLD_LINE); } INTERRUPT_GEN( irq4_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 4, HOLD_LINE); }
INTERRUPT_GEN( irq4_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 4); } INTERRUPT_GEN( irq4_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 4, 1); }
INTERRUPT_GEN( irq4_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 4, ASSERT_LINE); } INTERRUPT_GEN( irq4_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 4, ASSERT_LINE); }
INTERRUPT_GEN( irq5_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 5, HOLD_LINE); } INTERRUPT_GEN( irq5_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 5, HOLD_LINE); }
INTERRUPT_GEN( irq5_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 5); } INTERRUPT_GEN( irq5_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 5, 1); }
INTERRUPT_GEN( irq5_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 5, ASSERT_LINE); } INTERRUPT_GEN( irq5_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 5, ASSERT_LINE); }
INTERRUPT_GEN( irq6_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 6, HOLD_LINE); } INTERRUPT_GEN( irq6_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 6, HOLD_LINE); }
INTERRUPT_GEN( irq6_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 6); } INTERRUPT_GEN( irq6_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 6, 1); }
INTERRUPT_GEN( irq6_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 6, ASSERT_LINE); } INTERRUPT_GEN( irq6_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 6, ASSERT_LINE); }
INTERRUPT_GEN( irq7_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 7, HOLD_LINE); } INTERRUPT_GEN( irq7_line_hold ) { if (interrupt_enabled(device)) device_set_input_line(device, 7, HOLD_LINE); }
INTERRUPT_GEN( irq7_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 7); } INTERRUPT_GEN( irq7_line_pulse ) { if (interrupt_enabled(device)) generic_pulse_irq_line(device, 7, 1); }
INTERRUPT_GEN( irq7_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 7, ASSERT_LINE); } INTERRUPT_GEN( irq7_line_assert ) { if (interrupt_enabled(device)) device_set_input_line(device, 7, ASSERT_LINE); }

View File

@ -106,8 +106,8 @@ void set_led_status(running_machine &machine, int num, int value);
/* ----- interrupt enable and vector helpers ----- */ /* ----- interrupt enable and vector helpers ----- */
void generic_pulse_irq_line(device_t *device, int irqline); void generic_pulse_irq_line(device_t *device, int irqline, int cycles);
void generic_pulse_irq_line_and_vector(device_t *device, int irqline, int vector); void generic_pulse_irq_line_and_vector(device_t *device, int irqline, int vector, int cycles);

View File

@ -1977,7 +1977,7 @@ static TIMER_DEVICE_CALLBACK( dcs_irq )
reg = dcs.ireg_base; reg = dcs.ireg_base;
/* generate the (internal, thats why the pulse) irq */ /* generate the (internal, thats why the pulse) irq */
generic_pulse_irq_line(dcs.cpu, ADSP2105_IRQ1); generic_pulse_irq_line(dcs.cpu, ADSP2105_IRQ1, 1);
} }
/* store it */ /* store it */

View File

@ -191,7 +191,7 @@ static void spacefev_sound_pins_changed( running_machine &machine )
} }
if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5)))
{ {
generic_pulse_irq_line(machine.device("audiocpu"), 0); generic_pulse_irq_line(machine.device("audiocpu"), 0, 1);
} }
} }
@ -216,7 +216,7 @@ static void sheriff_sound_pins_changed( running_machine &machine )
} }
if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5)))
{ {
generic_pulse_irq_line(machine.device("audiocpu"), 0); generic_pulse_irq_line(machine.device("audiocpu"), 0, 1);
} }
} }
@ -232,7 +232,7 @@ static void helifire_sound_pins_changed( running_machine &machine )
if (changes & (1 << 6)) if (changes & (1 << 6))
{ {
generic_pulse_irq_line(machine.device("audiocpu"), 0); generic_pulse_irq_line(machine.device("audiocpu"), 0, 1);
} }
} }

View File

@ -1398,7 +1398,7 @@ static WRITE8_HANDLER( meter_w )
if (changed & (1 << i)) if (changed & (1 << i))
{ {
MechMtr_update(i, data & (1 << i) ); MechMtr_update(i, data & (1 << i) );
generic_pulse_irq_line(&space->device(), M6809_FIRQ_LINE); generic_pulse_irq_line(&space->device(), M6809_FIRQ_LINE, 1);
} }
} }
} }
@ -1756,7 +1756,7 @@ static DRIVER_INIT( bfcobra )
/* TODO */ /* TODO */
static INTERRUPT_GEN( timer_irq ) static INTERRUPT_GEN( timer_irq )
{ {
generic_pulse_irq_line(device, M6809_IRQ_LINE); generic_pulse_irq_line(device, M6809_IRQ_LINE, 1);
} }
/* TODO */ /* TODO */

View File

@ -176,7 +176,7 @@ static INTERRUPT_GEN( timer_irq )
state->m_sc1_Inputs[2] = input_port_read(device->machine(),"STROBE0"); state->m_sc1_Inputs[2] = input_port_read(device->machine(),"STROBE0");
generic_pulse_irq_line(device->machine().device("maincpu"), M6809_IRQ_LINE); generic_pulse_irq_line(device->machine().device("maincpu"), M6809_IRQ_LINE, 1);
} }
} }
@ -277,7 +277,7 @@ static WRITE8_HANDLER( mmtr_w )
if ( changed & (1 << i) ) if ( changed & (1 << i) )
{ {
MechMtr_update(i, data & (1 << i) ); MechMtr_update(i, data & (1 << i) );
generic_pulse_irq_line(space->machine().device("maincpu"), M6809_FIRQ_LINE); generic_pulse_irq_line(space->machine().device("maincpu"), M6809_FIRQ_LINE, 1);
} }
} }
} }

View File

@ -444,7 +444,7 @@ static INTERRUPT_GEN( timer_irq )
state->m_irq_timer_stat = 0x01; state->m_irq_timer_stat = 0x01;
state->m_irq_status = 0x02; state->m_irq_status = 0x02;
generic_pulse_irq_line(device, M6809_IRQ_LINE); generic_pulse_irq_line(device, M6809_IRQ_LINE, 1);
} }
} }

View File

@ -172,7 +172,7 @@ static INTERRUPT_GEN( timer_irq )
if ( state->m_is_timer_enabled ) if ( state->m_is_timer_enabled )
{ {
state->m_irq_status = 0x01 |0x02; //0xff; state->m_irq_status = 0x01 |0x02; //0xff;
generic_pulse_irq_line(device, M6809_IRQ_LINE); generic_pulse_irq_line(device, M6809_IRQ_LINE, 1);
} }
} }
@ -235,7 +235,7 @@ static WRITE8_HANDLER( mmtr_w )
for (i=0; i<8; i++) for (i=0; i<8; i++)
if ( changed & (1 << i) ) MechMtr_update(i, data & (1 << i) ); if ( changed & (1 << i) ) MechMtr_update(i, data & (1 << i) );
if ( data ) generic_pulse_irq_line(space->machine().device("maincpu"), M6809_FIRQ_LINE); if ( data ) generic_pulse_irq_line(space->machine().device("maincpu"), M6809_FIRQ_LINE, 1);
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////

View File

@ -736,7 +736,7 @@ INPUT_PORTS_END
static INTERRUPT_GEN( vblank_irq ) static INTERRUPT_GEN( vblank_irq )
{ {
generic_pulse_irq_line(device, NEC_INPUT_LINE_INTP0); generic_pulse_irq_line(device, NEC_INPUT_LINE_INTP0, 1);
} }
static const gfx_layout cb2001_layout = static const gfx_layout cb2001_layout =

View File

@ -73,7 +73,7 @@ static TIMER_CALLBACK( interrupt_callback )
cball_state *state = machine.driver_data<cball_state>(); cball_state *state = machine.driver_data<cball_state>();
int scanline = param; int scanline = param;
generic_pulse_irq_line(state->m_maincpu, 0); generic_pulse_irq_line(state->m_maincpu, 0, 1);
scanline = scanline + 32; scanline = scanline + 32;

View File

@ -433,7 +433,7 @@ static INTERRUPT_GEN( chl_mcu_irq )
{ {
changela_state *state = device->machine().driver_data<changela_state>(); changela_state *state = device->machine().driver_data<changela_state>();
generic_pulse_irq_line(state->m_mcu, 0); generic_pulse_irq_line(state->m_mcu, 0, 1);
} }
static MACHINE_START(changela) static MACHINE_START(changela)

View File

@ -239,7 +239,7 @@ WRITE8_HANDLER( cvs_s2636_2_or_character_ram_w )
static INTERRUPT_GEN( cvs_main_cpu_interrupt ) static INTERRUPT_GEN( cvs_main_cpu_interrupt )
{ {
device_set_input_line_vector(device, 0, 0x03); device_set_input_line_vector(device, 0, 0x03);
generic_pulse_irq_line(device, 0); generic_pulse_irq_line(device, 0, 1);
cvs_scroll_stars(device->machine()); cvs_scroll_stars(device->machine());
} }

View File

@ -436,7 +436,7 @@ static WRITE8_HANDLER(equites_c0f8_w)
case 1: // c0f9: RST75 trigger (written by NMI handler) case 1: // c0f9: RST75 trigger (written by NMI handler)
// Note: solder pad CP3 on the pcb would allow to disable this // Note: solder pad CP3 on the pcb would allow to disable this
generic_pulse_irq_line(state->m_audio_cpu, I8085_RST75_LINE); generic_pulse_irq_line(state->m_audio_cpu, I8085_RST75_LINE, 1);
break; break;
case 2: // c0fa: INTR trigger (written by NMI handler) case 2: // c0fa: INTR trigger (written by NMI handler)

View File

@ -62,7 +62,7 @@ static TIMER_CALLBACK( periodic_callback )
{ {
int scanline = param; int scanline = param;
generic_pulse_irq_line(machine.device("maincpu"), 0); generic_pulse_irq_line(machine.device("maincpu"), 0, 1);
/* IRQs are generated by inverse 16V signal */ /* IRQs are generated by inverse 16V signal */
scanline += 32; scanline += 32;

View File

@ -119,7 +119,7 @@ static TIMER_CALLBACK( flyball_joystick_callback )
int potsense = param; int potsense = param;
if (potsense & ~state->m_potmask) if (potsense & ~state->m_potmask)
generic_pulse_irq_line(state->m_maincpu, 0); generic_pulse_irq_line(state->m_maincpu, 0, 1);
state->m_potsense |= potsense; state->m_potsense |= potsense;
} }

View File

@ -657,7 +657,7 @@ static TIMER_DEVICE_CALLBACK( adsp_autobuffer_irq )
reg = state->m_adsp_ireg_base; reg = state->m_adsp_ireg_base;
/* generate the (internal, thats why the pulse) irq */ /* generate the (internal, thats why the pulse) irq */
generic_pulse_irq_line(adsp, ADSP2105_IRQ1); generic_pulse_irq_line(adsp, ADSP2105_IRQ1, 1);
} }
/* store it */ /* store it */

View File

@ -383,7 +383,7 @@ GFXDECODE_END
static INTERRUPT_GEN( igs_majhong_interrupt ) static INTERRUPT_GEN( igs_majhong_interrupt )
{ {
generic_pulse_irq_line(device, ARM7_FIRQ_LINE); generic_pulse_irq_line(device, ARM7_FIRQ_LINE, 1);
} }

View File

@ -51,7 +51,7 @@ static WRITE8_HANDLER( sound_command_w )
{ {
lasso_state *state = space->machine().driver_data<lasso_state>(); lasso_state *state = space->machine().driver_data<lasso_state>();
soundlatch_w(space, offset, data); soundlatch_w(space, offset, data);
generic_pulse_irq_line(state->m_audiocpu, 0); generic_pulse_irq_line(state->m_audiocpu, 0, 1);
} }
static WRITE8_HANDLER( pinbo_sound_command_w ) static WRITE8_HANDLER( pinbo_sound_command_w )

View File

@ -696,7 +696,7 @@ static INTERRUPT_GEN( bomblord_fake_nmi )
static INTERRUPT_GEN( m90_interrupt ) static INTERRUPT_GEN( m90_interrupt )
{ {
generic_pulse_irq_line(device, NEC_INPUT_LINE_INTP0); generic_pulse_irq_line(device, NEC_INPUT_LINE_INTP0, 1);
} }
static INTERRUPT_GEN( dynablsb_interrupt ) static INTERRUPT_GEN( dynablsb_interrupt )

View File

@ -178,7 +178,7 @@ static TIMER_DEVICE_CALLBACK( mcu_timer_proc )
if ( (state->m_tcr & 0x40) == 0 ) if ( (state->m_tcr & 0x40) == 0 )
{ {
//timer interrupt! //timer interrupt!
generic_pulse_irq_line(timer.machine().device("mcu"), M68705_INT_TIMER); generic_pulse_irq_line(timer.machine().device("mcu"), M68705_INT_TIMER, 1);
} }
} }
} }

View File

@ -112,7 +112,7 @@ static TIMER_CALLBACK( interrupt_callback )
update_plunger(machine); update_plunger(machine);
generic_pulse_irq_line(state->m_maincpu, 0); generic_pulse_irq_line(state->m_maincpu, 0, 1);
scanline = scanline + 32; scanline = scanline + 32;

View File

@ -377,7 +377,7 @@ static void multigam3_mmc3_scanline_cb( device_t *device, int scanline, int vbla
if (--state->m_multigam3_mmc3_scanline_counter == -1) if (--state->m_multigam3_mmc3_scanline_counter == -1)
{ {
state->m_multigam3_mmc3_scanline_counter = state->m_multigam3_mmc3_scanline_latch; state->m_multigam3_mmc3_scanline_counter = state->m_multigam3_mmc3_scanline_latch;
generic_pulse_irq_line(device->machine().device("maincpu"), 0); generic_pulse_irq_line(device->machine().device("maincpu"), 0, 1);
} }
} }
} }

View File

@ -273,7 +273,7 @@ static INTERRUPT_GEN( mcu_interrupt )
namcond1_state *state = device->machine().driver_data<namcond1_state>(); namcond1_state *state = device->machine().driver_data<namcond1_state>();
if( state->m_h8_irq5_enabled ) if( state->m_h8_irq5_enabled )
{ {
generic_pulse_irq_line(device, H8_IRQ5); generic_pulse_irq_line(device, H8_IRQ5, 1);
} }
} }

View File

@ -2727,7 +2727,7 @@ static READ8_HANDLER( propcycle_mcu_adc_r )
int i; int i;
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
{ {
generic_pulse_irq_line(space->machine().device("mcu"), M37710_LINE_TIMERA3TICK); generic_pulse_irq_line(space->machine().device("mcu"), M37710_LINE_TIMERA3TICK, 1);
} }
} }

View File

@ -638,9 +638,9 @@ static const adc12138_interface nwktr_adc_interface = {
static void sound_irq_callback(running_machine &machine, int irq) static void sound_irq_callback(running_machine &machine, int irq)
{ {
if (irq == 0) if (irq == 0)
generic_pulse_irq_line(machine.device("audiocpu"), INPUT_LINE_IRQ1); generic_pulse_irq_line(machine.device("audiocpu"), INPUT_LINE_IRQ1, 1);
else else
generic_pulse_irq_line(machine.device("audiocpu"), INPUT_LINE_IRQ2); generic_pulse_irq_line(machine.device("audiocpu"), INPUT_LINE_IRQ2, 1);
} }
static const k056800_interface nwktr_k056800_interface = static const k056800_interface nwktr_k056800_interface =

View File

@ -313,7 +313,7 @@ static WRITE16_HANDLER( arm7_latch_68k_w )
logerror("M68K: Latch write: %04x (%04x) (%06x)\n", data & 0x0000ffff, mem_mask, cpu_get_pc(&space->device())); logerror("M68K: Latch write: %04x (%04x) (%06x)\n", data & 0x0000ffff, mem_mask, cpu_get_pc(&space->device()));
COMBINE_DATA(&state->m_kov2_latchdata_68k_w); COMBINE_DATA(&state->m_kov2_latchdata_68k_w);
generic_pulse_irq_line(state->m_prot, ARM7_FIRQ_LINE); generic_pulse_irq_line(state->m_prot, ARM7_FIRQ_LINE, 1);
space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(200)); space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(200));
device_spin_until_time(&space->device(), state->m_prot->cycles_to_attotime(200)); // give the arm time to respond (just boosting the interleave doesn't help) device_spin_until_time(&space->device(), state->m_prot->cycles_to_attotime(200)); // give the arm time to respond (just boosting the interleave doesn't help)
} }
@ -562,7 +562,7 @@ static READ16_HANDLER( svg_68k_nmi_r )
static WRITE16_HANDLER( svg_68k_nmi_w ) static WRITE16_HANDLER( svg_68k_nmi_w )
{ {
pgm_state *state = space->machine().driver_data<pgm_state>(); pgm_state *state = space->machine().driver_data<pgm_state>();
generic_pulse_irq_line(state->m_prot, ARM7_FIRQ_LINE); generic_pulse_irq_line(state->m_prot, ARM7_FIRQ_LINE, 1);
space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(200)); space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(200));
device_spin_until_time(&space->device(), state->m_prot->cycles_to_attotime(200)); // give the arm time to respond (just boosting the interleave doesn't help) device_spin_until_time(&space->device(), state->m_prot->cycles_to_attotime(200)); // give the arm time to respond (just boosting the interleave doesn't help)
} }

View File

@ -319,7 +319,7 @@ static INPUT_CHANGED( coin_inserted )
/* TODO: change this! */ /* TODO: change this! */
if(newval) if(newval)
generic_pulse_irq_line(state->m_maincpu, (UINT8)(FPTR)param); generic_pulse_irq_line(state->m_maincpu, (UINT8)(FPTR)param, 1);
} }
static INPUT_PORTS_START( pntnpuzl ) static INPUT_PORTS_START( pntnpuzl )

View File

@ -1401,7 +1401,7 @@ static WRITE8_HANDLER( mcu_data_w )
{ {
segas1x_state *state = space->machine().driver_data<segas1x_state>(); segas1x_state *state = space->machine().driver_data<segas1x_state>();
state->m_mcu_data = data; state->m_mcu_data = data;
generic_pulse_irq_line(state->m_mcu, 1); generic_pulse_irq_line(state->m_mcu, 1, 1);
} }
#endif #endif

View File

@ -528,7 +528,7 @@ INPUT_PORTS_END
static INTERRUPT_GEN( timer_irq ) static INTERRUPT_GEN( timer_irq )
{ {
generic_pulse_irq_line(device, M6809_IRQ_LINE); generic_pulse_irq_line(device, M6809_IRQ_LINE, 1);
} }

View File

@ -279,7 +279,7 @@ static TIMER_CALLBACK( PS7500_Timer0_callback )
state->m_PS7500_IO[IRQSTA]|=0x20; state->m_PS7500_IO[IRQSTA]|=0x20;
if(state->m_PS7500_IO[IRQMSKA]&0x20) if(state->m_PS7500_IO[IRQMSKA]&0x20)
{ {
generic_pulse_irq_line(machine.device("maincpu"), ARM7_IRQ_LINE); generic_pulse_irq_line(machine.device("maincpu"), ARM7_IRQ_LINE, 1);
} }
} }
@ -300,7 +300,7 @@ static TIMER_CALLBACK( PS7500_Timer1_callback )
state->m_PS7500_IO[IRQSTA]|=0x40; state->m_PS7500_IO[IRQSTA]|=0x40;
if(state->m_PS7500_IO[IRQMSKA]&0x40) if(state->m_PS7500_IO[IRQMSKA]&0x40)
{ {
generic_pulse_irq_line(machine.device("maincpu"), ARM7_IRQ_LINE); generic_pulse_irq_line(machine.device("maincpu"), ARM7_IRQ_LINE, 1);
} }
} }
@ -320,7 +320,7 @@ static INTERRUPT_GEN( ssfindo_interrupt )
state->m_PS7500_IO[IRQSTA]|=0x08; state->m_PS7500_IO[IRQSTA]|=0x08;
if(state->m_PS7500_IO[IRQMSKA]&0x08) if(state->m_PS7500_IO[IRQMSKA]&0x08)
{ {
generic_pulse_irq_line(device, ARM7_IRQ_LINE); generic_pulse_irq_line(device, ARM7_IRQ_LINE, 1);
} }
} }

View File

@ -17,7 +17,7 @@ Atari Starship 1 driver
static INTERRUPT_GEN( starshp1_interrupt ) static INTERRUPT_GEN( starshp1_interrupt )
{ {
if ((input_port_read(device->machine(), "SYSTEM") & 0x90) != 0x90) if ((input_port_read(device->machine(), "SYSTEM") & 0x90) != 0x90)
generic_pulse_irq_line(device, 0); generic_pulse_irq_line(device, 0, 1);
} }

View File

@ -149,7 +149,7 @@ static INTERRUPT_GEN( toratora_timer )
if (state->m_last != (input_port_read(device->machine(), "INPUT") & 0x0f)) if (state->m_last != (input_port_read(device->machine(), "INPUT") & 0x0f))
{ {
state->m_last = input_port_read(device->machine(), "INPUT") & 0x0f; state->m_last = input_port_read(device->machine(), "INPUT") & 0x0f;
generic_pulse_irq_line(device, 0); generic_pulse_irq_line(device, 0, 1);
} }
state->m_pia_u1->set_a_input(input_port_read(device->machine(), "INPUT") & 0x0f, 0); state->m_pia_u1->set_a_input(input_port_read(device->machine(), "INPUT") & 0x0f, 0);
state->m_pia_u1->ca1_w(input_port_read(device->machine(), "INPUT") & 0x10); state->m_pia_u1->ca1_w(input_port_read(device->machine(), "INPUT") & 0x10);

View File

@ -399,7 +399,7 @@ static INTERRUPT_GEN( truco_interrupt )
{ {
if ( state->m_trigger == 0 ) if ( state->m_trigger == 0 )
{ {
generic_pulse_irq_line(device, M6809_IRQ_LINE); generic_pulse_irq_line(device, M6809_IRQ_LINE, 1);
state->m_trigger++; state->m_trigger++;
} }
} else } else

View File

@ -202,7 +202,7 @@ static INTERRUPT_GEN( ultrsprt_vblank )
static void sound_irq_callback(running_machine &machine, int irq) static void sound_irq_callback(running_machine &machine, int irq)
{ {
if (irq == 0) if (irq == 0)
/*generic_pulse_irq_line(machine.device("audiocpu"), INPUT_LINE_IRQ5)*/; /*generic_pulse_irq_line(machine.device("audiocpu"), INPUT_LINE_IRQ5, 1)*/;
else else
cputag_set_input_line(machine, "audiocpu", INPUT_LINE_IRQ6, HOLD_LINE); cputag_set_input_line(machine, "audiocpu", INPUT_LINE_IRQ6, HOLD_LINE);
} }

View File

@ -1084,7 +1084,7 @@ MACHINE_CONFIG_END
static INTERRUPT_GEN( hotchase_sound_timer ) static INTERRUPT_GEN( hotchase_sound_timer )
{ {
generic_pulse_irq_line(device, M6809_FIRQ_LINE); generic_pulse_irq_line(device, M6809_FIRQ_LINE, 1);
} }
static const k051316_interface hotchase_k051316_intf_0 = static const k051316_interface hotchase_k051316_intf_0 =

View File

@ -74,7 +74,7 @@ void archimedes_request_irq_b(running_machine &machine, int mask)
if (ioc_regs[IRQ_MASK_B] & mask) if (ioc_regs[IRQ_MASK_B] & mask)
{ {
generic_pulse_irq_line(machine.device("maincpu"), ARM_IRQ_LINE); generic_pulse_irq_line(machine.device("maincpu"), ARM_IRQ_LINE, 1);
} }
} }
@ -84,7 +84,7 @@ void archimedes_request_fiq(running_machine &machine, int mask)
if (ioc_regs[FIQ_MASK] & mask) if (ioc_regs[FIQ_MASK] & mask)
{ {
generic_pulse_irq_line(machine.device("maincpu"), ARM_FIRQ_LINE); generic_pulse_irq_line(machine.device("maincpu"), ARM_FIRQ_LINE, 1);
} }
} }

View File

@ -418,7 +418,7 @@ DRIVER_INIT( 4in1 )
INTERRUPT_GEN( hunchbks_vh_interrupt ) INTERRUPT_GEN( hunchbks_vh_interrupt )
{ {
generic_pulse_irq_line_and_vector(device,0,0x03); generic_pulse_irq_line_and_vector(device,0,0x03,1);
} }
DRIVER_INIT( ladybugg ) DRIVER_INIT( ladybugg )

View File

@ -774,7 +774,7 @@ WRITE8_HANDLER( namcos2_mcu_analog_ctrl_w )
/* If the interrupt enable bit is set trigger an A/D IRQ */ /* If the interrupt enable bit is set trigger an A/D IRQ */
if(data & 0x20) if(data & 0x20)
{ {
generic_pulse_irq_line(space->machine().device("mcu"), HD63705_INT_ADCONV); generic_pulse_irq_line(space->machine().device("mcu"), HD63705_INT_ADCONV, 1);
} }
} }
} }

View File

@ -872,7 +872,7 @@ static void gboard_scanline_cb( device_t *device, int scanline, int vblank, int
if (--state->m_gboard_scanline_counter == -1) if (--state->m_gboard_scanline_counter == -1)
{ {
state->m_gboard_scanline_counter = state->m_gboard_scanline_latch; state->m_gboard_scanline_counter = state->m_gboard_scanline_latch;
generic_pulse_irq_line(device->machine().device("cart"), 0); generic_pulse_irq_line(device->machine().device("cart"), 0, 1);
} }
} }
} }