1
0
mirror of https://github.com/rcornwell/sims.git synced 2026-04-05 21:23:24 +00:00

I7000: Updated help commands.

This commit is contained in:
Richard Cornwell
2017-04-23 22:38:01 -04:00
parent fbf59246a0
commit 7a5867b4d6
25 changed files with 245 additions and 50 deletions

View File

@@ -73,6 +73,8 @@ t_stat cdp_attach(UNIT *, CONST char *);
t_stat cdp_detach(UNIT *);
t_stat cdp_help(FILE *, DEVICE *, UNIT *, int32, const char *);
const char *cdp_description(DEVICE *dptr);
t_stat stk_help(FILE *, DEVICE *, UNIT *, int32, const char *);
const char *stk_description(DEVICE *dptr);
UNIT cdp_unit[] = {
{UDATA(cdp_srv, UNIT_S_CHAN(CHAN_CHUREC) | UNIT_CDP, 0), 600}, /* A */
@@ -133,7 +135,9 @@ UNIT stack_unit[] = {
DEVICE stack_dev = {
"STKR", stack_unit, NULL, NULL,
NUM_DEVS_CDP * 10, 10, 31, 1, 8, 7,
NULL, NULL, NULL, NULL, &sim_card_attach, &sim_card_detach
NULL, NULL, NULL, NULL, &sim_card_attach, &sim_card_detach,
NULL, DEV_DISABLE | DEV_DEBUG, 0, crd_debug,
NULL, NULL, &stk_help, NULL, NULL, &stk_description
};
#endif
@@ -306,15 +310,36 @@ cdp_detach(UNIT * uptr)
return sim_card_detach(uptr);
}
#ifdef STACK_DEV
t_stat
stk_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "%s\n\n", stk_description(dptr));
fprintf (st, "Allows stack control functions to direct cards to specific\n");
fprintf (st, "bins based on stacker selection.Attach cards here if you \n");
fprintf (st, "wish this specific stacker select to recieve this group of cards.\n");
fprintf (st, "If nothing is attached cards will be punched on the default punch\n\n");
sim_card_attach_help(st, dptr, uptr, flag, cptr);
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;
}
const char *
stk_description(DEVICE *dptr)
{
return "Card stacking device";
}
#endif
t_stat
cdp_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "%s\n\n", cdp_description(dptr));
sim_card_attach_help(st, dptr, uptr, flag, cptr);
#ifdef STACK_DEV
fprintf (st, "If the punch device is not attached and instead the %s", stack_dev.name);
fprintf (st, "device is attached, the cards\n will be sent out to the");
fprintf (st, "given stacker based on the flag set by the processor.");
fprintf (st, "If the punch device is not attached and instead the %s ", stack_dev.name);
fprintf (st, "device is attached,\nthe cards will be sent out to the ");
fprintf (st, "given stacker based on the flag set by\nthe processor.\n\n");
#endif
#ifdef I7070
fprintf (st, "Unit record devices can be configured to interrupt the CPU on\n");
@@ -322,9 +347,9 @@ cdp_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
fprintf (st, " sim> set cp attena to set device to raise Atten A\n\n");
#endif
#ifdef I7010
fprintf (st, "The card punch could be attached to either channel\n\n");
fprintf (st, " sim> set cp chan=1 to set the punch on channel 1\n\n");
help_set_chan_type(st, dptr, "Card punches");
#endif
sim_card_attach_help(st, dptr, uptr, flag, cptr);
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;

View File

