From 8f67f2681d91fb4c0aed529e6161d1d29c8664a5 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 23 Oct 2018 11:54:43 -0400 Subject: [PATCH] esprit3: Better interrupt sourcing (nw) --- src/mame/drivers/esprit.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/esprit.cpp b/src/mame/drivers/esprit.cpp index b59d8e5de7e..af96bd9aa06 100644 --- a/src/mame/drivers/esprit.cpp +++ b/src/mame/drivers/esprit.cpp @@ -170,7 +170,8 @@ void esprit_state::esprit3(machine_config &config) INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m6502_device::IRQ_LINE); - ACIA6850(config, "acia"); + acia6850_device &acia(ACIA6850(config, "acia")); + acia.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<2>)); mos6551_device &acia1(MOS6551(config, "acia1", 17.9712_MHz_XTAL / 18)); acia1.set_xtal(1.8432_MHz_XTAL); @@ -181,7 +182,9 @@ void esprit_state::esprit3(machine_config &config) acia2.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); via6522_device &via(VIA6522(config, "via", 17.9712_MHz_XTAL / 18)); - via.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<2>)); + via.irq_handler().set_inputline(m_maincpu, m6502_device::NMI_LINE); + via.writepb_handler().set("acia", FUNC(acia6850_device::write_rxc)).bit(7); + via.writepb_handler().append("acia", FUNC(acia6850_device::write_txc)).bit(7); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -198,6 +201,7 @@ void esprit_state::esprit3(machine_config &config) crtc.set_char_width(9); crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row), this); crtc.set_on_update_addr_change_callback(FUNC(esprit_state::crtc_update_addr), this); + //crtc.out_hsync_callback().set("via", FUNC(via6522_device::write_pb6)).invert(); } ROM_START( esprit )