From f2656acb380b9174f29fc042bc48913e51ca6a07 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 19 Jun 2016 08:08:19 -0700 Subject: [PATCH] TMXR: Fix logic which interprets DTR transitions --- sim_tmxr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sim_tmxr.c b/sim_tmxr.c index 8eb4fa03..55d1dc2c 100644 --- a/sim_tmxr.c +++ b/sim_tmxr.c @@ -1502,7 +1502,7 @@ if (lp->mp && lp->modem_control) { /* This API ONLY works on mo if (lp->serport) return sim_control_serial (lp->serport, bits_to_set, bits_to_clear, incoming_bits); if ((lp->sock) || (lp->connecting)) { - if ((~before_modem_bits & bits_to_clear & TMXR_MDM_DTR) != 0) { /* drop DTR? */ + if ((before_modem_bits & bits_to_clear & TMXR_MDM_DTR) != 0) { /* drop DTR? */ if (lp->sock) tmxr_report_disconnection (lp); /* report closure */ tmxr_reset_ln (lp); @@ -1510,7 +1510,7 @@ if (lp->mp && lp->modem_control) { /* This API ONLY works on mo } else { if ((lp->destination) && /* Virtual Null Modem Cable */ - ((bits_to_set ^ before_modem_bits) & /* and DTR being Raised */ + (bits_to_set & ~before_modem_bits & /* and DTR being Raised */ TMXR_MDM_DTR)) { char msg[512]; @@ -1523,7 +1523,7 @@ if (lp->mp && lp->modem_control) { /* This API ONLY works on mo return SCPE_OK; } if ((lp->sock) || (lp->connecting)) { - if ((~before_modem_bits & bits_to_clear & TMXR_MDM_DTR) != 0) { /* drop DTR? */ + if ((before_modem_bits & bits_to_clear & TMXR_MDM_DTR) != 0) { /* drop DTR? */ if (lp->sock) tmxr_report_disconnection (lp); /* report closure */ tmxr_reset_ln (lp); @@ -1531,7 +1531,7 @@ if ((lp->sock) || (lp->connecting)) { } if ((lp->serport) && (!lp->loopback)) sim_control_serial (lp->serport, 0, 0, incoming_bits); -return SCPE_IERR; +return SCPE_INCOMP; } /* Enable or Disable loopback mode on a line