@@ -368,7 +368,6 @@ t_stat
cdr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "%s\n\n", cdr_description(dptr));
sim_card_attach_help(st, dptr, uptr, flag, cptr);
fprintf (st, "The system supports up to two card readers.\n");
#ifdef I7070
fprintf (st, "Unit record devices can be configured to interrupt the CPU on\n");
@@ -380,9 +379,9 @@ cdr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
fprintf (st, " sim> set cp lcol=72 sets column to select load mode\n\n");
#endif
#ifdef I7010
fprintf (st, "The card punch could be attached to either channel\n\n");
fprintf (st, " sim> set cp chan=1 to set the punch on channel 1\n\n");
help_set_chan_type(st, dptr, "Card reader");
#endif
sim_card_attach_help(st, dptr, uptr, flag, cptr);
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;
@@ -392,7 +391,7 @@ const char *
cdr_description(DEVICE *dptr)
{
#ifdef I7010
return "1402 Card Punch";
return "1402 Card Reader";
#endif
#ifdef I7070
return "7500 Card Reader";

View File

@@ -126,6 +126,42 @@ chan_set_devs(DEVICE * dptr)
return SCPE_OK;
}
/* Print help for "SET dev CHAN" based on allowed types */
void help_set_chan_type(FILE *st, DEVICE *dptr, char *name)
{
#if NUM_CHAN > 1
DIB *dibp = (DIB *) dptr->ctxt;
int ctype = dibp->ctype;
int i;
int m;
fprintf (st, "Devices can be moved to any channel via the command\n");
fprintf (st, " sim> SET %s CHAN=x\n\n where x is", dptr->name);
if (ctype & 3) {
if (ctype == 1 || ctype == 2)
fprintf(st, " only");
fprintf (st, " %s", chname[0]);
if ((ctype & ~3) != 0)
fprintf(st, " or");
}
if ((ctype & ~3) != 0)
fprintf(st, " %s to %s", chname[1], chname[NUM_CHAN-1]);
fprintf (st, "\n%s can be attached to ", name);
m = 1;
for(i = 0; ctype != 0; i++) {
if (ctype & m) {
fprintf(st, "%s", chan_type_name[i]);
ctype &= ~m;
if (ctype != 0)
fprintf(st, ", or ");
}
m <<= 1;
}
fprintf(st, " channel\n");
#endif
}
/* Sets the device onto a given channel */
t_stat
set_chan(UNIT * uptr, int32 val, CONST char *cptr, void *desc)

View File

@@ -268,10 +268,14 @@ chron_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
fprintf (st, "Chronoclock\n\n");
fprintf (st, "The Chronoclock replaces one of your tape drives, and is\n");
fprintf (st, "for CTSS operation\n\n");
fprintf (st, " sim> SET CHRON ENABLE to enable chronoclock\n");
fprintf (st, "The chronoclock replaces one of your tape drives, and by");
fprintf (st, "reading the tape drive, it will return a short record with");
fprintf (st, "the current date and time, no year is returned\n");
fprintf (st, " sim> SET %s ENABLE to enable chronoclock\n", dptr->name);
fprintf (st, " sim> SET %s UNIT=# sets unit to override\n\n", dptr->name);
help_set_chan_type(st, dptr, "Chrono clock");
fprintf (st, "You must disable the corrosponding tape drive in order for\n");
fprintf (st, "the chronoclook to be seen. The chronoclock replaces one of\n");
fprintf (st, "your tape drives, and by reading the tape drive, it will\n");
fprintf (st, "return a short record with the current date and time, no year\n");
fprintf (st, "is returned\n");
fprint_set_help (st, dptr) ;
fprint_show_help (st, dptr) ;

View File

@@ -1279,8 +1279,7 @@ com_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
fprintf (st, "IBM 7750 terminal controller, this is required for CTSS to run.\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 device must be attached to a specific channel this can be done with\n");
fprintf (st, " sim> SET COM CHAN=a\n\n");
help_set_chan_type(st, dptr, "IBM 7750");
#ifndef I7010
fprintf (st, "Each device on the channel can be at either select 0 or 1, this is set\n");
fprintf (st, "with the\n set SET COM SELECT=n\n\n");

View File

