A logging facility is to be implemented on the FR80 in order to maintain an automatic record of work performed by the machine. The log will reside on the FR80 disk and will be periodically dumped onto magnetic tape. These tapes will be regularly processed by the 1906A in order to determine the amount of FR80 system resources consumed by each plotting job, and so provide for the accurate billing of each FR80 user. Initially, the log will record only the barest minimum of information consistent with providing this service. At a later stage, the logging of additional data may be considered desirable. Further possibilities include the provision of a facility within the FR80 itself for interrogating the logged data in order to discover, for example, the progress of a particular user job.
Data will be written in the log by a special FR80 monitor program, to be known as the LOGGING MONITOR. The data which is to be logged will be conveyed to the logging monitor by means of special monitor commands, to be known as LOGGING COMMANDS. These commands will have the same format as ordinary monitor commands. The name of the command will indicate to the logging monitor the type of logging record which is to be created; while the parameters to the command will supply the data which this record is to contain. The activity of invoking the logging monitor and supplying it with data is to be known as a LOGGING JOB.
So that each plotting job can be correctly clocked in and clocked out of the FR80, it will be necessary to both precede and follow every plotting job with a logging job. These jobs will be termed the LEADING and TRAILING logging jobs, respectively. When the stand-alone FR80 system (ie not LOADGO) is in use, the execution of these logging jobs will be the responsibility of the FR80 operators. Under the LOADGO system, however, it will be the duty of the Graphics Packages to perform this task. It is the purpose of this paper to give details of how this is to be done.
The format of an FR80 LOAD GO tape was defined in FR80 Technical Paper 2. We briefly review this information here.
On a LOADGO tape, the data for each job is preceded by two header records and followed by a single filemark. The first header record contains the name of the monitor program which is to process the data, while the second header record contains a set of monitor commands which are to be obeyed by the chosen monitor program before it begins processing the data records. All graphics packages which intend to use the ACL FR80 should already be generating output in this format.
Naturally, logging jobs must also conform to this standard format, but since all the data for a logging job is contained in its monitor commands, the provision of data records would seem to be unnecessary for this class of job. Unfortunately, LOADGO is unable to process jobs which contain no data records. In order to circumvent this difficulty, we will require that each logging job contains a single data record. The contents of this record are irrelevant since they will never he examined.
In summary, an FR80 LOADGO job should now conform to the following format:
1a FIRST HEADER RECORD (Names the logging monitor) LEADING 1b SECOND HEADER RECORD (Supplies logging commands) LOGGING 1c DUMMY DATA RECORD JOB 1d FILEMARK (Terminates leading logging job) 2a FIRST HEADER RECORD (Names the FR80 Displayer) PLOTTING 2b SECOND HEADER RECORD (Supplies monitor commands) JOB 2c .................... 2c GRAPHICAL DATA RECORDS (graphical data may be several records) 2c .................... 2d FILEMARK (Terminates the plotting job) 3a FIRST HEADER RECORD (Names the logging monitor) TRAILING 3b SECOND HEADER RECORD (Supplies logging commands) LOGGING 3c DUMMY DATA RECORD JOB 3d FILEMARK (Terminates trailing logging jobs)
We draw the reader's attention to the following points:
The first LOADGO header record of each logging job supplies the name of the logging monitor. This name is SYSLOG. Thus the first header record of a logging job should have the symbolic form:
Word 1 Word2 Word 3 Word 4 ... Last Word *** SYS LOG all zero
In 6-bit ASCII, this becomes (in octal)
Word 1 Word2 Word 3 Word 4 ... Last Word 525252 233123 141707 000000 ... 000000
There are only three logging commands available to graphics packages. They are GSTART, GEND and GCOM. The set of commands in each logging job is terminated by the standard command GO.
The minimal set of commands which may appear in a leading logging job consists of a GSTART followed by GO. Optionally, one or more GCOM commands may appear in between these two commands.
In this situation, the minimal set of commands is a GEND followed by a GO. Again, one or more GCOM commands may optionally appear, but in this case they must precede the GEND command.
The general form of a logging command is the same as that of any other monitor command. That is the command name appears first, followed by a slash, followed by zero or more arguments. Arguments are separated from one another by commas and consequently, no argument may contain a comma embedded within it Every command is terminated by the special character code 215 (octal), which we will represent here by the symbol &. The arguments of a command must appear in the correct order. In exceptional circumstances, an argument may be omitted altogether, but any commas which would normally appear before or after the missing argument must remain. Any leading blanks which appear in an argument will be ignored, while trailing blanks are not allowed. We now describe the individual commands in detail.
(1) GSTART/ <user name> , <job name>, <camera> ,<package>, <machine> &
The first two arguments are character strings and the remaining three arguments are all decimal number strings:
<machine> is a single digit which specifies the machine on which the job was run. The scheme used is:
Thus if user :GSINI8 issues a 1906A 'SMOG' job which has jobname XYZPLOT, and which is intended to produce 4-up hardcopy on the FR80, the following command would be issued by the leading logging job:
GSTART/GSINI8 ,XYZPLOT,8,0,0&
(2) GEND/ <sub-frames> , <frames> &
Both arguments are decimal number strings:
Thus a many-up hardcopy job which plots 107 frames of output with 426 sub-frames, should cause the following command to be issued by the trailing logging job:
GEND/426,107&
(3) GCOM/ <comment> &
This command allows a comment to be written in the log. The argument may be any character string. The authors of this paper should be consulted if any graphics package intends using this facility.
(4) GO/&
This command takes no argument and merely serves to terminate the set of logging commands in a particular job.
Consider a 1906A SPROGS job, generated by user :GSINI8 with jobname XYZPLOT. The job uses 35mm colour film and plots 18 frames of output. A 7-track tape produced by this job would have the format:
1a ***SYSLOG LEADING 1b GSTART/GSIN18,XYZPLOT,3,1,0&GO/& LOGGING 1c Dummy Data Record JOB 1d Filemark 2a ***FCFO PLOTTING 2b CAM/3&TAPE/5&GO/& JOB 2c Graphical Data Records 2d Filemark 3a ***SYSLOG TRAILING 3b GEND/18,0&GO/& LOGGING 3c Dummy Data Record JOB 3d Filemark