From d6338f3bf46d502e73adb2a86355f64fa0eff1a4 Mon Sep 17 00:00:00 2001 From: fulivi Date: Mon, 18 Jul 2016 16:23:21 +0200 Subject: [PATCH] i8251: RTS and DTR outputs now use negative logic (0 = active) --- src/devices/bus/rs232/null_modem.cpp | 6 +++--- src/devices/bus/rs232/null_modem.h | 4 ++-- src/devices/machine/i8251.cpp | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/devices/bus/rs232/null_modem.cpp b/src/devices/bus/rs232/null_modem.cpp index 63df2f925b7..525da0af415 100644 --- a/src/devices/bus/rs232/null_modem.cpp +++ b/src/devices/bus/rs232/null_modem.cpp @@ -16,7 +16,7 @@ null_modem_device::null_modem_device(const machine_config &mconfig, const char * m_input_count(0), m_input_index(0), m_timer_poll(nullptr), - m_rts(ASSERT_LINE) + m_rts(0) { } @@ -70,7 +70,7 @@ WRITE_LINE_MEMBER(null_modem_device::update_serial) output_dsr(0); output_cts(0); - m_rts = ASSERT_LINE; + m_rts = 0; } void null_modem_device::device_reset() @@ -102,7 +102,7 @@ void null_modem_device::queue() m_input_count = m_stream->input(m_input_buffer, sizeof(m_input_buffer)); } - if (m_input_count != 0 && m_rts == ASSERT_LINE) + if (m_input_count != 0 && m_rts == 0) { transmit_register_setup(m_input_buffer[m_input_index++]); diff --git a/src/devices/bus/rs232/null_modem.h b/src/devices/bus/rs232/null_modem.h index 2db8b428879..15792f448e7 100644 --- a/src/devices/bus/rs232/null_modem.h +++ b/src/devices/bus/rs232/null_modem.h @@ -15,7 +15,7 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; virtual WRITE_LINE_MEMBER( input_txd ) override { device_serial_interface::rx_w(state); } - virtual WRITE_LINE_MEMBER( input_rts ) override { m_rts = (line_state) state; } + virtual WRITE_LINE_MEMBER( input_rts ) override { m_rts = state; } DECLARE_WRITE_LINE_MEMBER(update_serial); @@ -47,7 +47,7 @@ private: UINT32 m_input_count; UINT32 m_input_index; emu_timer *m_timer_poll; - line_state m_rts; + int m_rts; }; extern const device_type NULL_MODEM; diff --git a/src/devices/machine/i8251.cpp b/src/devices/machine/i8251.cpp index 3cb0f59a02c..7b0d272970d 100644 --- a/src/devices/machine/i8251.cpp +++ b/src/devices/machine/i8251.cpp @@ -416,8 +416,8 @@ WRITE8_MEMBER(i8251_device::command_w) 1 = transmit enable */ - m_rts_handler(BIT(data, 5)); - m_dtr_handler(BIT(data, 1)); + m_rts_handler(!BIT(data, 5)); + m_dtr_handler(!BIT(data, 1)); if (data & (1<<4)) {