@@ -613,5 +613,8 @@ extern int cycle_time;
extern const char mem_to_ascii[64];
extern const char *cpu_description(DEVICE *dptr);
extern char *chan_type_name[];
extern void help_set_chan_type(FILE *st, DEVICE *dptr, char *name);
#endif /* _I7000_H_ */

View File

@@ -1844,7 +1844,7 @@ t_stat dsk_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag,
fprintf (st, "IBM 7631 Disk File Controller\n\n");
fprintf (st, "The IBM 7631 Disk File Controller supports several types of ");
fprintf (st, "disk drives and\ndrums. The drive must be formatted for use ");
fprintf (st, "of the system. This is handled by utilities provided by the ");
fprintf (st, "of the system. This is handled\nby utilities provided by the ");
fprintf (st, "operating system. This will write a special format track.\n");
fprintf (st, "Use:\n");
fprintf (st, " sim> SET DKn TYPE=type\n");
@@ -1873,6 +1873,7 @@ fprintf (st, "\nTo do this:\n");
fprintf (st, " sim> SET DKn FORMAT HA2\n");
fprintf (st, "To prevent accidental formating of the drive use:\n");
fprintf (st, " sim> SET DKn NOFORMAT NOHA2\n");
help_set_chan_type(st, dptr, "IBM 7631 Disk File");
fprint_set_help (st, dptr);
fprint_show_help (st, dptr);
return SCPE_OK;

View File

@@ -977,6 +977,7 @@ t_stat
ht_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "IBM 7340 Hypertape unit\n\n");
help_set_chan_type(st, dptr, "IBM 7340 Hypertape");
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;

View File

@@ -497,12 +497,15 @@ lpr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
fprintf (st, "%s\n\n", lpr_description(dptr));
fprintf (st, "The line printer output can be echoed to the console to check the \n");
fprintf (st, "progress of jobs being run. This can be done with the\n");
fprintf (st, " sim> SET LPn ECHO\n\n");
fprintf (st, " sim> SET %s ECHO\n\n", dptr->name);
fprintf (st, "The Line printer can be configured to any number of lines per page with the:\n");
fprintf (st, " sim> SET LPn LINESPERPAGE=n\n\n");
fprintf (st, " sim> SET %s LINESPERPAGE=n\n\n", dptr->name);
fprintf (st, "The default is 59 lines per page. \n");
#ifdef I7080
fprintf (st, "Spacing control\n");
fprintf (st, "The 716 printer can operate in one of three spacing modes\n");
fprintf (st, " sim> SET %s SINGLE for single spacing\n", dptr->name);
fprintf (st, " sim> SET %s DOUBLE for double spacing\n", dptr->name);
fprintf (st, " sim> SET %s PROGRAM for program control of spacing\n\n", dptr->name);
#endif
#ifdef I7070
fprintf (st, "Unit record devices can be configured to interrupt the CPU on\n");
@@ -510,8 +513,7 @@ lpr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
fprintf (st, " sim> set cp attena to set device to raise Atten A\n\n");
#endif
#ifdef I7010
fprintf (st, "The card punch could be attached to either channel\n\n");
fprintf (st, " sim> set cp chan=1 to set the punch on channel 1\n\n");
help_set_chan_type(st, dptr, "Line printer");
#endif
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);

View File

@@ -1307,11 +1307,20 @@ mt_detach(UNIT * uptr)
t_stat
mt_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "IBM 729 Magnetic tape unit\n\n");
fprintf (st, "%s\n\n", mt_description(dptr));
fprintf (st, "The magnetic tape controller assumes that all tapes are 7 track\n");
fprintf (st, "with valid parity. Tapes are assumed to be 555.5 characters per\n");
fprintf (st, "inch. To simulate a standard 2400foot tape, do:\n");
fprintf (st, " sim> SET MTn LENGTH 15\n\n");
fprintf (st, " sim> SET %s LENGTH 15\n\n", dptr->name);
#ifdef I7090
fprintf (st, "Devices can be moved to any channel via the command\n");
fprintf (st, " sim> SET %s CHAN=x\n\n", dptr->name);
fprintf (st, " where x is A to G\n");
fprintf (st, "Mag tapes can only be attached to 7607 channels\n\n");
#endif
fprintf (st, "The mag tape drives support the BOOT command\n\n");
help_set_chan_type(st, dptr, "Mag tape");
sim_tape_attach_help (st, dptr, uptr, flag, cptr);
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;

