*** empty log message ***
authorhachti <hachti>
Sat, 1 Dec 2007 16:31:07 +0000 (16:31 +0000)
committerhachti <hachti>
Sat, 1 Dec 2007 16:31:07 +0000 (16:31 +0000)
lib/iolib/src/pl$mv.asm
lib/iolib/src/pl$u.asm
programs/fortran/build_frtn_doug.sh [new file with mode: 0755]
programs/fortran/frtn_doug.asm [new file with mode: 0644]
programs/plotter/src/sinus.f

index b202b72e82f57c6342faa05e88b966f26d57ae10..97d4dfe5c3a806775e6a4ae787c92981ccd627af 100644 (file)
@@ -2,13 +2,16 @@
 *
 *    
 * PROGRAM TITLE:  
-*                 PL$MV (PL$MV,PL$RST) 
+*                 PL$MV (PL$MV,PL$RST,PL$LN
 *                 
 *                 PLOTTER MOVEMENT ROUTINES
 *                         
 *               
 * REVISIONS: 
 *            1.0 (2007-05-28)
+*            1.1 (2007-11-08) - ADDED INTELLIGENT LINE DRAWING ROUTINE
+*                               
+*
 *
 * AUTHOR:      
 *
 *              CALL     PL$MV   - MOVE TO POINT SPECIFIED
 *              DAC     XN        BY XN
 *             DAC      YN        AND YN VALUE
-*              
+*
+*              CALL    PL$LN   - DRAW LINE AND LEAVE PEN DOWN
+*              DAC      X1
+*              DAC      Y1
+*              DAC      X2
+*              DAC      Y2
+*              DAC      0
 *
 *
 ********************************************************************************
 *
        SUBR    PL$MV,MOVE
        SUBR    PL$RST,RST
+       SUBR    PL$LN,LINE
+*
 *
 *
        REL             THIS IS A RELOCATABLE OBJECT
        ORG     '0
 *
+********************************************************************************
+*
+LINE   DAC     0               DRAW A LINE FROM NEAR STARTING POINT
+       LDA*    LINE    X1
+       STA     X1P     
+       IRS     LINE
+       LDA*    LINE    Y1
+       STA     Y1P     
+       IRS     LINE
+       LDA*    LINE    X2
+       STA     X2P     
+       IRS     LINE
+       LDA*    LINE    Y2
+       STA     Y2P     
+       IRS     LINE    TALLY RETURN ADDRESS
+       IRS     LINE    AGAIN FOR FORTRAN IV COMPATIBILITY
+*      
+       LDA     X
+       SUB*    X1P
+       SPL             SKIP IF SIGN PLUS
+       TCA             TWO'S COMPLEMENT IF NEEDED
+       STA     D1
+       LDA     Y
+       SUB*    Y1P
+       SPL
+       TCA
+       ADD     D1
+       STA     D1
+*      
+       LDA     X
+       SUB*    X2P
+       SPL             SKIP IF SIGN PLUS
+       TCA             TWO'S COMPLEMENT IF NEEDED
+       STA     D2
+       LDA     Y
+       SUB*    Y2P
+       SPL
+       TCA
+       ADD     D2
+       CAS     D1
+       JMP     D2BG    D2 IS BIGGER!
+       NOP
+*
+D1BG   LDA*    X2P     DIFFERENCE 1 IS BIGGER, SO START AT POINT X2,Y2
+       STA     XA
+       LDA*    Y2P
+       STA     YA
+       LDA*    X1P
+       STA     XB
+       LDA*    Y1P
+       STA     YB
+       JMP     WOKI    WORK!
+*
+D2BG   LDA*    X1P     DIFFERENCE 2 IS BIGGER, SO START AT POINT X1,Y1
+       STA     XA
+       LDA*    Y1P
+       STA     YA
+       LDA*    X2P
+       STA     XB
+       LDA*    Y2P
+       STA     YB
+*
+WOKI   LDA     X       TEST IF STARTING POINT IST CURRENT POSITION
+       CAS     XA
+       JMP     MV1
+       JMP     *+2
+       JMP     MV1
+       LDA     Y
+       CAS     YA
+       JMP     MV1
+       JMP     *+2
+       JMP     MV1
+       JMP     NM1
+*      
+MV1    CALL    PL$PU   MOVE TO THE STARTING POSITION
+       CALL    PL$MV
+       DAC     XA
+       DAC     YA
+       DAC     0
+NM1    CALL    PL$PD   WE ARE AT BEGINNING OF LINE
+       CALL    PL$MV
+       DAC     XB
+       DAC     YB
+       DAC     0
+       JMP*    LINE    END OF THE LINE :-)
+*
+*
+X1P    DAC     0       ARGUMENT POINER TO X1
+Y1P    DAC     0       ARGUMENT POINER TO Y1
+X2P    DAC     0       ARGUMENT POINER TO X2
+Y2P    DAC     0       ARGUMENT POINER TO Y2
+XA     DEC     0       REAL FIRST POINT X COORDINATE
+YA     DEC     0       REAL FIRST POINT Y COORDINATE
+XB     DEC     0       REAL SECOND POINT X COORDINATE
+YB     DEC     0       REAL SECOND POINT Y COORDINATE
+D1     DEC     0       ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P1
+D2     DEC     0       ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P2
+*      
+*
+********************************************************************************       
 *
 RST    DAC     **      SET POINT ZERO
        STA     X
index 4c23c6496ff4ed39816aa5fccbd84d70c65043af..be61b235bf8aecf8404dd7156151535056e56789 100644 (file)
@@ -8,6 +8,8 @@
 *
 * REVISIONS: 
 *            1.0 (2007-05-27)
+*            1.1 (2007-11-08) - ADDED PEN POSITION TRACKING
+*                               TO PL$PU AND PL$PD
 *
 * AUTHOR:      
 *
@@ -22,8 +24,8 @@
 *    
 * STORAGE:     
 *
-*    ??? (OCTAL)
-*    ??? (DECIMAL)
+*    100 (OCTAL)
+*     64 (DECIMAL)
 *
 *
 * USAGE:       
@@ -95,14 +97,23 @@ LEFT        DAC     **
 *
 *
 PENU   DAC     **
+       LDA     PEN
+       SNZ
+       JMP*    PENU
+       CRA
+       STA     PEN
        LDA     CPNU
        JST     OUT
        JMP*    PENU
 *
 *      
 PEND   DAC     **
+       LDA     PEN
+       SZE
+       JMP*    PEND
        LDA     CPND
        JST     OUT
+       IRS     PEN
        JMP*    PEND
 *
 *
@@ -142,5 +153,6 @@ CRGT        OCT     '10
 CPNU   OCT     '20
 CPND   OCT     '40
 *
+PEN    DEC     0       PEN STATE: 1=DOWN
 *
        END
