From e4a916f0013c8ae4f6aa7099442930c64cce7460 Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Mon, 29 May 2017 22:14:55 -0400 Subject: [PATCH] I7000: Fixed coverity errors, updated help. Note CR and CP devices are now called CDR and CDP. CON device is now called INQ. --- I7000/i7000_cdp.c | 23 +++++++++--------- I7000/i7000_cdr.c | 27 +++++++++++++-------- I7000/i7000_chan.c | 6 ++--- I7000/i7000_chron.c | 4 ++-- I7000/i7000_com.c | 53 ++++++++++++++++++++++++++++------------- I7000/i7000_con.c | 2 +- I7000/i7000_dsk.c | 20 ++++++++-------- I7000/i7000_ht.c | 16 ++++++------- I7000/i7000_lpr.c | 37 +++++++++++++++-------------- I7000/i7000_mt.c | 12 +++------- I7000/i7010_chan.c | 2 +- I7000/i7010_cpu.c | 51 ++++++++++++++++++++------------------- I7000/i701_chan.c | 6 ++--- I7000/i701_cpu.c | 27 +++++++++++---------- I7000/i701_doc.txt | 38 ++++++++++++++--------------- I7000/i7070_chan.c | 6 ++--- I7000/i7070_cpu.c | 47 ++++++++++++++++++------------------ I7000/i7070_doc.txt | 50 +++++++++++++++++++------------------- I7000/i7080_cpu.c | 58 +++++++++++++++++++++++---------------------- I7000/i7080_doc.txt | 30 +++++++++++------------ I7000/i7080_drum.c | 4 +++- I7000/i7090_cdp.c | 5 ++-- I7000/i7090_cdr.c | 13 +++++----- I7000/i7090_chan.c | 21 ++++++++++++---- I7000/i7090_cpu.c | 11 ++++++--- I7000/i7090_doc.txt | 42 ++++++++++++++++---------------- I7000/i7090_lpr.c | 29 ++++++++++++----------- 27 files changed, 347 insertions(+), 293 deletions(-) diff --git a/I7000/i7000_cdp.c b/I7000/i7000_cdp.c index 88bb4bb..ac898f1 100644 --- a/I7000/i7000_cdp.c +++ b/I7000/i7000_cdp.c @@ -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"); diff --git a/I7000/i7000_cdr.c b/I7000/i7000_cdr.c index 6fd3647..587af5d 100644 --- a/I7000/i7000_cdr.c +++ b/I7000/i7000_cdr.c @@ -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); diff --git a/I7000/i7000_chan.c b/I7000/i7000_chan.c index 61d9798..d8f36dd 100644 --- a/I7000/i7000_chan.c +++ b/I7000/i7000_chan.c @@ -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) { diff --git a/I7000/i7000_chron.c b/I7000/i7000_chron.c index 00aadde..2d66afc 100644 --- a/I7000/i7000_chron.c +++ b/I7000/i7000_chron.c @@ -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"); diff --git a/I7000/i7000_com.c b/I7000/i7000_com.c index 959b42c..414f189 100644 --- a/I7000/i7000_com.c +++ b/I7000/i7000_com.c @@ -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; } diff --git a/I7000/i7000_con.c b/I7000/i7000_con.c index 14cb43d..dd90806 100644 --- a/I7000/i7000_con.c +++ b/I7000/i7000_con.c @@ -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, diff --git a/I7000/i7000_dsk.c b/I7000/i7000_dsk.c index 236587a..e51c3c1 100644 --- a/I7000/i7000_dsk.c +++ b/I7000/i7000_dsk.c @@ -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); diff --git a/I7000/i7000_ht.c b/I7000/i7000_ht.c index 6eb98d7..69743ed 100644 --- a/I7000/i7000_ht.c +++ b/I7000/i7000_ht.c @@ -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); diff --git a/I7000/i7000_lpr.c b/I7000/i7000_lpr.c index e1c5fa5..e923d42 100644 --- a/I7000/i7000_lpr.c +++ b/I7000/i7000_lpr.c @@ -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"); diff --git a/I7000/i7000_mt.c b/I7000/i7000_mt.c index b88761d..f7a3962 100644 --- a/I7000/i7000_mt.c +++ b/I7000/i7000_mt.c @@ -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); diff --git a/I7000/i7010_chan.c b/I7000/i7010_chan.c index d158e90..43f1cd5 100644 --- a/I7000/i7010_chan.c +++ b/I7000/i7010_chan.c @@ -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); diff --git a/I7000/i7010_cpu.c b/I7000/i7010_cpu.c index eeb1623..f444843 100644 --- a/I7000/i7010_cpu.c +++ b/I7000/i7010_cpu.c @@ -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; } diff --git a/I7000/i701_chan.c b/I7000/i701_chan.c index 542c6f2..0d56db3 100644 --- a/I7000/i701_chan.c +++ b/I7000/i701_chan.c @@ -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; } diff --git a/I7000/i701_cpu.c b/I7000/i701_cpu.c index 33df30f..ac5bd39 100644 --- a/I7000/i701_cpu.c +++ b/I7000/i701_cpu.c @@ -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; } diff --git a/I7000/i701_doc.txt b/I7000/i701_doc.txt index 5cad628..d0d09d2 100644 --- a/I7000/i701_doc.txt +++ b/I7000/i701_doc.txt @@ -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 attaches a file + ATT CDR 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 attaches a file + ATT CDP attaches a file Error handling is as follows: diff --git a/I7000/i7070_chan.c b/I7000/i7070_chan.c index 4b87c4a..d41460d 100644 --- a/I7000/i7070_chan.c +++ b/I7000/i7070_chan.c @@ -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; diff --git a/I7000/i7070_cpu.c b/I7000/i7070_cpu.c index 95433c9..dd596e5 100644 --- a/I7000/i7070_cpu.c +++ b/I7000/i7070_cpu.c @@ -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; } diff --git a/I7000/i7070_doc.txt b/I7000/i7070_doc.txt index dd8ca1c..c2a87bf 100644 --- a/I7000/i7070_doc.txt +++ b/I7000/i7070_doc.txt @@ -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 attaches a file + ATT CDR 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 attaches a file + ATT CDP attaches a file Error handling is as follows: diff --git a/I7000/i7080_cpu.c b/I7000/i7080_cpu.c index 47992ee..0c26e0c 100644 --- a/I7000/i7080_cpu.c +++ b/I7000/i7080_cpu.c @@ -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; } diff --git a/I7000/i7080_doc.txt b/I7000/i7080_doc.txt index 428765b..7c17cb8 100644 --- a/I7000/i7080_doc.txt +++ b/I7000/i7080_doc.txt @@ -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 attaches a file + ATT CDR 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 attaches a file + ATT CDP attaches a file Error handling is as follows: diff --git a/I7000/i7080_drum.c b/I7000/i7080_drum.c index 7ba55ec..bcc0183 100644 --- a/I7000/i7080_drum.c +++ b/I7000/i7080_drum.c @@ -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; } diff --git a/I7000/i7090_cdp.c b/I7000/i7090_cdp.c index a3b9b63..b9e38de 100644 --- a/I7000/i7090_cdp.c +++ b/I7000/i7090_cdp.c @@ -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; } diff --git a/I7000/i7090_cdr.c b/I7000/i7090_cdr.c index c4e67e3..a9006c6 100644 --- a/I7000/i7090_cdr.c +++ b/I7000/i7090_cdr.c @@ -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; } diff --git a/I7000/i7090_chan.c b/I7000/i7090_chan.c index 7261f32..7f5c70c 100644 --- a/I7000/i7090_chan.c +++ b/I7000/i7090_chan.c @@ -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; } diff --git a/I7000/i7090_cpu.c b/I7000/i7090_cpu.c index eecf78d..9393c5c 100644 --- a/I7000/i7090_cpu.c +++ b/I7000/i7090_cpu.c @@ -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; } diff --git a/I7000/i7090_doc.txt b/I7000/i7090_doc.txt index b50861d..e56eb05 100644 --- a/I7000/i7090_doc.txt +++ b/I7000/i7090_doc.txt @@ -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 attaches a file + ATT CDRn 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 attaches a file + ATT CDPn attaches a file Error handling is as follows: diff --git a/I7000/i7090_lpr.c b/I7000/i7090_lpr.c index 367d945..4ddf2b9 100644 --- a/I7000/i7090_lpr.c +++ b/I7000/i7090_lpr.c @@ -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;