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

On Using the HARTRAN System

B C Chapman

15 January 1964

1. Introduction

It is proposed in this paper to describe how the normal loader printing can be used to aid program development, and also to offer advice on dealing with the loader diagnostics. A description of the system has been previously published (Atlas Paper No. 29), and there will inevitably be some repetition, but the purpose of this paper is to help the user to obtain quickly the information that he needs.

2.Normal Printing

The normal printing consists first of all of a listing of all directives, including *BAS, in the program deck. In addition, at the end of each chapter (i.e. immediately before a *CHAPTER, *ENTER or *END card is read, the loader symbol table appropriate to the previous chapter is printed, followed in the case of *ENTER, *END by a printing of all global symbols from the loader symbol table. The most frequent sort of job is a single chapter job without an explicit *CHAPTER directive. In this case all routines and arrays are treated as global, and the printout consists simply of a list headed GLOBAL ROUTINES AND ARRAYS. Each line consists of an identifier name followed by two numbers, each in octal with one octal fraction. The first number gives the length of a routine or array followed by its mode, i.e., the storage region appropriate. All global symbols have mode 2. The second number gives the value of the symbol. In the use of a routine this is the entry point (not necessarily the first instruction) and for an array it is the base address of the array. The order of printing of routines and arrays is the order in which they appear in the loader symbol table. This is a computed entry tables the order is neither alphabetic nor order of occurence.

The loader terminates by calling the executor, a special library routine. This prints out the word EXECUTION on a new page. Any printing thereafter is from the job itself.

3. Printing at the end of a job

(a) END OF JOB
This is the normal HARTRAN ending. It results from a direct or indirect call of library routine EXIT.
(b) JOB TERMINATED
This is the abnormal HARTRAN ending. An error during execution has resulted in a call of library routine EEXIT. Later a trace facility will be automatically called in to print cut the position of the stoppage in terms of the routines called.
(c)Supervisor Monitor printing

This consists of a brief message, followed by a print out of three consecutive instructions, indicating the approximate position of the fault, and the contents of non-zero B registers. In order to discover which routine contains the three instructions, first convert one of the specified locations to octal. Now search the loader listing of routines and arrays in the appropriate region for the two values which straddle most closely the result of conversion. The instructions are from one or other of these two routines. Remember that in general an ASP routine enters at its first instruction, whilst a FORTRAN routine enters near the end, and it should now be possible to identify the routine, and in the case of ASP routines the exact instructions printed out.

4. Loader Diagnostics: their effect and treatment

xd means that the error results in execution deletion.

RECORD NOT BINARY
Hollerith card in a BAS deck or last card of a routine undetected (all except last have column 1, row 1 punched). No processing of the routine being loaded takes place and the card is treated as a directive.
FAILED ROUTINE NOT LOADED
Probably indicates that the current routine failed during compilation, and the BAS deck contains a FAILED lace card. It is detected by the number of words to be loaded (column 1, rows 2-6) being zero. No processing takes place and any further binary cards before the next directive are skipped.
CHECK SUM DISAGREEMENT xd
The routine is identified by the preceding *BAS directive. The actual card can be located by referring to the relative relocation address which is printed out (in octal). This number will correspond to columns 7 and 8 of one card of the routine.
ROUTINE PREVIOUSLY LOADED
A routine or array with this name has previously been defined. Possibly due to two versions of one routine or else an earlier forward reference to this present data array (which looks like a routine).
IDENTIFIER PREVIOUSLY DEFINED
An auxiliary symbol defined in this routine or symbol defined on this *RENAME or *DEFINE, has previously been defined. The subsequent definition is ignored.
IDENTIFIER UNDEFINED
An expression in a directive contains an undefined,, but previously mentioned, symbol.
IDENTIFIER UNLISTED
In a *RENAME directive the r.h.s. is a symbol not previously met. The current rename is ignored.
MISSING ROUTINES xd
A routine of the required name cannot be found, even after a search of the library. This could be due to a missing DIMENSION statement in a FORTRAN routine. The diagnostic message is followed by a list of all the locations which refer to the routine. Reference to the symbol tables as described in 3(c) might help.
MAIN ROUTINE MISSING xd
There is no main routine (i.e. one whose name is all blank) in the current chapter.
EXECUTOR MISSING xd
The executor routine has not been loaded. Since this should come automatically from the library, this diagnostic indicates a system fault. The expressions on two *CHAPTER cards have the same value. This will also arise if a multichapter program is being developed by first copying all chapters from a previous chain tape by *COPY, and then reading a new version of one chapter. The subsequent chapter is the one which will be used in execution.
INADMISSIBLE CHARACTER
A directive contains an illegal character. The rest of the card is ignored. In the case of *BAS, the whole routine is ignored.
DIRECTIVE UNKNOWN
A Hollerith card does not contain a known directive. Possibly due to mis-punching or else a missing *ENTER directive.
REQUESTED LENGTH UNACCEPTABLE
The length of an array in the external reference table of a routine is greater than the previously specified length. The shorter length is retained.
REQUESTED MODE UNACCEPTABLE
The mode of an entry in the external reference table is higher than that previously stated. The lower mode is retained.
BLOCK REQUESTED - GLOBAL ASSIGNED
A routine mode defined as block. It is put into the global region.
MODE NOT PARAMETER
A symbol named in the parameter use table is not of parametric mode. The entry is ignored.
PARAMETER UNDEFINED xd
A symbol in the parameter use table is neither defined within this routine, nor was it previously.
PARAMETER OVERFLOW xd
The value of the composite parameter defined by the parameter use table entry is greater than 221.
TOO MANY IDENTIFIERS. PROGRAM SUSPENDED xd
The loader symbol table is full. It has room for 2048 entries, but some of these will be taken up by implicit references to library routines.
/CHAIN NOT LISTED xd
/CHAIN is a system array used for multi chapter jobs. /CHAIN is defined by the directive *CHAlN or possibly by *READGLO.
CHAPTER NO* TOO HIGH xd
The expression on a *CHAPTER card has a value greater than that specified on the original *CHAiN directive.
NOT ENOUGH TAPE LEFT xd
There is insufficient space on the chain tape to accommodate chapter or global regions.
CHAPTER STORAGE LIMIT EXCEEDED xd
GLOBAL STORAGE LIMIT EXCEEDED xd
BLOCK STORAGE LIMIT EXCEEDED xd
COMMON STORAGE LIMIT EXCEEDED xd
The occurrence of any of these is almost certainly due to a programming error. The limits set are so high that for any of these regions the limit is greater than the amount of main store on any Atlas.

5. Hartran Library Input Diagnostics

When during the execution of a Fortran program an illegal character is encountered during the input of numerical data, diagnostic printing occurs. This consists of two lines. The first is a print out of the card concerned, and the second consists of

INPUT ERROR

followed by a digit in the range 1 to 5. The meanings are as follows:

1 More than one decimal point or a non-digit in mantissa
2 Non-digit in exponent
3 Exponent or point read in I-type field
4 Exponent read in F-type field
5 No exponent read for E-type

Error 1 will be given for any spaces occurring after digits in a number being read by I-type input, and also in the exponent of a number being read by E-type input. Otherwise space will be treated as zero.

⇑ 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