From 5d86b4704f1313c382ebff5003d1f74e57ca4423 Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Mon, 10 Jan 2022 23:05:50 -0500 Subject: [PATCH] KA10: Cleanup help messages. --- PDP10/kl10_fe.c | 10 +- PDP10/ks10_dz.c | 38 ++++--- PDP10/ks10_tcu.c | 274 +++++++++++++++++++++++------------------------ PDP10/kx10_rp.c | 11 ++ PDP10/kx10_sys.c | 3 + PDP10/kx10_tu.c | 11 ++ 6 files changed, 186 insertions(+), 161 deletions(-) diff --git a/PDP10/kl10_fe.c b/PDP10/kl10_fe.c index 49730f8..90ad46b 100644 --- a/PDP10/kl10_fe.c +++ b/PDP10/kl10_fe.c @@ -2206,15 +2206,11 @@ lp20_getlpp(FILE *st, UNIT *uptr, int32 v, CONST void *desc) t_stat lp20_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) { -fprintf (st, "Line Printer (LPT)\n\n"); -fprintf (st, "The line printer (LPT) writes data to a disk file. The POS register specifies\n"); -fprintf (st, "the number of the next data item to be written. Thus, by changing POS, the\n"); -fprintf (st, "user can backspace or advance the printer.\n"); +fprintf (st, "Line Printer (LP20)\n\n"); +fprintf (st, "The line printer (LP20) writes data to a disk file.\n"); fprintf (st, "The Line printer can be configured to any number of lines per page with the:\n"); -fprintf (st, " sim> SET %s0 LINESPERPAGE=n\n\n", dptr->name); +fprintf (st, " sim> SET %s LINESPERPAGE=n\n\n", dptr->name); fprintf (st, "The default is 66 lines per page.\n\n"); -fprintf (st, "The device address of the Line printer can be changed\n"); -fprintf (st, " sim> SET %s0 DEV=n\n\n", dptr->name); fprint_set_help (st, dptr); fprint_show_help (st, dptr); fprint_reg_help (st, dptr); diff --git a/PDP10/ks10_dz.c b/PDP10/ks10_dz.c index fef5501..8e1f807 100644 --- a/PDP10/ks10_dz.c +++ b/PDP10/ks10_dz.c @@ -613,15 +613,10 @@ dz_detach (UNIT *uptr) t_stat dz_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) { -fprintf (st, "DC10E Terminal Interfaces\n\n"); -fprintf (st, "The DC10 supported up to 8 blocks of 8 lines. Modem control was on a seperate\n"); -fprintf (st, "line. The simulator supports this by setting modem control to a fixed offset\n"); -fprintf (st, "from the given line. The number of lines is specified with a SET command:\n\n"); -fprintf (st, " sim> SET DC LINES=n set number of additional lines to n [8-32]\n\n"); +fprintf (st, "DZ11 Terminal Interfaces\n\n"); +fprintf (st, "Each DZ11 supports 8 serial lines. Up to 32 can be configured\n"); +fprintf (st, " sim> SET DZ LINES=n set number of additional lines to n [8-32]\n\n"); fprintf (st, "Lines must be set in multiples of 8.\n"); -fprintf (st, "The default offset for modem lines is 32. This can be changed with\n\n"); -fprintf (st, " sim> SET DC MODEM=n set offset for modem control to n [8-32]\n\n"); -fprintf (st, "Modem control must be set larger then the number of lines\n"); fprintf (st, "The ATTACH command specifies the port to be used:\n\n"); tmxr_attach_help (st, dptr, uptr, flag, cptr); fprintf (st, "The additional terminals can be set to one of four modes: UC, 7P, 7B, or 8B.\n\n"); @@ -634,22 +629,31 @@ fprintf (st, " non-printing characters suppressed fprintf (st, " 7B high-order bit cleared high-order bit cleared\n"); fprintf (st, " 8B no changes no changes\n\n"); fprintf (st, "The default mode is 7P.\n"); -fprintf (st, "Finally, each line supports output logging. The SET DCn LOG command enables\n"); +fprintf (st, "Finally, each line supports output logging. The SET DZn LOG command enables\n"); fprintf (st, "logging on a line:\n\n"); -fprintf (st, " sim> SET DCn LOG=filename log output of line n to filename\n\n"); -fprintf (st, "The SET DCn NOLOG command disables logging and closes the open log file,\n"); +fprintf (st, " sim> SET DZn LOG=filename log output of line n to filename\n\n"); +fprintf (st, "The SET DZn NOLOG command disables logging and closes the open log file,\n"); fprintf (st, "if any.\n\n"); -fprintf (st, "Once DC is attached and the simulator is running, the terminals listen for\n"); +fprintf (st, "Once DZ is attached and the simulator is running, the terminals listen for\n"); fprintf (st, "connections on the specified port. They assume that the incoming connections\n"); fprintf (st, "are Telnet connections. The connections remain open until disconnected either\n"); -fprintf (st, "by the Telnet client, a SET DC DISCONNECT command, or a DETACH DC command.\n\n"); +fprintf (st, "by the Telnet client, a SET DZ DISCONNECT command, or a DETACH DC command.\n\n"); fprintf (st, "Other special commands:\n\n"); -fprintf (st, " sim> SHOW DC CONNECTIONS show current connections\n"); -fprintf (st, " sim> SHOW DC STATISTICS show statistics for active connections\n"); -fprintf (st, " sim> SET DCn DISCONNECT disconnects the specified line.\n"); +fprintf (st, " sim> SHOW DZ CONNECTIONS show current connections\n"); +fprintf (st, " sim> SHOW DZ STATISTICS show statistics for active connections\n"); +fprintf (st, " sim> SET DZn DISCONNECT disconnects the specified line.\n\n"); +fprintf (st, "The DZ11 is a unibus device, various parameters can be changed on these devices\n"); +fprintf (st, "\n The address of the device can be set with: \n"); +fprintf (st, " sim> SET DZ ADDR=octal default address= 760000\n"); +fprintf (st, "\n The interrupt vector can be set with: \n"); +fprintf (st, " sim> SET DZ VECT=octal default 340\n"); +fprintf (st, "\n The interrupt level can be set with: \n"); +fprintf (st, " sim> SET DZ BR=# # should be between 4 and 7.\n"); +fprintf (st, "\n The unibus addaptor that the DZ is on can be set with:\n"); +fprintf (st, " sim> SET DZ CTL=# # can be either 1 or 3\n"); fprint_reg_help (st, &dz_dev); fprintf (st, "\nThe additional terminals do not support save and restore. All open connections\n"); -fprintf (st, "are lost when the simulator shuts down or DC is detached.\n"); +fprintf (st, "are lost when the simulator shuts down or DZ is detached.\n"); return SCPE_OK; } diff --git a/PDP10/ks10_tcu.c b/PDP10/ks10_tcu.c index 0f02a8e..a9e9330 100644 --- a/PDP10/ks10_tcu.c +++ b/PDP10/ks10_tcu.c @@ -1,137 +1,137 @@ -/* ks10_tcu.c: PDP-10 - - Copyright (c) 2021, Richard Cornwell - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - RICHARD CORNWELL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of Richard Cornwell shall not be - used in advertising or otherwise to promote the sale, use or other dealings - in this Software without prior written authorization from Richard Cornwell. - -*/ - -#include "kx10_defs.h" -#include "sim_sock.h" -#include "sim_tmxr.h" - -#ifndef NUM_DEVS_TCU -#define NUM_DEVS_TCU 0 -#endif - -#if (NUM_DEVS_TCU > 0) - -#define UNIT_V_Y2K (UNIT_V_UF + 0) /* Y2K compliant OS */ -#define UNIT_Y2K (1u << UNIT_V_Y2K) - - -int tcu_write(DEVICE *dptr, t_addr addr, uint16 data, int32 access); -int tcu_read(DEVICE *dptr, t_addr addr, uint16 *data, int32 access); -t_stat tcu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, - const char *cptr); -const char *tcu_description (DEVICE *dptr); -DIB tcu_dib = { 0760770, 07, 0, 0, 3, &tcu_read, &tcu_write, NULL, 0, 0 }; - -UNIT tcu_unit = {UDATA (NULL, UNIT_IDLE+UNIT_DISABLE, 0)}; - -MTAB tcu_mod[] = { - {MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "addr", "addr", &uba_set_addr, uba_show_addr, - NULL, "Sets address of TCU" }, - {MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "ctl", "ctl", &uba_set_ctl, uba_show_ctl, - NULL, "Sets uba of TCU" }, - { UNIT_Y2K, 0, "non Y2K OS", "NOY2K", NULL }, - { UNIT_Y2K, UNIT_Y2K, "Y2K OS", "Y2K", NULL }, - { 0 } - }; - -DEVICE tcu_dev = { - "TIM", &tcu_unit, NULL, tcu_mod, - 1, 10, 31, 1, 8, 8, - NULL, NULL, NULL, NULL, NULL, NULL, - &tcu_dib, DEV_DISABLE | DEV_DEBUG, 0, dev_debug, - NULL, NULL, &tcu_help, NULL, NULL, &tcu_description - }; - - -/* Time can't be set in device */ -int -tcu_write(DEVICE *dptr, t_addr addr, uint16 data, int32 access) -{ - if ((dptr->units[0].flags & UNIT_DIS) != 0) - return 1; - - return 0; -} - -/* Read current time of day */ -int -tcu_read(DEVICE *dptr, t_addr addr, uint16 *data, int32 access) -{ - struct pdp_dib *dibp = (DIB *)dptr->ctxt; - time_t curtim; - struct tm *tptr; - - if ((dptr->units[0].flags & UNIT_DIS) != 0) - return 1; - - /* Get time */ - curtim = sim_get_time (NULL); - tptr = localtime (&curtim); - if (tptr == NULL) - return 0; - if ((tptr->tm_year > 99) && !(dptr->units[0].flags & UNIT_Y2K)) - tptr->tm_year = 99; /* Y2K prob? */ - - switch (addr & 06) { - - case 0: /* year/month/day */ - *data = (((tptr->tm_year) & 0177) << 9) | - (((tptr->tm_mon + 1) & 017) << 5) | - ((tptr->tm_mday) & 037); - break; - - case 2: /* hour/minute */ - *data = (((tptr->tm_hour) & 037) << 8) | - ((tptr->tm_min) & 077); - break; - - case 4: /* second */ - *data = (tptr->tm_sec) & 077; - break; - - case 6: /* status */ - *data = 0200; - break; - } - - sim_debug(DEBUG_DETAIL, dptr, "TCU read %06o %06o %o\n", - addr, *data, access); - return 0; -} - - -t_stat tcu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) -{ -return SCPE_OK; -} - -const char *tcu_description (DEVICE *dptr) -{ -return "TCU150 Time of day clock"; -} - -#endif +/* ks10_tcu.c: PDP-10 + + Copyright (c) 2021, Richard Cornwell + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + RICHARD CORNWELL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Richard Cornwell shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from Richard Cornwell. + +*/ + +#include "kx10_defs.h" +#include "sim_sock.h" +#include "sim_tmxr.h" + +#ifndef NUM_DEVS_TCU +#define NUM_DEVS_TCU 0 +#endif + +#if (NUM_DEVS_TCU > 0) + +#define UNIT_V_Y2K (UNIT_V_UF + 0) /* Y2K compliant OS */ +#define UNIT_Y2K (1u << UNIT_V_Y2K) + + +int tcu_write(DEVICE *dptr, t_addr addr, uint16 data, int32 access); +int tcu_read(DEVICE *dptr, t_addr addr, uint16 *data, int32 access); +t_stat tcu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, + const char *cptr); +const char *tcu_description (DEVICE *dptr); +DIB tcu_dib = { 0760770, 07, 0, 0, 3, &tcu_read, &tcu_write, NULL, 0, 0 }; + +UNIT tcu_unit = {UDATA (NULL, UNIT_IDLE+UNIT_DISABLE, 0)}; + +MTAB tcu_mod[] = { + {MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "addr", "addr", &uba_set_addr, uba_show_addr, + NULL, "Sets address of TCU" }, + {MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "ctl", "ctl", &uba_set_ctl, uba_show_ctl, + NULL, "Sets uba of TCU" }, + { UNIT_Y2K, 0, "non Y2K OS", "NOY2K", NULL }, + { UNIT_Y2K, UNIT_Y2K, "Y2K OS", "Y2K", NULL }, + { 0 } + }; + +DEVICE tcu_dev = { + "TIM", &tcu_unit, NULL, tcu_mod, + 1, 10, 31, 1, 8, 8, + NULL, NULL, NULL, NULL, NULL, NULL, + &tcu_dib, DEV_DISABLE | DEV_DEBUG, 0, dev_debug, + NULL, NULL, &tcu_help, NULL, NULL, &tcu_description + }; + + +/* Time can't be set in device */ +int +tcu_write(DEVICE *dptr, t_addr addr, uint16 data, int32 access) +{ + if ((dptr->units[0].flags & UNIT_DIS) != 0) + return 1; + + return 0; +} + +/* Read current time of day */ +int +tcu_read(DEVICE *dptr, t_addr addr, uint16 *data, int32 access) +{ + struct pdp_dib *dibp = (DIB *)dptr->ctxt; + time_t curtim; + struct tm *tptr; + + if ((dptr->units[0].flags & UNIT_DIS) != 0) + return 1; + + /* Get time */ + curtim = sim_get_time (NULL); + tptr = localtime (&curtim); + if (tptr == NULL) + return 0; + if ((tptr->tm_year > 99) && !(dptr->units[0].flags & UNIT_Y2K)) + tptr->tm_year = 99; /* Y2K prob? */ + + switch (addr & 06) { + + case 0: /* year/month/day */ + *data = (((tptr->tm_year) & 0177) << 9) | + (((tptr->tm_mon + 1) & 017) << 5) | + ((tptr->tm_mday) & 037); + break; + + case 2: /* hour/minute */ + *data = (((tptr->tm_hour) & 037) << 8) | + ((tptr->tm_min) & 077); + break; + + case 4: /* second */ + *data = (tptr->tm_sec) & 077; + break; + + case 6: /* status */ + *data = 0200; + break; + } + + sim_debug(DEBUG_DETAIL, dptr, "TCU read %06o %06o %o\n", + addr, *data, access); + return 0; +} + + +t_stat tcu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) +{ +return SCPE_OK; +} + +const char *tcu_description (DEVICE *dptr) +{ +return "TCU150 Time of day clock"; +} + +#endif diff --git a/PDP10/kx10_rp.c b/PDP10/kx10_rp.c index 5e40d28..1df98a5 100644 --- a/PDP10/kx10_rp.c +++ b/PDP10/kx10_rp.c @@ -1271,6 +1271,17 @@ fprint_set_help (st, dptr); fprint_show_help (st, dptr); fprintf (st, "\nThe type options can be used only when a unit is not attached to a file.\n"); fprintf (st, "The RP device supports the BOOT command.\n"); +#if KS +fprintf (st, "The RH11 is a unibus device, various parameters can be changed on these devices\n"); +fprintf (st, "\n The address of the device can be set with: \n"); +fprintf (st, " sim> SET RPA ADDR=octal default address= 776700\n"); +fprintf (st, "\n The interrupt vector can be set with: \n"); +fprintf (st, " sim> SET RPA VECT=octal default 254\n"); +fprintf (st, "\n The interrupt level can be set with: \n"); +fprintf (st, " sim> SET RPA BR=# # should be between 4 and 7.\n"); +fprintf (st, "\n The unibus addaptor that the DZ is on can be set with:\n"); +fprintf (st, " sim> SET RPA CTL=# # can be either 1 or 3\n"); +#endif fprint_reg_help (st, dptr); return SCPE_OK; } diff --git a/PDP10/kx10_sys.c b/PDP10/kx10_sys.c index 9c7f87b..e0f54c5 100644 --- a/PDP10/kx10_sys.c +++ b/PDP10/kx10_sys.c @@ -186,6 +186,9 @@ DEVICE *sim_devices[] = { #if NUM_DEVS_CH10 > 0 &ch10_dev, #endif +#if NUM_DEVS_CH11 > 0 + &ch11_dev, +#endif #if NUM_DEVS_IMX > 0 &imx_dev, #endif diff --git a/PDP10/kx10_tu.c b/PDP10/kx10_tu.c index 82c0517..b955ca4 100644 --- a/PDP10/kx10_tu.c +++ b/PDP10/kx10_tu.c @@ -996,6 +996,17 @@ fprint_show_help (st, dptr); fprintf (st, "\nThe type options can be used only when a unit is not attached to a file.\n"); fprintf (st, "The TU device supports the BOOT command.\n"); sim_tape_attach_help (st, dptr, uptr, flag, cptr); +#if KS +fprintf (st, "The RH11 is a unibus device, various parameters can be changed on these devices\n"); +fprintf (st, "\n The address of the device can be set with: \n"); +fprintf (st, " sim> SET TUA ADDR=octal default address= 772440\n"); +fprintf (st, "\n The interrupt vector can be set with: \n"); +fprintf (st, " sim> SET TUA VECT=octal default 224\n"); +fprintf (st, "\n The interrupt level can be set with: \n"); +fprintf (st, " sim> SET TUA BR=# # should be between 4 and 7.\n"); +fprintf (st, "\n The unibus addaptor that the DZ is on can be set with:\n"); +fprintf (st, " sim> SET TUA CTL=# # can be either 1 or 3\n"); +#endif fprint_reg_help (st, dptr); return SCPE_OK; }