Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Overview □ 1962: An outline of Fortran □ 1962: Operating experience with Fortran □ 1962: Implementation of Fortran on Atlas □ 1962: Proposed target language (BAS) □ 1962: BAS binary card □ 1963: Intermediate Atlas symbolic programming language (INTERASP) □ 1963: Addendum □ 1963: A primer for Fortran programming □ 1964: Atlas Fortran manual: Part I □ 1964: Part II □ 1964: Using HARTRAN □ 1965: System note 4 □ 1966: Fortran on Atlas □ Atlas 2 at AWRE □ 1965: BAS subroutines □ 1965: System notes □ 1966: S3 Fortran □ Titan □ 1966: System note 1 □ 1966: System note 2 □ 1966: Fortran on Titan □ 1966: Compile Master on Titan □ 1966: System Note 3 □ 1966: Differences between S3 dialect and Fortran II □ 1966: Magnetic tape library subroutines □ 1967: T3 Fortran reference manual
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
⟶ ACL ⟶ Applications ⟶ Hartran :: Hartran and Fortran on Atlas
⟶ ACL ⟶ Applications ⟶ Hartran :: Hartran and Fortran on Atlas
ACL ACD C&A INF CCD CISD Archives
Further reading ⇓

□ Overview □ 1962: An outline of Fortran □ 1962: Operating experience with Fortran □ 1962: Implementation of Fortran on Atlas □ 1962: Proposed target language (BAS) □ 1962: BAS binary card □ 1963: Intermediate Atlas symbolic programming language (INTERASP) □ 1963: Addendum □ 1963: A primer for Fortran programming □ 1964: Atlas Fortran manual: Part I □ 1964: Part II □ 1964: Using HARTRAN □ 1965: System note 4 □ 1966: Fortran on Atlas
Atlas 2 at AWRE
□ 1965: BAS subroutines □ 1965: System notes □ 1966: S3 Fortran
Titan
□ 1966: System note 1 □ 1966: System note 2 □ 1966: Fortran on Titan □ 1966: Compile Master on Titan □ 1966: System Note 3 □ 1966: Differences between S3 dialect and Fortran II □ 1966: Magnetic tape library subroutines □ 1967: T3 Fortran reference manual

The Compile Master on TITAN

B C Chapman

25 July 1966

(As used with S3FORTRAN jobs.)

1. General Description

1.1 Introduction

The Compile Master controls the compilation phase of a job. At Aldermaston this could mean the whole of a FORTRAN job or the compilation phase of a FORGO job. On Titan, there is option corresponding to FORTRAN, due to the lack of a card punch, and the compile and go run is known as S3FORTRAN. The Compile Master, however still retains the facility for operating in the two modes, although no use is made of the second entry, and its effect is omitted from the following notes.

A subset of system directives is recognised to enable Fortran subroutines to be compiled, and ASP subroutines to be assembled, possibly from more than one input stream, and finally for the processing to be terminated and loading initiated.

1.2 Use of Paper Tape

To facilitate the use of paper tape, whilst still preserving an emphasis on efficient card handling, any short (i.e. less than 80 characters) records beginning with * are padded out with blanks so that they look like cards. Other symbolic records are left short. The S3 compiler and ASP assembler each perform similar padding operations.

2. Directives

2.1 Classes of Directives

Directives are divided into 4 types - compiler callers, input changes, processing terminators, and others. Any * card not recognised as belonging to the first three types is assumed to be long to the last. Detailed checking of directives does not take place until the loading phase.

2.2 Compiler Callers

*S3 is a call for the S3 Fortran compiler.

*ASP is a call for the ASP assembler.

These directives are not retained for the load phase. Note that when the compiler and assembler has finished, a search is made for the next * card (normally the next card). Thus omission of one of these directives results in the apparent disappearance of a routine without comment.

2.3 Change of Input Stream

*INPUT with an expression in columns 9-72 will change the current input to the value of the expression. The expression may consist of any constant acceptable to the loader, but no symbol names are allowed. This directive is not retained for the load phase since its effect is immediate, but the currently selected input is remembered when compilation is terminated by *ENDCOMP.

2.4 Termination of the Compile Phase

The compile phase is ended by the directive *ENTER, *END or *ENDCOMP. More precisely, it is ended by *ENTER, (unless columns 9-15 contain PRELUDE) or *END???? where ???? represent any characters other than the sequence LIB blank so that *ENDLIB is excluded. All directives are retained for the load phase.. In addition, if the directive is *ENDCOMP. the currently selected input is superimposed on columns 9-16.

2.5 Other Directives

All other directives are copied together with any subsequent symbolic or binary cards until a symbolic card with a * in column 1 appears. In the copying process columns 73-80 of binary cards are ignored.

3. Interface with the Supervisor

Communication with the Loader

Output from the compile phase required during loading is written to output stream 64. At the end of the compilation phase the redidu of input 0 is renumbered as input 65, and output 64 is renumbered as input 0. Finally the loader is called as a private phase by the 1147 extracode, assuming that the loader begins at a fixed place relative to the compile master.

3.2 The documents in the supervisor file

The compile master assumes that it is entered with TAPE 126 as the supervisor file, pointing at the first block of S3. Assuming that the compile master is at block 1, the relative position of documents are:

Block Document                   Length    Position in Core
 1    Compile Master                1              J0117
 2    S3 Compressed Dictionary      4              J0004
 3    S3 Stage 1                   11              J0056
17    S3 Stage 2, 3, 4             16              J0071
33    S3 $ Declarations            11              J0033
44    S3 Simulator                  1              J0116
50    ASP                           7              0
57    Loader                        6              J0067
3.3 Calls by the Compile Master

The compile master begins by reading S3 to core. Subsequent reads are in response to directives, bearing in mind what already exists in core. B21 contains the return address, and B20 is used to indicate whether the jobs S3FORTRAN (one) or compile only (zero).

3.4 Call of the S3 Compiler

First the ASP assembler is marked as not present, then the *S3 directive is copied to the head of a new page on output 0, and any parts of the compiler not in core will be read from the disc. S3 may overwrite part of itself, in which case the appropriate documents are marked as not in core, so that they will be re-read when required.

3.5 Call of the ASP Assembler

First two parts of the S3 compiler are marked as not in core. Then ASP is read from the disc unless it is already in core.

When ASP is assembling a large routine it may require backing store in the form of working tape 13. This is not supplied automatically by the system, and must be provided by the programmer.

3.6 The End of the Compile Phase

The compile phase is ended with either the 1117 (end program) in the case of a compile only job, or an 1147 (enter private phase) in an S3FORTRAN job. In either case, output stream 0 is terminated by the comment "END OF COMPILER STREAM 0".

3.7 Use of Private Monitor

Private Monitor is set initially so that should any monitoring occur, the effect is the same as *END in a compile only job. The S3 compiler sets its own private monitor, so the compile master resets its monitor immediately after each return from S3 or ASP.

⇑ 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