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

ADDENDUM TO ATLAS PAPER NO.29

A R Trice

28 August 1963

1. Introduction

Since Atlas Paper No. 29 was written the preliminary Hartran and BAS Loader system has been under development on the Manchester University Atlas and this has lead to the implementation of certain features which it is hoped will improve the system, together with some minor changes. These are described in this note under the corresponding section numbers where possible.

2. Facilities Provided

2.2 Routines of chapters with non zero numbers are loaded into the chapter region of store unless designated global in which case they are loaded into the global region.

Routines of chapter 0 are always loaded into the global region. Any routines declared public by a directive (see section 4) will also be loaded into the global region in chapter 0.

Note that if the mode of a routine has been defined as block then when the routine is loaded a message

BLOCK REQUESTED GLOBAL ASSIGNED

following the name of the routine is printed (no execution deletion) and the routine is loaded into the global region.

2.4 Library routines are usually loaded into the same region of store as the ordinary routines of the chapter have been loaded, except if declared to be of a higher mode (i.e. global).

2.5 Note that the global region of the store, which includes any chapter 0, is only written to magnetic tape if at least one chapter with non zero number has been loaded and therefore written to tape. Hence a job containing a single chapter 0 is not written to tape.

In the system array /CHAIN, the second half word of an entry contains one less than the number of blocks in the character position (i.e. X2-3).

3. Bas Loader

3.2 Columns 49-72 are not examined by the loader and therefore could be used as an extension to the label field e,g, for recording date of compilation etc.

3.2 The markers in the Parameter Use Table and External Reference Table are now as follows:-

negative odd   -  end of entry
negative even  -  end of table

This is in order that floating point zero will be detected as the end of the table in any extraordinary cases.

3.3 The check sum is always accumulated and an error occurs if the check sum is incorrect, unless the check sum is zero or the ignore check sum digit is punched.

Note that chapter region implies global region for chapter 0. Also global region is implied if block defined (see section 2).

3.4 Re-markers. See section 3.2, i.e. for even read odd and for odd read even. When assigning storage for a private or public array storage is in the global region always for arrays defined in a chapter 0, unless designated block.

3.5 The storage locations in the chapter and global regions assigned to arrays defined in the routine are set to floating point zero, (not cleared). Note that the block region will be cleared when HARTRAN is deleted.

4. Hartran

4.1 *CHAPTER expression

If the expression is zero chapter 0 is introduced, the routines of which are loaded into the global region, and no writing to tape occurs In addition the maximum chapter storage parameter is therefore not amended and the chapter 0 entry point is preserved in a B register for use if needed by the executor routine.

Note that until the system library tape is implemented the first routine to appear after the first *CHAPTER directive must be the executor, if not previously loaded.

If the first *CHAPTER directive is missing then routines up to the next *CHAPTER, *ENTER or *END directive will be treated as being in Chapter 0.

*ENTER expression

In addition to the current storage parameters (B11, 13, 14, 19) being written to global locations 0 and 1, B23 which may contain the entry point to chapter 0 (if it has been loaded), is written to global location 2.0. These locations are private and cannot be overwritten by the loaded program.

Four parameters are set for use by the executor. They are

  1. No. of last chapter loaded (B10): 0 if none loaded.
  2. Maximum permissible chapter No. (B22): 0 if chapter 0 job.
  3. Entry point of any chapter 0 loaded (B23).
  4. No. of chapter to be entered (B26).
*RENAME rename list

Errors occur only if a is defined. If a is listed with negative length, indicating forward references to a, then, if b is defined, these forward references are filled in with the value of b; if b is undefined with negative length, the forward references to b are added to the forward references to a by joining the appropriate chains in the FRT.

If b is unlisted the rename is ignored and a message printed, but no deletion of execution occurs.

*LIST and *LISTG

These are two additional directives which have been implemented to assist in program development. The former lists all the chapter region into which routines have been loaded and the latter the global region. Each line will be of one of two formats i.e. :-

  1. D1(B1) - D2(B2) FP ZERO
  2. D(B) F Ba Bm S (H,L)

where D D1 D2 are location addresses in decimal, B B1 B2 B B^ Bp their equivalent in octal, F Ba Bm S the contents of a location as an instruction where the address S is in decimal and H and L are the octal representations of the high and low halves of the location.

4.3

(i) The routines can be preceded by *CHAPTER 0.

(iii) *CHAIN X, b should follow *READGLO x, y, z to specify the chain tape (x) to the executor and to position the tape at the beginning of the first chapter to be entered.

(iv) Chapter 0 need not be the last routine loaded since it is loaded into the global region which is always present.

(v) Note that if execution is required *END should be replaced by *ENTER or *ENTER x. The order of *CHAIN a, b, c and *READGLO d, e, f should be reversed. Similarly in (vi) and (vii).

Note If *READGLO is to be included in a job then it must ho the first directive to be interpreted by Hartran.

5. Printed Commentary

5.2 Add the following

(28) Executor missing. Prints NO EXECUTOR and deletes execution, program is then ended.

(29) Routine mode defined as block. Prints BLOCK REQUESTED -GLOBAL ASSIGNED, assigns storage in the global region. Execution is not deleted.

⇑ 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