From 6e279976f66e687db6a8d6201b89ae21efcdc623 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Tue, 31 Mar 2026 16:06:15 -1000 Subject: [PATCH] CONSOLE: Support changing console DEVICE Also behave correctly after a SET CONSOLE NOSERIAL command is entered. --- sim_console.c | 3 ++- sim_tmxr.c | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/sim_console.c b/sim_console.c index cd3d7e1c..72097259 100644 --- a/sim_console.c +++ b/sim_console.c @@ -2758,7 +2758,8 @@ if (cptr && (*cptr != 0)) /* too many arguments? * return SCPE_2MARG; if (sim_con_ldsc.serport == 0) /* ignore if already closed */ return SCPE_OK; -return tmxr_close_master (&sim_con_tmxr); /* close master socket */ +tmxr_close_master (&sim_con_tmxr); /* close master socket */ +return tmxr_attach (&sim_con_tmxr, &sim_con_unit, "CONSOLE"); } /* Show the console expect rules and state */ diff --git a/sim_tmxr.c b/sim_tmxr.c index 106f1e50..bef62360 100644 --- a/sim_tmxr.c +++ b/sim_tmxr.c @@ -3755,6 +3755,12 @@ t_stat tmxr_set_console_units (UNIT *rxuptr, UNIT *txuptr) { extern TMXR sim_con_tmxr; +if ((rxuptr == NULL) || (txuptr == NULL)) + return sim_messagef (SCPE_IERR, "tmxr_set_console_units() must specify non NULL receive and transmit units\n"); +if (sim_con_tmxr.uptr) + sim_con_tmxr.uptr->dynflags &= ~UNIT_TM_POLL; +if (sim_con_tmxr.ldsc->o_uptr) + sim_con_tmxr.ldsc->o_uptr->dynflags &= ~UNIT_TM_POLL; rxuptr->tmxr = &sim_con_tmxr; txuptr->tmxr = &sim_con_tmxr; tmxr_set_line_unit (&sim_con_tmxr, 0, rxuptr); @@ -3762,7 +3768,6 @@ tmxr_set_line_output_unit (&sim_con_tmxr, 0, txuptr); return SCPE_OK; } - static TMXR **tmxr_open_devices = NULL; static int tmxr_open_device_count = 0;