View File

@@ -79,6 +79,10 @@ extern uint8 urec_irq[NUM_CHAN];
#define CHAN_DSK_RD 0100 /* Command is read command */
#define CHAN_OVLP 0200 /* Channel ran overlaped */
char *chan_type_name[] = {
"Polled", "Unit Record", "7010", "7010", "7010"};
/* Map commands to channel commands */
/* Commands are reversed to be way they are sent out */
uint8 disk_cmdmap[16] = { 0xff, 0x82, 0x84, 0x86, 0x00, 0x89, 0x88, 0x83,
@@ -671,7 +675,14 @@ chan9_set_error(int chan, uint32 mask)
t_stat
chan_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
return SCPE_OK;
fprintf (st, "%s\n\n", chan_description(dptr));
fprintf (st, "The 7010 supports up to 4 channels. Channel models include\n\n");
fprintf (st, " Channel * is for unit record devices.\n");
fprintf (st, " Channels 1-4 are 7010 multiplexor channel\n");
fprintf (st, "Channels are fixed on the 7010.\n\n");
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;
}
const char *

View File

@@ -3903,10 +3903,8 @@ fprintf (st, " sim> SET CPU FLOAT enables Floating Point\n");
fprintf (st, " sim> SET CPU NOFLOAT disables Floating Point\n\n");
fprintf (st, " sim> SET CPU PROT enables memory protection feature\n");
fprintf (st, " sim> SET CPU NOPROT disables memory protection feature\n\n");
fprintf (st, "The CPU can maintain a history of the most recently executed instructions.\n"
);
fprintf (st, "This is controlled by the SET CPU HISTORY and SHOW CPU HISTORY commands:\n\n"
);
fprintf (st, "The CPU can maintain a history of the most recently executed instructions.\n");
fprintf (st, "This is controlled by the SET CPU HISTORY and SHOW CPU HISTORY commands:\n\n");
fprintf (st, " sim> SET CPU HISTORY clear history buffer\n");
fprintf (st, " sim> SET CPU HISTORY=0 disable history\n");
fprintf (st, " sim> SET CPU HISTORY=n{:file} enable history, length = n\n");

View File

@@ -107,10 +107,10 @@ DIB mt_dib = { CH_TYP_76XX|CH_TYP_UREC, NUM_UNITS_MT, 02400, 07700, &mt_cmd, &m
DIB chron_dib = { CH_TYP_76XX|CH_TYP_UREC, 1, 02400, 07700, &chron_cmd, NULL };
#endif
#ifdef NUM_DEVS_DSK
DIB dsk_dib = { CH_TYP_79XX|CH_TYP_UREC, 0, 06600, 07700, &dsk_cmd, &dsk_ini };
DIB dsk_dib = { CH_TYP_79XX, 0, 06600, 07700, &dsk_cmd, &dsk_ini };
#endif
#ifdef NUM_DEVS_COM
DIB com_dib = { CH_TYP_79XX|CH_TYP_UREC, 0, 04200, 07700, &com_cmd, NULL };
DIB com_dib = { CH_TYP_79XX, 0, 04200, 07700, &com_cmd, NULL };
#endif

View File

@@ -54,6 +54,9 @@ t_uint64 assembly[NUM_CHAN]; /* Assembly register */
uint32 chan_flags[NUM_CHAN]; /* Unit status */
uint8 bcnt[NUM_CHAN]; /* Character count */
char *chan_type_name[] = {
"Polled", "", "", "", ""};
/* Delay device for IOD instruction */
DIB dly_dib =
@@ -401,8 +404,8 @@ chan9_set_error(int chan, uint32 mask)
t_stat
chan_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) {
fprintf(st, "IBM 701 Channel\n\n");
fprintf(st, "Psuedo device to manage IBM 701 I/O. The IBM 701 used polled");
fprintf(st, "I/O, however the simulated devices want to talk to a channel.");
fprintf(st, "Psuedo device to manage IBM 701 I/O. The IBM 701 used polled\n");
fprintf(st, "I/O, however the simulated devices want to talk to a channel.\n");
fprintf(st, "The assembly register and the flags can be displayed\n");
return SCPE_OK;
}

