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:
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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_ */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 *
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 *
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 *
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user