diff options
author | 2020-11-12 20:53:25 -0800 | |
---|---|---|
committer | 2020-11-13 15:53:25 +1100 | |
commit | c3264ca803b5e29ee34bacffbaae314f19c9ac37 (patch) | |
tree | 92aab555990c2073d2020f5d6cf657a8843e9a28 | |
parent | fe9ac15ca9f027d0eb5e21aa5496e3d6fa674e45 (diff) |
coco12.cpp, coco3.cpp, dragon.cpp: Removed IRQ trampolines from CoCo driver family. (#7393)
* Also fixed dragon 32 parallel port.
-rw-r--r-- | src/mame/drivers/coco12.cpp | 11 | ||||
-rw-r--r-- | src/mame/drivers/coco3.cpp | 19 | ||||
-rw-r--r-- | src/mame/drivers/dragon.cpp | 27 | ||||
-rw-r--r-- | src/mame/includes/coco.h | 16 | ||||
-rw-r--r-- | src/mame/includes/coco3.h | 7 | ||||
-rw-r--r-- | src/mame/includes/dgnalpha.h | 9 | ||||
-rw-r--r-- | src/mame/includes/dragon.h | 2 | ||||
-rw-r--r-- | src/mame/machine/coco.cpp | 98 | ||||
-rw-r--r-- | src/mame/machine/coco3.cpp | 22 | ||||
-rw-r--r-- | src/mame/machine/dgnalpha.cpp | 43 | ||||
-rw-r--r-- | src/mame/machine/dragon.cpp | 2 |
11 files changed, 45 insertions, 211 deletions
diff --git a/src/mame/drivers/coco12.cpp b/src/mame/drivers/coco12.cpp index df8a8c60d12..210e81f4e2d 100644 --- a/src/mame/drivers/coco12.cpp +++ b/src/mame/drivers/coco12.cpp @@ -492,13 +492,16 @@ void coco12_state::coco(machine_config &config) m_maincpu->set_dasm_override(FUNC(coco_state::dasm_override)); // devices + INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); + INPUT_MERGER_ANY_HIGH(config, m_firqs).output_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE); + pia6821_device &pia0(PIA6821(config, PIA0_TAG, 0)); pia0.writepa_handler().set(FUNC(coco_state::pia0_pa_w)); pia0.writepb_handler().set(FUNC(coco_state::pia0_pb_w)); pia0.ca2_handler().set(FUNC(coco_state::pia0_ca2_w)); pia0.cb2_handler().set(FUNC(coco_state::pia0_cb2_w)); - pia0.irqa_handler().set(FUNC(coco_state::pia0_irq_a)); - pia0.irqb_handler().set(FUNC(coco_state::pia0_irq_b)); + pia0.irqa_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); + pia0.irqb_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); pia6821_device &pia1(PIA6821(config, PIA1_TAG, 0)); pia1.readpa_handler().set(FUNC(coco_state::pia1_pa_r)); @@ -507,8 +510,8 @@ void coco12_state::coco(machine_config &config) pia1.writepb_handler().set(FUNC(coco_state::pia1_pb_w)); pia1.ca2_handler().set(FUNC(coco_state::pia1_ca2_w)); pia1.cb2_handler().set(FUNC(coco_state::pia1_cb2_w)); - pia1.irqa_handler().set(FUNC(coco_state::pia1_firq_a)); - pia1.irqb_handler().set(FUNC(coco_state::pia1_firq_b)); + pia1.irqa_handler().set(m_firqs, FUNC(input_merger_device::in_w<0>)); + pia1.irqb_handler().set(m_firqs, FUNC(input_merger_device::in_w<1>)); SAM6883(config, m_sam, XTAL(14'318'181), m_maincpu); m_sam->set_addrmap(0, &coco12_state::coco_ram); diff --git a/src/mame/drivers/coco3.cpp b/src/mame/drivers/coco3.cpp index f105e8a8437..ff8fbdc74c1 100644 --- a/src/mame/drivers/coco3.cpp +++ b/src/mame/drivers/coco3.cpp @@ -262,13 +262,16 @@ void coco3_state::coco3(machine_config &config) m_maincpu->set_dasm_override(FUNC(coco_state::dasm_override)); // devices + INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); + INPUT_MERGER_ANY_HIGH(config, m_firqs).output_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE); + pia6821_device &pia0(PIA6821(config, PIA0_TAG, 0)); pia0.writepa_handler().set(FUNC(coco_state::pia0_pa_w)); pia0.writepb_handler().set(FUNC(coco_state::pia0_pb_w)); pia0.ca2_handler().set(FUNC(coco_state::pia0_ca2_w)); pia0.cb2_handler().set(FUNC(coco_state::pia0_cb2_w)); - pia0.irqa_handler().set(FUNC(coco_state::pia0_irq_a)); - pia0.irqb_handler().set(FUNC(coco_state::pia0_irq_b)); + pia0.irqa_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); + pia0.irqb_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); pia6821_device &pia1(PIA6821(config, PIA1_TAG, 0)); pia1.readpa_handler().set(FUNC(coco_state::pia1_pa_r)); @@ -277,8 +280,8 @@ void coco3_state::coco3(machine_config &config) pia1.writepb_handler().set(FUNC(coco_state::pia1_pb_w)); pia1.ca2_handler().set(FUNC(coco_state::pia1_ca2_w)); pia1.cb2_handler().set(FUNC(coco_state::pia1_cb2_w)); - pia1.irqa_handler().set(FUNC(coco_state::pia1_firq_a)); - pia1.irqb_handler().set(FUNC(coco_state::pia1_firq_b)); + pia1.irqa_handler().set(m_firqs, FUNC(input_merger_device::in_w<0>)); + pia1.irqb_handler().set(m_firqs, FUNC(input_merger_device::in_w<1>)); // Becker Port device COCO_DWSOCK(config, DWSOCK_TAG, 0); @@ -309,8 +312,8 @@ void coco3_state::coco3(machine_config &config) m_gime->set_screen(COMPOSITE_SCREEN_TAG); m_gime->hsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::ca1_w)); m_gime->fsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::cb1_w)); - m_gime->irq_wr_callback().set(FUNC(coco3_state::gime_irq_w)); - m_gime->firq_wr_callback().set(FUNC(coco3_state::gime_firq_w)); + m_gime->irq_wr_callback().set(m_irqs, FUNC(input_merger_device::in_w<2>)); + m_gime->firq_wr_callback().set(m_firqs, FUNC(input_merger_device::in_w<2>)); m_gime->floating_bus_rd_callback().set(FUNC(coco3_state::floating_bus_r)); // composite monitor @@ -351,8 +354,8 @@ void coco3_state::coco3p(machine_config &config) m_gime->set_screen(COMPOSITE_SCREEN_TAG); m_gime->hsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::ca1_w)); m_gime->fsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::cb1_w)); - m_gime->irq_wr_callback().set(FUNC(coco3_state::gime_irq_w)); - m_gime->firq_wr_callback().set(FUNC(coco3_state::gime_firq_w)); + m_gime->irq_wr_callback().set(m_irqs, FUNC(input_merger_device::in_w<2>)); + m_gime->firq_wr_callback().set(m_firqs, FUNC(input_merger_device::in_w<2>)); m_gime->floating_bus_rd_callback().set(FUNC(coco3_state::floating_bus_r)); } diff --git a/src/mame/drivers/dragon.cpp b/src/mame/drivers/dragon.cpp index ad72ad2e5c4..d3c7064c42a 100644 --- a/src/mame/drivers/dragon.cpp +++ b/src/mame/drivers/dragon.cpp @@ -262,13 +262,16 @@ void dragon_state::dragon_base(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &dragon_state::dragon_mem); // devices + INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); + INPUT_MERGER_ANY_HIGH(config, m_firqs).output_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE); + pia6821_device &pia0(PIA6821(config, PIA0_TAG, 0)); pia0.writepa_handler().set(FUNC(coco_state::pia0_pa_w)); pia0.writepb_handler().set(FUNC(coco_state::pia0_pb_w)); pia0.ca2_handler().set(FUNC(coco_state::pia0_ca2_w)); pia0.cb2_handler().set(FUNC(coco_state::pia0_cb2_w)); - pia0.irqa_handler().set(FUNC(coco_state::pia0_irq_a)); - pia0.irqb_handler().set(FUNC(coco_state::pia0_irq_b)); + pia0.irqa_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); + pia0.irqb_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); pia6821_device &pia1(PIA6821(config, PIA1_TAG, 0)); pia1.readpa_handler().set(FUNC(coco_state::pia1_pa_r)); @@ -277,8 +280,8 @@ void dragon_state::dragon_base(machine_config &config) pia1.writepb_handler().set(FUNC(coco_state::pia1_pb_w)); pia1.ca2_handler().set(FUNC(coco_state::pia1_ca2_w)); pia1.cb2_handler().set(FUNC(coco_state::pia1_cb2_w)); - pia1.irqa_handler().set(FUNC(coco_state::pia1_firq_a)); - pia1.irqb_handler().set(FUNC(coco_state::pia1_firq_b)); + pia1.irqa_handler().set(m_firqs, FUNC(input_merger_device::in_w<0>)); + pia1.irqb_handler().set(m_firqs, FUNC(input_merger_device::in_w<1>)); SAM6883(config, m_sam, 14.218_MHz_XTAL, m_maincpu); m_sam->set_addrmap(0, &dragon_state::coco_ram); @@ -351,7 +354,7 @@ void dragon64_state::dragon64(machine_config &config) // acia mos6551_device &acia(MOS6551(config, "acia", 0)); acia.set_xtal(1.8432_MHz_XTAL); - acia.irq_handler().set(FUNC(dragon64_state::acia_irq)); + acia.irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<2>)); acia.txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); @@ -365,11 +368,6 @@ void dragon64_state::dragon64(machine_config &config) SOFTWARE_LIST(config, "dragon_os9_list").set_original("dragon_os9"); } -WRITE_LINE_MEMBER( dragon64_state::acia_irq ) -{ - m_maincpu->set_input_line(M6809_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); -} - void dragon64_state::dragon64h(machine_config &config) { dragon64(config); @@ -418,10 +416,13 @@ void dragon_alpha_state::dgnalpha(machine_config &config) sam().set_addrmap(4, &dragon_alpha_state::d64_io0); sam().set_addrmap(5, &dragon_alpha_state::dgnalpha_io1); + // input merger + INPUT_MERGER_ANY_HIGH(config, m_nmis).output_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); + // cartridge cococart_slot_device &cartslot(COCOCART_SLOT(config, CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), dragon_cart, nullptr)); cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded - cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); + cartslot.nmi_callback().set(m_nmis, FUNC(input_merger_device::in_w<0>)); cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT); // acia @@ -447,8 +448,8 @@ void dragon_alpha_state::dgnalpha(machine_config &config) // pia 2 pia6821_device &pia2(PIA6821(config, PIA2_TAG, 0)); pia2.writepa_handler().set(FUNC(dragon_alpha_state::pia2_pa_w)); - pia2.irqa_handler().set(FUNC(dragon_alpha_state::pia2_firq_a)); - pia2.irqb_handler().set(FUNC(dragon_alpha_state::pia2_firq_b)); + pia2.irqa_handler().set(m_firqs, FUNC(input_merger_device::in_w<2>)); + pia2.irqb_handler().set(m_firqs, FUNC(input_merger_device::in_w<3>)); // software lists SOFTWARE_LIST(config, "dgnalpha_flop_list").set_original("dgnalpha_flop"); diff --git a/src/mame/includes/coco.h b/src/mame/includes/coco.h index 6010e3f81d1..433c5c53121 100644 --- a/src/mame/includes/coco.h +++ b/src/mame/includes/coco.h @@ -24,7 +24,7 @@ #include "machine/bankdev.h" #include "sound/dac.h" #include "screen.h" - +#include "machine/input_merger.h" //************************************************************************** // MACROS / CONSTANTS @@ -102,8 +102,6 @@ public: void pia0_pb_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER( pia0_ca2_w ); DECLARE_WRITE_LINE_MEMBER( pia0_cb2_w ); - DECLARE_WRITE_LINE_MEMBER( pia0_irq_a ); - DECLARE_WRITE_LINE_MEMBER( pia0_irq_b ); // PIA1 uint8_t pia1_pa_r(); @@ -112,8 +110,6 @@ public: void pia1_pb_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER( pia1_ca2_w ); DECLARE_WRITE_LINE_MEMBER( pia1_cb2_w ); - DECLARE_WRITE_LINE_MEMBER( pia1_firq_a ); - DECLARE_WRITE_LINE_MEMBER( pia1_firq_b ); // floating bus & "space" uint8_t floating_bus_r() { return floating_bus_read(); } @@ -139,12 +135,6 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - // interrupts - virtual bool firq_get_line(void); - virtual bool irq_get_line(void); - void recalculate_irq(void); - void recalculate_firq(void); - // changed handlers virtual void pia1_pa_changed(uint8_t data); virtual void pia1_pb_changed(uint8_t data); @@ -242,7 +232,9 @@ protected: optional_device<coco_vhd_image_device> m_vhd_0; optional_device<coco_vhd_image_device> m_vhd_1; optional_device<beckerport_device> m_beckerport; - optional_ioport m_beckerportconfig; + optional_ioport m_beckerportconfig; + required_device<input_merger_device> m_irqs; + required_device<input_merger_device> m_firqs; // input ports required_ioport_array<7> m_keyboard; diff --git a/src/mame/includes/coco3.h b/src/mame/includes/coco3.h index de58fc3d807..3de83a58a48 100644 --- a/src/mame/includes/coco3.h +++ b/src/mame/includes/coco3.h @@ -44,9 +44,6 @@ public: virtual uint8_t ff40_read(offs_t offset) override; virtual void ff40_write(offs_t offset, uint8_t data) override; - DECLARE_WRITE_LINE_MEMBER(gime_firq_w) { recalculate_firq(); } - DECLARE_WRITE_LINE_MEMBER(gime_irq_w) { recalculate_irq(); } - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void coco3p(machine_config &config); @@ -57,10 +54,6 @@ public: protected: virtual void update_cart_base(uint8_t *cart_base) override; - // interrupts - virtual bool firq_get_line(void) override; - virtual bool irq_get_line(void) override; - // miscellaneous virtual void update_keyboard_input(uint8_t value) override; virtual void cart_w(bool line) override; diff --git a/src/mame/includes/dgnalpha.h b/src/mame/includes/dgnalpha.h index 8cfb8bb1b88..4bcbe623073 100644 --- a/src/mame/includes/dgnalpha.h +++ b/src/mame/includes/dgnalpha.h @@ -44,7 +44,8 @@ public: m_pia_2(*this, PIA2_TAG), m_ay8912(*this, AY8912_TAG), m_fdc(*this, WD2797_TAG), - m_floppy(*this, WD2797_TAG ":%u", 0U) + m_floppy(*this, WD2797_TAG ":%u", 0U), + m_nmis(*this, "nmis") { } @@ -55,8 +56,6 @@ private: /* pia2 */ void pia2_pa_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER( pia2_firq_a ); - DECLARE_WRITE_LINE_MEMBER( pia2_firq_b ); /* psg */ uint8_t psg_porta_read(); @@ -70,15 +69,13 @@ private: virtual void device_start(void) override; virtual void device_reset(void) override; - /* interrupts */ - virtual bool firq_get_line(void) override; - void dgnalpha_io1(address_map &map); required_device<pia6821_device> m_pia_2; required_device<ay8912_device> m_ay8912; required_device<wd2797_device> m_fdc; required_device_array<floppy_connector, 4> m_floppy; + required_device<input_merger_device> m_nmis; /* modem */ uint8_t modem_r(offs_t offset); diff --git a/src/mame/includes/dragon.h b/src/mame/includes/dragon.h index 277b3198543..fdc449ae6f8 100644 --- a/src/mame/includes/dragon.h +++ b/src/mame/includes/dragon.h @@ -69,7 +69,7 @@ public: void dragon64(machine_config &config); void tanodr64h(machine_config &config); void dragon64h(machine_config &config); - DECLARE_WRITE_LINE_MEMBER( acia_irq ); + protected: void d64_rom0(address_map &map); void d64_rom1(address_map &map); diff --git a/src/mame/machine/coco.cpp b/src/mame/machine/coco.cpp index c6f5f536386..18bcfd9be21 100644 --- a/src/mame/machine/coco.cpp +++ b/src/mame/machine/coco.cpp @@ -98,6 +98,8 @@ coco_state::coco_state(const machine_config &mconfig, device_type type, const ch m_vhd_1(*this, VHD1_TAG), m_beckerport(*this, DWSOCK_TAG), m_beckerportconfig(*this, BECKERPORT_TAG), + m_irqs(*this, "irqs"), + m_firqs(*this, "firqs"), m_keyboard(*this, "row%u", 0), m_joystick_type_control(*this, CTRL_SEL_TAG), m_joystick_hires_control(*this, HIRES_INTF_TAG), @@ -374,29 +376,6 @@ WRITE_LINE_MEMBER( coco_state::pia0_cb2_w ) } - -//------------------------------------------------- -// pia0_irq_a -//------------------------------------------------- - -WRITE_LINE_MEMBER( coco_state::pia0_irq_a ) -{ - recalculate_irq(); -} - - - -//------------------------------------------------- -// pia0_irq_b -//------------------------------------------------- - -WRITE_LINE_MEMBER( coco_state::pia0_irq_b ) -{ - recalculate_irq(); -} - - - /*************************************************************************** PIA1 ($FF20-$FF3F) (Chip U4) @@ -522,29 +501,6 @@ WRITE_LINE_MEMBER( coco_state::pia1_cb2_w ) } - -//------------------------------------------------- -// pia1_firq_a -//------------------------------------------------- - -WRITE_LINE_MEMBER( coco_state::pia1_firq_a ) -{ - recalculate_firq(); -} - - - -//------------------------------------------------- -// pia1_firq_b -//------------------------------------------------- - -WRITE_LINE_MEMBER( coco_state::pia1_firq_b ) -{ - recalculate_firq(); -} - - - /*************************************************************************** CPU INTERRUPTS @@ -565,56 +521,6 @@ WRITE_LINE_MEMBER( coco_state::pia1_firq_b ) ***************************************************************************/ -//------------------------------------------------- -// irq_get_line - gets the value of the FIRQ line -// passed into the CPU -//------------------------------------------------- - -bool coco_state::irq_get_line(void) -{ - return pia_0().irq_a_state() || pia_0().irq_b_state(); -} - - - -//------------------------------------------------- -// recalculate_irq -//------------------------------------------------- - -void coco_state::recalculate_irq(void) -{ - bool line = irq_get_line(); - if (LOG_INTERRUPTS) - logerror("recalculate_irq(): line=%d\n", line ? 1 : 0); - m_maincpu->set_input_line(M6809_IRQ_LINE, line ? ASSERT_LINE : CLEAR_LINE); -} - - - -//------------------------------------------------- -// firq_get_line - gets the value of the FIRQ line -// passed into the CPU -//------------------------------------------------- - -bool coco_state::firq_get_line(void) -{ - return pia_1().irq_a_state() || pia_1().irq_b_state(); -} - - - -//------------------------------------------------- -// recalculate_firq -//------------------------------------------------- - -void coco_state::recalculate_firq(void) -{ - bool line = firq_get_line(); - if (LOG_INTERRUPTS) - logerror("recalculate_firq(): line=%d\n", line ? 1 : 0); - m_maincpu->set_input_line(M6809_FIRQ_LINE, line ? ASSERT_LINE : CLEAR_LINE); -} - /*************************************************************************** diff --git a/src/mame/machine/coco3.cpp b/src/mame/machine/coco3.cpp index c5f11097566..b49d79ef2b0 100644 --- a/src/mame/machine/coco3.cpp +++ b/src/mame/machine/coco3.cpp @@ -87,28 +87,6 @@ void coco3_state::ff40_write(offs_t offset, uint8_t data) //------------------------------------------------- -// firq_get_line -//------------------------------------------------- - -bool coco3_state::firq_get_line(void) -{ - return coco_state::firq_get_line() || m_gime->firq_r(); -} - - - -//------------------------------------------------- -// irq_get_line -//------------------------------------------------- - -bool coco3_state::irq_get_line(void) -{ - return coco_state::irq_get_line() || m_gime->irq_r(); -} - - - -//------------------------------------------------- // update_keyboard_input //------------------------------------------------- diff --git a/src/mame/machine/dgnalpha.cpp b/src/mame/machine/dgnalpha.cpp index 599b21501d8..72b3d1a5b95 100644 --- a/src/mame/machine/dgnalpha.cpp +++ b/src/mame/machine/dgnalpha.cpp @@ -91,7 +91,6 @@ void dragon_alpha_state::device_reset(void) } - /*************************************************************************** MODEM ***************************************************************************/ @@ -166,44 +165,6 @@ void dragon_alpha_state::pia2_pa_w(uint8_t data) -//------------------------------------------------- -// pia1_firq_a -//------------------------------------------------- - -WRITE_LINE_MEMBER( dragon_alpha_state::pia2_firq_a ) -{ - recalculate_firq(); -} - - - -//------------------------------------------------- -// pia1_firq_b -//------------------------------------------------- - -WRITE_LINE_MEMBER( dragon_alpha_state::pia2_firq_b ) -{ - recalculate_firq(); -} - - - -/*************************************************************************** - CPU INTERRUPTS -***************************************************************************/ - -//------------------------------------------------- -// firq_get_line - gets the value of the FIRQ line -// passed into the CPU -//------------------------------------------------- - -bool dragon_alpha_state::firq_get_line(void) -{ - return dragon_state::firq_get_line() || m_pia_2->irq_a_state() || m_pia_2->irq_b_state(); -} - - - /*************************************************************************** AY8912 ***************************************************************************/ @@ -259,11 +220,11 @@ WRITE_LINE_MEMBER( dragon_alpha_state::fdc_intrq_w ) if (state) { if (m_pia_2->ca2_output_z()) - m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); + m_nmis->in_w<1>(1); } else { - m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); + m_nmis->in_w<1>(0); } } diff --git a/src/mame/machine/dragon.cpp b/src/mame/machine/dragon.cpp index d3a8abed97e..2be201ac350 100644 --- a/src/mame/machine/dragon.cpp +++ b/src/mame/machine/dragon.cpp @@ -57,7 +57,7 @@ void dragon_state::pia1_pa_changed(uint8_t data) /* if strobe bit is high send data from pia0 port b to dragon parallel printer */ if (data & 0x02) { - uint8_t output = pia_1().b_output(); + uint8_t output = pia_0().b_output(); m_printer->output(output); } } |