This paper attempts to compare utility programs of 4 machines proposed for the Interactive Facility. The machines are:
Attention is focused on programs for file manipulation (copying, editing, printing) and magnetic tape handling.
The current state of Burroughs documentation makes it very difficult to decipher just what is and what is not available. There appear to be facilities for handling magnetic tapes under CANDE, the terminal system. Such facilities also exist in WFL (Work Flow Language) which may be likened to a batch stream, but can be used in-line from a CANDE session. It is certainly possible to copy files to and from magnetic tape, but no details of tape formats are known.
No utility has been found to print discs and tapes as octal dumps. There is a utility for comparing files, but this appears to be rather crude (like NUTS COMPARE).
NUTS is the utility system developed by David Duce for the ICL 1906A.
Further discussions with the manufacturer are indicated.
Information is to hand on the CANDE editor only. If other editors exist we know not of them. It is not necessary to call the editor explicitly. As explained elsewhere, editing commands refer to the current workfile. In this respect it looks very much like the CDC line editor.
Lines may be inserted by just typing the sequence number followed by text. The SEQ command initiates the automatic generation of sequence numbers. Lines are deleted by the DELETE command. Character strings within a line may be altered by the FIX command. Lines may be inserted from the workfile (cf GEORGE) or other file into the workfile with new sequence numbers.
The MERGE and RMERGE commands can be used to merge the workfile with another file, thus MERGE SYMBOL will merge the workfile with the complete file SYMBOL, keeping the workfile copies of records with identical sequence numbers. RMERGE is similar except that the workfile copies of duplicate sequence numbers are discarded.
Context editing is catered for by a separate group of commands. The mode of operation of these commands is not what might a priori be expected. The FIND command may be used to search for appearances of specific text strings. One or more targets may be specified. By default the entire file is searched, to limit the search either a count or sequence number range may be specified. The locations of the specified strings are listed on the terminal or may optionally be sent to a file.
The REPLACE command may be used to replace occurrences of one string by another string. As Drs Ford and Robinson discovered to their cost the default action is to replace all occurrences of the given string!
In summary, line editing facilities are much the same as offered by any other manufacturer, text and global editing facilities are limited and require a good deal of care especially if coming from a GEORCE machine!
CDC utilities appear to be very unstructured, and the documentation not particularly transparent.
Copying of files to and from magnetic tape appears to be catered for. The system has utilities for comparing files and for maintenance of program source files and libraries.
Parity errors on data transfers are normally handled by the system but an option to the ASSIGN command can place error handling under program control.
The TDUMP command enables a file to be listed in octal and/or alpha-numeric form, from any position and any given number of records, files or lines. There are built-in facilities for tape code conversion between ASCII or EBCDIC and CDC display code.
It is clear that not all the information required to do justice to CDC is to hand. More manuals are required before the complete picture can be obtained.
CDC provide two editors, the line editor which is part of TELEX and the TEXT ED1TOR.
The line editor does not have to be called explicitly. Any line input from a terminal commencing with a line number is taken as input to the line editor which operates on the user's primary file. Lines are corrected by retyping the entire line and deleted by just typing the line number. Line numbers can be generated automatically by use of the AUTO command, and files can be resequenced by the RESEQ command. This editor has limited facilities but incurs negligible system overhead because it runs in a PPU rather than main memory.
The Text Editor provides facilities for line editing and context editing of a local file with or without line numbers. Editing commands have the format:
<command word>:<string specification>;<unsigned integer>
and <unsigned integer>/<string specification> are optional.
There are three basic modes of operation:
The editor is based on a pointer concept similar to GEORGE, but unlike the GEORGE editor the pointer always points to the start of a line and is not normally updated by commands.
The SET command SET;n moves the pointer n lines (n may be negative) re1ative to its current setting. SET:/string/ moves the pointer to the first line containing the string relative to the current line. SET:/string/;n moves the pointer to the beginning of the line containing t he nth occurrence of the search string. String changing and replacing commands are fairly normal.
Global editing facilities are provided by the <unsigned integer> option in the command specification. * used in place of an integer causes an action to be repeated to the end of a file. The facilities look powerful but the elegance of the GEORGE nested edit is lacking.
There is a MERGE command, but this is not quite like GEORGE.
DEC provide a comprehensive utility program in the shape of PIP (Peripheral Interchange Program). Commands are normally entered to PIP via the terminal keyboard, but PIP can be driven from a command file (cf STEER files in NUTS and TASK).
The basic command format is:
DESTINATION = SOURCE <terminator>
PIP provides facilities for interchanging files between all sensible peripheral types. Directory (Disc, DECTAPE) and non directory (card reader, magnetic tape, paper tape etc) devices are catered for, and PIP will generate default file names where appropriate, The wild card constructs:
TEST.* All files with file name TEST *.SRC All files with extension SRC *.* All files
are very useful.
DESTINATION and SOURCE specifications take the form:
Options are controlled by the use of switches. The syntax of switch specification looks rather complex for the first-time user.
There is a switch to ignore parity errors on read transfers, but it is not known what information is actually transferred to the output device under such circumstances.
The DUMP program will print a data file in a format specified by the user. This format may include decimal octal or symbolic instruction dumps. DEC tape manipulation is well catered for. There is a COPY and COMPARE utility for DEC tape but not for ordinary magnetic tapes.
Saving disc files to magnetic tape is possible. The utility will doubtless be much used in the absence of a built-in filestore archiving system.
The PUNCH command enables files to be punched on cards in various codes. The codes available are 026, ASCII and 029. There is also an IMAGE mode facility.
A utility exists to compare files, and this may be used to print certain special types of file.
Documentation on two DEC editors, LINED and TECO, is available. LINED is a simple line editor. lines are inserted by the command Innnn (where nnnn is the line number) and deleted by the command Dnnnn.
There is a multiple line insert command of the form Innnn, and and a similar command to delete lines mmmm through nnnn. The P command prints lines on the teletype. the editor is easy to use, but only works on files containing line numbers.
TECO is a character-orientated editor that is extremely powerful and flexible. The editor operates on a page of a file at a time, a page being defined as either that text delimited by form feed characters or as much of the file as will reasonably fit into the input buffer. The page in the buffer can then be modified and when correct is output and the next page read in.
The editor revolves around the buffer pointer. This is always positioned between two characters in the buffer, or before the first character or after the last character. This can cause confusion at first. The pointer can be moved on a line by line or character by character basis.
There is a variant of the search command (:S or :N) that delivers a value, 0 if the search fails or -1 if successful. Commands exist to operate on this value. Labels are allowed in command strings, and conditional or unconditional branch instructions exist.
Thirty six Q registers are provided which may be used for storing command strings or buffer contents for later use. It is left as an exercise to the reader to work out the possibilities of an editor with such facilities!
The TECO section in the User's Handbook is extremely well written and the user can soon learn how to use those advanced facilities. The author speaks from experience!
File utility routines are handled by the FURPUR system processor which is loaded when the Executive' encounters a FURPUR control statement and deleted when Executive encounters a statement that is not a FURPUR control statement.
The action of file handling utility programs is complicated by the unusual structure and nomenclature of the UNIVAC filestore. A UNIVAC program file corresponds to a total file for a project and can contain source, binary and library items. Individual items are called elements. In 1900 terminology a file may be thought of as a pseudo-directory and an element as a file.
The format of a FURPUR control statement is:
@ command,options name-1,name-2,additional parameters
Commands are available to transfer elements from file to file, to copy file or elements to and from magnetic tape, and to do program file housekeeping such as delete, rename elements, print elements, and tidying the file by returning the space occupied by elements marked as deleted to free storage.
The COPY command is used to copy program files or elements to another file. It can be used for tape to tape copying of entire magnetic tapes. When procedure elements are copied, the procedure name entries are added to the output file procedure name tables. Options are available to specify that only certain types of elements are to be copied.
The option system seems to be comprehensive, but is not easy to understand. A thorough grasp of the filestore structure and its implications seems to be required before the manual can be understood.
Program files can only exist on disc storage devices. Magnetic tapes hold only sequential files (where file means a sequence of data blocks delimited by tape marks), but there is a capability to copy all the elements of a program file on disc to a single file (or element file) on magnetic tape. An element file has no table of contents. The utility to perform this operation is called COPOUT, and the inverse utility COPIN.
These utilities seem to provide all the facilities required for program file maintenance. Appending to a tape seems to be possible.
Utilities to print magnetic tapes, and to compare files/elements do not appear to be available. No software to handle foreign magnetic tapes has been found. No information is available on how the software handles parity errors.
The editor is called by the command:
where the options are powerful but hard to remember! Options include enter input mode if name-1 does not exist, update symbolic element by applying corrections and create a new symbolic element cycle.
The editor seems to work on a line pointer basis. The pointer may be moved around by either the GI command followed by a line number or the FIND command followed by a string. FIND seems to be the equivalent of the GEORGE P<string> command, the LOCATE command is the equivalent of PC<string>. <string> may contain transparent characters which will match with any character in the column, and a command is available to set the transparent character. Lines are deleted by the DELETE command, which is the same as everyone else's.
The PRINT command lists lines of the file to the terminal. String replacement is done by the CHANGE command:
The number of lines to be scanned is indicated by m. All subsequent occurrences in a file may be changed by putting AL in place of m, G is the line global indicator, if present all occurrences of string-1 within a line will be changed, otherwise only the first is altered. The editor has a QUIT (OMIT) command but no FORGET (a la everybody else!).
Novel features are the ability to issue Exec commands (a limited set) from within the editor and to send messages to other terminals or the operators console. The INLINE command allows in-line editing of a given line. The line is first printed out, and then the user can enter information directly below to edit it. I followed by a string causes the string to be inserted following the character immediately above the I. The string is delimited by !, or by any nominated character. R string will replace the character above them in string. D will delete everything between D and the terminator.
The editor also has a tab facility, very nice for typing FORTRAN.
Insertions are done after the line pointed to, but there is an IB command which has the opposite effect.
In summary, the editor has some nice features if one can think of how to use them. Global editing facilities look rather weak and not very elegant. It should be pointed out however that the author has not used the UNIVAC editor, and hence this opinion might be modified in due course.
On the evidence available, utilities are rather depressing. Come back NUTS, all is forgiven! DEC certainly seem to have the most coherent utility system and certainly the most powerful editor. However the TECO editor could be difficult to learn though this is not the author's experience. Line editors are all very similar. For the occasional user the line editors are all easy to learn and the documentation doesn't look too hard to follow.
No manufacturer advertises software for handling foreign magnetic tapes, though this is not to say such software does not exist. The documentation available for Burroughs and CDC is really far too limited to pass any sensible judgment on these manufacturers.