View File

@@ -84,6 +84,10 @@ extern uint16 pri_latchs[10];
#define CHAN_START 0x200000 /* Channel has just started */
#define CHAN_OCTAL 0x400000 /* Octal conversion */
char *chan_type_name[] = {
"Polled", "Unit Record", "7604", "7907", ""};
UNIT chan_unit[] = {
/* Puesdo channel for PIO devices */
{UDATA(NULL, CHAN_SET|CHAN_S_TYPE(CHAN_UREC)|UNIT_S_CHAN(CHAN_CHUREC),0)},
@@ -667,7 +671,7 @@ chan_trap:
/* Check for record mark */
if ((cmd[chan] & CHN_RECORD) &&
(assembly[chan] & DMASK) == ASIGN &&
(assembly[chan] & SMASK) == ASIGN &&
(assembly[chan] & 0xFF) == RM_CHAR) {
if (cmd[chan] & CHN_LAST) {
chan_flags[chan] &= ~(STA_ACTIVE);
@@ -1573,7 +1577,15 @@ chan9_set_error(int chan, uint32 mask)
t_stat
chan_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
return SCPE_OK;
fprintf (st, "%s\n\n", chan_description(dptr));
fprintf (st, "The 7070 supports up to 8 channels. Channel models include\n\n");
fprintf (st, " 7604 standard multiplexor channel\n");
fprintf (st, " 7907 advanced capabilities channel\n\n");
fprintf (st, "Channels are fixed on the 7070.\n\n");
fprintf (st, "Channel * is a puesdo channel for unit record devices.\n");
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;
}
const char *

View File

@@ -2961,6 +2961,29 @@ cpu_show_hist(FILE * st, UNIT * uptr, int32 val, CONST void *desc)
t_stat
cpu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) {
fprintf (st, "The CPU can be set to a IBM 7070 or IBM 7074\n");
fprintf (st, "The type of CPU can be set by one of the following commands\n\n");
fprintf (st, " sim> set CPU 7070 sets IBM 7070 emulation\n");
fprintf (st, " sim> set CPU 7074 sets IBM 7074 emulation\n");
fprintf (st, "These switches are recognized when examining or depositing in CPU memory:\n\n");
fprintf (st, " -c examine/deposit characters, 5 per word\n");
fprintf (st, " -l examine/deposit half words\n");
fprintf (st, " -m examine/deposit IBM 7070 instructions\n");
fprintf (st, "The memory of the CPU can be set in 5K incrememts from 5K to 30K with the\n\n");
fprintf (st, " sim> SET CPU xK\n\n");
fprintf (st, "For the IBM 7070 the following options can be enabled\n\n");
fprintf (st, " sim> SET CPU FLOAT enables Floating Point\n");
fprintf (st, " sim> SET CPU NOFLOAT disables Floating Point\n\n");
fprintf (st, " sim> SET CPU EXTEND enables extended memory\n");
fprintf (st, " sim> SET CPU NOEXTEND disables extended memory\n\n");
fprintf (st, " sim> SET CPU CLOCK enables timer clock\n");
fprintf (st, " sim> SET CPU NOCLOCK disables timer clock\n\n");
fprintf (st, "The CPU can maintain a history of the most recently executed instructions.\n");
fprintf (st, "This is controlled by the SET CPU HISTORY and SHOW CPU HISTORY commands:\n\n");
fprintf (st, " sim> SET CPU HISTORY clear history buffer\n");
fprintf (st, " sim> SET CPU HISTORY=0 disable history\n");
fprintf (st, " sim> SET CPU HISTORY=n{:file} enable history, length = n\n");
fprintf (st, " sim> SHOW CPU HISTORY print CPU history\n");
return SCPE_OK;
}

View File

@@ -101,6 +101,9 @@ extern uint8 inquiry;
#define READ_WRD 1
#define WRITE_WRD 2
char *chan_type_name[] = {
"Polled", "Unit Record", "7621", "7908", "754"};
UNIT chan_unit[] = {
{UDATA(NULL, CHAN_SET | CHAN_S_TYPE(CHAN_UREC), 0)},
@@ -1216,7 +1219,18 @@ chan9_set_error(int chan, uint32 mask)
t_stat
chan_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
return SCPE_OK;
fprintf(st, "%s\n", chan_description(dptr));
fprintf(st, "The 7080 supports up to 10 channels. Channel 0 is for unit\n");
fprintf(st, "record devices. Channels 1 through 4 are for tape drives.\n\n");
fprintf (st, " 7261 tapes on Data Synchronizer\n");
fprintf (st, " 754 Standard 705 tape drives\n\n");
fprintf (st, "Channels are fixed on the 7080.\n\n");
fprintf (st, "Channel * is a puesdo channel for unit record devices.\n");
fprintf(st, "\n");
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;
}
const char *

View File

@@ -1693,7 +1693,7 @@ stop_cpu:
break;
while ((cr1 = ReadP(MA, MCHCHK)) != CHR_RM ||
cr1 != CHR_GM)
Next(MA);
{ Next(MA); }
} while(cr1 != CHR_GM);
MAC2 = MA;
break;

