diff options
Diffstat (limited to 'src/emu/driver.cpp')
-rw-r--r-- | src/emu/driver.cpp | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/emu/driver.cpp b/src/emu/driver.cpp index 76756b2bfb0..75e01880fe2 100644 --- a/src/emu/driver.cpp +++ b/src/emu/driver.cpp @@ -260,55 +260,6 @@ void driver_device::device_reset_after_children() //************************************************************************** -// INTERRUPT ENABLE AND VECTOR HELPERS -//************************************************************************** - -//------------------------------------------------- -// irq_pulse_clear - clear a "pulsed" IRQ line -//------------------------------------------------- - -void driver_device::irq_pulse_clear(void *ptr, s32 param) -{ - device_execute_interface *exec = reinterpret_cast<device_execute_interface *>(ptr); - int irqline = param; - exec->set_input_line(irqline, CLEAR_LINE); -} - - -//------------------------------------------------- -// generic_pulse_irq_line - "pulse" an IRQ line by -// asserting it and then clearing it x cycle(s) -// later -//------------------------------------------------- - -void driver_device::generic_pulse_irq_line(device_execute_interface &exec, int irqline, int cycles) -{ - assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET && cycles > 0); - exec.set_input_line(irqline, ASSERT_LINE); - - attotime target_time = exec.local_time() + exec.cycles_to_attotime(cycles * exec.min_cycles()); - machine().scheduler().timer_set(target_time - machine().time(), timer_expired_delegate(FUNC(driver_device::irq_pulse_clear), this), irqline, (void *)&exec); -} - - -//------------------------------------------------- -// generic_pulse_irq_line_and_vector - "pulse" an -// IRQ line by asserting it and then clearing it -// x cycle(s) later, specifying a vector -//------------------------------------------------- - -void driver_device::generic_pulse_irq_line_and_vector(device_execute_interface &exec, int irqline, int vector, int cycles) -{ - assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET && cycles > 0); - exec.set_input_line_and_vector(irqline, ASSERT_LINE, vector); - - attotime target_time = exec.local_time() + exec.cycles_to_attotime(cycles * exec.min_cycles()); - machine().scheduler().timer_set(target_time - machine().time(), timer_expired_delegate(FUNC(driver_device::irq_pulse_clear), this), irqline, (void *)&exec); -} - - - -//************************************************************************** // INTERRUPT GENERATION CALLBACK HELPERS //************************************************************************** @@ -325,35 +276,27 @@ INTERRUPT_GEN_MEMBER( driver_device::nmi_line_assert ) { device.execute().set_i //------------------------------------------------- INTERRUPT_GEN_MEMBER( driver_device::irq0_line_hold ) { device.execute().set_input_line(0, HOLD_LINE); } -INTERRUPT_GEN_MEMBER( driver_device::irq0_line_pulse ) { generic_pulse_irq_line(device.execute(), 0, 1); } INTERRUPT_GEN_MEMBER( driver_device::irq0_line_assert ) { device.execute().set_input_line(0, ASSERT_LINE); } INTERRUPT_GEN_MEMBER( driver_device::irq1_line_hold ) { device.execute().set_input_line(1, HOLD_LINE); } -INTERRUPT_GEN_MEMBER( driver_device::irq1_line_pulse ) { generic_pulse_irq_line(device.execute(), 1, 1); } INTERRUPT_GEN_MEMBER( driver_device::irq1_line_assert ) { device.execute().set_input_line(1, ASSERT_LINE); } INTERRUPT_GEN_MEMBER( driver_device::irq2_line_hold ) { device.execute().set_input_line(2, HOLD_LINE); } -INTERRUPT_GEN_MEMBER( driver_device::irq2_line_pulse ) { generic_pulse_irq_line(device.execute(), 2, 1); } INTERRUPT_GEN_MEMBER( driver_device::irq2_line_assert ) { device.execute().set_input_line(2, ASSERT_LINE); } INTERRUPT_GEN_MEMBER( driver_device::irq3_line_hold ) { device.execute().set_input_line(3, HOLD_LINE); } -INTERRUPT_GEN_MEMBER( driver_device::irq3_line_pulse ) { generic_pulse_irq_line(device.execute(), 3, 1); } INTERRUPT_GEN_MEMBER( driver_device::irq3_line_assert ) { device.execute().set_input_line(3, ASSERT_LINE); } INTERRUPT_GEN_MEMBER( driver_device::irq4_line_hold ) { device.execute().set_input_line(4, HOLD_LINE); } -INTERRUPT_GEN_MEMBER( driver_device::irq4_line_pulse ) { generic_pulse_irq_line(device.execute(), 4, 1); } INTERRUPT_GEN_MEMBER( driver_device::irq4_line_assert ) { device.execute().set_input_line(4, ASSERT_LINE); } INTERRUPT_GEN_MEMBER( driver_device::irq5_line_hold ) { device.execute().set_input_line(5, HOLD_LINE); } -INTERRUPT_GEN_MEMBER( driver_device::irq5_line_pulse ) { generic_pulse_irq_line(device.execute(), 5, 1); } INTERRUPT_GEN_MEMBER( driver_device::irq5_line_assert ) { device.execute().set_input_line(5, ASSERT_LINE); } INTERRUPT_GEN_MEMBER( driver_device::irq6_line_hold ) { device.execute().set_input_line(6, HOLD_LINE); } -INTERRUPT_GEN_MEMBER( driver_device::irq6_line_pulse ) { generic_pulse_irq_line(device.execute(), 6, 1); } INTERRUPT_GEN_MEMBER( driver_device::irq6_line_assert ) { device.execute().set_input_line(6, ASSERT_LINE); } INTERRUPT_GEN_MEMBER( driver_device::irq7_line_hold ) { device.execute().set_input_line(7, HOLD_LINE); } -INTERRUPT_GEN_MEMBER( driver_device::irq7_line_pulse ) { generic_pulse_irq_line(device.execute(), 7, 1); } INTERRUPT_GEN_MEMBER( driver_device::irq7_line_assert ) { device.execute().set_input_line(7, ASSERT_LINE); } |