summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commitfa44864f5a31ee770e0ac5739a2a1e5a6fa0b7a8 (patch)
treeac51c6ad5ef957fa2a8f25c33b4f3b8e400906a1
parent6b70c2a0e89685a4af8edf46973f2f368d868c23 (diff)
Update apricotf driver to use new input merger device as example
-rw-r--r--src/mame/drivers/apricotf.cpp34
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))