https://texdraft.github.io/fortran/fortran.html
FORTRAN II
Programmed by: John W. Backus, Robert J. Beeber, Sheldon Best,
Richard Goldberg, Lois M. Haibt, Harlan L. Herrick, Robert
A. Hughes, Richard A. Nelson, Roy Nutt, David Sayre, Peter
B. Sheridan, Harold Stern, David Sternlight, Irving Ziller.
Reconstructed by: Bob Abeles, Robert Cicconetti, Rich Cornwell, James
Markevitch, Fausto Saporito.
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:
Flags, containing single-character markers that indicate problems
with the line.
You can hover over the flags to see what they signify. In this
listing they are mainly for absent fields in instructions.
Address, the location in memory.
Five octal digits, absent for pseudo-operations that did not result
in any assembly.
Assembly, a representation of the machine word produced by the
assembler.
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.
Line number, as explained above. Location, usually containing a
symbol to be defined as the address.
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 LLOAD, 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 CMOV, 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.
Operation, containing the mnemonic for the operation.
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.
Variable field/remarks, containing operands and commentary.
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