PLN 7

Notes on the Trusted Program Controlling PL1900

P. H. Dove

24.7.68

It is intended the trusted program will control editing, input and output to PL1900, consolidation, and the run of the consolidated program. Initially the trusted program (TRPL) will have to be controlled entirely by directives similar to those currently in use in the scientific compilers. Later it is hoped that one or two line amendments will be sufficient to control a complete edit → run process. In this case a master file will be held on disc containing all the latest steering information (possibly a cycle). The system will list the current states of files etc., to enable the user at a disaster to manually re-instate the system. A copy of this file could be generated on magnetic-tape after every run.

Editing will initially be carried out by calling in XMED (a subfile version is essential for the first version of PL1900). Parameters as required by XMED must be created as for a free-standing run. The files and subfiles created by XMED will then be available to the compilation control (which may be an overlay of TRPL). The directives to control compilation and consolidation are listed below.

1) SEND TO (ED, f(g), S(gs))
f(g), S(gs) are the file and subfile on which the new semi-compiled is to be held.
2) SEMICOMPILED (ED, f(g), S(gs))
f(g), S(gs) are the file and subfile holding previously compiled semi-compiled which is to be consolidated regardless of cues or force in bits.
3) LIBRARY (ED, f(g), S(gs))
f(g), S(gs) are the file and subfile holding previously compiled semi-compiled which is to be consolidated selectively (e.g. segments or procedures called when compiling in trace mode).
4) DUMP ON (ED, f(g))
f(g) is the file on which the compiled program in binary is to be held.
5) MACROFILE (ED, f(g))
f(g) is a file of subfiles whose names are macros required to be inserted into existing source by the PL1900 statement INCLUDE(...)
6) READ FROM (ED, f(g), S(gs))
f(g), S(gs) file and subfile which contain source to be compiled (or possibly semi-compiled to be copied across to the SEND TO file). This directive can appear anywhere after the initial directives in logical places between slow input source segments and procedures.

The trusted program will in certain circumstances have to merge two EDS inputs from 5) and 6). At a request for a macro search TRPL will store its current READ FROM information, search for the macro subfile, hand this information to PL1900 till the macro (i.e. subfile) is exhausted and then return to the original EDS subfile or slow input. TRPL will attempt to consolidate once FINISH is read. A segment will consist of either a procedure where the segment name is the procedure name, or a labelled begin followed by a matching end. In this case the label will be the segment name. The master segment containing the priority and name block and possibly overlay information will be generated by TRPL from certain steering information possibly passed to PL1900 for output as semi-compiled.

Listing (always to a line printer) will be controlled by TRPL, full listing will occur unless SHORTLIST is requested , It will also be possible to omit listing completely by NOLIST. Error numbers and comments will whenever possible occur immediately after the line or statement to which they refer. Shortlisting will consist of segment names, procedure names, errors and comments.

Semi-compiled will be output to the SEND TO subfile through an interface which consists of a record of semi-compiled (or leader information). This record will be batched accordingly by TRPL and blocks output when necessary. The EDS files will be extended when necessary by TRPL and file reporting will be carried out by TRPL.

Errors occurring during operation of TRPL or the programs entrusted to it e.g. XMED or XPCL will be output to the listing peripheral in a similar format to the PL1900 errors with an indication of the originating program

e.g. XMED HALTED E1 

Unless TRPL can sensibly continue the sequence of programs wil be halted, all files and subfiles closed such that a restart is possible.

XPCL will be entrusted and the object program automatically loaded, this will be effected by a 'RUN' record in the steering bucket for XPCL. It is likely that the number of semi-compiled subfiles will be above the current limit of XPCL i.e. more than one bucket containing steering information.

The object program will be automatically run and a core print at a failure given. Details of the core required could be specified as parameters to TRPL.

Most of the controlling aspects of TRPL are available under George but this would mean that the Input/Output part of PL1900 could not entrust PL1900 and any automatic update system would still require a lengthy job description.