From 135e69c4a1f4f0351596779bb24a1c2fe8c81c54 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Fri, 30 Dec 2022 21:34:07 -1000 Subject: [PATCH] SCP: Add SET CONSOLE TELNET=CONNECT to open a window running telnet to console --- README.md | 1 + doc/simh_doc.doc | Bin 325120 -> 325632 bytes frontpanel/FrontPanelTest.c | 11 +---- scp.c | 3 +- sim_console.c | 89 ++++++++++++++++++++++++++++++++++++ sim_console.h | 1 + 6 files changed, 95 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 70de8554..1d27bc94 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ All Simulator updates on Open SIMH will be present in this repository, and any c - TAPE and SCSI libraries have been extended to fully support partial record reads of fixed sized records which may contain multiple records in recorded data. Images of this type are common for QIC tape archives generally available on bitsavers and elsewhere. Attach time checking on simulated QIC tape devices reports possible problems that may occur. - Github CI Actions builds of all simulators for Linux, macOS and Windows platforms. - All the available simulator defined environment variables are documented in the help and sim_doc document file. +- SET CONSOLE TELNET=CONNECT will start a telnet session to the simulator console in a separate window. #### Changes to the PDP-11 and VAX simulators also not in the Open SIMH repo diff --git a/doc/simh_doc.doc b/doc/simh_doc.doc index 8bf94fc571a0023da766313a635de0e59402a0c9..b64e039240bb82c4442efcfd77fdd61c50aa8be7 100644 GIT binary patch delta 48662 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/dev/null&", port); + return spawn_cmd (0, gbuf); + } +program = sim_get_tool_path ("gnome-terminal"); +if (program[0] != '\0') { + snprintf (gbuf, sizeof (gbuf), "nohup gnome-terminal -- telnet localhost %d' 2>/dev/null&", port); + return spawn_cmd (0, gbuf); + } +program = sim_get_tool_path ("uxterm"); +if (program[0] != '\0') { + snprintf (gbuf, sizeof (gbuf), "nohup uxterm -e 'telnet localhost %d' 2>/dev/null&", port); + return spawn_cmd (0, gbuf); + } +program = sim_get_tool_path ("xterm"); +if (program[0] != '\0') { + snprintf (gbuf, sizeof (gbuf), "nohup xterm -e 'telnet localhost %d' 2>/dev/null&", port); + return spawn_cmd (0, gbuf); + } +return sim_messagef (SCPE_NOFNC, "Can't find a telnet program to connect to the console in a window\n"); +} + #endif /* Decode a string. diff --git a/sim_console.h b/sim_console.h index b73348ee..e044bf35 100644 --- a/sim_console.h +++ b/sim_console.h @@ -88,6 +88,7 @@ t_stat sim_set_cons_buff (int32 flg, CONST char *cptr); t_stat sim_set_cons_unbuff (int32 flg, CONST char *cptr); t_stat sim_set_cons_log (int32 flg, CONST char *cptr); t_stat sim_set_cons_nolog (int32 flg, CONST char *cptr); +t_stat sim_set_cons_connect (int32 flg, CONST char *cptr); t_stat sim_set_deboff (int32 flag, CONST char *cptr); t_stat sim_set_cons_expect (int32 flg, CONST char *cptr); t_stat sim_set_cons_noexpect (int32 flg, CONST char *cptr);