mirror of
https://github.com/holub/mame
synced 2025-10-05 16:50:57 +03:00
Update apricotf driver to use new input merger device as example
This commit is contained in:
parent
6b70c2a0e8
commit
fa44864f5a
@ -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))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user