diff --git a/programs/fortran/build_frtn_doug.sh b/programs/fortran/build_frtn_doug.sh
new file mode 100755 (executable)
index 0000000..894bb1e
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+cat > build.do <<EOF
+rest $H316/sys/super3.sys
+set cpu 16k
+at ptr frtn_doug.obj
+run 36000
+go
+at ptr build/f4\$ios-b.obj
+go
+
+at ptr $H316/lib/iolib/lib/fortran-lib.lib
+go
+
+at ptr build/f4\$dum.obj
+go
+save frtn_doug.sys
+
+at ptp frtn_doug.slst
+run 37000
+d a 100
+go
+d a 27777
+go
+q
+EOF
+
+rm -f frtn_doug.sys frtn_doug.slst
+h316 build.do
+rm -f build.do
+
+
+
+
diff --git a/programs/fortran/frtn_doug.asm b/programs/fortran/frtn_doug.asm
new file mode 100644 (file)
index 0000000..9c48e98
--- /dev/null
@@ -0,0 +1,7165 @@
+* C210-001-6601 (FRTN)       3C NO.180463000           REV. D
+*
+*
+*
+* COMPUTER. DDP-116,516
+*
+*
+*
+*
+* PROGRAM CATEGORY- COMPILER
+*
+*
+*
+*
+* PROGRAM TITLE. FRTN
+*                EXPANDED FORTRAN IV COMPILER
+*                FOR DDP-116,516
+*
+*
+*
+*
+*
+*
+*
+*                            APPROVAL                           DATE
+*
+*
+*                            PROG---------------------      ------------
+*
+*
+*                            SUPR----------------------     ------------
+*
+*
+*                            QUAL----------------------     ------------
+*
+*
+*                                          NO. OF PAGES     ------------
+*
+*        REVISIONS
+*
+* REV. D   ECO 5249
+* REV. C   ECO 3824          10-31-66
+* REV. B   ECO 3476          09-19-66
+* REV. A                     06-08-66
+*
+* AUTHOR
+*
+*    HONEYWELL. INC. - COMPUTER CONTROL DIVISION
+*
+*
+* PURPOSE
+*
+*    THIS PROGRAM IS DESIGNED TO COMPILE ASA STANDARD FORTRAN IV
+*          PROGRAMS IN ONE PASS, GENERATING OPTIMUM OBJECT CODE FOR THE
+*          DDP-116 OR DDP-516.
+*
+*
+* RESTRICTIONS
+*
+*    MINIMUM 8K CORE STORAGE
+*
+*
+* STORAGE
+*
+*    6682  (DECIMAL)
+*    15034  (OCTAL)
+*
+*
+* USE
+*
+*
+*                  ********************************
+*
+*                  *FORTRAN-IV OPERATING PROCEDURE*
+*                  ********************************
+*
+*    1.  LOAD THE COMPILER SYSTEM TAPE USING STANDARD 'LOAD-MODE'
+*          (DDP-116), OR "PAL-MODE (DDP-516) LOADING PROCEDURES
+*
+*    2.  SET THE (A) REGISTER FOR THE DESIRED INPUT/OUTPUT DEVICE
+*          SELECTION AS DESCRIBED BELOW, SET (P) TO '1000, SET THE
+*          SENSE SWITCHES AS DESCRIBED BELOW, AND PRESS START.
+*
+*    3. INPUT/OUTPUT DEVICE SELECTION (BITS SET IN (A) ON ENTRY).....
+*          1......IF SET, CERTAIN ERROR CHECKS ARE NOT MADE.  THIS
+*                 OPTION IS USED WHEN COMPILING THOSE PARTS OF THE
+*                 LIBRARY WRITTEN IN FORTRAN LANGUAGE AND IT ALLOWS THE
+*                 LIBRARY TO TAKE ADVANTAGE OF THE COMPILER'S LOGIC TO
+*                 GENERATE SPECIAL CODING.
+*
+*          2-7....NOT ASSIGNED
+*
+*          8-10...INPUT DEVICE SELECTION
+*                1 = ASR-33/35 KEYBOARD (OR ITS PAPER TAPE READER)
+*                 2 = NCR CARD READER
+*                 3 = DIGITRONICS PAPER TAPE READER
+*                 4 = MAGNETIC TAPE ( UNIT 1 )
+*                 5-7 = (SPARES)
+*
+*          11-13..SYMBOLIC LISTING SELECTION
+*                 0.  SUPPRESS ALL SYMBOLIC LISTINGS
+*                 1. ASR-33/35 TYPEWRITER
+*                 2. LINE PRINTER
+*                 3 = ( SPARE )
+*                 4 = LISTING ON MAGNETIC TAPE UNIT 2
+*                 5-7 = (SPARES)
+*
+*          14-16..BINARY OUTPUT SELECTION
+*                 0.  SUPPRESS BINARY OUTPUT.
+*                 1.  BRPE HIGH SPEED PAPER TAPE PUNCH
+*                 2. ASR BINARY OUTPUT ASR/33
+*                 3. ASR BINARY OUTPUT ASR/35
+*                 4 = MAGNETIC TAPE OUTPUT
+*                 5-7 (SPARES)
+*
+*
+*    4.  SENSE SWITCH SETTINGS AND MEANINGS.......
+*          1......EXPAND THE SYMBOLIC LISTING TO INCLUDE
+*                 SIDE-BY-SIDE OCTAL INFORMATION.
+*          2......INHIBIT SYMBOLIC LISTING (AS LONG AS SSW-1 NOT SET).
+*          3......PAUSE BEFORE INPUT OF THE NEXT RECORD.  DURING
+*                 THIS PAUSE, THE (A) REGISTER WILL DISPLAY THE CURRENT
+*                 STATUS OF THE I/O KEYBOARD,  IT MAY BE
+*                 CHANGED AT THIS TIME IF DESIRED BEFORE RESETTING
+*                 SSW-3 AND PRESSING START TO CONTINUE.
+*          4......CAUSE TRACE COUPLING INFORMATION TO BE INCLUDED
+*                 IN THE OBJECT CODING BEING GENERATED REGARDLESS OF
+*                 ANY TRACE STATEMENTS WITHIN THE PROGRAM (OPERATOR
+*                 OVERRIDE).
+*
+*    5.  WHEN BINARY TAPE IS BEING GENERATED, THE COMPILER
+*          AUTOMATICALLY TURNS ON THE TAPE PUNCH AND PUNCHES OUT A
+*          LENGTH OF LEADER.  AFTER THE END-OF-JOB IS TYPED, A LENGTH OF
+*          TRAILER IS PUNCHED BEFORE TURNING OFF THE PUNCH, AND THE LINE
+*          PRINTER IS ADVANCED TO THE NEXT PAPER SEAM.  PRESS 'START'
+*          TO PROCESS THE NEXT PROGRAM (BATCH COMPILING).
+*
+*        FOR ASR BINARY OUTPUT, NO LEADER OR TRAILER IS
+*          PROVIDED, AND THE BINARY PUNCH IS LEFT ON THROUGHOUT
+*          THE COMPILATION.
+*
+*
+* ERRORS
+*
+*    THE ERROR MESSAGES OUTPUT BY THIS COMPILER ARE LISTED ON A
+*    SEPERATE DOCUMENT FOR EASE OF DISTRIBUTION.
+*                      *************************
+*                      *DATA POOL ENTRY FORMATS*
+*                      *************************
+*
+*    THE DATA POOL CONSISTS OF FOUR FORMS OF INFORMATION
+*          1.  THE ASSIGNMENT TABLE CONSISTS OF 5 WORDS, STARTS
+*              AT THE END OF THE COMPILER AND EXTENDS TOWARD THE
+*              END OF MEMORY.
+*
+*                   TDCCCCCCCCCCCCCC....DP(A+4)
+*                   CCCCCCCCCCCCCCCC....DP(A+3)
+*                   CCCCCCCCCCCCCCCC....DP(A+2)
+*                   IIAAAAAAAAAAAAAA....DP(A+1)
+*                   NRRRMMMLLLLLLLLL....DP(A)
+*
+*                       T = TRACE TAG
+*                       D = DATA TAG
+*                       C = SIX 8-BIT CHAR. OR BINARY CONSTANT
+*                       I = ITEM USAGE (IU)
+*                           0 = NO USAGE     2 = VAR/CONSTAN^
+*                           1 = SUBPROGRAM   3 = ARRAY
+*                       A = ASSIGNMENT ADDRESS
+*                       N = NAME TAG (NT)
+*                           0 = NAME         1 = CONSTANT
+*                       R = ADDRESS TYPE (AT)
+*                           0 = ABSOLUTE     3 = STRING-REL
+*                           1 = RELATIVE     4 = COMMON
+*                           2 = STRING-ABS   5 = DUMMT
+*                       M = ITEM MODE (IM)
+*                           1 = INTEGER      5 = COMPLEX
+*                           2 = REAL         6 = DOUBLE
+*                           3 = LOGICAL
+*                           4=COM/EQU LINK
+*          2.  THE DO TABLE 'FLOATS' ON TOP OF THE ASSIGNMENT
+*              TABLE AND CONTAINS THE INFORMATION NEEDED TO CLOSE-OUT
+*              A DO-LOOP,  EACH ENTRY IS 5 WORDS.
+*                   00IIIIIIIIIIIIII
+*                   00TTTITTTTTTTTTT
+*                   00XXXXXXXXXXXXXX
+*                   00UUUUUUUUUUUUUU
+*                   00NNNNNNNNNNNNNN
+*                       I = INITIAL VALUE/OR RPL
+*                       T = TERMINAL VALUE
+*                       X = INDEX
+*                       U = INCREMENT
+*                       N = STATEMENT NUMBER
+*
+*            3.  THE EXPRESSION TABLE (AOI TABLE) 'FLOATS' ON TOP
+*                THE DO TABLE AND CONSISTS OF 2 WORD ENTRIES.
+*
+*                     NOOOOOO00IIIIIII.....DP(I+1)
+*                     00AAAAAAAAAAAAAAAA...DP(I)
+*                         N = NEGATION INDICATOR
+*                         O = OPERATOR
+*                         I = INDEX (OPERATOR LEVEL)
+*                         A = ASSIGNMENT TABLE REFERENCE
+*            4.  THE TRIAD TABLE IS USED TO OPTIMIZE EXPRESSIONS AND
+*                IS AT THE END OF MEMORY EXTENDING DOWN TOWARDS THE
+*                COMPILER. EACH ENTRY IS THREE WORDS LONG.
+*
+*                     S000000000PPPPPP.....DP(L+2)
+*                     0011111111111111.....DP(L+1)
+*                     0022222222222222.....DP(L)
+*                         S = TEMP STORAGE INDICATOR
+*                         P = OPERATOR
+*                         1 = FIRST OPERAND ADDRESS
+*                         2 = SECOND OPERAND ADDRESS
+       ABS
+       ORG     '100
+*
+*     ************************************
+*     * DIRECTORY OF FORTRAN IV COMPILER *
+*     ************************************
+*
+*
+*
+*..............ENTRANCE GROUP
+       DAC     A3      (ENG1)  COMPILER ENTRANCE/INITIALIZE
+       DAC     DP              DATA POOL START
+*
+*..............INPUT GROUP
+       DAC     IC00    (IPG1)  INPUT COLUMN
+       DAC     UC00    (IPG2)  UNINPUT COLUMN
+       DAC     CH00    (IPG3)  INPUT CHARACTER
+       DAC     ID00    (IPG4)  INPUT DIGIT
+       DAC     IA00    (IPG5)  INPUT (A) CHARACTERS
+       DAC     FN00    (IPG6)  FINISH OPERATOR
+       DAC     DN00    (IPG7)  INPUT DNA
+       DAC     II00    (IPG8)  INPUT ITEM
+       DAC     OP00    (IPG9)  INPUT OPERAND
+       DAC     NA00    (IPG10) INPUT NAME
+       DAC     IG00    (IPG11) INPUT INTEGER
+       DAC     IV00    (IPG12) INPUT INTEGER VARIABLE/CONSTANT
+       DAC     IR00    (IPG13) INPUT INTEGER VARIABLE
+       DAC     IS00    (IPG14) INPUT STATEMENT NUMBER
+       DAC     XN00    (IPG15) EXAMINE NEXT CHARACTER
+       DAC     SY00             INPUT STMBOL
+*
+*..............TEST GROUP
+       DAC     TS00    (TSG1)  ALL CHARACTER TEST (EXCEPT C/R)
+       DAC     IP00    (TSG2)  )-INPUT OPERATOR
+       DAC     A1      (TSG3)  C/R TEST
+       DAC     B1      (TSG4)  , OR C/R TEST
+       DAC     NU00    (TSG5)  NO USAGE TEST
+       DAC     NC00    (TSG6)  NON CONSTANT TEST
+       DAC     NS00    (TSG7)  NON SUBPROGRAM TEST
+       DAC     AT00    (TSG8)  ARRAY TEST
+       DAC     IT00    (TSG9)  INTEGER TEST
+       DAC     NR00    (TSG10) NON REL TEST
+*
+*..............ASSIGNMENT GROUP
+       DAC     AS00    (ASG1)  ASSIGN ITEM
+       DAC     TG00    (ASG2)  TAG SUBPROGRAM
+       DAC     TV00    (ASG3)  TAG VARIABLE
+       DAC     FA00    (ASG4)  FETCH ASSIGN
+       DAC     FL00    (ASG5)  FETCH LINK
+       DAC     KT00    (ASG6)  D(0)= SIZE OF ARRAY DEFLECTION
+       DAC     DM00    (ASG7)  DEFINE IM
+       DAC     DA00    (ASG8)  DEFINE AF
+       DAC     AF00    (ASG9)  DEFINE AFT
+       DAC     LO00    (ASG10) DEFINE LOCATION
+       DAC     AI00    (ASG11) ASSIGN INTEGER CONSTANT
+       DAC     AA00    (ASG12) ASSIGN SPECIAL
+       DAC     NXT             GET NEXT ENTRY FROM ASSGN TABLE
+       DAC     BUD             BUILD ASSIGNMENT TABLE ENTRT
+*
+*..............CONTROL GROUP
+       DAC     B6      (CNG1)  JUMP
+       DAC     C5              ILL TERM
+       DAC     C6      (CNG2)  CONTINUE
+       DAC     C7      (CNG3)  STATEMENT INPUT
+       DAC     C8      (CNG4)  STATEMENT SCAN
+       DAC     A9      (CNG5)  STATEMENT IDENTIFICATION
+       DAC     NP00    (CNG6)  FIRST NON-SPEC CHECK
+*
+*..............SPECIFICATIONS GROUP
+       DAC     EL00    (SPG1)  EXCHANGE LINKS
+       DAC     NM00    (SPG2)  NON COMM0N TEST
+       DAC     ND00    (SPG3)  NON DUMMY OR SUBPROGRAM TEST
+       DAC     SC00    (SPG4)  INPUT SUBSCRIPT
+       DAC     IL00    (SPG5)  INPUT LIST ELEMENT
+       DAC     R1      (SPG6)  FUNCTION
+       DAC     R2              SUBROUTINE
+       DAC     A3      (SPG7)  INTEGER
+       DAC     A4              REAL
+       DAC     A5              DOUBLE PRECISION
+       DAC     A6              COMPLEX
+       DAC     A7              LOGICAL
+       DAC     B2      (SPG8)  EXTERNAL
+       DAC     B3      (SPG9)  DIMENSION
+       DAC     B7              INPUT DIMENSION
+       DAC     B4      (SPG10) COMMON
+       DAC     B5      (SPG11) EQUIVALENCE
+       DAC     C2      (SPG12) RELATE COMMON ITEMS
+       DAC     C3      (SPG13) GROUP EOUIVALENCE
+       DAC     C4      (SPG14) ASSIGN SPECIFICATIONS
+       DAC     W4      (SPG15) DATA
+       DAC     R3      (SPG16) BLOCK DATA
+       DAC     TRAC    (SPG17) TRACE
+*
+*..............PROCESSOR GROUP
+       DAC     V3      (PRG1)  IF
+       DAC     R7      (PRG2)  GO TO
+       DAC     IB00            INPUT BRANCH LIST
+       DAC     W3      (PRG3)  ASSIGN
+       DAC     C9      (PRG5)  DO
+       DAC     V7      (PRG6)  END FILE
+       DAC     V6              BACKSPACE
+       DAC     V8              REWIND
+       DAC     V5      (PRG7)  READ
+       DAC     V4              WRITE
+       DAC     V2      (PRG8)  FORMAT
+       DAC     SI00            INPUT FORMAT STRING
+       DAC     IN00            INPUT NUMERIC FORMAT STRING
+       DAC     NZ00            NON ZERO STRING TEST
+       DAC     W8      (PRG9)  PAUSE
+       DAC     W7              STOP
+       DAC     R8      (PRG10) CALL
+       DAC     G2              ASSIGNMENT STATEMENT
+       DAC     R9      (PRG11) RETURN
+       DAC     G1      (PRG12) STATEMENT FUNCTION
+       DAC     W5      (PRG13) END
+*
+*..............PROCESSOR SUBROUTINES GROUP
+       DAC     PO00    (PSG1)  INPUT CHAR AND OUTPUT PACK
+       DAC     HS00    (PSG2)  TRANSMIT HOLLERITH STRING
+       DAC     DP00    (PSG3)  DO INPUT
+       DAC     DS00    (PSG4)  DO INITIALIZE
+       DAC     DQ00    (PSG5)  DO TERMINATION
+       DAC     EX00    (PSG6)  EXPRESSION
+       DAC     CA00    (PSG7)  SCAN
+       DAC     ST00            TRIAD SEARCH
+       DAC     TC00            TEMP STORE CHECK
+       DAC     ET00    (PSG8)  ENTER TRIAD
+       DAC     GE00    (PSG9)  GENERATE SUBPROGRAM ENTRANCE
+*
+*..............OUTPUT GROUP
+       DAC     OL00    (OPG1)  OUTPUT OBJECT LINK
+       DAC     OI00    (OPG2)  OUTPUT I/O LINK
+       DAC     CN00    (OPG3)  CALL NAME
+       DAC     OK00    (OPG4)  OUTPUT PACK
+       DAC     OB00    (OPG5)  OUTPUT OA
+       DAC     OT00    (OPG6)  OUTPUT TRIADS
+       DAC     OM00    (OPG7)  OUTPUT ITEM
+       DAC     OR00    (OPG8)  OUTPUT REL
+       DAC     OA00            OUTPUT ABS
+       DAC     OS00            OUTPUT STRING
+       DAC     OW00    (OPG9)  OUTPUT WORD
+       DAC     PU00            PICKUP
+       DAC     FS00    (OPG10) FLUSH
+       DAC     TRSE    (OPG11) OUTPUT TRACE COUPLING
+       DAC     PRSP            SET BUFFER TO SPACES
+*
+*..............MISC. GROUP
+       DAC     AD3             ADD TWO 3 WORD INTEGERS
+       DAC     IM00            MULTIPLY (A) BY (B)
+       DAC     STXA            SET A INTO INDEX
+       DAC     STXI            SET I INTO INDEX
+       DAC     NF00            SET FS INTO NAMF
+       DAC     BLNK            SET AREA TO ZEROS
+       DAC     MOV3            MOVE 3 WORDS TO TEMP STORAGE
+       DAC     CIB             COMPARE IBUF TO A CONSTANT
+       DAC     SAV             SAVE INDEX IN PUSH-DOWN STACK
+       DAC     RST             RESET INDEX FROM PUSH-DOWN STACK
+       DAC     PACK
+       DAC     ER00            ERROR OUTPUT
+       DAC     SRT             SHIFT RIGHT 1 (TRIPLE PRES.)
+       DAC     SFT             SHIFT LEFT 1  (TRIPLE PRES.)
+       DAC     LIST
+*
+*
+*             ****************************
+*             *CONSTANT AND VARIABLE POOL*
+*             ****************************
+*
+XR     EQU     0       INDEX REGISTER
+*          THE FOLLOWING 62 VARIABLES ARE SET TO ZERO DURING
+*              PROGRAM INITIALIZATION
+A      EQU     '40     ASSIGNMENT TABLE INDEX
+I      EQU     A+1     EXPRESSION TABLE INDEX
+C      EQU     A+2
+ASAV   EQU     A+3
+L      EQU     A+4
+MFL    EQU     A+5     MODE FLAG
+SFF    EQU     A+6     FUNCTION FLAG
+SBF    EQU     A+7     SUBFUNCTION FLAG
+SXF    EQU     A+8     POSSIBLE CPX FLAG
+SPF    EQU     A+9     PEC. FLAG
+TCF    EQU     A+10    TEMP STORE COUNT
+IFF    EQU     A+11
+ABAR   EQU     A+12    BASE OF ASSIGN TABLE
+XST    EQU     A+13    FIRST EXECUTABLE STMNT.
+CFL    EQU     A+14    MON FLAG
+D      EQU     A+15    DO INDEX
+RPL    EQU     A+16    RELATE PROGRAM LOCATION
+BDF    EQU     A+17    LOCK DATA FLAG
+SLST   EQU     A+18    SOURCE LIST
+OBLS   EQU     A+19    OUTPUT BINARY LIST
+BNOT   EQU     A+20    BINART OUTPUT FLAG
+TRF    EQU     A+21    TRACE FLAG (END TRACE STATEMENT NO.)
+TRFA   EQU     A+22    POINTER TO FIRST VAR, 0R ARRAY NAME IN
+*                      AN EXPRESSION (FOR USE BY TRACE).
+SOF    EQU     A+23    SUBSCRIPT CONSTANT FLAG (NON-ZERO IF SET)
+LIF    EQU     A+24    LOGICAL IF FLAG
+LSTN   EQU     A+25    LAST STATEMENT NO.
+LSTF   EQU     A+26    LAST STATEMENT FLAG
+LSTP   EQU     A+27    LAST STATEMENT STOP
+SDSW   EQU     A+28    STATEMENT I0 SWITCH
+*
+NAMF   EQU     '570    NAME FUNCTION
+ND     EQU     NAMF+1  NO OF DIMENSIONS
+NS     EQU     '572    NO OF SUBSCRIPTS
+NT     EQU     NS+1    NAME TAG
+NTF    EQU     NS+2    NAME TAG FLAG
+NTID   EQU     NS+3    NO. WORDS IN TID
+O1     EQU     NS+4    OPERATOR 1
+O2     EQU     NS+5    OPERATOR 2
+P      EQU     NS+6
+PCNT   EQU     NS+7
+OCNT   EQU     NS+8    OUTPUT COUNT
+S0     EQU     NS+9
+S1     EQU     NS+10   SUBSCRIPT NO.1
+S2     EQU     NS+11   SUBSCRIPT NO.2
+S3     EQU     NS+12   SUBSCRIPT NO.3
+TC     EQU     NS+13   TERMINAL CHAR
+TT     EQU     NS+14
+TYPE   EQU     NS+15
+X      EQU     NS+16   ARRAY INDICES
+X1     EQU     NS+17
+X2     EQU     NS+18
+X3     EQU     NS+19
+X4     EQU     NS+20
+NTA    EQU     NS+21   UNPACKED ASSIGNMENT ITEMS
+ATA    EQU     NS+22
+IMA    EQU     NS+23
+CLA    EQU     NS+24
+IUA    EQU     NS+25
+DTA    EQU     NS+26
+TTA    EQU     NS+27
+*..........ADJUST THIS ORG IF THE SIZE OF THE CONSTANT POOL IS MODIFIED
+       ORG     '630
+AF     PZE     0       ADDRESS FIELD
+GF     EQU     AF
+AT     PZE     0       ADDRESS TYPE
+CODE   PZE     0       OUTPUT CODE
+D0     PZE     0       DIMENSIONS
+D1     PZE     0
+D2     PZE     0
+D3     PZE     0
+D4     PZE     0
+DF     PZE     0       DATA FLAG
+NF     PZE     0
+B      PZE     0
+DFL    PZE     0       DELIMITER FLAG
+E      OCT     0       EQUIVALENCE INDEX
+EP     PZE     0       E-PRIME
+E0     PZE     0       E-ZERO
+FTOP   PZE     0       OUTPUT COMMAND
+GFA    PZE     0
+ICSW   PZE     1       INPUT CONTROL SWITCH
+IFLG   PZE     0       I-FLAG
+IM     PZE     0       ITEM MODE
+IOF    PZE     0       I-0 FLAG
+IU     PZE     0       ITEM USAGE
+KBAR   PZE     0       TEM STORE
+KPRM   PZE     0       TEM STORE
+EBAR   OCT     -1      E-BAR
+DO     OCT     17      DO TABLE INDEX(FLOATS ABOVE ASSIGNMENT)
+CC     PZE     '111    CARD COLUMN COUNTER
+DCT    PZE     0       DUMMY ARGUMENT COUNT
+F      PZE     0       TRIAD TABLE INDEX
+CL     PZE     0       ASSIGNMENT ITEMS UNPACKED
+DT     PZE     0
+FLT1   PZE     0       FETCH LINK CL POINTER LOCATION
+LIBF   PZE     0       SPECIAL LIBRARY FLAG (NON-ZERO IF SET)
+*..........CONSTANTS USED BY THE COMPILER
+K4     OCT     251     0)
+K5     OCT     254     0,
+K8     OCT     240     0-SPACE
+K9     OCT     257     0/
+K10    OCT     256     0.
+K12    OCT     255     0-
+K13    OCT     253     0+
+K15    OCT     244     0$
+K16X   OCT     16
+K17    OCT     250     0(
+K18    OCT     275     0=
+K19    BCI     1,DO    DO
+K34    OCT     324     0T
+K35    OCT     317     0O
+K40    BCI     1,WN
+K41    BCI     1,RN    RN
+K42    BCI     1,CB
+K43    OCT     311     0I
+K44    OCT     321     0Q
+K45    EQU     K34     0T
+K57    OCT     252     0*
+K60    OCT     260     00 (BCI ZERO)
+K61    OCT     271     09
+K68    EQU     K19
+K101   OCT     1
+K102   OCT     2
+K103   OCT     3
+K104   OCT     4
+K105   OCT     5
+K106   OCT     6
+K107   OCT     7
+K109   DEC     16
+K100   OCT     377
+K111   OCT     37777
+K110   DEC     -17
+K115   OCT     170777
+K116   OCT     177400
+K117   DEC     -27
+K118   OCT     777
+K119   OCT     177000
+K120   DEC     -15
+K122   OCT     040000
+K123   DEC     -1
+K124   DEC     9
+K125   DEC     8
+K126   DEC     10
+K127   DEC     11
+K128   DEC     12
+K129   DEC     13
+K131   DEC     -14
+K132   OCT     22
+K134   OCT     17
+K137   OCT     24002
+K138   OCT     25
+K139   OCT     24
+CRET   OCT     215     0 C/R
+ZERO   OCT     0
+HBIT   OCT     140000  HIGH BITS FOR ALPHA DATA
+KAEQ   BCI     1,EQ    EQUIVALENCE ERROR MESSAGE ATTACHMENT
+MIN2   DEC     -2      -2
+HC2    OCT     340
+K357   OCT     357
+*
+*
+DP     EQU     '15400  DUMMY START OF DATA POOL (ACTUALLY SET
+*                             BY THE FORTRAN IOS SUBROUTINE.)
+L0     EQU     '113    DUMMY END OF DATA POOL (MINUS 3 WORDS)
+*              THE FOLLOWING INSTRUCTIONS CAUSE THE LOADER
+*              TO ASSIGN ALL REFERENCES TO THE DATA POOL IN WORDS
+*              100 TO 112 OF THE ZERO SECTOR,  FORTRAN IOS WILL
+*              CAUSE THESE CELLS TO BE SET TO THE ACTUAL DATA POOL
+*              LOCATIONS WHICH WILL BE DETERMINED BY COMPUTER
+*              CONFIGURATION.
+       ORG     '1000
+       PZE     DP-4,1  (100)
+       PZE     DP-3,1  (101)           DATA POOL REFERENCES
+       PZE     DP-2,1  (102)
+       PZE     DP-1,1  (103)
+       PZE     DP,1    (104)
+       PZE     DP+1,1  (105)
+       PZE     DP+2,1  (106)
+       PZE     DP+3,1  (107)
+       PZE     DP+4,1  (108)
+       PZE     DP+9,1  (111)
+       PZE     DP+6,1  (112)
+       PZE     DP+7    (113) NO WDS IN DATA POOL SET BY IOS
+*
+*
+       ORG     1
+       JST     ER00    THIS INSTRUCTION REACHED ONLY IF THE
+       BCI     1,CG      COMPILER JUMPED TO ZERO BY MISTAKE.
+*
+*
+*
+*
+*             *******************
+*             *START OF COMPILER*
+*             *******************
+*
+       ORG     '1000
+*
+*
+*
+*   -      A0   COMP ENT EMPTY BUFFERS
+       LRL     15
+       STA     LIBF    SET SPECIAL LIBRARY FLAG
+       LLL     15      (BIT 1 ON INHIBITS CERTAIN ERROR CHECKS)
+A0     CALL    F4$INT  INITIALIZE I/O DEVICES
+       LDA     K108
+       STA     CC      CC = 73
+       JST     IC00    INPUT COLUMN
+A051   LDA     A090
+       STA     XR
+       LDA     A092    LOC. OF INDEX PUSH-DOWN BUFFER
+       STA     SAV9    INITIALIZE PUSH-DOWN BUFR.
+       CRA
+       STA     A+M,1   SET M VARIABLES TO ZERO
+       STA     NAMF+M,1
+       IRS     XR
+       JMP     *-3
+       STA     IFLG
+       STA     PKF
+       JST     FS00    INITIALIZE OUTPUT BUFFER
+       CMA
+       STA     LSTF    LSTF NOT EQ 0
+       STA     LSTP    LSTP NOT EQ 0
+       STA     EBAR    EBAR SET NEGATIVE
+       LDA     L0
+       STA     ICSW
+       STA     E0      INITIALIZE EQUIVALENCE TABLE
+       STA     L       INITIALIZE TRIAD TABLE POINTER
+       JST     PRSP    SET PRINT BUFFER TO SPACES
+       LDA     K134
+       STA     DO      INITIALIZE DO TABLE POINTER
+       SUB     K138
+       STA     A091
+       CRA
+       STA     ID
+A055   IRS     ID      ESTABLISH CONSTANTS
+       JST     AI00
+       IRS     A091
+       JMP     A055
+       LDA     K81
+       STA     ID
+       STA     ID+1
+       STA     ID+2
+       CRA
+       LRL     32      (B)=0  IM=NO USAGE
+       LDA     K101    (A)=1  IU=SUBR
+       JST     AA00    ASSIGN (SPECIAL)
+       JST     STXA    SET POINTER A INTO INDEX AND (A)
+       STA     CFL     CFL=A (LOCATION OF FIRST COMMON BLOCK)
+       ADD     K122    ='40000  (IU=SUBR)
+       STA     DP+1,1  GF(A)=A (IN CASE NO BLANK COMMON IS SPECIFIED)
+       JMP     C7      GO TO STMNT INPUT
+M      EQU     30
+A090   DAC*    -M,1
+A091   PZE     0
+A092   DAC     SAVX    START OF INDEX PUSH-DOWN BUFFER
+*
+*
+*
+*          **************
+*          *INPUT COLUMN*
+*          **************
+*
+*          INPUT NEXT CHARACTER
+*               IGNORE BLANKS
+*               CHECK FOR COMMENTS
+*                    IC02 SET AS FOLLOWS -
+*                      NORMAL - ICIP
+*                      INITIAL SCAN -ICSR
+IC00   DAC     **      LINK STORE
+       JST     SAV     SAVE INDEX
+       LDA     CC      IF CC = 73, GO TO IC 10
+       SUB     K108
+       SZE
+       JMP     IC19    ELSE, GO TO IC
+IC10   LDA     ICSW    IF ICSW. GO TO IC12
+       SNZ
+       JMP     IC24    ELSE, GO TO IC24
+IC12   CALL    F4$IN   INPUT SYMBOLIC CARD IMAGE
+       DAC     CI
+       LDA     CI
+       LGR     8       GO 70 IC 14
+       CAS     K16     =(C)
+       JMP     *+2
+       JMP     IC30    COMMENT CARD (IGNORE)
+       SUB     K15     =($)
+       SNZ
+       JMP     IC18    CONTROL CARD (IGNORE COLUMN 6)
+       LDA     K357    IF CARD COL, SIX IS
+       ANA     CI+2    ZERO OR BLANK, GO TO IC18
+       SUB     K8
+       SZE
+       JMP     IC26    ELSE, GO TO IC26
+IC18   STA     CC      CC = 0.
+       LDA     CI+2    CI(6) = SPECIAL
+       ANA     K116
+       ADD     HC2     ='340
+       STA     CI+2
+       LDA     CRET
+       JMP     IC20    TC = C.R.
+IC19   LDA     CC      TC = CI(CC)
+       SUB     K101
+       LGR     1
+       STA     XR
+       LDA     CI,1
+       SSC
+       LGR     8
+       ANA     K100
+IC20   STA     TC
+       IRS     CC      CC = CC+1
+IC22   JST     RST     RESTORE INDEX
+       JMP*    IC00    RETURN
+IC24   LDA     K9      TC = /, END OF LINE - STATEMENT SCAN
+       STA     TC
+       JMP     IC22    GO TO IC22
+IC26   JST     LIST    LIST, CONTINUATION CARD
+       LDA     K107    CC = 7, IGNORE STATEMENT NO.
+       STA     CC
+       JMP     IC19    G0 TO IC19
+IC30   JST     LIST    PRINT CARD IMAGE
+       JMP     IC12    READ IN NEW CARD
+K16    OCT     303     0C
+K108   DEC     73
+KASP   BCI     1,      (SP)(SP) MUST PRECEDE CARD IMAGE BUFFER
+CI     BSS     40
+       BCI     20,                                        
+*
+*
+*
+*             ****************
+*             *UNINPUT COLUMN*
+*             ****************
+*          BACK UP ONE COLUMN
+*
+UC00   DAC     **
+       IMA     CC      CC= CC-1
+       SUB     K101    RETAIN (A)
+       IMA     CC
+       JMP*    UC00
+*
+*
+*             *****************
+*             *INPUT CHARACTER*
+*             *****************
+*          INPUT ONE CHARACTER FROM EITHER
+*               1, INPUT BUFFER (EBAR POSITIVE) OR
+*               2, EQUIVALENCE BUFFER (EBAR NEGATIVE)
+*
+CH00   DAC     **
+       LDA     EBAR    IF EBAR 7 0,
+       SMI
+       JMP     CH10    G0 10 CH10
+CH03   JST     IC00    INPUT COLUMN
+       SUB     K8      IF BLANK, REPEAT
+       SNZ
+       JMP     CH03
+       LDA     TC      ELSE,
+*
+CH04   CAS     CH13    ='301
+       NOP
+       JMP     CH06
+       CAS     K61     ='271
+       JMP     CH05
+       NOP
+       CAS     K15     ='244
+       JMP     *+2
+       JMP     CH05-1
+       CAS     K60     ='260
+       NOP
+       CRA             ALPHA NUMERIC CHARACTER
+CH05   STA     DFL     DELIMITER ENTRY
+       LDA     TC      EXIT WITH TC IN A
+       JMP*    CH00
+CH06   CAS     K63     ='332
+       JMP     CH05
+       NOP
+       JMP     CH05-1
+CH08   STA     DFL
+       JMP*    CH00
+CH10   LDA     E       IF E = EBAR
+       CAS     EBAR
+       JMP     *+2
+       JMP     CH12    GO TO CH12
+       STA     0       SET E INTO INDEX
+       LLL     16      SET (B) TO ZERO
+       LDA     DP,1    CURRENT CHARACTER WORD
+       LLR     8
+       STA     DP,1    SAVE REMAINING CHARACTER IF ANY
+       IAB
+       STA     TC      TC=LEFTMOST CHARACTER
+       SZE             SKIP IF NEW CHARACTER WORD NEEDED
+       JMP     CH04
+       LDA     E       E=E-1
+       SUB     K101    =1
+       STA     E
+       JMP     CH10    PICK UP NEXT CHARACTER WORD
+CH12   SSM             MAKE E MINUS
+       STA     EBAR
+       JMP     C4      GO TO ASSIGN SPEC
+K63    OCT     332     0Z
+CH13   OCT     301
+*
+*
+*             *************
+*             *INPUT DIGIT*
+*             *************
+*          A IS ZERO IF NOT DIGIT
+*
+ID00   DAC     **      INPUT DIGIT
+       JST     CH00    INPUT A CHAR
+       CAS     K61     ='271    (9)
+       JMP*    ID00    (A) = TC
+       JMP     ID10    ELSE, (A) = 0
+       CAS     K60     RETURN
+       NOP
+       JMP     *+2
+       JMP*    ID00
+ID10   CRA
+       JMP*    ID00
+*
+*
+*             **********************
+*             *INPUT (A) CHARACTERS*
+*             **********************
+*          CHAR COUNT IN XR, TERMINATES WITH EITHER
+*               1, CHAR COUNT -1 = ZERO OR
+*               2, LAST CHAR IS A DELIMITER
+*
+IA00   DAC     **
+       TCA             SET COUNTER
+       STA     IA99
+       JST     IA50    EXCHANGE IBUF AND ID
+       CRA
+       STA     NTID    NTID = 0
+IA10   JST     CH00    INPUT A CHARACTER
+       JST     PACK
+       LDA     DFL     IF DFL NOT ZERO,
+       SZE             CONTINUE
+       JMP     IA20    ELSE,
+       IRS     IA99    TEST COUNTER
+       JMP     IA10    MORE CHARACTERS TO INPUT
+IA20   JST     IA50    EXCHANGE ID AND IBUF
+       JMP*    IA00    RETURN
+IA50   DAC     **      EXCHANGE IBUF AND ID
+       JST     SAV     SAVE INDEX
+       LDA     IA90
+       STA     XR
+       LDA     IBUF+3,1
+       IMA     ID+3,1
+       STA     IBUF+3,1
+       IRS     XR
+       JMP     *-4
+       JST     RST     RESTORE INDEX
+       LDA     NTID
+       JMP*    IA50
+IA90   OCT     -3
+IA99   PZE     0
+*
+*
+*             *****************
+*             *FINISH OPERATOR*
+*             *****************
+*          WRAP UP LOGICAL/RELATIONAL OPERATORS
+*
+FN00   DAC     **
+       LDA     DFL     IF DFL NOT . ,
+       STA     IBUF
+       SUB     K10
+       SZE
+       JMP     FN05    GO TO FN05
+       LDA     K104
+       JST     IA00
+FN05   LDA     K110    USE TABLE TO CONVERT
+       STA     XR      OPERATOR
+FN10   LDA     FN90+17,1
+       CAS     IBUF
+       JMP     *+2
+       JMP     FN20
+       IRS     XR
+       JMP     FN10
+       LDA     TC
+       JMP*    FN00
+FN20   LDA     FN91+17,1       FOUND A LOGICAL OPERATOR
+       STA     TC      SET INTO TC
+       JMP*    FN00
+FN90   OCT     253,255,252,257 +-*/
+       BCI     9,NOANORLTLEEQGEGTNE
+       OCT     275,254 =,
+FN91   OCT     1,2,3,4,5,6,7,10,11,12,13,14,15,16,17
+*
+*
+*             ***********
+*             *INPUT DNA*
+*             ***********
+*          BASIC INPUT ROUTINE, HANDLES FOLLOWING -
+*               CONSTANT CONVERSION
+*               MODE TYPING (CONSTANTS, IMPLIED/VARIABLES)
+*               ALL OPERATORS (TERMINATE ITEM)
+*
+ID     BSS     4
+TID    EQU     ID      TEMP STORE FOR ID
+IBUF   BSS     3       3-WORD BUF
+TIDN   PZE     0
+K155   OCT     177727  -41
+K156   OCT     024000  1085
+K157   OCT     007777
+K158   OCT     074000
+F1     PZE     0       SIGN FLAG
+F2     PZE     0
+F3     PZE     0       INPUT EXPONENT
+F4     PZE     0       NO. FRAC. POSITIONS
+F5     PZE     0       TEMP DELIMITER STORE
+F6     PZE     0
+L4     PZE     0
+HOLF   PZE     0       HOLLERITH FLAG
+DN00   DAC     **
+DN01   CRA
+       STA     HOLF    SET HOLF =0
+       STA     F4      F4 = 0
+       STA     IU
+       STA     NT      IU=NT=NTID=0
+       STA     NTID
+       JST     BLNK    CLEAR OUT TID = ID
+       DAC     TID
+       JST     BLNK
+       DAC     F1      F1,F2,F3 = 0
+DN06   CRA
+       STA     IM
+       STA     DNX2
+DN07   JST     ID00    INPUT DIGIT
+       SZE
+       JMP     DN14    (A) NON-ZERO, G0 T0 DN14
+DN10   LDA     TID+2   CHECK FOR OVERFLOW AND ADJUST
+       ANA     K158    POSITION COUNT IF NECESSARY.
+       SZE
+       JMP     SKIP
+       ADD     IM
+       ARS     1
+       ADD     F4      F4 = F4+1 IF NO OVERFLOW
+       STA     F4      AND IM ALREADY SET TO REAL
+       LDA     K101
+       STA     NT      NT=1
+       ADD     K101
+       STA     IU      IU = VAR/COD
+       JST     SFT     SHIFT ID LEFT
+       DAC     ID
+       JST     MOV3    MOVE TO TEMP STORE
+       JST     SFT
+       DAC     ID
+       JST     SFT
+       DAC     ID
+       JST     AD3     ID = 10*ID+TC
+       JST     BLNK
+       DAC     DNX1
+       LDA     TC
+       SUB     K60
+       STA     DNX1
+       JST     AD3
+       JMP     DN07
+SKIP   LDA     MIN2
+       ADD     IM
+       ARS     1
+       ADD     F4
+       STA     F4
+       JMP     DN07
+DN14   LDA     IM      IM = REAL
+       SUB     K102
+       SZE
+       JMP     DN50    NO. GO TO DN50
+DN16   LDA     K10     YES.
+DN17   STA     F5      F5 = '.'
+       LDA     DFL     IF DFL =0, GO SO DN20 (5)
+       SZE
+       JMP     DN90    ELSE GO TO DN90 (9)
+DN20   LDA     TC      IF TC = D, GO TO DN26
+       SUB     K11
+       SNZ
+       JMP     DN26
+       SUB     K101    ELSE, IF TC = E, GO TO DN22
+       SNZ
+       JMP     DN22    TERMINATOR = E
+       JST     UC00
+       LDA     K10     ='256 (.)
+       STA     DFL     SET DELIMITER FLAG
+       LDA     K101    =1
+       STA     IM      SET ITEM MODE TO INTEGER
+       JMP     DN67    FINISH OPERATOR AND EXIT
+*
+DN22   JST     ID00    INPUT DIGIT
+       SNZ             IF (A) = 0, GO TO DN30
+       JMP     DN30
+       LDA     TC      IF TC = -, GO TO DN28
+       SUB     K12
+       SNZ
+       JMP     DN28
+       ADD     K102
+       SNZ
+       JMP     DN29
+       LDA     F5
+       STA     DFL
+       JST     UC00    UN-INPUT COL
+DN24   JST     FN00    FINISH OPERATOR
+DN25   LDA     K101    IM = INT
+       STA     IM
+       LDA     ID+1    IF ID IS TOO BIG TO
+       SZE             BE AN INTEGER (>L2),
+       JMP     DN69    GO TO DN69 (20)
+       LDA     ID+2
+       SZE
+       JMP     DN69
+       JMP     DN84    OTHERWISE, GO TO DN84(12)
+DN26   LDA     K106    IM = DBL
+       STA     IM
+       JMP     DN22
+DN28   LDA     K101    F2 = 1
+       STA     F2
+DN29   JST     ID00    INPUT DIGIT
+       SZE             IF (A) = 0, GO TO DN30 (8.5)
+       JMP     DN69    ELSE, GO TO DN69 (20)
+DN30   LDA     F3      F3 = 10 * F3
+       ALS     3
+       IMA     F3      F3 = F3 +TC
+       ALS     1
+       ADD     F3
+       ADD     TC      INPUT DIGIT
+       SUB     K60
+       STA     F3      IF (A) = 0, GO TO DN30 (8.5)
+       JST     ID00    ELSE, GO TO DN90 (9)
+       SZE
+       JMP     DN90
+       JMP     DN30
+DN50   LDA     K102    IM=REA
+       STA     IM
+       LDA     TC      IF TC = ., GO TO DN54
+       SUB     K10
+       SNZ
+       JMP     DN54    ELSE,
+       LDA     NT
+       SNZ             IF NT = 0, GO TO DN72
+       JMP     DN72
+       LDA     TC      IF TC = H, GO TO DN9H (22)
+       SUB     K14
+       SNZ
+       JMP     DN9H
+       LDA     DFL     IF DFL = 0,
+       SZE             GO TO DN16 (4.9)
+       JMP     DN25    ELSE, GO TO DN25
+       JMP     DN16
+DN54   JST     ID00    INPUT DIGIT
+       SNZ
+       JMP     DN10    IF (A) = 0, GO TO DN10 (3)
+       LDA     NT
+       SNZ             IF NT = 0, GO TO DN56
+       JMP     DN56
+       LDA     TC      F5 = TC
+       JMP     DN16    GO TO DN16 (4)
+DN56   CRA
+       STA     TC      TC = )
+DN58   JST     UC00    UN-INPUT A COLUMN,
+       LDA     F1      IF F1 = 0, GO TO DN60
+       SZE
+       JMP     DN63    ELSE, GO TO DN63 (15)
+DN60   LDA     K106
+       JST     IA00    INPUT (6) CHARS
+       JST     CIB     IF IBUF = TRUE.,
+       DAC     K1+3,1
+       JMP     DN64
+       JST     CIB     IF IBUF = FALSE.,
+       DAC     K2+3,1  GO TO DN66 (16)
+       JMP     DN66
+       JST     CIB     CHECK FOR .NOT. OPERATOR
+       DAC     KNOT+3,1        CHECK FOR .NOT. OPERATOR
+       JMP     DN9N    OPERATOR IS .NOT.
+DN63   CRA             IM = 0
+       STA     IM
+       JMP     DN67    GO TO DN67 (18)
+DN64   LDA     K101
+       STA     TID
+DN66   LDA     K101
+       STA     NT      NAME TAG = 1 (CONSTANT)
+       LDA     K102    IU=VAR
+       STA     IU
+       LDA     K103
+       STA     IM      IM = LOG
+       JST     CH00
+DN67   JST     FN00    FINISH OPERATOR
+DN68   LDA     F6      IF F6 = 0,
+       SNZ             GO TO DN70 (21)
+       JMP     DN70
+DN69   LDA     K10
+       STA     TC      TC = .
+DN70   CRA
+       STA     F6      F6 = SXF = 0
+       STA     SXF
+       LDA     IM      (A) = IM
+       JMP*    DN00    RETURN
+DN72   LDA     F1      IF F1 = 0, GO TO DN74
+       SNZ
+       JMP     DN74
+       LDA     F1      ELSE, TC = F1
+       STA     TC
+       JMP     DN58    GO TO DN58 (14)
+DN74   LDA     TC      IF TC = -, GO TO DN82
+       SUB     K12
+       SNZ
+       JMP     DN82
+       ADD     K102    CHECK FOR TC = +
+       SNZ
+       JMP     DN82
+       LDA     DFL     IF DFL = NON-ZERO
+       SZE
+       JMP     DN63    GO TO DN63 (15)
+       LDA     TC
+       CAS     K43
+       JMP     *+3
+       JMP     DN78
+       JMP     DN80
+       CAS     K62
+       JMP     DN80
+       NOP
+DN78   LDA     K101    IM = INT
+       STA     IM
+DN80   LDA     TC      PACK TC TO ID
+       JST     PACK
+       JST     CH00    INPUT CHAR
+       LDA     DFL     IF DFL IS NOT ZERO,
+       SZE             GO TO DN67 (18)
+       JMP     DN67
+       LDA     NTID    IF NTID = 6, GO TO DN67
+       SUB     K106
+       SZE
+       JMP     DN80
+       JMP     DN67
+DN82   JST     FN00
+       STA     F1      F1 = CONVERTED TC
+       JMP     DN06    GO TO DN06 (2)
+DN84   LDA     F1      IF F1 = -,
+       SUB     K102    GO TO DN85(13)
+       SZE
+       JMP     DN85
+       CRA
+       SUB     TID     COMPLEMENT THREE WORDS AT TID
+       SZE
+       JMP     DN8A
+       SUB     TID+1
+       SZE
+       JMP     DN8B
+       JMP     DN8C
+DN8A   STA     TID
+       LDA     K123
+       SUB     TID+1
+DN8B   STA     TID+1
+       LDA     K123
+DN8C   SUB     TID+2
+       STA     TID+2
+DN85   LDA     SXF     IF SXF = 0, GO T0 DN67 (18)
+       SNZ
+       JMP     DN67    ELSE,
+       LDA     IM      IF IM NOT = REA,
+       SUB     K102
+       SZE             GO TO DN67 (18)
+       JMP     DN67
+       LDA     F6      ELSE,
+       SNZ             IF F6 = 0, GO TO DN87
+       JMP     DN87
+       LDA     K105
+       STA     IM      IM = CPX
+       LDA     TID     INTERCHANGE
+       IMA     TIDB    3 CELLS
+       STA     TID     TID
+       LDA     TID+1   WITH
+       IMA     TIDB+1  3 CELLS
+       STA     TID+1   OF
+       LDA     TID+2   TIDB
+       IMA     TIDB+2
+       STA     TID+2
+       JST     IP00    )-INPUT OPERATOR
+       JMP     DN70    GO TO DN70 (21)
+DN87   LDA     TC      IF TC = ,
+       SUB     K5
+       SZE
+       JMP     DN67    TID-BAR = TID
+       LDA     TID     F6 = 1
+       STA     TIDB    GO TO DN01 (1)
+       LDA     TID+1
+       STA     TIDB+1  ELSE, GO TO DN67 (18)
+       LDA     TID+2
+       STA     TIDB+2
+       LDA     K101
+       STA     F6
+       JMP     DN01
+DN90   LDA     F2      IF F2= 0, GO TO DN9A (10)
+       SNZ
+       JMP     DN9A
+       LDA     F3      F3 = - F3
+       TCA
+       STA     F3
+DN9A   LDA     F3      F4 = F3 - F4
+       SUB     F4
+       STA     F4
+       LDA     K12     F2 = EXP, BIAS + MANTISSA
+       STA     F2
+       LDA     TID     IF TID = 0,
+       ADD     TID+1
+       ADD     TID+2   GO TO DN85(13)
+       SNZ
+       JMP     DN85
+DN9C   LDA     TID+2
+       LGL     1       NORMALIZE ID
+       SPL
+       JMP     DN9D    ID IS NORMALIZED
+       JST     SFT
+       DAC     ID
+*                      F2 = F2 - # SHIFTS
+       LDA     F2
+       SUB     K101
+       STA     F2
+       JMP     DN9C    CONTINUE NORMALIZE LOOP
+DN9D   LDA     F4
+       CAS     ZERO
+       JMP     DN9E
+       JMP     DN9G    FINISHED E FACTOR LOOP
+       IRS     F4
+       NOP             F4 = F4 +1
+       LDA     K155    DIVIDE LOOP COUNTER
+       STA     TIDN
+       JST     SRT     RIGHT SHIFT TID
+       DAC     TID
+       JST     SRT
+       DAC     TID
+DND1   JST     SFT
+       DAC     TID
+       LDA     TID+2
+       SUB     K156    10 AT B=4
+       SMI
+       STA     TID+2
+       SMI
+       IRS     TID
+       IRS     TIDN
+       JMP     DND1    REDUCE DIVIDE COUNTER
+       JST     SFT
+       DAC     TID
+       LDA     TID+2
+       ANA     K157
+       STA     TID+2
+       JMP     DN9C
+DN9E   SUB     K101
+       STA     F4      F4 = F4-1
+       LDA     F2      F2 = F2+4
+       ADD     K104
+       STA     F2
+       JST     SRT
+       DAC     ID
+       JST     MOV3
+       JST     SRT     ID = ID*10
+       DAC     ID
+       JST     SRT
+       DAC     ID
+       JST     AD3     ADD THREE WORD INTEGERS
+       JMP     DN9C
+*          CONVERT THREE WORD INTEGER TO INTERNAL FORMAT
+DN9G   LDA     TID+2
+       IAB
+       LDA     F2
+       LRS     8
+       SNZ
+       JMP     *+3
+       JST     ER00
+       BCI     1,CE    CONSTANT'S EXPONENT OVER 8 BITS (OVERFLOW)
+       IAB
+       IMA     TID+2
+       IAB
+       LDA     TID+1
+       LGL     1
+       LRR     8
+       STA     TID+1
+       LRR     9
+       LDA     TID     PACK UP TRIPLE PRECISION
+       LGL     1
+       LRR     7       REAL CONSTANT
+       STA     TID
+       LDA     F2
+       LGR     8
+       SZE
+       JMP     DN69    GO TO DN69 (20)
+       JMP     DN84    ELSE, GO TO DN84 (12)
+DN9H   STA     IM
+       LDA     SPF
+       SUB     K102
+       SZE
+       LDA     K106
+       SUB     K124
+       ADD     TID
+       SMI
+       JMP     DN70
+       LDA     TID
+       STA     HOLF    HOLF=NO.OF HOLLERITH CHARS.
+       STA     F3
+       TCA
+       SNZ
+       JMP     DN9K    FIELD WIDTH OF ZERO
+       STA     F2      F2= -1(1 CHAR)  OR  -2(2 CHAR)
+       JST     BLNK    SET ID,ID+1(ID+2 TO ZERO
+       DAC     TID
+DN9J   JST     IC00    INPUT COLUMN (INCLUDING BLANKS)
+       JST     PACK    PACK CHARACTERS 2 PER WORD
+       IRS     F2      REDUCE CHARACTER COUNT
+       JMP     DN9J    INPUT AND PACK MORE CHARACTERS
+       LDA     F3      F3= 0 IF 2 CHAR. HAVE BEEN INPUT
+       ANA     K101
+       SNZ
+       JMP     *+3
+       LDA     K8      ='240  (SP)
+       JST     PACK    SHIFT A SPACE INTO THE LAST WORD
+       IRS     IM
+DN9M   JST     CH00    INPUT THE TERMINATING CHARACTER
+       JMP     DN67    FINISH OPERATOR AND EXIT
+DN9K   JST     ER00
+       BCI     1,HF
+DN9N   LDA     K105    SET .NOT. OPERATOR (TC=5)
+       STA     TC      SET .NOT. OPERATOR (TC=5)
+       CRA
+       STA     IM      IM=0 = UNDEFINED
+       JMP     DN68
+DNX1   BSS     3
+DNX2   DAC     **      OVERFLOW FLAG
+       JMP*    *-1
+*
+*
+*             ************
+*             *INPUT ITEM*
+*             ************
+*          INPUTS AND ASSIGNS ITEM (IF ONE EXISTS)
+*
+II00   DAC     **
+       JST     DN00    INPUT DNA
+       SNZ             IF (A) = 0
+       JMP*    II00    RETURN
+       JST     AS00    NO, ASSIGN ITEM
+       LDA     IM
+       JMP*    II00    RETURN (A) = IM
+*
+*
+*             ***************
+*             *INPUT OPERAND*
+*             ***************
+*          EXIT WITH ITEM MODE IN A (TC SET TO . IF NO
+*               OPERAND)
+*
+OP00   DAC     **      INPUT OPERAND
+       JST     II00    INPUT ITEM
+       SZE             IF IM = 0, SKIP
+       JMP*    OP00    ELSE (A) = IM, RETURN
+       LDA     K10     TC = .
+       STA     TC      (A) = 0
+       CRA
+       JMP*    OP00    RETURN
+*
+*
+*             ************
+*             *INPUT NAME*
+*             ************
+*          INPUT OPERAND AND ENSURE THAT IT IS A NAME
+*
+NA00   DAC     **      INPUT NAME
+       JST     OP00    INPUT OPERAND
+       LDA     NT      IF NT = 1,
+       SNZ
+       JMP     NA10
+       JST     ER00
+       PZE     9
+NA10   LDA     IM      (A) = IM
+       JMP*    NA00    RETURN
+*
+*
+*             ***************
+*             *INPUT INTEGER*
+*             ***************
+*          INPUT ITEM AND ENSURE THAT IT IS AN INTEGER CONSTANT
+*               GREATER THAN ZERO
+*
+IG00   DAC     **      INPUT INTEGER
+       JST     DN00    INPUT - DNA
+       LDA     F1
+       SZE             IF F1 = 0,
+       JMP     IG20    AND NT = 1,
+       LDA     NT      AND IM = INT,
+       SNZ             AND TID L2**15,
+       JMP     IG20    GO TO IG10
+       LDA     IM      ELSE, GO TO IG20
+       SUB     K101
+       SZE
+       JMP     IG20
+       LDA     TID+1
+       SZE
+       JMP     IG20
+       LDA     TID+2
+       SZE
+       JMP     IG20
+IG10   LDA     TID
+       JMP*    IG00
+IG20   JST     ER00    ERROR
+       BCI     1,IN    INTEGER REQUIRED
+*
+*
+*             ***********************
+*             *INPUT INTEGER VAR/CON*
+*             ***********************
+*
+IV00   DAC     **
+       JST     OP00    INPUT OPERAND
+       JST     IT00    INTER TEST
+       JST     TV00    TAG VARIABLE
+       JMP*    IV00    EXIT
+*
+*
+*             ************************
+*             *INPUT INTEGER VARIABLE*
+*             ************************
+*
+IR00   DAC     **      INPUT INT VAR
+       JST     IV00    INPUT INT VAR/CON
+       JST     NC00    NON-CONSTANT TEST
+       JMP*    IR00    RETURN
+*
+*
+*             ************************
+*             *INPUT STATEMENT NUMBER*
+*             ************************
+*          NUMBER IS FORMED AS SPECIAL NAME , NOT CONVERTED
+*               TO NUMERIC
+*
+IS00   DAC     **
+IS04   CRA
+       STA     NT
+       STA     IM
+       STA     IU      IU = IM = IT = 0
+       STA     NTID    PUT LEADING '$' IN STATEMENT NO.
+       LDA     K79
+       JST     PACK
+IS10   JST     ID00    INPUT DIGIT
+       SZE
+       JMP     IS20    NOT A DIGIT GO TO IS20
+       LDA     NTID
+       SUB     K106
+       SMI
+       JMP     IS22
+       LDA     TC
+       JST     PACK    PACK TC TO ID - LEGAL ST. NO. CHAR
+       LDA     TID
+       CAS     K79X
+       JMP     IS10
+       JMP     IS04    IGNORE LEAD ZERO ON ST. NO.
+       JMP     IS10
+IS20   LDA     NTID
+       SUB     K101
+       SMI
+       JMP     IS25
+IS22   JST     ER00
+       BCI     1,ST    ILLEGAL STATEMENT NUMBER FORMAT
+IS25   JST     AS00    ASSIGN ITEM
+       JST     STXA
+       LDA     DP+1,1
+       ANA     K111
+       STA     DP+1,1  IU = 0
+       LDA     AF      ADDRESS FIELD IS
+       CAS     XST     LE XST - ALREADY ASSIGNED
+       JMP*    IS00
+       JMP*    IS00    OK - OTHERWISE
+       LDA     AT      MUST HAVE STR-ABS OTHERWISE
+       CAS     K102
+       JMP     *+2
+       JMP*    IS00
+       JST     ER00
+       BCI     1,RN    REFERENCE TO A SPECIFICATION STMNT NUMBER
+K79    OCT     337
+K79X   OCT     157660
+*
+SY00   DAC     **      INPUT SYMBOL
+       LDA     K101
+       STA     NTF     NTF NOT 0 - DON'T SET IU IN AS00
+       JST     NA00    INPUT NAME
+       JMP*    SY00    EXIT
+*
+*             ************************
+*             *EXAMINE NEXT CHARACTER*
+*             ************************
+*          CHECK NEXT CHAR FOR DIGIT (BACKUP ONE COL, THEN EXIT)
+*
+XN00   DAC     **
+       JST     ID00    INPUT DIGIT
+       JST     UC00    UNINPUT COLUMM
+       JMP*    XN00
+K1     BCI     3,TRUE. 
+K2     BCI     3,FALSE.
+K3     OCT     247
+KNOT   BCI     3,NOT.          CONSTANT FOR .NOT. TEST
+K11    OCT     304     0D
+K14    OCT     310     0H
+K62    OCT     316     0N
+K64    OCT     336     0)
+*
+*
+*             ********************
+*             *ALL CHARACTER TEST*
+*             ********************
+*
+TS00   DAC     **      TEST (A) AGAINST TC
+       SUB     TC
+       SNZ
+       JMP*    TS00    RETURN
+       JST     ER00    TO ERROR TEST
+       BCI     1,CH    IMPROPER TERMINATING CHARACTER
+*
+*
+*             *******************
+*             *)- INPUT OPERATOR*
+*             *******************
+*
+IP00   DAC     **
+       LDA     K4      TEST - )
+       JST     TS00
+       JST     CH00    INPUT CHAR
+       JST     FN00    FINISH OPERATOR
+       LDA     B       B = B-16
+       SUB     K109
+       STA     B
+       CRA             (A) = 0
+       JMP*    IP00    RETURN
+*
+*
+*
+*              B1      COMMA OR C/R TST
+B1     LDA     K134    IF TC = ','(CONVERTED TO 17)
+       SUB     TC
+       SNZ
+       JMP*    A9T2    GO TO SIDSW
+       JMP     A1      ELSE, GO TO C/R TEST
+*
+*
+NR00   DAC     **      NON-REL TEST
+       LDA     AT
+       SUB     K101    IF AT = 1 GO TO ERROR-
+       SZE             TEST
+       JMP*    NR00    RETURN
+       JST     ER00    ERROR TEST ROUTINE
+       BCI     1,MS    MULTIPLY DEFINED STATEMENT NUMBER
+*
+*
+*             ***************
+*             *NO USAGE TEST*
+*             ***************
+*
+NU00   DAC     **      N0 USAGE TEST
+       LDA     IU
+       SNZ             IF IU NOT = 0, TO ERROR
+       JMP*    NU00    RETURN
+       JST     ER00    ERROR TEST
+       BCI     1,NU    NAME ALREADY BEING USED
+*
+*
+*             *******************
+*             *NON-CONSTANT TEST*
+*             *******************
+*
+NC00   DAC     **      NON CONSTANT TEST
+       LDA     NT
+       SNZ             IF NT NOT = 0, TO ERROR TEST
+       JMP*    NC00    RETURN
+       JST     ER00    ERROR TEST
+       BCI     1,NC    CONSTANT MUST BE PRESENT
+*
+*
+*             *********************
+*             *NON SUBPROGRAM TEST*
+*             *********************
+*
+NS00   DAC     **      NON SUBPROGRAM TEST
+       LDA     IU
+       SUB     K101    IF IU = 1, GO TO-
+       SZE                 ERROR TEST
+       JMP*    NS00    RETURN
+       JST     ER00    ERROR TEST
+       BCI     1,NS    SUBPROGRAM NAME NOT ALLOWED
+*
+*
+*             **********
+*             *ARR TEST*
+*             **********
+*
+AT00   DAC     **      ARRAY TEST
+       LDA     IU
+       SUB     K103    IF IU = 3, GO TO
+       SNZ
+       JMP*    AT00    RETURN
+       JST     ER00    ERROR TEST
+       BCI     1,AR    ITEM NOT AN ARRAY NAME
+*
+*
+*             **************
+*             *INTEGER TEST*
+*             **************
+*
+IT00   DAC     **      INTEGER TEST
+       LDA     IM
+       SUB     K101    IF IM = 1, GO TO-
+       SNZ             ERROR ROUTINE, ELSE
+       JMP*    IT00    RETURN
+       JST     ER00    TO ERROR TEST
+       BCI     1,IT    ITEM NOT AN INTEGER
+*
+*
+TA00   DAC     **
+       LDA     AT      STRING-ABS TEST
+       SUB     K102
+       SNZ
+       JMP*    TA00
+       JST     ER00
+       BCI     1,NR    ITEM NOT A RELATIVE VARIABLE
+*
+*
+*
+*
+*
+*
+*
+*
+AD3    DAC     **      ADD TWO THREE WORD INTEGERS.
+       LDA     TID
+       ADD     DNX1
+       CSA
+       STA     TID
+       LDA     TID+1
+       ACA
+       ADD     DNX1+1
+       CSA
+       STA     TID+1
+       LDA     TID+2
+       ACA
+       ADD     DNX1+2
+       STA     TID+2
+       JMP*    AD3
+*
+*
+*             ***********************
+*             *ASSIGN INDEX REGISTER*
+*             ***********************
+*
+STXA   DAC     **
+       LDA     A
+       STA     0
+       JMP*    STXA
+STXI   DAC     **
+       LDA     I
+       STA     0
+       JMP*    STXI
+K153   OCT     16
+IM00   DAC     **
+       STA     T1IM    MULTIPLY A BY B
+       LDA     K120    =-15
+       STA     T2IM
+       CRA
+       RCB             C BIT = 0
+IM10   LRL     1       LOW BIT OF B INTO C
+       SRC             SKIP IF B = 0
+       ADD     T1IM
+       IRS     T2IM
+       JMP     IM10
+       LLL     14
+       JMP*    IM00    RETURN, RESULT IN A
+T1IM   PZE     0
+T2IM   PZE     0
+*
+*
+NF00   DAC     **      CONSTRUCT EXTERNAL NAME
+       LDA     K80     ENTRY FOR FORTRAN GENERATER
+       STA     NAMF
+       LDA     K81     SUBROUTINE CALLS.
+       STA     NAMF+2
+       JMP*    NF00
+K80    BCI     1,F$
+K81    BCI     1,  
+KM92   DEC     1       001 = INT
+       DEC     2       010 = REA
+       DEC     1       011 = LOG
+       DEC     0       - -
+       DEC     4       101 = CPX
+       DEC     3       110 = DSL
+       OCT     3       111 = HOL
+*
+*
+BLNK   DAC     **      CLEAR A 3/36
+       JST     SAV     AREA TO ZEROS
+       LDA*    BLNK
+       STA     XR
+       CRA             CLEAR 3 WORDS OF MEMORY
+       STA     1,1     PARAMETER INPUT ADDRESS TO 0
+       STA     2,1
+       STA     0,1
+       JST     RST
+       IRS     BLNK
+       JMP*    BLNK    EXIT
+*
+*
+MOV3   DAC     **      MOVE 3-WORDS
+       LDA     TID     TO TEMO STORE
+       STA     DNX1
+       LDA     TID+1
+       STA     DNX1+1
+       LDA     TID+2
+       STA     DNX1+2
+       JMP*    MOV3
+*
+*
+*
+*
+CIB    DAC     **      COMPARE IBUF TO A CONSTANT
+       JST     SAV     SAVE INDEX
+       LDA*    CIB     +DDR OF CON+3,0
+       STA     CIBZ
+       CRA
+       SUB     K103    XR=-3
+       STA     XR
+CIBB   LDA     IBUF+3,1
+       SUB*    CIBZ
+       SZE
+       JMP     CIBD
+       IRS     XR
+       JMP     CIBB
+CIBC   IRS     CIB
+       JST     RST     RESTORE INDEX
+       JMP*    CIB
+CIBD   IRS     CIB
+       JMP     CIBC
+CIBZ   DAC     **
+*
+*
+*
+*
+SAV    DAC     **      SAVE INDEX REGISTER
+       STA     SAVY    STACKED IN PUSH DOWN LIST
+       LDA     XR
+       STA*    SAV9
+       IRS     SAV9
+       LDA     SAVY
+       JMP*    SAV
+RST    DAC     **      RESTORE INDEX REGISTER
+       STA     SAVY
+       LDA     SAV9    UNSTACK PUSH DOWN LIST
+       SUB     K101
+       STA     SAV9
+       LDA*    SAV9
+       STA     XR
+       LDA     SAVY
+       JMP*    RST
+SAVY   PZE     0
+SAV9   DAC     SAVX    IS INITIATED BY A092
+SAVX   BSS     20
+*
+*
+PACK   DAC     **      PLACE CHARACTER IN A
+       STA     PAK7
+       LDA     NTID    INTO ID - UPDATE 3 WORDS OF
+PAK1   SNZ
+       JMP     PAK4    ID
+       LRL     1
+       ADD     PAK9
+       STA     PAK8
+       LDA     PAK7
+       IAB
+       SPL
+       JMP     PAK3
+       LLL     24
+       ADD     K8
+PAK2   STA*    PAK8
+       IRS     NTID
+       JMP*    PACK
+PAK3   LLL     8
+       LDA*    PAK8
+       LGR     8
+       LLL     8
+       JMP     PAK2
+PAK4   LDA     PAK6
+       STA     TID
+       STA     TID+1
+       STA     TID+2
+       STA     TID+3
+       LDA     NTID
+       JMP     PAK1+2
+PAK6   BCI     1,  
+PAK7   DAC     **
+PAK8   DAC     **
+PAK9   DAC     TID
+*
+*
+*             ***************
+*             *ERROR ROUTINE*
+*             ***************
+*
+ER00   DAC     **      ERROR ROUTINE
+       LDA     SAV9
+       STA     SAVX
+       LDA     ER93    =-35
+       STA     0       SET INDEX
+       LDA     ER91    (*)(*)
+       STA     PRI+35,1        SET ** INTO PRINT BUFFER
+       IRS     0       SET COMPLETE PRINT BUFFER TO ********
+       JMP     *-2
+       LDA     CC
+       ARS     1       CC = CC/2
+       SUB     K101    =1
+       SPL
+       CRA
+       STA     XR
+       LDA     EBAR    (NEGATIVE IF NOT WITHIN AN EQUIVALENCE ST.)
+       SPL             SKIP IF PROCESSING AN EQUIVALENCE STATEMENT
+       JMP     *+3
+       LDA     KAEQ    ='142721  (=(E)(Q)  )
+       STA     PRI+1,1
+       LDA*    ER00
+       STA     PRI,1   SET ERROR TYPE LETTERS INTO THE BUFFER
+       CALL    F4$SYM  PRINT THE BUFFER
+       DAC     PRI
+       JST     PRSP    SET PRINT BUFFER TO SPACES
+       LDA     TC
+ER20   CAS     CRET    INPUT CHARACTERS UNTIL C/R
+       JMP     *+2
+       JMP     C7      GO TO STATEMENT INPUT
+       JST     CH00
+       JMP     ER20
+ER91   BCI     1,**
+ER93   OCT     177735  -35
+*
+*
+SRT    DAC     **
+       JST     SAV
+       LDA*    SRT     SHIFT RIGHT ONE PLACE
+       STA     XR      TRIPLE PRECISION
+       LDA     0,1
+       IAB
+       LDA     1,1
+       LRS     1
+       LGL     1
+       IAB
+       STA     0,1
+       LDA     2,1
+       LRS     1
+       STA     2,1
+       IAB
+       STA     1,1
+       JST     RST
+       IRS     SRT
+       JMP*    SRT
+*
+*
+SFT    DAC     **      TRIPLE PRECISION
+       JST     SAV     SHIFT LEFT ONE PLACE
+       LDA*    SFT
+       STA     XR
+       LDA     0,1
+       IAB
+       LDA     1,1
+       LLS     1
+       CSA
+       STA     1,1
+       IAB
+       STA     0,1
+       ACA
+       LRS     1
+       LDA     2,1
+       LLS     1
+       CSA
+       STA     2,1
+       JST     RST
+       IRS     SFT
+       JMP*    SFT
+*
+LIST   DAC     **
+       JST     PRSP
+       SR2
+       JMP     *+3
+       CALL    F4$SYM  PRINT BLANK LINE
+       DAC     PRI
+       CALL    F4$SYM  PRINT SOURCE INPUT LINE
+       DAC     CI
+       JMP*    LIST
+*             *************
+*             *ASSIGN ITEM*
+*             *************
+*          CHECKS ASSIGNMENT AREA OF DATA POOL (A0 TO ABAR)
+*               FOR ITEM DEFINED BY ID, IM, IU, ETC.
+*                    IF FOUND, EXIT WITH POINTER AND
+*                        ASSIGNMENTS DATA SET, OTHERWISE
+*                    ASSIGN THE ITEM.
+*
+*
+*
+T0AS   PZE     0
+AS00   DAC     **
+       CRA
+       STA     A       A = A (0)
+AS04   JST     STXA
+       JST     NXT     GET NEXT ENTRY
+       JMP     AS30    AT END, GO TO AS30
+       LDA     NT
+       SUB     NTA     NT = NT(A)
+       SZE
+       JMP     AS04    NO, G0 TO AS04
+       LDA     TID
+       SUB     TIDA
+       SZE
+       JMP     AS04    TID = TID(A)
+       LDA     TID+1
+       SUB     TIDA+1
+       SZE
+       JMP     AS04    NO, GO TO AS04
+       LDA     TID+2
+       SUB     TIDA+2
+       SZE
+       JMP     AS04
+       LDA     NT      IF NT (A) .NE. 0,
+       SNZ             GO TO AS10
+       JMP     AS16    GO TO AS16 (4)
+AS10   LDA     IM      IF IM .NE. IM (A),
+       SUB     IMA     GO TO AS04 (1)
+       SZE
+       JMP     AS04
+       LDA     IU      IF IU = 0,
+       SNZ             OR NOT EQUAL IU (A)
+       JMP     AS04    GO TO AS04 (1)
+       SUB     IUA
+       SZE
+       JMP     AS04    ELSE,
+       LDA     IM
+       SUB     K105    GO TO AS16 (4)
+       SZE
+       JMP     AS16
+       JST     NXT     ELSE, GET NEXT ENTRY
+       JMP     AS30
+       LDA     TIDA    IF ID (A) = TIDB
+       SUB     TIDB    GO TO AS16 (4)
+       SZE             ELSE, GO TO AS04 (1)
+       JMP     AS04
+       LDA     TIDA+1
+       SUB     TIDB+1
+       SZE
+       JMP     AS04
+       LDA     TIDA+2
+       SUB     TIDB+2
+       SZE
+       JMP     AS04
+       LDA     A
+       SUB     K105
+       STA     A
+AS16   LDA     IUA     IF IU (A) .NE. 0
+       ADD     NTF
+       SZE
+       JMP     AS18    GO TO AS18 (5)
+       LDA     SPF     IF SPF = 0, GO TO AS18 (5)
+       SNZ
+       JMP     AS18
+       LDA     TC      IF TC = (
+       SUB     K17
+       SZE
+       JMP     AS19
+       JST     TG00    TAG SUBPROGRAM
+AS18   CRA             SET NTF TO 0
+       STA     NTF     SET NTF TO 0
+       JST     FA00    GO TO FETCH ASSIGNS
+       JST     STXA
+       LDA     IM
+       JMP*    AS00    RETURN
+AS19   JST     TV00    TAG VARIABLE
+       JMP     AS18
+AS30   JST     BUD     BUILD ASSIGNMENT ENTRY
+       LDA     NT      IF NT = 1
+       SZE
+       JMP     AS32    OR IV = VAR,
+       LDA     IU
+       SUB     K102  
+       SZE
+       JMP     AS40    AMD
+AS32   LDA     IM      IF IM = CPX,
+       SUB     K105
+       SZE
+       JMP     AS40
+       STA     IU      MOVE 1ST PART OF
+       LDA     TIDB    COMPLEX ENTRY TO
+       STA     TID     TID AND BUILD
+       LDA     TIDB+1  ASSIGNMENT ENTRY
+       STA     TID+1
+       LDA     TIDB+2
+       STA     TID+2
+       LDA     A
+       ADD     K105
+       STA     A
+       JST     BUD
+       LDA     A
+       SUB     K105    RESTORE A
+       STA     A
+AS40   LDA     ABAR
+       SUB     A       T0 = -(ABAR-A+5)
+       ADD     K105    GIVING NO. OF WORDS TO MOVE TABLES UP
+       TCA
+       STA     T0AS
+       TCA
+       ADD     DO      CO=DO+T0
+       STA     DO
+       LDA     IFLG    IF IFLG = 0, THERE IS NO EXPRESSION TABLE
+       SNZ
+       JMP     AS60    GO TO AS60
+       LDA     I
+       SUB     T0AS
+       STA     I       I = I - T0(T0 IS NEGATIVE)
+       AOA
+AS41   CAS     L       CHECK AGAINST BOTTOM OF TRIAD TABLE
+       NOP
+       JMP     AS50
+       ADD     '104    =DP,1
+       STA     AS91    AS91 = NEW TABLE TOP
+       ADD     T0AS
+       STA     AS92    AS92
+       SUB     T0AS    COMPUTE SIZE OF FLOATING TABLES
+       SUB     '104    =DP,1
+       SUB     DO
+       SNZ             IF ZERO, ASSIGN TABLE ONLY.
+       JMP     AS16
+       TCA
+       STA     T0AS
+       CRA
+       STA     XR
+AS46   LDA*    AS92    END-5
+       STA*    AS91    END  (MOVE TABLES UP)
+       LDA     0
+       SUB     K101    =1
+       STA     0       REDUCE INDEX
+       IRS     T0AS    = NO. OF WORDS TO MOVE
+       JMP     AS46
+       JMP     AS16
+AS50   JST     ER00
+       BCI     1,MO    DATA POOL OVERFLOW
+AS60   LDA     DO
+       ADD     D
+       JMP     AS41
+AS91   DAC     0
+AS92   DAC     **
+*
+*
+*
+*
+*             ****************
+*             *TAG SUBPROGRAM*
+*             ****************
+*          TAG ITEM AS A SUBPROGRAM, CHECK TO SEE IF
+*               NAME IS IN IMPLICIT MODE TABLE AND SET
+*               MODE ACCORDINGLY
+*
+TG00   DAC     **
+       LDA     IU
+       SUB     K101    IF IU = SUB
+       SNZ
+       JMP*    TG00    RETURN, ELSE
+       JST     NU00    NO * USAGE TEST
+       LDA     TG22    =-21
+       STA     0       SET INDEX
+TG04   LDA     ID+1    CHARACTERS 3 AND 4
+       CAS     TGT2+21,1       IMPLICIT MODE SUBR. NAME TABLE
+       JMP     *+2
+       JMP     TG10
+TG06   IRS     0
+       JMP     TG04    NOT DONE WITH TABLE
+TG08   LDA     K101    =1  (IU=SUBR.)
+       STA     IU
+       JST     STXA
+       LDA     DP+1,1  IU(A) = SUB
+       LGL     1
+       SSM
+       LGR     1
+       STA     DP+1,1
+       JMP*    TG00    RETURN
+*
+TG10   LDA     ID      CHARACTERS 1 AND 2
+       ANA     K111    ='37777
+       ADD     HBIT    ='140000
+       SUB     TGT1+21,1
+       SZE
+       JMP     TG06    CONTINUE SEARCH
+       LDA     ID+2    CHARACTERS 5 AND 6
+       SUB     TGT3+21,1
+       SZE
+       JMP     TG06    CONTINUE SEARCH
+       LDA     TGT1+21,1
+       LGR     8
+       ANA     K107    =7    (=3 IF CPX, 4 IF DBL)
+       ADD     K102    =2     (=5 IF CPX, 6 IF DBL)
+       JST     DM00    DEFINE IM
+       JMP     TG08
+*
+TG22   OCT     177753  =-21
+*
+*...........IMPLICIT MODE SUBROUTINE NAME TABLE
+TGT1   BCI     6,DECEDLCLDLDS
+       BCI     6,CSDCCCDSCSDA
+       BCI     6,DADMDADMDMDS
+       BCI     3,DBCMCO
+TGT2   BCI     6,XPXPOGOGOGIN
+       BCI     6,INOSOSQRQRTA
+       BCI     6,TAODBSAXINIG
+       BCI     3,LEPLNJ
+TGT3   BCI     6,        10    /
+       BCI     6,      T T N   /
+       BCI     6,N2    1 1 N   /
+       BCI     3,  X G         /
+*
+*
+TIDA   BSS     3
+TIDB   BSS     3
+*
+*  -       TV00  TAG VARIABLE
+TV00   DAC     **
+       LDA     IU      IF IU = 'VAR',
+       SUB     K102
+       SNZ
+       JMP*    TV00    RETURN
+       JST     NU00    ELSE, NO USAGE TEST
+       JST     STXA
+       LDA     DP+1,1
+       ANA     K111    IU (A) = 'VAR'
+       SSM
+       STA     DP+1,1
+       JMP*    TV00    RETURN
+*
+*
+*
+*
+*
+*             **************
+*             *FETCH ASSIGN*
+*             **************
+*          SET ASSIGNMENT DATA FROM ASSIGN (EXCEPT ID)
+*               EXPAND DIMENSION INFO IF ARRAY
+*
+FA00   DAC     **
+       JST     STXA
+       LDA     DP,1
+       LRL     15
+       STA     NT      NT=NT(A)
+       CRA
+       LLL     3
+       STA     AT      AT=AT(A)
+       CRA
+       LLL     3       IM = IM(A)
+       STA     IM
+       STA     0
+       LDA     KM92-1,1
+       STA     D0      D0 = NUMBER OF WORDS
+       ALS     2
+       ADD     D0
+       STA     X       X = POINTER TO CONSTANT NUMBER OF WORDS
+       JST     STXA
+       LDA     DP+1,1
+       LRL     14
+       STA     IU
+       SUB     K103    IF IU NOT 'ARR'
+       SNZ
+       JMP     FA10
+       CRA
+       LLL     14      AF = GF(A)
+       STA     AF
+       JMP*    FA00
+FA10   LLL     14
+       STA     0       INDEX = GF(A)
+       LDA     DP+4,1
+       STA     X1      POINTER OF DIMENSION 1
+       LDA     DP+3,1
+       STA     X2      POINTER OF DIMENSION 2
+       LDA     DP+2,1
+       STA     X3      POINTER OF DIMENSION 3
+       LDA     DP+1,1
+       ANA     K111    ='37777
+       STA     AF      AF = GF(GF(A))
+       LDA     DP,1
+       LGR     9
+       ANA     K107    =7
+       STA     ND      NUMBER OF DIMENSIONS
+       STA     0
+       LDA     K101    =1
+       STA     D2
+       STA     D3
+       JMP*    FA91-1,1
+FA22   LDA     X3      FETCH 3RD DIMENSION SIZE
+       STA     XR
+       JST     FA40
+       STA     D3      STORE D3
+FA24   LDA     X2
+       STA     XR
+       JST     FA40
+       STA     D2      D2 = 2ND DIMENSION SIZE
+FA26   LDA     X1
+       STA     XR
+       JST     FA40
+       STA     D1      D1 = 1ST DIMENSION SIZE
+       JST     STXA    EXIT WITH AF IN A
+       LDA     AF
+       JMP*    FA00
+FA40   DAC     **
+       LDA     DP,1    IM OF SUBSCRIPT VALUE
+       SSP
+       LGR     12
+       SUB     K105    =5
+       SZE             SKIP IF DUMMY SUBSCRIPT
+       LDA     DP+4,1  FETCH VALUE OF SUBSCRIPT
+       JMP*    FA40
+FA91   DAC     FA26
+       DAC     FA24
+       DAC     FA22
+*
+*
+*             ************
+*             *FETCH LINK*
+*             ************
+*          EXPAND LINK FIELD AND FETCH ASSIGNS FOR THE
+*               LINKED ITEM
+*
+FL00   DAC     **
+       JST     STXA
+       LDA     DP,1    A = 5 * CL(A)
+       ANA     K118
+       STA     FLT1
+       ALS     2
+       ADD     FLT1    (FLT1 ALSO USED BY ASSIGN SPEC)
+       STA     A
+       JST     FA00    FETCH ASSIGN
+       JST     KT00    D0 = = WDS /ITEM
+       LDA     A
+       SUB     F       (A) = A-F
+       JMP*    FL00    RETURN
+*
+*
+*             *******************
+*             *D0=WORDS FOR LINK*
+*             *******************
+*          D = ITEM MODE SIZE TIMES THE TOTAL SIZE IF
+*               THE ITEM IS AN ARRAY
+*
+KT00   DAC     **
+       LDA     IU      IF IU NOT 'ARR'
+       SUB     K103
+       SZE
+       JMP*    KT00    RETURN
+       LDA     D0
+       IAB             D0 = D0 * D1 * D2 * D3
+       LDA     D1
+       JST     IM00    MULTIPLY A BY B
+       IAB
+       LDA     D2
+       JST     IM00    MULTIPLY A BY B
+       IAB
+       LDA     D3
+       JST     IM00    MULTIPLY A BY B
+       STA     D0
+       JMP*    KT00    RETURN
+*
+*
+*
+*             ***********
+*             *DEFINE IM*
+*             ***********
+*          IM SUBA = IM (SET FROM A REG)
+*
+DM00   DAC     **
+       STA     IM      IM = (A)
+       JST     STXA    ESTABLISH A
+       LDA     DP,1
+       LRL     9
+       LGR     3       IM(A) = IM
+       LGL     3
+       ADD     IM
+       LLL     9
+       STA     DP,1
+       JMP*    DM00
+*
+*
+*             ***********
+*             *DEFINE AF*
+*             ***********
+*          AF SUBA = AF (SET FROM A REG)
+*
+DA00   DAC     **
+       STA     AF      AF = (A)
+       LRL     14
+       JST     STXA
+DA10   LDA     DP+1,1  IF IU (A) NOT ARR
+       LGR     14
+       CAS     K103    GF (A) = AF
+       JMP     *+2
+       JMP     DA20    ELSE, GF (GF (A)) = AF
+       LLL     14
+       STA     DP+1,1
+       JMP*    DA00    RETURN
+DA20   LDA     DP+1,1
+       ANA     K111
+       STA     GFA
+       STA     0
+       JMP     DA10
+NXT    DAC     **      GET NEXT ENTRY
+       LDA     A       FROM ASSIGNMENT
+       ADD     K105    =5
+       STA     A
+       STA     0
+       CAS     ABAR
+       JMP*    NXT
+       NOP
+       IRS     NXT
+       LDA     DP,1
+       LRL     15
+       STA     NTA     NT(A) = NT FROM (A)
+       CRA
+       LLL     3
+       STA     ATA     AT(A) = AT FROM (A)
+       CRA
+       LLL     3
+       STA     IMA     IM(A) = IM FROM (A)
+       CRA
+       LLL     9
+       STA     CLA     CL(A) = CL FROM (A)
+       LDA     DP+1,1
+       LRL     14
+       STA     IUA     IU(A) = IU FROM (A)
+       CRA
+       LLL     14
+       STA     GFA     GF(A) = GF FROM (A)
+       LDA     DP+2,1
+       STA     TIDA+2  TID(A) = TID FROM (A)
+       LDA     DP+3,1
+       STA     TIDA+1
+       LDA     DP+4,1
+       STA     TIDA
+       LRL     15
+       STA     DTA     DT(A) = DT FROM (A)
+       CRA
+       LLL     1
+       STA     TTA     TT(A) = TT FROM (A)
+       LDA     NTA     NT(A) = NT FROM (A)
+       SZE
+       JMP*    NXT
+       LDA     DP+4,1
+       SSM
+       ALR     1
+       SSM
+       ARR     1
+       STA     TIDA
+       JMP*    NXT
+*
+*
+BUD    DAC     **      BUILD ASSIGNMENT
+       JST     STXA
+       STA     ABAR
+       LDA     TID     TABLE ENTRY
+       STA     DP+4,1
+       LDA     TID+1
+       STA     DP+3,1
+       LDA     TID+2
+       STA     DP+2,1
+       LDA     IU
+       STA     IUA
+       LGL     14
+       STA     DP+1,1
+       LDA     NT
+       LGL     3
+       ADD     K102    AT = STR/+BS
+       LGL     3
+       ADD     IM
+       LRL     16
+       STA     CL
+       LDA     K102
+       STA     AT
+       LDA     A       CL(A) = A/5
+       SUB     K105
+       SPL
+       JMP     *+3
+       IRS     CL
+       JMP     *-4
+       LLL     25
+       ADD     CL
+       STA     DP,1
+       SPL
+       JMP*    BUD
+       LDA     DT
+       LGL     1
+       ADD     TT
+       LGL     14
+       IMA     DP+4,1
+       ANA     K111
+       ADD     DP+4,1
+       STA     DP+4,1
+       JMP*    BUD
+*
+*
+*
+*
+*
+*             ************
+*             *DEFINE AFT*
+*             ************
+*          AT SUBA = AT (FROM B REG), THEN DEFINE AF
+*
+AF00   DAC     **
+       IAB
+       STA     AF90
+       JST     STXA
+       LDA     AF90
+       LGL     12
+       IMA     DP,1
+       ANA     AF91
+       ADD     DP,1
+       STA     DP,1    AT(A) = CONTENTS OF B INPUT
+       IAB
+       JST     DA00    DEFINE AF
+       JMP*    AF00
+AF90   PZE     0
+AF91   OCT     107777
+*
+*
+*             *****************
+*             *DEFINE LOCATION*
+*             *****************
+*          SET AF = RPL, AT = REL
+LO00   DAC     **
+       LDA     K101    REL
+       IAB
+       LDA     RPL
+       JST     AF00    DEFINE AF
+       JMP*    LO00
+*             *************************
+*             *ASSIGN INTEGER CONSTANT*
+*             *************************
+*          IM (INTEGER), IU(VARIABLE) , ASSIGN SPECIAL
+AI00   DAC     **
+       CRA
+       STA     ID+1
+       STA     ID+2
+       LDA     K101    (B) = INT
+       IAB
+       LDA     K102    (A) = VAR
+       JST     AA00    ASSIGN SPECIAL
+       JMP*    AI00    RETURN
+*
+*
+*             ****************
+*             *ASSIGN SPECIAL*
+*             ****************
+*          B REG TO IM, A REG TO IU, 1 TO NT (CONSTANT), THEN
+*               ASSIGN ITEM
+AA00   DAC     **
+       STA     IU      IU = (A)
+       IAB
+       STA     IM      IM = (B)
+       LDA     K101
+       STA     NT      NT = 1
+       JST     AS00    ASSIGN ITEM
+       JMP*    AA00    RETURN
+*
+*
+*             **********
+*             *JUMP    *
+*             *ILL TERM*
+*             **********
+*
+*          CLEAR LAST OP FLAG FOR NO PATH TESTING
+*
+B6     CRA
+       STA     LSTP    LSTP = 0
+*          SET ILLEGAL DO TERM FLAG
+C5     LDA     K101
+       STA     LSTF    LSTF =1
+A1     LDA     CRET
+       JST     TS00    IF TC NOT C/R, ERROR
+       JMP     C6
+*
+*
+*             **********
+*             *CONTINUE*
+*             **********
+*          WRAPUP LOGICAL IF, CHECK TRACE STOP AND SEARCH
+*               DO TABLE FOR DO TERMINATION
+C6     LDA     LIF
+       SZE             IF LIF NON-ZERO,
+       JMP     C6H     GO TO
+C6A    LDA     LSTN    IF LSTN NON-ZERO,
+       SZE             GO TO
+       JMP     C6C
+C6B    STA     LSTF    LSTF = 0
+       JMP     C7      GO TO STATEMENT INPUT
+C6C    SUB     TRF     TRACE FLAG
+       SNZ             SMP IF NOT END OF TRACE ZONE
+       STA     TRF     SET TRF TO ZERO (TURN FLAG OFF)
+       LDA     DO      START OF DO TABLE
+       ADD     D
+C6D    STA     I       I = DO + D
+       JST     STXI
+       SUB     DO
+       SNZ
+       JMP     C6B     GO TO C6B - FINISHED DO
+       LDA     DP-4,1
+       SUB     LSTN
+       SZE
+       JMP     C6E
+       LDA     LSTF
+       SZE
+       JMP     C6K
+       JST     DQ00    DO TERMINATION
+       LDA     D
+       SUB     K105
+       STA     D       D = D-5
+       LDA     LSTF
+C6E    STA     LSTF
+       LDA     I
+       SUB     K105
+       JMP     C6D     I = I-5 - CONTINUE DO LOOP
+C6H    LDA     IFF
+       STA     A
+       SNZ
+       JMP     C6J
+       LLL     16
+       LDA     OMI5    (A) = JMP INSTRUCTION
+       JST     OB00    OUTPUT OA
+       CRA
+       STA     IFF     IFF = 0
+C6J    STA     A       A = 0
+       LDA     LIF
+       STA     LSTP    SET TO NON-ZERO TO PREVENT DATA ERROR MSG
+       JST     OS00    OUTPUT STRING - RPL
+       JMP     C6A
+*
+C6K    JST     ER00
+       BCI     1,DT
+*
+*             *****************
+*             *STATEMENT INPUT*
+*             *****************
+*          SET UP PROCESSING OF NEXT SOURCE STATEMENT
+*               PROCESS STATEMENT NUMBER IF PRESENT
+*               WRAPUP ANY OUTSTANDING ARITHMETIC IF
+C7     CRA
+       STA     LSTN    LSTN = 0
+       STA     IFLG    IFLG = 0
+       STA     LIF     LIF = 0
+       LDA     L0      L = L (0)
+       STA     L
+       LDA     CI      CHECK CARD COLUMN 1
+       LGR     8           FOR $ CHARACTER
+       SUB     K15     =($)
+       SNZ
+       JMP     CCRD    CONTROL CARD
+       JST     XN00    EXAMINE NEXT CHAR
+       SZE
+       JMP     C71
+       JST     IS00    INPUT STATEMENT =
+       LDA     A
+       STA     LSTN    LSTN = A
+       STA     LSTP
+C71    LDA     IFF     CHECK FOR IFF=0
+       LDA     IFF     IF IFF = 0,
+       SNZ
+       JMP     C7B     GO TO C7B
+       SUB     LSTN    IF = LSTN
+       SZE
+       JMP     C7C
+C7A    STA     IFF     IFF = 0
+C7B    JST     C7LT    LINE TEST
+       JMP     C8
+C7C    LDA     IFF     IFF = A
+       STA     A
+       LRL     32
+       LDA     K201    (A) = JMP INSTRUCTION
+       JST     OB00    OUTPUT OA
+       CRA
+       JMP     C7A     GO TO C7A
+C7LT   DAC     **      LINE TEST
+       LDA     CI+2    CI = BLANK
+       ANA     K116    LIST LINE
+       ADD     K8      RETURN
+       STA     CI+2
+       LDA     TC
+       SUB     HC2     IF TC = SPECIAL
+       SZE
+       JMP     C7LU
+       JST     LIST
+       JMP*    C7LT
+C7LU   JST     ER00    CONSTRUCTION ERROR
+       BCI     1,SC    STATEMENT NO. ON A CONTINUATION CARD
+*
+*
+*
+*             ************************
+*             *CONTROL CARD PROCESSOR*
+*             ************************
+CCRD   JST     FS00    FLUSH BUFFER IF NECESSARY
+       JST     LIST    LIST CARD
+       LDA     CI      WORD CONTAINING COLUMN 1
+       LGL     12
+       SNZ
+       LDA     CCRK    ='030000 (EOJ CODE = 3)
+       LGR     6       TRUNCATE TO A DIGIT
+       STA     OCI
+       LDA     K106    =6
+       STA     OCNT    SET BUFFER WORD COUNT TO 3
+       JST     FS00    FLUSH BUFFER
+       LDA     CI
+       LGL     12      CHECK COLUMN 1 FOR CONTROL CODE 0
+       SZE
+       JMP     ER20    SKIP TO NEXT CARD (NOT CONTROL CARD)
+       CALL    F4$END  CLOSE-OUT I/0 DEVICES AND STOP
+       JMP     A0      RESTART NEW COMPILATION
+CCRK   OCT     030000  EOJ CONTROL CODE
+*
+*             ****************
+*             *STATEMENT SCAN*
+*             ****************
+*          DETERMINE THE CLASS OF THE STATEMENT
+*               IF AN = IS FOUND WITH A FOLLOWING ,
+*                    THE STATEMENT IS A DO
+*                    IF NO FOLLOWING COMMA, THE PAREN FLAG
+*                    IS TESTED, IF NO PARENS, THE STATEMENT
+*                    IS ARITHMETIC ASSIGNMENT
+*                    IF PARENS WERE DETECTED AND THE FIRST
+*                    NAME IS AN ARRAY, THE STATEMENT IS
+*                    ARITHMETIC ASSIGNMENT
+*                    OTHERWISE, IT IS A STATEMENT FUNCTION
+*                    IF NO = IS FOUND, THE STATEMENT IS
+*                    PROCESSED FURTHER IN STATEMENT ID
+C8T1   PZE     0
+C8     LDA     CC      SAVE CC
+       STA     C8X9
+       LDA     K101
+       STA     C8T1    T (1) = 1
+       CRA
+       STA     ICSW    ICSW = SIR
+C8A    JST     CH00    INPUT CHARACTER
+C8B    LDA     TC      IF TC = )
+       SUB     K4
+       SZE
+       JMP     C8C
+       JST     CH00    INPUT CHAR
+C8B2   LDA     DFL     IF DFL NOT ZERO
+       SZE
+       JMP     C8B     GO TO C8B
+C8B4   LDA     C8X9    RESTORE CC
+       STA     CC
+       LDA     K101    IPL
+       STA     ICSW    ICSW = IPL
+       JMP     A9      GO TO STATEMENT ID
+C8C    LDA     TC      IF TC NOT (,
+       SUB     K17
+       SZE
+       JMP     C8D     GO TO C8D
+       LDA     C8T1    T1 = T1 - 1
+       SUB     K101
+       STA     C8T1
+C8C4   SZE             IF T1 = 0
+       JMP     C8B4
+       JST     DN00    INPUT DNA
+       JMP     C8B2    GO TO C8B2
+C8D    LDA     TC      IF TC = ,
+       CAS     K134    ='17 ('FINISHED' CODE FOR COMMA)
+       JMP     *+2
+       JMP     C8D2    TC = COMMA
+       SUB     K5
+       SZE
+       JMP     C8E
+C8D2   LDA     C8T1    GO TO C8C4,
+       JMP     C8C4
+C8E    LDA     TC      ELSE, IF TC = '/'
+       SUB     K9
+       SNZ
+       JMP     C8B4    GO TO C8B4
+       LDA     TC
+       SUB     K18     IF NOT = ,
+       SZE
+       JMP     C8A     GO TO C8A
+       LDA     K107    INPUT 7 CHARACTERS
+       JST     IA00
+       LDA     C8X9    RESTORE CC
+       STA     CC
+       LDA     K101    IPL
+       STA     ICSW    ICSW = IPL
+       LDA     TC
+       SUB     K5      IF TC NOT,
+       SZE
+       JMP     C8G     GO TO C8G
+       LDA     K102    ELSE, INPUT 2 CHARS
+       JST     IA00
+       LDA     IBUF    IF (A) = 'DO'
+       SUB     K19
+       SNZ
+       JMP     *+3
+       JST     ER00
+       BCI     1,CM    COMMA OUTSIDE PARENTHESES, NOT IN DO STMNT.
+       LDA     K104
+       JST     NP00    FIRST NON-SPEC CHECK
+       JMP     C9      GO TO DO
+C8G    LDA     C8T1    1 IF NO ( TO LEFT OF EQUALS
+       SZE
+       JMP     G2      ARITHMETIC ASSIGNMENT STATEMENT
+       JST     SY00    INPUT SYMBOL
+       LDA     C8X9
+       STA     CC      RESTORE CC
+       LDA     IU      IF IU = SUBR
+       SUB     K103
+       SZE
+       JMP     G1      GO TO ARITH ST. FUNCT,
+       JMP     G2      OTHERWISE = ASSIGNMENT STATEMENT
+C8X9   PZE     0
+*
+*
+*             **************************
+*             *STATEMENT IDENTIFICATION*
+*             **************************
+*          READ FOUR CHARACTERS AND DETERMINE CORRECT ROUTINE
+*               FOR PROCESSING, THEN CHECK SPELLING ON REST
+A9T1   PZE     0
+A9T2   PZE     0
+A9T3   PZE     0
+A9     LDA     K104
+       JST     IA00    INPUT (4) CHARS
+       LDA     IBUF
+       STA     NAMF    NAMF = IBUF
+       LDA     IBUF+1
+       STA     NAMF+1
+       LDA     A9Z9    INITIALIZE INDEX FOR LOOP
+       STA     XR      THROUGH THE STATEMENT NAMES
+A9A    LDA     NAMF
+       SUB     A9X1+30,1
+       SZE
+       JMP     A9F     READ IN REST OF
+       LDA     NAMF+1  CHECK REST OF SPELLING FOR
+       SUB     A9X2+30,1
+       SZE             A MATCH ON 4 CHARACTERS
+       JMP     A9F     NOT FOUND
+       LDA     A9X4+30,1
+       ANA     K133
+       STA     A9T1    T1 = NUMBER OF REMAINING CHARACTERS
+       LDA     A9X3+30,1       LEFT TO CHECK
+       LRL     13
+       IAB
+       LGR     3
+       STA     A9T2    T2 = ADDRESS OF ROUTINE
+       IAB
+       JST     NP00    FIRST NON-SPECIFIC. CHECK -(A) =
+A9B    LDA     A9T1    HIERARCHY CODE
+       SZE
+       JMP     A9C     MUST CHECK MORE CHARACTERS
+       JMP*    A9T2    FINISHED CHARACTER CHECK, EXIT TO
+*                      SPECIFIC ANALYZER.
+A9C    SUB     K106
+       SPL
+       JMP     A9E
+       STA     A9T1
+       LDA     K106    REMAINING SPELLING 1S CHECKED.
+A9D    STA     A9T3
+       JST     IA00
+       SUB     A9T3
+       SNZ
+       JMP     A9B
+       JST     ER00
+       BCI     1,SP    STATEMENT NAME MISSPELLED
+A9E    ADD     K106
+       IMA     A9T1
+       CRA
+       IMA     A9T1
+       JMP     A9D
+A9F    IRS     XR      LOOP CONTROL FOR STATEMENT NAMES.
+       JMP     A9A     MORE NAMES - CONTINUE LOOP
+       LDA     TC
+       SUB     CRET
+       SZE
+       JMP     A9G
+       LDA     LSTN    TC = C/R
+       SNZ
+       JMP     C7      AND LSTN = 0 - INPUT NEW STATEMENT
+A9G    JST     ER00
+       BCI     1,ID    UNRECOGNIZED STATEMENT
+A9X1   BCI     10,INREDOCOLOFUSUBLEXDI
+       BCI     10,COEQGOCARECOFOIFWRRE
+       BCI     7,BAENREENASSTPA
+       BCI     2,DATR
+       BCI     1,PR
+A9X2   BCI     10,TEALUBMPGINCBROCTEME
+       BCI     10,MMUITOLLTUNTRM( ITAD
+       BCI     3,CKDFWI
+       OCT     142215  D, C/R
+       BCI     3,SIOPUS
+       BCI     2,TAAC
+       BCI     1,IN
+A9X3   DAC     A3
+       DAC     A4
+       DAC     A5
+       DAC     A6
+       DAC     A7
+       DAC     R1
+       DAC     R2
+       DAC     R3
+       DAC     B2
+       DAC     B3
+       DAC     B4
+       DAC     B5
+       DAC*    R7
+       DAC*    R8
+       DAC*    R9
+       DAC*    CONT
+       DAC*    V2
+       DAC*    V3
+       DAC*    V4
+       DAC*    V5
+       DAC*    V6
+       DAC*    V7
+       DAC*    V8
+       DAC     W5+'20000
+       DAC*    W3
+       DAC*    W7
+       DAC*    W8
+       DAC     W4,1
+       DAC*    TRAC+'20000,1   TRACE STATEMENT
+       DAC*    V10
+*
+*             ******************************
+*             *CONTINUE STATEMENT PROCESS0R*
+*             ******************************
+CONT   LDA     LSTP    ACCOUNTS FOR POSSIBLE PATH ERROR
+       ADD     LSTN    ACCOUNTS FOR POSSIBLE PATH ERROR
+       STA     LSTP    ACCOUNTS FOR POSSIBLE PATH ERROR
+       JMP     C6
+*
+*-------------THE FOLLOWING TABLE IS USED BY STATEMENT ID
+*-------------(RIGHT 6 BITS) AND OUTPUT ITEM,
+A9X4   OCT     000003  (00)
+       OCT     030100  (01) +        (A$--)
+       OCT     032313  (02) -        (S$--)
+       OCT     031503  (03) *        (M$--)
+       OCT     030403  (04) /        (D$--)
+       OCT     000004  (05) .NOT.
+       OCT     000006  (06) .AND.
+       OCT     031405  (07) .OR.      (L$-.
+       OCT     000004  (10) .LT.
+       OCT     000005  (11) .LE.
+       OCT     000002  (12) .EQ.
+       OCT     000007  (13) .GE.
+       OCT     000000  (14) .GT.
+       OCT     000000  (15) .NE.
+       OCT     031003  (16) =        (H$--)
+       OCT     000005  (17) ,
+       OCT     030503  (20) 'E'      (E$--)
+       OCT     031600  (21) 'C'      NC$--)
+       OCT     000001  (22) 'A'
+       OCT     000000  (23)
+       OCT     000005  (24) 'X'
+       OCT     000003  (25) 'H'
+       OCT     000002  (26) 'L'
+       OCT     000000  (27) 'I'
+       OCT     000002  (30) 'T'
+       OCT     031400  (31) 'F'      (L$--)
+       OCT     000001  (32) 'Q'
+       OCT     000000
+       OCT     000001
+       OCT     000001
+A9Z9   DAC*    -30,1   NO. OF ITEMS IN STMNT NAME TABLE
+*
+*
+*             **********************
+*             *FIRST NON-SPEC CHECK*
+*             **********************
+*          AT FIRST SHIFT IN LEVEL FROM ZERO, WRAP-UP
+*               SPECIFICATION STATEMENTS
+T0NP   PZE     0
+NPT0   EQU     T0NP
+T2NP   PZE     0
+T1NP   PZE     0
+NP00   DAC     **
+       STA     NPT0    T0 = (A)
+       LDA     A
+       STA     T1NP    T1 = A
+       LDA     NPT0
+       CAS     K107    =7
+       JMP     *+2
+       JMP     NP10    TRACE STMNT.  (MAY OCCUR ANYWHERE)
+       CAS     SPF     T0 , G.R. SPF, GO TO NP30
+       JMP     NP30    T0 = SPF, G0 TO NP25
+       JMP     NP25
+       LDA     TC      IF TC = C/R
+       SUB     CRET    GO TO NP10
+       SNZ
+       JMP     NP10
+       JST     ER00    ELSE, ILLEGAL STATEMENT
+       BCI     1,EX    SPECIFICATION STATEMENT APPEARS AFTER
+*                         SPECIFICATION STATEMENT CLEAN-UP
+NP10   LDA     LSTN
+       STA     A       A  = LSTN
+       SNZ
+       JMP     NP16    IF ZERO, RETURN
+       JST     FA00    FETCH ASSIGNS
+       LDA     K103    STR-REL
+       SUB     AT
+       SZE
+       JMP     NP20
+       LDA     AF
+       JST     OS00    OUTPUT STRING RPL
+NP15   JST     LO00    DEFINE LOCATION
+       LDA     NAMF
+       SUB     A9X1+16
+       SZE
+       JST     TRSE    OUTPUT TRACE COUPLING
+NP16   LDA     T1NP
+       STA     A
+       JMP*    NP00
+NP20   JST     NR00    NON-REL TEST
+       JMP     NP15
+NP25   LDA     LIF
+       SZE
+       JMP     NP16
+       LDA     LSTP    IF LSTP + LSTN =0
+       ADD     LSTN
+       SZE
+       JMP     NP10
+       IRS     LSTP
+       JST     ER00    'NO PATH' ERROR
+       BCI     1,PH    NO PATH LEADING TO THE STATEMENT
+NP30   LDA     SPF     IF SPF 0 0
+       SZE
+       JMP     NP37
+NP32   LDA     TC
+       STA     T2NP    T2 = TC
+       LDA     RPL
+       STA     XST     XST = RPL
+       LDA     BDF     BLOCK DATA SUBPROGRAM FLAG
+       SZE             SKIP IF NOT BLOCK DATA SUBPROGRAM
+       JMP     C2      GO TO RELATE COMMON
+       STA     A       SET LISTING FOR OCTAL ADDR.
+       LDA     OMI5    JMP INSTRUCTION
+       STA     DF      SET LISTING FOR SYMBOLIC INSTR.
+       JST     OA00    OUTPUT ABSOLUTE
+       JMP     C2      GO TO RELATE COMMON
+NP35   LDA     T2NP
+       STA     TC
+NP37   LDA     T0NP
+       STA     SPF     SPF = T0
+       SUB     K104
+       SZE
+       JMP     NP10
+NP40   STA     A       SET LISTING FOR OCTAL ADDR.
+       LDA     XST     LOCATION OF INITIAL JUMP
+       JST     OS00    OUTPUT STRING
+       LDA     RPL
+       STA     XST     XST = RPL
+       JMP     NP10    GO TO NP10
+*
+*              *****************
+*              *IF(  PROCESSOR*
+*              *****************
+*           ARITHMETIC IF ($1 $2 $3)
+*                IF $2 NOT = $3, JZE $2
+*                IF $3 NOT = $1, JPL $3
+*                (IF $1 NOT = NEXT ST NO., JMP $1) LATER
+*           LOGICAL IF
+*                OUTPUT JZE 77777 (FOR STRINGING AROUND
+*                     IMBEDDED STATEMENT)
+V3     JST     II00    INPUT ITEM
+       SNZ
+       JMP     V310    IM=0  (POSSI8LE UNARY + OR -)
+       LDA     DFL
+       SZE
+       JMP     V310    FIRST ITEM IN EXPRESSION 0.K.
+V308   JST     ER00    ERROR.....IF(SENSE SWITCH,.ETC).....
+       BCI     1,IF    ILLEGAL IF STATEMENT TYPE
+V310   CRA             (A)=0
+       JST     EX00    EXPRESSION EVALUATOR
+       LDA     K4
+       JST     TS00    )-TEST
+       CRA
+       STA     A       SET A TO SPECIAL (IF) ENTRY IN DATA POOL
+       STA     0
+       LDA     MFL     SET MODE OF EXPRESSION INTO SPECIAL (IF)
+       LGL     9
+       STA     DP,1
+       JST     TRSE    OUTPUT TRACE COUPLING (IF NECESSARY)
+       LDA     MFL     CHECK MODE FLAG FOR LOGICAL
+       SUB     K103
+       SZE
+       JMP     V320    ARITHMETIC IF
+       LDA     LIF
+       SZE
+       JMP     V308
+       STA     AF      SET ADDR OF SNZ AND JMP INSTR TO 00000
+       LDA     OMJ2    =SNZ INSTR.
+       JST     OA00    OUTPUT ABSOLUTE
+       LDA     RPL     SET LIF=CURRENT +DDR, (STRING BACK)
+       STA     LIF
+       LDA     OMI5    =JMP 0 INSTR.
+       JST     OA00    OUTPUT ABSOLUTE
+       JST     XN00    GO TO NEXT INPUT LINE
+       JMP     C8      GO TO STATEMENT SCAN
+*
+V320   SUB     K102    CHECK FOR MODE = COMPLEX
+       SNZ
+       JMP     V308    ERROR,...COMPLEX MODE EXPRESSION
+       LDA     V356    =-3
+       STA     I
+V324   JST     IS00    INPUT STATEMENT NUMBER
+       JST     STXI    SET INDEX TO I
+       LDA     A
+       STA     T1V3+3,1        SAVE BRANCH ADDRESSES
+       IRS     I       I=I+1
+       JMP     V350    CHECK FOR TERMINAL COMMA
+       LDA     T3V3
+       CAS     T2V3    CHECK FOR ADDR-2 = ADDR-3
+       JMP     *+2
+       JMP     V330    ADDR-2 = ADDR-3
+       CRA
+       STA     A
+       LDA     OMJ2    =SNZ INSTR.
+       STA     DF
+       JST     OA00    OUTPUT ABSOLUTE
+       LDA     T2V3
+       JST     V360    OUTPUT A JMP(ADDR-2) INSTR.
+       LDA     T3V3
+V330   CAS     T1V3    CHECK FOR ADDR-3 = ADDR-2
+       JMP     *+2
+       JMP     V340    ADDR-3 = ADDR-1
+       CRA
+       STA     A
+       LDA     OMJ3    =SMI INSTR.
+       JST     OA00    OUTPUT ABSOLUTE
+       LDA     T3V3
+       JST     V360    OUTPUT A JMP (ADDR-3)  INSTR.
+V340   LDA     T1V3
+       STA     IFF     SET IFF ' ADDR-1
+       JMP     C5      GO TO ILL-TERM
+*
+V350   LDA     K5
+       JST     TS00    COMMA TEST
+       JMP     V324    INPUT NEXT STATEMENT NO.
+*
+V356   OCT     177775  -3
+*
+*---------------SUBROUTINE TO OUTPUT A RELATIVE JMP
+V360   DAC     **
+       STA     A       SET ADDR. OF JUMP REF. TO A
+       CRA
+       IAB             SET (B) = 0
+       LDA     OMI5    SET  (A) = JMP INSTR.
+       JST     OB00    OUTPUT OA
+       JMP*    V360    EXIT
+*
+T1V3   ***     **      ADDR-1
+T2V3   ***     **      ADDR-2
+T3V3   ***     **      ADDR-3
+*
+*              *******
+*              *GO TO*
+*              *******
+*           CHECK FOR NORMAL (R740), COMPUTED (R710) OR
+*                ASSIGNED (R730). INPUT BRANCH LIST USED BY BOTH
+*                R710 AND R730 FOR STATEMENT NO. LIST.
+*
+*
+R7     JST     XN00    EXAMINE NEXT CHAR
+       SZE
+       JMP     R78     GO TO TEST DFL
+       JST     IS00    INPUT STMNT =
+       LDA     A       (GO TO 20)
+       STA     IFF     IFF = A
+       JMP     C5      G0 TO ILLTERM
+R78    LDA     DFL
+       SZE
+       JMP     R7D
+       JST     IR00    GO TO I (10, 20, 30}
+       LRL     32
+       LDA     K206    OUTPUT JMP* INSTRUCTION
+       JST     OB00    OUTPUT OA
+       LDA     K134
+       JST     TS00    , TEST
+       JST     IB00    INPUT BRANCH LIST
+       JMP     B6      GO TO JUMP
+R7D    JST     IB00    INPUT BRANCH LIST GO TO (10,11,12), I
+       LDA     K134
+       JST     TS00    , TEST
+       JST     IR00    INPUT INT VAR
+       LRL     32
+       LDA     K200    OUTPUT LDA
+       JST     OB00    OUTPUT OA
+       CRA
+       STA     A
+       STA     AF      CAUSE OCTAL ADDRESS IN LISTING
+       LDA     K75
+       JST     OA00    OUTPUT ABS (STA 0) - INDEX LOAD
+       LDA     RPL
+       STA     AF      CAUSE RPL T0 BE IN LISTING
+       LDA     K207
+       JST     OR00    OUTPUT RELATIVE (JMP RPL,1)
+       LDA     L0
+R7F    SUB     K101
+       STA     I       I = L (0)
+       JST     STXI
+       LDA     DP,1
+       STA     A
+       JST     STXA
+       SNZ
+       JMP     B6      FINISHED LOOPING ON LIST
+       LLL     16
+       LDA     K201    OUTPUT JMP INSTRUCTIONS
+       JST     OB00    OUTPUT OA (JMP 0)
+       LDA     I
+       JMP     R7F
+*             *******************
+*             *INPUT BRANCH LIST*
+*             *******************
+*          INPUT STATEMENT NO. LISTS FOR GO TO PROCESSOR
+IB00   DAC     **
+       LDA     L0
+       SUB     K101
+       STA     I       I = L0-1
+       JST     CH00    INPUT CHAR
+       LDA     K17
+       JST     TS00    (- TEST
+IB10   JST     IS00    INPUT STMNT =
+       JST     STXI
+       LDA     A
+       STA     DP,1    SET POINTER OF ST. N0. INTO TRIAD TABLE
+*                      AREA
+       LDA     I       DP (J) = A
+       SUB     K101
+       STA     I       I = I-1
+       LDA     TC      IF TC = , GO TO IB10
+       SUB     K5
+       SNZ
+       JMP     IB10    CONTINUE LOOP
+       CRA
+       STA     DP-1,1  SET END FLAG INTO TABLE
+       JST     IP00    )- INPUT OPEN
+       JMP*    IB00    EXIT
+K75    STA     0
+*
+*
+*              ********
+*              *ASSIGN*
+*              ********
+*           CHECK TO SEE THAT 'TO' IS INCLUDED PROPERLY
+W3     JST     IS00    INPUT STMNT =
+       LDA     A
+       STA     T1W3    SAVE A
+       LDA     TC
+       SUB     K34     CHECK FOR TO
+       SZE
+       JMP     W305    CLEAR A FOR OUTPUT REL
+       STA     A       CAUSE OCTAL ADDRESS IN LIST
+       JST     CH00    INPUT CHAR
+       LDA     TC
+       SUB     K35
+       SNZ
+       JMP     *+3
+W305   JST     ER00    ERROR
+       BCI     1,TO    GO TO IN ASSIGN STATEMENT
+       LDA     RPL
+       ADD     K102
+       STA     AF      OUTPUT REL LDA *+2
+       LDA     K200    OUTPUT LDA *+2
+       JST     OR00    OUTPUT REL
+       LDA     RPL
+       ADD     K102
+       STA     AF      OUTPUT REL JMP *+2
+       LDA     K201
+       JST     OR00    OUTPUT OA
+       LRL     32
+       LDA     T1W3
+       STA     A       RESTORE A
+       CRA  
+       JST     OB00    OUTPUT DAC ST. NO.
+       JST     IR00    INPUT INTEGER VARIABLE
+       LRL     32
+       LDA     K202    OUTPUT STA INSTRUCTION
+       JST     OB00    OUTPUT OA
+       JMP     A1      GO TO C/R TEST
+T1W3   PZE     **      TEMP STORE
+*
+*
+*             ************************
+*             *DO STATEMENT PROCESSOR*
+*             ************************
+*          STACK INFO IN DO TABLE, OUTPUT DO INITIAL
+*               CODE
+C9T0   PZE     **
+C9     JST     IS00    INPUT STATEMENT =
+       JST     NR00    NON-REL TEST
+       LDA     A
+       STA     C9T0    T0 = A
+       JST     UC00    UNINPUT COLUMN
+       JST     IR00
+       LDA     C951
+       JST     TS00
+       LDA     C9T0    (A) = T0
+       IAB
+       JST     DP00    DO INPUT
+       JST     DS00    DO INITIALIZE
+       JMP     C5      GO TO ILLTERM
+C951   OCT     16      =
+*
+*
+*              **********
+*              *END FILE*
+*              **********
+*              ***********
+*              *BACKSPACE*
+*              *REWIND  *
+*              ***********
+V6     LDA     K71
+V6A    STA     NAMF+1
+       JST     NF00    SET UP NAMF
+       JST     OI00    OUTPUT I/0 LINK
+       JMP     A1      GO TO C/R TEST
+V7     LDA     K72
+       JMP     V6A
+V8     LDA     K73
+       JMP     V6A
+K71    BCI     1,FN    FN
+K72    BCI     1,DN
+K73    BCI     1,BN    BN
+*
+*
+*              **************
+*              *READ        *
+*              *WRITE       *
+*              *INPUT FORMAT*
+*              **************
+*          LIST ELEMENT DATA AND IMPLIED DO CONTROL
+*               STACKED IN TRIAD TABLE. PROCESSED BY
+*               OUTPUT TRIAD ROUTINE, SPECIAL OPERATORS
+*               ARE -I = DO INITIALIZATION
+*                    T = DO TERMINATION
+*                    Q = I/0 ARG TRANSFER
+T0V5   PZE     **
+V5     LDA     K41     F$RN
+       STA     NAMF+1
+       JST     XN00    EXAM NEXT CHAR
+       SZE
+       JMP     V5A     GENERAL READ
+       LDA     V5K4
+       JMP     V10A    CARD READ
+V4     LDA     K40     NAWF = F$WN
+       STA     NAMF+1
+V5A    JST     NF00    SET UP REMAINING NAME
+       LDA     D
+       STA     V5T1
+       JST     CH00    INPUT CHARACTER
+       LDA     K17     ='250......(
+       JST     TS00    (-TEST
+       JST     OI00    OUTPUT I0 LINK
+       LDA     TC      IF TC .NE. ,
+       SUB     K134    ='17   (,)
+       SZE             GO TO V5J
+       JMP     V5J
+       JST     V5X     INPUT FORMAT
+V5B    JST     IP00    ) - INPUT OPERATOR
+       LDA     TC
+       SUB     CRET    TEST FOR TC=C/R
+       SZE
+       JMP     V5C     NO, GO TO V5C
+V5B2   LDA     K42     YES. NAMF = ND
+       STA     NAMF+1
+       JST     CN00    CALL NAME
+       LDA     V5T1
+       STA     D
+       JMP     A1      GO TO C/R TEST
+V5C    JST     UC00
+V5C5   CRA
+       STA     IOF     IOF = 0
+V5D    JST     II00    INPUT ITEM
+       SZE
+       JMP     V5E     IF (A) NOT 0, GO TO V5E
+       LDA     K17
+       JST     TS00    (-TEST
+       CRA
+       STA     O2      O2 = 0
+       LDA     IOF  
+       STA     O1      O1 = IOF
+       LDA     V5K1    ='27
+       STA     P
+       JST     ET00
+       LDA     L
+       STA     IOF     IOF = L
+       JMP     V5D     GO TO V5D
+V5E    JST     NC00    NON-CONSTANT TEST
+       LDA     IU      IF IU NOT ARR
+       SUB     K103
+       SZE
+       JMP     V5H     GO TO V5H
+       LDA     TC
+       SUB     K17     IF TC NOT -(,
+       SZE
+       JMP     V5G     GO TO V5G
+       LDA     D0
+       STA     T0V5    T5 = DO
+       LDA     K103
+       TCA
+       JST     EX00    EXPRESSION
+       LDA     T0V5
+       STA     D0      D0 = T5
+V5E5   LDA     A
+       STA     O2
+       LDA     D0      O2 = D0
+       STA     O1
+       LDA     V5K2    ='32
+       STA     P
+       JST     ET00    ENTER TRIAD
+V5E7   LDA     TC      IF TC = COMMA
+       SUB     K134    GO TO V5D
+       SNZ
+       JMP     V5D
+       LDA     IOF     I = IOF
+       STA     I
+       SZE             IF NOT ZERO,
+       JMP     V5F     GO TO V5F
+       JST     OT00    OUTPUT TRIADS
+       JMP     V5B2    GO TO V5B2
+V5F    JST     IP00    )-INPUT OPERATOR
+       JST     STXI
+       LDA     DP+1,1
+       STA     IOF     IOF = O1 (I)
+       JMP     V5E7
+V5G    JST     KT00    K = = WDS/ITEM
+       JMP     V5E5    GO TO V5E5
+V5H    JST     TV00    TAG VARIABLE
+       LDA     TC
+       SUB     K16X    ='16  (=)
+       SZE             GO TO V5E5
+       JMP     V5E5    ELSE,
+       JST     IT00    INTEGER TEST
+       LDA     IOF
+       SNZ             IF IOF = ZERO OR L
+       JMP     V5H7
+       SUB     L
+       SZE
+       JMP     *+3     ERROR
+V5H7   JST     ER00
+       BCI     1,PR    PARENTHESES MISSING IN DO STATEMENT
+       JST     DP00    DO INPUT
+       LDA     IOF
+       STA     I
+       JST     STXI
+       LDA     D
+       STA     DP,1    02(IOF) = D
+       STA     O2      O2 = D
+       LDA     V5K3    ='30
+       STA     P
+       JST     ET00    ENTER TRIAD 'T'.
+       JMP     V5F
+V5J    CRA
+       STA     A       A = 0
+       JST     OA00    OUTPUT ABSOLUTE
+       JMP     V5B
+V5T1   PZE     0
+V5K1   OCT     27
+V5K2   OCT     32
+V5K3   OCT     30
+V5K4   BCI     1,R3
+V5K5   BCI     1,W4
+V5X    DAC     **      INPUT FORMAT
+       JST     XN00    EXAM NEXT CHARACTER
+       SZE
+       JMP     V5X5    GO TO INPUT ARRAY NAME
+       JST     IS00    INPUT STMNT NO.
+V5X2   LRL     32      OUTPUT DAC A
+       JST     OB00    OUTPUT OA
+       JMP*    V5X     RETURN
+V5X5   JST     NA00    INPUT NAME
+       JST     AT00    ARRAY TEST
+       JMP     V5X2
+*              PRINT
+V10    LDA     V5K5    PRINTER
+V10A   STA     NAMF+1
+       JST     NF00    SET UP REST OF NAME
+       JST     CN00    CALL NAME
+       JST     V5X     INPUT FORMAT
+       LDA     TC
+       SUB     K134
+       SZE             SKIP IF COMMA
+       JMP     V5B2
+       LDA     D
+       STA     V5T1
+       JMP     V5C5
+*
+*
+*             **************************
+*             *FORMAT                  *
+*             *INPUT FORMAT STRING     *
+*             *INPUT NUMERIC FORMAT STR*
+*             *NON ZERO TEST STRING    *
+*             **************************
+T0V2   PZE     0
+T2V2   PZE     0
+V2T0   EQU     T0V2
+V2T2   EQU     T2V2
+V2     LDA     K17
+       JST     OK00    OUTPUT RACK
+       CRA
+       STA     T0V2    T0 = 0
+       LDA     LSTP    IF LSTOP .NE. 0
+       SZE
+       JMP     V2K     GO TO V2K
+V2A    JST     SI00    INPUT FORMAT STRING
+       SZE
+       JMP     V2B
+V2A1   LDA     TC
+       SUB     K12     IF TC NOT MINUS
+       SZE
+       JMP     V2F     GO TO V2F
+       JST     IN00    INPUT NUMERIC FORMAT STRING
+       CRA
+       STA     TID     TID = 0
+V2B    LDA     TC      IF TC .NE. P
+       SUB     K46
+       SZE
+       JMP     V2H     GO TO V2H
+       JST     SI00    INPUT FORMAT STRING
+       SZE
+       JST     NZ00    IF (A) .NE. 0
+V2C    LDA     TC
+       CAS     K52     IF TC = D,E,F, OR G
+       NOP
+       JMP     *+2
+       JMP     V2DA
+       CAS     K53
+       JMP     V2E5-2
+       NOP
+       JST     IN00    INPUT NUMERIC FORMAT STRING
+       JST     NZ00    NON-ZERO STRING TEST
+       LDA     K10
+       JST     TS00    PERIOD TEST
+V2D    JST     IN00    INPUT NUMERIC FORMAT STRING
+V2DA   LDA     TC      IF TC = )
+       SUB     K4
+       SZE
+       JMP     V2E
+       JST     CH00
+       JST     OK00    INPUT CHAR AND OUTPUT PACK
+       LDA     T0V2    IF F4 + ( = (
+       SUB     K101    GO TO V2E
+       STA     T0V2
+       SPL
+       JMP     V2N     ELSE,
+       JMP     V2DA
+*                      GO TO C/R TEST
+V2E    LDA     TC      IF TC =,
+       SUB     K5
+       SNZ
+       JMP     V2A     GO TO V2A
+       LDA     K9
+       JST     TS00    / TEST
+       JMP     V2A
+V2E5   JST     SI00    INPUT FORMAT STRING
+       SZE             IF (A) NOT 0,
+       JMP     V2B     GO TO V2B
+       LDA     DFL     IF DFL .NE. ZERO,
+       SZE
+       JMP     V2DA    GO TO V2DA
+       JMP     V2A1
+V2F    LDA     TC      IF TC = H
+       CAS     K48
+       JMP     *+2
+       JMP     V2P     GO TO V2P
+V2FB   CAS     K47
+       JMP     *+2
+       JMP     V2E5
+       CAS     K17     IF TC = (,
+       JMP     *+2
+       JMP     V2Q     GO TO V2Q
+       LDA     TC      IF TC .NE. A,I, OR L
+       CAS     K49     A
+       JMP     *+2
+       JMP     V2G
+       CAS     K50     I
+       JMP     *+2
+       JMP     V2G
+       SUB     K51     L
+       SZE
+       JMP     V2C
+V2G    JST     IN00    INPUT NUMERIC FORMAT STRING
+       JST     NZ00    NON-ZERO STRING TEST
+       JMP     V2DA
+V2H    JST     NZ00    NON-ZERO STRING TEST
+       LDA     TC      IF TC = H,
+       SUB     K48
+       SZE
+       JMP     V2F
+V2J    JST     HS00    TRANSMIT HOLLERITH STRING
+       JMP     V2E5    GO TO V2E5
+V2K    LDA     LSTN    IF LSTN = 0,
+       SZE
+       JMP     *+3
+       JST     ER00    ERR0R, NO PATH
+       BCI     1,NF    NO REFERENCE TO FORMAT STATEMENT
+       LDA     RPL     LIF = RPL
+       STA     LIF
+       CRA
+       STA     A
+       STA     AF
+       AOA
+       STA     DF
+       LDA     K201    = JMP 0
+       JST     OA00    OUTPUT ABS
+       JMP     V2A     GO TO V2A
+*
+NZ00   DAC     **
+       LDA     TID
+       SZE
+       JMP*    NZ00
+NZ10   JST     ER00
+       BCI     1,NZ    NON-ZERO STRING TEST FAILED
+IN00   DAC     **
+       JST     SI00    (A) = 0 IS ERROR CONDITION
+       SZE
+       JMP*    IN00
+       JMP     NZ10
+SI00   DAC     **
+       CRA
+       STA     TID     ID = T2 = 0
+SI05   STA     V2T2
+       JST     CH00    INPUT CHAR
+       JST     OK00    OUTPUT PACK
+       LDA     TC
+       SUB     K60     ASC-2 ZERO
+       CAS     K124
+       JMP     SI10
+       NOP
+       SPL
+       JMP     SI10
+       STA     TC
+       LDA     TID     TID = 10*TID+TC
+       ALS     3
+       ADD     TID
+       ADD     TID
+       ADD     TC
+       STA     TID
+       LDA     K101    T2 =1
+       JMP     SI05
+SI10   LDA     V2T2    (A) = ERROR CONDITION OR NOT
+       JMP*    SI00
+V2M    JST     ER00
+       BCI     1,FR    FORMAT STATEMENT ERROR
+V2N    EQU     A1
+V2P    LDA     K101
+       STA     ID      ID = 1
+       JMP     V2J     GO TO V2J
+V2Q    LDA     T0V2
+       AOA
+       STA     T0V2
+       SUB     K103
+       SZE
+       JMP     V2A
+       JMP     V2M
+K46    OCT     320     0P
+K47    OCT     330     0X
+K48    EQU     K14     0H
+K49    OCT     301     0A
+K51    OCT     314     0L
+K52    EQU     K11     0D
+K53    OCT     307     0G
+K50    EQU     K43     0I
+*
+*
+*             *******
+*             *STOP *
+*             *PAUSE*
+*             *******
+*          PAUSE AND STOP GENERATE CALLS TO F$HT
+T1W7   PZE     0
+T2W7   PZE     0
+W7     LDA     K55
+       STA     T1W7
+W7A    LDA     K74
+       STA     NAMF+1  NAMF = F$HT
+       JST     NF00    SET-UP REMAINING CHAR 0F NAME
+       JST     XN00    EXAMINE NEXT CHAR
+       LDA     TC
+       SUB     CRET
+       SNZ
+       JMP     W7C     TC = C/R - NOTING FOLLOWING
+       JST     IV00    INPUT INTEGER/VARIA8LE
+       LRL     32
+       LDA     K200    OUTPUT LDA
+       JST     OB00    OUTPUT OA
+W7C    JST     CN00    CALL NAME
+       CRA
+       STA     DF      DF = 0
+       LDA     T1W7
+       STA     ID
+       JST     AI00    ASSIGN INTEGER CONSTANT
+       CRA             OUTPUT DAC
+       JST     OB00    OUTPUT OA OF ST/PA OR HT
+       LDA     T1W7
+       SUB     K54
+       SNZ
+       JMP     C5      PA-NOT THE CASE
+       LDA     RPL
+       STA     AF      OUTPUT  JMP *
+       CRA  
+       STA     A       CAUSE LISTING TO HAVE OCTAL ADDRESS
+       LDA     K201
+       JST     OR00    OUTPUT RELATWE
+       JMP     B6
+W8     LDA     K54
+       JMP     W7+1
+K74    BCI     1,HT    HT
+K54    BCI     1,PA    PA
+K55    BCI     1,ST    ST
+*
+*
+*   -      R8   CALL
+*          GENERATES CALL DIRECTLY OR USES EXPRESSION TO
+*               ANALYZE AN ARGUMENT LIST.
+R8     JST     SY00    INPUT SYMBOL
+       LDA     IU
+       SUB     K101    =1  (SUB)
+       SZE             SKIP IF IU=SUBR,
+       JST     TG00    TAG SUB PROCRAM
+       LDA     TC
+       SUB     K17     ='250  ( ( )
+       SZE
+       JMP     *+3
+G2B    LDA     K101    SET A=1 BEFORE EXPRESSION
+       JMP     G2A
+       CRA
+       IAB             (B)=0
+       LDA     OMI2    =JST INSTR,
+       JST     OB00    OUTPUT OA
+       JMP     A1      CR TEST
+*             **********************
+*             *ASSIGNMENT STATEMENT*
+*             **********************
+G2     LDA     K104
+       JST     NP00    FIRST NON-SPEC CHECK
+       JST     II00    INPUT ITEM
+       LDA     K102    SET A = 2 BEFORE EXPRESSION
+G2A    TCA
+       JST     EX00
+       JMP     A1
+*
+*
+*              ********
+*              *RETURN*
+*              ********
+*           OPTIMIZES EXIT CODING FOR FUNCTIONS TO MINIMIZE
+*                FETCHES OF THE FUNCTION VALUE.
+R9     LDA     SBF     A = SBF.
+       STA     A       IF ZERO, GO TO ERROR
+       SZE
+       JMP     *+3
+       JST     ER00
+       BCI     1,RT    RETURN NOT ALLOWED IN MAIN PROGRAM
+       LDA     SFF     ELSE, IF SFF = 0,
+       SNZ
+       JMP     R9C     GO TO R9C
+       CAS     K101    IF SFF = 1, GO TO R98
+       JMP     *+2
+       JMP     R9B
+       STA     AF      OUTPUT REL JMP TO 1ST RETN
+       LRL     32
+       STA     A       SET A=0 TO OUTPUT OCTAL ADDR ON LISTING
+       LDA     K201
+       JMP     R9A
+R9B    IAB
+       LDA     RPL     SFF = RPL
+       STA     SFF
+       LDA     K56     OUTPUT ITEM (F,A)
+       JST     OM00
+R9C    LRL     32
+       STA     A       SET FOR OCTAL ADDHESS IN LISTING
+       STA     AF      SET RELATIVE ADDRESS TO ZERO
+       LDA     K206    JUMP I, 0
+R9A    JST     OR00    OUTPUT REL
+       JMP     B6      EXIT
+K56    OCT     31      P CODE FOR 'F'  (FETCH)
+*
+*
+*             ********************
+*             *STATEMENT FUNCTION*
+*             ********************
+*          OLD ASSIGN VALUES ARE SAVED IN SFTB AND ARE
+*               RESTORED AT COMPLETION.
+G1T0   PZE     0
+G1T1   PZE     0
+G1     LDA     K103    (A) = 3
+       JST     NP00    FIRST NON-SPEC CHECK
+       JST     SY00    INPUT SYMBOL
+       JST     LO00    DEFINE LOCATION
+       LDA     K103
+       STA     I
+       JST     GE00    GENERATE SUBPROGRAM ENTRANCE
+       LDA     I
+       STA     G1T1    T1 = I
+       LDA     K16X    '=' TEST
+       JST     TS00
+       JST     II00    INPUT ITEM
+       CRA
+       JST     EX00    EXPRESSION
+       LDA     G1T1
+       STA     I       I = T1
+       IRS     TCF     TCF = TCF+1
+G1A    JST     STXI
+       LDA     SFTB+2,1
+       STA     A
+       LDA     SFTB+0,1
+       IAB
+       JST     STXA    SET R TO A
+       IAB
+       STA     DP,1
+       JST     STXI    SET R TO I
+       LDA     SFTB+1,1
+       IAB
+       JST     STXA    SET R TO A
+       IAB
+       STA     DP+1,1
+       LDA     I
+       SUB     K103    I = I-3 = 0
+       STA     I
+       SUB     K103
+       SZE
+       JMP     G1A     NO, GO TO G1A
+       LDA     T1NP
+       STA     A
+       LLL     16
+       LDA     OMJ1
+       JST     OB00
+       JST     TG00    TAG SUBPROGRAM
+       JMP     A1      GO TO C/R TEST
+*   -          W5   END
+*              ***************
+*              *END PROC6SSOR*
+*              ***************
+*           FIRST CHECK SUBPROGRAMS FOR CORRECT USAGE, THEN
+*                GENERATE MAP AND STRING BACK VARIABLES
+*                AND CONSTANTS.
+T1W5   PZE
+W5     LDA     BDF     IF   BLOCK DATA,
+       SZE
+       JMP     W5K     GO TO W5K
+       LDA     SBF     IF SBF NOT ZERO
+       STA     A       INDICATES SUBROUTINES
+       SZE             OR FUNCTION,
+       JMP     W5M     GO TO W5M
+W5B    CRA
+       STA     A       A=J=0
+       JMP     W5H
+W5D    JST     FA00    FETCH ASSIGNS
+       JST     STXA
+       LDA     NT
+       SZE             IF NT=1 (CONSTANT)
+       JMP     W5O     GO TO W5O
+       LDA     IU
+       SUB     K101    IF IU=1
+       SZE             INDICATES VARIABLE,
+       JMP     W5T     GO TO W5T
+W5F    LDA     RPL     SAVE RPL
+       STA     T1W5    RPL=-AF (INHIBIT LISTING)
+       LDA     AF
+       SSM
+       STA     RPL
+       CRA
+       JST     OR00    OUTPUT REL
+       LDA     T1W5    RESTORE RPL
+       STA     RPL
+W5H    LDA     A       A=A+5
+       ADD     K105
+       STA     A
+       SUB     ABAR    IF A=ABAR, (DONE)
+       SUB     K105
+       SZE
+       JMP     W5D     ELSE, GO TO W5D
+W5J    JST     FS00    FLUSH BUFFER
+       LDA     SBF
+       SZE
+       LDA     W5Z1
+       ERA     W5Z2
+       STA     OCI
+       LDA     SBF
+       SZE
+       LDA     W5Z3
+       STA     OCI+1
+       LDA     K106
+       STA     OCNT
+       JST     FS00
+       JMP     A051    GO TO INITIALIZE
+W5K    LDA     RPL     IF RPL NOT ZERO,
+       SNZ
+       JMP     W5J
+       JST     ER00    ERROR-CODE GENERATED
+       BCI     1,BD    IN A BLOCK DATA SUBPROGRAM
+W5M    JST     FA00    FETCH ASSIGNS
+       LDA     SFF     IF FUNCTION,
+       SZE
+       JMP     W5N     GO TO W5N
+       JST     NU00    NO USE TEST
+       JST     STXA
+       LDA     DP,1    IF NO ERROR,
+       SSM             NT(A)=1
+       STA     DP,1
+       JMP     W5B     GO TO W5B
+W5N    LDA     IU
+       SUB     K102    IU MUST BE VAR/CON,
+       SNZ             ELSE,
+       JMP     W5B
+       JST     ER00    ERROR-FUNCTION
+       BCI     1,FD    NAME NOT DEFINED BY AN ARITHM. STATEMENT
+W5O    LDA     IU      IF IU=VAR/CON
+       SUB     K102
+       SZE
+       JMP     W5H
+       LDA     AT      AND AT = STR/REL
+       SUB     K103    A "STRING" REQ'D.
+       SZE
+       JMP     W5H
+W5P    LDA     D0      IF D0 IS 4, THE
+       SUB     K104    CONSTANT IS COMPLEX,
+       SZE             OTHERWISE
+       JMP     W5Q     GO TO W5Q
+       LDA     AF
+       JST     OS00    OUTPUT STRING
+       JST     STXA
+       LDA     DP+2,1  OUTPUT 4 WORDS
+       JST     W5X     OF CONSTANT
+       LDA     DP+3,1
+       JST     W5X
+       LDA     NT
+       SNZ
+       JMP     W5S
+       LDA     A       INCREMENT A
+       ADD     K105
+       STA     A
+       JST     STXA
+       JMP     W5S
+W5Q    LDA     AF
+       JST     OS00    OUTPUT STRING
+       JST     STXA
+       LDA     D0      IF DO=1,
+       SUB     K101    INDICATES INTEGER,
+       SNZ
+       JMP     W5R     GO TO W5R
+W5S    LDA     DP+2,1  OUTPUT TWO WORDS
+       JST     W5X     FLOATING POINT CONSTANT
+       LDA     DP+3,1
+       JST     W5X
+       LDA     D0      IF DOUBLE PRECISION,
+       SUB     K103
+       SZE
+       JMP     W5H
+W5R    LDA     DP+4,1  OUTPUT THE 3RD WORD
+       JST     W5X
+       JMP     W5H     GO TO W5H
+W5T    LDA     AT
+       CAS     K103
+       JMP     W5F     STRUNG VARIABLE (IU=NON 0)
+       JMP     W5T5
+       CAS     K102    TEST FOR STG ABS ADDRESS
+       OCT     17400
+       JMP     *+2
+       JMP     W5F     NO
+       LDA     DP+4,1  TEST FOR PREFIX G
+       ANA     *-4
+       SUB     *-5
+       SZE
+       JMP     W5F     STRUNG VARIABLE (IU=NON 0)
+W5T5   LDA     IU
+       SZE
+       JMP     W5P
+       JST     ER00
+       BCI     1,US
+W5X    DAC     **
+       LRL     16
+       STA     DF
+       IAB
+       JST     OA00    OUTPUT ABS
+       JST     STXA    REST "A"
+       JMP*    W5X     EXIT
+W5Z1   EQU     K100    000377
+W5Z2   EQU     K122    040000
+W5Z3   EQU     K116    177400
+*
+*
+*
+*
+*
+*             ************************
+*             *INPUT CHAR/OUTPUT PACK*
+*             ************************
+PO00   DAC     **
+       JST     CH00    INPUT CHAR
+       JST     OK00    OUTPUT PACK
+       JMP*    PO00    RETURN
+*             ************************
+*             *TRANS HOLLERITH STRING*
+*             ************************
+*          FORM HOLLERITH STRING, CHARACTER COUNT IN ID 0N
+*               ENTRY. C/R WILL ALSO TERMINATE STRING.
+HS00   DAC     **
+HS10   JST     IC00    INPUT 1 CHARACTER
+       CAS     CRET    CHECK FOR CHAR = C/R
+       JMP     *+2
+       JMP     HS15    HOLLERITH STRING EXTENDS PAST END 0F CARD
+       JST     OK00    OUTPUT PACK THE CHARACTER
+       LDA     ID
+       SUB     K101    REDUCE CHARACTER COUNT BY 1
+       STA     ID
+       SZE
+       JMP     HS10    INPUT MORE CHARACTERS
+       JMP*    HS00
+HS15   JST     ER00
+       BCI     1,HS    HOLLERITH STRING EXTENDS OVER STATEMENT
+*
+*
+*             **********
+*             *DO INPUT*
+*             **********
+*          SET UP DO TABLE ENTRIES.
+DP00   DAC     **
+       LDA     D       D = D+5
+       ADD     K105    IFLG = NON-ZERO
+       STA     IFLG
+       STA     D
+       ADD     DO      I = DO+D
+       STA     I
+       JST     STXI
+       LDA     A       DP (1-4) = (B)
+       STA     DP-2,1  DP (1-2) = A
+       IAB
+       STA     DP-4,1
+       JST     IV00    INPUT INT VAR/CON
+       LDA     K134    = ,
+       JST     TS00    COMMA TEST
+       JST     STXI
+       LDA     A
+       STA     DP,1    DP(I) = INITIAL VALUE POINTER
+       JST     IV00    INPUT INT VAR/CON
+       JST     STXI
+       LDA     A
+       STA     DP-1,1  DP (I-1) = A - FINAL VALUE POINTER
+       LDA     TC
+       SUB     K134    = ,
+       SZE             IF THIRD TERM
+       JMP     DP20
+       JST     IV00    READ AND ASSIGN,
+DP10   JST     STXI
+       LDA     A
+       STA     DP-3,1  DP(I-3) = INCREMENT POINTER
+       CRA
+       STA     IFLG    CLEAR IFLAG
+       JMP*    DP00    EXIT
+DP20   LDA     K101
+       STA     ID      THIRD TERM = 1
+       JST     AI00    ASSIGN CONSTANT
+       JMP     DP10
+*              ***************
+*              *DO INITIALIZE*
+*              ***************
+*           GENERATE DO INITIALIZATION CODE.
+DS00   DAC     **
+       JST     STXI    ESTABLISH I
+       LDA     DP,1    A = DP (I)
+       STA     A
+       LDA     K200
+       JST     DS20    LOAD - LDA INITIAL VALUE
+       LDA     DP-2,1
+       STA     A       A = DP (I-2)
+       LDA     RPL
+       STA     DP,1    SET RETURN ADDRESS INTO DP(I)
+       LDA     K202
+       JST     DS20    STORE - STA VARIABLE NAME
+       JMP*    DS00
+*                      OUTPUT OA SUBROUTINE
+DS20   DAC     **
+       IAB
+       LLL     16      SET B = 0
+       JST     OB00    OUTPUT OA
+       JST     STXI    RESTORE I
+       JMP*    DS20    RETURN
+*
+DS90   PZE     0
+*
+*             ****************
+*             *DO TERMINATION*
+*             ****************
+*          GENERATE DO TERMINATION CODE.
+DQ00   DAC     **
+       JST     STXI
+       LDA     DP-2,1
+       STA     A
+       LDA     K200
+       JST     DS20    OUTPUT LDA VARIABLE NAME
+       LDA     DP-3,1
+       STA     A
+       LDA     K203
+       JST     DS20    OUTPUT ADD INCREMENT
+       LDA     DP-1,1
+       STA     A
+       LDA     OMK9
+       JST     DS20    OUTPUT CAS FINAL VALUE
+       CRA
+       STA     A
+       LDA     RPL
+       ADD     K103
+       STA     AF
+       LDA     DP,1
+       STA     DS90
+       LDA     OMI5    JUMP *+3
+       JST     OR00    OUTPUT REL
+       LDA     DS90
+       STA     AF
+       LDA     OMI5    JMP RPL (SAVED) - POINTS TO 'STA' INST.
+       JST     OR00    OUTPUT REL
+       LDA     OMI5    OUTPUT JMP RPL (SAVED)
+       JST     OR00    OUTPUT REL
+       JMP*    DQ00
+*             ************
+*             *EXPRESSION*
+*             ************
+*          THE RESULTANT OUTPUT IS A BUILT UP AOIN
+*               TABLE THAT IS FURTHER PROCESSED BY SCAN.
+T0EX   PZE     0
+EXT0   EQU     T0EX
+T1EX   PZE     0
+T2EX   PZE     0
+T3EX   PZE     0
+T5EX   PZE     0
+T6EX   PZE     0
+EXT7   PZE     0
+T9EX   PZE     0
+EX00   DAC     **
+       STA     F       F = (A)
+       LDA     A       SAVE POINTER TO FIRST VARIABLE
+       STA     TRFA      FOR LATER POSSIBLE TRACING
+       LDA     D       I = D+DO+10
+       ADD     DO
+       ADD     K125    =8
+       STA     I
+       JST     EX99    DATA POOL CHECK
+       JST     STXI
+       CRA
+       STA     EXT0    T0 = 0
+       STA     B       B = 0
+       STA     EXT7    T7 = 0
+       ADD     EX92+12
+       LGL     9       O(1-2) = '='
+       STA     DP-1,1  O (I) = 0
+       CMA
+       STA     IFLG    IFLG NOT 0
+       LDA     L0
+       STA     DP-2,1  O(I-2) = LO
+EX10   JST     STXI
+       CRA
+       STA     T1EX    T1 = 0
+       STA     DP,1    AOIN(I) = T(1) = 0
+       STA     DP+1,1
+       LDA     IM      IF IM NOT ZERO,
+       SZE
+       JMP     EX50    GO TO EX50
+       LDA     K106
+       TCA
+       STA     0
+*                      PERFORM TABLE SEARCH
+EX11   LDA     TC      GO TO ROUTINE ACCORDING
+       SUB     EX90+6,1        TO TC.
+       SNZ             IF NO MATCH, ERROR
+       JMP     EXI1
+       IRS     XR
+       JMP     EX11
+       JST     STXI
+       LDA     LIBF    SPECIAL LIBRARY FLAG
+       SZE
+       JMP     EX39
+       JMP     EX95    ERROR CONDITION
+EXI1   LDA     EX91+6,1
+       STA     0
+       JMP     0,1     PROCESS LEADING OPERATOR
+*              SPECIAL OPERATOR FLAG SET WHEN COMPILING THE FORTRAN
+*                 LIBRARY IN WHICH CASE THE OPERATIONS (  A=  ) AND
+*                  (  =A  ) ARE REQUIRED.  THIS LOGIC WILL ALLOW THESE
+*              TO BE PROCESSED WITHOUT GIVING AN ERROR MESSAGE IF THE
+*                  SPECIAL LIBRARY FLAG (LIBF) IS SET TO NON-ZERO.
+*
+EX12   LDA     B       TC = (
+       ADD     K109    B = B+16
+       STA     B       SXF = NON-ZERO
+       STA     SXF
+EX14   JST     II00    INPUT ITEM
+       JST     STXI
+       JMP     EX10    GO TO EX10
+EX16   JST     STXI    TC = *
+       LDA     TC
+       LGL     9       OI (I-2) = *, B+13
+       ADD     B
+       ADD     K129
+       ERA     DP-1,1
+       SSP
+       SNZ
+       JMP     *+3
+       JST     ER00    NO, CONSTR ERROR
+       BCI     1,PW    * NOT PRECEDED BY ANOTHER *
+       LDA     K109    (E = '20)
+       LGL     9
+       IMA     DP-1,1
+       ANA     K118    ='777
+       ADD     K101
+       ERA     DP-1,1  CHANGE * TO **
+       STA     DP-1,1
+       JMP     EX14    GO TO EX14
+EX18   LDA     K102    =2
+       STA     TC      SET TC TO -
+       LDA     K125    =8
+       STA     T1EX    T1 = 8
+       JST     STXI
+       LDA     DP-1,1
+       ANA     K118
+       SUB     B       8 .GT. I (I-2) -B
+       SUB     T1EX
+       SPL
+       JMP     *+3
+EX19   JST     ER00    NO, ERROR
+       BCI     1,NT    LOGICAL .NOT. NOT A UNARY OPERATOR
+EX20   LDA     T0EX    YES
+       SZE             T (0) = 0
+       JMP     EX34
+EX22   LDA     B       YES,
+       ADD     F       B + + (5) .GT. 0
+       SPL             NO, ERROR
+       JMP     EX96
+EX24   JST     STXI
+       LDA     TC
+       LGL     9
+       ADD     T1EX
+       ADD     B
+       STA     DP+1,1  OI(I) = TC , T1+B
+       JST     EX99    DATA POOL CHECK
+       JMP     EX14
+EX26   JST     STXI
+       LDA     DP-1,1
+       ANA     K118    IF I (I-2) .LT. B
+       CAS     B
+       JMP     EX97    ERROR-----MULTIPLE + OR - SIGNS
+       NOP
+EX30   LDA     K131    SET INDEX TO
+       STA     0       SEARCH OPERATOR TABLE FOR TRAILING
+EX31   LDA     EX92+14,1       OPERATOR AFTER HAVING ENCOUNTERED AN
+       SUB     TC      ITEM 0R A NEGATE.
+       SZE
+       JMP     EX32
+       LDA     EX93+14,1
+       STA     *+3
+       JST     STXI
+       JMP*    *+1
+       DAC     **
+EX32   IRS     XR      CONTROL OPERATOR LOOP
+       JMP     EX31    CONTINUE
+EX34   LDA     B       IF B = 0
+       SUB     EXT7
+       SZE
+       JMP     EX40    NO, GO TO EX40
+       LDA     T0EX    IF T (0) = 0
+       SZE
+       JMP     EX38    NO, GO TO EX38
+EX35   CRA
+       STA     IFLG    IFLG = 0
+       LDA     F
+       AOA
+       SMI             F . GE. -1
+       JMP     EX36    YES
+       JMP*    EX00    RETURN - NO
+EX36   JST     CA00    SCAN
+       JST     OT00    OUTPUT TRIADS
+       JMP*    EX00    RETURN
+EX38   JST     STXI
+       LDA     B
+       SUB     K109
+       STA     B
+       LDA     K103
+       STA     MFL
+       LDA     T0EX
+       LGL     9       O (I) = T (0)
+       ADD     B       I (I) = B+9
+       ADD     K124    I = I+2
+       STA     DP+1,1
+       JST     EX99    DATA POOL CHECK
+       CRA
+       STA     T0EX    T0 = 0
+       STA     EXT7    T7 = 0
+EX39   LDA     L0
+       STA     A       A = LO
+       STA     IM      IM NOT EQ 0
+       JMP     EX10
+EX40   LDA     TC      TC 0 ,
+       CAS     K5      ='254 (,) IN BCD MODE
+       JMP     *+2
+       JMP     EX41
+       SUB     K134    =17
+       SZE
+       JMP     EX44    NO, GO TO EX44
+EX41   LDA     I
+EX42   SUB     K102
+       STA     XR      B VS. I (J)
+       LDA     DP+1,1
+       ANA     K118
+       CAS     B
+       JMP     *+3
+       JMP     EX24    EQUAL, GO TO EX24
+       JMP*    EX00    LESS, RETURN
+       LDA     XR      GREATER, REPEAT LOOP
+       JMP     EX42
+EX44   JST     IP00    ) - INPUT OPERATOR
+       JMP     EX30    GO TO EX30
+EX46   LDA*    A
+       STA     T6EX    IF O1(O1(A)) = L(0)
+       LDA*    T6EX
+       CAS     L0
+       JMP     *+2
+       JMP     EX34    GO TO EX34
+       STA     O2      O2 = LO
+EX48   JST     ET00    ENTER TRIAD
+       JMP     EX34
+EX50   JST     STXI
+       LDA     A       A(I) = A
+       STA     DP,1
+       LDA     IU      IU = SUB OR ARR
+       SLN
+       JMP     EX30    NO, GO TO EX30
+       LDA     TC
+       SUB     K17     TC = (
+       SZE
+       JMP     EX76    NO, GO TO EX76
+       LDA     B       YES, B = B+16
+       ADD     K109
+       STA     B
+       LDA     IU      IU = ARR
+       SUB     K103
+       SZE
+       JMP     EX75    NO, GO TO EX75
+       CRA
+       STA     DP,1    A(I) = 0
+       STA     X4      X4 = 0
+       STA     T3EX    T3 = 0
+       STA     K       T5 = A
+       LDA     D0
+       STA     T9EX    T9 = D0
+       LDA     A
+       STA     T5EX    T5 = A
+       LDA     AT
+       SUB     K105    AT = DUM
+       SZE
+       JMP     EX74    NO, GO TO EX74
+       CRA
+       STA     T2EX    YES, T (0) = 0
+       JST     EX99    DATA POOL CHECK
+       JST     STXI
+       LDA     A
+       STA     DP,1    A(I) = A
+       LDA     K132    OI (I) = A, 11
+       LGL     9
+       ADD     K124
+       STA     DP+1,1  I=9
+EX54   LDA     D0      IF D0 = 1, GO TO EX56
+       SUB     K101
+       SNZ
+       JMP     EX56
+       JST     EX99    DATA POOL CHECK
+       JMP     *+2
+EX55   IRS     K       K = K+1
+       LDA     K
+       STA     XR
+       LDA     X,1
+       STA     T6EX    T6 = X (K)
+       JST     STXI
+       LDA     T6EX
+       STA     DP,1    O(I) = *
+       LDA     K103    I (I) = T3+13
+       LGL     9       T3 = T3+16
+       ADD     T3EX    A (A) = T6
+       ADD     K129    =13
+       STA     DP+1,1
+       ANA     K118
+       ADD     K103
+       STA     T3EX    T3 = A(A)
+EX56   JST     IV00    INPUT INTEGER VARIABLE
+       JST     EX99    DATA POOL CHECK
+       JST     STXI
+       LDA     A       A(I) = A
+       STA     DP,1
+       LDA     NT
+       SZE
+       JMP     EX68    CONSTANT ENCOUNTERED
+       JST     UC00    UNINPUT COLUMN
+       JST     DN00    INPUT DO NOT ASSIGN
+       SNZ
+       JMP     EX57    IM = 0
+       SUB     K101
+       SNZ
+       JMP     EX57    IM * INTEGEH
+       JST     ER00
+       BCI     1,SU    SUBSCRIPT INCREMENTER NOT A CONSTANT
+EX57   JST     STXI
+       LDA     K101
+       LGL     9
+       ADD     T3EX
+       ADD     K127
+       STA     DP+1,1  O(1) = +, I(I) = T3+11
+       JST     EX99    DATA POOL CHECK
+EX58   LDA     T9EX
+       STA     D0      RESET D(0)
+       LDA     ID      SUBSCRIPT SIZE
+       SUB     K101    ID = ID-1
+       STA     ID
+       SNZ             IF ZERO, GO TO EX60
+       JMP     EX60
+       LDA     K
+       STA     0
+       LDA     D0,1    D(K) = 0
+       SNZ
+       JMP     EX67    YES - (DUMMY DIMENSION)
+       IAB
+       LDA     ID
+       JST     IM00
+       ADD     T2EX
+       STA     T2EX    T2 = T2+ID*D(K)
+EX60   LDA     T9EX
+       STA     D0      RESET D(0)
+       LDA     K
+       STA     0
+       LDA     X+2,1   X(K+2) = 0
+       SNZ
+       JMP     EX62    YES - FINISHED
+       LDA     K134    =17
+       JST     TS00    COMMA TEST
+       LDA     D0+1,1
+       IAB
+       LDA     D0,1
+       JST     IM00
+       STA     D0+1,1  D(K+1) = D(K+1)*D(K)
+       JMP     EX55
+EX62   JST     STXI
+       LDA     DP-1,1  DOES O(I-2) = *
+       SSP
+       LGR     9
+       CAS     K103
+       JMP     *+2
+       JMP     EX66    YES.
+       SNZ             NO.
+       JMP     EX64    O(I-2) = 0 - YES
+       CAS     K132    DOES O(I-2) = A
+       JMP     EX63
+       JMP     *+2     YES
+       JMP     EX63
+       LDA     T2EX    IS T2 = 0
+       SNZ
+       JMP     EX65    YES (DUMMY ARRAY (1,1,1))
+EX63   LDA     K101
+       STA     DP-1,1  OI(I-2) = 1
+       LDA     T2EX    A(I) = T2
+       STA     DP,1
+       LDA     K137    0='X' ('24),    I=2
+       STA     DP+1,1
+       CRA
+       STA     DP+3,1  OI(I+2) = 0
+       LDA     T5EX
+       STA     DP+2,1  A(I+2) = T5
+       JST     EX99    DATA POOL CHECK
+       JST     CA00    SCAN
+       LDA     O1
+       STA     A       A = O1
+       JST     STXA
+       LDA     DP+2,1  S(A) = NON-ZERO
+       SSM
+       STA     DP+2,1  S(A) = 1
+       JMP     EX44
+EX64   LDA     L0
+       STA     DP,1    A(I) = L0
+       JST     EX99    DATA POOL CHECK
+       JST     STXI
+       JMP     EX63
+EX65   LDA     I
+       SUB     K104
+       STA     I       I = I-4
+       LDA     T5EX
+       STA     DP-4,1  A (I) = T5
+       JMP     EX44
+EX66   LDA     I
+       SUB     K102
+       STA     I       I = I-2
+       JMP     EX62    ASSIGN INT CONSTANT
+EX67   JST     AI00
+       JST     STXI    SET XR TO I
+       LDA     A
+       STA     DP,1    A(I) = A
+       LDA     K101
+       LGL     9
+       ADD     T3EX
+       ADD     K127
+       STA     DP+1,1  OI(I) = +, T3+11
+       JST     EX99    DATA POOL CHECK
+       JMP     EX60
+EX68   LDA     TC      IS TC
+       CAS     K103    = *
+       JMP     *+2
+       JMP     *+2
+       JMP     EX58    NO
+       LGL     9
+       ADD     T3EX
+       ADD     K129    =13
+       STA     DP+1,1  OI(I) = *, T3+13
+       JST     IR00    INPUT INTEGER VAR/CON
+       JMP     EX56+1
+EX69   CRA             SET LISTING FOR OCTAL ADDR
+       STA     A
+       LDA     OMI5    JMP 0  INSTRUCTION
+       STA     DF      SET LISTING FOR SYMBOLIC A INSTR.
+       JST     OA00    OUTPUT ABSOLUTE
+       LDA     RPL
+       STA     O2
+       LDA     K138
+       STA     P       P = H
+       JST     ET00    ENTER TRIAD
+       JST     HS00    TRANSFER HOLLERITH STRING
+       LDA     CRET    (A) = C/R
+       JST     OK00    OUTPUT PACK
+       CRA
+       STA     0       SET LISTING FOR OCTAL ADDR.
+       STA     A       SET LISTING FOR OCTAL ADDR.
+       LDA     O2
+       SUB     K101
+       JST     OS00    OUTPUT STRING RPL-1
+       JST     CH00    INPUT CHARACTER
+       JST     FN00
+       JST     STXI    RESET INDEX TO I
+       LDA     L
+       STA     DP,1    A(I) = L
+       JMP     EX76
+EX74   LDA     AF
+       STA     T2EX    T2 = AF
+       JMP     EX54    GO TO EX54
+EX75   LDA     K134
+       STA     TC      TC = ,
+       JMP     EX24    GO TO EX24
+EX76   LDA     DP-1,1
+       LGR     9
+       ANA     K133
+       SUB     K134
+       SNZ
+       JMP     EX34    WITHIN AN ARGUMENT LIST
+       JST     ER00
+       BCI     1,AG    SUBROUTINE OR ARRAY NAME NOT IN ARG. LIST
+EX78   LDA     K127
+EX79   STA     T1EX    T (1) = 11
+       JMP     EX22
+EX80   LDA     K129    T (1) = 13
+       JMP     EX79
+EX81   LDA     K106
+       STA     T1EX    T (1) = 6
+       JMP     EX20
+EX82   LDA     K104    T (1) = 4
+       JMP     EX81+1
+EX83   LDA     T0EX    T (0) =0
+       SZE
+       JMP     EX84
+       LDA     TC      YES,
+       STA     T0EX    T (0) = TC
+       LDA     EX92+1
+       STA     TC      TC = -
+       LDA     B
+       ADD     K109
+       STA     B
+       STA     EXT7
+       LDA     *+2
+       JMP     EX79
+       DEC     -5
+EX84   JST     ER00    ERROR
+       BCI     1,RL    MORE THAN 1 RELATIONAL OPERATOR
+EX85   LDA     F
+       ADD     K102    T (5) = T (5) +2 = B = 0
+       STA     F
+       ADD     B
+       SNZ
+       JMP     EX24
+       JST     ER00    ERROR
+       BCI     1,EQ    MULTIPLE ='S, OR EXPRESSIUN TO LEFT OF =
+EX90   OCT     250     (
+       OCT     3       *
+       OCT     5       NOT
+       OCT     1       +
+       OCT     2       -
+       OCT     310     H
+EX91   DAC     EX12    (
+       DAC     EX16    *
+       DAC     EX18    NOT
+       DAC     EX26    +
+       DAC     EX26    -
+       DAC     EX69    H
+EX92   OCT     1       +
+       OCT     2       -
+       OCT     3       *
+       OCT     4       /
+       OCT     6       AND
+       OCT     7       OR
+       OCT     15      NE
+       OCT     12      EQ
+       OCT     14      GT
+       OCT     10      LT
+       OCT     13      GE
+       OCT     11      LE
+       OCT     16      =
+       OCT     16      = (ERROR)
+EX93   DAC     EX78    +
+       DAC     EX78
+       DAC     EX80    *
+       DAC     EX80    /
+       DAC     EX81    AND
+       DAC     EX82    OR
+       DAC     EX83    NE
+       DAC     EX83    EQ
+       DAC     EX83    GT
+       DAC     EX83    LT
+       DAC     EX83    GE
+       DAC     EX83    LE
+       DAC     EX85    =
+       DAC     EX34    NONE OF THESE
+EX95   JST     ER00
+       BCI     1,OP    MURE THAN ONE OPERATOR IN A ROW
+EX96   JST     ER00    ERROR
+       BCI     1,PA    OPERATOR MUST BE WITHIN PARENTHESES
+EX97   JST     ER00    ERROR
+       BCI     1,UO    MULTIPLE + OR - SIGNS NOT AS UNARY OPS
+*      BUMP THE I COUNT BY TWO AND CHECK FOR DATA OVERFLOW
+EX99   DAC     **
+       IRS     I
+       IRS     I
+       LDA     I
+       AOA
+       CAS     L
+       NOP
+       JMP     AS50
+       JMP*    EX99
+K133   OCT     77
+K130   DEC     -6
+K141   DEC     33
+K      PZE     0
+KM8    DEC     -8
+*
+*
+*
+*
+*             ******************
+*             *SCAN            *
+*             *TRIAD SEARCH    *
+*             *TEMP STORE CHECK*
+*             ******************
+T0CA   PZE     0
+T1CA   PZE     0
+T2CA   PZE     0
+T9CA   PZE     0
+*              THE AOIN TABLE IS PROCESSED FROM THE BOTTOM
+*                   UP AND ENTRIES ARE FORMED FOR INCLUSION
+*                   IN THE TRIAD TABLE. LEVELS ARE USED
+*                   TO CONTROL THE ORDER OF ENTRY INTO
+*                   THE TRIADS. SIGN CONTROL IS ALSO
+*                   ACCOMPLISHED IN THIS ROUTINE.
+CA00   DAC     **
+       LDA     L0
+       STA     ACCP    INDICATE EMPTY ACCUM
+CA04   JST     STXI    ESTABLISH I
+       STA     T1CA    T1 = I
+       LDA     DP-1,1
+       ANA     K118    IF I (I-2) = 0,
+*                      OR .LT. I (I)
+       STA     T9CA
+       LDA     DP+1,1
+       ANA     K118
+       CAS     T9CA
+       JMP     CA08    GO TO CA08
+       NOP
+       LDA     I
+       SUB     K102
+       STA     I       I = I-2
+       STA     0
+CA08   LDA     DP+3,1
+       ERA     DP+1,1
+       STA     T0CA
+       LDA     DP+1,1
+       ANA     K118
+       STA     T2CA
+       LDA     DP+1,1
+       SSP
+       LGR     9       P = O (I)
+       STA     P
+       CAS     K102    IF P IS NOT * OR /, GO TO CCA10
+       CAS     K105
+       JMP     CA10
+       JMP     CA10
+       JMP     CA14    GO TO CA14
+CA10   LDA     T0CA
+       SMI
+       JMP     CA13
+       LDA     KM8
+       IMA     XR
+       IAB
+       LDA     P
+       CAS     CA90+8,1
+       JMP     *+2
+       JMP     *+4
+       IRS     XR
+       JMP     *-4
+       JMP     CA45
+       LDA     CA91+8,1
+       STA     P
+       IAB
+       STA     XR
+CA13   LDA     K130
+       IMA     XR
+       IAB
+       LDA     P
+       CAS     CA90+8,1
+       JMP     *+2
+       JMP     CA50
+       IRS     XR
+       JMP     *-4
+       IAB
+       STA     XR
+       IAB
+       LDA     DP+1,1
+       JMP     *+2
+CA50   CRA
+       STA     T0CA
+       IAB
+       STA     XR
+CA14   LDA     DP,1
+       STA     O1      O1=A(I)
+       LDA     DP+2,1
+       STA     O2      O2 = A (I+2)
+       LDA     T2CA
+       SNZ
+       JMP     CA37    IF ZERO, GO TO CA37
+       LDA     DP-1,1
+       SSP
+       LGR     9
+       STA     T1CA
+       LDA     DP-1,1
+       ANA     K118    IF T2 .GT. I (I-2)
+       SUB     T2CA
+       SPL
+       JMP     CA18
+       SZE
+       JMP     CA04
+       LDA     O2
+       SUB     ACCP
+       SZE
+       JMP     CA04
+       LDA     P
+       SUB     K103
+       SMI
+       JMP     CA39
+       LDA     T1CA
+       SUB     P
+       SZE
+       LDA     K101    GO TO
+       ADD     K101    P = - OR +
+       STA     P
+CA18   LDA     I
+       STA     0       J=I
+CA20   LDA     DP+2,1
+       STA     DP,1    AOIN(J) = AOIN(J+2)
+       LDA     DP+3,1
+       STA     DP+1,1
+       SSP
+       SNZ
+       JMP     CA22
+       IRS     XR      J = J+2
+       IRS     XR
+       JMP     CA20
+CA22   JST     STXI
+       LDA     DP+1,1
+       SSP             IF O (I) = ,
+       LGR     9
+       CAS     P
+       JMP     CA24
+       CAS     K134
+       JMP     CA24
+       JMP     CA30    GO TO CA30
+CA24   JST     ST00    TRIAD SEARCH
+       LDA     P
+       CAS     K132    IF P = +,*, AND, OR
+       JMP     CA28
+       JMP     CA37    GO TO CA37
+       CAS     K107
+       JMP     CA28    ELSE, GO TO CA26
+       JMP     CA37
+       CAS     K106
+       JMP     CA28
+       JMP     CA37
+       CAS     K103
+       JMP     CA28
+       JMP     CA37
+       CAS     K101
+       JMP     CA26
+*
+*
+*
+       JMP     CA37
+CA26   CAS     K102
+       JMP     *+2     IF P = -
+       JMP     CA35    GO TO
+CA28   LDA     O1
+       JST     TC00    TEMP STORE CHECK
+CA30   LDA     O2
+       JST     TC00    TEMP STORE CHECK
+CA31   JST     ET00    ENTER TRIAD
+CA32   JST     STXI
+       LDA     O1
+       STA     DP,1
+       LDA     DP+1,1
+       LRL     15
+       LDA     T0CA
+       LGR     15
+       LLL     15
+       STA     DP+1,1
+       LDA     T2CA    IF T2 NOT ZERO,
+       SZE
+       JMP     CA04    GO TO CA04
+       JMP*    CA00    ELSE, RETURN
+CA35   LDA     T0CA
+       ERA     ='100000
+       STA     T0CA
+CA37   LDA     O2
+       IMA     O1      O1 * = O2
+       STA     O2
+       SNZ             IF O2 = 0,
+       JMP     CA32    GO TO CA32
+*
+*
+*
+       JST     ST00    TRIAD SEARCH
+       LDA     T0CA
+       SMI
+       JMP     CA28    GO TO CA28
+       LDA     P
+       JMP     CA26    ELSE, GO TO CA26
+CA39   SUB     K128
+       SNZ             IF P = , OR
+       JMP     CA04
+       LDA     T1CA
+       SUB     K104
+       SZE             ELSE,
+       JMP     CA18    GO TO CA18
+       JMP     CA04
+CA45   LDA     T1CA
+       STA     I       I = T1
+       STA     T2CA
+       CRA
+       STA     T0CA    * * * * * * * * * * *
+       STA     O2      O2 = C = 0
+       SUB     K110    P = C
+       STA     P
+       JMP     CA24    GO TO CA24
+*              IF THE CURRENT TRIAD (IN WORKING STORAGE) MATCHES
+*                   ANY TRIAD TABLE ENTRY, EXIT WITH THE
+*                   POINTER VALUE OF THE MATCHING ENTRY
+*                   (THIS ACCOMPLISHES ELIMINATION OF REDUNDANT
+*                   SUBEXPRESSION CALCULATIONS.
+ST00   DAC     **      TRIAD SEARCH
+       LDA     F
+       ADD     K103
+       SZE
+       JMP     ST10    GO TO ST10
+ST05   LDA     P       ELSE, IF P = X
+       SUB     K139
+       SNZ
+       JMP     CA31    GO TO CA31
+       LDA     O1      ELSE, IF O1=ACCP
+       SUB     ACCP
+       SNZ
+       JMP     CA30    GO TO CA30
+       JMP*    ST00    ELSE, RETURN
+ST10   LDA     L0
+       STA     XR
+ST20   LDA     XR
+       SUB     K103
+       STA     XR      J = J-2
+       SUB     L       IF J .LT. L
+       SPL
+       JMP     ST05    GO TO ST05
+       LDA     O2
+       SUB     DP,1    IF O1/P/O2 .NE. O1/P/O2(J)
+       SZE
+       JMP     ST20    GO TO ST20
+       LDA     DP+2,1
+       SSP             EXTRACT OFF STORE BIT
+       SUB     P
+       SZE
+       JMP     ST20
+       LDA     O1
+       SUB     DP+1,1
+       SZE
+       JMP     ST20    O1 = J
+       LDA     XR
+       STA     O1
+       JST     STXI    ESTABLISH I
+       JMP     CA32    GO TO CA32
+*              IF J IS A REFERENCE TO A TRIAD , THE TEMP
+*                   STORE BIT OF THE REFERENCED TRIAD IS SET.)
+TC00   DAC     **      TEMP STORE CHECK
+       STA     XR
+       LDA     ABAR
+       SUB     XR
+       SMI             IS J .GR. ABAR
+       JMP*    TC00    NO.
+       LDA     DP+2,1  YES.
+       SSM
+       STA     DP+2,1  S(J) = 1
+       JMP*    TC00
+CA90   OCT     1,2,11,10,13,14,12,15
+CA91   OCT     2,1,13,14,11,10,12,15
+*
+*
+*             *************
+*             *ENTER TRIAD*
+*             *************
+*          STORE CURRENT TRIAD INTO THE NEXT TRIAD ENTRY
+*               LOCATION.
+ET00   DAC     **
+       JST     SAV
+       LDA     L
+       SUB     K103    =3
+       STA     L       L=L-3
+       STA     ACCP    SET ACCUM PTR TO LAST TRIAD ENTRY
+       STA     0       J=L
+       LDA     P
+       STA     DP+2,1  P(J) = P
+       LDA     O1
+       STA     DP+1,1  01(J) = 01
+       LDA     O2
+       STA     DP,1    02(J) = 02
+       LDA     0
+       STA     O1      O1=J
+       JST     RST
+       JMP*    ET00
+ACCP   DAC     **      ACCUM POINTER
+*
+*
+SFTB   BSS     36      SUBFUNCTION TABLE
+*              **************************
+*              *GENERATE SUBPRO ENTRANCE*
+*              **************************
+*           OUTPUT SUBPROGRAM ENTRANCE CODE , INCLUDING THE
+*                CALL TO ARGUMENT ADDRESS TRANSFER.
+T0GE   PZE     0
+GE00   DAC     **
+       CRA
+       STA     T0GE
+       LDA     K17     (  TEST
+       JST     TS00
+GE10   JST     NA00    INPUT NAME
+       LDA     I       IFF I=0,
+       SNZ
+       JMP     GE20    GO TO GE20
+       CAS     K141
+       NOP
+       JMP     GE30    MAKE ENTRY IN SFTB TABLE
+       ADD     K103
+       STA     I       IF FULL, GO TO GE30
+       JST     STXA    SET XR TO A
+       LDA     DP,1
+       IAB
+       JST     STXI    ESTABLISH I
+       IAB
+       STA     SFTB,1
+       JST     STXA    SET XR TO A
+       LDA     DP+1,1
+       IAB
+       JST     STXI    SET XR TO I
+       IAB
+       STA     SFTB+1,1
+       LDA     A
+       STA     SFTB+2,1
+       JST     STXA    SET XR TO A
+       CRA
+       STA     DP+1,1  CLEAR OLD USACE
+GE20   LDA     K105
+       IAB
+       LDA     RPL
+       ADD     T0GE
+       ADD     K103    (B) = DUM
+       JST     AF00    DEFINE AFT (A=RPL+T0+3)
+       IRS     T0GE    T0 = T0+1
+       LDA     K134
+       SUB     TC      IF TC = ,
+       SNZ
+       JMP     GE10    GO TO GE10
+       JST     IP00    INPUT OPERATOR
+       CRA
+       STA     DF
+       JST     OA00    OUTPUT ABS (0)
+       LDA     T0GE
+       STA     ID      ID = T0
+       LDA     K69
+       STA     NAMF+1  NAMF = AT
+       JST     NF00    FILL IN REMAINING NAME
+       JST     OL00    OUTPUT OBJECT LINK
+       LDA     T0GE
+       TCA
+       STA     T0GE
+       CRA
+       JST     OA00    OUTPUT NUMBER OF ARGS
+       IRS     T0GE    OUTPUT SPACE FOR ARG. ADDR.
+       JMP     *-3
+       JMP*    GE00    RETURN
+GE30   JST     ER00    CONSTR, ERROR
+       BCI     1,AE
+K69    BCI     1,AT    AT
+*
+*             ****************
+*             *EXCHANGE LINKS*
+*             ****************
+*          CL SUBA IS INTERCHANGED WITH CL SUBF
+EL00   DAC     **
+       JST     STXA
+       LDA     DP,1
+       STA     EL90    CL (F) == CL (A)
+       LDA     F
+       STA     0
+       JST     EL40
+       JST     STXA
+       JST     EL40
+       JMP*    EL00
+EL40   DAC     **
+       LDA     DP,1
+       IMA     EL90
+       ANA     K118
+       IMA     DP,1
+       ANA     K119
+       ADD     DP,1
+       STA     DP,1
+       JMP*    EL40
+EL90   PZE     0
+*
+*
+*             *****************
+*             *NON COMMON TEST*
+*             *****************
+NM00   DAC     **      NON-COMMON TEST
+       LDA     AT
+       SUB     K104
+       SZE
+       JMP*    NM00
+       JST     ER00
+       BCI     1,CR    ILLEGAL COMMON REFERENCE
+*
+*
+*             **************************
+*             *NON DUMMY OR SUBPRO TEST*
+*             **************************
+ND00   DAC     **
+       LDA     AT      TEST
+       SUB     K105
+       SZE
+       JMP     ND10
+       JST     ER00
+       BCI     1,DA    ILLEGAL USE OF A DUMMY ARGUMENT
+       JMP*    ND00
+ND10   JST     NS00
+       JMP*    ND00
+*
+*
+*             *****************
+*             *INPUT SUBSCRIPT*
+*             *****************
+SCT0   PZE     0
+SC00   DAC     **
+       STA     SCT0    T0 = (A)
+       CRA
+       STA     NS
+       STA     S2      NS = S2 = S3 = 0
+       STA     S3
+       LDA     K17     (-TEST
+       JST     TS00
+SC10   LDA     EBAR
+       SMI
+       JMP     SC15    EBAR .GR. 0
+       JST     XN00    EXAMINE NEXT CHAR.
+       SZE
+       JMP     SC70    IF (A) NON ZERO,
+SC15   JST     IG00    GO TO SC70
+       LDA     SCT0    INPUT INTEGER
+       SZE
+       SPL
+       JMP     SC60
+       LDA     ID
+       SUB     K101
+       JMP     SC30
+SC60   JST     AS00    ASSIGN ITEM
+SC20   LDA     A       S (NS+1) = A
+SC30   IAB
+       LDA     SC90
+       ADD     NS
+       STA     SC91
+       IAB             S(NS+1) = A
+       STA*    SC91
+       LDA     NS
+       AOA
+       STA     NS      NS = NS + 1
+       SUB     K103
+       SZE
+       JMP     SC50    MORE SUBSCRIPTS PERMITTED
+SC40   JST     IP00    )-INPUT OPERATOR
+       JMP*    SC00    RETURN
+SC50   LDA     TC
+       SUB     K134
+       SZE
+       JMP     SC40    TERMINATOR NOT A COMMA
+       JMP     SC10    G0 TO SC10
+SC70   JST     IR00    INPUT INT VARIABLE
+       LDA     SCT0    CHECK FOR NON-DUMMY
+       SNZ             VARIABLE DIMENSIONS
+       JMP     SC20
+       LDA     AT
+       SUB     K105
+       SNZ
+       JMP     SC20
+       JST     ER00
+       BCI     1,VD    ILLEGAL SYMBOLIC SUBSCRIPT
+SC90   DAC     S1
+SC91   DAC     **
+*
+*
+*             ********************
+*             *INPUT LIST ELEMENT*
+*             ********************
+*          IF THE ITEM IS AN ARRAY, PROCESS THE SUBSCRIPT
+IL00   DAC     **
+       JST     NA00    INPUT NAME
+       LDA     AT
+       SUB     K105    NON-DUMMY TEST
+       SZE
+       JMP     *+3
+       JST     ER00    USAGE ERROR
+       BCI     1,DD    DUMMY ITEM IN AN EQUIV. OR DATA LIST
+       LDA     IU      IF IU NOT ARR,
+       SUB     K103
+       SZE
+       JMP     IL30    GO TO IL30
+       LDA     K103
+       JST     SC00    INPUT SUBSCRIPTS
+       JST     FA00    FETCH ASSIGNS
+       LDA     ND      IF ND = NS
+       SUB     NS
+       SZE             S1 = D* (S1 + D1* (S2+D2*S3)
+       JMP     IL10    ELSE, GO TO IL10
+       LDA     S3
+       IAB
+       LDA     D2
+       JST     IM00
+       ADD     S2
+       IAB
+       LDA     D1
+       JST     IM00
+       ADD     S1
+       IAB
+       LDA     D0
+       JST     IM00
+       STA     S1
+       JMP*    IL00    RETURN
+IL10   LDA     NS      IF NS NOT 1
+       SUB     K101
+       SZE
+       JMP     IL20    GO TO IL20
+       LDA     S1      ELSE,   20
+       IAB             S1 * D0*S1
+       LDA     D0
+       JST     IM00
+IL18   STA     S1
+       JMP*    IL00    RETURN
+IL20   JST     ER00
+       BCI     1,ND    WRONG NUMBER OF DIMENSIONS IN ARRAY ELEMENT
+       JMP*    IL00    RETURN
+IL30   JST     TV00    TAG VARIABLE
+       CRA             S1 = 0
+       JMP     IL18    RETURN
+*
+*
+*             ************
+*             *FUNCTION  *
+*             *SUBROUTINE*
+*             ************
+*          IF LSTF IS ZERO, THE STATEMENT IS OUT OF ORDER
+*               FUNCTIONS ARE CHECKED TO ENSURE ARGUMENTS
+R1     LDA     K101
+       STA     SFF     SFF = 1
+R2     LDA     LSTF
+       SZE             IF LSTF = 0
+       JMP     R2A
+       JST     ER00    ILLEGAL STATEMENT
+       BCI     1,FS    NOT FIRST STATEMENT IN SUBPROGRAM
+R2A    JST     NA00    INPUT NAME
+       LDA     A
+       STA     SBF     SBF = A
+       CRA             ADDR=0, S/C CODE =0
+       JST     ON00    OUTPUT NAME BLOCK TO THE LOADER
+       LDA     MFL
+       SZE
+       JST     DM00    DEFINE IM
+       LDA     TC
+       SUB     CRET    IF TC NOT C/R
+       SZE
+       JMP     R2C     GO T0
+       LDA     SFF     IF SFF = 0
+       SNZ
+       JMP     R2D     GO TO R2D
+       JST     ER00    ERROR
+       BCI     1,FA    FUNCTION HAS NO ARGUMENTS
+R2C    CRA
+       STA     I       I = 0
+       JST     GE00    GENERATE SUBPROGRAM ENTRY
+       JMP     A1      GO TO C/R TEST
+R2D    CRA
+       JST     OA00    OUTPUT ABS
+       JMP     C6      GO TO CONTINUE
+*
+*
+*             ******************
+*             *INTEGER         *
+*             *REAL            *
+*             *DOUBLE PRECISION*
+*             *COMPLEX         *
+*             *LOGICAL         *
+*             ******************
+*          THE MODE FLAG (MFL) IS SET TO THE APPROPRIATE
+*               VALUE AND ANY ARRAY INFO IS PROCESSED
+A3     LDA     K101    INTEGER
+       JMP     A7A     TMFL = INT
+A4     LDA     K102    REAL
+       JMP     A7A     TMFL = REAL
+A5     LDA     K106    DOUBLE PRECISION
+       JMP     A7A     TMFL = DBL
+A6     LDA     K105    COMPLEX
+       JMP     A7A     TMFL = CPX
+A7     LDA     K103    LOGICAL
+A7A    STA     MFL     TMFL = LOG
+       LDA     LSTF    IF LSTF = 0, GO TO A7B (2)
+       SNZ
+       JMP     A7B     ELSE,
+       LDA     CC      SAVE CC
+       STA     A790
+       CRA
+       STA     ICSW
+       JST     DN00    INPUT DNA
+       LDA     A790    RESTORE CC
+       STA     CC
+       STA     ICSW    ICSW = IPL
+       LDA     DFL     IF DFL NOT = 0, GO TO A7B
+       SZE
+       JMP     A7B
+       LDA     TID     IF ID = FUNCTI,
+       SUB     A7K     GO TO A9
+       SNZ             SKIP IF NOT 'FUNCTION'
+       JMP     A9      FUNCTION PROCESSOR
+A7A5   JST     ER00    CONSTRUCTION ERROR
+       BCI     1,TF    'TYPE' NOT FOLLOWED BY 'FUNCTION' OR LIST
+A7K    BCI     1,FU    CONSTANT FOR 'FUNCTION' CHECK
+A7B    JST     NA00    INPUT NAME
+       LDA     MFL
+       JST     DM00    DEFINE IM
+       JMP     B7      GO TO INPUT DIMENSION
+A790   PZE     0
+*
+*
+*   -      B2   EXTERNAL
+*          TAGS NAME AS SUBPROGRAM
+B2     JST     NA00    EXTERNAL, INPUT NAME
+       JST     TG00    TAG SUBPROGRAM
+       JMP     B1      GO T0 , OR C/R TEST
+*
+*
+*             *****************
+*             *DIMENSION      *
+*             *INPUT DIMENSION*
+*             *****************
+*          PROCESS ARRAYS, PUT DIMENSION INFO IN SPECIAL
+*               ARRAY POINTER ITEM
+B3T0   PZE     0
+B3T1   PZE     0
+B3T2   PZE     0
+B3T3   PZE     0
+B3     JST     NA00
+B3A    LDA     AT      IF AT = DUM
+       SUB     K105    (A) = 0
+       SZE             ELSE (A) = .LT. 0
+       SSM
+B3B    STA     B3T0    T0 = (A)
+       LDA     AF
+       STA     B3T3    T3 = AF
+       LDA     A
+       STA     B3T1    T1 = A
+       LDA     AT      TEST FOR AT=DUMMY
+       SUB     K105    =5
+       SZE             SKIP NO-USAGE TEST IF DUMMY
+       JST     NU00    NO USAGE TEST
+       JST     STXA
+       LDA     DP+1,1  IU (A) = ARR
+       LRL     14
+       LDA     K103
+       LLL     14
+       STA     DP+1,1
+       LDA     B3T0    (A) = T0
+       JST     SC00    INPUT SUBSCRIPT
+       LDA     S1
+       STA     ID
+       LDA     S2      PLACE SUBSCRIPTS IN ID
+       STA     ID+1
+       LDA     S3
+       STA     ID+2
+       LDA     NS      (A) = 0, B = NS
+       LRL     16
+       JST     AA00    ASSIGN SPECIAL
+       JST     STXA
+       LDA     DP+1,1
+       LLR     2
+       LDA     B3T3
+       LGL     2
+       LRR     2
+       STA     DP+1,1  DEFINE GF TO GF(A)
+       LDA     A
+       STA     B3T2    T2 = A
+       LDA     B3T1
+       STA     A       A = T1
+       JST     STXA
+       LDA     DP+1,1
+       LLR     2
+       LDA     B3T2
+       LGL     2
+       LRR     2
+       STA     DP+1,1  DEFINE GF TO GF(A)
+B3D    LDA     TC
+       SUB     K104    IF TC NOT SLASH
+       SZE
+       JMP     B1      GO TO ,-C/R TEST
+       LDA     A9T2    IF SIDSW = COMMON-4
+       SUB     B4Z9
+       SZE             GO TO B4 (COMMON-0)
+       JMP     B1      ELSE, GO TO ,-C/R TEST
+       JMP     B40
+B7     LDA     TC      IF TC = (
+       SUB     K17
+       SZE
+       JMP     B3D
+       JMP     B3A
+*
+*
+*             ********
+*             *COMMON*
+*             ********
+*          INPUT BLOCK NAMES AND LINK THEM WITH THE
+*               FOLLOWING VAR/ARRAY NAMES. BLOCK NAMES
+*               ARE LINKED TOGETHER THROUGH THEIR GENERAL FIELDS
+B4     LDA     K81
+       STA     ID
+       STA     ID+1
+       STA     ID+2
+       LDA     B4Z9    SET SWITCH IN INPUT DIMENSION
+       STA     A9T2
+       JST     CH00    INPUT CHAR
+       SUB     K9      IF NOT SLASH
+       SZE             GO TO
+       JMP     B4E
+B40    JST     DN00    INPUT DNA
+       LDA     K104    SLASH TEST
+       JST     TS00
+B4B    LRL     32
+       LDA     K101    (A) = SUB, (B) = 0
+       JST     AA00    ASSIGN SPECIAL
+       LDA     CFL
+       SNZ
+       LDA     A
+       STA     CFL
+       LDA     A
+       STA     F
+       JST     FL00    FETCH LINK
+       SZE
+       JMP     B4D
+       LDA     CFL
+       STA     0
+       LDA     DP+1,1  GF(CFL)
+       IMA     A
+       STA     0       INDEX = A
+       IMA     A
+       STA     DP+1,1  GF(A) = GF(CFL)
+       LDA     CFL
+       STA     0       INDEX = CFL
+       LDA     A
+       ADD     K122    ='040000
+       STA     DP+1,1  GF(CFL) = A
+B4D    JST     NA00    INPUT NAME
+       JST     ND00    NON DUMMY/SUBPROG TEST
+       JST     NM00    NON-COMMON TEST
+       JST     EL00    EXCHANGE LINKS
+       LDA     DP,1
+       ANA     B4F     ='107777
+       ADD     K122    AT(A) = COM  (='040000)
+       STA     DP,1
+       JMP     B7
+B4E    JST     UC00    UNINPUT COLUMN
+       JMP     B4B
+B4Z9   DAC     B4D     GO TO INPUT DIMENSION
+B4F    OCT     107777  EXTRACT MASK TO STRIP OFF AT FIELD
+*
+*
+*             *************
+*             *EQUIVALENCE*
+*             *************
+*          STORE EQUIV INFO IN THE DATA POOL FOR LATER
+*               PROCESSING BY GROUP EQUIV (PART OF SPECS WRAPUP)
+B5     LDA     E0      L=NEXT WORD IN EQUIVALENCE TABLE
+       STA     I       I=L
+       SUB     K101    (=1)
+       STA     E0      L=L-1
+       SUB     ABAR
+       SMI
+       JMP     *+3
+       JST     ER00    DATA POOL FULL
+       BCI     1,MO    MEMORY OVERFLOW
+       JST     STXI    ESTABLISH I
+       CRA
+       STA     DP,1    DP (I) = 0
+B5B    JST     CH00
+       LDA     DP,1    INPUT CHAR
+       SZE
+       JMP     B5D
+       LDA     TC      PUT IN FIRST CHARACTER
+       LGL     8       PACK INTO DP (I)
+B5C    STA     DP,1
+       LDA     TC
+       SUB     CRET
+       SNZ
+       JMP     C6      CHARACTER E C/R - EXIT
+       LDA     DP,1
+       ANA     K100
+       SNZ
+       JMP     B5B     WORD NOT FULL
+       JMP     B5      OBTAIN NEW WORD
+B5D    LDA     TC      PUT IN SECOND CHARACTER
+       ERA     DP,1
+       JMP     B5C
+*
+*
+*             *********************
+*             *RELATE COMMON ITEMS*
+*             *********************
+*          ALL ITEMS LINKED TO A COMMON BLOCK ARE PROCESSED
+*               AND THEIR INVERSE OFFSETS CALCULATED. THESE
+*               WILL BE INVERTED LATER TO GIVE TRUE
+*               POSITION IN THE BLOCK.
+C2T0   PZE     0
+C2     LDA     CFL
+       STA     A       A = F = CFL
+C2A    CRA
+       STA     C2T0    T0 = 0
+       LDA     A
+       STA     F       F = A
+C2B    JST     FL00    FETCH LINK
+       SNZ
+       JMP     C2D
+       LDA     D0
+       ADD     C2T0    T0 = T0 + D0
+       STA     C2T0
+       JST     DA00    DEFINE ADDRESS FIELD
+       JMP     C2B
+C2D    JST     FL00    FETCH LINK
+       SZE
+       JMP     C2F
+       LDA     AF
+       STA     A       A = AF
+       SUB     CFL
+       SZE
+       JMP     C2A     AF = CFL, NO
+       JMP     C3      YES - GROUP EQUIVALENCE
+C2F    LDA     C2T0
+       SUB     AF      (A) = T0 - AF
+       JST     DA00    DEFINE AF
+       LDA     IU
+       SZE
+       JMP     C2D
+       JST     TV00    TAG VARIABLE
+       JMP     C2D
+* 
+*
+*              *******************
+*              *GROUP EQUIVALENCE*
+*              *******************
+*           THE EQUIV GROUPS ARE PROCESSED NOW. ANY COMMON
+*                USAGE IS CHECKED TO SEE THAT THE ORIGIN
+*                IS NOT MOVED AND THAT ONLY ONE ITEM IS
+*                COMMON.
+C3T0   PZE     0
+C3T1   PZE     0
+C3T2   PZE     0
+C3T3   PZE     0
+C3T4   PZE     0
+C3T5   PZE     0
+T0C3   EQU     C3T0
+T1C3   EQU     C3T1
+T2C3   EQU     C3T2
+T3C3   EQU     C3T3
+T4C3   EQU     C3T4
+C3     LDA     E0
+       STA     EBAR    EBAR=E(0) = END OF EQUIVALENCE TABLE
+       LDA     L0
+       STA     E       E=L(0) = START OF EUUIVALENCE TABLE
+       LDA     CRET
+       STA     TC
+C3B    LDA     E
+       STA     EP      E-PRIME = E
+       CRA
+       STA     F       I = 0
+       LDA     K102    T4 = STR-ABS
+       STA     C3T4
+       JST     CH00    INPUT CHARACTER
+       LDA     K17
+       JST     TS00    (TEST
+C3D    JST     IL00    INPUT LIST ELEMENT
+       JST     SAF
+       LDA     S1
+       SUB     AF      TL = S1-AF
+       STA     C3T1
+       LDA     A       T2 = A
+       STA     C3T2
+C3F    LDA     F       IF I=0, GO TO C3P
+       SNZ
+       JMP     C3P
+C3G    LDA     F       ELSE,
+       SUB     A       IF A = I, GO TO C3N
+       SNZ
+       JMP     C3N
+C3H    LDA     AT      ELSE,
+       SUB     K104    IF AT = COM, GO TO C3O
+       SNZ
+       JMP     C3O
+C3H2   LDA     T1C3
+       ADD     AF      T(0) = AF +T (1)
+       STA     T0C3
+       LDA     T4C3    IF T(4) = 0, GO TO C3K
+       SUB     K104
+       SZE
+       JMP     C3K
+       LDA     T3C3    ELSE,
+       SUB     T0C3    T(0) = T(3)-T(0)
+       STA     T0C3
+       SMI
+       JMP     C3K     IF T(0)<0,
+       JST     ER00
+       BCI     1,IC    IMPOSSIBLE COMMON EQUIVALENCING
+C3K    LDA     C3T4
+       IAB             AT (A) = COM
+       LDA     T0C3
+       ALS     2
+       LGR     2
+       JST     AF00    DEFINE AF
+       JST     FL00    FETCH LINK
+       JST     SAF
+       LDA     A
+       SUB     C3T2    IF A .NE. T (2),
+       SZE             GO TO C3G (5)
+       JMP     C3G
+*                      EXCHANGE CL(A) == CL(I)
+       JST     EL00    EXCHANGE LINKS (CL(A) WITH CL(F) )
+C3M    LDA     TC      IF TC = ,
+       SUB     K134
+       SNZ
+       JMP     C3D     ELSE,
+       JST     IP00    )-INPUT OPERATOR
+       LDA     TC
+       SUB     K134    IF TC = , OR C/R
+       SNZ             GO TO C3B (1)
+       JMP     C3B
+       LDA     TC
+       SUB     CRET
+       SNZ
+       JMP     C3B     ELSE,
+       JST     ER00
+       BCI     1,EC    EOUIVALENCE GROUP NOT FOLLOWED BY , OR CR
+       JMP     C3B
+C3N    LDA     T1C3    IF T1 = 0, GO TO C3M
+       SNZ
+       JMP     C3M
+C3N5   JST     ER00    ERROR IMPOSSIBLE GROUP
+       BCI     1,IE    IMPOSSIBLE EQUIVALENCE GROUPING
+C3O    LDA     S1
+       ADD     AF
+       STA     T3C3
+       LDA     K104    =4
+       CAS     T4C3
+       JMP     *+2
+       JMP     C3N5
+       STA     T4C3
+       LDA     F
+       CAS     A       IF A = F, GO TO C3M (B)
+       JMP     *+2
+       JMP     C3M     ELSE,
+       STA     A       A = I
+       IMA     C3T2
+       STA     F
+       CRA             T1 = 0
+       STA     C3T1
+       JST     FA00    FETCH ASSIGNS
+       JST     SAF
+       JMP     C3H2    GO TO C3H2
+C3P    LDA     A
+       STA     F
+       JMP     C3H
+*
+*
+*             ***********************
+*             *ASSIGN SPECIFICATIONS*
+*             ***********************
+*          NON-COMMON NON-EQUIV ITEMS ARE PROCESSED AFTER
+*               COMMON BLOCKS ARE OUTPUT (WITH SIZE).
+C4T0   PZE     0
+C4T1   PZE     0
+C4B    STA     A       A = 0
+C4C    LDA     A
+       ADD     K105    I = A = A+5
+       STA     A
+       STA     F
+       CAS     ABAR
+       JMP     NP35    RETURN TO FIRST NON-SPEC CHECK (POINT 1)
+       NOP
+       JST     FA00    ELSE, FETCH ASSIGN
+       LDA     AT
+       SUB     K102    IF AT = STR-ABS
+       SZE             IU=VAR. OR ARR, AND
+       JMP     C4C     NT = 0
+       LDA     IU      GO TO C4E
+       SUB     K102    ELSE, GO TO C4C
+       SPL
+       JMP     C4C
+       LDA     NT
+       SZE
+       JMP     C4C
+C4E    CRA
+       STA     C4T0    T0 = 0. T1 =-MAX
+       SUB     K111
+       STA     C4T1
+       JST     KT00    SET D(0) = NO. OF WORDS PER ITEM
+C4F    JST     SAF
+       CAS     C4T0
+       STA     C4T0
+       NOP
+       LDA     D0
+       SUB     AF      (A) = D(0) - AF
+       CAS     C4T1
+       STA     C4T1
+       NOP
+       JST     FL00    FETCH LINK ( (A)=A - F  )
+       SZE
+       JMP     C4F     GO TO C4F
+       LDA     RPL
+       ADD     C4T0    RPL * RPL + T0 + TL
+       STA     C4T0
+       ADD     C4T1    TO = RPL-T1
+       STA     RPL
+C4I    JST     SAF
+       LDA     K101
+       IAB             (B) = REL
+       LDA     C4T0    (A) = T0-AF
+       SUB     AF
+       JST     AF00    DEFINE AFT
+       JST     FL00    FETCH LINK
+       SZE             IF (A) NOT ZERO,
+       JMP     C4I     NOT END OF EQUIVALENCE GROUP
+       JMP     C4C     CHECK NEXT ITEM IN ASSIGNMENT TABLE
+*
+C4L2   LDA     FLT1    = LINK LOCATION TO COMMON BLOCK NAME
+       STA     C4T1
+C4L3   LDA     A
+       STA     I       SAVE A FOR LATER MODIFICATION
+       JST     FL00    FETCH LINK
+       SNZ
+       JMP     C4M     END OF COMMON GROUP
+       JST     STXI    SET INDEX TO POINT TO CURRENT ITEM IN
+*                                       COMMON GROUP.
+       LDA     DP,1    SET CL FIELD TO POINT AT COMMON BLOCK
+*                                      NAME.
+       ANA     K119    (='177000)
+       ADD     C4T1    (= LINK LOCATION OF COMMON BLOCK NAME)
+       STA     DP,1
+       JMP     C4L3    PROCESS NEXT ITEM IN COMMON BLOCK
+*
+C4     LDA     CFL     LOC. OF FIRST (BLANK) COMMON BLOCK
+       STA     F
+C4L6   STA     A
+       CRA
+       STA     C4T0
+C4L    JST     FL00    FETCH LINK
+       SNZ
+       JMP     C4L2    NO MORE ITEMS IN COMMON BLOCK
+       LDA     D0      ELSE, IF TO .LT. D0+AF,
+       ADD     AF
+       CAS     C4T0    T0 = D0 + AF
+       STA     C4T0
+       NOP
+       JMP     C4L     GO TO C4L
+C4M    LDA     AF
+       STA     F       I=AF
+       LDA     C4T0    (A) = T0
+       JST     DA00    DEFINE AF
+*....OUTPUT COMMON BLOCK NAME AND SIZE TO LOADER
+       LDA     AF      LENGTH OF COMMON BLOCK
+       ANA     K111    ='37777
+       ADD     K122    ='40000  (S/C CODE = 1)
+       JST     ON00    OUTPUT NAME BLOCK TO LOADER
+       LDA     F
+       SUB     CFL     IF I = CFL
+       SNZ
+       JMP     C4B
+       LDA     F
+       JMP     C4L6
+*
+SAF    DAC     **
+       LDA     AF
+       LGL     2
+       ARS     2
+       STA     AF
+       JMP*    SAF
+*
+*             **************************
+*             *DATA STATEMENT PROCESSOR*
+*             **************************
+*          PROCESS VARIABLE LIST .THEN OUTPUT LITERAL ITEMS
+*               TO APPROPRIATE LOCATIONS. MODES MUST AGREE
+T0W4   PZE     0
+T1W4   PZE     0
+G      PZE     0       LOWEST INDEX POINT IN LIST
+W4     LDA     L0
+       STA     I       I=END OF DATA POOL
+W4B    JST     IL00    INPUT LIST ELEMENT
+       LDA     AT      D (0) = =WDS/ITEM
+       SUB     K102
+       SNZ             IF AT = 'STR-ABS'
+       JMP     W4T     GO TO
+       LDA     I
+       STA     0
+       LDA     S1      S1 * DEFLECTION IF AN ARRAY
+       ADD     AF
+       STA     DP,1    DP(E) = AF + S1
+W4C    LDA     A
+       STA     DP-1,1  DP (E-1) = A
+       LDA     I
+       SUB     K102
+       STA     I
+       STA     G
+       LDA     TC      IF TC = ,
+       SUB     K134
+       SNZ
+       JMP     W4B     GO TO W4B
+       LDA     K104
+       JST     TS00    TEST FOR SLASH TERMINATOR
+       LDA     RPL
+       STA     T1W4
+       LDA     L0
+       STA     I       I= END OF DATA POOL
+W4E    CRA
+       STA     KPRM    K' = KBAR = 0
+       STA     KBAR
+W4F    JST     DN00    INPUT, DNA
+       LDA     NT
+       SZE             IF NT = 0
+       JMP     W4G     VARIABLE OR ARRAY
+       LDA     TC      LAST CHARACTER
+       CAS     K17     ='250  ( =(  )
+       JMP     *+2
+       JMP     *+3     START OF COMPLEX CONSTANT
+       JST     ER00    ERROR
+       BCI     1,CN    NON-CON DATA
+       STA     SXF     SET SXF TO NON-ZERO
+       JMP     W4F     FINISH INPUT OF COMPLEX CONSTANT
+W4G    LDA     KBAR    MULTIPLY COUNT
+       SZE
+       JMP     W4K     GO TO W4K
+       LDA     TC      IF TC NOT *
+       SUB     K103
+       SZE
+       JMP     W4L
+       LDA     ID
+       SUB     K101
+       STA     KBAR    KBAR = ID-1
+       JST     IT00    INTEGER TEST
+       JMP     W4F
+W4K    LDA     KPRM    IF K NOT ZERO
+       SZE
+       JMP     W4M     GO TO W4M
+W4L    LDA     KBAR
+       ALS     1       K ' = E-3* KBAR
+       TCA
+       ADD     I
+       STA     KPRM
+W4M    JST     STXI    SET INDEX = I
+       LDA     DP-1,1
+       STA     A       A = DP (E-1)
+       LDA     IM
+       STA     T0W4    T0 = IM
+       JST     FA00
+       LDA     BDF     IF BDF NOT ZERO
+       SZE
+       JMP     W4S     GO TO W4S
+       JST     NM00    NON-COMMON TEST
+W4O    JST     STXI    SET INDEX = I
+       LDA     DP,1
+       STA     RPL     RPL = AF
+       JST     FS00    FLUSH
+       CRA
+       STA     DF      DF = 0
+       LDA     HOLF    IS IT HOLLERITH DATA
+       SZE             NO
+       JMP     WHOW    YES, GO TO OUTPUT IT
+       LDA     D0
+       STA     0
+       JMP     *,1     SWITCH ON NUMBER OF WORDS TO OUTPUT
+       JMP     W405
+       JMP     W403
+       JMP     W404
+       LDA     TID+2
+       JST     OA00
+       LDA     TID+1
+       JST     OA00
+       LDA     TIDB+2
+       JST     OA00
+       LDA     TIDB+1
+       JMP     W406
+WHOW   LDA     D0      (A)=NO. OF WORDS PER ITEM
+       ALS     1       (A)=NO. OF CHARS. PER ITEM
+       STA     NTID    NTID=NO. OF CHARS. TO BE OUTPUT
+       SUB     HOLF
+       SPL
+       JMP     WERR
+       LDA     ID      FIRST WORD
+       JST     WSNG    OUTPUT IT
+       LDA     ID+1    2ND WORD
+       JST     WSNG    OUTPUT IT
+       LDA     ID+2    3RD WORD
+       JST     WSNG    OUTPUT IT
+       LDA     ID+3    4TH WORD
+       JST     OA00    OUTPUT IT
+       JMP     W420    TO CHECK NEXT DATA
+*
+WSNG   PZE     0
+       JST     OA00    OUTPUT (A)
+       LDA     NTID    NO. OF CHARS. REMAINED TO BE OUTPUT
+       SUB     K102
+       STA     NTID    NTID=NTID-2
+       SNZ
+       JMP     W420    ALL FINISHED, CHECK NEXT ITEM
+       JMP*    WSNG    SOME HOLLERITH CHARS.  REMAINED
+W403   LDA     TID+2   REAL OUTPUT
+       JST     OA00
+       LDA     TID+1
+       JMP     W406
+W404   LDA     TID+2   DOUBLE PRECISION OUTPUT
+       JST     OA00
+       LDA     TID+1
+       JST     OA00
+W405   LDA     TID     INTEGER OUTPUT
+W406   JST     OA00
+       LDA     T0W4
+       ERA     IM
+       ANA     K105
+       SNZ
+       JMP     *+3
+*                      TO BE OUTPUT, RETURN
+WERR   JST     ER00
+       BCI     1,DM    DATA AND DATA NAME MODE DO NOT AGREE
+W420   LDA     I
+       SUB     K102
+       STA     I       I = I-2
+       CAS     KPRM
+       NOP
+       JMP     W4M     MORE TO DO
+       SUB     G       TEST FOR COMPLETE
+       SZE
+       JMP     W4P
+       LDA     K104
+       JST     TS00
+       LDA     T1W4
+       STA     RPL
+       JST     CH00    INPUT NEXT CHARACTER
+       SUB     K5      ='254   (,)
+       SZE             SKIP IF CHAR = COMMA
+       JMP     A1      CHECK FOR  (CR)
+       JMP     W4      PROCESS NEXT DATA GROUP
+W4P    LDA     K134
+       JST     TS00
+       JMP     W4E
+W4S    JST     FS00    FLUSH BUFFER IF NECESSARY
+       LDA     AF      POSITION WITHIN COMMON BLOCK
+       LRL     14
+       LDA     K106    FORMAT BCD OUTPUT
+       LGL     6
+       LLL     6
+       STA     OCI
+       IAB
+       ANA     K116
+       STA     OCI+1
+       JST     FL00    FETCH LINK
+       LDA     DP+4,1
+       SSM
+       ALR     1
+       SSM
+       ARR     1
+       LRL     8
+       ERA     OCI+1
+       STA     OCI+1
+       LDA     DP+3,1
+       IAB
+       LDA     DP+4,1
+       LLL     8
+       STA     OCI+2
+       LDA     DP+2,1
+       IAB
+       LDA     DP+3,1
+       LLL     8
+       STA     OCI+3
+       LDA     DP+2,1
+       LGL     2
+       ADD     K103
+       LGL     6
+       STA     OCI+4
+       LDA     K128
+       STA     OCNT
+       JST     STXI    I POINTS TO DATA TABLE
+       LDA     DP-1,1  SET A TO VARIABLE
+       STA     A
+       JST     FA00
+       JMP     W4O
+W4T    LDA     K101    =1  (=REL)
+       IAB
+       LDA     RPL
+       JST     AF00    DEFINE AFT (AT=REL, AF=RPL)
+       LDA     I       SET POINTER IN DATA POOL
+       STA     0
+       LDA     RPL
+       STA     DP,1    DP(I) = RPL OF VARIABLE
+       ADD     D0
+       STA     RPL
+       JMP     W4C
+*
+*
+*             *********************************
+*             *BLOCK DATA SUBPROGRAM PROCESSOR*
+*             *********************************
+*          SET BLOCK DATA FLAG AND OUTPUT FORCE LOAD CODE
+R3     LDA     LSTF    =0 IF FIRST STATEMENT IN THE SUBPROGRAM
+       SZE
+       JMP     *+3
+       JST     ER00    ERROR...NOT FIRST STATEMENT
+       BCI     1,BL    'BLOCK DATA' NOT FIRST STATEMENT
+       STA     BDF     SET BLOCK DATA FLAG ON (NON-ZERO)
+       JST     CH00    INPUT NEXT CHARACTER
+       JMP     A1      CHECK FOR (CR) AND EXIT
+*
+*
+*
+*
+*
+*
+*
+*             ***************************
+*             *TRACE STATEMENT PROCESSOR*
+*             ***************************
+*          SETS TRACE TAG ON VARIABLES OR SETS TRACE FLAG
+TRAC   JST     XN00    EXAMINE NEXT CHARACTER
+       SZE             SKIP IF CHAR. WAS A DIGIT
+       JMP     TRAD    JUMP IF CHAR. WAS A LETTER
+       JST     IS00    INPUT STATEMENT NO.
+       LDA     A       STATEMENT NO. POINTER
+       STA     TRF     SET TRACE FLAG ON
+       JMP     A1      TEST FOR (CR) AND EXIT
+*
+TRAD   JST     NA00    INPUT NAME
+       JST     STXA    SET INDEX TO NAME ENTRY
+       LDA     DP+4,1  TT(A)    TRACE TAG
+       CHS
+       STA     DP+4,1
+       JMP     B1      (,) OR (CR) TEST
+*                      (RETURN TO TRAC IF (,)  )
+*
+*
+*
+*             ********************
+*             *OUTPUT OBJECT LINK*
+*             ********************
+OL00   DAC     **
+       JST     CN00    CALL NAME
+       CRA
+       STA     DF      DF = 0
+       LDA     ID      (A) = IP
+       JST     OA00    OUTPUT +BS
+*
+       JMP*    OL00
+*
+*             *****************
+*             *OUTPUT I/O LINK*
+*             *****************
+*          GENERATE I/O DRIVER LINKAGE CODE. NAME OF
+*               CALLED ROUTINE IS CHANGED IF UNIT DESIGNATOR
+*               IS A CONSTANT.
+OI00   DAC     **
+       JST     IV00    INPUT INT VAR/CON
+       LDA     NT
+       SNZ             IF NT = 0
+       JMP     OI20    GO TO 0I20
+       LDA     ID      IF ID CR 9
+       SUB     K126    G0 TU OI20
+       SMI
+       JMP     OI20
+*                           FORM F$RN OR F$WN
+       LDA     NAMF+1
+       ANA     K116
+       ADD     ID
+       ADD     K60     ='260   (SP)
+       STA     NAMF+1
+OI10   JST     CN00    CALL NAME
+       JMP*    OI00    RETURN
+OI20   LRL     32
+       LDA     OMI7    OUTPUT OA
+       JST     OB00      (LOAD A (UNIT N0.))
+       JMP     OI10    FO TO OI10
+*
+*
+*             ***********
+*             *CALL NAME*
+*             ***********
+*          SET UP NAME AND GENERATE CODE FOR CALLING IT.
+CN00   DAC     **
+       JST     FS00    FLUSH
+       JST     PRSP    SET PRINT BUFFER TO SPACES
+       LDA     K147    SET UP OCI FOR CALL
+       STA     OCI
+       LDA     NAMF+1  OCI = NAMF
+       STA     PRI+9
+       IAB             ALSO TO PRINT BUFFER
+       LDA     NAMF
+       STA     PRI+8
+       LRL     8
+       STA     OCI+1
+       LLL     16
+       STA     OCI+2
+       LDA     NAMF+2
+       STA     PRI+10
+       IAB
+       LDA     NAMF+1
+       LLL     8
+       STA     OCI+3
+       LLL     16
+       STA     OCI+4
+       LDA     K128    ='14
+       STA     OCNT    OCNT = 6
+       LDA     CN90
+       STA     PRI+5
+       LDA     CN90+1
+       STA     PRI+6
+       LDA     RPL
+       JST     OR80
+       DAC     PRI
+       SR2
+       JMP     *+3     INHIBIT SYMBOLIC OUTPUT
+       CALL    F4$SYM  OUTPUT SYMBOLIC LINE.
+       DAC     PRI
+       IRS     RPL     RPL = RPL + 1
+       JST     PRSP    SET PRINT BUFFER TO SPACES
+       JST     FS00    FLUSH
+       JMP*    CN00    RETURN
+K147   OCT     55000
+CN90   BCI     2,CALL
+*             *************
+*             *OUTPUT PACK*
+*             *************
+*          OUTPUT THE PACK WORD WHEN IT IS FULL.
+PKF    PZE     0       PACK FLAG
+T0OK   PZE     0
+OK00   DAC     **
+       CAS     CRET    IF (A) = C/R
+       JMP     *+2
+       JMP     OK30    GO TO OK30
+       IRS     PKF     PKF = PKF + 1
+       JMP     OK20    IF NON-ZERO, GO TO OK20
+OK10   ADD     T0OK    (A) = (A) + T0
+       LRL     16
+       STA     DF
+       IAB
+       JST     OA00    OUTPUT ABS
+       JMP*    OK00
+OK20   LGL     8
+       STA     T0OK
+       LDA     K123    PKF = - 1
+       STA     PKF
+       JMP*    OK00    RETURN
+OK30   LDA     PKF     IF PKF = 0
+       SNZ
+       JMP*    OK00    RETURN
+       LDA     K8      ELSE (A) = SPACE,
+       STA     PKF
+       JMP     OK10    GO TO OK10
+*
+*
+*              ***********
+*              *OUTPUT OA*
+*              ***********
+*           GENERAL OUTPUT ROUTINE. MAKES CHECKS AGAINST
+*                THE ASSIGNMENT TABLE ENTRY TO PROCESS DUMMY,
+*                EXTERNAL, RELATIVE, ABSOLUTE OR STRING
+*                REFERENCES PROPERLY.
+T1OB   PZE     0
+OB00   DAC     **
+       STA     FTOP    FTOP = (A)
+       IAB
+       STA     T1OB
+       JST     STXA    ESTABLISH A
+       SNZ             IF A = 0
+       JMP     OB08    GO TO OB08
+       JST     FA00    FETCH ASSIGNS
+       LDA     SOF     SPECIAL OUTPUT FLAT
+       SZE
+       JMP     OB60    SUBSCRIPT CONSTANT DEFLECTION
+       LDA     AF
+       STA     T1OB    T0 = AF
+       LDA     AT
+       SUB     K105    IF AT = 'DUM'
+       SNZ
+       JMP     OB15    GO TO OB15
+       LDA     IU
+       SUB     K101    IF IU = 'SUB'
+       SNZ
+       JMP     OB40    GO TO OB40
+OB06   LDA     AT
+       CAS     K104    IF AT = 'COM'
+       JMP     *+2
+       JMP     OB20    GO TO OB20
+       CAS     K101
+       JMP     *+2     IF AT = 'REL'
+       JMP     OB10    GO TO OB10
+       LDA     K103
+       IAB
+       LDA     RPL
+       JST     AF00    DEFINE AF AND AT
+       LDA     AT      IF AT = 'STR-RE'
+       SUB     K103
+       SNZ   
+       JMP     OB10    GO TO OB10
+       CRA
+       STA     AF      AF = 0
+OB08   LDA     K102
+       STA     DF      SET FLAG TO OUTPUT SYMBOLIC
+       LDA     FTOP
+       JST     OA00    OUTPUT ABSOLUTE
+       JMP*    OB00    RETURN
+OB10   LDA     T1OB
+       STA     AF
+       LDA     FTOP
+       JST     OR00    OUTPUT REL
+       JMP*    OB00    RETURN
+OB15   LDA     FTOP
+       CHS             REVERSE INDIRECT BIT
+       STA     FTOP
+       JMP     OB10    GO TO OB10
+OB20   JST     FS00    OUTPUT COMMON REOUEST
+       LDA     T1OB    PACK ADDRESS INTO BLOCK
+       LRL     14
+       LDA     FTOP
+       LGR     10
+       ADD     K150
+       LLL     6
+       STA     OCI
+       LLL     8
+       STA     OCI+1
+       JST     SAV
+       JST     FL00
+       LDA     DP+2,1
+       STA     PRI+13  SET COMMON NAME INTO PRINT BUFFER
+       LLR     8
+       STA     OCI+4
+       LLL     8
+       LDA     DP+3,1
+       STA     PRI+12  SET COMMON NAME INTO PRINT BUFFER
+       LLR     8
+       STA     OCI+3
+       LLL     8
+       LDA     DP+4,1
+       ANA     K111    ='037777
+       CAS     *+1     LOOK FOR BLANK COMMON
+       OCT     020240
+       ERA     K122
+       ERA     HBIT
+       STA     PRI+11  SET NAME INTO PRINT BUFFER
+       LLR     8
+       STA     OCI+2
+       LLL     8
+       LDA     OCI+1
+       LLL     8
+       STA     OCI+1
+       LDA     K128    ='14
+       STA     OCNT
+       JST     RST
+       LDA     0
+       STA     A       RESTORE A TO POINT AT NAME
+       LDA     RPL     SET RPL MINUS
+       SSM             TO DISABLE WORD OUTPUT
+       STA     RPL
+       LDA     FTOP    OUTPUT WORD TO LIST
+       JST     OR00    SYMBOLIC COMMAND
+       LDA     RPL     RESTORE AND
+       SSP             INCREMENT PROGRAM
+       AOA             COUNTER FOR COMMON
+       STA     RPL     OUTPUT
+       JST     FS00    CLOSE OUT BLOCK
+       JMP*    OB00    EXIT
+OB30   LDA     DP+4,1
+       SSM
+       ALR     1
+       SSM
+       ARR     1
+       STA     NAMF
+       LDA     DP+3,1
+       STA     NAMF+1
+       LDA     DP+2,1
+       STA     NAMF+2
+       JST     CN00
+       JMP*    OB00
+OB40   LDA     AT
+       SUB     K102
+       SNZ
+       JMP     OB30
+       JMP     OB06
+OB50   OCT     140000
+*
+OB60   CRA
+       STA     SOF     RESET SPECIAL OUTPUT FLAG
+       LDA     AT      ADDRESS TYPE
+       CAS     K105    TEST FOR DUMMY
+       JMP     OB06    PROCESS NORMALLY
+       JMP     OB61
+       JMP     OB06    PROCESS NORMALLY
+OB61   LDA     T1OB
+       STA     FTOP
+       CRA
+       JMP     OB08+1
+*
+K150   OCT     700
+*
+*
+*             **************
+*             OUTPUT TRIADS*
+*             **************
+*          PROCESSES THE TRIAD TABLE. HANDLES FETCH
+*               GENERATION AND RELATIONAL OPERATOR CODE
+*               GENERATION. DRIVES OUTPUT ITEM. ASSIGNS
+*               AND OUTPUT TEMP STORES.
+T0OT   PZE     0
+T2OT   PZE     0
+T1OT   PZE     0
+T3OT   PZE     0       TEMP STORE FOR P
+OT00   DAC     **
+       JST     SAV
+       LDA     L0
+       STA     I       I = L0
+       CRA
+       STA     T0OT    T0 = 0
+       STA     IFLG
+OT06   STA     T1OT    T1 = I
+OT10   LDA     I
+       SUB     K103    I = I-3
+       STA     I
+       STA     T2OT    T2 = I
+       SUB     L
+       SPL
+       JMP     OT60    IF FINISHED, GO TO OT60
+       JST     STXI
+       LDA     DP+2,1
+       SSP             CHECK P (I)
+       CAS     K139    X
+       JMP     *+2
+       JMP     OT10
+       CAS     K138    H
+       JMP     *+2
+       JMP     OT10
+       CAS     K142    I
+       JMP     *+2
+       JMP     OT50
+       CAS     K143    T
+       JMP     *+2
+       JMP     OT40
+       CAS     K151    Q
+       JMP     *+2
+       JMP     OT35
+       STA     T3OT    SAVE P
+       LDA     DP+1,1
+       STA     A       A = O1(I)
+       CAS     T1OT
+       JMP     *+2
+       JMP     OT30
+       CAS     L0
+       JMP     OT16
+       JMP     OT99    MAYBE SPECIAL LOAD FOR (A=) STATEMENT
+       JMP     OT16
+OT18   JST     STXI
+       LDA     DP,1
+       STA     A       A = O2 (I)
+       LDA     DP+2,1
+       SSP
+       JST     OM00    OUTPUT ITEM(P(I),A = 02(I))
+OT22   JST     STXI
+       LDA     DP+2,1
+       SMI
+       JMP     OT28
+       CRA             ASSIGN TEMP STOR
+       STA     NT      NT = 0
+       LDA     K102
+       STA     IU      IU = VAR
+       LDA     T0OT
+       LRL     6
+       LDA     TCF     ID =
+       LRL     3       TS-IM-TCF-T0
+       LDA     MFL
+       STA     IM
+       LLL     9
+       JST     OR80
+       DAC     ID
+       LDA     K77
+       STA     ID
+       IRS     T0OT    T0 = T0+1
+       JST     AS00    ASSIGN ITEM
+       JST     STXI
+       LDA     A
+       STA     DP,1    O2(I) = A
+       LDA     K153
+       SSM             SURPRESS TRACE OF TEMPORARY STORAGE
+       JST     OM00    OUTPUT ITEM (=,A)
+OT28   LDA     I
+       JMP     OT06
+OT30   JST     STXA
+       LDA     DP+2,1
+       SSP             IF P (A) = 0
+       SZE
+       JMP     OT32
+OT16   LDA     K152    GENERATE FETCH
+       JST     OM00    OUTPUT ITEM
+OT32   LDA     T3OT    CHECK FOR RELATIONALS
+       SUB     K125    ='10
+       SPL
+       JMP     OT18    NOT LOGICAL OR6RATOR
+       SUB     K106    =6
+       SMI
+       JMP     OT18    NOT A LOGICAL QPERATOR
+       STA     0       SET INDEX = -1 TO -6
+       LDA     K103    =3 (LOG)
+       STA     MFL     SET MODE TO LOGICAL
+       CRA
+       STA     A       SET FOR OCTAL ADDRESS
+       JMP     *+7,1   BRANCH TO OPERATOR PROCESSOR
+       JMP     OT3G    .LT.
+       JMP     OT3E    .LE.
+       JMP     OT3C    .EQ.
+       JMP     OT3B    .GE.
+       JMP     OT3A     .GT.
+       LDA     OMJ4    .NE.   =ALS 16
+       JST     OA00    OUTPUT ABSOLUTE
+       LDA     OMJ6    =ACA
+       JMP     OT3D
+OT3A   LDA     OMJ7     =TCA
+       JMP     OT3F
+OT3B   LDA     OMK1    =CMA
+       JMP     OT3F
+OT3C   LDA     OMJ4    = ALS 16
+       JST     OA00
+       LDA     OMK2    =SSC
+       JST     OA00    OUTPUT ABSOLUTE
+       LDA     OMK3    =AOA
+OT3D   JST     OA00    OUTPUT ABSOLUTE
+       JMP     OT22
+OT3E   LDA     OMJ2    =SNZ
+       JST     OA00    OUTPUT ABSOLUTE
+       LDA     OMK4    =SSM
+OT3F   JST     OA00    OUTPUT ABSOLUTE
+OT3G   LDA     OMJ5    =LGR 15
+       JMP     OT3D
+*
+OT35   LDA     DP+1,1
+       STA     ID
+       JST     NF00
+       LDA     K78     NAMF = F $AR
+       STA     NAMF+1
+       JST     OL00    OUTPUT OBJECT LINK
+       JMP     OT18    GO TO OT18
+OT40   LDA     DP,1
+       ADD     DO
+       STA     I       I = O2 (I) + DO
+       JST     DQ00    DO TERMINATION
+OT45   LDA     T2OT
+       STA     I       I = T2
+       JMP     OT28
+OT50   LDA     DP,1
+       ADD     DO      I=O2(I)+DO
+       STA     I       IF I = DO
+       SUB     DO
+       SZE             GO TO OT45
+       JST     DS00    DO INITIALIZE
+       JMP     OT45    GO TO OT45
+OT60   JST     RST
+       LDA     L0      RESET TRIAD TABLE
+       STA     L
+       JMP*    OT00
+*
+OT99   LDA     T3OT
+       SUB     K153    CODE FOR =
+       SZE
+       JMP     OT16    NOT SPECIAL LOAD
+       STA     MFL     SPECIAL LOAD, SET MFL=0
+       JMP     OT18    OUTPUT A STORE
+K77    BCI     1,T$    T$
+K78    BCI     1,AR    AR
+K142   OCT     27
+K143   OCT     30
+K151   OCT     32
+K152   OCT     31
+*             *************
+*             *OUTPUT ITEM*
+*             *************
+*
+*          DRIVES BASIC OUTPUT ROUTINES. HANDLES SPECIAL
+*               SUBSCRIPT PROCESSING, GENERATES NECESSARY
+*               MODE CONVERSION CALLS AND HANDLES MODE
+*               CHECKING. IN-LINE ARITHMETIC CODE IS
+*               GENERATED WHERE POSSIBLE. OTHERWISE CALLS
+*               TO ARITHMETIC ROUTINES ARE GENERATED.
+*
+T0OM   PZE     0
+T1OM   PZE     0
+T2OM   PZE     0
+T8OM   PZE     0
+T9OM   PZE     0
+TXOM   PZE     0
+*
+*-------------OUTPUT ITEM
+OM00   DAC     **      RETURN ADDR
+       STA     T8OM
+       SSP
+       STA     T0OM    R(0)=(A)='P' CODE
+       CAS     K134
+       JMP     *+2
+       JMP     OMD1
+       LDA     TXOM
+       CAS     K101
+       JMP     OME1
+       JMP     OME5
+OM05   CRA
+       STA     T1OM    T(1)=0
+       STA     T9OM    T(9)=0
+       LDA     A
+       STA     T2OM    T(2)=A
+       SZE
+       JMP     OM07
+       LDA     MFL
+       JMP     OM13
+OM07   CAS     L0
+       JMP     *+2
+       JMP     OML1
+       CAS     ABAR
+       JMP     OM76    A .LE. ABAR....WITHIN TRIAD TABLE
+       JMP     *+1
+OM10   JST     STXA    SET INDEX=A
+       LDA     DP,1
+       ARS     9       SES IM=MODE OF ITEM
+       ANA     K107
+OM13   STA     IM
+OM14   LDA     MFL     SET MFL,IM AS DIGITS INTO NAMF
+       ALS     8
+       ADD     IM
+       ERA     OM90    ADD '0''0'
+       STA     NAMF+1
+       LDA     K130
+       STA     0       INDEX=-6
+       LDA     T0OM
+       CAS     OM50+6,1        CHECK FOR SPECIAL OPERATOR
+       JMP     *+2     '1
+       JMP*    OM52+6,1        'P'='Q',',','0','A'F', OR 'E'
+       IRS     0
+       JMP     *-4
+       LDA     MFL
+       SNZ
+       JMP     OM62    SPECIAL LIBRARY FIX FOR  (  A=  )
+       CAS     IM      CHECK FOR MODE MIXING
+       JMP     *+2
+       JMP     OMA1    ITEM MODE SAME AS CURRENT MODE
+OM20   LDA     K103
+       JST     OM44    CHECK MODE FOR LOG
+       LDA     K102    =2  (MODE CODE FOR REAL)
+       CAS     MFL     MODE OF EXPRESSION
+       JMP     *+2
+       JMP     OM26    IF MODE=REAL, ALLOW COMPLEX MODE MIXING
+       CAS     IM      MODE OF ITEM
+       JMP     *+2
+       JMP     OM26    IF MODE=REAL, ALLOW COMPLEX MODE MIXING
+       LDA     K105
+       JST     OM44    TEST FOR MODE= COMPLEX
+OM26   LDA     T0OM    OPERATOR BEING PROCESSED
+       CAS     K153
+       JMP     *+2
+       JMP     OM36    T(0)='=' (ALLOW INTEGER MODE)
+       LDA     K101
+       JST     OM44    TEST FOR MODE=INTEGER
+       LDA     IM
+       CAS     MFL
+       JMP     OM38    CONVERT MODE OF ACCUMULATOR
+       JMP     *+1
+OM30   JST     NF00    SET LBUF+2 TO SPACES
+       LDA     T0OM
+       STA     0
+       LDA     A9X4,1  PICK-UP PRINT CODE FOR 'P' OPERATOR
+       ARS     6
+       ANA     K100    ='377
+       SNZ
+       JMP     OM46    MODE MIXING ERROR
+       LGL     8
+       ERA     OM91    ADD '$'
+       STA     NAMF
+       LDA     K134
+       STA     T0OM    T(0)=','
+       JMP     OM40
+*
+OM36   LDA     K105
+       JST     OM44    CHECK FOR MODE=COMPLEX
+OM38   LDA     IM
+       STA     MFL
+       JST     NF00    SET LBUF+2 TO SPACES
+       LDA     OM92    'C$'
+       STA     NAMF
+OM40   JST     CN00    OUTPUT....CALL NAMF
+       LDA     MFL
+       STA     IM      SET ITEM MODE TO CURRENT MODE
+       LDA     NAMF
+       CAS     OM96
+       JMP     OM14
+       JMP*    OM00
+       JMP     OM14    OUTPUT ARGUMENT ADDRESS
+*
+*-----SUBROUTINE TO CHECK FOR ILLEGAL IM OR MFL MODES.
+OM44   DAC     **      RETURN ADDR.
+       CAS     IM      CHECK FOR IM0(A)
+       JMP     *+2
+       JMP     OM46    ERROR
+       CAS     MFL     CHECK FOR MFL=(A)
+       JMP*    OM44
+       JMP     OM46    ERROR
+       JMP*    OM44
+OM46   JST     ER00    NON-RECOVERABLE ERROR......
+       BCI     1,MM    MODE MIXING ERROR
+*
+*------SPECIAL 'P' OPERATOR TABLE
+OM50   OCT     32      'Q'
+       OCT     17      ','
+       OCT     00      '0'
+       OCT     22      'A'
+       OCT     31      *F'
+       OCT     20      'E'
+OM52   DAC     OMB3    ('Q')
+       DAC     OMB3    (',')
+       DAC     OMB3    ('0')
+       DAC     OM56    ('A')
+       DAC     OM60    ('F')
+       DAC     OM70    ('E')
+*
+*
+OM56   LDA     OMI1    SET T(1) = ADD*
+       JMP     OMB1
+*
+OM60   JST     STXA    SET INDEX = A
+       LDA     DP+1,1
+       LGR     14      SET UV=IU(A)
+       STA     IU
+       JST     STXI    SET INDEX=I
+       LDA     DP+2,1  P(I)
+       ANA     K133    ='77
+       SNZ
+       JMP     OM64    (POSSIBLE DUMMY ARRAY FETCH)
+OM62   LDA     IM
+       STA     MFL     SET CURRENT MODE TO ITEM MODE
+       LGL     8
+       ADD     IM
+       ERA     OM90
+       STA     NAMF+1
+       LDA     IU
+       SUB     K101    CHECK FOR IU=1 (SUBROUTINE)
+       SZE
+       JMP     OMA1
+       LDA     OMI2    SET T(1) = JST
+       JMP     OM66
+OM64   LDA     IU
+       SUB     K103    CHECK FOR IV=3 (ARRAY)
+       SZE
+       JMP     OM62
+       LDA     K101    SET CURRENT MODE TO INTEGER
+       STA     MFL
+       LDA     OMI3    SET T(1) = LDA*
+OM66   STA     T1OM
+       JMP     OMB3
+*
+OM70   LDA     K101
+       CAS     IM      CHECK ITEM MODE EQUALS INTEGER
+       JMP     *+2
+       JMP     OM74
+       LDA     K105    CHECK FOR MODE = COMPLEX
+       JST     OM44
+       JMP     OM20
+OM74   LDA     K103    CHECK FOR MODE = LOGICAL
+       JST     OM44
+       JMP     OM30    OUTPUT SUBROUTINE CALL
+*
+OM76   JST     STXA    INDEX=A
+       LDA     DP,1    O2(A)
+       STA     T2OM    T(2)=O2(A)
+       LDA     DP+2,1  P(A)
+       ANA     K133    ='77
+       SNZ
+       JMP     OM84    P(A)='0' (SUBSCRIPTED VARIABLE)
+       CAS     K139
+       JMP     *+2
+       JMP     OM80    P(A) = 'X' (END OF ARRAY CALCULATION)
+       CAS     K138
+       JMP     *+2
+       JMP     OMHW    P(4)= 'H' (HOLLERITH DATA)
+OM78   LDA     T2OM
+       STA     A       RESET A
+       JMP     OM10
+*
+OM80   JST     STXI    INDEX=I
+       LDA     T2OM
+       STA     DP+1,1  O1(I) = T(2)
+       CRA
+       STA     T1OT    SET T(1) OF OUTPUT TRIADS TO ZERO
+       LDA     A       SAVE A
+       STA     T1OM
+       CRA             SET A=0  (NOT SYMBOLIC)
+       STA     A
+       LDA     RPL
+       ADD     K102    AF=RPL+2
+       STA     AF
+       LDA     OMI4    =ADD INSTRUCTION
+       JST     OR00    OUTPUT RELATIVE
+       LDA     RPL
+       ADD     K102    AF = RPL P+ 2
+       STA     AF
+       LDA     OMI5    = JMP INSTR.
+       JST     OR00    OUTPUT RELATIVE
+       LDA     T1OM
+       STA     A       RESTORE A
+       STA     SOF     SET SPECIAL OUTPUT FLAG TO NON-ZERO
+       CRA             = DAC INSTR.
+       STA     T1OM
+       LDA     K101
+       STA     AT
+       JMP     OM88
+OM84   LDA     DP+1,1  O1(A)
+       STA     A       A=O1(A)
+       CAS     L0
+       JMP     *+2
+       JMP     OM86    A=L(0)....CONSTANT SUBSCRIPT ONLY
+       LDA     OMI0    T(1) = INDIRECT BIT
+       STA     T1OM
+       JMP     OM10
+*
+OM86   LDA     T2OM    A=T(2)
+       STA     A
+       STA     0
+       STA     SOF
+       LDA     DP,1    T(2) = O2(A)
+       STA     T2OM
+OM88   JST     STXA    INDEX=A
+       LDA     DP+1,1  O1(A)
+       STA     T9OM    T(9)=O1(A)
+       JMP     OM78
+OMHW   LDA     T2OM
+       STA     AF
+       CRA
+       STA     A
+       JST     OR00
+       JMP*    OM00
+*
+OM90   OCT     130260  '00'
+OM91   OCT     000244  ' $'
+OM92   OCT     141644  'C$'
+OM93   OCT     152322  'TR'
+OM94   OCT     000021  'C' CODE
+OM95   OCT     017777  (MASK)
+OM96   BCI     1,N$
+OM97   BCI     1,-1
+*
+OMA1   LDA     IM      CHECK FOR IM=LOGICAL
+       CAS     K103
+       JMP     *+2
+       JMP     OMC1    IM=LOGICAL
+       CAS     K101    CHECK FOR IM=INTEGER
+       JMP     *+2
+       JMP     OMA3    IM=INTEGER
+       JMP     OM30
+*
+OMA3   LDA     T0OM    CHECK FOR T,0) = '+'
+       CAS     K103    =3
+       JMP     *+2
+       JMP     OMA4    T(0)= '*'
+       CAS     OM94    T(0) = 'C
+       JMP     *+2
+       JMP     OMA6    OUTPUT 'TCA'
+       CAS     K101
+       JMP     OMA5
+       LDA     OMI4    =ADD INSTR.
+       JMP     OMB1
+OMA4   LDA     T2OM    VALUE OF A
+       SUB     K126    ='12   KNOWN LOCATION OF A FOR 2
+       SZE             SKIP IF MULTIPLIER IS A CONSTANT OF 2
+       JMP     OM30    COUPLE TO THE MULTIPLY SUBROUTINE
+       STA     A       SET A AND AF TO ZERO (FOR LISTING FLAGS)
+       STA     AF
+       LDA     *+3     ALS 1  INSTRUCTION
+       JST     OA00    OUTPUT ABSOLUTE
+       JMP*    OM00    EXIT UUTPUT ITEM
+       ALS     1       (INSTRUCTION TO BE OUTPUT)
+OMA5   CAS     K102    CHECK FOR T(0) = '-'
+       JMP     OMA7
+       LDA     OMI6    =SUB INSTR.
+       JMP     OMB1
+OMA6   CRA
+       STA     A       CAUSE OCTAL ADDR LISTING
+       STA     AF
+       LDA     *+3     TCA
+       JST     OA00    OUTPUT ABSOLUTE
+       JMP*    OM00    EXIT
+       TCA
+OMA7   CAS     K153    CHECK FOR T(0) = '='
+       JMP     *+2
+       JMP     OMA9    OUTPUT A STA INSTR.
+       SUB     K152    CHECK FOR T(0) = 'F'
+       SZE
+       JMP     OM30
+OMA8   LDA     OMI7    =LDA INSTR.
+       JMP     OMB1
+OMA9   LDA     OMI8    =STA INSTR.
+OMB1   ADD     T1OM    T(1) = T(1) + INSTR.
+       STA     T1OM
+OMB3   LDA     T2OM    SET A=T(2)
+       STA     A
+       LDA     T9OM    OUTPUT INSTR. WITH T(1) AND T(9)
+       IAB
+       LDA     T1OM
+       JST     OB00    OUTPUT OA
+       LDA     T8OM    CHECK FOR T(8) = '='
+       CAS     K153    ='16
+       JMP*    OM00
+       JMP     *+2
+       JMP*    OM00    EXIT
+       LDA     TRFA    POINTER TO FIRST VARIABLE OR ARRAY
+       STA     A            PROCESSED IN EXPRESSION
+       JST     TRSE    OUTPUT TRACE COUPLING IF REQUIRED
+       JMP*    OM00    EXIT OUTPUT ITEM
+*
+*
+OMC1   LDA     T0OM
+       CAS     K152    CHECK FOR T(0) = 'F'
+       JMP     *+2
+       JMP     OMA8    OUTPUT A LDA INSTR.
+       CAS     K153    CHECK FOR T(0) = '='
+       JMP     *+2
+       JMP     OMA9    OUTPUT A STA INSTR.
+       CAS     OM94    CHECK FOR T(0) = 'C'
+       JMP     *+2
+       JMP     OM30    OUTPUT COMPLEMENT CODING
+       CAS     K106
+       JMP     *+2
+       JMP     OMC5    OUTPUT AN ANA INSTR.
+       CAS     K107
+       JMP     OM46    ERROR
+       JMP     OM30
+       JMP     OM46    ERR0R
+OMC5   LDA     OMI9    =ANA INSTR.
+       JMP     OMB1
+OMD1   IRS     TXOM    T0 = T0+1
+       JMP     OM05
+OME1   CRA
+       STA     DF      DF = 0
+       JST     OA00    OUTPUT ABSOLUTE
+OME5   CRA
+       STA     TXOM    T0 = 0
+       JMP     OM05
+*
+TRSE   DAC     0       SUBROUTINE TO OUTPUT  TRACE COUPLING
+       JST     STXA    SET INDEX = A
+       SZE
+       LDA     DP+4,1  CHECK STATUS OF TRACE TAG
+       SPL
+       JMP     TRS7
+       SR4
+       JMP     TRS7
+       LDA     TRF     CHECK STATUS OF TRACE FLAG
+       SNZ
+       JMP*    TRSE
+TRS7   JST     NF00    SET LBUF TO 'F$', LSUF+2 TO SPACES
+       LDA     OM93    ='TR'
+       STA     NAMF+1
+       JST     CN00    OUTPUT.....CALL NAMF
+       JST     STXA    SET INDEX = A
+       LDA     DP+4,1
+       ANA     OM95
+       STA     T1OM
+       LDA     DP+3,1
+       STA     T8OM
+       LDA     DP+2,1
+       STA     T9OM
+       CRA
+       STA     DF
+       LDA     DP,1    MERGE IM WITH ITEM NAME
+       ARS     9
+       LGL     13
+       ERA     T1OM
+       JST     OA00    OUTPUT ABSOLUTE (FIRST 2 CHAR.)
+       LDA     T8OM
+       JST     OA00    OUTPUT ABSOLUTE (NEXT 2 CHAR.)
+       LDA     T9OM
+       JST     OA00    OUTPUT ABSOLUTE (LAST 2 CHAR.)
+       JMP*    TRSE
+*
+*.................INSTRUCTION TABLE
+OMI0   OCT     100000  INDIRECT BIT
+OMI1   OCT     114000  ADD*
+OMI2   OCT     020000  JST
+OMI3   OCT     104000  LDA*
+OMI4   OCT     014000  ADD
+OMI5   OCT     002000  JMP
+OMI6   OCT     016000  SUB
+OMI7   OCT     004000  LDA
+OMI8   OCT     010000  STA
+OMI9   OCT     006000  ANA
+OMJ1   OCT     102000  JMP*
+OMJ2   OCT     101040  SNZ
+OMJ3   OCT     101400  SMI
+OMJ4   ALS     16
+OMJ5   OCT     040461  LGR 15
+OMJ6   OCT     141216  ACA
+OMJ7   OCT     140407  TCA
+OMK1   OCT     140401  CMA
+OMK2   OCT     101001  SSC
+OMK3   OCT     141206  AOA
+OMK4   OCT     140500  SSM
+OMK5   OCT     042000  JMP 0,1
+OMK6   OCT     000000  DAC  **
+       ALS     1       ALS1
+       TCA             TCA
+OMK7   OCT     176000  STG
+OMK9   CAS     0       CAS
+       STA*    0
+       SUB*    0
+       DAC*    **
+       OCT     131001
+       OCT     030000  SUBR
+       CAS*    0
+OMK8   OCT     0       (///)
+OML1   LDA     K101
+       STA     AT
+       JMP     OT10
+*
+*             ************
+*             *OUTPUT REL*
+*             ************
+*          ALSO DRIVES SYMBOLIC INSTRUCTION OUTPUT.
+OR00   DAC     **
+       STA     FTOP
+       LDA     K102    DF = NON ZER0
+       STA     DF      CODE = 2
+OR10   STA     CODE
+       LDA     RPL     LIST RPL
+       SSP
+       JST     OR80
+       DAC     PRI
+OR12   LDA     DF      IF DF NOT ZERO
+       SZE
+       JMP     OR20    GO TO OR20
+       LDA     OR18    ='147703
+       STA     PRI+5
+       LDA     OR19    SET 'OCT' INTO PRINT IMAGE
+       STA     PRI+6
+       LDA     FTOP
+OR13   JST     OR80
+       DAC     PRI+8
+OR15   LDA     RPL     IF RPL PLUS
+       SMI
+       JST     OW00    OUTPUT WORD
+       SR2
+       JMP     *+3     SURPRESS SYMBOLIC OUTPUT
+       CALL    F4$SYM  LIST LINE
+       DAC     PRI
+       JST     PRSP    SET PRINT BUFFER TO SPACES
+       JMP*    OR00    RETURN
+OR18   OCT     147703  (O)(C)
+OR19   OCT     152240  (T)(SP)
+OR20   JST     SAV
+       LDA     OR90    SEARCH OP-CODE LIST
+       TCA
+       STA     XR      PUT BCI IN PRINT IMAGE
+       LDA     FTOP
+       SSP
+       SZE
+       JMP     OR24
+       LDA     AT
+       CAS     K103
+       SUB     K106
+       ADD     K102
+       CMA
+       ANA     K107
+       STA     CODE
+OR24   LDA     FTOP
+       CAS     OR91+NINS,1
+       JMP     *+2
+       JMP     *+3
+       IRS     XR
+       JMP     *-4
+       LDA     OR92+NINS,1
+       STA     PRI+5
+       LDA     OR93+NINS,1
+       STA     PRI+6
+       JST     RST
+       LDA     A
+       SZE
+       JMP     OR30
+       LDA     AF
+       ANA     K111    MASK OUT HIGH BITS OF ADDRESS
+       JMP     OR13
+OR30   JST     STXA
+       LDA     DP,1
+       SMI
+       JMP     OR40
+       LDA     K149
+       STA     PRI+8   SET =' INTO LISTING
+       LDA     DP,1    CHECK IM (A)
+       LGL     4
+       SPL             SKIP IF NOT COMPLEX
+       JMP     *+4
+       LGL     2
+       SPL             SKIP IF INTEGER OR LOGICAL
+       JMP     *+3
+       LDA     DP+2,1
+       JMP     *+2     LIST EXPONENT AND PART OF FRACTION
+       LDA     DP+4,1  LIST INTEGER VALUE
+       JST     OR80    CONVERT OCTAL
+       DAC     PRI+9
+       JMP     OR15
+OR40   LDA     DP+4,1  CONVERT AND PACK INTO
+       ALR     1
+       SSM             SYMBOLIC IMAGE
+       ARR     1
+       SSM
+       STA     PRI+8
+       LDA     DP+3,1
+       STA     PRI+9
+       LDA     DP+2,1
+       STA     PRI+10
+       JMP     OR15
+*             ***********
+*             *OUTPUT ABS*
+*             ***********
+OA00   DAC     **
+       STA     FTOP
+       LDA     OA00
+       STA     OR00
+       CRA
+       JMP     OR10
+*             *******************
+*             *OUTPUT STRING-RPL*
+*             *******************
+OS00   DAC     00
+       STA     AF
+       LDA     OMK7
+       STA     FTOP
+       LDA     OS00
+       STA     OR00    SET RETURN INTO OUTPUT REL
+       LDA     K104
+       STA     CODE
+       STA     STFL    STRING FLAG = NON ZERO
+       JST     PRSP    SET PRINT BUF. TO SPACES
+       JMP     OR20    JMP-OUTPUT REL FOR SYMBOLIC AND BINARY
+OR80   DAC     **
+       IAB
+       LDA*    OR80
+       STA     OR89
+       CRA
+       LRR     2
+       IRS     OR80
+       JST     OR85
+       JST     OR85
+       JST     OR85
+       JMP*    OR80
+OR85   DAC     **
+       ADD     K140
+       LLR     3
+       LGL     5
+       ADD     K140
+       LLL     3
+       STA*    OR89
+       IRS     OR89
+       CRA
+       JMP*    OR85
+OR89   PZE     0
+OR90   DAC     NINS
+K200   EQU     OMI7
+K201   EQU     OMI5
+K202   EQU     OMI8
+K203   EQU     OMI4
+K204   EQU     OMI6
+K205   EQU     OMJ3
+K206   EQU     OMJ1
+K207   EQU     OMK5
+OR91   EQU     OMI1
+OR92   BCI     22,ADJSLDADJMSULDSTANJMSNSMLLLRACTCCMSSAOSSJMDA
+       BCI     2,ALTC
+       BCI     9,STCASTSUDAERSUCA//
+OR93   BCI     22,D*T A*D P B A A A P*Z I 1515A A A C A M PXC 
+       BCI     2,S1A 
+       BCI     9,G S A*B*C*R/BRS*/ 
+NINS   EQU     32
+*
+PRSP   DAC     **      SUBR. T0 SET PRINT BUF. T0 SPACES
+       LDA     PRSK    =-40
+       STA     0
+       LDA     KASP    (SP)(SP)
+       STA     PRI+40,1
+       IRS     0
+       JMP     *-2
+       JMP*    PRSP    EXIT
+PRSK   OCT     177730  =-40
+*
+*              *************************************
+*              *OUTPUT SUBROUTINE/COMMON BLOCK NAME*
+*              ************************************
+*           OUTPUT AN EXTERNAL REFERENCE NAME.
+*
+ON00   DAC     **
+       STA     ONT1    SAVE ADDRESS
+       JST     FS00    FLUSH BUFFER IF NECESSARY
+       JST     STXA    SET INDEX=A
+       LDA     ONT1    SUBR. ENTRY ADDR.
+       LRL     14
+       STA     ONT1    SAVE S/C BITS
+       LDA     ON02    ='600  (=BLOCK CODE NO.)
+       LLL     6
+       STA     OCI     FILL BUFFER
+       LRL     8
+       JST     STXA    SET INDEX=A
+       LDA     DP+4,1  FIRST 2 CHAR. 0F NAME
+       ANA     K111    ='037777
+       CAS     *+1
+       OCT     020240
+       ERA     K122
+       ERA     HBIT    ='140000
+       LRR     8
+       STA     OCI+1   BUFFER
+       LRL     8
+       LDA     DP+3,1  SECOND 2 CHAR. OF NAME
+       LRR     8
+       STA     OCI+2   BUFFER
+       LRL     8
+       LDA     DP+2,1  LAST 2 CHAR. OF NAME
+       LRR     B
+       STA     OCI+3   BUFFER
+       LLL     8
+       LGL     2
+       ADD     ONT1    S/C BITS
+       LGL     6
+       STA     OCI+4   BUFFER
+       CRA             SET SIZE = 0
+       STA     OCI+5   8UFFER
+       LDA     K128    ='14
+       STA     OCNT    SET 8LOCK SIZE (DOUBLED)
+       JST     FS00    FLUSH BUFFER
+       JMP*    ON00    EXIT
+ON02   OCT     600     BLOCK CODE NUMBER  (6)
+ONT1   OCT     0       TEMP STORE
+*
+K149   BCI     1,='
+K140   OCT     26
+*
+OW00   DAC     **
+       JST     SAV
+       LDA     RPL
+       SUB     ORPL
+       SPL
+       TCA
+       CAS     K101
+       JST     FS00    FLUSH BUFFER IF DIFFERENCE IN RPL'S N0T 1
+       NOP
+       LDA     OCNT
+       ADD     K103
+       CAS     K146
+       NOP
+       JST     FS00    FLUSH BUFFER
+       LDA     OCNT
+       ADD     K103  
+       STA     OCNT    OCNT = OCNT+3
+       SUB     K103
+       ARR     1       OCI (OUTPUT CARD IMAGE)
+       STA     XR
+       SMI             LEFT OR RIGHT POS.
+       JMP     OW20
+       JST     PU00
+       LRL     8       IF BUFFER FULL
+       IMA     OCI,1
+       ANA     K116    CALL FLUSH (FS0O)
+       ERA     OCI,1
+OW10   STA     OCI,1
+       IAB
+       STA     OCI+1,1
+       LDA     PRI+16
+       IAB
+       LDA     PRI+14  USE LOW BIT OF PRI+14 DATA
+       LLL     9
+       LGR     1       STRIP OFF HIGH BIT OF BLOCK CODE TYPE NO.
+       LLL     3       SET DIGITS IN PRI+17, PRI+19
+       JST     OR80
+       DAC     PRI+16
+       LDA     PRI+14
+       LRL     6
+       LGL     1       SHIFT ADDR. TO RIGHT BY 1 BIT
+       LLL     5
+       JST     OR80    SET DIGITS IN PRI+15, PRI+16
+       DAC     PRI+14
+       LDA     KASP    (SP)(SP)
+       SR1
+       JMP     OW14
+       STA     PRI+15  OVERWRITE BINARY DATA IN
+       STA     PRI+16  PRINT BUFFER WITH SPACES
+       STA     PRI+17  IF NO BINARY LISTING IS WANTED
+       STA     PRI+18
+OW14   STA     PRI+14
+       JST     RST
+       LDA     RPL
+       STA     ORPL    ORPL=RPL
+       CRA
+       IMA     STFL    INDICATE WORD WAS KEY TO LOADER
+       SNZ             THEN LEAVE RPL ALONE
+       IRS     RPL     RPL = RPL+1
+       JMP*    OW00
+STFL   PZE     0
+OW20   JST     PU00
+       JMP     OW10
+ORPL   PZE     0
+PU00   DAC     **
+       LDA     CODE    COMBINE CODES TO
+       CAS     K104    =4
+       NOP
+       JMP     PU10
+       SZE             SKIP IF ABS
+       JMP     PU10    JUMP IF REL.
+       LRL     8
+       LDA     FTOP
+PU08   LRL     4
+       STA     PRI+14  SAVE FOR LISTING
+       IAB
+       STA     PRI+16
+       LRR     12      RESTORE POSITION
+       JMP*    PU00
+PU10   LRL     4
+       LDA     AF
+       LRL     4
+       ERA     FTOP
+       JMP     PU08
+PU20   LRL     4
+       LDA     AF
+       ANA     K111
+       LRL     4
+       IMA     AF
+       ANA     K114
+       ERA     AF
+       JMP     PU08
+K114   OCT     14000
+K146   OCT     117
+* 
+*
+*             ******************
+*             *FLUSH SUBROUTINE*
+*             ******************
+FS00   DAC     **
+       LDA     OCNT    BUFFER OCCUPANCY SIZE
+       JST     SAV     SAVE INDEX REGESTER
+       SUB     K104    CHECK FOR OCNT .GT. 4
+       SPL
+       JMP     FS20    SKIP OUTPUT IF BUFFER IS EMPTY
+       ADD     K105    ADD 1/2 AT B14
+       ARS     1       DIVIDE BY 2
+       TCA
+       STA     OCNT    OCNT = -WORDS/BUFFER
+       SUB     K101    =1
+       STA     PCNT    BUFFER SIZE INCLUDING CHECKSUM
+       LDA     OCI     FIRST WORD IN BUFFER
+       LRL     12
+       CAS     K102    =2
+       JMP     *+2
+       JMP     FS30    BLOCK TYPE = 2 (RELOCATABLE CODE)
+*          EVERY TIME A BLOCK OF OBJECT OUTPUT IS DUMPED, THE FIRST
+*          3 WORDS OF THE BLOCK IS INSERTED IN THE SYMBOLIC OUTPUT
+*          ALONG WITH AN EOB OPERATOR CODE IF SENSE SWITCH 1 1S DOWN.
+*          TO INHIBIT THIS LINE, REPLACE FROM FS10 TO AND INCLUDING
+*          FS11 WITH    (FS10  CRA  ).
+FS10   SS1
+       JMP     FS11    N0 BINARY LISTING UNLESS SSW-1 IS DOWN
+       CALL    F4$SYM  OUTPUT WHATEVER MIGHT BE IN SYMBOLIC BUF.
+       DAC     PRI
+       LDA     FS41    =(E)(O)
+       STA     PRI+5   ENTER   'EOB'   INTO LISTING
+       LDA     FS41+1  =(B)(SP)
+       STA     PRI+6
+       LDA     OCI
+       JST     OR80    ENTER FIRST WORD FROM BUFFER INTO LISTING
+       DAC     PRI+8
+       LDA     OCI+1
+       JST     OR80    ENTER WORD 2 FROM BUFFER INTO LISTING
+       DAC     PRI+12
+       LDA     OCI+2
+       JST     OR80    ENTER WORD 3 FROM BUFFER INTO LISTING
+       DAC     PRI+16
+       CALL    F4$SYM  OUTPUT SYMBOLIC BUFFER
+       DAC     PRI
+       JST     PRSP    RESET SYMBOLIC BUFFER TO SPACES
+FS11   CRA
+       STA     0       COMPUTE CHECKSUM
+FS12   ERA     OCI,1   MERGE BUFFER WORD INTO CHECKSUM
+       IRS     0       INCREMENT BUFFER POSITION
+       IRS     OCNT    DECREMENT BUFFER SIZE
+       JMP     FS12
+       STA     OCI,1   SET CHECKSUM INTO BUFFER
+       LDA     PCNT    = NO. OF WORDS IN BUFFER
+       IMA     0
+       ADD     FS40    = OCI+1,1
+       CALL    F4$OUT  PUNCH BUFFER
+FS20   LDA     RPL     SET UP BUFFER FOR NEXT OUTPUT
+       LRL     8
+       ADD     K145    ='2000    (BLOCK CODE 2)
+       STA     OCI
+       IAB
+       STA     OCI+1   SET FIRST 2 WORDS OF BUFFER
+       LDA     K103    =O
+       STA     OCNT    RESET BUFFER OCCUPANCY SIZE
+       JST     RST     RESET INDEX REGISTER
+       JMP*    FS00    EXIT
+*
+FS30   LGL     6       MERGE BUFFER SIZE INTO BLOCK HEADER
+       SUB     OCNT    BUFFER SIZE
+       ADD     K101    =1  (ACCOUNT FOR CHECKSUM)
+       LLR     6
+       LGR     6
+       LLL     6       BRING IN UPPER HALF OF ADDRESSES
+       STA     OCI     STORE INTO BUFFER
+       JMP     FS10    COMPUTE CHECKSUM
+*
+FS40   DAC     OCI+1,1
+FS41   BCI     2,EOB   'EOB'
+K145   OCT     20000   BLOCK TYPE 2 CODE
+C499   OCT     060000
+*
+OCI    BSS     40      40 WORD CARD IMAGE INPUT BUFFER
+PRI    BSS     40      40 WORD PRINT BUFFER
+       BCI     20,                                        
+       BSS     30      COMPILER PATCH AREA
+*
+*             ***********************
+*             *IOS (AND IOL) GO HERE*
+*             ***********************
+*
+       END     A0
index b721b01ca2b0a85a018761b21776010592cf8a70..42a36caeb17ebea3f219c9ef7c76dbf3e4bfdb23 100644 (file)
@@ -7,6 +7,7 @@ C
  1000 CALL PL$RST
 C
       CALL GITTER
+      CALL PL$PU
 C
       CALL PL$MV(0,0)
       CALL DOWN
@@ -75,14 +76,13 @@ C
       END
 C
 C     
-      SUBROUTINE LINE(X1,Y1,X2,Y2)
-      INTEGER X1,Y1,X2,Y2
-      CALL PL$MV(X1,Y1)
-      CALL PL$PD
-      CALL PL$MV(X2,Y2)
-      CALL PL$PU
-      RETURN
-      END
+C      SUBROUTINE LINE(X1,Y1,X2,Y2)
+C      CALL PL$MV(X1,Y1)
+C      CALL PL$PD
+C      CALL PL$MV(X2,Y2)
+C      CALL PL$PU
+C      RETURN
+C      END
 CCCCCCCCCC
 C
       SUBROUTINE DOWN