mirror of
https://github.com/rcornwell/sims.git
synced 2026-02-25 00:18:02 +00:00
KA10: Cleanup help messages.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
274
PDP10/ks10_tcu.c
274
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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user