View File

@@ -177,6 +177,9 @@ drm_ini(UNIT *uptr, t_bool f) {
t_stat
drm_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) {
fprintf(st, "Drum device for IBM 702 and 705\n\n");
fprintf(st, "The Drum had 1000 tracks with the capacity of %d digits per", DRMCHARTRK);
fprintf(st, "per track\n");
return SCPE_OK;
}

View File

@@ -274,7 +274,20 @@ cdp_detach(UNIT * uptr)
t_stat
cdp_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "Card Punch\n\n");
const char *cpu = cpu_description(&cpu_dev);
fprintf (st, "%s\n\n", cdp_description(dptr));
#if NUM_DEVS_CDP > 3
fprintf (st, "The %s supports up to four card punches\n", cpu);
#elif NUM_DEVS_CDP > 2
fprintf (st, "The %s supports up to three card punches\n", cpu);
#elif NUM_DEVS_CDP > 1
fprintf (st, "The %s supports up to two card punches\n", cpu);
#elif NUM_DEVS_CDP > 0
fprintf (st, "The %s supports one card punch\n", cpu);
#endif
help_set_chan_type(st, dptr, "Card punches");
sim_card_attach_help(st, dptr, uptr, flag, cptr);
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;

View File

@@ -316,14 +316,20 @@ cdr_detach(UNIT * uptr)
t_stat
cdr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "Card Reader\n\n");
const char *cpu = cpu_description(&cpu_dev);
fprintf (st, "%s\n\n", cdr_description(dptr));
#if NUM_DEVS_CDR > 3
fprintf (st, "The system supports up to three card readers\n");
fprintf (st, "The %s supports up to four card readers\n", cpu);
#elif NUM_DEVS_CDR > 2
fprintf (st, "The system supports up to two card readers\n");
fprintf (st, "The %s supports up to three card readers\n", cpu);
#elif NUM_DEVS_CDR > 1
fprintf (st, "The system supports up to one card reader\n");
fprintf (st, "The %s supports up to two card readers\n", cpu);
#elif NUM_DEVS_CDR > 0
fprintf (st, "The %s supports one card reader\n", cpu);
#endif
help_set_chan_type(st, dptr, "Card readers");
sim_card_attach_help(st, dptr, uptr, flag, cptr);
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;

