mirror of
https://github.com/rcornwell/sims.git
synced 2026-01-11 23:52:48 +00:00
I7000: Fixed coverity errors, updated help.
Note CR and CP devices are now called CDR and CDP. CON device is now called INQ.
This commit is contained in:
parent
87c24d0e9e
commit
e4a916f001
@ -85,21 +85,21 @@ UNIT cdp_unit[] = {
|
||||
|
||||
MTAB cdp_mod[] = {
|
||||
{MTAB_XTD | MTAB_VUN, 0, "FORMAT", "FORMAT",
|
||||
&sim_card_set_fmt, &sim_card_show_fmt, NULL},
|
||||
&sim_card_set_fmt, &sim_card_show_fmt, NULL, "Set card format"},
|
||||
#ifdef I7070
|
||||
{ATTENA|ATTENB, 0, NULL, "NOATTEN", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB, ATTENA, "ATTENA", "ATTENA", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB, ATTENB, "ATTENB", "ATTENB", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB,0, NULL, "NOATTEN", NULL, NULL, NULL, "No attention signal"},
|
||||
{ATTENA|ATTENB,ATTENA, "ATTENA", "ATTENA", NULL, NULL, NULL, "Signal Attention A"},
|
||||
{ATTENA|ATTENB,ATTENB, "ATTENB", "ATTENB", NULL, NULL, NULL, "Signal Attention B"},
|
||||
#endif
|
||||
#ifdef I7010
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_VALR, 0, "CHAN", "CHAN", &set_chan,
|
||||
&get_chan, NULL},
|
||||
&get_chan, NULL, "Set device channel"},
|
||||
#endif
|
||||
{0}
|
||||
};
|
||||
|
||||
DEVICE cdp_dev = {
|
||||
"CP", cdp_unit, NULL, cdp_mod,
|
||||
"CDP", cdp_unit, NULL, cdp_mod,
|
||||
NUM_DEVS_CDP, 8, 15, 1, 8, 8,
|
||||
NULL, NULL, NULL, NULL, &cdp_attach, &cdp_detach,
|
||||
&cdp_dib, DEV_DISABLE | DEV_DEBUG, 0, crd_debug,
|
||||
@ -315,10 +315,11 @@ 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");
|
||||
fprintf (st, "Allows stack control functions to direct cards to specific ");
|
||||
fprintf (st, "bins based on stacker\nselection. Attach cards here if you ");
|
||||
fprintf (st, "wish this specific stacker select to recieve\nthis group of");
|
||||
fprintf (st, " cards. If nothing is attached cards will be punched on the");
|
||||
fprintf (st, " default\npunch\n\n");
|
||||
sim_card_attach_help(st, dptr, uptr, flag, cptr);
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
@ -344,7 +345,7 @@ cdp_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
#ifdef I7070
|
||||
fprintf (st, "Unit record devices can be configured to interrupt the CPU on\n");
|
||||
fprintf (st, "one of two priority channels A or B, to set this\n\n");
|
||||
fprintf (st, " sim> set cp attena to set device to raise Atten A\n\n");
|
||||
fprintf (st, " sim> SET %s ATTENA to set device to raise Atten A\n\n", dptr->name);
|
||||
#endif
|
||||
#ifdef I7010
|
||||
help_set_chan_type(st, dptr, "Card punches");
|
||||
|
||||
@ -88,23 +88,23 @@ UNIT cdr_unit[] = {
|
||||
|
||||
MTAB cdr_mod[] = {
|
||||
{MTAB_XTD | MTAB_VUN, 0, "FORMAT", "FORMAT",
|
||||
&sim_card_set_fmt, &sim_card_show_fmt, NULL},
|
||||
&sim_card_set_fmt, &sim_card_show_fmt, NULL, "Set card format"},
|
||||
#ifdef I7070
|
||||
{ATTENA|ATTENB, 0, NULL, "NOATTEN", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB, ATTENA, "ATTENA", "ATTENA", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB, ATTENB, "ATTENB", "ATTENB", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB, 0, NULL, "NOATTEN", NULL, NULL, NULL, "No attention signal"},
|
||||
{ATTENA|ATTENB, ATTENA, "ATTENA", "ATTENA", NULL, NULL, NULL, "Signal Attention A"},
|
||||
{ATTENA|ATTENB, ATTENB, "ATTENB", "ATTENB", NULL, NULL, NULL, "Signal Attention B"},
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_VALR, 0, "LCOL", "LCOL", &cdr_setload,
|
||||
&cdr_getload, NULL},
|
||||
&cdr_getload, NULL, "Load card column indicator"},
|
||||
#endif
|
||||
#ifdef I7010
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_VALR, 0, "CHAN", "CHAN", &set_chan,
|
||||
&get_chan, NULL},
|
||||
&get_chan, NULL, "Set device channel"},
|
||||
#endif
|
||||
{0}
|
||||
};
|
||||
|
||||
DEVICE cdr_dev = {
|
||||
"CR", cdr_unit, NULL, cdr_mod,
|
||||
"CDR", cdr_unit, NULL, cdr_mod,
|
||||
NUM_DEVS_CDR, 8, 15, 1, 8, 8,
|
||||
NULL, NULL, NULL, &cdr_boot, &cdr_attach, &sim_card_detach,
|
||||
&cdr_dib, DEV_DISABLE | DEV_DEBUG, 0, crd_debug,
|
||||
@ -368,18 +368,25 @@ t_stat
|
||||
cdr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
{
|
||||
fprintf (st, "%s\n\n", cdr_description(dptr));
|
||||
#if NUM_DEVS_CDR > 1
|
||||
fprintf (st, "The system supports up to two card readers.\n");
|
||||
#else
|
||||
fprintf (st, "The system supports one card reader.\n");
|
||||
#endif
|
||||
#ifdef I7070
|
||||
fprintf (st, "Unit record devices can be configured to interrupt the CPU on\n");
|
||||
fprintf (st, "one of two priority channels A or B, to set this\n\n");
|
||||
fprintf (st, " sim> set cp attena to set device to raise Atten A\n\n");
|
||||
fprintf (st, " sim> SET %s ATTENA To set device to raise Atten A\n\n", dptr->name);
|
||||
fprintf (st, "The 7500 Card reader supported a load mode, this was\n");
|
||||
fprintf (st, "selected by use of a 12 punch in a given column. When this\n");
|
||||
fprintf (st, "was seen the card was read into 8 words\n");
|
||||
fprintf (st, " sim> set cp lcol=72 sets column to select load mode\n\n");
|
||||
fprintf (st, "was seen the card was read into 8 words. Normal read is\n");
|
||||
fprintf (st, "text only\n\n");
|
||||
fprintf (st, " sim> SET %s LCOL=72 Sets column to select load mode\n\n", dptr->name);
|
||||
#endif
|
||||
#if NUM_DEVS_CDR > 1
|
||||
#ifdef I7010
|
||||
help_set_chan_type(st, dptr, "Card reader");
|
||||
#endif
|
||||
#endif
|
||||
sim_card_attach_help(st, dptr, uptr, flag, cptr);
|
||||
fprint_set_help(st, dptr);
|
||||
|
||||
@ -135,8 +135,8 @@ void help_set_chan_type(FILE *st, DEVICE *dptr, char *name)
|
||||
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);
|
||||
fprintf (st, "Devices can be moved to any channel via the command\n\n");
|
||||
fprintf (st, " sim> SET %s CHAN=x where x is", dptr->name);
|
||||
if (ctype & 3) {
|
||||
if (ctype == 1 || ctype == 2)
|
||||
fprintf(st, " only");
|
||||
@ -146,7 +146,7 @@ void help_set_chan_type(FILE *st, DEVICE *dptr, char *name)
|
||||
}
|
||||
if ((ctype & ~3) != 0)
|
||||
fprintf(st, " %s to %s", chname[1], chname[NUM_CHAN-1]);
|
||||
fprintf (st, "\n%s can be attached to ", name);
|
||||
fprintf (st, "\n\n%s can be attached to ", name);
|
||||
m = 1;
|
||||
for(i = 0; ctype != 0; i++) {
|
||||
if (ctype & m) {
|
||||
|
||||
@ -268,8 +268,8 @@ 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 %s ENABLE to enable chronoclock\n", dptr->name);
|
||||
fprintf (st, " sim> SET %s UNIT=# sets unit to override\n\n", dptr->name);
|
||||
fprintf (st, " sim> SET %s ENABLE to enable chronoclock\n", dptr->name);
|
||||
fprintf (st, " sim> SET %s UNIT=# sets unit to override [0-9]\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");
|
||||
|
||||
@ -280,6 +280,8 @@ void com_post_eom();
|
||||
t_bool com_inp_msg(uint32 ln, uint16 msg);
|
||||
const char *com_description(DEVICE *dptr);
|
||||
t_stat com_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr);
|
||||
const char *coml_description(DEVICE *dptr);
|
||||
t_stat coml_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr);
|
||||
|
||||
|
||||
/* COM data structures
|
||||
@ -310,10 +312,10 @@ REG com_reg[] = {
|
||||
|
||||
MTAB com_mod[] = {
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_VALR, 0, "CHAN", "CHAN",
|
||||
&set_chan, &get_chan, NULL},
|
||||
&set_chan, &get_chan, NULL, "Set channel"},
|
||||
#ifndef I7010
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_VALR, 0, "SELECT", "SELECT",
|
||||
&chan9_set_select, &chan9_get_select, NULL},
|
||||
&chan9_set_select, &chan9_get_select, NULL, "Set selection channel"},
|
||||
#endif
|
||||
{UNIT_ATT, UNIT_ATT, "connections", NULL, NULL, &com_summ},
|
||||
{MTAB_XTD | MTAB_VDV | MTAB_NMO, 1, "CONNECTIONS", NULL,
|
||||
@ -376,11 +378,14 @@ UNIT coml_unit[] = {
|
||||
};
|
||||
|
||||
MTAB coml_mod[] = {
|
||||
{UNIT_K35 + UNIT_2741, 0, "KSR-37", "KSR-37", NULL},
|
||||
{UNIT_K35 + UNIT_2741, UNIT_K35, "KSR-35", "KSR-35", NULL},
|
||||
{UNIT_K35 + UNIT_2741, UNIT_2741, "2741", "2741", NULL},
|
||||
{UNIT_K35 + UNIT_2741, 0, "KSR-37", "KSR-37", NULL, NULL, NULL,
|
||||
"Standard KSR"},
|
||||
{UNIT_K35 + UNIT_2741, UNIT_K35, "KSR-35", "KSR-35", NULL, NULL, NULL,
|
||||
"Upper case only KSR"},
|
||||
{UNIT_K35 + UNIT_2741, UNIT_2741, "2741", "2741", NULL, NULL, NULL,
|
||||
"IBM 2741 terminal"},
|
||||
{MTAB_XTD | MTAB_VUN, 0, NULL, "DISCONNECT",
|
||||
&tmxr_dscln, NULL, &com_desc},
|
||||
&tmxr_dscln, NULL, &com_desc, "Disconnect line"},
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_NC, 0, "LOG", "LOG",
|
||||
&tmxr_set_log, &tmxr_show_log, &com_desc},
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_NC, 0, NULL, "NOLOG",
|
||||
@ -397,9 +402,9 @@ REG coml_reg[] = {
|
||||
DEVICE coml_dev = {
|
||||
"COML", coml_unit, coml_reg, coml_mod,
|
||||
COM_TLINES, 10, 31, 1, 16, 8,
|
||||
NULL, NULL, &com_reset,
|
||||
NULL, NULL, NULL,
|
||||
NULL, DEV_DISABLE
|
||||
NULL, NULL, &com_reset, NULL, NULL, NULL,
|
||||
NULL, DEV_DISABLE, 0, NULL, NULL,
|
||||
NULL, &coml_help, NULL, NULL, &coml_description
|
||||
};
|
||||
|
||||
/* COM: channel select */
|
||||
@ -445,7 +450,7 @@ t_stat com_svc(UNIT * uptr)
|
||||
if (chan_test(chan, CTL_SNS)) {
|
||||
int eor = (com_sta == 4)?DEV_REOR:0;
|
||||
|
||||
ch = (com_sense >> ((4 - (uint32)com_sta) * 4)) & 0xf;
|
||||
ch = ((uint32)com_sense >> ((4 - com_sta) * 4)) & 0xf;
|
||||
if (ch & 010) /* Move A bit over one */
|
||||
ch ^= 030;
|
||||
sim_debug(DEBUG_SNS, &com_dev, "sense unit=%02x\n", ch);
|
||||
@ -1266,6 +1271,22 @@ com_reset_ln(uint32 ln)
|
||||
coml_unit[ln].CONN = 0;
|
||||
return;
|
||||
}
|
||||
const char *
|
||||
coml_description(DEVICE *dptr)
|
||||
{
|
||||
return "IBM 7750 terminal";
|
||||
}
|
||||
|
||||
t_stat
|
||||
coml_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
{
|
||||
fprintf (st, "Each COM line can be set to a given type of terminal\n\n");
|
||||
fprintf (st, " sim> SET COMLn KSR-37 Standard connection\n");
|
||||
fprintf (st, " sim> SET COMLn KSR-35 Allows only upper case\n");
|
||||
fprintf (st, " sim> SET COMLn 2741 Set to look like a 2741\n");
|
||||
fprint_set_help (st, dptr);
|
||||
fprint_show_help (st, dptr);
|
||||
}
|
||||
|
||||
const char *
|
||||
com_description(DEVICE *dptr)
|
||||
@ -1281,13 +1302,13 @@ fprintf (st, "The ATTACH command specifies the port to be used:\n\n");
|
||||
tmxr_attach_help (st, dptr, uptr, flag, cptr);
|
||||
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");
|
||||
fprintf (st, "Each device on the channel can be at either select 0 or 1, \n");
|
||||
fprintf (st, "this is set with the\n\n");
|
||||
fprintf (st, " sim> SET COM SELECT=n\n\n");
|
||||
#endif
|
||||
fprintf (st, "Each COM line can be set to a given type of terminal\n");
|
||||
fprintf (st, " sim> SET COMLn KSR-37 Standard connection\n");
|
||||
fprintf (st, " sim> SET COMLn KSR-35 Allows only upper case\n");
|
||||
fprintf (st, " sim> SET COMLn 2741 Set to look like a 2741\n");
|
||||
fprint_set_help (st, dptr);
|
||||
fprint_show_help (st, dptr);
|
||||
|
||||
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ UNIT con_unit[] = {
|
||||
};
|
||||
|
||||
DEVICE con_dev = {
|
||||
"CON", con_unit, NULL, NULL,
|
||||
"INQ", con_unit, NULL, NULL,
|
||||
NUM_DEVS_LPR, 8, 15, 1, 8, 8,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
&con_dib, DEV_DISABLE | DEV_DEBUG, 0, dev_debug,
|
||||
|
||||
@ -1844,9 +1844,9 @@ 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\nby utilities provided by the ");
|
||||
fprintf (st, "operating system. This will write a special format track.\n");
|
||||
fprintf (st, "Use:\n");
|
||||
fprintf (st, "of the system. This is handled by\nutilities provided by the ");
|
||||
fprintf (st, "operating system. This will write a special format\ntrack.\n\n");
|
||||
fprintf (st, "Use:\n\n");
|
||||
fprintf (st, " sim> SET DKn TYPE=type\n");
|
||||
fprintf (st, "Type can be: ");
|
||||
for (i = 0; disk_type[i].name != 0; i++) {
|
||||
@ -1854,7 +1854,7 @@ for (i = 0; disk_type[i].name != 0; i++) {
|
||||
if (disk_type[i+1].name != 0)
|
||||
fprintf(st, ", ");
|
||||
}
|
||||
fprintf (st, ".\nEach drive has the following storage capacity:\n");
|
||||
fprintf (st, ".\nEach drive has the following storage capacity:\n\n");
|
||||
for (i = 0; disk_type[i].name != 0; i++) {
|
||||
int32 size = disk_type[i].mods * disk_type[i].bpt *
|
||||
disk_type[i].arms * disk_type[i].track * disk_type[i].cyl;
|
||||
@ -1867,12 +1867,12 @@ for (i = 0; disk_type[i].name != 0; i++) {
|
||||
fprintf(st, " %-8s %4d%cB %d modules\n", disk_type[i].name, size, sm,
|
||||
disk_type[i].mods);
|
||||
}
|
||||
fprintf (st, "\n\nTo enable formating the format switch must be set ");
|
||||
fprintf (st, "to enable, and the Home Address 2 write must be enabled.");
|
||||
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");
|
||||
fprintf (st, "\nTo enable formating the format switch must be set ");
|
||||
fprintf (st, "to enable, and the Home\nAddress 2 write must be enabled.\n");
|
||||
fprintf (st, "To do this:\n\n");
|
||||
fprintf (st, " sim> SET DKn FORMAT HA2\n\n");
|
||||
fprintf (st, "To prevent accidental formating of the drive use:\n\n");
|
||||
fprintf (st, " sim> SET DKn NOFORMAT NOHA2\n\n");
|
||||
help_set_chan_type(st, dptr, "IBM 7631 Disk File");
|
||||
fprint_set_help (st, dptr);
|
||||
fprint_show_help (st, dptr);
|
||||
|
||||
@ -645,7 +645,7 @@ ht_tape_cmd(DEVICE * dptr, UNIT * uptr)
|
||||
cmd = t;
|
||||
break;
|
||||
default:
|
||||
sim_debug(DEBUG_DETAIL | DEBUG_CMD, dptr, "Invalid command %x\n",
|
||||
sim_debug((DEBUG_DETAIL | DEBUG_CMD), dptr, "Invalid command %x\n",
|
||||
cmd);
|
||||
ht_sense[schan] = PROG_INVCODE;
|
||||
chan_set(chan, DEV_REOR|CTL_END);
|
||||
@ -661,7 +661,7 @@ ht_tape_cmd(DEVICE * dptr, UNIT * uptr)
|
||||
if (unit <= NUM_UNITS_HT)
|
||||
ht_unit[schan] = unit;
|
||||
else {
|
||||
sim_debug(DEBUG_DETAIL | DEBUG_CMD, dptr,
|
||||
sim_debug((DEBUG_DETAIL | DEBUG_CMD), dptr,
|
||||
"Invalid unit %d cmd=%x\n", unit, cmd);
|
||||
ht_sense[schan] = STAT_NOTRDY;
|
||||
chan_set(chan, DEV_REOR|CTL_END);
|
||||
@ -671,7 +671,7 @@ ht_tape_cmd(DEVICE * dptr, UNIT * uptr)
|
||||
|
||||
if (cmd == 0xff) {
|
||||
/* command error */
|
||||
sim_debug(DEBUG_DETAIL | DEBUG_CMD, dptr, "Invalid command %x\n",
|
||||
sim_debug((DEBUG_DETAIL | DEBUG_CMD), dptr, "Invalid command %x\n",
|
||||
cmd);
|
||||
ht_sense[schan] = PROG_INVCODE;
|
||||
chan_set(chan, DEV_REOR|CTL_END);
|
||||
@ -683,7 +683,7 @@ ht_tape_cmd(DEVICE * dptr, UNIT * uptr)
|
||||
up = &dptr->units[unit];
|
||||
if ((up->flags & UNIT_ATT) == 0) {
|
||||
/* Not attached! */
|
||||
sim_debug(DEBUG_DETAIL | DEBUG_CMD, dptr, "Not ready %d cmd=%x\n",
|
||||
sim_debug((DEBUG_DETAIL | DEBUG_CMD), dptr, "Not ready %d cmd=%x\n",
|
||||
unit, cmd);
|
||||
ht_sense[schan] = STAT_NOTRDY;
|
||||
chan_set(chan, DEV_REOR|CTL_END);
|
||||
@ -693,14 +693,14 @@ ht_tape_cmd(DEVICE * dptr, UNIT * uptr)
|
||||
|
||||
if (up->u5 & HT_NOTRDY || up->wait > 0) {
|
||||
/* Unit busy */
|
||||
sim_debug(DEBUG_DETAIL | DEBUG_CMD, dptr, "Busy unit %d cmd=%x\n", unit,
|
||||
sim_debug((DEBUG_DETAIL | DEBUG_CMD), dptr, "Busy unit %d cmd=%x\n", unit,
|
||||
cmd);
|
||||
ht_sense[schan] = PROG_BUSY;
|
||||
chan_set(chan, DEV_REOR|CTL_END);
|
||||
chan9_set_error(chan, SNS_UEND);
|
||||
return;
|
||||
}
|
||||
sim_debug(DEBUG_DETAIL | DEBUG_CMD, dptr, "Execute unit %d cmd=%x ",
|
||||
sim_debug((DEBUG_DETAIL | DEBUG_CMD), dptr, "Execute unit %d cmd=%x ",
|
||||
unit, cmd);
|
||||
|
||||
/* Ok, unit is ready and not in motion, set up to run command */
|
||||
@ -711,7 +711,7 @@ ht_tape_cmd(DEVICE * dptr, UNIT * uptr)
|
||||
r = MTSE_OK;
|
||||
switch (cmd) {
|
||||
case HSBR: /* Select for backwards reading */
|
||||
sim_debug(DEBUG_DETAIL | DEBUG_CMD, dptr, "HSBR\n");
|
||||
sim_debug((DEBUG_DETAIL | DEBUG_CMD), dptr, "HSBR\n");
|
||||
up->hwmark = -1;
|
||||
up->u6 = 0;
|
||||
ht_sense[schan] |= BACK_MODE;
|
||||
@ -721,7 +721,7 @@ ht_tape_cmd(DEVICE * dptr, UNIT * uptr)
|
||||
break;
|
||||
|
||||
case HSEL: /* Select */
|
||||
sim_debug(DEBUG_DETAIL | DEBUG_CMD, dptr, "HSEL\n");
|
||||
sim_debug((DEBUG_DETAIL | DEBUG_CMD), dptr, "HSEL\n");
|
||||
up->hwmark = -1;
|
||||
up->u6 = 0;
|
||||
chan_set(chan, DEV_REOR|DEV_SEL);
|
||||
|
||||
@ -98,23 +98,23 @@ UNIT lpr_unit[] = {
|
||||
};
|
||||
|
||||
MTAB lpr_mod[] = {
|
||||
{ECHO, 0, NULL, "NOECHO", NULL, NULL, NULL},
|
||||
{ECHO, ECHO, "ECHO", "ECHO", NULL, NULL, NULL},
|
||||
{ECHO, 0, NULL, "NOECHO", NULL, NULL, NULL, "Don't echo to console"},
|
||||
{ECHO, ECHO, "ECHO", "ECHO", NULL, NULL, NULL, "Echo to console"},
|
||||
{MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "LINESPERPAGE", "LINESPERPAGE",
|
||||
&lpr_setlpp, &lpr_getlpp, NULL},
|
||||
&lpr_setlpp, &lpr_getlpp, NULL, "Number of lines per page"},
|
||||
#ifdef I7080
|
||||
{DOUBLE|PROGRAM, 0, "SINGLE", "SINGLE", NULL, NULL, NULL},
|
||||
{DOUBLE|PROGRAM, DOUBLE, "DOUBLE", "DOUBLE", NULL, NULL, NULL},
|
||||
{DOUBLE|PROGRAM, PROGRAM, "PROGRAM", "PROGRAM", NULL, NULL, NULL},
|
||||
{DOUBLE|PROGRAM, 0, "SINGLE", "SINGLE", NULL, NULL, NULL, "Single space output"},
|
||||
{DOUBLE|PROGRAM, DOUBLE, "DOUBLE", "DOUBLE", NULL, NULL, NULL, "Double space output"},
|
||||
{DOUBLE|PROGRAM, PROGRAM, "PROGRAM", "PROGRAM", NULL, NULL, NULL, "Programatic spacing"},
|
||||
#endif
|
||||
#ifdef I7070
|
||||
{ATTENA|ATTENB, 0, NULL, "NOATTEN", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB, ATTENA, "ATTENA", "ATTENA", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB, ATTENB, "ATTENB", "ATTENB", NULL, NULL, NULL},
|
||||
{ATTENA|ATTENB, 0, NULL, "NOATTEN", NULL, NULL, NULL, "No attention signal"},
|
||||
{ATTENA|ATTENB, ATTENA, "ATTENA", "ATTENA", NULL, NULL, NULL, "Signal Attention A"},
|
||||
{ATTENA|ATTENB, ATTENB, "ATTENB", "ATTENB", NULL, NULL, NULL, "Signal Attention B"},
|
||||
#endif
|
||||
#ifdef I7010
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_VALR, 0, "CHAN", "CHAN", &set_chan,
|
||||
&get_chan, NULL},
|
||||
&get_chan, NULL, "Set device channel"},
|
||||
#endif
|
||||
{0}
|
||||
};
|
||||
@ -495,22 +495,23 @@ 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 %s ECHO\n\n", dptr->name);
|
||||
fprintf (st, "The line printer output can be echoed to the console to check");
|
||||
fprintf (st, "the \nprogress of jobs being run. This can be done with the\n");
|
||||
fprintf (st, " sim> SET %s ECHO set echo to console\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 %s LINESPERPAGE=n\n\n", dptr->name);
|
||||
fprintf (st, "The default is 59 lines per page. \n");
|
||||
fprintf (st, "The default is 59 lines per page.\n\n");
|
||||
#ifdef I7080
|
||||
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);
|
||||
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");
|
||||
fprintf (st, "one of two priority channels A or B, to set this\n\n");
|
||||
fprintf (st, " sim> set cp attena to set device to raise Atten A\n\n");
|
||||
fprintf (st, " sim> SET %s ATTENA to set device to raise Atten A\n", dptr->name);
|
||||
fprintf (st, " sim> SET %s ATTENB to set device to raise Atten B\n\n", dptr->name);
|
||||
#endif
|
||||
#ifdef I7010
|
||||
help_set_chan_type(st, dptr, "Line printer");
|
||||
|
||||
@ -613,7 +613,7 @@ mt_read_buff(UNIT * uptr, int cmd, DEVICE * dptr, t_uint64 *word)
|
||||
i--;
|
||||
}
|
||||
}
|
||||
*word |= ((t_value) ch) << (6 * i);
|
||||
*word |= ((t_uint64) ch) << (6 * i);
|
||||
}
|
||||
|
||||
if (parity) {
|
||||
@ -1310,14 +1310,8 @@ mt_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
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 %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, "inch. To simulate a standard 2400foot tape, do:\n\n");
|
||||
fprintf (st, " sim> SET %s LENGTH 15\n\n", dptr->name);
|
||||
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);
|
||||
|
||||
@ -678,7 +678,7 @@ chan_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
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 1-4 are 7010 multiplexor channel\n\n");
|
||||
fprintf (st, "Channels are fixed on the 7010.\n\n");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
|
||||
@ -3886,29 +3886,32 @@ cpu_description (DEVICE *dptr)
|
||||
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 1401 or IBM 1410/7010\n");
|
||||
fprintf (st, "The type of CPU can be set by one of the following commands\n\n");
|
||||
fprintf (st, " sim> set CPU 1401 sets IBM 1401 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7010 sets IBM 1410/7010 emulation\n");
|
||||
fprintf (st, "These switches are recognized when examining or depositing in CPU memory:\n\n");
|
||||
fprintf (st, " -c examine/deposit characters, 6 per word\n");
|
||||
fprintf (st, " -l examine/deposit half words\n");
|
||||
fprintf (st, " -m examine/deposit IBM 709 instructions\n");
|
||||
fprintf (st, "The memory of the CPU can be set in 10K incrememts from 10K to 100K with the\n\n");
|
||||
fprintf (st, " sim> SET CPU xK\n\n");
|
||||
fprintf (st, "For the IBM 7010 the following options can be enabled\n\n");
|
||||
fprintf (st, " sim> SET CPU PRIORITY enables Priority Interupts\n");
|
||||
fprintf (st, " sim> SET CPU NOPRIORITY disables Priority Interupts\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 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, " 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;
|
||||
fprintf (st, "The CPU can be set to a IBM 1401 or IBM 1410/7010\n");
|
||||
fprintf (st, "The type of CPU can be set by one of the following commands\n\n");
|
||||
fprintf (st, " sim> set CPU 1401 sets IBM 1401 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7010 sets IBM 1410/7010 emulation\n\n");
|
||||
fprintf (st, "These switches are recognized when examining or depositing in CPU memory:\n\n");
|
||||
fprintf (st, " -c examine/deposit characters, 6 per word\n");
|
||||
fprintf (st, " -l examine/deposit half words\n");
|
||||
fprintf (st, " -m examine/deposit IBM 7010 instructions\n\n");
|
||||
fprintf (st, "The memory of the CPU can be set in 10K incrememts from 10K to 100K with the\n\n");
|
||||
fprintf (st, " sim> SET CPU xK\n\n");
|
||||
fprintf (st, "For the IBM 7010 the following options can be enabled\n\n");
|
||||
fprintf (st, " sim> SET CPU PRIORITY enables Priority Interupts\n");
|
||||
fprintf (st, " sim> SET CPU NOPRIORITY disables Priority Interupts\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 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, " 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");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -404,9 +404,9 @@ 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\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");
|
||||
fprintf(st, "Psuedo device to display IBM 701 I/O. The IBM 701 used polled");
|
||||
fprintf(st, " I/O,\nThe assembly register and the flags can be displayed\n");
|
||||
fprintf(st, "There are no options for the this device\n");
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -942,19 +942,20 @@ cpu_description (DEVICE *dptr)
|
||||
t_stat
|
||||
cpu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
{
|
||||
fprintf (st, "The CPU behaves as a IBM 701\n");
|
||||
fprintf (st, "These switches are recognized when examining or depositing in CPU memory:\n\n");
|
||||
fprintf (st, " -c examine/deposit characters, 6 per word\n");
|
||||
fprintf (st, " -l examine/deposit half words\n");
|
||||
fprintf (st, " -m examine/deposit IBM 709 instructions\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");
|
||||
fprintf (st, "The CPU behaves as a IBM 701\n");
|
||||
fprintf (st, "These switches are recognized when examining or depositing in CPU memory:\n\n");
|
||||
fprintf (st, " -c examine/deposit characters, 6 per word\n");
|
||||
fprintf (st, " -l examine/deposit half words\n");
|
||||
fprintf (st, " -m examine/deposit IBM 701 instructions\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");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -83,8 +83,8 @@ name(s)
|
||||
CPU 701 CPU with 2KW of memory
|
||||
CH 704 devices.
|
||||
MT 729 magnetic tape controller, channel A (required)
|
||||
CR 711 card reader
|
||||
CP 721 card punch
|
||||
CDR 711 card reader
|
||||
CDP 721 card punch
|
||||
LP 716 line printer
|
||||
DR0 733 drum
|
||||
|
||||
@ -132,28 +132,28 @@ or registers.
|
||||
|
||||
2.3 Peripherals
|
||||
|
||||
2.3.1 711 Card Reader (CR)
|
||||
2.3.1 711 Card Reader (CDR)
|
||||
|
||||
The card reader (CR) reads data from a disk file. Cards are simulated
|
||||
The card reader (CDR) reads data from a disk file. Cards are simulated
|
||||
as ASCII lines with terminating newlines.
|
||||
|
||||
Card reader files can either be text (one character per column) or
|
||||
column binary (two characters per column). The file type can be
|
||||
specified with a set command:
|
||||
|
||||
SET CR FORMAT=TEXT sets ascii text mode
|
||||
SET CR FORMAT=BINARY sets for binary card images.
|
||||
SET CR FORMAT=BCD sets for BCD records.
|
||||
SET CR FORMAT=CBN sets for column binary BCD records.
|
||||
SET CR FORMAT=AUTO Automaticly determines format.
|
||||
SET CDR FORMAT=TEXT sets ascii text mode
|
||||
SET CDR FORMAT=BINARY sets for binary card images.
|
||||
SET CDR FORMAT=BCD sets for BCD records.
|
||||
SET CDR FORMAT=CBN sets for column binary BCD records.
|
||||
SET CDR FORMAT=AUTO Automaticly determines format.
|
||||
|
||||
or in the ATTACH command:
|
||||
|
||||
ATT CR <file> attaches a file
|
||||
ATT CDR <file> attaches a file
|
||||
|
||||
The card reader can be booted with the:
|
||||
|
||||
BOOT CR loads first 3 words of card.
|
||||
BOOT CDR loads first 3 words of card.
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
@ -165,24 +165,24 @@ Error handling is as follows:
|
||||
|
||||
OS I/O error report error and stop
|
||||
|
||||
2.3.2 721 Card Punch (CP)
|
||||
2.3.2 721 Card Punch (CDP)
|
||||
|
||||
The card reader (CP) writes data to a disk file. Cards are simulated
|
||||
The card reader (CDP) writes data to a disk file. Cards are simulated
|
||||
as ASCII lines with terminating newlines.
|
||||
|
||||
Card punch files can either be text (one character per column) or
|
||||
column binary (two characters per column). The file type can be
|
||||
specified with a set command:
|
||||
|
||||
SET CR FORMAT=TEXT sets ascii text mode
|
||||
SET CR FORMAT=BINARY sets for binary card images.
|
||||
SET CR FORMAT=BCD sets for BCD records.
|
||||
SET CR FORMAT=CBN sets for column binary BCD records.
|
||||
SET CR FORMAT=AUTO Automaticly determines format.
|
||||
SET CDP FORMAT=TEXT sets ascii text mode
|
||||
SET CDP FORMAT=BINARY sets for binary card images.
|
||||
SET CDP FORMAT=BCD sets for BCD records.
|
||||
SET CDP FORMAT=CBN sets for column binary BCD records.
|
||||
SET CDP FORMAT=AUTO Automaticly determines format.
|
||||
|
||||
or in the ATTACH command:
|
||||
|
||||
ATT CP <file> attaches a file
|
||||
ATT CDP <file> attaches a file
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
|
||||
@ -116,7 +116,7 @@ MTAB chan_mod[] = {
|
||||
{CHAN_MODEL, CHAN_S_TYPE(CHAN_UREC), "UREC", NULL, NULL,NULL,NULL},
|
||||
{CHAN_MODEL, CHAN_S_TYPE(CHAN_7604), "7604", NULL, NULL, NULL, NULL},
|
||||
{CHAN_MODEL, CHAN_S_TYPE(CHAN_7907), "7907", NULL, NULL, NULL, NULL},
|
||||
{MTAB_VUN, 0, "UNITS", NULL, NULL, &print_chan, NULL},
|
||||
{MTAB_VUN, 0, "UNITS", NULL, NULL, &print_chan, NULL, "Show units on channel"},
|
||||
{0}
|
||||
};
|
||||
|
||||
@ -1578,11 +1578,11 @@ t_stat
|
||||
chan_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
{
|
||||
fprintf (st, "%s\n\n", chan_description(dptr));
|
||||
fprintf (st, "The 7070 supports up to 8 channels. Channel models include\n\n");
|
||||
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");
|
||||
fprintf (st, "Channel * is for unit record devices.\n");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
return SCPE_OK;
|
||||
|
||||
@ -2961,29 +2961,30 @@ 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");
|
||||
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\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, " -m examine/deposit IBM 7070 instructions\n\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");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -101,8 +101,8 @@ MTC 729 additional magnetic tape controllers, channels C
|
||||
MTD 729 additional magnetic tape controllers, channels D
|
||||
HTA 7340 hypertape controller.
|
||||
HTB 7340 additional hypertape controller.
|
||||
CR 7500 card reader
|
||||
CP 7550 card punch
|
||||
CDR 7500 card reader
|
||||
CDP 7550 card punch
|
||||
LP 7400 line printer
|
||||
DKn 1301/2302/7304 disk.
|
||||
COM 7750 communications control
|
||||
@ -193,32 +193,32 @@ For meaning of bits in FLAGS see i7000_defs.h.
|
||||
|
||||
2.3 Unit record devices.
|
||||
|
||||
2.3.1 7900 Inquiry Station (CON)
|
||||
2.3.1 7900 Inquiry Station (INQ)
|
||||
|
||||
The console is set up as inquiry station 1. Press escape to initiate a
|
||||
priorty interupt request. Pressing escape again will cancel request.
|
||||
|
||||
2.3.2 7500 Card Reader (CR)
|
||||
2.3.2 7500 Card Reader (CDR)
|
||||
|
||||
The card reader (CR) reads data from a disk file. Cards are simulated
|
||||
The card reader (CDR) reads data from a disk file. Cards are simulated
|
||||
as ASCII lines with terminating newlines.
|
||||
|
||||
Card reader files can either be text (one character per column) or
|
||||
column binary (two characters per column). The file type can be
|
||||
specified with a set command:
|
||||
|
||||
SET CR FORMAT=TEXT sets ascii text mode
|
||||
SET CR FORMAT=BINARY sets for binary card images.
|
||||
SET CR FORMAT=BCD sets for BCD records.
|
||||
SET CR FORMAT=CBN sets for column binary BCD records.
|
||||
SET CR FORMAT=AUTO Automaticly determines format.
|
||||
SET CR NOATTEN sets device to not signal ready status.
|
||||
SET CR ATTENA sets device to used unit A attention.
|
||||
SET CR ATTENB sets device to used unit B attention.
|
||||
SET CDR FORMAT=TEXT sets ascii text mode
|
||||
SET CDR FORMAT=BINARY sets for binary card images.
|
||||
SET CDR FORMAT=BCD sets for BCD records.
|
||||
SET CDR FORMAT=CBN sets for column binary BCD records.
|
||||
SET CDR FORMAT=AUTO Automaticly determines format.
|
||||
SET CDR NOATTEN sets device to not signal ready status.
|
||||
SET CDR ATTENA sets device to used unit A attention.
|
||||
SET CDR ATTENB sets device to used unit B attention.
|
||||
|
||||
or in the ATTACH command:
|
||||
|
||||
ATT CR <file> attaches a file
|
||||
ATT CDR <file> attaches a file
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
@ -230,27 +230,27 @@ Error handling is as follows:
|
||||
|
||||
OS I/O error report error and stop
|
||||
|
||||
2.3.3 7550 Card Punch (CP)
|
||||
2.3.3 7550 Card Punch (CDP)
|
||||
|
||||
The card reader (CP) writes data to a disk file. Cards are simulated
|
||||
The card reader (CDP) writes data to a disk file. Cards are simulated
|
||||
as ASCII lines with terminating newlines.
|
||||
|
||||
Card punch files can either be text (one character per column) or
|
||||
column binary (two characters per column). The file type can be
|
||||
specified with a set command:
|
||||
|
||||
SET CP FORMAT=TEXT sets ascii text mode
|
||||
SET CP FORMAT=BINARY sets for binary card images.
|
||||
SET CP FORMAT=BCD sets for BCD records.
|
||||
SET CP FORMAT=CBN sets for column binary BCD records.
|
||||
SET CP FORMAT=AUTO Automaticly determines format.
|
||||
SET CP NOATTEN sets device to not signal ready status.
|
||||
SET CP ATTENA sets device to used unit A attention.
|
||||
SET CP ATTENB sets device to used unit B attention.
|
||||
SET CDP FORMAT=TEXT sets ascii text mode
|
||||
SET CDP FORMAT=BINARY sets for binary card images.
|
||||
SET CDP FORMAT=BCD sets for BCD records.
|
||||
SET CDP FORMAT=CBN sets for column binary BCD records.
|
||||
SET CDP FORMAT=AUTO Automaticly determines format.
|
||||
SET CDP NOATTEN sets device to not signal ready status.
|
||||
SET CDP ATTENA sets device to used unit A attention.
|
||||
SET CDP ATTENB sets device to used unit B attention.
|
||||
|
||||
or in the ATTACH command:
|
||||
|
||||
ATT CP <file> attaches a file
|
||||
ATT CDP <file> attaches a file
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
|
||||
@ -3378,33 +3378,35 @@ cpu_description (DEVICE *dptr)
|
||||
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 702, IBM 705, IBM 705/3 or IBM 7080\n");
|
||||
fprintf (st, "The type of CPU can be set by one of the following commands\n\n");
|
||||
fprintf (st, " sim> set CPU 702 sets IBM 704 emulation\n");
|
||||
fprintf (st, " sim> set CPU 705 sets IBM 705 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7053 sets IBM 705/3 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7080 sets IBM 7080 emulation\n");
|
||||
fprintf (st, "These switches are recognized when examining or depositing in CPU memory:\n\n");
|
||||
fprintf (st, " -c examine/deposit characters, 6 per word\n");
|
||||
fprintf (st, " -l examine/deposit half words\n");
|
||||
fprintf (st, " -m examine/deposit IBM 709 instructions\n");
|
||||
fprintf (st, "The memory of the CPU can be set in 10K incrememts from 10K to 160K with the\n\n");
|
||||
fprintf (st, " sim> SET CPU xK\n\n");
|
||||
fprintf (st, "For the IBM 7080 the following options can be enabled\n\n");
|
||||
fprintf (st, " sim> SET CPU EMU40K enables memory above 40K\n");
|
||||
fprintf (st, " sim> SET CPU NOEMU40K disables memory above 40K\n\n");
|
||||
fprintf (st, " sim> SET CPU EMU705 enables IBM7080 to support 705 Emulation.\n");
|
||||
fprintf (st, " sim> SET CPU NOEMU705 disables IBM7080 to support 705 Emulation.\n\n");
|
||||
fprintf (st, " sim> SET CPU NOSTOP CPU will not stop on invalid conditions\n");
|
||||
fprintf (st, " sim> SET CPU PRORAM CPU stop under program control\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;
|
||||
fprintf (st, "The CPU can be set to a IBM 702, IBM 705, IBM 705/3 or IBM 7080\n");
|
||||
fprintf (st, "The type of CPU can be set by one of the following commands\n\n");
|
||||
fprintf (st, " sim> set CPU 702 sets IBM 704 emulation\n");
|
||||
fprintf (st, " sim> set CPU 705 sets IBM 705 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7053 sets IBM 705/3 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7080 sets IBM 7080 emulation\n\n");
|
||||
fprintf (st, "These switches are recognized when examining or depositing in CPU memory:\n\n");
|
||||
fprintf (st, " -c examine/deposit characters\n");
|
||||
fprintf (st, " -s examine 50 characters\n");
|
||||
fprintf (st, " -d examine 50 characters\n");
|
||||
fprintf (st, " -m examine/deposit IBM 7080 instructions\n\n");
|
||||
fprintf (st, "The memory of the CPU can be set in 10K incrememts from 10K to 160K with the\n\n");
|
||||
fprintf (st, " sim> SET CPU xK\n\n");
|
||||
fprintf (st, "For the IBM 7080 the following options can be enabled\n\n");
|
||||
fprintf (st, " sim> SET CPU EMU40K enables memory above 40K\n");
|
||||
fprintf (st, " sim> SET CPU NOEMU40K disables memory above 40K\n\n");
|
||||
fprintf (st, " sim> SET CPU EMU705 enables IBM7080 to support 705 Emulation.\n");
|
||||
fprintf (st, " sim> SET CPU NOEMU705 disables IBM7080 to support 705 Emulation.\n\n");
|
||||
fprintf (st, " sim> SET CPU NOSTOP CPU will not stop on invalid conditions\n");
|
||||
fprintf (st, " sim> SET CPU PRORAM CPU stop under program control\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\n");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -86,8 +86,8 @@ MTB 729 magnetic tape controller, channel 21
|
||||
MTC 729 magnetic tape controller, channel 22
|
||||
MTD 729 magnetic tape controller, channel 23
|
||||
HTA 7340 hypertape controller.
|
||||
CR 711 card reader
|
||||
CP 721 card punch
|
||||
CDR 711 card reader
|
||||
CDP 721 card punch
|
||||
LP 716 line printer
|
||||
DR 733 drum for 702/705
|
||||
DKn 1301/2302/7304 disk.
|
||||
@ -199,26 +199,26 @@ For meaning of bits in FLAGS see i7000_defs.h.
|
||||
|
||||
2.3 Unit record devices.
|
||||
|
||||
2.3.1 711 Card Reader (CR)
|
||||
2.3.1 711 Card Reader (CDR)
|
||||
|
||||
The card reader (CR) reads data from a disk file. Cards are simulated
|
||||
The card reader (CDR) reads data from a disk file. Cards are simulated
|
||||
as ASCII lines with terminating newlines.
|
||||
|
||||
Card reader files can either be text (one character per column) or
|
||||
column binary (two characters per column). The file type can be
|
||||
specified with a set command:
|
||||
|
||||
SET CR TEXT set text mode
|
||||
SET CR BINARY set column binary mode
|
||||
SET CR AUTO sets auto detect binary/text data.
|
||||
SET CDR TEXT set text mode
|
||||
SET CDR BINARY set column binary mode
|
||||
SET CDR AUTO sets auto detect binary/text data.
|
||||
|
||||
or in the ATTACH command:
|
||||
|
||||
ATT CR <file> attaches a file
|
||||
ATT CDR <file> attaches a file
|
||||
|
||||
The card reader can be booted with the:
|
||||
|
||||
BOOT CR loads either the first 2 words or
|
||||
BOOT CDR loads either the first 2 words or
|
||||
3 words depending on channel.
|
||||
|
||||
Error handling is as follows:
|
||||
@ -231,22 +231,22 @@ Error handling is as follows:
|
||||
|
||||
OS I/O error report error and stop
|
||||
|
||||
2.3.2 721 Card Punch (CP)
|
||||
2.3.2 721 Card Punch (CDP)
|
||||
|
||||
The card reader (CP) writes data to a disk file. Cards are simulated
|
||||
The card reader (CDP) writes data to a disk file. Cards are simulated
|
||||
as ASCII lines with terminating newlines.
|
||||
|
||||
Card punch files can either be text (one character per column) or
|
||||
column binary (two characters per column). The file type can be
|
||||
specified with a set command:
|
||||
|
||||
SET CP TEXT set text mode
|
||||
SET CP BINARY set column binary mode
|
||||
SET CP AUTO set auto detect binary/text data.
|
||||
SET CDP TEXT set text mode
|
||||
SET CDP BINARY set column binary mode
|
||||
SET CDP AUTO set auto detect binary/text data.
|
||||
|
||||
or in the ATTACH command:
|
||||
|
||||
ATT CP <file> attaches a file
|
||||
ATT CDP <file> attaches a file
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
|
||||
@ -178,8 +178,10 @@ 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, "The Drum had 1000 tracks with the capacity of %d digits ",
|
||||
DRMCHARTRK);
|
||||
fprintf(st, "per track\n");
|
||||
fprintf(st, "The drum does not have any settings to change\n");
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -78,7 +78,7 @@ MTAB cdp_mod[] = {
|
||||
};
|
||||
|
||||
DEVICE cdp_dev = {
|
||||
"CP", cdp_unit, NULL, cdp_mod,
|
||||
"CDP", cdp_unit, NULL, cdp_mod,
|
||||
NUM_DEVS_CDP, 8, 15, 1, 8, 36,
|
||||
NULL, NULL, &cdp_reset, NULL, &cdp_attach, &cdp_detach,
|
||||
&cdp_dib, DEV_DISABLE | DEV_DEBUG, 0, crd_debug,
|
||||
@ -287,9 +287,10 @@ cdp_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
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);
|
||||
fprintf (st, "\n");
|
||||
sim_card_attach_help(st, dptr, uptr, flag, cptr);
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -85,7 +85,7 @@ MTAB cdr_mod[] = {
|
||||
};
|
||||
|
||||
DEVICE cdr_dev = {
|
||||
"CR", cdr_unit, NULL, cdr_mod,
|
||||
"CDR", cdr_unit, NULL, cdr_mod,
|
||||
NUM_DEVS_CDR, 8, 15, 1, 8, 36,
|
||||
NULL, NULL, &cdr_reset, &cdr_boot, &cdr_attach, &cdr_detach,
|
||||
&cdr_dib, DEV_DISABLE | DEV_DEBUG, 0, crd_debug,
|
||||
@ -320,18 +320,19 @@ cdr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
|
||||
fprintf (st, "%s\n\n", cdr_description(dptr));
|
||||
#if NUM_DEVS_CDR > 3
|
||||
fprintf (st, "The %s supports up to four card readers\n", cpu);
|
||||
fprintf (st, "The %s supports up to four card readers\n\n", cpu);
|
||||
#elif NUM_DEVS_CDR > 2
|
||||
fprintf (st, "The %s supports up to three card readers\n", cpu);
|
||||
fprintf (st, "The %s supports up to three card readers\n\n", cpu);
|
||||
#elif NUM_DEVS_CDR > 1
|
||||
fprintf (st, "The %s supports up to two card readers\n", cpu);
|
||||
fprintf (st, "The %s supports up to two card readers\n\n", cpu);
|
||||
#elif NUM_DEVS_CDR > 0
|
||||
fprintf (st, "The %s supports one card reader\n", cpu);
|
||||
fprintf (st, "The %s supports one card reader\n\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);
|
||||
fprintf (st, "\n");
|
||||
sim_card_attach_help(st, dptr, uptr, flag, cptr);
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -143,11 +143,7 @@ char *chan_type_name[] = {
|
||||
|
||||
/* Delay device for IOD instruction */
|
||||
DIB dly_dib =
|
||||
#ifdef I701
|
||||
{ CH_TYP_PIO, 1, 2052, 07777, &dly_cmd, NULL };
|
||||
#else
|
||||
{ CH_TYP_PIO, 1, 0333, 07777, &dly_cmd, NULL };
|
||||
#endif
|
||||
|
||||
|
||||
UNIT chan_unit[] = {
|
||||
@ -1679,9 +1675,26 @@ chan9_set_error(int chan, uint32 mask)
|
||||
t_stat
|
||||
chan_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
{
|
||||
#ifdef I7090
|
||||
fprintf(st, "%s\n\n", chan_description(dptr));
|
||||
fprintf (st, "The 7090 supports up to 8 channels. Channel models include\n\n");
|
||||
fprintf (st, " Unit record Polled mode I/O devices\n");
|
||||
fprintf (st, " 7607 standard multiplexor channel\n");
|
||||
fprintf (st, " 7909 advanced capabilities channel\n");
|
||||
fprintf (st, " 7289 special channel for high speed drum\n\n");
|
||||
fprintf (st, "Channels can be reconfigured on the 7090, this generally ");
|
||||
fprintf (st, "happens automatically.\nHowever at times it can be useful to ");
|
||||
fprintf (st, "force a channel to a specific device. If\ndevices are attached");
|
||||
fprintf (st, "to incorrect channel types an error will be reported at sim\n");
|
||||
fprintf (st, "start. The first channel is fixed for Polled mode devices.\n\n");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
#else
|
||||
fprintf(st, "IBM 704 Channel\n\n");
|
||||
fprintf(st, "Psuedo device to display IBM 704 I/O. The IBM 704 used polled");
|
||||
fprintf(st, " I/O,\nThe assembly register and the flags can be displayed\n");
|
||||
fprintf(st, "There are no options for the this device\n");
|
||||
#endif
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -4392,20 +4392,22 @@ fprintf (st, "The type of CPU can be set by one of the following commands\n\n");
|
||||
fprintf (st, " sim> set CPU 704 sets IBM 704 emulation\n");
|
||||
fprintf (st, " sim> set CPU 709 sets IBM 709 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7090 sets IBM 7090 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7094 sets IBM 7094 emulation\n");
|
||||
fprintf (st, " sim> set CPU 7094 sets IBM 7094 emulation\n\n");
|
||||
#else
|
||||
fprintf (st, "The CPU behaves as a IBM 704\n");
|
||||
#endif
|
||||
fprintf (st, "These switches are recognized when examining or depositing in CPU memory:\n\n");
|
||||
fprintf (st, " -c examine/deposit characters, 6 per word\n");
|
||||
fprintf (st, " -l examine/deposit half words\n");
|
||||
fprintf (st, " -m examine/deposit IBM 709 instructions\n");
|
||||
fprintf (st, " -m examine/deposit IBM 709 instructions\n\n");
|
||||
fprintf (st, "The memory of the CPU can be set in 4K incrememts from 4K to 32K with the\n\n");
|
||||
fprintf (st, " sim> SET CPU xK\n\n");
|
||||
#ifdef I7090
|
||||
fprintf (st, "For systems like IBSYS FASTIO can be enabled. This causes the CPU to finish\n");
|
||||
fprintf (st, "all outstanding I/O requests when it detects an IDLE loop. This is detected\n");
|
||||
fprintf (st, "by a TCOx to itself. The default is TRUEIO.\n\n");
|
||||
fprintf (st, "by a TCOx to itself. TRUEIO waits until the given timeout. ");
|
||||
fprintf (st, "For faster\noperation FASTIO can speed up execution, by eliminating");
|
||||
fprintf (st, "waits on devices.\nThe default is TRUEIO.\n\n");
|
||||
fprintf (st, "For the IBM 709x the following options can be enabled\n\n");
|
||||
fprintf (st, " sim> SET CPU EFP enables extended Floating Point\n");
|
||||
fprintf (st, " sim> SET CPU NOEFP disables extended Floating Point\n\n");
|
||||
@ -4425,6 +4427,9 @@ 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");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -95,8 +95,8 @@ MTC 729 additional magnetic tape controllers, channels C
|
||||
MT 729 additional magnetic tape controllers, 704 devices
|
||||
HTA 7340 hypertape controller.
|
||||
HTB 7340 additional hypertape controller.
|
||||
CRn 711 card reader
|
||||
CPn 721 card punch
|
||||
CDRn 711 card reader
|
||||
CDPn 721 card punch
|
||||
LPn 716 line printer
|
||||
DR0 733 drum
|
||||
HDn 7289 fast drum control
|
||||
@ -235,29 +235,29 @@ For meaning of bits in STATUS and SENSE see i7090_defs.h.
|
||||
|
||||
2.3 Channel 7607 Devices and 704 devices.
|
||||
|
||||
2.3.1 711 Card Reader (CR)
|
||||
2.3.1 711 Card Reader (CDR)
|
||||
|
||||
The card reader (CR) reads data from a disk file. Cards are simulated
|
||||
The card reader (CDR) reads data from a disk file. Cards are simulated
|
||||
as ASCII lines with terminating newlines.
|
||||
|
||||
Card reader files can either be text (one character per column) or
|
||||
column binary (two characters per column). The file type can be
|
||||
specified with a set command:
|
||||
|
||||
SET CRn FORMAT=TEXT sets ascii text mode
|
||||
SET CRn FORMAT=BINARY sets for binary card images.
|
||||
SET CRn FORMAT=BCD sets for BCD records.
|
||||
SET CRn FORMAT=CBN sets for column binary BCD records.
|
||||
SET CRn FORMAT=AUTO Automaticly determines format.
|
||||
SET CRn CHAN=n Sets channel to n
|
||||
SET CDRn FORMAT=TEXT sets ascii text mode
|
||||
SET CDRn FORMAT=BINARY sets for binary card images.
|
||||
SET CDRn FORMAT=BCD sets for BCD records.
|
||||
SET CDRn FORMAT=CBN sets for column binary BCD records.
|
||||
SET CDRn FORMAT=AUTO Automaticly determines format.
|
||||
SET CDRn CHAN=n Sets channel to n
|
||||
|
||||
or in the ATTACH command:
|
||||
|
||||
ATT CRn <file> attaches a file
|
||||
ATT CDRn <file> attaches a file
|
||||
|
||||
The card reader can be booted with the:
|
||||
|
||||
BOOT CRn loads either the first 2 words or
|
||||
BOOT CDRn loads either the first 2 words or
|
||||
3 words depending on channel.
|
||||
|
||||
Error handling is as follows:
|
||||
@ -270,25 +270,25 @@ Error handling is as follows:
|
||||
|
||||
OS I/O error report error and stop
|
||||
|
||||
2.3.2 721 Card Punch (CP)
|
||||
2.3.2 721 Card Punch (CDP)
|
||||
|
||||
The card reader (CP) writes data to a disk file. Cards are simulated
|
||||
The card reader (CDP) writes data to a disk file. Cards are simulated
|
||||
as ASCII lines with terminating newlines.
|
||||
|
||||
Card punch files can either be text (one character per column) or
|
||||
column binary (two characters per column). The file type can be
|
||||
specified with a set command:
|
||||
|
||||
SET CPn FORMAT=TEXT sets ascii text mode
|
||||
SET CPn FORMAT=BINARY sets for binary card images.
|
||||
SET CPn FORMAT=BCD sets for BCD records.
|
||||
SET CPn FORMAT=CBN sets for column binary BCD records.
|
||||
SET CPn FORMAT=AUTO Automaticly determines format.
|
||||
SET CPn CHAN=n Sets channel to n
|
||||
SET CDPn FORMAT=TEXT sets ascii text mode
|
||||
SET CDPn FORMAT=BINARY sets for binary card images.
|
||||
SET CDPn FORMAT=BCD sets for BCD records.
|
||||
SET CDPn FORMAT=CBN sets for column binary BCD records.
|
||||
SET CDPn FORMAT=AUTO Automaticly determines format.
|
||||
SET CDPn CHAN=n Sets channel to n
|
||||
|
||||
or in the ATTACH command:
|
||||
|
||||
ATT CPn <file> attaches a file
|
||||
ATT CDPn <file> attaches a file
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
|
||||
@ -101,8 +101,8 @@ UNIT lpr_unit[] = {
|
||||
};
|
||||
|
||||
MTAB lpr_mod[] = {
|
||||
{ECHO, 0, NULL, "NOECHO", NULL, NULL, NULL},
|
||||
{ECHO, ECHO, "ECHO", "ECHO", NULL, NULL, NULL},
|
||||
{ECHO, 0, NULL, "NOECHO", NULL, NULL, NULL, "Done echo to console"},
|
||||
{ECHO, ECHO, "ECHO", "ECHO", NULL, NULL, NULL, "Echo output to console"},
|
||||
#if NUM_CHAN != 1
|
||||
{MTAB_XTD | MTAB_VUN | MTAB_VALR, 0, "CHAN", "CHAN", &set_chan,
|
||||
&get_chan, NULL},
|
||||
@ -414,9 +414,11 @@ t_stat lpr_srv(UNIT * uptr)
|
||||
action = 1;
|
||||
break;
|
||||
case 18: /* Echo 8-4 R */
|
||||
/* I'm not sure how these are computed */
|
||||
#if 0 /* Should be correct, but force to zero works */
|
||||
wd = lpr_data[u].wbuff[2];
|
||||
wd -= lpr_data[u].wbuff[10];
|
||||
/* I'm not sure how these are computed */
|
||||
#endif
|
||||
/* But forcing to zero works */
|
||||
wd = 0;
|
||||
action = 2;
|
||||
@ -606,24 +608,23 @@ t_stat
|
||||
lpr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
{
|
||||
const char *cpu = cpu_description(&cpu_dev);
|
||||
extern void fprint_attach_help_ex (FILE *st, DEVICE *dptr, t_bool silent);
|
||||
|
||||
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);
|
||||
fprintf (st, "The %s supports up to four line printers", cpu);
|
||||
#elif NUM_DEVS_LPR > 2
|
||||
fprintf (st, "The %s supports up to three line printers\n", cpu);
|
||||
fprintf (st, "The %s supports up to three line printers", cpu);
|
||||
#elif NUM_DEVS_LPR > 1
|
||||
fprintf (st, "The %s supports up to two line printers\n", cpu);
|
||||
fprintf (st, "The %s supports up to two line printers", cpu);
|
||||
#elif NUM_DEVS_LPR > 0
|
||||
fprintf (st, "The %s supports one line printer\n", cpu);
|
||||
fprintf (st, "The %s supports one line printer", 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 %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");
|
||||
fprintf (st, "by default. The Line printer can\n");
|
||||
fprintf (st, "The printer acted as the console printer:\n\n");
|
||||
fprintf (st, " sim> SET %s ECHO\n\n", dptr->name);
|
||||
fprintf (st, "Causes all output sent to printer to also go to console.\n");
|
||||
help_set_chan_type(st, dptr, "Line printers");
|
||||
fprint_set_help(st, dptr);
|
||||
fprint_show_help(st, dptr);
|
||||
return SCPE_OK;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user