diff options
author | Dirk Best <mail@dirk-best.de> | 2016-07-23 15:32:35 +0200 |
---|---|---|
committer | Dirk Best <mail@dirk-best.de> | 2016-07-23 15:33:18 +0200 |
commit | fa44864f5a31ee770e0ac5739a2a1e5a6fa0b7a8 (patch) | |
tree | ac51c6ad5ef957fa2a8f25c33b4f3b8e400906a1 | |
parent | 6b70c2a0e89685a4af8edf46973f2f368d868c23 (diff) |
Update apricotf driver to use new input merger device as example
-rw-r--r-- | src/mame/drivers/apricotf.cpp | 34 |
1 files changed, 8 insertions, 26 deletions
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<floppy_connector> m_floppy1; required_device<centronics_device> m_centronics; required_device<output_latch_device> m_cent_data_out; - int m_ctc_int; - int m_sio_int; + required_device<input_merger_active_high_device> m_irqs; required_shared_ptr<UINT16> m_p_scrollram; required_shared_ptr<UINT16> m_p_paletteram; required_device<palette_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 ); @@ -294,27 +291,9 @@ INPUT_PORTS_END //************************************************************************** //------------------------------------------------- -// 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)) |