Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ PrefaceContentsNote on certain Supervisor features1. Presenting an Algol Program to Atlas2. Variations on Algol 603. Monitor printing and fault diagnosis4. Code procedures5. Input and Output6. Miscellaneous programming notes □ Appendices and indices □ A1. ICT 7-track punched tape codeA2. Hardware representationA3. Fault tableA4. Standard functions and system proceduresIndex to Supervisor and compiler printingsGeneral index
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureAtlas manualsAlgol :: ATLAS 1 COMPUTER ALGOL REFERENCE MANUAL
ACLLiteratureAtlas manualsAlgol :: ATLAS 1 COMPUTER ALGOL REFERENCE MANUAL
ACL ACD C&A INF CCD CISD Archives
Further reading

Preface
Contents
Note on certain Supervisor features
1. Presenting an Algol Program to Atlas
2. Variations on Algol 60
3. Monitor printing and fault diagnosis
4. Code procedures
5. Input and Output
6. Miscellaneous programming notes
Appendices and indices
A1. ICT 7-track punched tape code
A2. Hardware representation
A3. Fault table
A4. Standard functions and system procedures
Index to Supervisor and compiler printings
General index

1 Presenting an Algol Program to Atlas 1

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.

1.1 Documents

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.

1.1.1 Document headings

The heading indicates the type of document, and must be one of a standard list. The following are the commonest.

COMPILER <space> <compiler name>
The following document is a program in the stated language. For an Algol program the heading is COMPILER ALGOL.
JOB
The following document requests the computer to execute the job and gives relevant facts about it. This document is called a job description, and is described below.
DATA
The following document is data for the program.
1.1.2 Document title

The title is any string of characters chosen by the user, subject to local restrictions and certain rules given in [10.3.3].

1.1.3 Warning sequences

The most common warning sequences, as interpreted by the Supervisor, are as follows

***Z
End of document: disengage the equipment, and read a new document when re-engaged.
***C
End of document: another document follows on the same tape.
***T
Disengage the equipment, and when re-engaged continue reading the document.

For a complete list see [10.11].

1.2 Program documents

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.

1.2.1 Hardware Representation

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.

1.2.2 Punching rules

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

  1. The order of formation of composite characters is irrelevant; thus for instance the basic symbol for can be punched as
    f o r BS BS BS UL UL UL
    or 
    f BS UL o BS UL r BS UL
    
    or in any way which achieves the same printed representation.
  2. A tabulate character is interpreted as a sequence of spaces such as would move the character to the next tabulation setting which is at least 2 character positions away. Standard Atlas tabulation settings are assumed; in terms of character positions from the beginning of the line these are
    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, 79 
    
    where the first and last are margins.)
  3. A line contains at most 128 character positions. If the beginning or end is overshot, successive characters pile up to form composite characters.
  4. Paper throw is treated as newline.
  5. Composite characters containing more than 3 different Flexowriter characters and not containing erase are faulted.
  6. The character π(£) is everywhere replaced by ; ( semicolon).

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.

1.3 Job Descriptions

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.

1.3.1 Input section

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].

1.3.2 Output Section

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.

1.3.3 Magnetic tape section

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].

1.3.4 Deck allotment

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.

1.3.5 Time estimates
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.

1.3.6 Store allocation

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.

1.3.7 Job description parameter

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.

1.3.8 Example of job description

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

1.4 Data documents

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.

1.5 Composite documents

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.

⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site