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;