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