This is a hypertext rendition of the source code of IBM's FORTRAN II compiler for the IBM 704/709/7090/7094. (See also LISP 1.5.)
The code was originally preserved in a printed listing (see Paul McJones's FORTRAN history page), from which an assembleable text was reconstructed. I wrote a small program to generate HTML from the code.
Unlike LISP 1.5, FORTRAN II is made up of many separate assemblies (over 200). Hence they are on separate pages, tabulated below. In addition to a listing, for each assembly cross-reference information for all symbols is available in the form of index pages. These list every symbol in alphabetical order. Click on a symbol's entry to reveal its definition and uses across the code. (In many cases, a symbol is documented by remarks given on the line defining it. But sometimes, especially for subroutines, there may be pertinent remarks-only lines preceding the point of definition. Thus any such remarks are included on the index pages. The lack of structure in comments means that it is difficult to tell where the relevant comments stop, so often spurious remarks are included.)There are two kinds of line in the listings: comment lines (“remarks”) and code lines. Every line is numbered, and you can use that number to link to a particular line. (This is a deviation from the printed listing, which did not provide line numbers for assembler-generated lines, in order to make it easy to identify lines uniquely.) Code lines have several fields, many of which may be blank:
You can hover over the flags to see what they signify. In this listing they are mainly for absent fields in instructions.
Five octal digits, absent for pseudo-operations that did not result in any assembly.
One or more fields in several formats, related to the encoding of the instruction, absent for some pseudo-operations. The vast majority of instruction have a five-digit (octal) address part that you can look at to see the value of the expression in that field.
Today we would probably say “label”. The lone exception is with the HED psuedo-operation, which instead interpreted the first column as a character used to “head” symbols. Heading a symbol meant prefixing it with the head character and spaces to pad it to six characters (leaving it alone if it's already long enough). For example, if the head is “ L
”, then LOAD
is headed to L␣LOAD
, but COMMON
is unaffected by a head. Programmers can opt out per symbol by writing C$S
, where C
is the desired head character (or empty to indicate no head) and S
is the name before heading. For example, C$MOV
becomes C␣␣MOV
, and $CPPI
will always be ␣␣CPPI
no matter what the head is. The point of this feature is to provide rudimentary namespace separation, so that symbols' “scope” could be limited to certain subprograms. Later assemblers supported multiple head simultaneously using the new HEAD pseudo-operation, which took an arbitrary number of heads in the variable field.
FORTRAN II does not use the heading feature very much.
When you click on a symbol in the location field, you'll be taken to its entry on the index page, described above.
Operations are either machine instructions (such as TRA or CLA or LDC, or commands for the assembler (such as BSS or TTL). When it's a machine instruction, * after the mnemonic indicates indirect addressing.
This field usually consists of comma-separated expressions (the “variable field”) and then a comment after some whitespace. The variable field can sometimes contain spaces, when the operation is BCD or BCI or VFD.
Click on a symbol in the variable field to be taken to its point of definition. Occasionally a symbol is defined on a different page from the point of reference. If you hover over a symbol, you get a tooltip showing its meaning in octal and decimal (often you can also get this information from the assembled word on the left).
Enjoy!
1-CS | Assembly | Symbols |
CARD TO TAPE | Assembly | Symbols |
SECTION 6 CIT TO SAP CONVERSION | Assembly | Symbols |
SECTION 6 ON-LINE PRINT | Assembly | Symbols |
TAPE 3,7 TO 2,6 | Assembly | Symbols |
SUCCESSFUL COMPILATION | Assembly | Symbols |
SOURCE PROGRAM ERROR | Assembly | Symbols |
BATCH MONITOR | Assembly | Symbols |
MACHINE ERROR | Assembly | Symbols |
SECTION 1 4K VERSION | Assembly | Symbols |
SECTION 1 DIAGNOSTIC | Assembly | Symbols |
SECTION 1 PRIME | Assembly | Symbols |
SECTION 1 DOUBLE PRIME | Assembly | Symbols |
SECTION 2 BLOCK 1 | Assembly | Symbols |
SECTION 2 BLOCK 2 | Assembly | Symbols |
SECTION 2 BLOCK 3 | Assembly | Symbols |
SECTION 2 BLOCK 4 | Assembly | Symbols |
SECTION 2 BLOCK 5 | Assembly | Symbols |
SECTION 2 BLOCK 6 | Assembly | Symbols |
OPEN SUBROUTINES | Assembly | Symbols |
PART 1 OF MERGE | Assembly | Symbols |
PART 2 OF MERGE | Assembly | Symbols |
PART 3 OF MERGE | Assembly | Symbols |
SECTION 4 | Assembly | Symbols |
SECTION 5 | Assembly | Symbols |
SECTION 5 PRIME | Assembly | Symbols |
SECTION 6 RECORD A | Assembly | Symbols |
SECTION 6 RECORD B | Assembly | Symbols |
SECTION 6 RECORD C | Assembly | Symbols |
SECTION 6 RECORD D | Assembly | Symbols |
SECTION 6 RECORD E | Assembly | Symbols |
SECTION 6 RECORD F | Assembly | Symbols |
SECTION 6 RECORD G | Assembly | Symbols |
SECTION 6 RECORD H | Assembly | Symbols |
SECTION 6 RECORD I | Assembly | Symbols |
SECTION 6 RECORD J | Assembly | Symbols |
SECTION 6 RECORD K | Assembly | Symbols |
SECTION 6 RECORD L | Assembly | Symbols |
SECTION 6 RECORD M | Assembly | Symbols |
SECTION 6 RECORD N | Assembly | Symbols |
SECTION 6 RECORD P | Assembly | Symbols |
SECTION 1 8K VERSION | Assembly | Symbols |
SECTION 5 8K VERSION | Assembly | Symbols |
DBC (PERMANENT LIBRARY) | Assembly | Symbols |
CSH (PERMANENT LIBRARY) | Assembly | Symbols |
TSH (PERMANENT LIBRARY) | Assembly | Symbols |
BDC (PERMANENT LIBRARY) | Assembly | Symbols |
SCH (PERMANENT LIBRARY) | Assembly | Symbols |
SPH (PERMANENT LIBRARY) | Assembly | Symbols |
STH (PERMANENT LIBRARY) | Assembly | Symbols |
LRT (PERMANENT LIBRARY) | Assembly | Symbols |
EXP 1 (PERMANENT LIBRARY) | Assembly | Symbols |
EXP 2 (PERMANENT LIBRARY) | Assembly | Symbols |
EXP 3 (PERMANENT LIBRARY) | Assembly | Symbols |
LOG (GENERAL LIBRARY) | Assembly | Symbols |
SIN/COS (GENERAL LIBRARY) | Assembly | Symbols |
EXP (GENERAL LIBRARY) | Assembly | Symbols |
SQRT (GENERAL LIBRARY) | Assembly | Symbols |
ATAN (GENERAL LIBRARY) | Assembly | Symbols |
TANH (GENERAL LIBRARY) | Assembly | Symbols |
EDT (EDITOR PROGRAM) | Assembly | Symbols |
PLIB (PERMANENT LIBRARIAN) | Assembly | Symbols |
GLIB (GENERAL LIBRARIAN) | Assembly | Symbols |
TCVP (TAPE COPY AND VERIFY PROGRAM) | Assembly | Symbols |
BSS LOADER (BINARY SYMBOLIC SUBROUTINE LOADER) | Assembly | Symbols |
DIAGNOSTIC EDITOR | Assembly | Symbols |
DIAGNOSTIC CALL-IN EXAMPLE | Assembly | Symbols |
DIAGNOSTIC READ-IN | Assembly | Symbols |
MAIN DIAGNOSTIC RECORD | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |
DIAGNOSTIC ERROR COMMENT | Assembly | Symbols |