procedure dump program (k,m,n);
This procedure is designed to dump a fully compiled program in binary on magnetic tape. It is intended to serve the dual purpose of:-
This procedure when called will dump all the blocks in use at that point and all the B-lines onto magnetic tape (logical number k) in blocks m to n of the tape. If the dumping area on the magnetic tape is not sufficient, the diagnostic:-
DUMP SPACE EXCEEDED
will appear and the program will end. However if there is sufficient space the following line will appear:-
DUMP TO TAPE k (Title of tape from Job Description) IN THE RANGE (m,n)
Once the dumping has taken place the program will carry on executing from the point where the procedure dump program was called. There will now be a compiled version of the program on the magnetic tape and the following steering tape, substituting for k and n the same values as above, should be used for subsequent runs:-
JOB ---------- TAPE k --- ---------- COMPILER ABL 1001, k, 0, n 1002, k, 0, 2: 121, 127, 0, 2: EA ***Z
This will bring the program down from magnetic tape and re-enter the program immediately after the call of dump program. An example of the use of this procedure is as follows:-
JOB 10000 HOPGOOD DUMP AFTER READING FIXED DATA OUTPUT 0 LINEPRINTER 1000 LINES INPUT 1 CONSTANTDATA INPUT 2 VARIABLEDATA TAPE 3 N0009DMP*PERMIT DISC 99 R502 ALGOLIB COMPUTING 30 SECONDS COMPILER ALGOL INPUT INTERNAL ICT WITH ICT I/O PROCEDURES; begin
library ICT1; select input (1); comment Read in all data which is constant for all runs of the program and set up all initial conditions; dump program (3,1,50); select input (2); comment Read in variable data and carry on with program; end ***Z
Note that by inserting data reading instructions in place of the first comment any large amount of fixed data could be stored on magnetic tape with the program. Subsequent runs would use:-
JOB I0000 HOPGOOD READ PROGRAM FROM TAPE OUTPUT 0 LINEPRINTER 1000 LINES INPUT 2 VARIABLEDATA TAPE 3 N0009DMP*INHIBIT COMPUTING 30 SECONDS COMPILER ABL 1001, 3, 0, 50 1002, 3, 0, 2: 121, 127, 0, 2: EA ***Z
See ICT2 in connection with this procedure.
procedure release mag tape (k);
Once a magnetic tape has been finished with it is a help to the operating staff and the efficient running of the computer for the tape to be dismounted by the user. The deck and tape are then available for other users. This procedure could be used in connection with the procedure ICT1 and also the library tape ALGOLIB.
The procedure will release the magnetic tape with logical tape number k.
procedure dump (str); string str;
This procedure will dump either in octal or in machine order code format certain sections of the Algol program during program execution. It is of use mainly to users having a good knowledge of the internal workings of the Algol Compiler.
The string argument should consist of a set of words separated by commas. The possible words are:-
directory program stack constants i/o
For example:-
dump ('directory, stack');
The areas of store dumped are as follows:-
Each line has its store address in octal printed before it. If several lines are identical the first only is printed. A blank line is inserted to show where lines have not been printed.
procedure print input;
This procedure, when called, will read and print all the remaining characters on the selected input stream. The input is read using the same code conversion as data on that stream. It is designed to give a listing of program or data tapes. For example:-
JOB I0000 HOPGOOD LIST DATA TAPE OUTPUT 0 LINEPRINTER 500 LINES COMPUTING 30 SECONDS TAPE 99 ALGOLIB*INHIBIT COMPILER ALGOL INPUT INTERNAL ICT WITH ICT I/O PROCEDURES; begin
library ICT4; print input; end ***T
followed by a tape ending on ***Z would cause the tape to be printed. Some effort is made to keep paperthrows at positions where additional newlines have been inserted.