View File

@@ -136,6 +136,11 @@ uint8 chan_irq[NUM_CHAN]; /* Channel has a irq pending */
((dualcore) ? (0100000 & caddr[chan]) : 0) | \
((caddr[chan] + 1) & MEMMASK);
/* Globally visible flags */
char *chan_type_name[] = {
"Polled", "Unit Record", "7607", "7909", "7289"};
/* Delay device for IOD instruction */
DIB dly_dib =
#ifdef I701
@@ -1674,8 +1679,9 @@ chan9_set_error(int chan, uint32 mask)
t_stat
chan_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
#ifdef I7090
#endif
fprintf(st, "%s\n\n", chan_description(dptr));
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;
}

View File

@@ -248,7 +248,6 @@ drm_attach(UNIT * uptr, CONST char *file)
if ((r = attach_unit(uptr, file)) != SCPE_OK)
return r;
// sim_activate(uptr, DRMWORDTIME);
return SCPE_OK;
}
@@ -262,10 +261,21 @@ drm_detach(UNIT * uptr)
t_stat
drm_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
const char *cpu = cpu_description(&cpu_dev);
DIB *dibp = (DIB *) dptr->ctxt;
int ctype = dibp->ctype;
fprintf (st, "%s\n\n", drm_description(dptr));
fprintf (st, "Up to %d units of drum could be used\n", NUM_UNITS_DR);
fprintf (st, " sim> set %s UNITS=n to set number of units\n", dptr->name);
help_set_chan_type(st, dptr, "Drums");
fprintf (st, "Drums could be booted\n");
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;
}
const char *
drm_description (DEVICE *dptr)
{

View File

@@ -233,6 +233,12 @@ hsdrm_detach(UNIT * uptr)
t_stat
hsdrm_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "%s\n\n", hsdrm_description(dptr));
fprintf (st, "The High speed drum supports up to %d units of storage\n", NUM_UNITS_HD);
fprintf (st, "Each unit held 265k words of data\n");
help_set_chan_type(st, dptr, "High speed drum");
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;
}

View File

@@ -603,14 +603,25 @@ lpr_detach(UNIT * uptr)
t_stat
lpr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
{
fprintf (st, "Line Printer\n\n");
fprintf (st, "The system supports one line printer\n");
const char *cpu = cpu_description(&cpu_dev);
fprintf (st, "%s\n\n", lpr_description(dptr));
#if NUM_DEVS_LPR > 3
fprintf (st, "The %s supports up to four line printers\n", cpu);
#elif NUM_DEVS_LPR > 2
fprintf (st, "The %s supports up to three line printers\n", cpu);
#elif NUM_DEVS_LPR > 1
fprintf (st, "The %s supports up to two line printers\n", cpu);
#elif NUM_DEVS_LPR > 0
fprintf (st, "The %s supports one line printer\n", cpu);
#endif
fprintf (st, "by default. The Line printer can be configured to any number of\n");
fprintf (st, "lines per page with the:\n");
fprintf (st, " sim> SET LPn LINESPERPAGE=n\n\n");
fprintf (st, " sim> SET %s LINESPERPAGE=n\n\n", dptr->name);
fprintf (st, "The printer acted as the console printer therefore the default is\n");
fprintf (st, "echo to the console\n");
fprintf (st, "The default is 59 lines per page\n\n");
help_set_chan_type(st, dptr, "Card readers");
fprint_set_help(st, dptr);
fprint_show_help(st, dptr);
return SCPE_OK;