From 8b893af5dd800e20e6b7b4f15acfa6012659e8f1 Mon Sep 17 00:00:00 2001 From: Robbbert Date: Thu, 11 Feb 2021 03:01:14 +1100 Subject: [PATCH] vt52: fix for vt52 -eia sunkbd "Input ports cannot be read at init time!" --- src/mame/drivers/vt52.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/vt52.cpp b/src/mame/drivers/vt52.cpp index 89af231c04b..1cd36283e1c 100644 --- a/src/mame/drivers/vt52.cpp +++ b/src/mame/drivers/vt52.cpp @@ -43,6 +43,7 @@ public: , m_serial_out(true) , m_rec_data(true) , m_110_baud_counter(0) + , m_ready_for_input(false) { } @@ -83,6 +84,7 @@ private: bool m_serial_out; bool m_rec_data; u8 m_110_baud_counter; + bool m_ready_for_input; }; void vt52_state::machine_start() @@ -90,11 +92,13 @@ void vt52_state::machine_start() save_item(NAME(m_serial_out)); save_item(NAME(m_rec_data)); save_item(NAME(m_110_baud_counter)); + save_item(NAME(m_ready_for_input)); } void vt52_state::machine_reset() { m_110_baud_counter = 0; + m_ready_for_input = true; update_serial_settings(); m_uart->write_swe(0); @@ -224,9 +228,12 @@ WRITE_LINE_MEMBER(vt52_state::rec_data_w) { m_rec_data = state; - ioport_value baud = m_baud_sw->read(); - if (BIT(baud, 9) && ((~baud & 0x0880) == 0 || (m_serial_out && m_break_key->read()))) - m_uart->write_si(state); + if (m_ready_for_input) + { + ioport_value baud = m_baud_sw->read(); + if (BIT(baud, 9) && ((~baud & 0x0880) == 0 || (m_serial_out && m_break_key->read()))) + m_uart->write_si(state); + } } READ_LINE_MEMBER(vt52_state::xrdy_eoc_r)