Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Overview1962: An outline of Fortran1962: Operating experience with Fortran1962: Implementation of Fortran on Atlas1962: Proposed target language (BAS)1962: BAS binary card1963: Intermediate Atlas symbolic programming language (INTERASP)1963: Addendum1963: A primer for Fortran programming1964: Atlas Fortran manual: Part I1964: Part II1964: Using HARTRAN1965: System note 41966: Fortran on Atlas □ Atlas 2 at AWRE □ 1965: BAS subroutines1965: System notes1966: S3 Fortran □ Titan □ 1966: System note 11966: System note 21966: Fortran on Titan1966: Compile Master on Titan1966: System Note 31966: Differences between S3 dialect and Fortran II1966: Magnetic tape library subroutines1967: T3 Fortran reference manual
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

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

Overview1962: An outline of Fortran1962: Operating experience with Fortran1962: Implementation of Fortran on Atlas1962: Proposed target language (BAS)1962: BAS binary card1963: Intermediate Atlas symbolic programming language (INTERASP)1963: Addendum1963: A primer for Fortran programming1964: Atlas Fortran manual: Part I1964: Part II1964: Using HARTRAN1965: System note 41966: Fortran on Atlas
Atlas 2 at AWRE
1965: BAS subroutines1965: System notes1966: S3 Fortran
Titan
1966: System note 11966: System note 21966: Fortran on Titan1966: Compile Master on Titan1966: System Note 31966: Differences between S3 dialect and Fortran II1966: Magnetic tape library subroutines1967: 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