Update apricotf driver to use new input merger device as example

This commit is contained in:
Dirk Best 2016-07-23 15:32:35 +02:00
parent 6b70c2a0e8
commit fa44864f5a

View File

@ -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 );
@ -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))