All programs run on Atlas 1 are under the control of the Supervisor program. Each run of a program is called a job, and certain information has to be supplied to the Supervisor with each job. Full details of preparing jobs for Atlas 1 can be found in CS348A, chapter 10 (issued separately as Preparing a Complete Program for Atlas 1 CS460); this chapter contains a brief summary of the more commonly used features, and details relating to Algol programs in particular. In this chapter references in square brackets are to sections of CS348A.
A document is a self-contained section of information presented continuously to the computer through one input channel. A document carries at its head a heading and a title, each on a line by itself, and ends with a warning sequence of *** and a capital letter by themselves on a line.
The heading indicates the type of document, and must be one of a standard list. The following are the commonest.
The title is any string of characters chosen by the user, subject to local restrictions and certain rules given in [10.3.3].
The most common warning sequences, as interpreted by the Supervisor, are as follows
For a complete list see [10.11].
An Algol program document consists of a single Algol program, as defined in (4.1.1), i.e. a block or a compound statement. For limitations on the size of Algol programs, see chapter 6.
This section contains a special set of rules for transliterating from the reference language to the Atlas 1 hardware representation, as required by the Introduction to the revised report.
The input medium for Algol programs to Atlas 1 is 7-track paper tape, generally prepared on a Flexowriter. The I.C.T. 7-track code is given in Appendix 1.
Algol reference language requires complete English capital and small alphabets of 26 letters, certain underlined letters, the 10 digits, and a further 30 characters. The I.C.T. 7-track character set contains the alphabets and digits; underlining is achieved by use of a backspace and underline. Of the remaining 30 characters, 13 are available on the Flexowriter:
+ - / < = > , . : ( ) [ ]
1 consists of 2 available characters juxtaposed:
:=
6 can be formed by combining 2 characters using backspace:
÷ ≤ ≥ ≠ ≡ ;
The remaining 10 have substitutes for Atlas 1:
*
exp
imp
or
and
not
α
s backspace / for space symbol
( backspace - for open quote symbol
) backspace - for close quote symbol
A complete list of basic symbols and their hardware representations is given in Appendix 2.
An Algol program is first read in by the Supervisor, converted to Atlas Internal Code, and stored in the input well (see section 5.1). The compiler reads the program from the well, and constructs for each line a sequence of composite character images, one for each printing position across the Flexowriter carriage. The reconstructed program is then edited to remove erases etc. and compiled. The following rules are obeyed during the line reconstruction
f o r BS BS BS UL UL UL or f BS UL o BS UL r BS ULor in any way which achieves the same printed representation.
8, 16, 24, 32, 48, 64, 80, 96, 112, 128(In terms of tabulation positions the standard settings are
7, 11, 15, 19, 23, 31, 39, 47, 55, 63, 71, 79where the first and last are margins.)
During editing all blank spaces, newlines, and paper throws are deleted (cf the 'reference language (2.3) ); so are erase characters and composite characters containing erase. Underlined blank space is not ignored, and should not occur outside strings and comment; in particular while goto and go to are acceptable, go to is not. (This restriction may soon be removed.)
Of the other nonprinting characters which occur on some Flexowriters, punch on, punch off, and escape are faulted if they occur outside strings or comment, while stop code is ignored outside strings.
After the heading and title, a job description is divided into various sections, each describing an aspect of the job. The sections are here briefly described; for further information see [10]. <space> means one or more spaces or tabulate characters.
The heading INPUT followed by one or more lines
<stream no.> <space> <title of document>
one for each other input document.
The stream number must be in the range 0 to 7; lowest numbered document must be the program.
The necessary entry for a private input tape is described in [10.12.2].
The heading OUTPUT followed by one or more lines
<stream no.> <space> <equipment> <space> <output limit>
one for each output stream.
The stream number must be in the range 0 to 7. Output 0 is used for Supervisor and compiler printing, but is still available to the program.
Possible equipments are
LINE PRINTER SEVEN HOLE PUNCH CARDS FIVE HOLE PUNCH ANY *LINE PRINTER
ANY is subject to local interpretation; TAPE is used for private output [10.12.4]. *LINE PRINTER calls for special stationery.
The output limit is specified as m LINES (records) or n BLOCKS (1 block = 4096 characters), where m and n are unsigned decimal integers. This can be omitted, when 1 BLOCK is assumed. If no OUTPUT section appears,
0 ANY 1 BLOCK
is assumed.
Each magnetic tape used needs a heading and a description. Possible formats are listed here.
TAPE <programmer's number> <space> <title>
A tape previously titled, belonging to the user.
TAPE NEW <programmer's number> <space> <title>
A tape not previously belonging to the user, to be titled.
TAPE COMMON <programmer's number>
An untitled working tape to be retained by the system
TAPE IBM
A ½" (IBM) tape.
The programmer's number must lie in the range 0 to 126.
For rules concerning titles see [10.6].
If more magnetic tape decks will be required during the program than tapes are mentioned in the job description, they should be requested by
DECKS <space> <decks required>
giving the maximum number of decks required at a time.
COMPUTING <space> <time limit>
gives a maximum time for which the program will be allowed to compute;
EXECUTION <space> <time limit>
gives a maximum for computing plus tape waiting time.
Possible forms for the time limit are
p SECONDS p MINUTES p HOURS m INSTRUCTIONS
where p is a decimal number (possibly with a fractional part) and m is a decimal integer. INSTRUCTIONS means instruction counter interrupts each of approximately 2048 machine instructions. If no COMPUTING entry appears, a standard allowance is assumed, and similarly with EXECUTION.
Maxima for the amounts of store needed by the program during compiling and during execution are given by either of
STORE <blocks for execution>/ <blocks for compilation> BLOCKS STORE <blocks for execution>/ <blocks for compilation>
If the /<blocks for compilation> is omitted or if no store section appears at all, standard allowances are assumed.
An approximation to the amount of store required during compiling of an Algol program can be obtained from the formula:
45 + 9 × (number of blocks of input for the program without data)
Here 'blocks' means blocks of 4096 characters.
If a section
PARAMETER <space> * <octal number>
appears, the octal number (up to 8 digits, left justified) can be accessed inside the program by extracode 1140 with Ba = 4. If the section is omitted the parameter is taken as 0.
The following is a possible job description for the Algol job given in section 3.2.4.
JOB F5025 SJD ICT PP SIMPSON TEST 2 INPUT 0 F5025 SIMPTEST SJD OUTPUT 0 LINE PRINTER 100 LINES COMPUTING 200 INSTRUCTIONS STORE 15/54 BLOCKS ***Z
This job, in common with the normal run of Algol jobs, uses no magnetic tapes, and so needs no magnetic tape, deck allotment, or execution time section. It is further assumed that there is no separate data document, so the only further document required is the program, which will have heading and title:
COMPILER ALGOL F5025 SIMPTEST SJD
Data documents contain information to be read by the program. For the format of data to be read by the system procedures read and read Boolean see section 5.2.2.
A job description may be followed by a program or data in the same document, i.e, with no warning sequence between the two. In such a case the program or data should have no title. A stream number is associated with the program or data by writing
SELF = <stream number>
in the INPUT section of the job description. As always, the program must have the lowest stream number. If no such entry appears then
SELF = 0
is assumed; the program must then be combined with the job description.
Data can follow the program in the same document, but should not appear on the same line as the final end symbol - the rest of the line after the end is treated as comment. Data can follow a program combined with the job description, and so in the simplest case a job has only 1 input stream numbered 0 and needs no INPUT section at all.