From 704ad36270bdc7032c4f8131f6812e3cbbebe7e3 Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 16 Mar 2023 09:02:50 -0400 Subject: mpc3000.cpp: Add FDC IRQ (does nothing yet) --- src/mame/akai/mpc3000.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/mame/akai/mpc3000.cpp b/src/mame/akai/mpc3000.cpp index 308ce9a0ca4..ab4e392a50a 100644 --- a/src/mame/akai/mpc3000.cpp +++ b/src/mame/akai/mpc3000.cpp @@ -72,6 +72,7 @@ MPCs on other hardware: #include "emupal.h" #include "machine/74259.h" #include "machine/i8255.h" +#include "machine/input_merger.h" #include "machine/pit8253.h" #include "machine/upd765.h" @@ -202,10 +203,18 @@ void mpc3000_state::mpc3000(machine_config &config) m_maincpu->out_hreq_cb().set(m_maincpu, FUNC(v53a_device::hack_w)); m_maincpu->in_mem16r_cb().set(FUNC(mpc3000_state::dma_memr_cb)); m_maincpu->out_mem16w_cb().set(FUNC(mpc3000_state::dma_memw_cb)); + m_maincpu->out_eop_cb().set("tc", FUNC(input_merger_device::in_w<0>)); + m_maincpu->out_dack_cb<1>().set("tc", FUNC(input_merger_device::in_w<0>)); + m_maincpu->in_ior_cb<1>().set(m_fdc, FUNC(upd72069_device::dma_r)); + m_maincpu->out_iow_cb<1>().set(m_fdc, FUNC(upd72069_device::dma_w)); m_maincpu->in_io16r_cb<3>().set(m_dsp, FUNC(l7a1045_sound_device::dma_r16_cb)); m_maincpu->out_io16w_cb<3>().set(m_dsp, FUNC(l7a1045_sound_device::dma_w16_cb)); m_maincpu->set_tclk(4'000'000); // FIXME: DAWCK generated by DSP (also tied to V53 DSR input) + // HC02 gates + INPUT_MERGER_ANY_HIGH(config, "intp3").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ3); + INPUT_MERGER_ALL_HIGH(config, "tc").output_handler().set(m_fdc, FUNC(upd72069_device::tc_line_w)); + hc259_device &loledlatch(HC259(config, "loledlatch")); loledlatch.q_out_cb<0>().set_output("led0").invert(); // Edit Loop loledlatch.q_out_cb<1>().set_output("led1").invert(); // Simul Seq @@ -239,8 +248,8 @@ void mpc3000_state::mpc3000(machine_config &config) PALETTE(config, "palette", FUNC(mpc3000_state::mpc3000_palette), 2); UPD72069(config, m_fdc, 16_MHz_XTAL); // clocked by V53 CLKOUT (TODO: upd72069 supports motor control) - //m_fdc->intrq_wr_callback().set(m_maincpu, FUNC(v53a_device::ir?_w)); - //m_fdc->drq_wr_callback().set(m_maincpu, FUNC(v53a_device::drq?_w)); + m_fdc->intrq_wr_callback().set("intp3", FUNC(input_merger_device::in_w<0>)); + m_fdc->drq_wr_callback().set(m_maincpu, FUNC(v53a_device::dreq_w<1>)); FLOPPY_CONNECTOR(config, m_floppy, mpc3000_state::floppies, "35hd", floppy_image_device::default_mfm_floppy_formats); @@ -252,7 +261,7 @@ void mpc3000_state::mpc3000(machine_config &config) I8255(config, "adcexp"); // MB89255B I8255(config, "dioexp"); // MB89255B - HD61830(config, m_lcdc, 4.9152_MHz_XTAL / 2 / 2); + HD61830(config, m_lcdc, 4.9152_MHz_XTAL / 2 / 2); // LC7981 //TE7774(config, "sio", 16_MHz_XTAL / 4); @@ -262,7 +271,9 @@ void mpc3000_state::mpc3000(machine_config &config) midiout_slot(MIDI_PORT(config, "mdout")); - //MB89352(config, "spc", 16_MHz_XTAL / 2); + //mb89352_device &spc(MB89352(config, "spc", 16_MHz_XTAL / 2)); + //spc.irq_cb().set("intp3", FUNC(input_merger_device::in_w<1>)); + //spc.drq_cb().set(m_maincpu, FUNC(v53a_device::dreq_w<0>)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -- cgit v1.2.3