TMXR: Add debug output reporting line configuration changes

This commit is contained in:
Mark Pizzolato 2022-01-25 16:41:57 -08:00
parent 39f2ab96cc
commit 67845e4301
2 changed files with 19 additions and 4 deletions

View file

@ -1654,6 +1654,7 @@ if (!mp->port_speed_control && mp->uptr && !(mp->uptr->flags & UNIT_ATT))
mp->port_speed_control = TRUE; mp->port_speed_control = TRUE;
for (i=0; i<mp->lines; ++i) for (i=0; i<mp->lines; ++i)
mp->ldsc[i].port_speed_control = mp->port_speed_control; mp->ldsc[i].port_speed_control = mp->port_speed_control;
sim_debug (TMXR_DBG_CFG, mp->dptr, "Speed Mode: Enabled\n");
return SCPE_OK; return SCPE_OK;
} }
@ -1672,6 +1673,7 @@ if (mp->port_speed_control && mp->uptr && !(mp->uptr->flags & UNIT_ATT))
mp->port_speed_control = FALSE; mp->port_speed_control = FALSE;
for (i=0; i<mp->lines; ++i) for (i=0; i<mp->lines; ++i)
mp->ldsc[i].port_speed_control = mp->port_speed_control; mp->ldsc[i].port_speed_control = mp->port_speed_control;
sim_debug (TMXR_DBG_CFG, mp->dptr, "Speed Mode: Disabled\n");
return SCPE_OK; return SCPE_OK;
} }
@ -1690,6 +1692,7 @@ if (mp->uptr && !(mp->uptr->flags & UNIT_ATT))
if (line >= mp->lines) if (line >= mp->lines)
return sim_messagef (SCPE_ARG, "Invalid line for multiplexer: %d\n", line); return sim_messagef (SCPE_ARG, "Invalid line for multiplexer: %d\n", line);
mp->ldsc[line].port_speed_control = TRUE; mp->ldsc[line].port_speed_control = TRUE;
sim_debug (TMXR_DBG_CFG, mp->dptr, "Speed Mode: Enabled for line %d\n", line);
return SCPE_OK; return SCPE_OK;
} }
@ -1706,6 +1709,7 @@ if (mp->uptr && !(mp->uptr->flags & UNIT_ATT))
if (line >= mp->lines) if (line >= mp->lines)
return sim_messagef (SCPE_ARG, "Invalid line for multiplexer: %d\n", line); return sim_messagef (SCPE_ARG, "Invalid line for multiplexer: %d\n", line);
mp->ldsc[line].port_speed_control = FALSE; mp->ldsc[line].port_speed_control = FALSE;
sim_debug (TMXR_DBG_CFG, mp->dptr, "Speed Mode: Disabled for line %d\n", line);
return SCPE_OK; return SCPE_OK;
} }
@ -1913,6 +1917,8 @@ return SCPE_INCOMP;
*/ */
t_stat tmxr_set_line_loopback (TMLN *lp, t_bool enable_loopback) t_stat tmxr_set_line_loopback (TMLN *lp, t_bool enable_loopback)
{ {
DEVICE *dptr = (lp->dptr ? lp->dptr : (lp->mp ? lp->mp->dptr : NULL));
if (lp->loopback == (enable_loopback != FALSE)) if (lp->loopback == (enable_loopback != FALSE))
return SCPE_OK; /* Nothing to do */ return SCPE_OK; /* Nothing to do */
lp->loopback = (enable_loopback != FALSE); lp->loopback = (enable_loopback != FALSE);
@ -1928,6 +1934,7 @@ else {
lp->lpb = NULL; lp->lpb = NULL;
lp->lpbsz = 0; lp->lpbsz = 0;
} }
sim_debug (TMXR_DBG_CFG, dptr, "Loopback %s for line %d\n", enable_loopback ? "Enabled" : "Disabled", (int)(lp - lp->mp->ldsc));
return SCPE_OK; return SCPE_OK;
} }
@ -1952,9 +1959,12 @@ return (lp->loopback != FALSE);
*/ */
t_stat tmxr_set_line_halfduplex (TMLN *lp, t_bool enable_halfduplex) t_stat tmxr_set_line_halfduplex (TMLN *lp, t_bool enable_halfduplex)
{ {
DEVICE *dptr = (lp->dptr ? lp->dptr : (lp->mp ? lp->mp->dptr : NULL));
if (lp->halfduplex == (enable_halfduplex != FALSE)) if (lp->halfduplex == (enable_halfduplex != FALSE))
return SCPE_OK; /* Nothing to do */ return SCPE_OK; /* Nothing to do */
lp->halfduplex = (enable_halfduplex != FALSE); lp->halfduplex = (enable_halfduplex != FALSE);
sim_debug (TMXR_DBG_CFG, dptr, "Half Duplex %s for line %d\n", enable_halfduplex ? "Enabled" : "Disabled", (int)(lp - lp->mp->ldsc));
return SCPE_OK; return SCPE_OK;
} }
@ -1966,6 +1976,8 @@ return (lp->halfduplex != FALSE);
t_stat tmxr_set_config_line (TMLN *lp, CONST char *config) t_stat tmxr_set_config_line (TMLN *lp, CONST char *config)
{ {
t_stat r; t_stat r;
DEVICE *dptr = (lp->dptr ? lp->dptr : (lp->mp ? lp->mp->dptr : NULL));
char *prior = lp->serconfig ? strdup (lp->serconfig) : NULL;
tmxr_debug_trace_line (lp, "tmxr_set_config_line()"); tmxr_debug_trace_line (lp, "tmxr_set_config_line()");
if (lp->serport) { if (lp->serport) {
@ -1982,6 +1994,8 @@ else {
lp->serconfig = NULL; lp->serconfig = NULL;
} }
} }
sim_debug (TMXR_DBG_CFG, dptr, "Line %d changed from %s to %s\n", (int)(lp - lp->mp->ldsc), prior ? prior : "", lp->serconfig);
free (prior);
if ((r == SCPE_OK) && (lp->mp) && (lp->mp->uptr)) /* Record port state for proper restore */ if ((r == SCPE_OK) && (lp->mp) && (lp->mp->uptr)) /* Record port state for proper restore */
lp->mp->uptr->filename = tmxr_mux_attach_string (lp->mp->uptr->filename, lp->mp); lp->mp->uptr->filename = tmxr_mux_attach_string (lp->mp->uptr->filename, lp->mp);
return r; return r;

View file

@ -66,10 +66,11 @@ typedef struct SERPORT *SERHANDLE;
#define TMXR_MODEM_RING_TIME 3 /* seconds to wait for DTR for incoming connections */ #define TMXR_MODEM_RING_TIME 3 /* seconds to wait for DTR for incoming connections */
#define TMXR_DEFAULT_CONNECT_POLL_INTERVAL 1 /* seconds between connection polls */ #define TMXR_DEFAULT_CONNECT_POLL_INTERVAL 1 /* seconds between connection polls */
#define TMXR_DBG_XMT 0x00200000 /* Debug Transmit Data */ #define TMXR_DBG_XMT 0x00100000 /* Debug Transmit Data */
#define TMXR_DBG_RCV 0x00400000 /* Debug Received Data */ #define TMXR_DBG_RCV 0x00200000 /* Debug Received Data */
#define TMXR_DBG_RET 0x00800000 /* Debug Returned Received Data */ #define TMXR_DBG_RET 0x00400000 /* Debug Returned Received Data */
#define TMXR_DBG_MDM 0x01000000 /* Debug Modem Signals */ #define TMXR_DBG_MDM 0x00800000 /* Debug Modem Signals */
#define TMXR_DBG_CFG 0x01000000 /* Debug Line Configuration Activities */
#define TMXR_DBG_CON 0x02000000 /* Debug Connection Activities */ #define TMXR_DBG_CON 0x02000000 /* Debug Connection Activities */
#define TMXR_DBG_ASY 0x04000000 /* Debug Asynchronous Activities */ #define TMXR_DBG_ASY 0x04000000 /* Debug Asynchronous Activities */
#define TMXR_DBG_TRC 0x08000000 /* Debug trace routine calls */ #define TMXR_DBG_TRC 0x08000000 /* Debug trace routine calls */