diff --git a/src/mame/drivers/apricotf.cpp b/src/mame/drivers/apricotf.cpp index 8c990e46c48..ee0b210b6c2 100644 --- a/src/mame/drivers/apricotf.cpp +++ b/src/mame/drivers/apricotf.cpp @@ -34,6 +34,7 @@ #include "machine/wd_fdc.h" #include "machine/z80ctc.h" #include "machine/z80dart.h" +#include "machine/input_merger.h" #include "formats/apridisk.h" @@ -68,8 +69,7 @@ public: m_floppy1(*this, WD2797_TAG ":1"), m_centronics(*this, CENTRONICS_TAG), m_cent_data_out(*this, "cent_data_out"), - m_ctc_int(CLEAR_LINE), - m_sio_int(CLEAR_LINE), + m_irqs(*this, "irqs"), m_p_scrollram(*this, "p_scrollram"), m_p_paletteram(*this, "p_paletteram"), m_palette(*this, "palette") @@ -87,8 +87,7 @@ public: required_device m_floppy1; required_device m_centronics; required_device m_cent_data_out; - int m_ctc_int; - int m_sio_int; + required_device m_irqs; required_shared_ptr m_p_scrollram; required_shared_ptr m_p_paletteram; required_device m_palette; @@ -98,8 +97,6 @@ public: DECLARE_READ16_MEMBER( palette_r ); DECLARE_WRITE16_MEMBER( palette_w ); DECLARE_WRITE8_MEMBER( system_w ); - DECLARE_WRITE_LINE_MEMBER( sio_int_w ); - DECLARE_WRITE_LINE_MEMBER( ctc_int_w ); DECLARE_WRITE_LINE_MEMBER( ctc_z1_w ); DECLARE_WRITE_LINE_MEMBER( ctc_z2_w ); @@ -293,28 +290,10 @@ INPUT_PORTS_END // DEVICE CONFIGURATION //************************************************************************** -//------------------------------------------------- -// Z80SIO -//------------------------------------------------- - -WRITE_LINE_MEMBER( f1_state::sio_int_w ) -{ - m_sio_int = state; - - m_maincpu->set_input_line(INPUT_LINE_IRQ0, m_ctc_int || m_sio_int); -} - //------------------------------------------------- // Z80CTC //------------------------------------------------- -WRITE_LINE_MEMBER( f1_state::ctc_int_w ) -{ - m_ctc_int = state; - - m_maincpu->set_input_line(INPUT_LINE_IRQ0, m_ctc_int | m_sio_int); -} - WRITE_LINE_MEMBER( f1_state::ctc_z1_w ) { m_sio->rxcb_w(state); @@ -355,6 +334,9 @@ static MACHINE_CONFIG_START( act_f1, f1_state ) MCFG_CPU_PROGRAM_MAP(act_f1_mem) MCFG_CPU_IO_MAP(act_f1_io) + MCFG_INPUT_MERGER_ACTIVE_HIGH("irqs") + MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0)) + /* video hardware */ MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) MCFG_SCREEN_REFRESH_RATE(50) @@ -371,10 +353,10 @@ static MACHINE_CONFIG_START( act_f1, f1_state ) MCFG_DEVICE_ADD(APRICOT_KEYBOARD_TAG, APRICOT_KEYBOARD, 0) MCFG_Z80SIO2_ADD(Z80SIO2_TAG, 2500000, 0, 0, 0, 0) - MCFG_Z80DART_OUT_INT_CB(WRITELINE(f1_state, sio_int_w)) + MCFG_Z80DART_OUT_INT_CB(DEVWRITELINE("irqs", input_merger_active_high_device, in0_w)) MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, 2500000) - MCFG_Z80CTC_INTR_CB(WRITELINE(f1_state, ctc_int_w)) + MCFG_Z80CTC_INTR_CB(DEVWRITELINE("irqs", input_merger_active_high_device, in1_w)) MCFG_Z80CTC_ZC1_CB(WRITELINE(f1_state, ctc_z1_w)) MCFG_Z80CTC_ZC2_CB(WRITELINE(f1_state, ctc_z2_w))