Personal tools
You are here: Home Projects FORTRAN and FORTRAN II Source Code ibsys FORTRAN 32K 709/7090 FORTRAN ASSEMBLY PROGRAM - MACRO-FAP
Document Actions

32K 709/7090 FORTRAN ASSEMBLY PROGRAM - MACRO-FAP

by Paul McJones last modified 2005-06-01 20:10
$JOB   ASSEMBLY OF MONITOR, COMPILER SECTIONS 1 THROUGH 6 OF           $00000010
$*     FORTRAN II PROCESSOR, 7090-FO-928                                00000020
$*     VERSION 3, MODIFICATION LEVEL 35                             (35)00000030
$EXECUTE       IBSFAP                                                  $00000050
*      32K 709/7090 FORTRAN ASSEMBLY PROGRAM   MACRO-FAP                F0D00000
*      FAP                                                              F0D00010
*      32K 709/7090 FORTRAN ASSEMBLY PROGRAM   MACRO-FAP                F0D00020
       COUNT   10000                                                    F0D00030
       TITLE                                                            F0D00040
       ABS                                                              F0D00050
       SST     FORTRAN                                                 $F0D00060
       HEAD    4,5            COMMON TO PASS ONE AND TWO                F0D00070
       REM     PARAMETERS VARIABLE AT ASSEMBLY TIME                     F0D00080
       REM                                                              F0D00090
INPREM SYN     0              NUMBER OF WORDS PRECEDING PACKED RECORD   F0D00100
INPRCL SYN     16             LENGTH OF INTERMEDIATE RECORD             F0D00110
INPBKL SYN     16*INPRCL+INPREM LENGTH OF PACKED INTERMEDIATE BUFFER    F0D00120
UPDRCL SYN     14             LENGTH OF UPDATE INPUT/OUTPUT RECORD      F0D00130
UPDBKL SYN     16*UPDRCL      LENGTH OF UPDATE INPUT/OUTPUT BUFFER      F0D00140
TOPTAB SYN     BOTIOP-1       TOP OF AVAILABLE TABLE BUFFERS            F0D00150
BOTBUF SYN     TOPTAB-6*UPDBKL-2*INPBKL-214                             F0D00160
BOTTAB SYN     BOTTOM+7900    LOWER LIMIT FOR DATA TABLE SPACE          F0D00170
       REM                                                              F0D00180
M      SYN     1              TABLE FACTORS                             F0D00190
N      SYN     1                                                        F0D00200
LOPTBM SYN     2048           MAXIMUM LENGTH OF MACHINE OPERATION TABLE F0D00210
LMXTBL SYN     1000*M/N       MACRO EXPANSION TABLE LENGTH              F0D00220
LLITBL SYN     500*M/N*2      LITERAL TABLE LENGTH                      F0D00230
LTVTBL SYN     250*M/N        TRANSFER VECTOR TABLE LENGTH              F0D00240
LSMTBM SYN     BOTBUF-LLITBL-LTVTBL-BOTTAB                              F0D00250
       REM                    MAXIMUM LENGTH OF SYMBOL AND REF TABLES   F0D00260
LUDTBM SYN     LSMTBM/100     MAXIMUM LENGTH OF UNDEFINED SYMBOL TABLE  F0D00270
       REM                                                              F0D00280
       REM                                                              F0D00290
     T EQU     16             MAXIMUM NUMBER OF LOGICAL TAPES IN SYSTEM F0D00300
     C EQU     4              MAXIMUM NUMBER OF DATA CHANNELS IN SYSTEM F0D00310
       REM                    C MUST BE A MULTIPLE OF 2                 F0D00320
       REM                                                              F0D00330
 EXPRR SYN     1              SENSE LIGHT FOR ERROR ON EXPRESSION       F0D00340
 EXPND SYN     2              SENSE LIGHT FOR END OF EXPRESSION         F0D00350
 FLDND SYN     4              SENSE LIGHT FOR END OF VARIABLE FIELD     F0D00360
       REM                                                              F0D00370
 TDMSK BOOL    000001         FLAG FOR TYPE D SENSE OPERATION           F0D00380
 VLMSK BOOL    000002         FLAG FOR VARIABLE LENGTH OPERATION        F0D00390
 TKMSK BOOL    000004         FLAG FOR TYPE K DISC COMMAND              F0D00400
 9OMSK BOOL    020000         FLAG FOR OPERATIONS RESTRICTED TO 709/90  F0D00410
 04MSK BOOL    040000         FLAG FOR OPERATIONS RESTRICTED TO 704     F0D00420
       TTL     COMMON SUBROUTINES, CONSTANTS AND ERASABLE               F0D00430
       LBL     9F04,X                                                   F0D00440
       ORG     SYSCUR                                                  $F0D00450
       BCI     1,9F0400                                                $F0D00460
       ORG     (LODR)                                                  $F0D00470
       TXI     START,,40               ENTRY POINT,,RECORD NUMBER       F0D00480
       REM                                                              F0D00490
       ORG     BOTTOM-7      LOAD INFORMATION FOR MACHINE ERROR RECORD $F0D00494
       PZE     INRECT+1,,4   ORIGIN OF REC. COUNT TABLE,,LENGTH        $F0D00495
       REM                                                              F0D00500
       ORG     BOTTOM                                                   F0D00520
       REM                                                              F0D00530
       REM     TRANSFER VECTOR                                          F0D00540
       REM                                                              F0D00550
 CHANS PZE     C              NUMBER OF CHANNELS IN SYSTEM              F0D00560
SYSAST PZE     T              NUMBER OF TAPES ASSIGNED TO SYSTEM        F0D00570
SYSTPS PZE     7             NUMBER OF TAPES RESERVED TO MONITOR       $F0D00580
       REM                                                              F0D00590
       REM     ERASABLE INFORMATION TRANSMITTED BETWEEN PASSES          F0D00600
MAINPF PZE     ,,1            FLAG FOR MAIN PROGRAM (ZERO IF SUBPROGRAM)F0D00610
ABSFLG PZE     **             FLAG FOR ABSOLUTE ASSEMBLY                F0D00620
ONLCFG PZE     **             FLAG FOR ONLINE COLUMN BINARY CARDS       F0D00630
OFLCFG PZE     **             FLAG FOR OFFLINE COLUMN BINARY CARDS      F0D00640
CRDFLG PZE     **             FLAG FOR ONLINE CARDS                     F0D00650
LBLFLG PZE     **             FLAG FOR OFFLINE CARD LABEL AND SERIAL    F0D00660
IPTFLG PZE     **             FLAG FOR UPDATE INPUT TAPE                F0D00670
OPTFLG PZE     **             FLAG TO WRITE UPDATE OUTPUT TAPE          F0D00680
PAKFLG PZE     **,,**         FLAG TO UNPACK UPDATE OUTPUT TAPE         F0D00690
DELFLG PZE     **             FLAG TO DELETE ASSEMBLY                   F0D00700
SEPFLG SVN     -1,-1,-1       FLAG FOR STANDARD ERROR PROCEEDURE        F0D00710
       REM                    SET TO PZE BY 9F04FLOW                    F0D00720
       REM                    TO DELETE STANDARD ERROR PROCEDURE        F0D00730
LITSIZ PZE     22,,**         LOG LLITBL,,LITERAL TABLE COUNT           F0D00740
       REM                    (LITERAL TABLE LIMITED TO 1024 ENTRIES)   F0D00750
 PRGBK PZE     **             CURRENT PROGRAM BREAK                     F0D00760
 PROLG PZE     **             LENGTH OF VECTOR, LINKAGE DIRECTOR        F0D00770
       REM                                                              F0D00780
       REM     ERASABLE INFORMATION RESET BETWEEN PASSES                F0D00790
CHRCTR PZE                    NEXT CHARACTER IN VARIABLE FIELD          F0D00800
RESIDU PZE                    REMAINDER OF NEXT WORD IN VARIABLE FIELD  F0D00810
 UPCTR PZE     -207,,2        COMMON STORAGE COUNTER,,RELOCATION BIT    F0D00820
 CDCTR PZE     **             ABS CARD ORIGIN COUNTER                   F0D00830
 LOCTR PZE     **,,1          PROGRAM COUNTER,,RELOCATION BIT           F0D00840
 ADDRS PZE     **,,1          DEFINITION OF SYMBOL,,RELOCATABLE FLAG    F0D00850
 OPCOD PZE                    OP FIELD (CC 8 - 13)                      F0D00860
       DEC     ,,,,,,,,,      MULTIPLE HEAD CHARACTERS (PRECEDE BHEAD)  F0D00870
 BHEAD PZE                    HEADING CHARACTER                         F0D00880
 THEAD PZE                    HEADING CHARACTER PRECEDING $             F0D00890
 SYMB2 PZE                    HIGH ORDER SIX CHARACTRS ALPHAMERIC FIELD F0D00900
 SYMBL PZE                    LOW ORDER SIX CHARACTERS ALPHAMERIC FIELD F0D00910
 VFDFL PZE                    LOW ORDER HALF OF VARIABLE FIELD          F0D00920
       PZE                    HIGH ORDER HALF OF VARIABLE FIELD         F0D00930
 BINRY PZE                    36 BIT BINARY INSTRUCTION, DATA WORD      F0D00940
 NERAS PZE                    INTEGER FIELD                             F0D00950
 XERAS PZE                    EXPONENT (E) FIELD                        F0D00960
 BERAS PZE                    BINARY (B) FIELD                          F0D00970
 ERASE PZE                    GENERAL ERASABLE                          F0D00980
 OFLGS PZE                    FLAGS FOR DECODING OF MACHINE INSTRUCTION F0D00990
 VRFLD PZE     **,,**         CHARACTER COUNT,,WORD COUNT               F0D01000
 INDFG PZE     **             FLAG FOR INDIRECT ADDRESS OP CODE         F0D01010
 RBITS PZE     **             RELOCATION BITS FOR FIELD                 F0D01020
 INDIC PZE     **,,**         RELOCATION BITS FOR WORD                  F0D01030
 DUPCT PZE     ,,**           NUMBER OF ITERATIONS IN RANGE OF DUP CARD F0D01040
       PZE     **             PROGRAM COUNTER AT ENTRY INTO RANGE       F0D01050
       PZE     **             CARD COUNTER AT ENTRY INTO RANGE          F0D01060
 DUPFG PZE     **             FLAG TO UNBLOCK INTERMEDIATE TAPE         F0D01070
 SKDUP MZE     **             RANGE OF DUP TO BE BACKSPACED             F0D01080
 TVFLG PZE     **             FLAG FOR NAME IN TRANSFER VECTOR          F0D01090
 OPRFG PZE     **             FLAG FOR UNDEFINED OPERATION              F0D01100
 VFDRB PZE     **             NUMBER OF BITS REMAINING IN WORD          F0D01110
 VFDTB PZE     **             TOTAL BIT COUNT IN VAR FIELD OF VFD CARD  F0D01120
 VFDFB PZE     **             FIELD BIT COUNT IN VAR FIELD OF VFD CARD  F0D01130
 ELMEQ PZE     **             VALUE OF ELEMENT                          F0D01140
 ELMUN PZE     **             NUMBER OF SYMBOLS IN ELEMENT              F0D01150
 ELMUF PZE     **             FLAG FOR SYMBOLS IN ELEMENT               F0D01160
       REM                     0 ABSOLUTE                               F0D01170
       REM                    -1 COMMON                                 F0D01180
       REM                    +1 RELOCATABLE                            F0D01190
 TRMEQ PZE     **             VALUE OF TERM                             F0D01200
 TRMUN PZE     **             NUMBER OF SYMBOLS IN TERM                 F0D01210
 TRMUF PZE     **             FLAG FOR SYMBOLS IN TERM                  F0D01220
 VAREQ PZE     **             VALUE OF EXPRESSION                       F0D01230
 VARUC PZE     **             NUMBER OF COMMON SYMBOLS IN EXPRESSION    F0D01240
 VARUR PZE     **             NUMBER OF RELOCATABLE SYMBOLS IN EXPRSSN  F0D01250
 LINKG PZE     **             LOCATION OF LINKAGE DIRECTOR              F0D01260
 9LPMD PZE     **             FLAG FOR BINARY CONTROL CARD FORMAT       F0D01270
 FULMD PZE     **             FLAG FOR BINARY CARD FUL FORMAT           F0D01280
 BOLMD PZE     **             FLAG FOR BOOLEAN FIELD                    F0D01290
 DUPMD PZE     **             FLAG FOR RECORD WITHIN RANGE OF DUP       F0D01300
 ETCMD PZE     **             FLAG FOR FOLLOWING CARD A CALL OR VFD ETC F0D01310
 FCFLG PZE     **             FLAG FOR FIRST CARD GROUP COMPLETED       F0D01320
 SCNBC PZE     **             FLAG FOR BOOLEAN COM                      F0D01330
 SCNBE PZE     **             FLAG FOR BOOLEAN ERA                      F0D01340
 SCNFC PZE     **             FLAG FOR FIRST CHARACTER IN ELEMENT       F0D01350
 VFDPF PZE     **             MEDAL FOR 36 BIT VFD                      F0D01360
 VFDMD PZE     **             FLAG FOR VFD CARD                         F0D01370
 VFDHF PZE     **             HOLLERITH FIELD FLAG                      F0D01380
 VFDOF PZE     **             OCTAL FIELD FLAG                          F0D01390
 NOGOF PZE     **             FLAG FOR ASSEMBLY ERROR                   F0D01400
 TYPAF PZE     **             FLAG FOR TYPE A 0 00000 0 00000 INSTRUCTN F0D01410
 TYPCF PZE     **             FLAG FOR TYPE C VARIABLE LENGTH INSTRUCTN F0D01420
       REM                    OR TYPE K WITH HIGH ORDER COUNT FIELD     F0D01430
 TYPDF PZE     **             FLAG FOR TYPE D 0 00000  000000 INSTRUCTN F0D01440
 TYPKF PZE     **             FLAG FOR TYPE K 00 0000 0 00000 COMMAND   F0D01450
 OPFLG PZE     **             FLAG FOR OP DEFINITION PSEUDOOPERATION    F0D01460
 UNL1F PZE     **             PRELIMINARY FLAG TO SUSPEND LISTING       F0D01470
 UNLSF PZE     **             FLAG TO SUSPEND LISTING                   F0D01480
 TITLF PZE     **             FLAG TO SUSPEND LISTING OF GENERATED DATA F0D01490
 LBLFG PZE     **             BINARY CARD NUMBER LISTING FLAG           F0D01500
 PRTFG PZE     **             FLAG FOR ONLINE PRINTING OF ONE LINE      F0D01510
 PRTF1 PZE     **             PRELIMINARY FLAG FOR ONLINE PRINT         F0D01520
 DCNFG PZE     **             FLAG FOR DECIMAL POINT IN DECCV           F0D01530
 DCXFG PZE     **             FLAG FOR DECIMAL EXPONENT (E) IN DECCV    F0D01540
 DCBFG PZE     **             FLAG FOR BINARY EXPONENT (B) IN DECCV     F0D01550
 PRTIF PZE     **             FLAG FOR MACHINE INSTRUCTION IN PRINT     F0D01560
 704FG PZE     **             FLAG FOR ASSEMBLY IN 704 MODE             F0D01570
 ORDRF PZE     **             FLAG FOR INPUT CARD OUT OF ORDER          F0D01580
 TTLFG PZE     -1             FLAG TO PRINT SUBHEAD (PRESET FOR PASS 1) F0D01590
 P1FLG PZE     **             PASS 1 FLAGS TRANSMITTED TO PASS 2        F0D01600
       REM                    AS LOW ORDER 18 BITS OF WORD 14          $F0D01610
       REM                    BIT 35 PHASE ERROR                        F0D01620
       REM                        34 FOLLOWING CARD IS ETC              F0D01630
       REM                        33 FIELD ERROR                        F0D01640
       REM                        32 LITERAL ERROR                      F0D01650
       REM                        31 UNRECOGNIZED PSEUDOOP              F0D01660
       REM                        30 MACRO GENERATED CARD               F0D01670
       REM                        29 MISSING PSEUDOOP VARIABLE FIELD    F0D01680
       REM                        18 - 27 MACRO LEVEL NUMBER           $F0D01690
       REM                                                              F0D01700
       REM     FLAGS FOR ERRORS ON INPUT CARDS                          F0D01710
 DCPFG PZE     **             FLAG FOR EXCESS DECIMAL POINT            $F0D01720
 DCEFG PZE     **             FLAG FOR EXCESS EXPONENT (E)             $F0D01721
 DC2FG PZE     **             FLAG FOR EXCESS EXPONENT (B)             $F0D01722
 ERFDL PZE     **              IMPROPER DOLLAR SIGN                    $F0D01723
 ERRFU PZE     **             UNDEFINED SYMBOL                          F0D01730
 ERRFM PZE     **             MULTIPLY DEFINED SYMBOL                   F0D01740
 ERRFR PZE     **             RELOCATION ERROR                          F0D01750
 ERRFP PZE     **             PHASE ERROR                               F0D01760
 ERRFL PZE     **             LITERAL ERROR                             F0D01770
 ERRFO PZE     **             ILLEGAL OPERATION CODE                    F0D01780
 ERRFE PZE     **             VACUUM CLEANER                            F0D01790
 ERRFB PZE     **             BOOLEAN (OCTAL) ERROR                     F0D01800
       REM     FOLLOWING ERRORS ARE NON FATAL                           F0D01810
 ERRFN PZE     **             IMPROPER OP CODE                          F0D01820
 ERR49 PZE     **             MIXED MODE OPCODE                         F0D01830
 ERRFA PZE     **             MISSING ADDRESS                           F0D01840
 ERRFT PZE     **             MISSING TAG                               F0D01850
 ERRFD PZE     **             MISSING DECREMENT                         F0D01860
 ERRFI PZE     **             IMPROPER INDIRECT ADDRESS                 F0D01870
 ERRFF PZE     **             EXCESSIVE FIELD                           F0D01880
 ERFFM PZE     **             NON-FATAL MULTIPLY DEFINED SYMBOL         F0D01890
 EFLST PZE     *-ERRFN,,*-ERFDL NONFATAL LIST,,LENGTH OF ERROR LIST    $F0D01900
       REM     ADDITIONAL INFORMATION TRANSMITTED BETWEEN PASSES       $F0D01901
       REM                                                             $F0D01902
EVNFLG PZE     **             FLAG FOR EVEN CONTAINED IN PROGRAM       $F0D01903
       REM                                                             $F0D01904
       REM     ERROR CHARACTERS                                         F0D01910
       DEC     ,              PATCH SPACE                              $F0D01920
       BCI     1,$                                                     $F0D01921
       BCI     1,U                                                      F0D01930
       BCI     1,M                                                      F0D01940
       BCI     1,R                                                      F0D01950
       BCI     1,P                                                      F0D01960
       BCI     1,L                                                      F0D01970
       BCI     1,O                                                      F0D01980
       BCI     1,E                                                      F0D01990
       BCI     1,B                                                      F0D02000
       REM     FOLLOWING ERRORS ARE NONFATAL                            F0D02010
       BCI     1,N                                                      F0D02020
 FLG49 BCI     1,4            RESET TO 9 FOR 704 MODE CHANGE            F0D02030
       BCI     1,A                                                      F0D02040
       BCI     1,T                                                      F0D02050
       BCI     1,D                                                      F0D02060
       BCI     1,I                                                      F0D02070
       BCI     1,F                                                      F0D02080
       BCI     1,M                                                      F0D02090
 EFCHR SYN     *                                                        F0D02100
       REM                                                              F0D02110
       REM                                                              F0D02120
PGHDNG BCI     8,1                                                      F0D02130
       BCI     8,                                                       F0D02140
       BCI     2, PAGE 1                                                F0D02150
       REM                                                              F0D02160
BLANKS BCI     3,                                                       F0D02170
       BCI     5,PREPROCESSOR UPDATE PROGRAM                            F0D02180
       BCI     6,                                                       F0D02190
       REM                                                              F0D02200
PBUFF1 MZE     ,,4            PUNCH OUTPUT BUFFER                       F0D02210
       DEC     ,,,,,,,,,,,,,,,,,,,,,,                                   F0D02220
IDBUFF DEC     ,,,            CARD SERIAL BUFFER + ONE WORD SKEW SPACE  F0D02230
       REM                                                              F0D02240
       REM     BCD CARD BUFFERS                                         F0D02250
       REM                                                              F0D02260
 PFLAG DEC                    ERROR FLAGS                               F0D02270
       REM                    OCTAL EXPANSION OF MACHINE INSTRUCTION(23)F0D02275
 OCTAL DEC     ,,,                                                  (27)F0D02280
       REM                    (THIS BUFFER MUST PRECEDE BCDBF)          F0D02290
 BCDBF DEC     ,,,,,,,,,,,,,  SOURCE DECK WORKING BUFFER                F0D02300
 LITRL DEC                    VALUE OF LITERAL OR PSEUDOOP DEFINITION   F0D02310
 OPBIN DEC                    BINARY INSTRUCTION, PSEUDOOP TRANSFER     F0D02320
       REM                    (LITRL AND OPBIN MUST FOLLOW BCDBF)       F0D02330
       REM                                                              F0D02340
 INSBF BCI     9,                                                       F0D02350
       BCI     8,                                     INSERTED          F0D02360
       REM                                                              F0D02370
 DELBF BCI     9,                                                       F0D02380
       BCI     8,      THE FIRST CARD IN THIS DECK IS DELETED           F0D02390
       REM                                                              F0D02400
 ORDBF BCI     9,                                                       F0D02410
       BCI     9,                                           ORDER ERROR F0D02420
       REM                                                              F0D02430
       REM                                                              F0D02440
       REM     COMMON ROUTINES                                          F0D02450
       REM                                                              F0D02460
       REM     WRITE LINE ON AND OFF LINE                               F0D02470
       REM                    CALL IS TSX FPRINT,4                      F0D02480
       REM                            PZE FWORD,,COUNT                  F0D02490
       REM                           (MZE FWORD,,COUNT FORCE PRINTING)  F0D02500
       REM                           (         ,,0     BLANK LINE)      F0D02510
FPRINT SXA     FPRNX,4        SAVE CALLING LINKAGE                      F0D02520
       SXA     FPRNX+1,2      SAVE WORD COUNT                           F0D02530
       SXA     FPRNX+2,1      SAVE CHARACTER COUNT                      F0D02540
       CLA     1,4            LOAD PARAMETER                            F0D02550
       STA     FPRN2          INITIALIZE I/O COMMAND                    F0D02560
       STD     FPRN2                                                    F0D02570
       PDX     ,2             LOAD WORD COUNT                           F0D02580
PAGCNT AXT     **,1           LOAD PAGE LINE COUNT                  (20)F0D02590
PAGENO AXT     **,4           LOAD PAGE NUMBER                      (20)F0D02600
       TXH     FPRN0,2,0     IS BLANK LINE REQUESTED                   $F0D02610
       LDQ     IOBLK         YES,LOAD PARAMETER FOR BLANK LINE         $F0D02620
       STQ     FPRN2         INITIALIZE I/O COMMAND                    $F0D02630
       TXL     FPRN0,1,0      IS BLANK LINE AT TOP OF PAGE          (20)F0D02640
       TXH     FPRN0,1,4      IS BLANK LINE AT BOTTOM OF PAGE       (20)F0D02650
       ZSA     PAGCNT         YES, EJECT PAGE                       (20)F0D02660
       TXH     FPRNX,4,0      TRANSFER IF NOT FIRST PAGE            (20)F0D02670
       REM     LINE IS NOT BLANK,OR NOT AT BOTTOM OF PAGE           (20)F0D02680
 FPRN0 TPL     *+2            IS THIS LINE FORCED                   (20)F0D02690
       STL     PRTF1          YES,SET FLAG                          (20)F0D02700
       TIX     FPRN1,1,1      IS PAGE FULL                          (20)F0D02710
       TXI     *+1,4,1        YES, BUMP PAGE NUMBER                 (20)F0D02720
       SXA     PAGENO,4                                             (20)F0D02730
       PXA     ,4             LOAD NEW PAGE NUMBER                      F0D02740
       TSX     BCDCV,4       *CONVERT TO BCD                            F0D02750
       LDQ     BLANKS         APPEND FOLLOWING BLANKS                   F0D02760
       LGR     6              LEFT ADJUST                               F0D02770
       TNZ     *-1                                                      F0D02780
       STQ     PGHDNG+17      INSERT IN PAGE HEADING                    F0D02790
       TSX     WRITT,4       *WRITE PAGE HEADING                        F0D02800
       IOCD    PGHDNG,,18                                               F0D02810
       NZT     TTLFG          IS SUBTITLE SPECIFIED                     F0D02820
       TRA     *+3            NO                                        F0D02830
       TSX     WRITT,4       *YES, WRITE IT                             F0D02840
 IOHED IOCD    BLANKS,,14                                               F0D02850
       TSX     WRITT,4       *WRITE BLANK LINE                          F0D02860
 IOBLK IOCD    BLANKS,,3                                                F0D02870
       CLA    (PGCT)          RESET LINE COUNT                          F0D02880
       PDX     ,1                                                       F0D02890
       ZET     TTLFG          IS SUBTITLE SPECIFIED                     F0D02900
       TXI     *+1,1,-1       YES, BUMP PAGE LINE COUNT DOWN ONE        F0D02910
       TRA     PATCH                                                   $F0D02920
 FPRN1 CLA     PRTF1          NO, SET ONLINE PRINT FLAG                 F0D02930
       STO     PRTFG                                                    F0D02940
       STZ     PRTF1          RESET INTERMEDIATE FLAG                   F0D02950
       TSX     FPRNA,4       *TEST FOR PRINT CONTROL, SET XR4          $F0D02960
 FPRN2 IOCD    **,,**                                                   F0D02970
       SXA     PAGCNT,1       SAVE PAGE LINE COUNT                      F0D02980
 FPRNX AXT     **,4           RELOAD CALLING LINKAGE                    F0D02990
       AXT     **,2           RELOAD WORD COUNT                         F0D03000
       AXT     **,1           RELOAD CHARACTER COUNT                    F0D03010
       TRA     2,4                                                      F0D03020
       REM                                                              F0D03030
       REM     BLOCK LISTING OUTPUT TAPE                                F0D03040
 WRITT SXA     WRITX,4        SAVE CALLING LINKAGE                      F0D03050
       SXA     WRITX+1,2      SAVE WORD COUNT                           F0D03060
       SXA     WRITX+2,1      SAVE LINE COUNT                           F0D03070
       AXT     **,1           LOAD BLOCK WORD COUNT                     F0D03080
       LAC     WRBLK+1,2      LOAD BUFFER INDEX                         F0D03090
       TXL     *+4,1,0        IS THIS FIRST LINE IN BLOCK               F0D03100
       CAL     RECMK          NO, INSERT RECORD MARK                    F0D03110
       SLW*    BCD14+1,2      FOLLOWING LAST WORD OF PREVIOUS LINE      F0D03120
       TXI     *+1,1,-1       BUMP COUNT TO NEXT WORD IN BLOCK          F0D03130
       CAL     1,4            LOAD PARAMETER                            F0D03140
       STO     WRIT1+2        INITIALIZE PRINT I/O PARAMETER            F0D03150
       PDX     ,4             LOAD WORD COUNT                           F0D03160
       SXA     XERAS,4                                                  F0D03170
       ADM     XERAS          COMPUTE ORIGIN AT END OF BUFFER           F0D03180
       STA     *+1            INITIALIZE COPY LOOP                      F0D03190
       CAL     **,4           MOVE NEXT WORD                            F0D03200
       SLW*    BCD14+1,2      INTO OUTPUT BUFFER                        F0D03210
       TXI     *+1,1,-1       BUMP TO NEXT WORD IN BLOCK                F0D03220
       TIX     *-3,4,1        IS LINE COMPLETE                          F0D03230
       SXA     WRITT+3,1      YES, SAVE BLOCK WORD COUNT                F0D03240
 WRIT0 AXT     **,4           BUMP BLOCK LINE COUNT                     F0D03250
       TXI     *+1,4,1                                                  F0D03260
       SXA     WRIT0,4                                                  F0D03270
       TXH     *+2,4,-1       IS LISTING TAPE TO BE UNBUFFERED          F0D03280
       TXL     *+2,4,4        NO, IS BLOCKED BUFFER FULL                F0D03290
       TSX     WRBLK,4       *YES, WRITE BUFFER                         F0D03300
 WRITS NOP                    IS THIS LINE MONITORED                    F0D03310
       TRA     *+2            NO                                        F0D03320
       TRA     *+3            YES                                       F0D03330
       NZT     PRTFG          IS THIS LINE FORCED                       F0D03340
 WRIT1 TXL     WRITX,4,-1     NO, IS ONLINE PRINT SPECIFIED             F0D03350
       TSX    (PRNT),4       *YES, PRINT LINE                           F0D03360
       PZE     **,,**                                                   F0D03370
       SXA     PRTFG,0        RESET FLAG                                F0D03380
 WRITX AXT     **,4           RELOAD CALLING LINKAGE                    F0D03390
       AXT     **,2           RELOAD WORD COUNT                         F0D03400
       AXT     **,1           RELOAD LINE COUNT                         F0D03410
       TRA     2,4                                                      F0D03420
 RECMK OCT     606060606072   720 PRINTER RECORD MARK                   F0D03430
       REM                                                              F0D03440
       REM     WRITE FINAL BLOCK ON LISTING TAPE                        F0D03450
 WRFBK SXA     WRFBX,4        SAVE CALLING LINKAGE                      F0D03460
       LXA     WRITT+3,1      LOAD BLOCK WORD COUNT                     F0D03470
       TXL     WRFBX,1,0      IS BLOCK EMPTY                            F0D03480
       LAC     WRBLK+1,2      NO, LOAD BUFFER INDEX                     F0D03490
       CAL     FRCMK          INSERT 720 PRINTER NOP                    F0D03500
       SLW*    BCD14+1,2      FOLLOWING LAST LINE                       F0D03510
       TXI     *+1,1,-1       BUMP WORD COUNT                           F0D03520
       SXA     WRITT+3,1                                                F0D03530
       TSX     WRBLK,4       *WRITE LAST BUFFER                         F0D03540
 WRFBX AXT     **,4           RELOAD CALLING LINKAGE                    F0D03550
       TRA     1,4                                                      F0D03560
 FRCMK OCT     606060607260   720 PRINTER NOP                           F0D03570
       REM                                                              F0D03580
       REM     WRITE BLOCKED/UNBLOCKED LISTING OUTPUT TAPE              F0D03590
 WRBLK SXA     WRBLX,4        SAVE CALLING LINKAGE                      F0D03600
       AXC     1,2            LOAD BUFFER INDEX                         F0D03610
       SXA     *-1,2          FLIP BUFFER INDEX                         F0D03620
       LAC     WRITT+3,1      LOAD BLOCK WORD COUNT                     F0D03630
       TXL     WRBLX,1,0      IS BLOCK EMPTY                            F0D03640
       PXD     ,1             NO, INITIALIZE I/O COMMAND WORD COUNT     F0D03650
       STD     BCD14,2                                                  F0D03660
       TSX    (TAPE),4       *WRITE BLOCKED/UNBLOCKED RECORD            F0D03670
       PZE     BCD14,2,(WDNP)                                           F0D03680
       PZE     ,,MLSTAP                                                 F0D03690
       CAL*   (LNCT)          BUMP LINE COUNT                           F0D03700
       ADM     WRIT0                                                    F0D03710
       STA*   (LNCT)                                                    F0D03720
 WRBLX AXT     **,4           RELOAD CALLING LONKAGE                    F0D03730
       SXA     WRITT+3,0      RESET BLOCK WORD COUNT                    F0D03740
       SXA     WRIT0,0        RESET BLOCK LINE COUNT                    F0D03750
       TRA     1,4                                                      F0D03760
       REM                                                              F0D03770
       REM     ASSEMBLE UNIFORM SYMBOL                                  F0D03780
 LOCFL SXA     LOCFX,4        SAVE CALLING LINKAGE                      F0D03790
       STZ     SYMBL          CLEAR WORKING STORAGE                     F0D03800
       LAS     BLANKS         IS SYMBOL ALL BLANKS                      F0D03810
       TRA     *+2            NO                                        F0D03820
       TRA     LOCF2          YES                                       F0D03830
       XCL                    RECALL SYMBOL                             F0D03840
       AXT     6,4            PREPARE TO SCAN SIX CHARACTERS            F0D03850
 LOCF1 PXD     ,0                                                       F0D03860
       LGL     6              GET NEXT CHARACTER                        F0D03870
       LAS     BLANK          IS IT BLANK                               F0D03880
       TRA     *+2            NO                                        F0D03890
       TRA     *+5            YES                                       F0D03900
       LGR     6              ADD NONBLANK CHARACTER                    F0D03910
       CAL     SYMBL                                                    F0D03920
       LGL     6                                                        F0D03930
       SLW     SYMBL          SAVE PARTIAL SYMBOL                       F0D03940
       TIX     LOCF1,4,1      IS SYMBOL ASSEMBLED                       F0D03950
 LOCF2 CAL     SYMBL          YES, RELOAD UNIFORM SYMBOL                F0D03960
 LOCFX AXT     **,4           RELOAD CALLING LINKAGE                    F0D03970
       TRA     1,4                                                      F0D03980
       REM                                                              F0D03990
       REM     SET UP OPCODE, VARIABLE FIELD                            F0D04000
 SETUP SXA     STUPX,4        SAVE CALLING LINKAGE                      F0D04010
       STZ     INDFG          RESET INDIRECT ADDRESS FLAG               F0D04020
       REM     CHECK FOR COMMENTS CARD                              (24)F0D04030
       CAL     BCDBF          LOAD CARD WORD 1                      (24)F0D04040
       LGR     30             ISOLATE COLUMN 1                      (24)F0D04050
       ERA     ASTRK         IS THIS COMMENTS CARD                     $F0D04060
       TZE     1,4           YES                                       $F0D04070
       ERA     Q7            IS IT A DOLLAR SIGN                       $F0D04071
       TZE     1,4           YES                                       $F0D04072
       AXC     1,2            NO, INITIALIZE WORD AND               (24)F0D04080
       AXT     6,1            CHARACTER POSITIONS FOR OP CODE SCAN  (24)F0D04090
       CAL     BCDBF+1        CHECK FOR ASTERISK IN COLUMN 7 (UGH)  (24)F0D04100
       LGR     30             POSSIBLE IF IN IBSFAP MODE            (24)F0D04110
       ERA     ASTRK          IS IT BY CHANCE                       (24)F0D04120
       TZE     STP00         *CHECK MODE IF YES                     (24)F0D04130
       REM     REENTRY TO SCAN NEXT CHARACTER IN OP FIELD           (24)F0D04135
 STP01 SXA     STP06,2        STORE CURRENT WORD AND CHARACTER      (24)F0D04140
       SXA     NERAS,1        POSITIONS OF OP CODE SCAN             (24)F0D04150
       TSX     C019Q,4       *GO GET NEXT CHARACTER                 (24)F0D04160
       SUB     ASTRK          IS THIS *                                 F0D04170
       TNZ     *+3           NO                                        $F0D04180
       STL     INDFG         YES, SET INDIRECT FLAG                    $F0D04190
       TRA     STP02                                                   $F0D04200
       SUB     Q4            IS THIS BLANK                             $F0D04210
       TZE     STP2A          YES, END OF OPCODE                    (24)F0D04220
       SUB     EQUAL         NO, IS THIS ,                             $F0D04230
       TZE     STP03         YES, END OF OPCODE                        $F0D04240
       SUB     Q1            NO, IS THIS (                             $F0D04250
       TZE     STP04          YES                                   (24)F0D04260
       STZ     INDFG         NO, RESET INDIRECT FLAG                   $F0D04270
 STP02 TXH     STP01,2,-2     ARE WE STILL IN CARD WORD 2           (24)F0D04280
       TXH     STP01,1,4      NO, ARE WE PAST CC 14                 (24)F0D04290
       LXA     STUPX,4        YES, OP FIELD IS TOO LONG             (24)F0D04300
       TRA     2,4            TAKE ERROR RETURN                     (24)F0D04310
       REM     REENTRY FOR OP CODE TERMINATED BY BLANK              (24)F0D04320
 STP2A TSX     C019Q,4       *OBTAIN NEXT CHARACTER                 (24)F0D04330
       SUB     BLANK          IS IT BLANK                           (24)F0D04340
       TNZ     STP05          NO, VARIABLE FIELD HAS BEGUN          (24)F0D04350
       TXH     STP2A,2,-2     YES, ARE WE PAST WORD 2               (24)F0D04355
       TXH     STP2A,1,4      YES, IS NEXT COLUMN 16                (24)F0D04360
       REM     REENTRY FOR OP CODE TERMINATED BY ,                  (24)F0D04370
 STP03 TSX     C019Q,4       *INITIALIZE CHRCTR PROPERLY            (24)F0D04380
       REM     REENTRY FOR OP CODE TERMINATED BY (                  (24)F0D04390
 STP04 TXL     STP05,2,-2     ARE WE PAST WORD TWO                  (24)F0D04400
       TXH     STP01,1,4      NO, ( IN CC 8 IS PART OF OP CODE      (24)F0D04410
       REM     REENTRY FOR BEGINNING OF VARIABLE FIELD SENSED       (24)F0D04420
 STP05 CAL     CHRCTR         RELOAD BEGINNING CHARACTER            (24)F0D04430
       LGR     6              AND POSITION FOR SCAN                 (24)F0D04440
       STQ     RESIDU         STORE SCAN WORD                       (24)F0D04450
       TXI     *+1,1,1        BUMP CHARACTER POSITION BACK          (24)F0D04460
       SXD     VRFLD,2        STORE WORD AND CHARACTER              (24)F0D04470
       SXA     VRFLD,1        POSITIONS BEGINNING VARIABLE FIELD    (24)F0D04480
       LDQ     NERAS          LOAD CHARACTER POSITION OF OP FIELD   (24)F0D04490
       VLM     Q6,,15         END AND MULTIPLY BY 6 TO COMPUTE      (24)F0D04500
       LLS     15             AMOUNT OF SHIFT                       (24)F0D04510
       PAC     ,4                                                   (24)F0D04520
 STP06 AXC     **,2           RELOAD WORD ENDING OP FIELD           (24)F0D04530
       TXH     *+2,2,1        WAS IT WORD TWO                       (24)F0D04540
       TXI     *+1,4,-36      NO, BUMP SHIFT COUNT                  (24)F0D04550
       ZET     INDFG          WAS OPERATION INDIRECTLY ADDRESSED    (24)F0D04560
       TXI     STP07,4,-6     YES, ADJUST SHIFT COUNT TO OMIT *     (24)F0D04570
 STP07 CAL     BCDBF+1        LOAD CARD WORDS TWO                   (24)F0D04580
       LDQ     BCDBF+2        AND THREE (COLUMNS 7 THROUGH 18)      (24)F0D04590
       LGR     -6,4           RIGHT ADJUST OPERATION CODE           (24)F0D04600
       LGL     0,4            THEN LEFT ADJUST IT                   (24)F0D04610
       TNZ     STP08          IF OPCODE IS NULL,                    (24)F0D04620
       CAL     BLNK3          RESET IT TO BLANKS                    (24)F0D04630
 STP08 SLW     OPCOD          STORE OPERATION CODE                  (24)F0D04640
       ERA     DASTR          DID IT COME OUT AS **                 (24)F0D04650
       TNZ     STP09          NO, EXIT                              (24)F0D04660
       STZ     INDFG          YES, MUST HAVE BEEN ***               (24)F0D04670
       TXI     STP07,4,6      GO BACK TO READJUST IT                (24)F0D04680
 STP09 LXD     VRFLD,2        RELOAD SCAN WORD POSITION             (24)F0D04690
 STUPX AXT     **,4           RELOAD CALLING LINKAGE                (24)F0D04700
       TRA     3,4                                                  (24)F0D04710
       REM                                                          (24)F0D04720
       REM     THE FOLLOWING IS A PATCH TO SUBROUTINE SCANF         (24)F0D04725
 RELFG CLA     VARUC          ARE THERE RELOCATION ERRORS           (24)F0D04730
       TZE     *+2            IGNORE -0                             (24)F0D04740
       TMI     SCN12+5        COMPLEMENT OF COMMON ELEMENT          (24)F0D04750
       CLA     VARUR                                                (24)F0D04760
       TZE     *+2            IGNORE -0                             (24)F0D04770
       TMI     SCN12+5        COMPLEMENT OF RELOCATABLE ELEMENT     (24)F0D04780
       TRA     SCN12+1                                              (24)F0D04790
       REM                                                              F0D04800
       REM     FIND BINARY MACHINE OPERATION FOR BCD OPCODE             F0D04810
 SOPTB SXA     SOPTX,4        SAVE CALLING LINKAGE                      F0D04820
       AXT     0,1            LOAD LOCATION OF FIRST NAME IN TABLE      F0D04830
       LXA     OPTSIZ,2       LOAD LOGARITHM OF TABLE LENGTH            F0D04840
       TSX     LOWER,4       *EXECUTE BINARY SEARCH                     F0D04850
       REM                                                              F0D04860
       TRA     SOPTX+2        NOT FOUND                                 F0D04870
 SOPT1 TXL     *+4,1,**       IS SEARCH PAST UPPER END OF TABLE         F0D04880
       LAS     OPTTBL-2,1     NO, IS IT THIS OPCODE                     F0D04890
       TXI     LOWER,2,-2     NO, LARGER - GO LOOK HIGHER               F0D04900
       TRA     *+2            YES                                       F0D04910
       TXI     RAISE,2,-2     NO, SMALLER - GO LOOK LOWER               F0D04920
       REM     OPCODE FOUND IN TABLE                                    F0D04930
       LDI     OPTTBL-1,1     LOAD OPERATION DEFINITION                 F0D04940
 SOPTX AXT     **,4           RELOAD CALLING LINKAGE                    F0D04950
       TRA     2,4                                                      F0D04960
       REM     OPCODE NOT FOUND IN TABLE                                F0D04970
       LXA     SOPTX,4        RELOAD CALLING LINKAGE                    F0D04980
       TRA     1,4                                                      F0D04990
       REM                                                              F0D05000
       TXI     BSRCH,1,+16384                                           F0D05010
       TXI     BSRCH,1,-16384                                           F0D05020
       TXI     BSRCH,1,+8192                                            F0D05030
       TXI     BSRCH,1,-8192                                            F0D05040
       TXI     BSRCH,1,+4096                                            F0D05050
       TXI     BSRCH,1,-4096                                            F0D05060
       TXI     BSRCH,1,+2048                                            F0D05070
       TXI     BSRCH,1,-2048                                            F0D05080
       TXI     BSRCH,1,+1024                                            F0D05090
       TXI     BSRCH,1,-1024                                            F0D05100
       TXI     BSRCH,1,+512                                             F0D05110
       TXI     BSRCH,1,-512                                             F0D05120
       TXI     BSRCH,1,+256                                             F0D05130
       TXI     BSRCH,1,-256                                             F0D05140
       TXI     BSRCH,1,+128                                             F0D05150
       TXI     BSRCH,1,-128                                             F0D05160
       TXI     BSRCH,1,+64                                              F0D05170
       TXI     BSRCH,1,-64                                              F0D05180
       TXI     BSRCH,1,+32                                              F0D05190
       TXI     BSRCH,1,-32                                              F0D05200
       TXI     BSRCH,1,+16                                              F0D05210
       TXI     BSRCH,1,-16                                              F0D05220
       TXI     BSRCH,1,+8                                               F0D05230
       TXI     BSRCH,1,-8                                               F0D05240
       TXI     BSRCH,1,+4                                               F0D05250
       TXI     BSRCH,1,-4                                               F0D05260
       TXI     BSRCH,1,+2                                               F0D05270
       TXI     BSRCH,1,-2                                               F0D05280
       TRA     1,4            NOT FOUND                                 F0D05290
       TRA     1,4            NOT FOUND                                 F0D05300
 RAISE TRA     *,2                                                      F0D05310
 LOWER TRA     *,2                                                      F0D05320
 BSRCH TRA     2,4            LOOK FURTHER                              F0D05330
       REM                                                              F0D05340
       REM     EVALUATE NEXT EXPRESSION IN VARIABLE FIELD               F0D05350
 SCANF SXA     SCANX,4        SAVE CALLING LINKAGE                      F0D05360
       STZ     TRMEQ          RESET VALUE OF FIRST TERM IN EXPRESSION   F0D05370
       STZ     TRMUN          RESET UNITS OF TERM                       F0D05380
       STZ     TRMUF          RESET FLAG FOR TYPE OF UNITS TO ABSOLUTE  F0D05390
       STZ     VAREQ          RESET VALUE OF EXPRESSION                 F0D05400
       STZ     VARUR          RESET NUMBER OF RELOCATABLE SYMBOLS       F0D05410
       STZ     VARUC          RESET NUMBER OF COMMON SYMBOLS            F0D05420
       STZ     RBITS          RESET RELOCATION BITS                     F0D05430
       STZ     SCNBE          RESET FLAG FOR BOOLEAN ERA                F0D05440
       CAL     CHRCTR         LOAD FIRST CHARACTER IN NEXT EXPRESSION   F0D05450
       ERA     BLANK          IS IT END OF VARIABLE FIELD               F0D05460
       TNZ     *+3            NO                                        F0D05470
       STZ     BOLMD          YES, RESET BOOLEAN FLAG                   F0D05480
       TRA     1,4            RETURN ON VACUUOUS FIELD                  F0D05490
       AXC     SCADD,4        NO, INITIALIZE OPERATION SWITCH FOR       F0D05500
       SXD     OPSW1,4        FOLLOWING ELEMENT TO ADD                  F0D05510
       TRA     SCN01+5                                                  F0D05520
       REM     REENTRY TO EVALUATE NEXT ELEMENT                         F0D05530
 SCN01 NZT     TVFLG          IS THIS CALL SUBPROGRAM NAME              F0D05540
       TRA     *+4            NO                                        F0D05550
       TSX     SCEND,4        YES, SKIP TO END OF EXPRESSION            F0D05560
       STL     ERRFF          SET ERROR FLAG                            F0D05570
       TRA     SCN14                                                    F0D05580
       STL     SCNFC          SET FLAG FOR FIRST CHARACTER IN ELEMENT   F0D05590
       STZ     SCNBC          RESET FLAG FOR BOOLEAN COM                F0D05600
       CAL     BHEAD          SET HEADING CHARACTER                     F0D05610
       ZET     TVFLG          IS THIS CALL SUBPROGRAM NAME              F0D05620
       PXD     ,0             YES, DELETE HEADING CHARACTER             F0D05630
       TRA     SCN02+1                                                  F0D05640
       REM     REENTRY FOR $ REHEADING CHARACTER                        F0D05650
 SCN02 TRA     DLRUT           DOLLAR SIGN TEST                        $F0D05660
       SLW     THEAD                                                    F0D05670
       STZ     ELMEQ          RESET VALUE OF ELEMENT                    F0D05680
       STZ     ELMUN          RESET UNITS OF ELEMENT                    F0D05690
       STZ     ELMUF          RESET FLAG FOR TYPE OF UNITS TO ABSOLUTE  F0D05700
       TRA     SCN03+1                                                  F0D05710
       REM     REENTRY FOR BOOLEAN UNARY /                              F0D05720
 SCN03 STL     SCNBC          SET FLAG TO COMPLEMENT NEXT ELEMENT       F0D05730
       REM     REENTRY TO ASSEMBLE SYMBOL                               F0D05740
       TSX     SSCAN,4       *ASSEMBLE ELEMENT                          F0D05750
       TRA     EVALE         *END OF VARIABLE FIELD                     F0D05760
       SLT     EXPND          DID FIELD END WITH COMMA OR BLANK         F0D05770
       PAX     ,4             NO, LOAD PUNCTUATION CHARACTER            F0D05780
       TXL     SCADD,4,16     + OPERATION IS ADD                        F0D05790
       TXL     SCSUB,4,32     - OPERATION IS SUBTRACT                   F0D05800
       TXL     SCN02,4,43     $ RESET HEADING CHARACTER                 F0D05810
       TXL     SCN05,4,44     * OPERATION MAY BE MULTIPLY               F0D05820
       TXL     SCN04,4,49     / OPERATION MAY BE DIVIDE                 F0D05830
       TRA     EVALE         *PUNCTUATION WAS COMMA OR BLANK            F0D05840
       REM     CHARACTER IS /                                           F0D05850
 SCN04 NZT     SCNFC          IS THIS FIRST CHARACTER IN ELEMENT        F0D05860
       TRA     SCDIV          NO, IT IS DIVIDE OR BINARY NOT OPERATION  F0D05870
       STZ     SCNFC          YES, RESET FLAG                           F0D05880
       ZET     BOLMD          IS FIELD BOOLEAN                          F0D05890
       TRA     SCN03          YES, IT IS UNARY NOT OPERATION            F0D05900
       TRA     SCDIV          NO                                        F0D05910
       REM     CHARACTER IS *                                           F0D05920
 SCN05 NZT     SCNFC          IS THIS FIRST CHARACTER IN ELEMENT        F0D05930
       TRA     SCMPY          NO, IT IS MULTIPLY OPERATION              F0D05940
       STZ     SCNFC          YES, RESET FLAG                           F0D05950
       SLW     SYMBL          CHARACTER IS PROGRAM COUNTER              F0D05960
       TSX     SSCET,4       *FIND OPERATION                            F0D05970
       TXI     EVALE,,0       NO OPERATION FOLLOWS                      F0D05980
       TRA     SCN03+3                                                  F0D05990
       REM                                                              F0D06000
       REM     ENTRY POINTS TO EVALUATE ELEMENT ASSEMBLED ABOVE.        F0D06010
       REM     RETURN FROM EVALF IS TO OPERATION PRECEDING ELEMENT.     F0D06020
       REM     RETURN TO PRESENT OPERATION IS AFTER FOLLOWING ELEMENT   F0D06030
       REM     HAS BEEN EVALUATED.                                      F0D06040
 SCDIV TSX     EVALF,4       *EVALUATE PRECEDING ELEMENT                F0D06050
       REM                                                              F0D06060
       TRA     BLDIV          EXPRESSION IS BOOLEAN                     F0D06070
       CLA     TRMEQ          LOAD PARTIAL TERM                         F0D06080
       LRS     35                                                       F0D06090
       NZT     ELMEQ          IS ELEMENT UNDEFINED OR ZERO              F0D06100
       TRA     *+4            YES, ASSUME ELEMENT 1                     F0D06110
       DVP     ELMEQ          NO, COMBINE WITH FOLLOWING ELEMENT        F0D06120
       DCT                    DID DIVIDE FAIL                           F0D06130
       TSX     MACERR,4     **YES                                       F0D06140
       STQ     TRMEQ          SAVE PARTIAL TERM                         F0D06150
       STQ     TRMUN          SAVE COEFFICIENT OF SYMBOLS               F0D06160
       NZT     TRMUF          IS TERM ABSOLUTE                          F0D06170
       ZET     ELMUF          YES, IS ELEMENT ABSOLUTE                  F0D06180
       TRA     SCMP1        **NO, SET ERROR FLAGS                       F0D06190
       TRA     SCN10                                                    F0D06200
       REM                                                              F0D06210
 SCMPY TSX     EVALF,4       *EVALUATE PRECEDING ELEMENT                F0D06220
       REM                                                              F0D06230
       TRA     BLMPY          EXPRESSION IS BOOLEAN                     F0D06240
       LDQ     TRMEQ          COMBINE PARTIAL TERM                      F0D06250
       MPY     ELMEQ          WITH FOLLOWING ELEMENT                    F0D06260
       STQ     TRMEQ          SAVE PARTIAL TERM MOD 2**35               F0D06270
       LDQ     TRMUN          COMBINE COEFFICIENT FOR TERM              F0D06280
       MPY     ELMUN          WITH COEFFICIENT FOR FOLLOWING ELEMENT    F0D06290
       STQ     TRMUN          SAVE COEFFICIENT MOD 2**35                F0D06300
       ZET     TRMUF          IS TERM ABSOLUTE                          F0D06310
       NZT     ELMUF          NO, IS ELEMENT ABSOLUTE                   F0D06320
       TRA     *+3            YES                                       F0D06330
       REM     REENTRY AFTER RELOCATION ERROR ON DIVIDE                 F0D06340
 SCMP1 SLN     EXPRR          NO, SET ERROR FLAGS                       F0D06350
       STL     ERRFR                                                    F0D06360
       CAL     ELMUF          SET COMMON OR RELOCATABLE FLAG FOR ELEMENTF0D06370
       ORS     TRMUF          INTO FLAG FOR TERM (AT LEAST ONE IS ZERO) F0D06380
       TRA     SCN10                                                    F0D06390
       REM                                                              F0D06400
 SCADD TSX     EVALF,4       *EVALUATE PRECEDING ELEMENT                F0D06410
       REM                                                              F0D06420
       TRA     BLADD          EXPRESSION IS BOOLEAN                     F0D06430
       CLA     ELMEQ          LOAD VALUE OF FOLLOWING ELEMENT           F0D06440
       TRA     SCSB1                                                    F0D06450
       REM                                                              F0D06460
 SCSUB TSX     EVALF,4       *EVALUATE PRECEDING ELEMENT                F0D06470
       REM                                                              F0D06480
       TRA     BLSUB          EXPRESSION IS BOOLEAN                     F0D06490
       CLS     ELMUN          INVERT COEFFICIENT FOR FOLLOWING ELEMENT  F0D06500
       STO     ELMUN                                                    F0D06510
       CLS     ELMEQ          INVERT VALUE OF FOLLOWING ELEMENT         F0D06520
       REM     REENTRY FOR ADD                                          F0D06530
 SCSB1 XCA                    HOLD FOLLOWING ELEMENT                    F0D06540
       CLA     VAREQ          COMBINE VALUE OF PARTIAL EXPRESSION       F0D06550
       ADD     TRMEQ          WITH PRECEDING TERM                       F0D06560
       STO     VAREQ                                                    F0D06570
       STQ     TRMEQ          INITIALIZE FOLLOWING TERM TO VALUE OF ELEMF0D06580
       CLA     TRMUF          LOAD FLAG FOR UNITS OF TERM               F0D06590
       TZE     SCSB3          IS TERM ABSOLUTE                          F0D06600
       TMI     SCSB2          NO, IS TERM COMMON                        F0D06610
       CLA     VARUR          NO, BUMP NUMBER OF RELOCATABLE SYMBOLS    F0D06620
       ADD     TRMUN          BY COEFFICIENT OF TERM                    F0D06630
       STO     VARUR                                                    F0D06640
       TRA     SCSB3                                                    F0D06650
       REM     TERM IS COMMON                                           F0D06660
 SCSB2 CLA     VARUC          BUMP NUMBER OF COMMON SYMBOLS             F0D06670
       ADD     TRMUN          BY COEFFICIENT OF TERM                    F0D06680
       STO     VARUC                                                    F0D06690
       REM     REENTRY FOR ABSOLUTE OR RELOCATABLE TERM                 F0D06700
 SCSB3 CLA     ELMUN          INITIALIZE COEFFICIENT OF FOLLOWING TERM  F0D06710
       STO     TRMUN          TO COEFFICIENT OF FIRST ELEMENT           F0D06720
       CAL     ELMUF          INITIALIZE FLAG FOR UNITS OF TERM         F0D06730
       SLW     TRMUF          TO FLAG FOR UNITS OF FIRST ELEMENT        F0D06740
       TRA     SCN10                                                    F0D06750
       REM                                                              F0D06760
 BLADD TSX     BLERA,4       *EVALUATE POSSIBLE ERA                     F0D06770
       TRA     BLSUB+2                                                  F0D06780
       REM                                                              F0D06790
 BLSUB TSX     BLERA,4       *EVALUATE POSSIBLE ERA                     F0D06800
       STL     SCNBE          SET FLAG TO COMPLEMENT FOLLOWING ELEMENT  F0D06810
       SLW     VAREQ          SAVE PARTIAL VALUE OF EXPRESSION          F0D06820
       CAL     ELMEQ          INITIALIZE NEXT TERM TO VALUE OF          F0D06830
       SLW     TRMEQ          FIRST ELEMENT                             F0D06840
       TRA     SCN10                                                    F0D06850
       REM                                                              F0D06860
 BLMPY CAL     ELMEQ          MASK (AND) PARTIAL VALUE OF EXPRESSION    F0D06870
       ANS     TRMEQ          WITH VALUE OF ELEMENT                     F0D06880
       TRA     SCN10                                                    F0D06890
       REM                                                              F0D06900
 BLDIV CAL     ELMEQ          OPERATION IS BINARY NOT                   F0D06910
       COM                    COMPLEMENT ELEMENT                        F0D06920
       ANS     TRMEQ          MASK PARTIAL VALUE OF EXPRESSION          F0D06930
       REM                                                              F0D06940
       REM     ELEMENT HAS BEEN EVALUATED                               F0D06950
 SCN10 SLT     EXPND          WAS THIS END OF EXPRESSION                F0D06960
       TRA     SCN01          NO                                        F0D06970
       REM     END OF EXPRESSION                                        F0D06980
       NZT     BOLMD          IS EXPRESSION BOOLEAN                     F0D06990
       TRA     *+3            NO                                        F0D07000
       TSX     BLERA,4       *YES, EVALUATE POSSIBLE ERA                F0D07010
       TRA     SCN11                                                    F0D07020
       CLA     VAREQ          COMBINE PARTIAL VALUE OF EXPRESSION       F0D07030
       ADD     TRMEQ          WITH FINAL TERM                           F0D07040
       STO     VAREQ                                                    F0D07050
       CAL     P4             COMPLEMENT IF NEGATIVE                    F0D07060
       ALS     1                                                        F0D07070
       ADD     VAREQ                                                    F0D07080
       REM     REENTRY FOR BOOLEAN EXPRESSION                           F0D07090
 SCN11 ZET     VFDMD          IS THIS EXPRESSION PART OF VFD            F0D07100
       TRA     *+4            YES, KEEP ENTIRE WORD                     F0D07110
       ANA     ADTMK          NO, MASK IN FINAL 18 BITS                 F0D07120
       NZT     BOLMD          IS EXPRESSION BOOLEAN                     F0D07130
       ANA     ADDMK          NO, MASK IN FINAL 15 BITS                 F0D07140
       SLW     VAREQ          SAVE                                      F0D07150
       CLA     TRMUF          LOAD FLAG FOR TERM UNITS                  F0D07160
       TZE     SCN12          IS EXPRESSION ABSOLUTE                    F0D07170
       TMI     *+5            NO, IS EXPRESSION COMMON                  F0D07180
       CLA     VARUR          NO, BUMP NUMBER OF RELOCATABLE SYMBOLS    F0D07190
       ADD     TRMUN          BY COEFFICIENT OF LAST TERM               F0D07200
       STO     VARUR                                                    F0D07210
       TRA     SCN12                                                    F0D07220
       CLA     VARUC          BUMP NUMBER OF COMMON SYMBOLS             F0D07230
       ADD     TRMUN          BY COEFFICIENT OF LAST TERM               F0D07240
       STO     VARUC                                                    F0D07250
       REM     REENTRY FOR ABSOLUTE OR RELOCATABLE TERM                 F0D07260
SCN12  TRA     RELFG         CHECK FOR RELOCATION ERROR                $F0D07270
       ADD     VARUC         NUMBER OF RELOCATABLE AND COMMON SYMBOLS  $F0D07280
       TZE     SCN13          IS COEFFICIENT ZERO                       F0D07290
       SUB     Q1             NO, IS COEFFICIENT 1                      F0D07300
       TZE     *+3            YES                                       F0D07310
       SLN     EXPRR          NO, SET ERROR FLAGS                       F0D07320
       STL     ERRFR                                                    F0D07330
       CAL     VAREQ          COMPUTE RELATIVE POSITION                 F0D07340
       ANA     ADDMK          OF EXPRESSION ABOVE OR BELOW              F0D07350
       SUB     PRGBK          PROGRAM BREAK                             F0D07360
       ZET     VARUC          IS EXPRESSION IN COMMON                   F0D07370
       CHS                    YES, INVERT RELATIVE POSITION             F0D07380
       AXT     2,4            SET EXPRESSION DIRECTLY RELOCATABLE       F0D07390
       TMI     *+2            IS EXPRESSION DIRECTLY RELOCATABLE        F0D07400
       AXT     3,4            NO, SET EXPRESSION COMPLEMENT RELOCATABLE F0D07410
       SXA     RBITS,4                                                  F0D07420
 SCN13 TRA     *+2                                                     $F0D07430
       REM     CONSTANT FOR BCDCV CONVERSION ROUTINE                (25)F0D07435
TEN5TH DEC     100000                                               (25)F0D07440
       CAL     VAREQ          YES, LOAD LOGICAL VALUE OF EXPRESSION     F0D07450
       STZ     BOLMD          RESET BOOLEAN MODE FLAG                   F0D07460
       SLT     EXPRR          WAS ERROR FOUND IN THIS EXPRESSION        F0D07470
       TRA     SCANX          NO                                        F0D07480
 SCN14 SLN     EXPRR          YES, RESET ERROR FLAG                     F0D07490
       STZ     RBITS          DELETE RELOCATION BITS                    F0D07500
       PXD     ,0             DELETE VALUE OF SYMBOL                    F0D07510
       STZ     VAREQ                                                    F0D07520
 SCANX AXT     **,4           RELOAD CALLING LINKAGE                    F0D07530
       TRA     2,4                                                      F0D07540
       REM                                                              F0D07550
       REM     EVALUATE BOOLEAN EXPRESSION                              F0D07560
 BLERA CAL     TRMEQ          LOAD FOLLOWING TERM                       F0D07570
       NZT     SCNBE          IS OPERATION ERA                          F0D07580
       ORA     VAREQ          NO, COMBINE WITH PARTIAL TERM             F0D07590
       ZET     SCNBE          IS OPERATION ERA                          F0D07600
       ERA     VAREQ          YES, MASK PARTIAL VALUE OF EXPRESSION     F0D07610
       STZ     SCNBE          RESET FLAG                                F0D07620
       TRA     1,4                                                      F0D07630
       REM                                                              F0D07640
       REM     EVALUATE SYMBOL PRECEDING OPERATION, OR END OF EXPRESSIONF0D07650
 EVALE SLN     EXPND          SET END OF EXPRESSION FLAG                F0D07660
 EVALF SXD     OPSW2,4        SAVE CALLING LINKAGE (OP FOLLOWING SYMBOL)F0D07670
       CAL     SYMBL          LOAD LOW ORDER PORTION OF ELEMENT         F0D07680
       LAS     ASTRK          IS IT *                                   F0D07690
       TRA     *+2            NO                                        F0D07700
       TRA     EVAL1          YES, CURRENT CONTENTS OF LOCATION COUNTER F0D07710
       ORA     SYMB2          COMBINE LOW AND HIGH ORDER PORTIONS       F0D07720
       ANA     BLANKS         IS ELEMENT NUMERIC                        F0D07730
       TZE     EVAL3          YES                                       F0D07740
       ZET     SYMB2          NO, IS SYMBOL NAME LONGER THAN 6 CHARACTERF0D07750
       STL     ERRFE          YES                                       F0D07760
       LDQ     SYMBL          LOAD SYMBOL NAME                          F0D07770
       PXD     ,0                                                       F0D07780
       LGL     6              LOAD FIRST CHARACTER                      F0D07790
       TNZ     *+2            IS SYMBOL NAME SHORTER THAN 6 CHARACTERS  F0D07800
       CAL     THEAD          YES, APPEND CURRENT HEADING CHARACTER     F0D07810
       LGL     30                                                       F0D07820
       SLW     SYMBL          SAVE                                      F0D07830
       TSX     SSYMT,4       *EVALUATE SYMBOL                           F0D07840
       TRA     EVAL1+3                                                  F0D07850
       REM     SYMBOL IS *                                              F0D07860
 EVAL1 CLA     LOCTR          LOAD CURRENT PROGRAM COUNTER              F0D07870
       ZET     BOLMD          IS EXPRESSION BOOLEAN                     F0D07880
       PXD     ,0             YES, ASSUME IT IS AN OPERATOR             F0D07890
       REM                    WITH NO PRECEDENT OPERAND                 F0D07900
       REM     REENTRY FOR DEFINED SYMBOL                               F0D07910
       STA     ELMEQ          DEFINE THIS ELEMENT                       F0D07920
       ZET     BOLMD          IS EXPRESSION BOOLEAN                     F0D07930
       TRA     EVAL2          YES                                       F0D07940
       ARS     18             NO, SHIFT UP RELOCATION BITS              F0D07950
       ANA     Q3             DELETE EXTRANEOUS FLAGS                   F0D07960
       SUB     Q1             IS ELEMENT ABSOLUTE                       F0D07970
       TMI     EVAL5          YES                                       F0D07980
       SSM                    NO, SET ELEMENT COMMON                    F0D07990
       TNZ     *+2            IS ELEMENT COMMON                         F0D08000
       CLA     Q1             NO, RESET ELEMENT RELOCATABLE             F0D08010
       STO     ELMUF          SAVE ELEMENT UNIT FLAG                    F0D08020
       TRA     EVAL5+1                                                  F0D08030
       REM     SYMBOL IS BOOLEAN                                        F0D08040
 EVAL2 PAI                    LOAD RELOCATION BITS                      F0D08050
       LFT     3              IS SYMBOL ABSOLUTE                        F0D08060
       TRA     EVLBR        **NO                                        F0D08070
       ANA     ADTMK          DELETE EXTRANEOUS FLAGS                   F0D08080
       ZET     SCNBC          IS ELEMENT COMPLEMENTABLE                 F0D08090
       COM                    YES, FLATTER IT                           F0D08100
       SLW     ELMEQ          DEFINE ELEMENT                            F0D08110
 OPSW1 TXI     EVAL5+2,,**    (RETURN FOR OPERATION PRECEDING ELEMENT)  F0D08120
       REM     ERROR ON BOOLEAN SYMBOL                                  F0D08130
 EVLBR SLN     EXPRR          SET ERROR FLAGS                           F0D08140
       STL     ERRFB                                                    F0D08150
       TRA     EVAL5+2                                                  F0D08160
       REM     ELEMENT IS NUMERIC                                       F0D08170
 EVAL3 NZT     BOLMD          IS ELEMENT BOOLEAN                        F0D08180
       TXL     EVAL4,,0       NO, IS ELEMENT UNDER OCTAL QUALIFIER      F0D08190
       REM                    (SWITCH SET BY SAK)                       F0D08200
       TSX     OCTSV,4       *YES, CONVERT SYMBOL FROM OCTAL            F0D08210
       ZET     SCNBC          IS ELEMENT COMPLEMENTABLE                 F0D08220
       COM                    YES                                       F0D08230
       SLW     ELMEQ          SAVE ELEMENT                              F0D08240
       NZT     BOLMD          IS ELEMENT BOOLEAN                        F0D08250
       TRA     EVAL5          NO, SET RELOCATION UNITS FOR OCTAL INTEGERF0D08260
 OPSW2 TXI     EVAL5+2,,**    (RETURN FOR OPERATION FOLLOWING ELEMENT)  F0D08270
       REM     EVALUATE DECIMAL INTEGER                                 F0D08280
 EVAL4 TSX     DECSV,4       *CONVERT SYMBOL FROM DECIMAL               F0D08290
       STO     ELMEQ          SAVE                                      F0D08300
       REM     REENTRY FOR ABSOLUTE SYMBOL OR DECIMAL INTEGER           F0D08310
 EVAL5 CAL     ELMEQ          SET VALUE OF ELEMENT                      F0D08320
       REM     REENTRY FOR COMMON OR RELOCATABLE SYMBOL                 F0D08330
       SLW     ELMUN          AS COEFFICIENT OF ELEMENT                 F0D08340
       REM     REENTRY FOR BOOLEAN SYMBOL OR OCTAL INTEGER              F0D08350
       LXD     OPSW1,4        LOAD TRANSFER FOR OP PRECEDING ELEMENT    F0D08360
       CAL     OPSW2          RESET TRANSFER TO OP PRECEDING            F0D08370
       STD     OPSW1          FOLLOWING ELEMENT                         F0D08380
       ZET     BOLMD          IS EXPRESSION BOOLEAN                     F0D08390
       TRA     1,4            YES, TAKE BOOLEAN RETURN                  F0D08400
       TRA     2,4            NO                                        F0D08410
       REM                                                              F0D08420
       REM     CONVERT UP TO 12 DIGIT SIGNED OCTAL INTEGER TO BINARY    F0D08430
 OCTCV SXA     DECCX,4        SAVE CALLING LINKAGE                      F0D08440
       STZ     NERAS          CLEAR WORKING CELL                        F0D08450
       TSX     C019A,4       *LOOK AT FIRST CHARACTER                   F0D08460
       SUB     PLUSS          IS IT +                                   F0D08470
       TZE     OCT01          YES, IGNORE IT                            F0D08480
       SUB     PLUSS          NO, IS IT -                               F0D08490
       TNZ     OCT01+1        NO                                        F0D08500
       CAL     P4             YES, SET P BIT                            F0D08510
       SLW     NERAS                                                    F0D08520
       REM     REENTRY TO DELETE SIGN                                   F0D08530
 OCT01 TSX     C0190,4       *DELETE SIGN                               F0D08540
       REM     REENTRY FOR NO PRECEDING SIGN                            F0D08550
       TSX     SSCAN,4       *ASSEMBLE INTEGER                          F0D08560
       TXI     OCT02,,0       NULL INTEGER                              F0D08570
       SLT     EXPND          DID INTEGER END WITH COMMA OR BLANK       F0D08580
       TRA     OCTRR          NO                                        F0D08590
       TSX     OCTSV,4       *YES, CONVERT TO BINARY                    F0D08600
       SLT     EXPRR          IS INTEGER IN ERROR                       F0D08610
       ORA     NERAS          NO, APPEND SIGN                           F0D08620
       TRA     DECCX                                                    F0D08630
       REM     NULL INTEGER                                             F0D08640
 OCT02 SLN     FLDND          SET END OF VARIABLE FIELD FLAG            F0D08650
       ORA     NERAS          APPEND SIGN                               F0D08660
       TRA     DECCX                                                    F0D08670
       REM     ERROR ON OCTAL NUMBER                                    F0D08680
 OCTRR STL     ERRFB          SET ERROR FLAG                            F0D08690
       TSX     SCEND,4       *SKIP TO END OF FIELD                      F0D08700
       PXD     ,0             DELETE INTEGER IN ERROR                   F0D08710
       TRA     DECCX                                                    F0D08720
       REM                                                              F0D08730
       REM     CONVERT FOLLOWING DECIMAL FIELD TO BINARY                F0D08740
 DECCV SXA     DECCX,4        SAVE CALLING LINKAGE                      F0D08750
       STZ     NERAS          CLEAR INTEGER FIELD                       F0D08760
       STZ     XERAS          CLEAR EXPONENT (E) FIELD                  F0D08770
       STZ     BERAS          CLEAR BINARY (B) FIELD                    F0D08780
       STZ     DCNFG          RESET FLAG FOR DECIMAL POINT              F0D08790
       STZ     DCXFG          RESET FLAG FOR DECIMAL EXPONENT           F0D08800
       STZ     DCBFG          RESET FLAG FOR BINARY EXPONENT            F0D08810
       AXT     0,4            RESET DECIMAL PLACE COUNT                 F0D08820
       CAL     DECCV+1        LOAD INTEGER FIELD ADDRESS                F0D08830
       TRA     DCV15                                                   $F0D08840
       REM     REENTRY AFTER DECIMAL POINT TO BEGIN SCAN ON FRACTION    F0D08850
 DCV01 NZT     DCXFG          HAS DECIMAL EXPONENT BEGUN                F0D08860
       ZET     DCBFG          NO, HAS BINARY EXPONENT BEGUN             F0D08870
       TRA     DCVRR          YES                                       F0D08880
       STL     DCNFG          NO, SET FRACTION FLAG                     F0D08890
       CAL     DCV05          INITIALIZE TRANSFER ADDRESS               F0D08900
       STA     DCV07+1        TO COUNT DECIMAL PAACES                   F0D08910
       TRA     DCV05+2                                                  F0D08920
       REM     REENTRY AFTER E TO BEGIN SCAN ON DECIMAL EXPONENT        F0D08930
 DCV02 STL     DCXFG          SET DECIMAL EXPONENT FLAG                 F0D08940
       CAL     DECCV+2        LOAD DECIMAL EXPONENT FIELD ADDRESS       F0D08950
       TRA     DCV03+2                                                  F0D08960
       REM     REENTRY AFTER B TO BEGIN SCAN ON BINARY EXPONENT         F0D08970
 DCV03 STL     DCBFG          SET BINARY EXPONENT FLAG                  F0D08980
       CAL     DECCV+3        LOAD BINARY EXPONENT FIELD FLAG           F0D08990
       STA     DCV06          INITIALIZE FIELD CONVERSION ADDRESSES     F0D09000
       STA     DCV06+2                                                  F0D09010
       STA     DCV07                                                    F0D09020
       CAL     DCV05+1        INITIALIZE TRANSFER ADDRESS               F0D09030
       STA     DCV07+1        TO OMIT COUNTING DECIMAL PLACES           F0D09040
       CAL     DCV06+2        INITIALIZE INSTRUCTION TO ADD             F0D09050
       TRA     DCV04+3                                                  F0D09060
       REM     REENTRY AFTER MINUS                                      F0D09070
 DCV04 CLS     Q0             SET FIELD TO -0                           F0D09080
       STO*    DCV06                                                    F0D09090
       SUB     *              INITIALIZE INSTRUCTION TO SUBTRACT        F0D09100
       STD     DCV06+4                                                  F0D09110
       TOV     *+1                                                      F0D09120
       TRA     DCV05+2                                                  F0D09130
       REM     CONVERT NEXT DIGIT IN FIELD                              F0D09140
 DCV05 TRA     *+1            (TRANSFER ADDRESS TO BUMP DECIMAL COUNTER F0D09150
       TXI     *+1,4,-1       (TRANSFER ADDRESS TO OMIT BUMP)           F0D09160
       SXA     *+2,4          SAVE DECIMAL PLACE COUNT                  F0D09170
       TSX     C0190,4       *GET NEXT CHARACTER                        F0D09180
       AXT     **,4           RELOAD DECIMAL PLACE COUNT                F0D09190
       LAS     Q10            IS IT DIGIT                               F0D09200
       TRA     DCV08          NO                                        F0D09210
       TSX     MACERR,4     **CHARACTER IS BCD 10                       F0D09220
 DCV06 CLA     **             YES, MULTIPLY PARTIAL FIELD BY 10         F0D09230
       ALS     2                                                        F0D09240
       ADD     **                                                       F0D09250
       ALS     1                                                        F0D09260
       ***     CHRCTR         (INITIALIZED TO ADD OR SUBTRACT)          F0D09270
       TNO     *+2            DID AC OVERFLOW                           F0D09280
       TXI     *+2,4,1        YES, BUMP DECIMAL COUNTER BACK            F0D09290
 DCV07 STO     **             SAVE PARTIAL FIELD                        F0D09300
       TRA     **             TRANSFER TO OMIT/BUMP DECIMAL COUNTER     F0D09310
       REM     DETERMINE TYPE OF FOLLOWING FIELD                        F0D09320
 DCV08 LAS     COMMA          IS CHARACTER ,                            F0D09330
       TRA     DCVRR          NO, ILLEGAL CHARACTER                     F0D09340
       TRA     DCV09+1        YES, END OF NUMERIC FIELD                 F0D09350
       LAS     BLANK          NO, IS CHARACTER BLANK                    F0D09360
       TRA     DCVRR          NO, ILLEGAL CHARACTER                     F0D09370
       TRA     DCV09          YES, END OF VARIABLE FIELD                F0D09380
       LAS     MINUS          NO, IS CHARACTER -                        F0D09390
       TRA     DCVRR          NO, ILLEGAL CHARACTER                     F0D09400
       TRA     DCV04          YES, RESET OPERATION CODE                 F0D09410
       LAS     POINT          NO, IS CHARACTER .                        F0D09420
       TRA     DCVRR          NO, ILLEGAL CHARACTER                     F0D09430
       TRA     DCV16                                                   $F0D09440
       LAS     QE             NO, IS CHARACTER E                        F0D09450
       TRA     DCVRR          NO, ILLEGAL CHARACTER                     F0D09460
       TRA     DCV17                                                   $F0D09470
       LAS     QB             NO, IS CHARACTER B                        F0D09480
       TRA     DCVRR          NO, ILLEGAL CHARACTER                     F0D09490
       TRA     DCV18                                                   $F0D09500
       LAS     PLUSS          NO, IS CHARACTER +                        F0D09510
       TRA     DCVRR          NO, ILLEGAL CHARACTER                     F0D09520
       TRA     DCV05+2        YES, IGNORE IT                            F0D09530
       TRA     DCVRR          NO, ILLEGAL CHARACTER                     F0D09540
       REM     TEST FOR DECIMAL EXPONENT                                F0D09550
 DCV09 SLN     FLDND          SET END OF VARIABLE FIELD (BLANK) FLAG    F0D09560
       CLA     NERAS          LOAD DIGIT                                F0D09570
       TZE     DECCX          IS DIGIT ZERO                             F0D09580
       NZT     DCXFG          NO, DOES DECIMAL EXPONENT EXIST           F0D09590
       TRA     DCV10          NO, TEST FOR BINARY EXPONENT              F0D09600
       CAL     P4             YES, COMPLEMENT NEGATIVE DECIMAL EXPONENT F0D09610
       ADD     XERAS                                                    F0D09620
       ALS     18             COMPUTE EXPLICIT+IMPLICIT EXPONENT        F0D09630
       STD     *+2                                                      F0D09640
       CLA     NERAS          RELOAD DIGIT                              F0D09650
       TXI     DCV11,4,**                                               F0D09660
       REM     TEST FOR BINARY EXPONENT                                 F0D09670
 DCV10 NZT     DCBFG          DOES BINARY EXPONENT EXIST                F0D09680
       ZET     DCNFG          NO, DOES DECIMAL EXPONENT EXIST           F0D09690
       TRA     DCV11          YES                                       F0D09700
       TRA     DECCX          NO, NUMBER IS BINARY INTEGER              F0D09710
       REM     CONVERT TO FLOATING POINT NUMBER                         F0D09720
 DCV11 STA     FPCV1          SAVE LOW ORDER 15 BITS                    F0D09730
       ARS     15             DELETE LOW ORDER 15 BITS                  F0D09740
       ORA     FPCV2          COMBINE WITH EXPONENT 2**52(8)            F0D09750
       FAD     FPCV2          NORMALIZE LEADING 20 BITS EXP 2**43(8)    F0D09760
       TPL     *+3            COMBINE NORMALIZED LEADING 20 BITS        F0D09770
       FSB     FPCV1          WITH FOLLOWING I5 BITS UNNORMALIZED       F0D09780
       TRA     *+2            EXPONENT 2**52(8)/2**15(8) = 2**33(8)     F0D09790
       FAD     FPCV1          INTO DOUBLE PRECISION NUMBER EXP 2**35(10)F0D09800
       STQ     ERASE          SAVE LEAST SIGNIFICANT PART               F0D09810
       TXL     DCV13,4,0      IS DECIMAL EXPONENT ZERO                  F0D09820
       TXH     DCV12,4,38     NO, IS DECIMAL EXPONENT NEGATIVE          F0D09830
       TXI     *+1,4,-1       NO, COMPLEMENT IT                         F0D09840
       SXD     *+2,4                                                    F0D09850
       AXT     -1,4                                                     F0D09860
       TIX     *+2,4,**                                                 F0D09870
       TSX     MACERR,4     **INDEX FAILURE                             F0D09880
       XCA                    BRING MOST SIGNIFICANT PART INTO MQ       F0D09890
       FMP     DECTAB,4       MULTIPLY BY POWER OF TEN (FACTOR IS SUCH  F0D09900
       REM                    THAT FPCV3 AND FPCV4 WILL CORRECT EXP)    F0D09910
       STO     NERAS          SAVE MOST SIGNIFICANT PART                F0D09920
       STQ     XERAS          SAVE LEAST SIGNIFICANT PART               F0D09930
       LDQ     ERASE          LOAD OLD LEAST SIGNIFICANT PART           F0D09940
       FMP     DECTAB,4       MULTIPLY BY POWER OF TEN                  F0D09950
       FAD     XERAS          COMBINE WITH DOUBLE PRECISION RESULTS     F0D09960
       FAD     NERAS          CONVERTED FROM OLD MOST SIGNIFICANT PART  F0D09970
       ACL     FPCV4          BUMP EXPONENT TO CORRECT FOR TABLE FACTOR F0D09980
       PBT                    DID AC OVERFLOW                           F0D09990
       TRA     DCV13          NO, PROCESS BINARY EXPONENT               F0D10000
       TRA     DCVRR+1        YES                                       F0D10010
 DCV12 TXL     DCVRR+1,4,-49  IS EXPONENT ILLEGAL                       F0D10020
       FDP     DECTAB,4       NO, DIVIDE BY POWER OF TEN                F0D10030
       STQ     NERAS          SAVE MOST SIGNIFICANT PART                F0D10040
       FAD     ERASE          COMBINE REMAINDER WITH LEAST SIGNIF PART  F0D10050
       FDP     DECTAB,4       DIVIDE BY POWER OF TEN                    F0D10060
       DCT                    DID DIVIDE FAIL                           F0D10070
       TSX     MACERR,4     **YES                                       F0D10080
       XCA                    RECALL MOST SIGNIFICANT PART              F0D10090
       FAD     NERAS          COMBINE WITH PRIOR MOST SIGNIFICANT PART  F0D10100
       ACL     FPCV3          BUMP EXPONENT TO CORRECT FOR TABLE FACTOR F0D10110
       PBT                    DID AC OVERFLOW                           F0D10120
       TRA     DCVRR+1        NO                                        F0D10130
 DCV13 NZT     DCBFG          DOES BINARY EXPONENT EXIST                F0D10140
       TRA     DECCX          NO, NUMBER IS FLOATING POINT              F0D10150
       STO     NERAS          YES, SAVE FLOATING POINT NUMBER           F0D10160
       ALS     2              DELETE P, Q, BITS                         F0D10170
       SSM                                                              F0D10180
       ARS     29             RIGHT ADJUST EXPONENT                     F0D10190
       ADD     Q128           COMPUTE ABSOLUTE EXPONENT                 F0D10200
       ADD     BERAS          COMBINE WITH BINARY EXPONENT              F0D10210
       TPL     *+2            IS EXPONENT TOO SMALL                     F0D10220
       TNZ     DCVRR+1        YES                                       F0D10230
       STA     DCV14          NO, USE EXPONENT AS SHIFT COUNT           F0D10240
       CLA     NERAS          RELOAD FLOATING POINT NUMBER              F0D10250
       LLS     8              DELETE AC, MQ EXPONENTS                   F0D10260
       ALS     2              DELETE P, Q BITS                          F0D10270
       ARS     10             REPOSITION 27 BIT FRACTION                F0D10280
       LLS     8              APPEND 27 LOW ORDER BITS                  F0D10290
 DCV14 LRS     **             SHIFT BINARY INTEGER TO PROPER POWER OF 2 F0D10300
       TRA     DECCX                                                    F0D10310
 DCVRR TSX     SCEND,4       *SKIP TO END OF FIELD                      F0D10320
       PXD     ,0             DELETE INTEGER IN ERROR                   F0D10330
       STL     ERRFE          SET ERROR FLAG                            F0D10340
 DECCX AXT     **,4           RELOAD CALLING LINKAGE                    F0D10350
       TRA     1,4                                                      F0D10360
 FPCV1 OCT     233000000000   CONSTANT TO NORMALIZE LOW ORDER 15 BITS   F0D10370
 FPCV2 OCT     252000000000   CONSTANT TO NORMALIZE HIGH ORDER 20 BITS  F0D10380
 FPCV3 OCT     335000000000   CONSTANT TO CORRECT EXPONENT ON DIVIDE    F0D10390
 FPCV4 OCT     043000000000   CONSTANT TO CORRECT EXPONENT ON MULTIPLY  F0D10400
       REM                                                              F0D10410
       REM     CONVERT ONE FIELD OF VFD TO BINARY                       F0D10420
 VFDCV SXA     VFDCX,4        SAVE CALLING LINKAGE                      F0D10430
       STZ     VFDFL          RESET LOW ORDER HALF OF FIELD             F0D10440
       STZ     VFDFL+1        RESET HIGH ORDER HALF OF FIELD            F0D10450
       STZ     VFDHF          RESET HOLLERITH FIELD FLAG                F0D10460
       STZ     VFDOF          RESET OCTAL FIELD FLAG                    F0D10470
       STZ     VFDFB          RESET FIELD WIDTH                         F0D10480
       TSX     C0190,4       *GET FIRST CHARACTER OF NEXT FIELD         F0D10490
       LAS     COMMA          IS IT COMMA                               F0D10500
       TRA     VCV07          NO, ILLEGAL CHARACTER                     F0D10510
       TRA     VCV06+1        YES, END OF FIELD                         F0D10520
       LAS     BLANK          IS IT BLANK                               F0D10530
       TRA     VCV07          NO, ILLEGAL CHARACTER                     F0D10540
       TRA     VCV06          YES, END OF VARIABLE FIELD                F0D10550
       LAS     QO             NO, IS IT O                               F0D10560
       TRA     VCV07          NO, ILLEGAL CHARACTER                     F0D10570
       TRA     VCV01          YES OCTAL FIELD FOLLOWS                   F0D10580
       LAS     QH             NO, IS IT H                               F0D10590
       TRA     VCV07          NO, ILLEGAL CHARACTER                     F0D10600
       TRA     VCV01+2        YES HOLLERITH FIELD FOLLOWS               F0D10610
       TRA     VCV02+1        NO, FIELD MUST BE SYMBOLIC                F0D10620
       REM     FIELD IS OCTAL                                           F0D10630
 VCV01 STL     VFDOF          SET OCTAL FIELD FLAG                      F0D10640
       TRA     VCV02                                                    F0D10650
       REM     FIELD IS HOLLERITH                                       F0D10660
       STL     VFDHF          SET HOLLERITH FIELD FLAG                  F0D10670
       REM     REENTRY TO COLLECT SECOND DIGIT OF FIELD WIDTH           F0D10680
 VCV02 TSX     C0190,4       *GET NEXT CHARACTER                        F0D10690
       REM     REENTRY FOR SYMBOLIC FIELD                               F0D10700
       LAS     SLASH          IS CHARACTER /                            F0D10710
       TRA     VCV07          NO, ILLEGAL CHARACTER                     F0D10720
       TRA     VCV03          YES, FIELD FOLLOWS                        F0D10730
       LAS     Q10            NO, IS CHARACTER NUMERIC                  F0D10740
       TRA     VCV07          NO, ILLEGAL CHARACTER                     F0D10750
       TSX     MACERR,4     **CHARACTER IS BCD 10                       F0D10760
       CLA     VFDFB          YES, MULTIPLY PARTIAL FIELD WIDTH BY 10   F0D10770
       ALS     2                                                        F0D10780
       ADD     VFDFB                                                    F0D10790
       ALS     1                                                        F0D10800
       ADD     CHRCTR         ADD NEXT DIGIT                            F0D10810
       STO     VFDFB          SAVE NEW PARTIAL FIELD WIDTH              F0D10820
       TRA     VCV02                                                    F0D10830
       REM     REENTRY AFTER / FIELD FOLLOWS                            F0D10840
 VCV03 LXA     VFDFB,4        LOAD FIELD WIDTH                          F0D10850
       TXL     *+4,4,63       IS FIELD TOO LONG                         F0D10860
       STL     ERRFE          YES, SET ERROR FLAG                       F0D10870
       AXT     63,4           RESET LENGTH OF FIELD                     F0D10880
       SXA     VFDFB,4                                                  F0D10890
       ZET     VFDHF          IS FIELD HOLLERITH                        F0D10900
       TRA     VCV05          YES                                       F0D10910
       NZT     VFDOF          NO, IS FIELD OCTAL                        F0D10920
       TRA     *+3            NO, FIELD IS SYMBOLIC                     F0D10930
       TXH     VCV04,4,36     YES, IS OCTAL FIELD GREATER THAN ONE WORD F0D10940
       STL     BOLMD          NO, SET BOOLEAN SCAN FLAG                 F0D10950
       REM     FIELD IS SYMBOLIC OR BOOLEAN NOT LONGER THAN ONE WORD    F0D10960
       TSX     SCANF,4       *EVALUATE SYMBOLIC OR BOOLEAN EXPRESSION   F0D10970
       TXI     VCV06,,0       NULL FIELD                                F0D10980
       SLT     EXPRR          WAS FIELD IN ERROR                        F0D10990
       TRA     *+2            NO                                        F0D11000
       TRA     VCV07+2        YES                                       F0D11010
       SLW     VFDFL          SAVE LOW ORDER PORTION                    F0D11020
       TRA     VCV06+1                                                  F0D11030
       REM     FIELD IS OCTAL                                           F0D11040
 VCV04 TSX     C0190,4       *GET NEXT CHARACTER                        F0D11050
       LAS     COMMA          IS IT COMMA                               F0D11060
       TRA     VCV07+1        NO, ILLEGAL CHARACTER                     F0D11070
       TRA     VCV06+1        YES, END OF FIELD                         F0D11080
       LAS     BLANK          IS IT BLANK                               F0D11090
       TRA     VCV07+1        NO, ILLEGAL CHARACTER                     F0D11100
       TRA     VCV06          YES, END OF VARIABLE FIELD                F0D11110
       LAS     Q8             IS IT AN OCTAL DIGIT                      F0D11120
       NOP                    NO                                        F0D11130
       TRA     VCV07+1        ILLEGAL CHARACTER                         F0D11140
       CAL     VFDFL+1        LOAD HIGH ORDER PORTION OF WORD           F0D11150
       LDQ     VFDFL          LOAD LOW ORDER PORTION OF WORD            F0D11160
       LGL     3              BUMP WORD LEFT ONE OCTAL DIGIT            F0D11170
       SLW     VFDFL+1        SAVE HIGH ORDER PORTION OF WORD           F0D11180
       XCL                                                              F0D11190
       ORA     CHRCTR         APPEND DIGIT TO LOW ORDER PORTION OF WORD F0D11200
       SLW     VFDFL          SAVE LOW ORDER PORTION OF WORD            F0D11210
       TRA     VCV04                                                    F0D11220
       REM     FIELD IS HOLLERITH                                       F0D11230
 VCV05 CAL     BLANKS         BLANK OUT HIGH AND LOW ORDER PORTION      F0D11240
       SLW     VFDFL+1        WORD                                      F0D11250
       SLW     VFDFL                                                    F0D11260
       TSX     C0190,4       *GET NEXT CHARACTER                        F0D11270
       LAS     COMMA          IS IT ,                                   F0D11280
       TRA     *+2            NO                                        F0D11290
       TRA     VCV06+1        YES, END OF FIELD                         F0D11300
       LAS     BLANK          NO, IS IT BLANK                           F0D11310
       TRA     *+2            NO                                        F0D11320
       TRA     VCV06          YES, END OF VARIABLE FIELD                F0D11330
       LDQ     VFDFL          NO, LOAD LOW ORDER PORTION OF WORD        F0D11340
       CAL     VFDFL+1        LOAD HIGH ORDER PORTION OF WORD           F0D11350
       LGL     6              SHIFT LEFT ONE CHARACTER                  F0D11360
       SLW     VFDFL+1        SAVE HIGH ORDER PORTION OF WORD           F0D11370
       XCL                                                              F0D11380
       ORA     CHRCTR         APPEND NEXT CHARACTER                     F0D11390
       SLW     VFDFL          SAVE LOW ORDER PORTION OF WORD            F0D11400
       TRA     VCV05+3                                                  F0D11410
       REM     REENTRY AFTER BLANK, END OF VARIABLE FIELD               F0D11420
 VCV06 SLN     FLDND          SET END OF VARIABLE FIELD FLAG            F0D11430
       REM     REENTRY AFTER COMMA, END OF FIELD                        F0D11440
       LXA     VFDFB,4        LOAD WIDTH OF FIELD                       F0D11450
       CAL     VFDFL+1        LOAD HIGH ORDER PORTION OF FIELD          F0D11460
       LDQ     VFDFL          LOAD LOW ORDER PORTION OF FIELD           F0D11470
       LGL     72,4           LEFT ADJUST FIELD CONTENTS                F0D11480
       SLW     VFDFL+1        SAVE HIGH ORDER PORTION OF FIELD          F0D11490
       STQ     VFDFL          SAVE LOW ORDER PORTION OF FIELD           F0D11500
       TRA     VFDCX                                                    F0D11510
       REM     ERROR ON FIELD DESIGNATION - SKIP OVER FIELD             F0D11520
 VCV07 STZ     VFDFB          RESET FIELD WIDTH                         F0D11530
       TSX     SCEND,4       *SKIP TO END OF FIELD                      F0D11540
       REM     FIELD IS IN ERROR                                        F0D11550
       STL     ERRFE          SET ERROR FLAG                            F0D11560
 VFDCX AXT     **,4           RELOAD CLALING LINKAGE                    F0D11570
       TRA     1,4                                                      F0D11580
       REM                                                              F0D11590
       REM     CONVERT 12 DIGIT OCTAL FIELD TO BINARY                   F0D11600
 OCTSV CAL     SYMBL          COMBINE LOW AND HIGH ORDER PORTIONS       F0D11610
       ORA     SYMB2          OF 12 DIGIT OCTAL FIELD                   F0D11620
       ANA     YYMSK          IS ELEMENT OCTAL                          F0D11630
       TNZ     OCTSR        **NO                                        F0D11640
       LDQ     SYMBL          LOAD LOW ORDER DIGITS                     F0D11650
       CAQ     OCTALT,,6      CONVERT FROM OCTAL                        F0D11660
       ARS     18             REPOSITION IN LOW ORDER                   F0D11670
       SLW     ELMEQ          SAVE                                      F0D11680
       NZT     SYMB2          DO HIGH ORDER DIGITS EXIST                F0D11690
       TRA     OCTSX          NO                                        F0D11700
       LDQ     SYMB2          LOAD HIGH ORDER DIGITS                    F0D11710
       PXD     ,0                                                       F0D11720
       CAQ     OCTALT,,6      CONVERT FROM OCTAL                        F0D11730
       ANA     PRDMK          DELETE LOW ORDER GARBAGE                  F0D11740
       ORA     ELMEQ          COMBINE WITH LOW ORDER DIGITS             F0D11750
       TRA     OCTSX                                                    F0D11760
 OCTSR SLN     EXPRR          SET ERROR FLAGS                           F0D11770
       STL     ERRFB                                                    F0D11780
       PXD     ,0             DELETE VALUE OF OCTAL INTEGER IN ERROR    F0D11790
 OCTSX TRA     1,4                                                      F0D11800
 PRDMK SVN     ,,-1           MASK FOR PREFIX,DECREMENT FIELD BITS 0-17 F0D11810
 YYMSK BCI     1,YYYYYY       MASK FOR NON-OCTAL CHARACTERS             F0D11820
       REM                                                              F0D11830
       REM     CONVERT 12 DIGIT DECIMAL FIELD TO BINARY                 F0D11840
 DECSV LDQ     SYMBL          LOAD LOW ORDER DIGITS                     F0D11850
       PXD     ,0                                                       F0D11860
       CAQ     INTTAB,,6      CONVERT FROM DECIMAL                      F0D11870
       ARS     16             REPOSITION IN LOW ORDER                   F0D11880
       STO     ELMEQ          SAVE                                      F0D11890
       NZT     SYMB2          DO HIGH ORDER DIGITS EXIST                F0D11900
       TRA     DECSX          NO                                        F0D11910
       LDQ     SYMB2          YES, LOAD LOW ORDER DIGITS                F0D11920
       PXD     ,0                                                       F0D11930
       CAQ     INTTAB,,6      CONVERT FROM DECIMAL                      F0D11940
       ARS     16             REPOSITION IN LOW ORDER                   F0D11950
       XCA                                                              F0D11960
       VLM     MILLN,,20      MULTIPLY BY 10**6                         F0D11970
       TOV     *+1            TURN OFF TRIGGER                          F0D11980
       LLS     8              SCALE                                     F0D11990
       ADD     ELMEQ          COMBINE WITH LOW ORDER DIGITS             F0D12000
       TNO     DECSX          IS NUMBER LARGER THAN 2**35               F0D12010
       SLN     EXPRR          YES, SET ERROR FLAGS                      F0D12020
       STL     ERRFE                                                    F0D12030
       PXD     ,0             DELETE NUMBER                             F0D12040
 DECSX TRA     1,4                                                      F0D12050
 MILLN DEC     004096000000                                             F0D12060
       REM                                                              F0D12070
       REM     CONVERT BINARY NUMBER RIGHT ADJUSTED IN AC TO BCD        F0D12080
 BCDCV LDQ     Q0             PREPARE TO CONVERT NUMBER TO DECIMAL      F0D12090
       TRA     BCDV1          HUNDRED THOUSAND PATCH                (25)F0D12100
       VDP     Q10000,,4      TENS OF THOUSANDS                         F0D12110
       RQL     6                                                        F0D12120
       LRS     4                                                        F0D12130
       VDP     Q1000,,4       THOUSANDS                                 F0D12140
       RQL     6                                                        F0D12150
       LRS     4                                                        F0D12160
       VDP     Q100,,4        HUNDREDS                                  F0D12170
       RQL     6                                                        F0D12180
       LRS     4                                                        F0D12190
       VDP     Q10,,4         TENS                                      F0D12200
       RQL     6                                                        F0D12210
       STQ     NERAS          COMBINE WITH                              F0D12220
       ORA     NERAS          ONES                                      F0D12230
       DCT                    TURN OFF TRIGGER                          F0D12240
       NOP                                                              F0D12250
       TRA     1,4                                                      F0D12260
       REM                                                              F0D12270
       REM     ASSEMBLE 12 CHARACTER ALPHAMERIC SYMBOL                  F0D12280
 SSCAN STZ     SYMB2          CLEAR HIGH ORDER SYMBOL                   F0D12290
       STZ     SYMBL          CLEAR LOW ORDER SYMBOL                    F0D12300
       CAL     CHRCTR         LOAD FIRST CHARACTER NEXT FIELD           F0D12310
       ERA     BLANK          IS IT BLANK                               F0D12320
       TZE     1,4            YES, NULL EXPRESSION                      F0D12330
       REM     REENTRY TO CONTINUE SCAN OF FIELD                        F0D12340
 SSCET SXA     SSCNX,4        SAVE CALLING LINKAGE                      F0D12350
       TOV     *+1            TURN OFF TRIGGER                          F0D12360
       TSX     C0190,4       *GET NEXT CHARACTER                        F0D12370
       PAX     ,4             FOR TESTING                               F0D12380
       TXL     SSCN1,4,9      CHARACTER IS NUMERIC                      F0D12390
       TXL     SSCN0,4,12     CHARACTER IS = OR '                       F0D12400
       TXL     SSCRR,4,15     CHARACTER IS ILLEGAL                      F0D12410
       TXL     SSCNX,4,16     CHARACTER IS +                            F0D12420
       TXL     SSCN1,4,25     CHARACTER IS ALPHABETIC                   F0D12430
       TXL     SSCRR,4,26     CHARACTER IS +0                           F0D12440
       TXL     SSCN1,4,27     CHARACTER IS .                            F0D12450
       TXL     SSCN0,4,28     CHARACTER IS )                            F0D12460
       TXL     SSCRR,4,31     CHARACTER IS ILLEGAL                      F0D12470
       TXL     SSCNX,4,32     CHARACTER IS -                            F0D12480
       TXL     SSCN1,4,41     CHARACTER IS ALPHABETIC                   F0D12490
       TXL     SSCRR,4,42     CHARACTER IS -0                           F0D12500
       TXL     SSCNX,4,44     CHARACTER IS $ OR *                       F0D12510
       TXL     SSCRR,4,47     CHARACTER IS ILLEGAL                      F0D12520
       TXL     SSCN2,4,48     CHARACTER IS BLANK                        F0D12530
       TXL     SSCNX,4,49     CHARACTER IS /                            F0D12540
       TXL     SSCN1,4,57     CHARACTER IS ALPHABETIC                   F0D12550
       TXL     SSCRR,4,58     CHARACTER IS RM                           F0D12560
       TXL     SSCN2+1,4,59   CHARACTER IS ,                            F0D12570
       TXH     SSCRR,4,60     CHARACTER IS ILLEGAL                      F0D12580
       REM     CHARACTER IS ( ) ' =                                     F0D12590
 SSCN0 TXL     SSCNX,4,**     IS THIS SCAN DURING MACRO DEFINITION      F0D12600
       TXL     SSCRR,4,12     NO, IS CHARACTER = OR ' NOT LEGAL IN FAP  F0D12610
       REM     CHARACTER IS VALID                                       F0D12620
 SSCN1 STZ     SCNFC          RESET FLAG FOR FIRST CHARACTER IN ELEMENT F0D12630
       CAL     SYMB2          LOAD HIGH ORDER PORTION                   F0D12640
       LDQ     SYMBL          LOAD LOW ORDER PORTION                    F0D12650
       LGL     6              SHIFT UP NEXT CHARACTER                   F0D12660
       TOV     SSCRR          IS SYMBOL (OR INTEGER) TOO LONG           F0D12670
       SLW     SYMB2          NO, SAVE HIGH ORDER PORTION               F0D12680
       XCL                                                              F0D12690
       ADD     CHRCTR         APPEND NEXT CHARACTER TO LOW ORDER PART   F0D12700
       SLW     SYMBL          SAVE LOW ORDER PORTION                    F0D12710
       TRA     SSCET+2                                                  F0D12720
       REM     CHARACTER IS ILLEGAL                                     F0D12730
 SSCRR STZ     SYMB2          CLEAR SYMBOL                              F0D12740
       STZ     SYMBL                                                    F0D12750
       SLN     EXPRR          SET ERROR FLAGS                           F0D12760
       STL     ERRFE                                                    F0D12770
       TSX     SCEND,4       *SKIP TO END OF INTEGER                    F0D12780
       TRA     FLAGB         SET BOOLEAN ERROR FLAG                    $F0D12790
       REM     END OF FIELD                                             F0D12800
 SSCN2 SLN     FLDND          SET END OF VARIABLE FIELD (BLANK) FLAG    F0D12810
       SLN     EXPND          SET END OF EXPRESSION (, OR BLANK) FLAG   F0D12820
 SSCNX AXT     **,4           RELOAD CALLING LINKAGE                    F0D12830
       TRA     2,4                                                      F0D12840
       REM                                                              F0D12850
       REM     SKIP TO END OF EXPRESSION                                F0D12860
 SCEND SXA     SCENX,4        SAVE CALLING LINKAGE                      F0D12870
       TSX     C0190,4       *GET NEXT CHARACTER                        F0D12880
       PAX     ,4             FOR TESTING                               F0D12890
       TXL     SCEND+1,4,47                                             F0D12900
       TXL     *+4,4,48       CHARACTER IS BLANK                        F0D12910
       TXL     SCEND+1,4,58                                             F0D12920
       TXL     SCENX,4,59     CHARACTER IS COMMA                        F0D12930
       TRA     SCEND+1                                                  F0D12940
       SLN     FLDND          SET END OF VARIABLE FIELD (BLANK) FLAG    F0D12950
 SCENX AXT     **,4           RELOAD CALLING LINKAGE                    F0D12960
       TRA     1,4                                                      F0D12970
       REM                                                              F0D12980
       REM     LEFT ADJUST SYMBOL NAME                                  F0D12990
 LADJS NZT     SYMB2          DOES LENGTH OF SYMBOL EXCEDE 6 CHARACTERS F0D13000
       TRA     *+3            NO                                        F0D13010
       SLN     EXPRR          YES, SET ERROR FLAGS                      F0D13020
       STL     ERRFE                                                    F0D13030
       CAL     SYMBL          LOAD LOW ORDER SYMBOL NAME                F0D13040
       TZE     *+5            DOES SYMBOL NAME EXIST                    F0D13050
       LDQ     BLANKS         YES, LOAD FOLLOWING BLANKS                F0D13060
       LGR     6              SHIFT OUT NEXT CHARACTER                  F0D13070
       TNZ     *-1            IS SYMBOL LEFT ADJUSTED                   F0D13080
       XCL                    YES, RECALL LEFT ADJUSTED SYMBOL NAME     F0D13090
       TRA     1,4                                                      F0D13100
       REM                                                              F0D13110
       REM     GOOD OLD C0190 - GET NEXT CHARACTER                      F0D13120
 C0190 LDQ     RESIDU         RELOAD REMAINDER OF SOURCE CARD WORD      F0D13130
 C019Q BSS     0              ENTRY FOR RESIDUE IN MQ               (24)F0D13135
       TIX     *+3,1,1        IS CHARACTER COUNT EXHAUSTED              F0D13140
       TSX     C0200,1       *YES, GET NEXT SOURCE CARD WORD            F0D13150
       AXT     6,1            RESET CHARACTER COUNT                     F0D13160
       PXD     ,0                                                       F0D13170
       LGL     6              SHIFT IN NEXT CHARACTER                   F0D13180
       STQ     RESIDU         SAVE REMAINDER OF SOURCE CARD             F0D13190
       SLW     CHRCTR         SAVE IT                                   F0D13200
       TRA     1,4                                                      F0D13210
       REM                                                              F0D13220
       REM     LOOK AT NEXT CHARACTER                                   F0D13230
 C019A LDQ     RESIDU         RELOAD REMAINDER OF SOURCE CARD WORD      F0D13240
       TXH     *+4,1,1        IS CHARACTER COUNT EXHAUSTED              F0D13250
       TSX     C0200,1       *YES, GET NEXT SOURCE CARD WORD            F0D13260
       STQ     RESIDU         SAVE REMAINDER OF SOURCE CARD             F0D13270
       AXT     7,1            RESET CHARACTER COUNT                     F0D13280
       PXD     ,0                                                       F0D13290
       LGL     6              SHIFT IN NEXT CHARACTER                   F0D13300
       TRA     1,4                                                      F0D13310
       REM                                                              F0D13320
       REM     GET NEXT WORD                                            F0D13330
 C0200 TXI     *+1,2,-1       BUMP CARD WORD COUNT                      F0D13340
       LDQ     BCDBF,2        LOAD NEXT SOURCE CARD WORD                F0D13350
       TXH     *+2,2,-12      IS THIS CARD IMAGE WORD 13                F0D13360
       LDQ     BLANKS         YES, SET STOP                             F0D13370
       TRA     1,1                                                      F0D13380
       REM                                                              F0D13390
       REM     BUMP STORAGE COUNTERS                                    F0D13400
 BPCTR STO     BERAS          SAVE LENGTH OF BUMP                       F0D13410
       ADD     CDCTR          BUMP CARD STORAGE COUNTER                 F0D13420
       STA     CDCTR                                                    F0D13430
       CLA     BERAS          RECALL LENGTH OF BUMP                     F0D13440
       ADD     LOCTR          BUMP PROGRAM COUNTER                      F0D13450
       STA     LOCTR                                                    F0D13460
       TRA     1,4                                                      F0D13470
       REM                                                              F0D13480
       REM     ERROR ROUTINES                                           F0D13490
SRCERR STI     DIGM2+1        SET TABLE NAME                            F0D13500
       TSX     WRITT,4       *WRITE DIAGNOSTIC HEADING                  F0D13510
       PZE     DIGM1,,5                                                 F0D13520
       CAL     DIGM1          SET DOUBLE SPACE                          F0D13530
       SLW     BCDBF-1                                                  F0D13540
       TSX     WRITT,4       *WRITE OFFENDING CARD                      F0D13550
       PZE     BCDBF-1,,15                                              F0D13560
       TSX     WRITT,4       *WRITE TABLE NAME                          F0D13570
       MZE     DIGM2,,5                                                 F0D13580
       TSX     WRFBK,4       *WRITE LAST PARTIAL LISTING BUFFER         F0D13590
       TSX    (SECL),4      **TERMINATE ASSEMBLY                        F0D13600
       PZE                    PATCH SPACE FOR POSSIBLE PARAMETER        F0D13610
       REM                                                              F0D13620
TAPERR STZ     ORDRF         SET TAPE ERROR FLAG                       $F0D13630
       TRA     MACERR+2      (RESET BY CLOSEOUT ROUTINES)              $F0D13640
MACERR TXI     *+1,,0        PARAMETER TO IDENTIFY MACHINE ERROR       $F0D13650
       STL     ORDRF         SET MACHINE ERROR FLAG                    $F0D13660
       ZET     ORDRF         WAS THIS TAPE ERROR                       $F0D13670
       TRA     (DIAG)      **NO,THIS WAS CORE ERROR                    $F0D13680
       TSX     (MECL),4    **YES,ERROR MESSAGE HAS BEEN PRINTED        $F0D13690
STP00  CAL*    (FGBX)                                                  $F0D13700
       ANA     Q4            IS THIS AN IBSFAP JOB                     $F0D13710
       TZE     STP01          NO, THIS IS FORTRAN MODE              (24)F0D13720
       STL     COMCD          YES, SET FLAG TO UNBLOCK              (24)F0D13730
       SSM                    CONTROL CARDS                         (24)F0D13740
       TRA     1,4                                                  (24)F0D13750
 BCDV1 LRS     4                                                    (25)F0D13760
       VDP     TEN5TH,,4      HUNDREDS OF THOUSANDS                 (25)F0D13770
       RQL     6                                                    (25)F0D13780
       LRS     4                                                    (25)F0D13790
       TRA     BCDCV+2        BACK TO BCDCV ROUTINE                 (25)F0D13800
       DUP     1,6            PATCH SPACE                           (25)F0D13810
       PZE                                                          (25)F0D13820
       REM                                                              F0D13850
 DIGM1 BCI     5,0        FAP DIAGNOSTIC RESULT                         F0D13860
 DIGM2 BCI     5,0            TABLE OVERFLOWED                          F0D13870
 HEDNM BCI     1,HEADNG                                                 F0D13880
 VECNM BCI     1,VECTOR                                                 F0D13890
 LITNM BCI     1,LITRAL                                                 F0D13900
 SYMNM BCI     1,SYMBOL                                                 F0D13910
 OPTNM BCI     1,OPRTN                                                  F0D13920
       REM                                                              F0D13930
*CALL MONITOR SCAN AFTER UPDATE WITH ASSEMBLY DELETED OR END OF PASS 2.$F0D13940
LOADER TSX     (LOAD),4,1   *CALL MONITOR SCAN                         $F0D13950
       BCI     1,9F0600      REC. 7 PARAMETER . MONITOR SCAN           $F0D13960
       REM                                                              F0D13970
       REM     SPACE PAGE                                               F0D13980
 SPACP SXA     *+5,1                                                    F0D13990
       AXT     7,1                                                      F0D14000
       TSX    (PRNT),4       *PRINT 7 DOUBLE SPACED BLANK LINES         F0D14010
       PZE     SPACE,,1       FOR THE NEARSIGHTED                       F0D14020
       TIX     *-2,1,1                                                  F0D14030
       AXT     **,1                                                     F0D14040
       CLA     ALONE          LIGHT UP CONSOLE                          F0D14050
       ALS     2                                                        F0D14060
       ORA     ALONE                                                    F0D14070
       LDQ     ALONE                                                    F0D14080
       HPR     -1,7           PAUSE                                     F0D14090
 SPACS NOP                    SHOULD JOB BE TERMINATED                  F0D14100
       TRA     1,2            NO                                        F0D14110
       TSX    (PRNT),4       *YES, TELL THE WORLD                       F0D14120
       PZE     *+2,,6                                                   F0D14130
       TRA     TAPERR       **TERMINATE ASSEMBLY                        F0D14140
       BCI     6,0 ASSEMBLY TERMINATED BY OPERATIONS.                   F0D14150
       REM                                                              F0D14160
       REM                                                              F0D14170
       REM     CONSTANTS                                                F0D14180
 Q0    PZE     0                                                        F0D14190
 Q1    PZE     1              9 BIT   0 ZONE                            F0D14200
 Q2    PZE     2              8 BIT  11 ZONE                            F0D14210
 Q4    PZE     4              7 BIT  12 ZONE                            F0D14220
 ZONER SYN     *                                                        F0D14230
 Q8    PZE     8              6 BIT  NO ZONE                            F0D14240
 Q16   PZE     16             5 BIT                                     F0D14250
 Q32   PZE     32             4 BIT                                     F0D14260
 Q64   PZE     64             3 BIT                                     F0D14270
 Q128  PZE     128            2 BIT                                     F0D14280
 Q256  PZE     256            1 BIT                                     F0D14290
 DIGIT PZE     512            0 BIT                                     F0D14300
 Q3    PZE     3                                                        F0D14310
 DASTR BCI     1,**0000       SPECIAL OP CODE COMPARE WORD          (24)F0D14320
 Q6    PZE     6                                                        F0D14330
 Q7    PZE     7              MASK FOR OCTAL CHARACTER                  F0D14340
 Q10   PZE     10                                                       F0D14350
 Q15   PZE     15                                                       F0D14360
 INP06                        NUMBER - ADDEND OF NEXT CARD          (25)F0D14370
 Q36   PZE     36                                                       F0D14380
 Q62   PZE     62                                                       F0D14390
 Q63   PZE     63             MASK FOR BCD CHARACTER                    F0D14400
 Q100  PZE     100                                                      F0D14410
 Q127  OCT     1777           MASK FOR LOW ORDER TEN BITS              $F0D14420
 Q1000 PZE     1000                                                     F0D14430
 Q4095 PZE     4095           MASK FOR TWO BCD CHARACTERS               F0D14440
 Q7680 PZE     7680                                                     F0D14450
 Q8192 PZE     8192                                                     F0D14460
Q10000 PZE     10000                                                    F0D14470
Q16384 PZE     16384                                                    F0D14480
 ADDMK PZE     -1             MASK FOR ADDRESS FIELD BITS 21 - 35       F0D14490
 T1    PZE     ,1                                                       F0D14500
 T2    PZE     ,2                                                       F0D14510
 T3    PZE     ,3                                                       F0D14520
 T4    PZE     ,4                                                       F0D14530
 NUM03 PZE     -1,-1,3        MASK FOR LOW ORDER 20 BITS            (25)F0D14540
 ADTMK PZE     -1,-1          MASK FOR ADDRESS,TAG FIELD BITS 18 - 35   F0D14550
 D1    PZE     ,,1                                                      F0D14560
 D2    PZE     ,,2            FLAG FOR EXPLICIT ZERO IN MACRO LOC FIELD F0D14570
       REM                    MASK FOR FLAG REQUIRING DECREMENT FIELD   F0D14580
 DELTF PZE                    FLAG FOR SYMBOLIC REF TABLE ENTRIES      $F0D14590
 D4    PZE     ,,4            MASK FOR FLAG REQUIRING TAG FIELD         F0D14600
 D5    PZE     ,,5            RELOCATION BITS FOR NAME IN TRANSFER VECTRF0D14610
 D8    PZE     ,,8            FLAG FOR DUPLICATELY-DEFINED SYMBOLS      F0D14620
       REM                    MASK FOR FLAG REQUIRING ADDRESS FIELD     F0D14630
 INP07                        ADDEND FOR NUMBERING                  (25)F0D14640
 D48   PZE     ,,48           INSTRUCTION INDIRECT ADDRESS BITS         F0D14650
 IMASK PZE     ,4,48          MASK FOR FLAGS PERMITTING INDIRECT ADDRS  F0D14660
 D63   PZE     ,,63           MASK FOR THIRD CHARACTER IN WORD          F0D14670
 D320  PZE     ,,320          COULUMN BINARY BITS                       F0D14680
 D4032 PZE     ,,4032         MACRO ARGUMENT FLAG                       F0D14690
D32512 PZE     ,,32512        MASK FOR 8-BIT COUNT FIELD                F0D14700
D32767 PZE     ,,-1                                                     F0D14710
 P1    PON                                                              F0D14720
 P4    FOR                                                              F0D14730
 BLNK3 BCI     1,   000       BLANK FOR OP CODE                     (24)F0D14740
 P7    SVN                                                              F0D14750
 ALONE SVN     -1,-1,-1       FULL WORD MASK                            F0D14760
 OPMSK OCT     777700217777   MASK FOR VALID MACHINE OPERATION BITS     F0D14770
 P1MSK OCT     777700000000   MASK TO DELETE CC 81 - 84                 F0D14780
 P2MSK BCI     1,00           MASK TO BLANK OUT CC 81 - 84              F0D14790
 QE    BCI     1,00000E                                                 F0D14800
 POINT BCI     1,00000.                                                 F0D14810
 QO    BCI     1,00000O                                                 F0D14820
 SPACE BCI     1,0            PROGRAM CONTROL CHARACTER                 F0D14830
 4FLAG BCI     1,4            MODE ERROR FLAG                           F0D14840
 9FLAG BCI     1,9            MODE ERROR FLAG                           F0D14850
 EFLAG BCI     1, E           LISTING FLAG FOR ERROR                    F0D14860
 MFLAG BCI     1, M                                                     F0D14870
 RCOMA BCI     1,,00000                                                 F0D14880
       REM                                                              F0D14890
       REM     MODE SETTING CHARACTERS FOR TAPENO PSEUDOOPERATION       F0D14900
 TAPCH BCI     1,00000        (1)                                       F0D14910
 QL    BCI     1,00000L       (2)                                       F0D14920
 QH    BCI     1,00000H       (3)                                       F0D14930
 QD    BCI     1,00000D       (4)                                       F0D14940
 QB    BCI     1,00000B       (5)                                       F0D14950
       REM                                                              F0D14960
       REM     MACRO PROCESSOR PUNCTUATION TABLE                        F0D14970
 BKTBM SYN     *                                                        F0D14980
 LPARN BCI     1,00000(                                                 F0D14990
 COMMA BCI     1,00000,                                                 F0D15000
 SLASH BCI     1,00000/                                                 F0D15010
 BLANK BCI     1,00000                                                  F0D15020
 ASTRK BCI     1,00000*                                                 F0D15030
 DOLAR BCI     1,00000$                                                 F0D15040
 MINUS BCI     1,00000-                                                 F0D15050
       BCI     1,00000)                                                 F0D15060
 PLUSS BCI     1,00000+                                                 F0D15070
 PRIME BCI     1,00000'                                                 F0D15080
 EQUAL BCI     1,00000=                                                 F0D15090
 BKTBL PZE     ,,BKTBL-BKTBM  MACRO PUNCTUATION TABLE                   F0D15100
       REM                                                              F0D15110
       REM     CONVERSION TABLES                                        F0D15120
       REM                                                              F0D15130
       REM     TO CONVERT DECIMAL TO BINARY INTEGER                     F0D15140
INTTAB PZE     INTTAB+10                                                F0D15150
       PZE     INTTAB+10,,25000                                         F0D15160
       PON     INTTAB+10,,50000                                         F0D15170
       PTW     INTTAB+10,,75000                                         F0D15180
       PTH     INTTAB+10,,100000                                        F0D15190
       PTH     INTTAB+10,,125000                                        F0D15200
       FOR     INTTAB+10,,150000                                        F0D15210
       FVE     INTTAB+10,,175000                                        F0D15220
       SIX     INTTAB+10,,200000                                        F0D15230
       SIX     INTTAB+10,,225000                                        F0D15240
               INTTAB+20                                                F0D15250
               INTTAB+20,,2500                                          F0D15260
               INTTAB+20,,5000                                          F0D15270
               INTTAB+20,,7500                                          F0D15280
               INTTAB+20,,10000                                         F0D15290
               INTTAB+20,,12500                                         F0D15300
               INTTAB+20,,15000                                         F0D15310
               INTTAB+20,,17500                                         F0D15320
               INTTAB+20,,20000                                         F0D15330
               INTTAB+20,,22500                                         F0D15340
               INTTAB+30                                                F0D15350
               INTTAB+30,,250                                           F0D15360
               INTTAB+30,,500                                           F0D15370
               INTTAB+30,,750                                           F0D15380
               INTTAB+30,,1000                                          F0D15390
               INTTAB+30,,1250                                          F0D15400
               INTTAB+30,,1500                                          F0D15410
               INTTAB+30,,1750                                          F0D15420
               INTTAB+30,,2000                                          F0D15430
               INTTAB+30,,2250                                          F0D15440
               INTTAB+40                                                F0D15450
               INTTAB+40,,25                                            F0D15460
               INTTAB+40,,50                                            F0D15470
               INTTAB+40,,75                                            F0D15480
               INTTAB+40,,100                                           F0D15490
               INTTAB+40,,125                                           F0D15500
               INTTAB+40,,150                                           F0D15510
               INTTAB+40,,175                                           F0D15520
               INTTAB+40,,200                                           F0D15530
               INTTAB+40,,225                                           F0D15540
               INTTAB+50                                                F0D15550
               INTTAB+50,4,2                                            F0D15560
               INTTAB+50,0,5                                            F0D15570
               INTTAB+50,4,7                                            F0D15580
               INTTAB+50,0,10                                           F0D15590
               INTTAB+50,4,12                                           F0D15600
               INTTAB+50,0,15                                           F0D15610
               INTTAB+50,4,17                                           F0D15620
               INTTAB+50,0,20                                           F0D15630
               INTTAB+50,4,22                                           F0D15640
               0                                                        F0D15650
               0,2                                                      F0D15660
               0,4                                                      F0D15670
               0,6                                                      F0D15680
               0,0,1                                                    F0D15690
               0,2,1                                                    F0D15700
               0,4,1                                                    F0D15710
               0,6,1                                                    F0D15720
               0,0,2                                                    F0D15730
               0,2,2                                                    F0D15740
       REM                                                              F0D15750
       REM                                                              F0D15760
       REM     TO CONVERT OCTAL TO BINARY INTEGER                       F0D15770
OCTALT PZE     OCTALT+8                                                 F0D15780
       PON     OCTALT+8                                                 F0D15790
       PTW     OCTALT+8                                                 F0D15800
       PTH     OCTALT+8                                                 F0D15810
       FOR     OCTALT+8                                                 F0D15820
       FVE     OCTALT+8                                                 F0D15830
       SIX     OCTALT+8                                                 F0D15840
       SVN     OCTALT+8                                                 F0D15850
               OCTALT+16                                                F0D15860
               OCTALT+16,,4096                                          F0D15870
               OCTALT+16,,2*4096                                        F0D15880
               OCTALT+16,,3*4096                                        F0D15890
               OCTALT+16,,4*4096                                        F0D15900
               OCTALT+16,,5*4096                                        F0D15910
               OCTALT+16,,6*4096                                        F0D15920
               OCTALT+16,,7*4096                                        F0D15930
               OCTALT+24                                                F0D15940
               OCTALT+24,,512                                           F0D15950
               OCTALT+24,,2*512                                         F0D15960
               OCTALT+24,,3*512                                         F0D15970
               OCTALT+24,,4*512                                         F0D15980
               OCTALT+24,,5*512                                         F0D15990
               OCTALT+24,,6*512                                         F0D16000
               OCTALT+24,,7*512                                         F0D16010
               OCTALT+32                                                F0D16020
               OCTALT+32,,64                                            F0D16030
               OCTALT+32,,2*64                                          F0D16040
               OCTALT+32,,3*64                                          F0D16050
               OCTALT+32,,4*64                                          F0D16060
               OCTALT+32,,5*64                                          F0D16070
               OCTALT+32,,6*64                                          F0D16080
               OCTALT+32,,7*64                                          F0D16090
               OCTALT+40                                                F0D16100
               OCTALT+40,,8                                             F0D16110
               OCTALT+40,,16                                            F0D16120
               OCTALT+40,,24                                            F0D16130
               OCTALT+40,,32                                            F0D16140
               OCTALT+40,,40                                            F0D16150
               OCTALT+40,,48                                            F0D16160
               OCTALT+40,,56                                            F0D16170
               0                                                        F0D16180
               ,,1                                                      F0D16190
               ,,2                                                      F0D16200
               ,,3                                                      F0D16210
               ,,4                                                      F0D16220
               ,,5                                                      F0D16230
               ,,6                                                      F0D16240
               ,,7                                                      F0D16250
       REM                                                              F0D16260
       REM                                                              F0D16270
       REM     TO CONVERT DECIMAL TO FLOATING POINT BINARY              F0D16280
DECTAB SYN     *-1                                                      F0D16290
       OCT 141500000000,144620000000,147764000000,153470400000          F0D16300
       OCT 156606500000,161750220000,165461132000,170575360400          F0D16310
       OCT 173734654500,177452013710,202564416672,205721522451          F0D16320
       OCT 211443023471,214553630410,217706576512,223434157116          F0D16330
       OCT 226543212741,231674055532,235425434430,240532743536          F0D16340
       OCT 243661534466,247417031702,252522640262,255647410336          F0D16350
       OCT 261410545213,264512676456,267635456171,273402374714          F0D16360
       OCT 276503074077,301623713116,304770675742,310473426555          F0D16370
       OCT 313612334311,316755023373,322464114135,325601137164          F0D16380
       OCT 330741367021,334454732313,337570120775,342726145174          F0D16390
       OCT 346445677216,351557257061,354713132676,360436770626          F0D16400
       OCT 363546566774,366700324573,372430204755,375536246150          F0D16410
       REM                                                              F0D16420
       REM     I/O COMMANDS                                             F0D16430
 BSREC MZE     1,,0           COMMAND TO BACKSPACE ONE RECORD           F0D16440
 BS2RC MZE     2,,0           I/O COMMAND TO BACKSPACE TWO RECORDS      F0D16450
 REWND PZE     ,,-1           COMMAND TO REWIND TAPE                    F0D16460
 UNLOD MZE     ,,-1           COMMAND TO REWIND-UNLOAD TAPE             F0D16470
 INTAP PZE     ILABL,,FINTAP  PARAM TO READ/WRITE FIRST INTERMED TAPE   F0D16480
       PZE     ILABL,,SINTAP  PARAM TO READ/WRITE SECOND INTERMED TAPE  F0D16490
 INTCK PZE     FINTAP,,(CHKU) COMMAND TO CHECK TRANSMISSION INT TAPE 1  F0D16500
       PZE     SINTAP,,(CHKU) COMMAND TO CHECK TRANSMISSION INT TAPE 2  F0D16510
 ITSCH PZE    (SCHU)+FINTAP   INTERMEDIATE TAPE 1 HISTORY CELL          F0D16520
       PZE    (SCHU)+SINTAP   INTERMEDIATE TAPE 2 HISTORY CELL          F0D16530
 BLABL BCI     1,FAPBIN       INTERMEDIATE PUNCH TAPE RECORD LABEL      F0D16540
 ILABL BCI     1,FAPBCD       INTERMEDIATE PRINT TAPE RECORD LABEL      F0D16550
       REM                                                              F0D16560
       IORT    BBUF11,,**     I/O COMMAND TO WRITE LISTING TAPE         F0D16570
 BCD14 PZE     BBUF11,1       ORIGIN OF LISTING OUTPUT BUFFER           F0D16580
       IORT    BBUF12,,**                                               F0D16590
       PZE     BBUF12,1                                                 F0D16600
       REM                                                              F0D16610
       IORT    BBUF21,,UPDBKL I/O COMMAND TO READ UPDATE INPUT TAPE     F0D16620
 BCD24 PZE     BBUF22,1       ORIGIN OF UPDATE INPUT BUFFER             F0D16630
       IORT    BBUF22,,UPDBKL                                           F0D16640
       PZE     BBUF21,1                                                 F0D16650
       REM                                                              F0D16660
       IORT    BBUF31,,UPDBKL I/O COMMAND TO READ SOURCE INPUT TAPE     F0D16670
 BCD34 PZE     BBUF32,1       ORIGIN OF SOURCE INPUT BUFFER             F0D16680
       IORT    BBUF32,,UPDBKL                                           F0D16690
       PZE     BBUF31,1                                                 F0D16700
       REM                                                              F0D16710
       IORT    BBUF41,,**     I/O COMMAND TO WRITE UPDATE OUTPUT TAPE   F0D16720
 BCD44 PZE     BBUF41,1       ORIGIN OF UPDATE OUTPUT BUFFER            F0D16730
       IORT    BBUF42,,**                                               F0D16740
       PZE     BBUF42,1                                                 F0D16750
       REM                                                              F0D16760
       IORT    BBUF51,,**     I/O COMMAND TO WRITE INTERMEDIATE TAPE    F0D16770
 BCD54 PZE     BBUF51,1       ORIGIN OF INTERMEDIATE OUTPUT BUFFER      F0D16780
       IORT    BBUF52,,**                                               F0D16790
       PZE     BBUF52,1                                                 F0D16800
       REM                                                              F0D16810
       IORT    BBUF51,,INPBKL I/O COMMAND TO READ INTERMEDIATE TAPE     F0D16820
 BCD55 PZE     BBUF52,1       ORIGIN OF INTERMEDIATE INPUT BUFFER       F0D16830
       IORT    BBUF52,,INPBKL                                           F0D16840
       PZE     BBUF51,1                                                 F0D16850
       REM                                                              F0D16860
       IOCP    PBUFF2,,24     I/O COMMAND TO WRITE BINARY OUTPUT RECORD F0D16870
 BOTIO IOCT    PBUFF2+24,,3   AND CARD SERIALIZATION FROM PROPER BUFFER F0D16880
       IOCP    PBUFF3,,24                                               F0D16890
       IOCT    PBUFF3+24,,3                                             F0D16900
       REM                                                              F0D16910
       PZE     PBUFF2+27,4    ORIGIN OF BINARY OUTPUT RECORD BUFFER     F0D16920
 BOTBF PZE     PBUFF2+1       BINARY OUTPUT BUFFER CHECKSUM             F0D16930
       PZE     PBUFF3+27,4                                              F0D16940
       PZE     PBUFF3+1                                                 F0D16950
       REM                                                              F0D16960
       PZE     PBUFF4+27,4    ORIGIN OF BINARY INTERMED RECORD BUFFER   F0D16970
 BINBF PZE     PBUFF4+1       BINARY INTERMEDIATE BUFFER CHECKSUM       F0D16980
       PZE     PBUFF5+27,4                                              F0D16990
       PZE     PBUFF5+1                                                 F0D17000
       REM                                                              F0D17010
       IOCT    PBUFF4,,24     I/O COMMAND TO WRITE BINARY INTER RECORD  F0D17020
 BINIO PZE                                                              F0D17030
       IOCT    PBUFF5,,24                                               F0D17040
       REM                                                              F0D17050
       REM                                                              F0D17060
 DCV15 STZ     DCPFG          RESET EXCESS DECIMAL POINT FLAG          $F0D17070
       STZ     DCEFG          RESET EXCESS EXPONENT (E) FLAG           $F0D17071
       STZ     DC2FG          RESET EXCESS EXPONENT (B) FLAG           $F0D17072
       TRA     DCV03+2                                                 $F0D17073
 DCV16 ZET     DCPFG          IS THERE AN EXCESS DECIMAL POINT         $F0D17074
       TRA     DCVRR          YES, SET ERROR FLAG                      $F0D17075
       STO     DCPFG          NO                                       $F0D17076
       TRA     DCV01                                                   $F0D17077
 DCV17 ZET     DCEFG          IS THERE AN EXCESS EXPONENT (E)          $F0D17078
       TRA     DCVRR          YES, SET ERROR FLAG                      $F0D17079
       STO     DCEFG          NO                                       $F0D1707A
       TRA     DCV02                                                   $F0D1707B
 DCV18 ZET     DC2FG          IS THERE AN EXCESS EXPONENT (B)          $F0D1707C
       TRA     DCVRR          YES, SET ERROR FLAG                      $F0D1707D
       STO     DC2FG          NO                                       $F0D1707E
       TRA     DCV03                                                   $F0D1707F
       REM     CONVERT BINARY NUMBER TO DECIMAL                        $F0D1707G
OCTDV  VLM     Q8,,3                                                   $F0D1707H
       STO     NERAS                                                   $F0D1707I
       VLM     Q80,,3                                                  $F0D1707J
       ADD     NERAS                                                   $F0D1707K
       STO     NERAS                                                   $F0D1707L
       VLM     Q800,,3                                                 $F0D1707M
       ADD     NERAS                                                   $F0D1707N
       STO     NERAS                                                   $F0D1707O
       VLM     Q8000,,3                                                $F0D1707P
       ADD     NERAS                                                   $F0D1707Q
       STO     NERAS                                                   $F0D1707R
       VLM     Q80000,,3                                               $F0D1707S
       ADD     NERAS                                                   $F0D1707T
       TRA     1,4                                                     $F0D1707U
Q80    PZE     80                                                      $F0D1707V
Q800   PZE     800                                                     $F0D1707W
Q8000  PZE     8000                                                    $F0D1707X
Q80000 DEC     80000                                                   $F0D1707Y
FPRNA  CAL*    FPRN2          PICK UP FIRST WORD OF LINE               $F0D1707Z
       ARS     30             ISOLATE FIRST CHARACTER                  $F0D17080
       TNZ     WRITT          NOT DOUBLE-SPACE, WRITE LINE             $F0D17081
       TIX     WRITT,1,1      YES, BUMP LINE COUNT ONE EXTRA           $F0D17082
       TRA     PAGENO         PAGE IS FULL                             $F0D17083
 DLRUT TSX     C019A,4         GET NEXT CHARACTER FOR TEST             $F0D17084
       PAX     ,4                                                      $F0D17085
       TXL     HDTST,4,9       CHARACTER IS NUMERIC                    $F0D17086
       TXL     DLERR,4,16      CHARACTER IS ILLEGAL OR PLUS            $F0D17087
       TXL     HDTST,4,25      CHARACTER IS ALPHABETIC                 $F0D17088
       TXL     DLERR,4,26      CHARACTER IS ILLEGAL                    $F0D17089
       TXL     HDTST,4,28      CHARACTER IS PERIOD OR RIGHT PARENTHESIS$F0D1708A
       TXL     DLERR,4,32      CHARACTER IS ILLEGAL OR MINUS           $F0D1708B
       TXL     HDTST,4,41      CHARACTER IS ALPHABETIC                 $F0D1708C
       TXL     DLERR,4,49      CHARACTER IS BLANK OR EQUALS            $F0D1708D
       TXL     HDTST,4,57      CHARACTER IS ALPHABETIC                 $F0D1708E
       TXL     DLERR,4,59      CHARACTER IS ILLEGAL OR COMMA           $F0D1708F
       TXL     HDTST,4,60      CHARACTER IS LEFT PARENTHESIS           $F0D1708G
       REM     REENTRY FOR IMPROPER DOLLAR SIGN                        $F0D1708H
 DLERR SLN     EXPRR           SET ERROR FLAGS                         $F0D1708I
       STL     ERFDL                                                   $F0D1708J
       TRA     SCN02+2         RETURN                                  $F0D1708K
       REM     REENTRY TO TEST FOR MORE THAN ONE CHARACTER PRECEEDING  $F0D1708L
 HDTST CAL     SYMBL           GET PRECEEDING CHARACTERS               $F0D1708M
       LGR     6                                                       $F0D1708N
       TNZ     DLERR           MORE THAN ONE BEFORE DOLLAR SIGN        $F0D1708O
       LGL     6               OK                                      $F0D1708P
       TRA     SCN02+1         RETURN                                  $F0D1708Q
PATCH  TXH     FPRN1,2,0      IS LINE AT TOP OF PAGE BLANK             $F0D1708R
       TXI     FPRN1,1,-1     YES, BUMP PAGE LINE COUNT DOWN ONE       $F0D1708S
FLAGB  STL     ERRFB          INDICATE BOOLEAN ERROR                   $F0D1708T
       TRA     SSCN2+1        RETURN                                   $F0D1708U
       TTL     PASS ONE SUBROUTINES                                     F0D17090
PASSLP SYN     *                                                       $F0D17093
       REM     PASS ONE                                                 F0D17100
       REM                                                              F0D17110
       REM     COPY INPUT TAPE TO INTERMEDIATE TAPE                     F0D17120
       REM     PREPARE TABLE OF SYMBOLS APPEARING IN SOURCE PROGRAM     F0D17130
       REM     PARTIALLY PROCESS PSEUDOOPS AND LITERALS                 F0D17140
       REM     PREPARE TRANSFER VECTOR                                  F0D17150
       REM                                                              F0D17160
       HEAD    4              PASS ONE                                  F0D17170
       ORG     PASSLP                                                   F0D17180
       REM                                                              F0D17190
       REM     SSYMT SUBROUTINE MUST ORIGIN AT SAME LOCATN PASS 1 AND 2 F0D17200
       REM     LINEAR SEARCH OF SYMBOL TABLE                            F0D17210
 SSYMT SXA     SRCHX,4        SAVE CALLING LINKAGE                      F0D17220
       CAL     SYMSIZ         COMPUTE LENGTH OF SYMBOL TABLE            F0D17230
       COM                                                              F0D17240
       ARS     18                                                       F0D17250
       ADD     Q3                                                       F0D17260
       PAX     ,4                                                       F0D17270
       ADM     ESYM3          COMPUTE ORIGIN AT END OF SYMBOL TABLE     F0D17280
       STA     SRCH1          FOR SYMBOL NAMES                          F0D17290
       ADD     Q1                                                       F0D17300
       STA     SRCH2          FOR LOCATIONS                             F0D17310
       CAL     SYMBL          LOAD SYMBOL NAME                          F0D17320
 SRCH1 LAS     **,4           IS IT IN SYMBOL TABLE                     F0D17330
       TIX     SRCH1,4,2      NOT YET                                   F0D17340
       TXH     SRCH2,4,2      YES                                       F0D17350
       TIX     SRCH1,4,2      NOT YET, IS SYMBOL TABLE EXHAUSTED        F0D17360
       SLN     EXPRR          YES, PHASE ERROR                          F0D17370
       PXD     ,0                                                       F0D17380
       TRA     SRCHX                                                    F0D17390
 SRCH2 CLA     **,4           LOAD LOCATION OF SYMBOL                   F0D17400
       PAI                    LOAD FLAGS                                F0D17410
       LFT     4              IS THIS NAME IN TRANSFER VECTOR           F0D17420
       SLN     EXPRR          YES, PHASE ERROR (CANNOT DEFINE PSEUDOOP) F0D17430
       ZET     ABSFLG         IS ASSEMBLY ABSOLUTE                      F0D17440
       ANA     ADTMK          YES, DELETE EXTRANEOUS FLAGS              F0D17450
       SXA     SET01,4        SAVE LOCATION OF SYMBOL                   F0D17460
 SRCHX AXT     **,4           RELOAD CALLING LINKAGE                    F0D17470
       TRA     1,4                                                      F0D17480
       REM                                                              F0D17490
       REM     ENTER NAME IN AC, DEFINITION IN SI, IN COMBINED OP TABLE F0D17500
       REM     SEE REQUIRED FLAGS UNDER COMBINED OP TABLE               F0D17510
 EOPTB CAL     BCDBF          LOAD LOCATION FIELD                       F0D17520
 EOPTT SXA     EOPTX,4        SAVE CALLING LINKAGE                      F0D17530
       STI     BERAS          SAVE OP DEFINITION                        F0D17540
       TSX     LOCFL,4       *ASSEMBLE OP NAME                          F0D17550
       TZE     FIELD        **DOES OP NAME EXIST                        F0D17560
       LGR     6              YES, LEFT ADJUST NAME                     F0D17570
       TNZ     *-1                                                      F0D17580
       XCL                                                              F0D17590
       SLW     SYMBL          SAVE LEFT ADJUSTED OP NAME                F0D17600
       TSX     SOPTB,4       *FIND LOCATION IN OP TABLE                 F0D17610
       TRA     *+2            NOT IN                                    F0D17620
       TRA     EOPT1+3        IN TABLE, REDEFINE                        F0D17630
       LAS     OPTTBL-2,1     PINPOINT LOCATION OF ENTRY                F0D17640
       TXI     *+2,1,-2                                                 F0D17650
       TSX     MACERR,4     **IMPOSSIBLE PATH OF FLOW                   F0D17660
       SXD     EOPT1,1        MARK LOWEST NAME TO BE MOVED UP           F0D17670
       LXD     OPTSIZ,6       LOAD CURRENT TABLE LENGTH                 F0D17680
       TXI     *+1,4,-2       BUMP                                      F0D17690
       TXH     *+3,4,-LOPTBM  DID OP TABLE OVERFLOW                     F0D17700
       LDI     OPTNM          YES, SET OP TABLE OVERFLOW                F0D17710
       TRA     SRCERR       **TERMINATE ASSEMBLY                        F0D17720
       SXD     OPTSIZ,4       NO, SET NEW TABLE LENGTH                  F0D17730
       TXI     *+1,4,-1                                                 F0D17740
       SXD     SOPT1,4        SET UPPER LIMIT FOR TABLE SEARCH          F0D17750
       CAL     OPTTBL-2,2     MOVE TABLE UP OFF THE TOP                 F0D17760
       LDQ     OPTTBL-1,2     TO MAKE ROOM FOR NEW ENTRY                F0D17770
       SLW     OPTTBL,2                                                 F0D17780
       STQ     OPTTBL+1,2                                               F0D17790
       TXI     *+1,2,2        BUMP TO NEXT PAIR                         F0D17800
       TXL     *+2,2,0        IS ENTRY AT BOTTOM OF TABLE               F0D17810
 EOPT1 TXL     *-6,2,**       NO, IS TABLE MOVED                        F0D17820
       CAL     SYMBL          YES, INSERT OP NAME                       F0D17830
       SLW     OPTTBL-2,1     INTO TABLE                                F0D17840
       LDI     BERAS          INSERT OP DEFINITION                      F0D17850
       STI     OPTTBL-1,1     INTO TABLE                                F0D17860
 EOPT2 TXH     EOPTX,4,-2048  IS TABLE NOW LONGER THAN 1024 OPCODES     F0D17870
       LXD     EOPT2,4        YES, LOAD CURRENT TABLE LENGTH            F0D17880
       TXI     *+1,4,-2048    DOUBLE                                    F0D17890
       SXD     *-1,4          RESET BUMP                                F0D17900
       SXD     EOPT2,4        RESET TEST                                F0D17910
       CAL     OPTSIZ         BUMP LOGARITHM                            F0D17920
       ADD     Q2             FOR TABLE OF DOUBLE SIZE                  F0D17930
       STA     OPTSIZ                                                   F0D17940
 EOPTX AXT     **,4           RELOAD CALLING LINKAGE                    F0D17950
       TRA     1,4                                                      F0D17960
       REM                                                              F0D17970
       REM     ASSEMBLE SUBPROGRAM NAME AND ENTER INTO TRANSFER VECTOR  F0D17980
 CALNM SXA     CALNX,4        SAVE CALLING LINKAGE                      F0D17990
       STZ     SYMBL          CLEAR SUBPROGRAM NAME                     F0D18000
       TRA     CALN1          TEST FOR ABSOLUTE ASSEMBLY               $F0D18010
       TSX     SCANF,4       *ASSEMBLE SUBPROGRAM NAME                  F0D18020
       TXI     AFLAG,,0       NULL SUBPROGRAM NAME                      F0D18030
       SLT     EXPRR          TURN OFF ERROR FLAG                       F0D18040
       NOP                    PERMIT MULTIPLE DEFINITION                F0D18050
       ZET     ABSFLG         IS ASSEMBLY ABSOLUTE                      F0D18060
       TRA     CALNX          YES                                       F0D18070
       TSX     LADJS,4       *LEFT ADJUST SUBPROGRAM NAME               F0D18080
       TZE     *+3            DOES SUBPROGRAM NAME EXIST                F0D18090
       SLT     EXPRR          YES, IS SUBPROGRAM NAME FLAGGED AS ERROR  F0D18100
       TSX     TRVCR,4       *NO, ENTER NAME IN TRANSFER VECTOR TABLE   F0D18110
       STZ     TVFLG          RESET TRANSFER VECTOR NAME FLAG           F0D18120
 CALNX AXT     **,4           RELOAD CALLING LINKAGE                    F0D18130
       TRA     1,4                                                      F0D18140
       REM                                                              F0D18150
       REM     ENTER NAMES IN TRANSFER VECTOR TABLE                     F0D18160
 TRVCR SXA     TRVCX,4        SAVE CALLING LINKAGE                      F0D18170
       AXT     LTVTBL,4       LOAD TRANSFER VECTOR TABLE LENGTH         F0D18180
       TXL     TRVC1,4,LTVTBL IS VECTOR EXHAUSTED                       F0D18190
       LAS     VECTOR+LTVTBL,4 NO, IS IT THIS WORD IN VECTOR            F0D18200
       TXI     *-2,4,-1       NO                                        F0D18210
       TRA     TRVCX          YES                                       F0D18220
       TXI     *-4,4,-1       NO                                        F0D18230
 TRVC1 TXH     *+3,4,0        DID TRANSFER VECTOR TABLE OVERFLOW        F0D18240
       LDI     VECNM          YES, SET TRANSFER VECTOR OVERFLOW         F0D18250
       TRA     SRCERR       **TERMINATE ASSEMBLY                        F0D18260
       SLW     VECTOR+LTVTBL,4 ADD NAME TO END OF TABLE                 F0D18270
       PAI                    HOLD SYMBOL NAME                          F0D18280
       TXI     *+1,4,-1       BUMP VECTOR COUNT                         F0D18290
       SXD     TRVCR+2,4      RESET END OF TRANSFER VECTOR TABLE TEST   F0D18300
       LDC     TRVCR+2,4      COMPUTE CURRENT LENGTH OF TRANSFER VECTOR F0D18310
       TXI     *+1,4,LTVTBL                                             F0D18320
       SXD     PBUFF1+2,4     INSERT IN PROGRAM CARD 8L DECREMENT       F0D18330
       SXA     PBUFF1+5,4     INSERT ENTRY POINT IN PC 7R ADDRESS       F0D18340
       TXI     *+1,4,-1       COMPUTE RELATIVE LOCATION OF VECTOR NAME  F0D18350
       PXA     ,4                                                       F0D18360
       ORA     D5             AND VECTOR RELOCATION BITS                F0D18370
       STO     ADDRS                                                    F0D18380
       PIA                    RECALL SYMBOL NAME                        F0D18390
       TSX     ESYMT,4       *DEFINE SYMBOL                             F0D18400
 TRVCX AXT     **,4           RELOAD CALLING LINKAGE                    F0D18410
       TRA     1,4                                                      F0D18420
       REM                                                              F0D18430
       REM     ENTER NAME, DEFINITION IN ADDRS, INTO SYMBOL TABLE       F0D18440
       REM     ENTRY WORD 1 CONTAINS SYMBOL NAME RIGHT ADJUSTED         F0D18450
       REM                           HEADING CHARACTER LEFT ADJUSTED    F0D18460
       REM                           FILLED WITH ZEROES                 F0D18470
       REM     ENTRY WORD 2 CONTAINS ASSIGNED LOCATION BITS 18-35       F0D18480
       REM                           FLAGS BITS 3 - 17                  F0D18490
       REM                                 BIT  13 SET SYMBOL           F0D18500
       REM                                      14 MULTIPLY DEFINED     F0D18510
       REM                                      15 TRANSFER VECTOR NAME F0D18520
       REM                                      16 COMMON VARIABLE      F0D18530
       REM                                      17 RELOCATABLE SYMBOL   F0D18540
 ESYML CAL     BCDBF          ENTRY POINT TO DEFINE LOCATION FIELD      F0D18550
 ESYMT SXA     ESYMX,4        SAVE CALLING LINKAGE                      F0D18560
       SXA     ESYMX+1,2      SAVE WORD COUNT                           F0D18570
       TXH     ESYM0,4,-1     IS SYSTEM SYMBOL TABLE PRESERVED          F0D18580
       SXD     *-1,0          NO, RESET SWITCH                          F0D18590
       LDC     SYMSIZ,6       LOAD LENGTH OF SYMBOL TABLE               F0D18600
       TXI     *+1,2,SYMTBL   COMPUTE ORIGIN AT END OF SYMBOL TABLE     F0D18610
       SXA     *+1,2          INITIALIZE CLEAR LOOP                     F0D18620
       STZ     **,4           CLEAR SYMBOL TABLE                        F0D18630
       TIX     *-1,4,1                                                  F0D18640
       STZ     SYMSIZ         RESET SYMBOL TABLE COUNT                  F0D18650
 ESYM0 STL     FCFLG          SET FLAG TO PREVENT ABS OR ENTRY CARDS    F0D18660
       REM                    FROM SETTING MODE OF ASSEMBLY             F0D18670
       TSX     LOCFL,4       *ASSEMBLE UNIFORM SYMBOL                   F0D18680
       TZE     ESYMX          IS THERE A SYMBOL                         F0D18690
       LXD     SYMSIZ,4       YES, LOAD CURRENT SYMBOL TABLE SIZE       F0D18700
       AXT     0,2            LOAD SINGLE HEAD COUNT                    F0D18710
       XCL                                                              F0D18720
       LGL     6              SHIFT IN FIRST CHARACTER                  F0D18730
       ZET     TVFLG          IS THIS NAME IN TRANSFER VECTOR           F0D18740
       TRA     *+4            YES, FORCE UNHEADING                      F0D18750
       TNZ     *+3            NO, IS SYMBOL SHORTER THAN SIX CHARACTERS F0D18760
 HEDCT AXT     **,2           NO, LOAD MULTIPLE HEADING COUNT           F0D18770
 ESYM2 CAL     BHEAD,2        APPEND HEADING CHARACTER                  F0D18780
       LGL     30             SHIFT IN HEADED SYMBOL                    F0D18790
 ESYM3 SLW     SYMTBL,4       ADD SYMBOL TO END OF TABLE                F0D18800
       LGR     30             HOLD UNHEADED SYMBOL                      F0D18810
       CLA     ADDRS          DEFINE SYMBOL AS CURRENT CONTENTS OF      F0D18820
       STO     SYMTBL+1,4     PROGRAM COUNTER                           F0D18830
       TXI     *+1,4,-2       BUMP SYMBOL TABLE COUNTER                 F0D18840
       TXH     *+3,4,-LSMTBM  DID SYMBOL TABLE OVERFLOW                 F0D18850
       LDI     SYMNM          YES, SET SYMBOL TABLE OVERFLOW            F0D18860
       TRA     SRCERR       **TERMINATE ASSEMBLY                        F0D18870
       TXL     *+2,2,0        IS MULTIPLE HEADING LIST EXHAUSTED        F0D18880
       TXI     ESYM2,2,-1     NO, BUMP LIST COUNT TO NEXT HEAD CHARACTERF0D18890
       SXD     SYMSIZ,4       SAVE SYMBOL TABLE LENGTH                  F0D18900
 ESYMS TXI     ESYMZ,4,-SYMTBL TO TEST FOR OVERLAP OF MACRO TABLE      $F0D18910
       SXD     STPTR,4        SAVE CURRENT SYMBOL TABLE END            $F0D18920
 ESYMX AXT     **,4           RELOAD CALLING LINKAGE                    F0D18930
       AXT     **,2           RELOAD WORD COUNT                         F0D18940
       TRA     1,4                                                      F0D18950
       REM                                                              F0D18960
       REM     SCAN PSEUDOOP VARIABLE FIELD                             F0D18970
 SCANP SXA     SCNPX,4        SAVE CALLING LINKAGE                      F0D18980
       TSX     SCANF,4       *EVALUATE VARIABLE FIELD                   F0D18990
       TXI     SCNPX+2,,0     NULL VARIABLE FIELD                       F0D19000
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D19010
       TRA     *+2            NO                                        F0D19020
       TRA     FIELX        **YES                                       F0D19030
       LDI     Q0             PRESET ABSOLUTE SYMBOL                    F0D19040
       ZET     VARUR          IS VARIABLE FIELD RELOCATABLE             F0D19050
       SIL     1              YES, SET RELOCATION BIT                   F0D19060
       ZET     VARUC          IS VARIABLE FIELD COMMON                  F0D19070
       SIL     2              YES, SET COMMON BIT (CANNOT BE BOTH)      F0D19080
 SCNPX AXT     **,4           RELOAD CALLING LINKAGE                    F0D19090
       TRA     2,4                                                      F0D19100
       LXA     SCNPX,4        RELOAD CALLING LINKAGE                    F0D19110
       LDI     Q0             SET NULL FIELD ABSOLUTE ZERO              F0D19120
       TRA     1,4                                                      F0D19130
       REM                                                              F0D19140
       REM     SET FLAG FOR MISSING PSEUDOOP VARIABLE FIELD             F0D19150
 AFLAG CAL     Q64            FLAG MISSING VARIABLE FIELD               F0D19160
       ORS     P1FLG                                                    F0D19170
       SLN     FLDND          DELETE F FLAG                             F0D19180
       PXD     ,0                                                       F0D19190
       TRA     2,4                                                      F0D19200
       REM                                                              F0D19210
       REM     LOOK AHEAD FOR ETC CARD                                  F0D19220
 PEEKS SXA     PEEKX,4        SAVE CALLING LINKAGE                      F0D19230
       SXA     PEEKX+1,2      SAVE WORD COUNT                           F0D19240
       SXA     PEEKX+2,1      SAVE CHARACTER COUNT                      F0D19250
 PKMSW TXH     *+3,4,**       IS NEXT CARD TO BE MACRO COMPILED         F0D19260
       TXH     PEEKX,4,**     YES, WILL NEXT CARD BE AN ETC             F0D19270
       TRA     PEEK1          YES                                       F0D19280
       LXA     DUPCD,4        LOAD COUNT OF REMAINING CARDS IN DUP      F0D19290
       ZET     DUPMD          IS THIS CARD WITHIN RANGE OF DUP          F0D19300
       TXL     PEEKX,4,0      YES, IS THIS LAST CARD IN DUP             F0D19310
       LXD     SRCSW,4        NO, LOAD SOURCE BUFFER SWITCH             F0D19320
       TXL     *+3,4,0        IS SOURCE BUFFER EMPTY                    F0D19330
       SXD     SRCSW,0        YES, RESET SWITCH                         F0D19340
       TSX     SRCIN,4       *READ NEXT SOURCE CARD                     F0D19350
       LXD     UPDSW,4        LOAD UPDATE BUFFER SWITCH                 F0D19360
       TXL     *+3,4,0        IS UPDATE BUFFER EMPTY                    F0D19370
       SXD     UPDSW,0        YES, RESET SWITCH                         F0D19380
       TSX     UPDIN,4       *READ NEXT UPDATE CARD                     F0D19390
       LDQ     INSBF+2        PRELOAD SOURCE WORD 2                     F0D19400
       REM                    THIS HAD BETTER NOT BE A 'DELETE'         F0D19410
       REM                    FOLLOWED BY AN 'ETC' CARD                 F0D19420
       CAL     SRCID+1        LOAD SOURCE ID LEADING CHARACTERS         F0D19430
       LAS     UPDID+1        IS IT SMALLER THAN UPDATE ID              F0D19440
       TRA     *+5            NO, USE UPDATE OPFIELD                    F0D19450
       TRA     *+2            EQUAL, CHECK FURTHER                      F0D19460
       TRA     *+5            YES, USE SOURCE OPFIELD                   F0D19470
       CAL     SRCID          LOAD SOURCE ID                            F0D19480
       LAS     UPDID          IS IT SMALLER THAN UPDATE ID              F0D19490
       LDQ     DELBF+2        NO, USE UPDATE WORD 2                     F0D19500
       NOP                    EQUAL, USE SOURCE OPFIELD                 F0D19510
       XCA                                                              F0D19520
       ANA     PKMSK          MASK IN CC 8 - 11                         F0D19530
       ERA     ETCMK          IS OPCODE ETC                             F0D19540
       TNZ     PEEKX          NO                                        F0D19550
 PEEK1 CAL     Q2             YES, SET ETC FLAG IN CARD WORD 14 (CC 84) F0D19560
       ORS     P1FLG                                                    F0D19570
       STL     ETCMD          SET ETC FLAG                              F0D19580
       LXA     PEEKX,4        RELOAD CALLING LINKAGE                    F0D19590
       LXA     PEEKX+1,2      RELOAD WORD COUNT                         F0D19600
       LXA     PEEKX+2,1      RELOAD CHARACTER COUNT                    F0D19610
       TRA     1,4            ETC RETURN                                F0D19620
 PEEKX AXT     **,4           RELOAD CALLING LINKAGE                    F0D19630
       AXT     **,2           RELOAD WORD COUNT                         F0D19640
       AXT     **,1           RELOAD CHARACTER COUNT                    F0D19650
       TRA     2,4            NO ETC RETURN                             F0D19660
 PKMSK OCT     007777777700   MASK FOR OP FIELD CC 8 - 11               F0D19670
 ETCMK BCI     1,0ETC 0       MASK FOR ETC PSEUDOOPERATION              F0D19680
       REM                                                              F0D19690
       REM                                                              F0D19700
       REM     INPUT/OUTPUT SUBROUTINES                                 F0D19710
       REM                                                              F0D19720
       REM     READ CARD FROM SOURCE/UPDATE TAPES                       F0D19730
 INPUT SXA     INPTX,4        SAVE CALLING LINKAGE                      F0D19740
 SRCSW TXH     *+3,4,-1       IS SOURCE BUFFER EMPTY                    F0D19750
       SXD     *-1,0          YES, RESET SWITCH                         F0D19760
       TSX     SRCIN,4       *READ NEXT SOURCE CARD                     F0D19770
       TRA     SRCS1                                                   $F0D19780
       ORA     SRCID+1        CC 73 - 80                                F0D19790
       TZE     INP03+1        IS SOURCE ID BLANK                        F0D19800
       NZT     IPTFLG         NO, IS UPDATE INPUT TAPE PROVIDED         F0D19810
       TRA     INP03+1        NO                                        F0D19820
 UPDSW TXH     *+3,4,0        YES, IS UPDATE BUFFER EMPTY               F0D19830
       SXD     *-1,0          YES, RESET SWITCH                         F0D19840
       TSX     UPDIN,4       *READ NEXT UPDATE CARD                     F0D19850
       TRA     INP02+7                                                  F0D19860
       REM     LAST CARD READ WAS SKIP TO                               F0D19870
 INP00 ZSD     SKPFG          SET SKIP-TO SWITCH                        F0D19880
       REM     LAST CARD READ WAS IGNORE                                F0D19890
       AXT     -1,4           SET IGNORE SWITCH                         F0D19900
       SXD     DELUP+2,4                                                F0D19910
       REM     LAST CARD READ WAS DELETE                                F0D19920
       CAL     BCDBF+2        LOAD CARD WORD 3                          F0D19930
       LAS     EBTHR          IS CARD DELETE/IGNORE  THRU               F0D19940
       TRA     *+2            NO                                        F0D19950
       TRA     *+6            YES                                      $F0D19960
       ERA     ETHRU          IS CARD DELETE/IGNORE THRU               $F0D19970
       TZE     *+4            YES                                       F0D19980
       CAL     BCDBF+1        IS CARD                                   F0D19990
       ERA     SKIPC          SKIPTO                                    F0D20000
       TNZ     INP02          NO                                        F0D20010
       STZ     SEQID          YES, AVOID ERRORS ON DELETE               F0D20020
       STZ     SEQID+1                                                  F0D20030
 INP01 CAL     UPDID+1        LOAD UPDATE ID LEADING CHARACTERS         F0D20040
       LAS     SRCID+1        IS IT SMALLER THAN SOURCE ID              F0D20050
       TRA     INP02          NO, ALL DONE                              F0D20060
       TRA     *+2            EQUAL, CHECK FURTHER                      F0D20070
       TRA     *+5            YES, DELETE ANOTHER UPDATE CARD           F0D20080
       CAL     UPDID          LOAD UPDATE ID                            F0D20090
       LAS     SRCID          IS IT SMALLER THAN SOURCE ID              F0D20100
       TRA     INP02          NO, ALL DONE                              F0D20110
       TRA     *+4            EQUAL, ONE MORE TO GO                     F0D20120
 SKP01 TSX     DELUP+2,4     *YES, LIST UPDATE CARD DELETED             F0D20130
       TSX     UPDIN,4       *GET NEXT UPDATE CARD                      F0D20140
       TRA     INP01                                                    F0D20150
 SKPFG TXH     *+2,4,-1       SKIP SWITCH, DECR IS ZERO IF SKIP-TO      F0D20160
       TSX     DELUP,4       *DELETE MATCHING UPDATE CARD               F0D20170
       AXT     -1,4           RESET SKIP SWITCH                         F0D20180
       SXD     *-3,4          FOR ANOTHER USE                           F0D20190
       REM     DELETE IS COMPLETE                                       F0D20200
 INP02 CAL     SKPFG          IS SKIP-TO IN EFFECT                      F0D20210
       ANA     D32767         IF YES, CONSINUE SEARCHING FOR            F0D20220
       TZE     SKP01          MATCHING SERIALIZATION                    F0D20230
       TSX     SRCIN,4       *NO, GET CARD FOLLOWING CONTROL CARD       F0D20240
       TSX     FPRINT,4      *PRINT BLANK LINE                          F0D20250
       PZE                                                              F0D20260
       TRA     INPUT+1                                                  F0D20270
       REM     MOVE NEXT CARD                                           F0D20280
       TRA     INP2A                                                   $F0D20290
       CAL     INSBF+3        LOAD SOURCE WORD 3                        F0D20300
       LAS     EBTHR          IS CARD DELETE/IGNORE  THRU               F0D20310
       TRA     *+2            NO                                        F0D20320
       TRA     INP03+1        YES, USE IT                               F0D20330
       ERA     ETHRU          IS CARD DELETE/IGNORE THRU                F0D20340
       TZE     INP03+1        YES, USE IT                               F0D20350
       CAL     INSBF+2        IS CARD                                   F0D20360
       ERA     SKIPC          SKIPTO                                    F0D20370
       TZE     INP03+1        YES, FA LA LA LA                          F0D20380
       CAL     UPDID+1        NO, LOAD UPDATE ID LEADING CHARACTERS     F0D20390
       LAS     SRCID+1        IS IT SMALLER THAN SOURCE ID              F0D20400
       TRA     INP03+1        NO, USE SOURCE CARD                       F0D20410
       TRA     *+2            EQUAL, CHECK FURTHER                      F0D20420
       TRA     *+5            YES, USE UPDATE CARD                      F0D20430
       CAL     UPDID          LOAD UPDATE ID                            F0D20440
       LAS     SRCID          IS IT SMALLER THAN SOURCE ID              F0D20450
       TRA     INP03+1        NO, USE SOURCE CARD                       F0D20460
       TRA     INPCH         EQUAL ,DELETE UPDATE CARD                 $F0D20470
       AXT     14,4           YES, MOVE UPDATE CARD                     F0D20480
       CAL     DELBF+15,4     FROM UPDATE INPUT BUFFER                  F0D20490
       SLW     BCDBF+14,4     TO WORKING BUFFER                         F0D20500
       TIX     *-2,4,1                                                  F0D20510
       AXT     -1,4           SET SWITCH FOR EMPTY UPDATE BUFFER        F0D20520
       SXD     UPDSW,4                                                  F0D20530
       CAL     UPDID+1        LOAD ID FOR THIS CARD                     F0D20540
       LDQ     UPDID                                                    F0D20550
       TRA     INP04                                                    F0D20560
       REM     USE NEXT SOURCE CARD                                     F0D20570
 INP03 TSX     DELUP,4       *DELETE MATCHING UPDATE CARD               F0D20580
       AXT     14,4           MOVE SOURCE CARD                          F0D20590
       CAL     INSBF+15,4     FROM SOURCE INPUT BUFFER                  F0D20600
       SLW     BCDBF+14,4     TO WORKING BUFFER                         F0D20610
       TIX     *-2,4,1                                                  F0D20620
       TRA     INP3A                                                   $F0D20630
       LDQ     BCDBF+2        LOAD CARD WORD 3                          F0D20640
       LGL     6              ASSEMBLE OPCODE (CC 8 - 13)               F0D20650
       ZET     IPTFLG         IS AN UPDATE INPUT TAPE PROVIDED          F0D20660
       LAS     IGNOR          YES, IS CARD IGNORE                       F0D20670
       TRA     *+2            NO                                        F0D20680
       TRA     INP00+1        YES                                       F0D20690
       ERA     DELET          IS CARD DELETE                            F0D20700
       ZET     IPTFLG         AND IS AN UPDATE INPUT TAPE PROVIDED      F0D20710
       TZE     INP00+3        YES                                       F0D20720
       CAL     BCDBF+1        IS CARD                                   F0D20730
       ERA     SKIPC          SKIPTO                                    F0D20740
       ZET     IPTFLG         AND IS UPDATE INPUT TAPE PROVIDED         F0D20750
       TZE     INP00          YES                                       F0D20760
       AXT     -1,4           NO, SET SWITCH FOR EMPTY SOURCE BUFFER    F0D20770
       SXD     SRCSW,4                                                  F0D20780
       NZT     DELFLG         IS ASSEMBLY DELETED                       F0D20790
       ZET     IPTFLG         NO, IS AN UPDATE INPUT TAPE PROVIDED      F0D20800
       TSX     INSUP,4       *YES, LIST INSERTED CARD                   F0D20810
       CAL     SRCID+1        LOAD ID FOR THIS CARD                     F0D20820
       LDQ     SRCID                                                    F0D20830
       REM     PROPER CARD IS IN WORKING BUFFER                         F0D20840
 INP04 SLW     SEQID+1        SAVE ID FOR SEQUENCE CHECKING             F0D20850
       STQ     SEQID                                                    F0D20860
       TXL     INP05,4,-1     IS RESERIALIZATION REQUESTED              F0D20870
       CLA     INP06          YES. BUMP SERIALIZATION               (25)F0D20880
       ADD     INP07                                                (25)F0D20890
       STO     INP06                                                (25)F0D20900
       ANA     NUM03          TRUNCATE TO 19 BITS                   (25)F0D20910
       TSX     BCDCV,4       *CONVERT TO DECIMAL                    (25)F0D20920
       LGR     12             RIGHT ADJUST TO COLUMN 80             (25)F0D20930
       ACL     PROID          APPEND LEADING CHARACTERS             (25)F0D20940
       AXT     0,0            PATCH SPACE                           (25)F0D20950
       SLW     BCDBF+12       INSERT NEW ID                             F0D20960
       STQ     BCDBF+13                                                 F0D20970
 INP05 CAL     BCDBF+13       BLANK CC 81 - 84                          F0D20980
       ANA     P1MSK                                                    F0D20990
       ORA     P2MSK                                                    F0D21000
       SLW     BCDBF+13                                                 F0D21010
 INPTX AXT     **,4           RELOAD CALLING LINKAGE                    F0D21020
       TRA     1,4                                                      F0D21030
 DELET BCI     1,DELETE                                                 F0D21040
 IGNOR BCI     1,IGNORE                                                 F0D21050
 EBTHR BCI     1,E  THR                                                 F0D21060
 ETHRU BCI     1,E THRU                                                 F0D21070
 SKIPC BCI     1, SKIPT       MASK FOR SKIPTO                           F0D21080
 PROID PZE                    LEADING CHARACTERS FOR RESERIALIZATION    F0D21090
       REM                                                              F0D21100
       REM     DELETE CARD FROM UPDATE TAPE                             F0D21110
 DELUP AXT     -1,1           SET SWITCH FOR EMPTY UPDATE BUFFER        F0D21120
       SXD     UPDSW,1                                                  F0D21130
       TXL     DELPX+1,4,**   IS CARD IGNORE OR SKIP                    F0D21140
       SXA     DELPX,4        NO, SAVE CALLING LINKAGE                  F0D21150
       TSX     FPRINT,4      *LIST DELETED CARD                     (24)F0D21160
               DELBF,,17                                            (24)F0D21170
 DELPX AXT     **,4           RELOAD CALLING LINKAGE                (24)F0D21180
       TRA     1,4                                                  (24)F0D21190
       REM                                                          (24)F0D21200
       REM     CHECK OPCODE FOR UPDATE PSEUDOOPERATION              (24)F0D21205
 CKUPD SXA     CKPDX,4        SAVE LINKAGE                          (24)F0D21210
       CAL     OPCOD          OBTAIN OP CODE                        (24)F0D21215
       TSX     SOPTB,4       *DEFINE IT                             (24)F0D21220
       TRA     CKPDX          OPCODE IS UNDEFINED                   (24)F0D21225
       RNT     100000         IS IT A MACHINE OPERATION             (24)F0D21230
       LNT     100000         NO, IS IT A NON-UPDATE OPERATION      (24)F0D21235
       TRA     CKPDX          YES                                   (24)F0D21240
       LXA     CKPDX,4        RETURN FOR OPCODE                     (24)F0D21245
       TRA     2,4            IS AN UPDATE PSEUDOOPERATION          (24)F0D21250
 CKPDX AXT     **,4           RETURN FOR OPCODE                     (24)F0D21255
       TRA     1,4            IS NOT AN UPDATE PSEUDOOPERATION      (24)F0D21260
 NUM02 STO     INP06          RESET SERIALIZATION                   (25)F0D21261
       TSX     SCANP,4       *IS THERE A 2ND SUBFIELD               (25)F0D21262
       CLA     Q10            NO. ADDEND = 10.                      (25)F0D21263
       RFT     3              YES. IS IT ABSOLUTE                   (25)F0D21264
       TRA     FIELD        **NO.                                   (25)F0D21265
       STO     INP07          YES. INP07 = ADDEND                   (25)F0D21266
       XCA                    INP06 = ADDEND * 1ST FIELD            (25)F0D21267
       TRA     NUM04                                                (25)F0D21270
       REM                                                              F0D21280
       REM     LIST CARD INSERTED INTO UPDATE TAPE                      F0D21290
 INSUP SXA     INSPX,4        SAVE CALLING LINKAGE                      F0D21300
       TSX     SETUP,4       *FIND OPCODE                               F0D21310
       TRA     INS01          CARD IS COMMENTS CARD                     F0D21320
       TRA     INS01          OPFIELD IS IN ERROR                       F0D21330
       TSX     CKUPD,4        SHOULD CARD BE LISTED AS INSERTED     (24)F0D21340
       TRA     INS01          YES                                       F0D21380
       CAL     INSBF+2        NO, LOAD SOURCE CARD WORD 2               F0D21390
       ANA     PKMSK          MASK IN CC 8 - 10                         F0D21400
       ERA     ENDMK          IS IT END                                 F0D21410
       TNZ     INSPX          NO, OMIT LISTING UPDATE CARD              F0D21420
 INS01 TSX     FPRINT,4      *LIST INSERTED CARD                    (24)F0D21430
               INSBF,,17                                            (24)F0D21440
       TSX     FPRINT,4      *PRINT BLANK LINE                          F0D21530
       PZE                                                              F0D21540
 INSPX AXT     **,4           RELOAD CALLING LINKAGE                    F0D21550
       TRA     1,4                                                      F0D21560
       REM                                                              F0D21570
       REM     READ NEXT CARD ON UPDATE TAPE                            F0D21580
 UPDIN SXA     UPDNX,4        SAVE CALLING LINKAGE                      F0D21590
       AXT     **,1           LOAD BLOCK WORD COUNT                     F0D21600
       TXH     *+2,1,**       IS BLOCK EXHAUSTED                        F0D21610
       TSX     RDUPD,4       *YES, READ NEXT BLOCK                      F0D21620
       LXA     RDUPD+1,2      LOAD BUFFER INDEX                         F0D21630
       AXT     14,4           LOAD CARD LENGTH                          F0D21640
       LDQ*    BCD24+1,2      MOVE NEXT WORD                            F0D21650
       STQ     DELBF+15,4     INTO UPDATE INPUT BUFFER                  F0D21660
       TXI     *+1,1,-1       BUMP BLOCK COUNT TO NEXT WORD             F0D21670
       TIX     *-3,4,1        IS RECORD COMPLETE                        F0D21680
       TXI     *+1,1,14-UPDRCL YES, BUMP COUNT PAST EXTRANEOUS WORDS    F0D21690
       SXA     UPDIN+1,1      SAVE NEW BLOCK COUNT                      F0D21700
       CAL     DELBF+13       LOAD WORD 13 (CC 73 - 78)                 F0D21710
       SLW     UPDID+1        SAVE LEADING CHARACTERS                   F0D21720
       STZ     ORDRF          RESET SOURCE CARD FLAG                    F0D21730
       TSX     ORDER,4       *ASSEMBLE SERIALIZATION (CC 73 -80)        F0D21740
       SLW     UPDID                                                    F0D21750
       ERA     BLANKS         IS SERIALIZATION BLANK                    F0D21760
       TNZ     UPDNX          NO                                        F0D21770
       STZ     UPDID          YES, SET ID TO ZERO                       F0D21780
       STZ     UPDID+1                                                  F0D21790
 UPDNX AXT     **,4           RELOAD CALLING LINKAGE                    F0D21800
       TRA     1,4                                                      F0D21810
 UPDID SVN     -1,-1,-1       ID (CC 75 - 80) FOR UPDATE CARD           F0D21820
       SVN     -1,-1,-1       ID (CC 73 - 78) FOR UPDATE CARD           F0D21830
       REM                                                              F0D21840
       REM     READ UPDATE INPUT TAPE                                   F0D21850
 RDUPD SXA     RDUPX,4        SAVE CALLING LINKAGE                      F0D21860
       AXC     1,1            LOAD BUFFER INDEX                         F0D21870
       SXA     *-1,1          FLIP BUFFER INDEX                         F0D21880
       TSX    (TAPE),4       *LOAD NEXT BUFFER                          F0D21890
       PZE     BCD24,1,(RDEP)                                           F0D21900
UPDTAP PZE     ,,**                                                     F0D21910
       MZE     UPDRR                                                    F0D21920
       CLA     BCD24+1,1      LOAD BUFFER ORIGIN                        F0D21930
       PAX     ,4                                                       F0D21940
       SXD     *+3,4                                                    F0D21950
 RDUP0 LAC     **,4           LOAD LAST+1 WORD READ                     F0D21960
       TXL     RDUPD+1,4,0    WAS END FILE ON UPDATE INPUT TAPE SENSED  F0D21970
       TXI     *+1,4,**       NO, COMPUTE LENGTH OF RECORD              F0D21980
       SXD     UPDIN+2,4      RESET TEST FOR END OF BUFFER              F0D21990
       CAL     IPRECT         BUMP UPDATE INPUT RECORD COUNT            F0D22000
       ADD     Q1                                                       F0D22010
       STA     IPRECT                                                   F0D22020
       AXT     0,1            RESET BLOCK LENGTH                        F0D22030
       SXA     UPDIN+1,0                                                F0D22040
 RDUPX AXT     **,4           RELOAD CALLING LINKAGE                    F0D22050
       TRA     1,4                                                      F0D22060
       REM                                                              F0D22070
       REM     ERROR ON UPDATE INPUT TAPE                               F0D22080
 UPDRR TSX    (TAPE),4       *SKIP OVER ERROR RECORD                    F0D22090
       PZE     Q1,,(SKDP)                                               F0D22100
       PZE     UPDTAP,,-1                                               F0D22110
       MZE     *+1                                                     $F0D22120
       CAL     IPRECT         BUMP UPDATE INPUT TAPE RECORD COUNT      $F0D22130
       ADD     Q1                                                      $F0D22140
       STA     IPRECT                                                  $F0D22150
       TRA     *+2                                                     $F0D22160
       PZE     UPDTAP,,-1                                               F0D22170
       TSX     FPRINT,4      *PRINT ERROR MESSAGE                       F0D22180
       MZE     UPDRM,,8                                                 F0D22190
       TSX     FPRINT,4      *PRINT CARD PRECEDING CARD DELETED         F0D22200
       MZE     DELBF,,17                                                F0D22210
       TSX     FPRINT,4      *PRINT BLANK LINE                          F0D22220
       PZE                                                              F0D22230
 UPDR1 AXT     5,4            LOAD ERROR COUNT                          F0D22240
       TIX     UPDR2,4,1      IS COUNT EXCESSIVE                        F0D22250
       TSX    (PRNT),4       *YES, TELL OPERATOR                        F0D22260
       PZE     XREDN,,11                                                F0D22270
       TSX     SPACP,2       *LET OPERATOR CHECK                        F0D22280
       AXT     5,4            RESET ERROR COUNT                         F0D22290
 UPDR2 SXA     UPDR1,4        SAVE ERROR COUNT                          F0D22300
       STZ*    UPD00          FORCE FILL OF UPDATE INPUT BUFFERS        F0D22310
       TRA     RDUPD+1                                                  F0D22320
       REM                                                              F0D22330
 UPDCL SXA     UPDCX,4        SAVE CALLING LINKAGE                      F0D22340
       AXT     UPDC1,4        RESET ERROR RETURN                        F0D22350
       SXA     UPDRR,4        TO AVOID HANGING ERROR MESSAGE            F0D22360
       TSX    (TAPE),4       *BACKSPACE OVER FIRST LOOKAHEAD RECORD     F0D22370
       PZE     BSREC,,(SKDP)                                            F0D22380
       PZE     UPDTAP,,-1                                               F0D22390
       CAL     IPRECT         UNBUMP UPDATE INPUT RECORD COUNT          F0D22400
       SUB     Q1                                                       F0D22410
       STA     IPRECT                                                   F0D22420
 UPDC1 AXT    (TAPE),4        RESET ERROR RETURN                        F0D22430
       SXA     UPDRR,4        TO CATCH FUTURE ERRORS                    F0D22440
       LXD     UPDSW,4        LOAD UPDATE INPUT TAPE SWITCH             F0D22450
       SXD     UPDSW,0        RESET UPDATE INPUT TAPE SWITCH            F0D22460
       TXH     UPDCX,4,0      WAS SECOND RECORD LOOKED AHEAD            F0D22470
       TSX    (TAPE),4       *YES, BACKSPACE OVER SECOND LOOKAHEAD      F0D22480
       PZE     BSREC,,(SKDP)                                            F0D22490
       PZE     UPDTAP,,-1                                               F0D22500
       CAL     IPRECT         UNBUMP UPDATE INPUT RECORD COUNT          F0D22510
       SUB     Q1                                                       F0D22520
       STA     IPRECT                                                   F0D22530
 UPDCX AXT     **,4           RELOAD CALLING LINKAGE                    F0D22540
       TRA     1,4                                                      F0D22550
       REM                                                              F0D22560
       REM     READ NEXT CARD ON SOURCE TAPE                            F0D22570
 SRCIN SXA     SRCNX,4        SAVE CALLING LINKAGE                      F0D22580
       AXT     **,1           LOAD BLOCK WORD COUNT                     F0D22590
       TXH     *+2,1,**       IS BLOCK EXHAUSTED                        F0D22600
       TSX     RDSRC,4       *YES, READ NEXT BLOCK                      F0D22610
       LXA     RDSRC+1,2      LOAD BUFFER INDEX                         F0D22620
       AXT     14,4           LOAD CARD LENGTH                          F0D22630
       LDQ*    BCD34+1,2      MOVE NEXT WORD                            F0D22640
       STQ     INSBF+15,4     INTO SOURCE INPUT BUFFER                  F0D22650
       TXI     *+1,1,-1       BUMP BLOCK COUNT TO NEXT WORD             F0D22660
       TIX     *-3,4,1        IS RECORD COMPLETE                        F0D22670
       TXI     *+1,1,14-UPDRCL YES, BUMP COUNT PAST EXTRANEOUS WORDS    F0D22680
       SXA     SRCIN+1,1      SAVE NEW BLOCK COUNT                      F0D22690
       CAL     INSBF+13       LOAD WORD 13 (CC 73 - 78)                 F0D22700
       SLW     SRCID+1        SAVE LEADING CHARACTERS                   F0D22710
       STL     ORDRF          SET SOURCE CARD FLAG                      F0D22720
       TSX     ORDER,4       *ASSEMBLE SERIALIZATION (CC 73 -80)        F0D22730
       SLW     SRCID                                                    F0D22740
       ERA     BLANKS         IS SERIALIZATION BLANK                    F0D22750
       TNZ     SRCNX          NO                                        F0D22760
       STZ     SRCID          YES, SET ID TO ZERO                       F0D22770
       STZ     SRCID+1                                                  F0D22780
 SRCNX AXT     **,4           RELOAD CALLING LINKAGE                    F0D22790
       TRA     1,4                                                      F0D22800
 SRCID PZE                    ID (CC 75 - 80) FOR SOURCE CARD           F0D22810
       PZE                    ID (CC 73 - 78) FOR SOURCE CARD           F0D22820
       REM                                                              F0D22830
       REM     READ SOURCE INPUT TAPE                                   F0D22840
 RDSRC SXA     RDSRX,4        SAVE CALLING LINKAGE                      F0D22850
       AXC     1,1            LOAD BUFFER INDEX                         F0D22860
       SXA     *-1,1          FLIP BUFFER INDEX                         F0D22870
       TSX    (TAPE),4       *LOAD NEXT BUFFER                          F0D22880
       PZE     BCD34,1,(RDEP)                                           F0D22890
       PZE     ,,MINTAP                                                 F0D22900
       MZE     SRCRR         IS IT REDUNDANCY OR BINARY MODE           $F0D22910
       CLA     BCD34+1,1      LOAD BUFFER ORIGIN                        F0D22920
       PAX     ,4                                                       F0D22930
       SXD     *+3,4                                                    F0D22940
       LAC    (SCHU)+MINTAP,4 LOAD LAST+1 WORD READ                     F0D22950
       TXL     EOFIN,4,0      ENDFIL DETECTED                       (26)F0D22960
       TXI     *+1,4,**       NO, COMPUTE LENGTH OF RECORD              F0D22970
       SXD     SRCIN+2,4      RESET TEST FOR END OF BUFFER              F0D22980
       CAL     INRECT         BUMP SOURCE INPUT RECORD COUNT            F0D22990
       ADD     Q1                                                       F0D23000
       STA     INRECT                                                   F0D23010
       AXT     0,1            RESET BLOCK LENGTH                        F0D23020
       SXA     SRCIN+1,0                                                F0D23030
 RDSRX AXT     **,4           RELOAD CALLING LINKAGE                    F0D23040
       TRA     1,4                                                      F0D23050
       REM                                                              F0D23060
       REM     ERROR ON SOURCE INPUT TAPE                               F0D23070
 SRCRR STZ     TTLFG         KILL SUBTITLE                          (26)F0D23080
       TRA     ETEST                                                   $F0D23090
       TSX     (TAPE),4      PRINT ERROR MESSAGE                       $F0D23100
       PZE     *+4,,(TPER)   FOR REDUNDANCY                            $F0D23110
       MZE     *+2,,MINTAP                                             $F0D23120
       TRA     TAPERR                                                  $F0D23130
       BCI     2,SOURCEREDUN                                           $F0D23140
SRCRM  BCI     4, INCOMPLETE MACRO DEF.,                            (26)F0D23150
       BCI     6,UNMATCHED RMT, OR MISSING END CARD                 (26)F0D23160
ECARD  BCI     2,BINARY EOF                                         (26)F0D23170
       PZE                    (NOT USED)                            (26)F0D23180
       REM                                                              F0D23190
       REM     LIST ORDER ERROR                                         F0D23200
 ORDER SXA     ORDRX,4        SAVE CALLING LINKAGE                      F0D23210
       SLW     XERAS          SAVE LEADING CHARACTERS (CC 73 - 78)      F0D23220
       LGL     12             ASSEMBLE ID                               F0D23230
       SLW     BERAS          SAVE FOLLOWING CHARACTERS (CC 75 - 80)    F0D23240
       ERA     BLANKS         IS NEW ID BLANK                           F0D23250
       TZE     ORDR3+1        YES, OMIT ORDER CHECK                     F0D23260
       CAL     XERAS          NO, LOAD NEW LEADING CHARACTERS           F0D23270
       LAS     SEQID+1        IS CARD OUT OF ORDER                      F0D23280
       TRA     ORDR3+1        NO                                        F0D23290
       TRA     *+2            MAYBE                                     F0D23300
       TRA     ORDR1          YES                                       F0D23310
       CAL     BERAS          LOAD NEW FOLLOWING CHARACTERS             F0D23320
       LAS     SEQID          IS CARD OUT OF ORDER                      F0D23330
       TRA     ORDR3+1        NO                                        F0D23340
       TRA     ORDR3+1        NO                                        F0D23350
       REM     CARD IS OUT OF ORDER                                     F0D23360
 ORDR1 CAL     INSBF+2        LOAD SOURCE WORD 2                        F0D23370
       ANA     PKMSK          MASK IN CC 8 - 10                         F0D23380
       ERA     ENDMK          IS IT END                                 F0D23390
       NZT     ORDRF          YES, IS ORDER ERROR ON UPDATE INPUT TAPE  F0D23400
       TZE     ORDR3+1        YES, AVOID ORDER ERROR MESSAGE            F0D23410
       AXT     14,4           NO, PREPARE TO MOVE CARD OUT OF ORDER     F0D23420
       CAL     INSBF+15,4     FROM SOURCE INPUT BUFFER                  F0D23430
       NZT     ORDRF          IS SOURCE CARD IN ERROR                   F0D23440
       CAL     DELBF+15,4     NO, FROM UPDATE INPUT BUFFER              F0D23450
       SLW     ORDBF+15,4     TO ORDER BUFFER                           F0D23460
       TIX     *-4,4,1                                                  F0D23470
       CAL     SRCWD          LOAD SOURCE LABEL                         F0D23480
       NZT     ORDRF          IS SOURCE CARD IN ERROR                   F0D23490
       CAL     UPDWD          NO, LOAD UPDATE LABEL                     F0D23500
       SLW     ORDBF+15       INSERT IN MESSAGE                         F0D23510
       TSX     FPRINT,4      *LIST CARD OUT OF ORDER                    F0D23520
 ORDRS MZE     ORDBF,,18                                                F0D23530
       TSX     FPRINT,4      *PRINT BLANK LINE                          F0D23540
       PZE                                                              F0D23550
 ORDR2 AXT     40,4           LOAD ORDER ERROR COUNT                    F0D23560
       TIX     ORDR3,4,1      IS COUNT EXCESSIVE                        F0D23570
       TSX    (PRNT),4       *YES, TELL OPERATOR                        F0D23580
       PZE     XORDR,,11                                                F0D23590
       TSX     SPACP,2       *LET OPERATOR CHECK                        F0D23600
       AXT     40,4           RESET ORDER ERROR COUNT                   F0D23610
 ORDR3 SXA     ORDR2,4        SAVE ORDER ERROR COUNT                    F0D23620
       REM     REENTRY FOR CARD NOT OUT OF ORDER                        F0D23630
       CAL     BERAS          RELOAD FOLLOWING CHARACTERS               F0D23640
 ORDRX AXT     **,4           RELOAD CALLING LINKAGE                    F0D23650
       TRA     1,4                                                      F0D23660
 SRCWD BCI     1,SOURCE                                                 F0D23670
 UPDWD BCI     1,UPDATE                                                 F0D23680
 ENDMK BCI     1,0END 0       MASK FOR END PSEUDOOPERATION              F0D23690
 SEQID PZE                    ID (CC 75 - 80) FOR LAST CARD USED        F0D23700
       PZE                    ID (CC 79 - 80) FOR LAST CARD USED        F0D23710
       REM                                                              F0D23720
       REM     PACK INTERMEDIATE, UPDATE BUFFERS                        F0D23730
 OTPUT SXA     OTPTX,4        SAVE CALLING LINKAGE                      F0D23740
       AXT     **,1           LOAD UPDATE OUTPUT TAPE BLOCK COUNT       F0D23750
       NZT     OPTFLG         IS UPDATE OUTPUT TAPE REQUESTED           F0D23760
       TRA     OTPT1          NO                                        F0D23770
 MCREF TXH     *+2,4,**       YES, IS THIS MACRO EXPANSION              F0D23780
       REM                    (DECREMENT IS -1 FOR MACRO GENERATED CARD)F0D23790
       TXL     OTPT1,4,-1     YES, IS MACRO EXPANSION TO BE OUTPUT      F0D23800
 MCRDF TXH     *+2,4,**       NO, IS THIS MACRO DEFINITION OR CALL      F0D23810
       REM                    (DECREMENT IS -1 FOR MACRO CALL OR DEF)   F0D23820
       TXL     OTPT1,4,**     YES, IS MACRO CALL OR DEF TO BE OUTPUT    F0D23830
       REM                    (UMC FLIPS DECREMENTS MCREF+1, MCRDF+1)   F0D23840
       TXL     *+4,1,0        YES, HAS THIS BLOCK BEEN STARTED          F0D23850
       NZT     PAKFLG         YES, IS UNBLOCKED OUTPUT TAPE REQUESTED   F0D23860
 UPBLK TXH     *+2,1,-UPDBKL+UPDRCL-1  NO. IS BLOCK FULL            (25)F0D23870
       TSX     WROPT,4       *YES, WRITE LAST BLOCK                     F0D23880
       LAC     WROP0,2        LOAD BUFFER INDEX                         F0D23890
       AXT     UPDRCL,4       LOAD RECORD LENGTH                        F0D23900
       CAL     BCDBF+UPDRCL,4 MOVE NEXT WORD                            F0D23910
       SLW*    BCD44+1,2      INTO UPDATE OUTPUT BUFFER                 F0D23920
       TXI     *+1,1,-1       BUMP BLOCK COUNT TO NEXT WORD             F0D23930
       TIX     *-3,4,1        IS CARD COMPLETE                          F0D23940
       SXA     OTPUT+1,1      YES, SAVE NEW BLOCK COUNT                 F0D23950
       ZET     PAKFLG         IS UNBLOCKED OUTPUT TAPE REQUESTED        F0D23960
       TSX     WROPT,4       *YES, WRITE THIS BLOCK                     F0D23970
       SXD     PAKFLG,0       RESET FLAG                                F0D23980
       TRA     OTPT1                                                    F0D23990
       REM     ENTRY TO WRITE INTERMEDIATE TAPE ONLY                    F0D24000
 OTPT0 SXA     OTPTX,4        SAVE CALLING LINKAGE                      F0D24010
 OTPT1 AXT     **,1           LOAD INTERMEDIATE TAPE BLOCK WORD COUNT   F0D24020
       ZET     DELFLG         HAS ASSEMBLY BEEN DELETED                 F0D24030
       TRA     OTPTX          YES                                       F0D24040
       CAL     P1FLG          NO, INSERT PASS 1 FLAGS                   F0D24050
 OTPT2 TRA     OTPT3          AS RIGHT HALF OF WORD 14                 $F0D24060
       TXL     *+4,1,0        HAS THIS BLOCK BEEN STARTED               F0D24070
       NZT     DUPFG          YES, IS UNBLOCKED INTERMED TAPE REQUESTED F0D24080
       TXH     *+2,1,-INPBKL+INPRCL+INPREM-1  NO, IS BLOCK FULL         F0D24090
       TSX     WRINT,4       *YES, WRITE LAST BLOCK                     F0D24100
       LAC     WRIN0,2        LOAD BUFFER LENGTH                        F0D24110
       AXT     INPRCL,4       LOAD RECORD LENGTH                        F0D24120
       CAL     BCDBF+INPRCL,4 MOVE NEXT WORD                            F0D24130
       SLW*    BCD54+1,2      INTO INTERMEDIATE OUTPUT BUFFER           F0D24140
       TXI     *+1,1,-1       BUMP BLOCK COUNT TO NEXT WORD             F0D24150
       TIX     *-3,4,1        IS RECORD COMPLETE                        F0D24160
       SXA     OTPT1,1        YES, SAVE NEW BLOCK COUNT                 F0D24170
       ZET     DUPFG          IS UNBLOCKED INTERMEDIATE TAPE REQUIRED   F0D24180
       TSX     WRINT,4       *YES, WRITE THIS BLOCK                     F0D24190
       STZ     DUPFG          RESET FLAG                                F0D24200
 OTPTX AXT     **,4           RELOAD CALLING LINKAGE                    F0D24210
       ZSD     MCREF          RESET MACRO GENERATED CARD SWITCH         F0D24220
       TRA     1,4                                                      F0D24230
       REM                                                              F0D24240
       REM     WRITE UPDATE OUTPUT TAPE                                 F0D24250
 WROPT SXA     WROPX,4        SAVE CALLING LINKAGE                      F0D24260
       LAC     OTPUT+1,1      LOAD UPDATE OUTPUT TAPE BLOCK WORD COUNT  F0D24270
       TXL     WROPX,1,0      IS BLOCK EMPTY                            F0D24280
       PXD     ,1             NO, SET BLOCK LENGTH                      F0D24290
 WROP0 AXC     1,1            LOAD BUFFER INDEX                         F0D24300
       SXA     *-1,1          FLIP BUFFER INDEX                         F0D24310
       STD     BCD44,1        INITIALIZE I/O COMMAND WORD COUNT         F0D24320
       TSX    (TAPE),4       *WRITE UPDATE OUTPUT TAPE                  F0D24330
       PZE     BCD44,1,(WDNP)                                           F0D24340
OPDTAP PZE     ,,**                                                     F0D24350
       PZE     TAPERR                                                   F0D24360
       CAL     OPRECT         BUMP UPDATE OUTPUT TAPE RECORD COUNT      F0D24370
       ADD     Q1                                                       F0D24380
       STA     OPRECT                                                   F0D24390
       AXT     0,1            RESET BLOCK LENGTH                        F0D24400
       SXA     OTPUT+1,0                                                F0D24410
 WROPX AXT     **,4           RELOAD CALLING LINKAGE                    F0D24420
       TRA     1,4                                                      F0D24430
       REM                                                              F0D24440
       REM     WRITE INTERMEDIATE TAPES                                 F0D24450
 WRINT SXA     WRINX,4        SAVE CALLING LINKAGE                      F0D24460
       LXA     READ1,2        LOAD INTERMEDIATE TAPE INDEX              F0D24470
       LAC     OTPT1,1        LOAD INTERMEDIATE TAPE BLOCK WORD COUNT   F0D24480
       TXL     WRINX,1,0      IS BLOCK EMPTY                            F0D24490
       PXD     ,1             NO, SET BLOCK LENGTH                      F0D24500
 WRIN0 AXC     1,1            LOAD BUFFER INDEX                         F0D24510
       SXA     *-1,1          FLIP BUFFER INDEX                         F0D24520
       STD     BCD54,1        INITIALIZE I/O COMMAND WORD COUNT         F0D24530
       TSX    (TAPE),4       *WRITE INTERMEDIATE RECORD                 F0D24540
       PZE     BCD54,1,(WBNP)                                           F0D24550
       PZE     INTAP,2,-1                                               F0D24560
       PZE     TAPERR                                                   F0D24570
       AXT     0,1            RESET BLOCK LENGTH                        F0D24580
       SXA     OTPT1,0                                                  F0D24590
 WRINX AXT     **,4           RELOAD CALLING LINKAGE                    F0D24600
       TRA     1,4                                                      F0D24610
       TTL     PASS ONE CONTROL                                         F0D24620
 START AXT     1,1            SET FLAG FOR ENTRY INTO                  $F0D24660
       SXA    (MSLN),1        ERROR RECORDS                             F0D24670
       TSX    (TAPE),4       *REWIND FIRST INTERMEDIATE TAPE            F0D24680
       PZE     REWND,,(SKBP)                                            F0D24690
       PZE     ,,FINTAP                                                 F0D24700
       DCT                    TURN OFF TRIGGER                          F0D24710
       NOP                                                              F0D24720
       CAL    (DATE)          LOAD JOB DATE                             F0D24730
       TZE     NDATE          IS THERE A PRESUMPTIVE DATE               F0D24740
       ANA     BLANKS         YES, MASK IN ZONE BITS                    F0D24750
       TNZ     NDATE          IS DATE VALID                             F0D24760
       LDQ    (DATE)          YES, RELOAD APPARENTLY VALID DATE         F0D24770
       LGL     6                                                        F0D24780
       TNZ     *+2            IS IT A TWO-DIGIT MONTH                   F0D24790
       CAL     BLANK          NO, BLANK OUT FIRST DIGIT                 F0D24800
       LGL     6              LEFT ADJUST SECOND DIGIT IN MONTH         F0D24810
       ALS     6                                                        F0D24820
       ORA     SLASH          APPEND SLASH                              F0D24830
       LGL     12             LEFT ADJUST TWO DIGIT DAY                 F0D24840
       ALS     6                                                        F0D24850
       ORA     SLASH          APPEND SLASH                              F0D24860
       SLW     PGHDNG+14      INSERT IN WORD IS OF PAGE HEADING         F0D24870
       LGL     12             LEFT ADJUST TWO DIGIT YEAR                F0D24880
       LDQ     BLANKS         FOLLOWED BY BLANKS                        F0D24890
       LGL     24                                                       F0D24900
       SLW     PGHDNG+15      INSERT IN WORD 16 OF PAGE HEADING         F0D24910
 NDATE LXD     SYMSIZ,4       LOAD LENGTH OF SYSTEM SYMBOL TABLE        F0D24920
       SXD     *+2,4          INITIALIZE COMPUTATION TO SAVE SST        F0D24930
       AXT     TOPTAB-BOTTAB,4 PREPARE TO CLEAR MEMORY                  F0D24940
       TXI     *+1,4,**       SAVE SYSTEM SYMBOL TABLE                  F0D24950
       STZ     TOPTAB+1,4     CLEAR REST OF MEMORY                      F0D24960
       TIX     *-1,4,1                                                  F0D24970
       LXD     OPTSIZ,4       INITIALIZE TEST                           F0D24980
       TXI     *+1,4,-1                                                 F0D24990
       SXD     SOPT1,4        FOR END OF OPTABLE SEARCH                 F0D25000
       LXD     MOPTR,2        LOAD INITIAL BOTTOM OF MACRO TABLE        F0D25010
       SXD     MAC07,2        SET MACRO EXPANSION TABLE OVERFLOW TEST   F0D25020
       SXD     ESYMZ,2        AND SYMBOL TABLE OVERLAP TEST            $F0D25030
       AXT     ,0                                                      $F0D25040
       TSX    (TAPE),4       *REWIND SECOND INTERMEDIATE TAPE           F0D25050
       PZE     REWND,,(SKDP)                                            F0D25060
       PZE     ,,SINTAP                                                 F0D25070
       LDI    (ENDS)          LOAD END CARD SETTINGS                    F0D25080
       RNT     040000         IS END CARD SETTING 1 SPECIFIED           F0D25090
       STL     CRDFLG         NO, SET ONLINE CARDS FLAG                 F0D25100
       RFT     010000         IS END CARD SETTING 3 SPECIFIED           F0D25110
       SXD     WRIT1,0        YES, SET ONLINE PRINT SWITCH              F0D25120
       RFT     004000         IS END CARD SETTING 4 SPECIFIED           F0D25130
       STL     ONLCFG         YES, SET ONLINE COLUMN BINARY FLAG        F0D25140
       RFT     000400         IS END CARD SETTING 7 SPECIFIED           F0D25150
       STL     LBLFLG         YES, SET CARD LABEL FLAG                  F0D25160
       RNT     000100         IS END CARD SETTING 9 SPECIFIED           F0D25170
       STL     OFLCFG         NO, SET OFFLINE COLUMN BINARY FLAG        F0D25180
 ENDC  TRA     FRPA1         YES, CHECK PACK/UNPACK OPTIONS            $F0D25190
       PZE                                                             $F0D25200
       CAL     BLANKS         SET ID BLANK EX NEW C/T SIMULATOR         F0D25210
       SLW     BBUF31+12                                                F0D25220
       SLW     BBUF31+13                                                F0D25230
       SLW     BBUF32+12                                                F0D25240
       SLW     BBUF32+13                                                F0D25250
       STL    (SCHU)+MINTAP   RESET HANGING END OF FILE                 F0D25260
       REM                    LEFT BY NONSTANDARD MONITOR               F0D25270
       REM                    VIOLATING RULES OF IOP                    F0D25280
       REM                    TSK, TSK, TSK                             F0D25290
       TSX     RDSRC,4       *START LOOKAHEAD BUFFERING                 F0D25300
       TRA     SOURC                                                    F0D25310
       REM                                                              F0D25320
       REM     CONTROL ROUTINE FOR DELETED ASSEMBLIES                   F0D25330
 DPAS1 TSX     SETUP,4       *FIND OPCODE                               F0D25340
       TRA     COMCD          MAY BE * CONTROL CARD                     F0D25350
       TRA     READ3+1        IMPROPER OPCODE                       (24)F0D25360
       ZSD     READ2          GUARD AGAINST ACCIDENTAL REWIND       (24)F0D25370
       ZSA     COMCD          SET FLAG TO BLOCK COMMENTS CARD       (24)F0D25380
       TSX     CKUPD,4       *IS OPCODE AN UPDATE PSEUDOOPERATION   (24)F0D25390
       TRA     READ3+1        NO                                    (24)F0D25400
       TRA     PSOPT          YES, PROCESS IT                       (24)F0D25410
       PZE                    (NOT USED)                            (24)F0D25420
       PZE                    (NOT USED)                            (24)F0D25430
       REM                                                              F0D25440
       REM     CARD IS COMMENTS CARD                                    F0D25450
 COMCD AXT     -1,2           SET FLAG TO UNBLOCK UPDATE OUTPUT TAPE    F0D25460
       SXD     PAKFLG,2                                                 F0D25470
       TXH     READ1,4,-1     IS THIS FIRST COMMENTS CARD               F0D25480
       TRA     STP0A         YES, WHAT KIND                            $F0D25490
       ZET     FCFLG          IS THIS FIRST CARD GROUP                  F0D25500
       TRA     READ1          NO                                        F0D25510
       CAL     BLANK          YES, DELETE ASTERISK                      F0D25520
       LGR     6                                                        F0D25530
       AXT     12,4                                                     F0D25540
       STQ     PGHDNG+13,4    INSERT CC 2 - 72                          F0D25550
       LDQ     BCDBF+13,4     INTO WORDS 2 - 13 OF PAGE HEADING         F0D25560
       TIX     *-2,4,1                                                  F0D25570
       NZT     OPTFLG         IS UPDATE OUTPUT TAPE REQUIRED            F0D25580
       TRA     SOURC          NO                                        F0D25590
       REM                                                              F0D25600
       REM                                                              F0D25610
       REM     REENTRY TO WRITE CARD                                    F0D25620
 READ1 AXT     0,2            LOAD INTERMEDIATE TAPE INDEX              F0D25630
       AXT     1000,4         LOAD FIRST INTERMEDIATE TAPE RECORD LIMIT F0D25640
       NZT     DUPMD          IS THIS RECORD IN RANGE OF A DUP CARD     F0D25650
       TRA     READ2          NO                                        F0D25660
       REM                                                              F0D25670
       REM     CARD IS WITHIN RANGE OF DUP                              F0D25680
       STL     DUPFG          SET FLAG TO UNBLOCK INTERMEDIATE TAPE     F0D25690
 DUPCD AXT     **,4           LOAD COUNT OF CARDS REMAINING IN DUP      F0D25700
       TXL     DUPC1,4,0      IS DUP EXHAUSTED                          F0D25710
       TXI     *+1,4,-1       NO, BUMP COUNT DOWN                       F0D25720
       SXA     DUPCD,4        RESET DUP CARD COUNT                      F0D25730
       LXA     READ1+1,4      RELOAD COUNT FOR FIRST INTERMEDIATE TAPE  F0D25740
       TIX     READ3,4,1      IS FIRST INTERMEDIATE TAPE FULL           F0D25750
       TRA     READ3+1        YES, BUT DO NOT SWITCH TAPES              F0D25760
       REM     RANGE OF DUP IS EXHAUSTED                                F0D25770
 DUPC1 CAL     LOCTR          COMPUTE NET LENGTH OF DUP                 F0D25780
       SUB     DUPCT+1                                                  F0D25790
       XCA                                                              F0D25800
       VLM     DUPCT,,18      COMPUTE GROSS LENGTH OF DUP               F0D25810
       STO     BERAS          SAVE LENGTH OF BUMP                       F0D25820
       ADD     DUPCT+1                                                  F0D25830
       STA     LOCTR          RESET PROGRAM COUNTER                     F0D25840
       CLA     BERAS          RECALL LENGTH OF BUMP                     F0D25850
       ADD     DUPCT+2        RESET CARD STORAGE COUNTER                F0D25860
       STA     CDCTR                                                    F0D25870
       STZ     DUPMD          RESET FLAG                                F0D25880
       TRA     READ3+1                                                  F0D25890
       REM     CARD IS NOT WITHIN RANGE OF DUP                          F0D25900
 READ2 TIX     READ3,4,1      IS FIRST INTERMEDIATE TAPE FULL           F0D25910
       TSX    (TAPE),4       *YES, WRITE END FILE                       F0D25920
       PZE     ,,(WEFP)                                                 F0D25930
       PZE     INTAP,,-1                                                F0D25940
       PZE     TAPERR                                                   F0D25950
       TSX    (TAPE),4       *REWIND FIRST INTERMEDIATE TAPE            F0D25960
       PZE     REWND,,(SKBP)                                            F0D25970
       PZE     INTAP,,-1                                                F0D25980
       AXT     -1,2           SWITCH TO SECOND INTERMEDIATE TAPE       $F0D25990
       AXT     -1,4                                                    $F0D25995
       SXA     READ1,2        RESET INTERMEDIATE TAPE INDEX             F0D26000
       SXD     READ2,0        DELETE INTERMEDIATE TAPE FULL TEST        F0D26010
       REM     REENTRY FOR UNSWITCHED TAPES, CARD WITHIN RANGE OF DUP   F0D26020
 READ3 SXA     READ1+1,4      SAVE INTERMEDIATE TAPE COUNT              F0D26030
       TSX     OTPUT,4       *WRITE INTERMEDIATE/UPDATE RECORD          F0D26040
       REM     REENTRY FOR CARDS NOT WRITTEN ON INTERMEDIATE TAPES      F0D26050
       REM     INCLUDING PAGE HEADING, UPDATE PSEUDOOPERATIONS,         F0D26060
       REM     OR AFTER CARDS OUTPUT INDEPENDENTLY BY MACRO PROCESSOR   F0D26070
 SOURC TXI     *+1,,**        IS NEXT CARD TO BE MACRO GENERATED        F0D26080
       REM                    (POINTER TO NEXT HIGHER LEVEL SWITCH)     F0D26090
       TSX     INPUT,4       *NO, GET NEXT SOURCE/UPDATE CARD           F0D26100
       REM                                                              F0D26110
       REM     PROCESS CARD SUCCESSFULLY READ                           F0D26120
       ZET     DELFLG         IS ASSEMBLY DELETED                       F0D26130
       TRA     DPAS1          YES                                       F0D26140
       STZ     P1FLG          NO, CLEAR PASS 1 FLAGS                    F0D26150
       REM     REENTRY FOR MACRO GENERATED CARDS                        F0D26160
 CNTRL SLF                    TURN OFF FLAGS                            F0D26170
       STZ     SYMBL          CLEAR SYMBOL                              F0D26180
       STZ     LITRL          CLEAR VALUE OF LITERAL OR PSEUDOOPERATION F0D26190
       STZ     OPBIN          CLEAR INSTRUCTION, PSEUDOOP TRANSFER      F0D26200
       CLA     LOCTR          UPDATE PROGRAM COUNTER                    F0D26210
       STO     ADDRS                                                    F0D26220
       TSX     SETUP,4       *SET UP VARIABLE FIELD                     F0D26230
       TRA     COMCD          CARD IS COMMENTS CARD                     F0D26240
       SLN     EXPRR          OP FIELD IS IN ERROR                      F0D26250
       SXA     COMCD,0        RESET FLAG TO BLOCK COMMENTS CARDS        F0D26260
 ROUTE TXI     *+1,,**        IS THIS CARD MACRO DEFINING               F0D26270
       REM                    (POINTER TO NEXT HIGHER LEVEL SWITCH)     F0D26280
       SLT     EXPRR          NO, IS OP FIELD IN ERROR                  F0D26290
       TRA     *+2            NO                                        F0D26300
       TRA     INSTR          YES                                       F0D26310
       ZET     ETCMD          DOES THIS CARD FOLLOW CALL OR VFD         F0D26320
       TRA     ETCOP          YES                                       F0D26330
       CAL     OPCOD          NO, RELOAD OPERATION CODE                 F0D26340
       TSX     SOPTB,4       *FIND OPERATION IN COMBINED OPERATION TABLEF0D26350
       TRA     INSTR          NOT FOUND                                 F0D26360
       STI     OPBIN          SAVE FOR PASS TWO                         F0D26370
       RNT     100000         IS THIS A PSEUDOOPERATION                 F0D26380
       TRA     PSOPT          YES                                       F0D26390
       REM     OPCODE IS MACHINE OPERATION                              F0D26400
       REM     REENTRY FOR IMPROPER USE OF PSEUDOOP, IMPROPER OP FIELD  F0D26410
 INSTR NZT     CNTFG          HAS CARD COUNT BEEN GIVEN                 F0D26420
       TRA     *+4            YES                                       F0D26430
 CNTFG TSX     WRITT,4       *NO, WRITE NO COUNT MESSAGE                F0D26440
       IOCD    NOCNT,,5                                                 F0D26450
       STZ     CNTFG          RESET SWITCH                              F0D26460
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D26470
       CLA     Q1                                                       F0D26480
       TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D26490
       CAL     CHRCTR         LOAD FIRST CHARACTER IN VARIABLE FIELD    F0D26500
       SUB     EQUAL          IS CHARACTER =                            F0D26510
       TZE     LITOP          YES                                       F0D26520
       SUB     MINUS          IS CHARACTER $                            F0D26530
       NZT     ABSFLG         MAYBE, BUT IGNORE IT IN ABS ASSEMBLY      F0D26540
       TZE     DOLOP          YES                                       F0D26550
       TRA     READ1                                                    F0D26560
       REM                                                              F0D26570
       REM                                                              F0D26580
       REM     END OF INPUT TAPE                                        F0D26590
 ENDFA AXT     ENDF1,4        RESET ERROR RETURN FOR BINARY INPUT       F0D26600
       SXA     SRCRR+1,4      FOLLOWING END CARD                        F0D26610
       TSX    (TAPE),4       *BACKSPACE OVER END FILE OR LOOKAHEAD CARD F0D26620
       PZE     BSREC,,(SKDP)                                            F0D26630
       PZE     ,,MINTAP                                                 F0D26640
       CAL     INRECT         UNBUMP SOURCE INPUT RECORD COUNT          F0D26650
       SUB     Q1                                                       F0D26660
       STA     INRECT                                                   F0D26670
 ENDF1 ZET     IPTFLG         IS UPDATE INPUT TAPE PROVIDED             F0D26680
       TSX     UPDCL,4       *YES, BACKSPACE OVER LOOKAHEAD CARDS       F0D26690
       NZT     OPTFLG         IS AN UPDATE OUTPUT TAPE REQUESTED        F0D26700
       TRA     *+4            NO                                        F0D26710
       TSX    (TAPE),4       *YES, CLOSE OUT UPDATE OUTPUT TAPE         F0D26720
       PZE     Q0,,(SKDP)                                               F0D26730
       PZE     OPDTAP,,-1                                               F0D26740
       NZT     DELFLG         IS ASSEMBLY DELETED                       F0D26750
       TRA     ENDFC          NO                                        F0D26760
       TSX     WRFBK,4        YES, WRITE LAST PARTIAL LISTING BUFFER    F0D26770
       AXT     ENDFB,4        RESET ERROR RETURN                        F0D26780
       SXA     TAPERR+1,4                                               F0D26790
       AXT     6,1                                                     $F0D26800
       TSX    (TAPE),4       *CLOSE OUT ALL TAPES                       F0D26810
       PZE     8,1,(CHKU)     CLOSE OUT TAPES 2 THRU 7                 $F0D26820
 ENDFB TIX     *-2,1,1                                                  F0D26830
       TSX    (TAPE),4       *SPACE OVER PASS 2                         F0D26840
       PZE     Q1,,(SKBP)                                               F0D26850
       PZE     ,,SYSTAP                                                 F0D26860
       TRA     LOADER                                                   F0D26870
 ENDFC LXD     RMTEN+1,1      LOAD POINTER TO REMOTE SEQUENCES          F0D26880
       TXL     ENDFD,1,0      ARE THERE ANY REMOTE SEQUENCES            F0D26890
       AXT     6,4            YES, MOVE COMMENT INTO CARD IMAGE         F0D26900
       CAL     RMTCD+6,4                                                F0D26910
       SLW     BCDBF+6,4                                                F0D26920
       TIX     *-2,4,1                                                  F0D26930
       AXT     8,4            FILL CARD IMAGE WITH BLANKS               F0D26940
       CAL     BLANKS                                                   F0D26950
       SLW     BCDBF+14,4                                               F0D26960
       TIX     *-1,4,1                                                  F0D26970
       SXA     BCDBF+13,0     DELETE PASS 1 FLAGS                       F0D26980
       AXT     5$REMOP,4      SET PASS TWO TRANSFER TO PRINT CARD       F0D26990
       SXD     OPBIN,4                                                  F0D27000
       TSX     OTPT0,4       *WRITE REMOTE HEADING                     $F0D27010
       AXT     ENDFD,4        PREVENT ANY FURTHER READING               F0D27020
       SXA     SOURC,4        OF SOURCE INPUT TAPE                      F0D27030
       TSX     RMTSR,4       *EXPAND REMOTE SEQUENCES                   F0D27040
 ENDFD TSX     WRINT,4       *WRITE LAST PARTIAL INTERMEDIATE BLOCK     F0D27050
       TXH     ENDFE,2,0      IS THIS FIRST INTERMEDIATE TAPE           F0D27060
       TSX    (TAPE),4       *YES, WRITE END FILE ON FIRST INT TAPE     F0D27070
       PZE     ,,(WEFP)                                                 F0D27080
       PZE     INTAP,,-1                                                F0D27090
       PZE     TAPERR                                                   F0D27100
       TSX    (TAPE),4       *REWIND FIRST INTERMEDIATE TAPE            F0D27110
       PZE     REWND,,(SKBP)                                            F0D27120
       PZE     INTAP,,-1                                                F0D27130
       TSX    (TAPE),4       *WRITE EMPTY RECORD ON SECOND INTERM TAPE  F0D27140
       PZE     P7,,(WBNP)                                              $F0D27150
       PZE     INTAP+1,,-1                                              F0D27160
       PZE     TAPERR                                                   F0D27170
 ENDFE TSX    (TAPE),4       *WRITE END FILE ON SECOND INTERM TAPE      F0D27180
       PZE     ,,(WEFP)                                                 F0D27190
       PZE     INTAP+1,,-1                                              F0D27200
       PZE     TAPERR                                                   F0D27210
       TSX    (TAPE),4       *REWIND SECOND INTERMEDIATE TAPE           F0D27220
       PZE     REWND,,(SKBP)                                            F0D27230
       PZE     INTAP+1,,-1                                              F0D27240
       REM     PREPARE PROGRAM CARD                                     F0D27250
 ENDFF TRA     ENDFP          CHECK FOR EVEN OP WITH ODD PROLOGUE      $F0D27260
       ZET     SEPFLG         IS STANDARD ERROR PROCEDURE REQUESTED     F0D27270
       ZET     MAINPF         YES, IS THIS A SUBPROGRAM                 F0D27280
       TRA     *+2            NO, STORE PROLOGUE LENGTH                $F0D27290
       ADD     Q2             YES, BUMP BY LENGTH OF LINKAGE DIRECTOR   F0D27300
       STA     PBUFF1+5       SAVE ENTRY POINT PC 7R ADDRESS            F0D27310
       STA     PROLG          SAVE LENGTH OF RELOCATION                 F0D27320
       CLA     CDCTR          COMPUTE PROGRAM BREAK                     F0D27330
       CAS     PRGBK          IS THIS PORTION OF PROGRAM LONGER         F0D27340
       STA     PRGBK          YES                                       F0D27350
       NOP                    NO                                        F0D27360
       CLA     PRGBK          LOAD LENGTH OF PROGRAM                    F0D27370
       ADD     PBUFF1+5       ADD LENGTH OF TRANSFER VECTOR AND PROLOG  F0D27380
       STA     PBUFF1+2       SAVE ACTUAL PROGRAM BREAK PC 8L ADDRESS   F0D27390
       LDC     LSCH1,2        ADD LENGTH OF LITERAL TABLE               F0D27400
       TXI     *+1,2,-2                                                 F0D27410
       PXA     ,2                                                       F0D27420
       ADD     PRGBK          TO END OF PROGRAM                         F0D27430
       STA     ADDRS                                                    F0D27440
       CAL     ENDOP          LOAD END CARD LOCATION SYMBOL             F0D27450
       TSX     ESYMT,4       *DEFINE PROGRAM BREAK                      F0D27460
       REM                                                              F0D27470
       REM     PREPARE FOR PASS TWO TABLE SEARCHES                      F0D27480
       LDC     LSCH1,2        COMPUTE LENGTH OF LITERAL TABLE           F0D27490
       TXI     *+1,2,-1                                                 F0D27500
       SXD     LITSIZ,2                                                 F0D27510
       PXA     ,2             COMPUTE LOGARITHM OF TABLE LENGTH         F0D27520
       AXT     2,2            PREPARE FOR ONE-WORD ENTRIES              F0D27530
       ARS     1              DIVIDE TABLE IN HALF                      F0D27540
       TZE     *+2            HAS TABLE DISAPPPEARED                    F0D27550
       TXI     *-2,2,1        NO, BUMP LOGARATHM                        F0D27560
       PXA     ,2                                                       F0D27570
       ALS     1                                                        F0D27580
       STA     LITSIZ                                                   F0D27590
       LDC     SYMSIZ,2       DITTO FOR SYMBOL TABLE                    F0D27600
       SXD     SYMSIZ,2                                                 F0D27610
       PXA     ,2                                                       F0D27620
       AXT     1,2            BUT TABLE IS OF TWO WORD ENTRIES          F0D27630
       ARS     1                                                        F0D27640
       TZE     *+2                                                      F0D27650
       TXI     *-2,2,1                                                  F0D27660
       PXA     ,2                                                       F0D27670
       ALS     1                                                        F0D27680
       STA     SYMSIZ                                                   F0D27690
       ZET     ABSFLG         IS THIS PROGRAM ABSOLUTE                  F0D27700
       TRA     REL02+1        YES                                       F0D27710
       CLA     UPCTR          NO, COMPUTE COMMON BREAK                  F0D27720
 ENDCF TXL     *+2,4,-1       IS THERE ANY COMMON                       F0D27730
       STA     PBUFF1+3       YES, SAVE COMMON BREAK PC 8R ADDRESS      F0D27740
       CLA     PBUFF1+3       SET COMMON BREAK FLAG                     F0D27750
       SLW     UPCTR          STORE IT WITHOUT SIGN                    $F0D27760
       REM     RELOCATE SYMBOL TABLE                                    F0D27770
       LDC     SYMSIZ,4       LOAD LENGTH OF SYMBOL TABLE               F0D27780
       TXL     SORT9,4,0      IS THERE A SYMBOL TABLE                   F0D27790
       SXD     REL02,4        YES, SET END OF SYMBOL TABLE TEST         F0D27800
       AXT     0,4            START WITH BOTTOM OF TABLE                F0D27810
 REL01 LDI     SYMTBL+1,4     LOAD NEXT ADDRESS                         F0D27820
       LFT     1              IS SYMBOL RELOCATABLE                     F0D27830
       LFT     4              YES, IS IT ABOVE TRANSFER VECTOR          F0D27840
       TXI     REL02,4,-2     NO, BUMP TO NEXT ENTRY                    F0D27850
       PIA                    YES, RELOCATE SYMBOL UPWARD               F0D27860
       ADD     PBUFF1+5       BY LENGTH OF TRANSFER VECTOR AND PROLOG   F0D27870
       STA     SYMTBL+1,4     INSERT IN SYMBOL TABLE                    F0D27880
       TXI     REL02,4,-2     BUMP TO NEXT ENTRY                        F0D27890
 REL02 TXH     REL01,4,**     IS TABLE FINISHED                         F0D27900
       REM     SORT SYMBOL TABLE                                        F0D27910
       REM     THE ALGORITHM FOR THIS SORT HAS APPEARED IN AN ISSUE OF  F0D27920
       REM     ACM AND WAS ADAPTED FOR 709 USE BY THE DEES CANTOR AND   F0D27930
       REM     MOORE. IT IS A RADIX 2 SORT, AND SORTS ON BITS IN        F0D27940
       REM     DESCENDING ORDER FROM 0 (SIGN) BIT TO BIT 35             F0D27950
       REM     SORTB CONTAINS (COMPLEMENT OF) LOCATION OF FIRST SYMBOL  F0D27960
       REM     SORTA CONTAINS (COMPLEMENT OF) LOCATION OF LAST SYMBOL   F0D27970
       REM     SORTA+N CONTAIN (COMPLEMENT OF) LOCATION OF BREAK        F0D27980
       REM             BETWEEN 0 AND 1 BIT ON -N KEY (E.G. SORTA+35,    F0D27990
       REM             KEY 0 (SIGN) BIT, SORTA+34 BIT 1). THIS IS TO    F0D28000
       REM             DELIMIT SUBSORTS ON LOWER ORDER BITS. IF NO      F0D28010
       REM             SUBSORT IS NECESSARY (LOWER ORDER BITS DO NOT    F0D28020
       REM             EXIST, OR FALL RANDOMLY IN PROPER ORDER) EMPTY   F0D28030
       REM             KEY CONDITION IS INDICATED BY SORTA+N = SORTA+N+1F0D28040
       REM     IF TWO SYMBOL NAMES FALL INTO SAME KEY GROUP DOWN TO BIT F0D28050
       REM     35, THEY ARE IDENTICAL AND ENTERED INTO DUPICATELY       F0D28060
       REM     DEFINED SYMBOL LIST WITH EVERY ADDRESS WITHIN KEY.       F0D28070
       REM     AS SORT IS COMPLETED (EMPTY KEY GROUPS) AT THE UPPER AND F0D28080
       REM     LOWER EXTREMITIES OF THE SORT, SORTA AND SORTB ARE BUMPEDF0D28090
       REM     DOWN AND UP (COMPLEMENT) RESPECTIVELY.                   F0D28100
       REM     IF SORT FAILS, IE UNDEFINED SYMBOLS WHICH APPEAR IN      F0D28110
       REM     LOCATION FIELDS, CHECK THE SENSE INDICATORS FOR MACHINE  F0D28120
       REM     ERROR. THIS IS THE BEST KNOWN TEST OF SENSE INDICATORS   F0D28130
       LXD     SYMSIZ,2       COMPUTE ACTUAL LENGTH OF SYMBOL TABLE     F0D28140
       TNX     SORT9,2,2      HAS TABLE ONLY ONE ENTRY                  F0D28150
       TXI     *+1,2,SYMTBL   NO, COMPUTE LOCATION OF LAST NAME IN TABLEF0D28160
       PXA     ,2                                                       F0D28170
       PAC     ,2                                                       F0D28180
       SXA     SORTA,2        SAVE COMPLEMENT OF LOCATION               F0D28190
       AXT     36,1           PREPARE TO SORT ON BIT 0 (SIGN BIT)       F0D28200
       REM     REENTRY TO SORT ON NEXT BIT                              F0D28210
 SORT1 LXA     SORTB,4        LOAD POSITION OF CURRENT START OF SORT    F0D28220
       CLA     SORTA+36,1     LOAD POSITION OF CURRENT END OF SORT BLOCKF0D28230
       PAX     ,2                                                       F0D28240
       CAL     SRTBT+36,1     LOAD CURRENT SORTING BIT                  F0D28250
       TXI     SORT3,2,-2     BUMP TO ORG FOLLOWING LAST NAME IN BLOCK  F0D28260
       REM     REENTRY FOR SYMBOL NAME EQUAL TO KEY (KEY BIT = 1)       F0D28270
 SORT2 TXI     *+1,4,-2       BUMP CURRENT SYMBOL INDEX UP              F0D28280
       TXI     *+1,2,2        BUMP ORIGIN DOWN ONE SYMBOL               F0D28290
       SXD     *+1,4          INITIALIZE TEST FOR END OF MOVE LOOP      F0D28300
       TXH     SORT5,2,**     IS SYMBOL AT END OF SORT                  F0D28310
       LDI     0,2            NO, LOAD NEXT SYMBOL                      F0D28320
       TIF     *+2            IS THIS SYMBOL LOCICALLY LOWER (KEY BIT=0)F0D28330
       TXI     *-3,2,2        NO, BUMP TO NEXT SYMBOL                   F0D28340
       LDQ     -2,4           YES, INTERCHANGE SYMBOL NAMES             F0D28350
       STI     -2,4                                                     F0D28360
       STQ     0,2                                                      F0D28370
       LDI     1,2            INTERCHANGE LOCATIONS                     F0D28380
       LDQ     -1,4                                                     F0D28390
       STI     -1,4                                                     F0D28400
       STQ     1,2                                                      F0D28410
 SORT3 SXD     *+1,2          SET TEST FOR LOCATION OF LAST SYMBOL NAME F0D28420
       TXL     SORT5,4,**     IS CURRENT SYMBOL AT END OF SORT          F0D28430
       LDI     0,4            NO, LOAD CURRENT SYMBOL NAME              F0D28440
       TIO     SORT2          DOES CURRENT SYMBOL NAME CONTAIN KEY BIT=1F0D28450
       TXI     *-3,4,-2       NO, BUMP TO NEXT SYMBOL NAME              F0D28460
       REM     KEY IS NOT EMPTY                                         F0D28470
 SORT4 CLA     SORTA+36,1     LOAD END OF NEXT BLOCK                    F0D28480
       TRA     SORT5+2                                                  F0D28490
       REM     SORT ON THIS BIT IN CURRENT BLOCK IS FINISHED            F0D28500
 SORT5 TXI     *+1,2,2        BUMP ORIGIN DOWN ONE SYMBOL               F0D28510
       PXA     ,2                                                       F0D28520
       STA     SORTA+37,1     SAVE BREAK BETWEEN 0 AND 1 BITS THIS BLOCKF0D28530
       CAS     SORTB          IS THIS BLOCK EMPTY                       F0D28540
       TRA     SORT4          NO, BUMP BREAK TO NEXT BLOCK              F0D28550
       TRA     SORT7          YES, BUMP START OF SORT TO NEXT BLOCK     F0D28560
 SORT6 TIX     SORT1,1,1      NO, ARE ALL KEYS EXHAUSTED                F0D28570
       REM     SYMBOL IS MULTIPLY DEFINED                               F0D28580
       CAL     D8             LOAD DUPLICATELY-DEFINED SYMBOL FLAG      F0D28590
       LXA     SORTA+36,2     LOAD BEGINNING OF DD SYMBOL BLOCK         F0D28600
       LXA     SORTB,4        LOAD END OF DD SYMBOL BLOCK               F0D28610
       SXD     *+3,4          SET TEST FOR END OF LOOP                  F0D28620
       ORS     1,2            FLAG THIS SYMBOL                          F0D28630
       TXI     *+1,2,2        BUMP TO NEXT SYMBOL                       F0D28640
       TXL     *-2,2,**       IS BLOCK COMPLETELY FLAGGED               F0D28650
       AXT     1,1            YES, RESET KEY INDEX TO BIT 35            F0D28660
       CLA     SORTA+36       DELETE BLOCK INCLUDING                    F0D28670
       SUB     Q2             DUPICATELY DEFINED SYMBOL                 F0D28680
       STA     SORTB                                                    F0D28690
       CLA     SORTA+35       BUMP BREAK UP TO NEXT BLOCK               F0D28700
       STA     SORTA+36                                                 F0D28710
       CAS     SORTB          IS NEXT BLOCK EMPTY                       F0D28720
       STA     SORTB          NO, DELETE NEXT BLOCK                     F0D28730
       TRA     SORT8          YES, GO TEST FOR END OF SORT              F0D28740
       TRA     SORT6+1        NO, FLAG NEXT DD SYMBOL BLOCK             F0D28750
       REM     REENTRY FOR EMPTY BLOCK                                  F0D28760
 SORT7 SUB     Q2             BUMP START OF SORT UP TO NEXT BLOCK       F0D28770
       STA     SORTB                                                    F0D28780
       LDQ     SORTA+36,1     BUMP BREAK UP TO NEXT BLOCK               F0D28790
       STQ     SORTA+37,1                                               F0D28800
       TLQ     SORT6          IS THIS BLOCK EMPTY                       F0D28810
       REM     REENTRY AFTER FLAGGING MULTIPLY DEFINED SYMBOL           F0D28820
 SORT8 TXH     SORT9,1,35     YES, IS SORT COMPLETE                     F0D28830
       LDQ     SORTA+35,1     NO, BUMP END OF SORT DOWN ONE BLOCK       F0D28840
       STQ     SORTA+36,1                                               F0D28850
       TLQ     *+2            IS THIS BLOCK EMPTY                       F0D28860
       TXI     SORT8,1,1      YES, BUMP KEY INDEX UP TO NEXT KEY        F0D28870
       SUB     Q2             BUMP START OF SORT UP TO NEXT SYMBOL      F0D28880
       STA     SORTB                                                    F0D28890
       TLQ     SORT1          IS THIS BLOCK EMPTY                       F0D28900
       TXI     SORT8,1,1      YES, BUMP KEY INDEX TO NEXT KEY           F0D28910
       REM     END OF SORT                                              F0D28920
 SORT9 TRA     JPLCH        *CALL PASS TWO.                            $F0D28930
       TTL     PASS ONE PSEUDOOPERATION PROCESSOR                       F0D28940
 PSOPT ZET     INDFG          IS PSEUDOOPERATION INDIRECTLY ADDRESSED   F0D28950
       TRA     OPERR        **YES                                       F0D28960
       LXD     VRFLD,2        NO, RELOAD WORD COUNT                     F0D28970
       LXA     VRFLD,1        RELOAD CHARACTER COUNT                    F0D28980
       PIA                    RECALL TRANSFER ADDRESS                   F0D28990
       STA     *+1            INITIALIZE TRANSFER                       F0D29000
       TRA     **                                                       F0D29010
       REM                                                              F0D29020
 704OP AXT     11,4           RESET NUMBER OF COLUMNS PRECEEDING        F0D29030
       SXA     CMPVF,4        VARIABLE FIELD FOR MACRO GENERATED CARD   F0D29040
       TRA     READ1                                                    F0D29050
       REM                                                              F0D29060
 709OP AXT     15,4           RESET NUMBER OF COLUMNS PRECEEDING        F0D29070
       SXA     CMPVF,4        VARIABLE FIELD FOR MACRO GENERATED CARD   F0D29080
       TRA     READ1                                                    F0D29090
       REM                                                              F0D29100
 ABSOP ZET     ABSFLG         IS ASSEMBLY ABSOLUTE                      F0D29110
       TRA     ABS01          YES                                       F0D29120
       ZET     MAINPF         MAYBE, WAS THERE A PRECEDING ENTRY CARD   F0D29130
       ZET     FCFLG          NO, IS THIS FIRST CARD GROUP              F0D29140
       TRA     OPERR        **NO, TOO LATE                              F0D29150
       STL     ABSFLG         YES, SET ABSOLUTE ASSEMBLY FLAG           F0D29160
       STZ     SEPFLG         RESET STANDARD ERROR PROCEDURE FLAG       F0D29170
       STZ     PBUFF1         DELETE PROGRAM CARD 9L PREFIX, WORD COUNT F0D29180
       SXD     LOCTR,0        DELETE RELOCATION BITS                    F0D29190
 ABS01 TRA     READ1                                                    F0D29200
       REM                                                              F0D29210
 BCDOP CAL     BCDBF+1        LOAD CARD WORD 2                          F0D29220
       ANA     Q63            MASK IN CC 12                             F0D29230
       LAS     BLANK          IS IT BLANK                               F0D29240
       TRA     BCI02+3        NO, IT IS ILLEGAL                         F0D29250
       TRA     BCI01          YES (FULL CARD)                           F0D29260
       TZE     BCI01          NO, IS IT ZERO (FULL CARD)                F0D29270
       TRA     BCI02+1        NO                                        F0D29280
       REM                                                              F0D29290
 BCIOP CLA     CHRCTR         LOAD FIRST CHARACTER IN VARIABLE FIELD    F0D29300
       TZE     BCI03                                                   $F0D29310
       SUB     COMMA          NO, IS IT COMMA                           F0D29320
       TNZ     BCI02          NO                                        F0D29330
       TXH     BCI02,1,2      YES, IS COMMA IN CC 12                    F0D29340
       TXL     BCI02,1,1      MAYBE                                     F0D29350
 BCI01 CLA     Q10            YES                                       F0D29360
       TRA     BCI03                                                    F0D29370
 BCI02 ADD     COMMA          RESTORE FIRST CHARACTER                   F0D29380
       CAS     Q10            IS IT LEGAL                               F0D29390
       NOP                    NO                                        F0D29400
       CLA     Q1             NO, SET IT TO 1                           F0D29410
       REM                    (MACHINE ERROR WILL BE CAUGHT PASS 2)     F0D29420
 BCI03 TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D29430
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D29440
       TRA     READ1                                                    F0D29450
       REM                                                              F0D29460
 BESOP SXD     BSS01,0        SET BES SWITCH                            F0D29470
       TRA     BSSOP+1                                                  F0D29480
       REM                                                              F0D29490
 BSSOP SXD     BSS01,2        SET BSS SWITCH                            F0D29500
       TSX     SCANF,4       *EVALUATE LENGTH OF BLOCK                  F0D29510
       TXI     AFLAG,,0       NULL BLOCK LENGTH                         F0D29520
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D29530
       ZET     RBITS          NO, IS VARIABLE FIELD RELOCATABLE         F0D29540
       TRA     PHASE        **YES                                       F0D29550
       TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D29560
       LDI     Q0             PRESET SYMBOL LOC TO BEGINNING OF BLOCK   F0D29570
 BSS01 TXL     *+3,1,**       IS PSEUDOOP BES                           F0D29580
       STA     ADDRS          YES, DEFINE SYMBOL AT END OF BLOCK        F0D29590
       LDI     VAREQ                                                    F0D29600
       PIA                    RECALL SYMBOL DEFINITION                  F0D29610
       ALS     18             CONSTRUCT LENGTH,,DEFINITION FOR PASS 2   F0D29620
       ADD     VAREQ                                                    F0D29630
       SLW     LITRL                                                    F0D29640
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D29650
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D29660
       TRA     FIELD        **NO                                        F0D29670
       TRA     READ1          YES                                       F0D29680
       REM                                                              F0D29690
 BOLOP STL     BOLMD          SET BOOL MODE FLAG                        F0D29700
       TSX     SCANF,4       *EVALUATE BOOLEAN EXPRESSION               F0D29710
       TXI     AFLAG,,0       NULL BOOLEAN EXPRESSION                   F0D29720
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D29730
       ZET     RBITS          NO, IS VARIABLE FIELD RELOCATABLE         F0D29740
       TRA     FIELD        **YES                                       F0D29750
       SLW     ADDRS          SAVE DEFINITION                           F0D29760
       SLW     LITRL          SAVE FOR PASS 2                           F0D29770
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D29780
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D29790
       TRA     FIELD        **NO                                        F0D29800
       TRA     READ1          YES                                       F0D29810
       REM                                                              F0D29820
 ETCOP STZ     ETCMD          RESET ETC MODE FLAG                       F0D29830
       ZET     VFDMD          IS THIS VFD ETC CARD                      F0D29840
       TRA     VFETC          YES                                       F0D29850
       TRA     CLETC          NO, THIS MUST BE CALL ETC                 F0D29860
       REM                                                              F0D29870
 CALOP TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D29880
       TSX     CALNM,4       *ENTER NAME IN TRANSFER VECTOR             F0D29890
       TRA     CAL01+1                                                  F0D29900
       REM     REENTRY AFTER COMMA OR ETC CARD                          F0D29910
 CLETC TSX     C019A,4       *LOOK AT NEXT CHARACTER                    F0D29920
       ERA     BLANK          IS IT BLANK FOLLOWING COMMA               F0D29930
       TNZ     CAL01          NO                                        F0D29940
       TSX     PEEKS,4       *YES, DOES ETC CARD FOLLOW                 F0D29950
       TRA     CAL03          YES                                       F0D29960
       CLA     Q1             NO, LOAD LENGTH OF NULL FIELD             F0D29970
       TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D29980
       TRA     CAL02                                                    F0D29990
       REM     REENTRY TO COUNT NEXT ARGUMENT                           F0D30000
 CAL01 TSX     SCEND,4       *SKIP TO END OF ARGUMENT                   F0D30010
       REM     REENTRY AFTER SUBPROGRAM NAME                            F0D30020
       CLA     Q1             LOAD LENGTH OF SUBROUTINE NAME OR ARGUMENTF0D30030
       TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D30040
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D30050
       TRA     CLETC          NO, PUNCTUATION WAS COMMA                 F0D30060
       REM     ETC MAY NOT FOLLOW                                       F0D30070
 CAL02 CLA     Q2             LOAD LENGTH OF SEP PARAMETERS             F0D30080
       ZET     SEPFLG         IS STANDARD ERROR PROCEDURE REQUESTED     F0D30090
       TSX     BPCTR,4       *YES, BUMP PROGRAM COUNTER                 F0D30100
 CAL03 TRA     READ1                                                    F0D30110
       REM                                                              F0D30120
 COMOP ZET     ABSFLG         IS THIS AN ABSOLUTE ASSEMBLY              F0D30130
       TRA     OPERR        **YES, OPERATION IS UNDEFINED               F0D30140
       ZET     DUPMD          NO, IS THIS WITHIN RANGE OF DUP           F0D30150
       TRA     PHASE        **YES                                       F0D30160
       SXD     ENDCF,0        NO, SET COMMON FLAG                       F0D30170
       TSX     SCANF,4       *EVALUATE LENGTH OF BLOCK                  F0D30180
       TXI     AFLAG,,0       NULL BLOCK LENGTH                         F0D30190
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D30200
       ZET     RBITS          NO, IS VARIABLE FIELD RELOCATABLE         F0D30210
       TRA     PHASE        **YES                                       F0D30220
       CLA     UPCTR          NO, DEFINE COMMON VARIABLE AS CURRENT     F0D30230
       STO     ADDRS          LOCATION OF UPPER STORAGE COUNTER         F0D30240
       STA     LITRL          CONSTRUCT ADDRS,,UPCTR FOR PASS 2         F0D30250
       SUB     VAREQ          BUMP COUNTER                              F0D30260
       STA     UPCTR                                                    F0D30270
       ALS     18                                                       F0D30280
       STD     LITRL                                                    F0D30290
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D30300
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D30310
       TRA     FIELD        **NO                                        F0D30320
       TRA     READ1          YES                                       F0D30330
       REM                                                              F0D30340
 CNTOP NZT     FCFLG          IS THIS FIRST CARD GROUP                  F0D30350
       NZT     CNTFG          YES, IS CARD COUNT MISSING                F0D30360
       TRA     FIELD        **NO, TOO LATE                              F0D30370
       STZ     CNTFG          YES, RESET FLAG                           F0D30380
       TSX     SCANF,4       *EVALUATE VARIABLE FIELD                   F0D30390
       TXI     AFLAG,,0       NULL COUNT                                F0D30400
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D30410
       ZET     RBITS          NO, IS COUNT RELOCATABLE                  F0D30420
       TRA     FIELD        **YES                                       F0D30430
       ARS     1              DIVIDE BY TWO                             F0D30440
       CAS     Q36            IS COUNT LESS THAN ONE BLOCK              F0D30450
       STA     READ1+1        NO, RESET INTERMEDIATE TAPE RECORD LIMIT  F0D30460
       NOP                    YES                                       F0D30470
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D30480
       TRA     FIELD        **NO                                        F0D30490
       TRA     READ1          YES                                       F0D30500
       REM                                                              F0D30510
 DECOP TSX     SCEND,4       *SKIP TO END OF INTEGER                    F0D30520
       CLA     Q1                                                       F0D30530
       TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D30540
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D30550
       TRA     DECOP          NO                                        F0D30560
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D30570
       TRA     READ1                                                    F0D30580
       REM                                                              F0D30590
 DOLOP LXD     VRFLD,2        RELOAD WORD COUNT                         F0D30600
       LXA     VRFLD,1        RELOAD CHARACTER COUNT                    F0D30610
       TSX     C0190,4       *DELETE DOLLAR SIGN                        F0D30620
       TSX     CALNM,4       *ENTER SUBPROGRAM NAME INTO TRANSFER VECTORF0D30630
       TRA     READ1                                                    F0D30640
       REM                                                              F0D30650
 DUPOP TSX     SCANF,4       *EVALUATE RANGE OF DUP                     F0D30660
       TXI     AFLAG,,0       NULL RANGE                                F0D30670
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D30680
       ZET     RBITS          NO, IS VARIABLE FIELD RELOCATABLE         F0D30690
       TRA     PHASE        **YES                                       F0D30700
       TZE     DUP01          DOES DUP CONTAIN CARDS                    F0D30710
       STA     LITRL          YES, CONSTRUCT RANGE,,ITERATNS FOR PASS 2 F0D30720
       TSX     SCANF,4       *EVALUATE ITERATIONS OF DUP                F0D30730
       TXI     DUP01,,0       NULL ITERATIONS                           F0D30740
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D30750
       ZET     RBITS          NO, IS VARIABLE FIELD RELOCATABLE         F0D30760
       TRA     PHASE        **YES                                       F0D30770
       TZE     *+3            IS DUP ITERATIVE                          F0D30780
       SUB     Q1             YES, IS ITERATIONS GREATER THAN 1         F0D30790
       TNZ     *+3            YES                                       F0D30800
       SLF                    NO, SET FIELD ERROR FLAG                  F0D30810
       TRA     DUP01                                                    F0D30820
       ZET     DUPMD          YES, IS DUP WITHIN RANGE OF DUP           F0D30830
       TRA     PHASE        **YES                                       F0D30840
       ALS     18             NO, REPOSITION ITERATIONS                 F0D30850
       STD     LITRL          SAVE FOR PASS 2                           F0D30860
       ADD     D1             BUMP BACK TO ITERATION COUNT              F0D30870
       STD     DUPCT          INITIALIZE COUNTER                        F0D30880
       CLA     LITRL          RELOAD RANGE OF DUP                       F0D30890
       STA     DUPCD          SET CARD COUNTER                          F0D30900
       CLA     LOCTR          SAVE PROGRAM COUNTER AT BEGINNING OF DUP  F0D30910
       STA     DUPCT+1                                                  F0D30920
       CLA     CDCTR          SAVE CARD STORAGE COUNTER                 F0D30930
       STA     DUPCT+2                                                  F0D30940
       STL     DUPMD          SET DUP MODE FLAG                         F0D30950
 DUP01 TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D30960
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D30970
       TRA     FIELD        **NO                                        F0D30980
       TRA     READ1          YES                                       F0D30990
       REM                                                              F0D31000
 ENDOP SXD     PAKFLG,4       SET FLAG TO UNBLOCK END CARD              F0D31010
       STL     COMCD          SET FLAG TO UNBLOCK CONTROL CARDS         F0D31020
       ZET     DELFLG         IS ASSEMBLY DELETED                       F0D31030
       TRA     READ3+1        YES                                       F0D31040
       CAL     BCDBF          NO, HOLD LOCATION FIELD                   F0D31050
       SLW     ENDOP          TO BE DEFINED AFTER REMOTE SEQUENCES      F0D31060
       TSX     OTPUT,4       *WRITE END CARD                            F0D31070
       TRA     ENDFA                                                    F0D31080
       REM                                                              F0D31090
 ENFOP CAL     READ2+2        PREPARE TO WRITE END FILE                 F0D31100
       TSX     UPTOP,4       *WRITE END FILE                            F0D31110
       TRA     SOURC                                                    F0D31120
       REM                                                              F0D31130
 ENPOP TSX     UPDLS,4       LIST CARD                              (25)F0D31140
       STL     DELFLG                                               (26)F0D31150
       TRA     ENDFA                                                (26)F0D31160
       PZE                    (NOT USED)                            (26)F0D31170
       PZE                    (NOT USED)                            (26)F0D31180
       REM                                                              F0D31190
 ENTOP ZET     ABSFLG         IS ASSEMBLY ABSOLUTE                      F0D31200
       TRA     OPERR        **YES, OPERATION IS UNDEFINED               F0D31210
       ZET     FCFLG          NO, IS THIS FIRST CARD GROUP              F0D31220
       TRA     PHASE        **NO, TOO LATE                              F0D31230
       SXD     MAINPF,0       YES, RESET MAIN PROGRAM FLAG              F0D31240
       TRA     READ1                                                    F0D31250
       REM                                                              F0D31260
 EXTOP ZET     ABSFLG         IS THIS ASSEMBLY ABSOLUTE                 F0D31270
       TRA     OPERR        **YES, OPERATION IS UNDEFINED               F0D31280
       TSX     CALNM,4       *NO, ENTER SUBPROGRAM NAME IN VECTOR       F0D31290
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D31300
       TRA     *-2            NO, GET NEXT TRANSFER VECTOR NAME         F0D31310
       TRA     READ1          YES                                       F0D31320
       REM                                                              F0D31330
 HADOP TSX     SSCAN,4       *ASSEMBLE HEADING CHARACTER                F0D31340
       TXI     HED01,,0       NULL HEADING CHARACTER                    F0D31350
       CAL     SYMBL          LOAD HEADING CHARACTER                    F0D31360
       TRA     HED01                                                    F0D31370
       REM                                                              F0D31380
 HEDOP PXD     ,0             LOAD CARD COLUMN 1                        F0D31390
       LDQ     BCDBF                                                    F0D31400
       LGL     6                                                        F0D31410
 HED01 LAS     BLANK          IS HEADING CHARACTER BLANK                F0D31420
       TRA     *+2            NO                                        F0D31430
       PXD     ,0             YES, DELETE IT                            F0D31440
       SLW     BHEAD          SAVE HEADING CHARACTER                    F0D31450
       SLW     LITRL          SAVE FOR PASS 2                           F0D31460
       SXA     HEDCT,0        RESET MULTIPLE HEADING COUNT              F0D31470
 HED02 TSX     SSCAN,4       *ASSEMBLE NEXT SYMBOL                      F0D31480
       TXI     READ1,,0       END OF VARIABLE FIELD RETURN              F0D31490
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D31500
       SLT     EXPND          NO, WAS SYMBOL FOLLOWED BY AN OPERATION   F0D31510
       TRA     FIELD        **YES, OMIT HEADING CHARACTERS              F0D31520
       LXA     HEDCT,4        NO, BUMP MULTIPLE HEADING COUNT           F0D31530
       TXI     *+1,4,1                                                  F0D31540
       TXL     *+3,4,11       DID BHEAD TABLE OVERFLOW                  F0D31550
       LDI     HEDNM          YES, SET MULTIHEADING TABLE OVERFLOW      F0D31560
       TRA     SRCERR       **TERMINATE ASSEMBLY                        F0D31570
       SXA     HEDCT,4        NO, SAVE CURRENT MULTIPLE HEADING COUNT   F0D31580
       CAL     SYMBL          ADD HEADING CHARACTER                     F0D31590
       SLW     BHEAD,4        TO MULTIPLE HEADING LIST                  F0D31600
       TRA     HED02                                                    F0D31610
       REM                                                              F0D31620
 IFEOP ZET     ABSFLG         IS THIS ASSEMBLY ABSOLUTE                 F0D31630
       TRA     OPERR        **YES, OPERATION IS UNDEFINED               F0D31640
       TSX     ESYML,4       *NO, DEFINE POSSIBLE LOCATION FIELD        F0D31650
       CAL     L(EOF          LOAD ENTRY POINT NAME                     F0D31660
       TSX     TRVCR,4       *MAKE ENTRY IN TV TABLE AND SYMBOL TABLE   F0D31670
       CLA     Q2             LOAD LENGTH OF TWO INSTRUCTION MACRO      F0D31680
       TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D31690
       TRA     READ1                                                    F0D31700
 L(EOF BCI     1,(EOF)                                                  F0D31710
       REM                                                              F0D31720
       REM     EVALUATE LITERALS                                        F0D31730
 LITOP LXD     VRFLD,2        LOAD WORD COUNT                           F0D31740
       LXA     VRFLD,1        LOAD CHARACTER COUNT                      F0D31750
       TSX     C0190,4       *DELETE = CHARACTER                        F0D31760
       TSX     C0190,4       *GET CHARACTER FOLLOWING EQUAL SIGN        F0D31770
       LAS     QO             IS CHARACTER O                            F0D31780
       TXI     LITDC,1,1      NO, IT IS DECIMAL                         F0D31790
       TRA     LITCL          YES, IT IS OCTAL                          F0D31800
       LAS     QH             NO, IS CHARACTER H                        F0D31810
       TXI     LITDC,1,1      NO, IT IS DECIMAL                         F0D31820
       TRA     LITHL          YES, IT IS HOLLERITH                      F0D31830
       TXI     LITDC,1,1      NO, BUMP COUNTER LEFT ONE CHARACTER       F0D31840
       REM     EVALUATE DECIMAL LITERALS                                F0D31850
 LITDC LGR     6              RESTORE FIRST CHARACTER (SIGN OR DIGIT)   F0D31860
       STQ     RESIDU                                                   F0D31870
       STZ     ERRFE          RESET ERROR FLAG                          F0D31880
       TSX     DECCV,4       *CONVERT DECIMAL FIELD TO BINARY           F0D31890
       STO     LITRL                                                    F0D31900
       NZT     ERRFE          WAS FIELD IN ERROR                        F0D31910
       TRA     LITDF          NO                                        F0D31920
       TRA     LITRR        **YES                                       F0D31930
       REM     EVALUATE OCTAL LITERALS                                  F0D31940
 LITCL STZ     ERRFB          RESET ERROR FLAG                          F0D31950
       TSX     OCTCV,4       *CONVERT OCTAL FIELD TO BINARY             F0D31960
       SLW     LITRL                                                    F0D31970
       NZT     ERRFB          WAS FIELD IN ERROR                        F0D31980
       TRA     LITDF          NO                                        F0D31990
       TRA     LITRR        **YES                                       F0D32000
       REM     EVALUATE HOLLERITH LITERALS                              F0D32010
 LITHL TSX     C0190,4       *GET NEXT CHARACTER                        F0D32020
       AXT     **,4           LOAD CHARACTER COUNT                      F0D32030
       TXI     *+1,4,1        BUMP CHARACTER COUNT                      F0D32040
       TXH     LITH1,4,6      HAVE SIX CHARACTERS BEEN COLLECTED        F0D32050
       SXA     LITHL+1,4      NO, SAVE CHARACTER COUNT                  F0D32060
       LGR     6              APPEND NEXT CHARACTER                     F0D32070
       CAL     LITRL          TO PARTIAL LITERAL                        F0D32080
       LGL     6                                                        F0D32090
       SLW     LITRL          SAVE PARTIAL LITERAL                      F0D32100
       TRA     LITHL                                                    F0D32110
 LITH1 SXA     LITHL+1,0      RESET CHARACTER COUNT                     F0D32120
       SUB     BLANK          IS IT BLANK                               F0D32130
       TZE     LITDF          YES, END OF VARIABLE FIELD                F0D32140
       SUB     EQUAL          NO, IS IT COMMA                           F0D32150
       TZE     LITDF          YES, END OF LITERAL FIELD                 F0D32160
       STZ     LITRL          NO, ILLEGAL CHARACTER                     F0D32170
       TRA     LITRR        **SET ERROR FLAGS                           F0D32180
       REM                                                              F0D32190
       REM     ENTER LITERAL INTO TABLE                                 F0D32200
 LITDF CAL     LITRL          LOAD LITERAL                              F0D32210
       LXA     LITSIZ,2       LOAD LOGARITHM OF TABLE LENGTH            F0D32220
       AXT     0,1            LOAD POSITION OF FIRST LITERAL IN TABLE   F0D32230
       XEC     LSCH2+1,2      BUMP SEARCH TO MIDDLE OF TABLE            F0D32240
       REM     REENTRY AFTER BINARY HOP                                 F0D32250
 LSCH1 TXL     *+4,1,-1       IS CURRENT POSITION ABOVE TABLE ENTRIES   F0D32260
       LAS     LITTBL-1,1     NO, IS NEW ENTRY IN TABLE                 F0D32270
       TXI     LSCH2+1,2,-2   NO, LARGER - GO LOOK HIGHER               F0D32280
       TRA     LSCH3          YES, IGNORE IT                            F0D32290
       TXI     LSCH2,2,-2     NO, SMALLER - GO LOOK LOWER               F0D32300
       REM                                                              F0D32310
       TXI     LSCH1,1,-512   (MAXIMUM TABLE SIZE = 1024 LITERALS)      F0D32320
       TXI     LSCH1,1,+256                                             F0D32330
       TXI     LSCH1,1,-256                                             F0D32340
       TXI     LSCH1,1,+128                                             F0D32350
       TXI     LSCH1,1,-128                                             F0D32360
       TXI     LSCH1,1,+64                                              F0D32370
       TXI     LSCH1,1,-64                                              F0D32380
       TXI     LSCH1,1,+32                                              F0D32390
       TXI     LSCH1,1,-32                                              F0D32400
       TXI     LSCH1,1,+16                                              F0D32410
       TXI     LSCH1,1,-16                                              F0D32420
       TXI     LSCH1,1,+8                                               F0D32430
       TXI     LSCH1,1,-8                                               F0D32440
       TXI     LSCH1,1,+4                                               F0D32450
       TXI     LSCH1,1,-4                                               F0D32460
       TXI     LSCH1,1,+2                                               F0D32470
       TXI     LSCH1,1,-2                                               F0D32480
       TXI     LSCH1,1,+1                                               F0D32490
       TXI     LSCH1,1,-1                                               F0D32500
       TXI     LITNT,1,-1                                               F0D32510
       TXI     LITNT,1,-2                                               F0D32520
       REM                                                              F0D32530
 LSCH2 XEC     *,2                                                      F0D32540
       XEC     *,2                                                      F0D32550
       REM                                                              F0D32560
       REM     LITERAL IS NEW, ENTER IT INTO TABLE INCREASING UPWARD    F0D32570
 LITNT LXD     LSCH1,2        LOAD CURRENT LENGTH OF LITERAL TABLE     $F0D32580
       LXD     LSCH1,4                                                 $F0D32585
       TXI     *+1,2,-1       BUMP COUNT                                F0D32590
       SXD     LSCH1,2                                                  F0D32600
       TXH     *+3,2,-LLITBL  DID LITERAL TABLE OVERFLOW                F0D32610
       LDI     LITNM          YES, SET LITERAL TABLE OVERFLOW           F0D32620
       TRA     SRCERR       **TERMINATE ASSEMBLY                        F0D32630
       SXD     *+1,1          NO, INITIALIZE POSITION TEST              F0D32640
       TXH     *+4,4,**       IS THIS ORDERED POSITION OF NEW ENTRY     F0D32650
       LDQ     LITTBL-2,4     NO, MOVE NEXT ENTRY UP ONE                F0D32660
       STQ     LITTBL-1,4     TO MAKE ROOM FOR NEW ENTRY                F0D32670
       TXI     *-3,4,1        BUMP TABLE COUNT UP ONE POSITION          F0D32680
       SLW     LITTBL-1,4     INSERT NEW ENTRY IN PROPER ORDER          F0D32690
 LSCH3 TRA     READ1                                                    F0D32700
       REM                                                              F0D32710
 LOCOP AXT     -1,4           SET LOC SWITCH                            F0D32720
       SXD     ORG02+3,4                                                F0D32730
       CAL     CHRCTR         LOAD FIRST CHARACTER IN VARIABLE FIELD    F0D32740
       ERA     BLANK          IS IT BLANK                               F0D32750
       TNZ     ORG01          NO                                        F0D32760
       CAL     CDCTR          YES, DISCONTINUE LOC                      F0D32770
       SLN     FLDND          SET END OF VARIABLE FIELD FLAG            F0D32780
       TRA     ORG02                                                    F0D32790
       REM                                                              F0D32800
 MAXOP SXD     MIN03,0        SET MAX SWITCHES                          F0D32810
       SXD     MIN03+2,0                                                F0D32820
       TRA     MIN01                                                    F0D32830
       REM                                                              F0D32840
 MINOP AXT     -1,4           SET MIN SWITCHES                          F0D32850
       SXD     MIN03,4                                                  F0D32860
       SXD     MIN03+2,4                                                F0D32870
       REM     REENTRY FOR MAX                                          F0D32880
 MIN01 TSX     SCANP,4       *EVALUATE FIRST FIELD                      F0D32890
       TXI     AFLAG,,0       NULL FIELD                                F0D32900
       STI     ADDRS          SAVE RELOCATION BITS                      F0D32910
       IIL     3              INITIALIZE TEST FOR CONSISTENT BITS       F0D32920
       STI     ERASE                                                    F0D32930
 MIN02 STO     LITRL          SAVE CURRENT GREATEST/LEAST FIELD         F0D32940
       TSX     SCANP,4       *EVALUATE NEXT FIELD                       F0D32950
       TXI     MIN04,,0       NULL FIELD                                F0D32960
       OFT     ERASE          IS SYMBOL CONSISTENT                      F0D32970
       TRA     FIELX        **NO                                        F0D32980
       LAS     LITRL          YES, IS THIS SYMBOL GREATER/LESSER        F0D32990
 MIN03 TXH     MIN02,4,**     SYMBOL IS GREATER - IS THIS MAX           F0D33000
       TRA     MIN02+1        NO                                        F0D33010
       TXL     MIN02,4,**     SYMBOL IS LESSER - IS THIS MIN            F0D33020
       TRA     MIN02+1        NO                                        F0D33030
       REM     END OF VARIABLE FIELD                                    F0D33040
 MIN04 CAL     LITRL          DEFINE SYMBOL AS MAX/MIN                  F0D33050
       ORA     ADDRS          COMBINE WITH RELOCATION BITS              F0D33060
       SLW     LITRL          SAVE FOR PASS 2                           F0D33070
       SLW     ADDRS                                                    F0D33080
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D33090
       SLT     FLDND          WAS VARIABLE FIELD NULL                   F0D33100
       TRA     FIELD        **YES                                       F0D33110
       TRA     READ1          NO                                        F0D33120
       REM                                                              F0D33130
 NUMOP SXD     INP04+2,0      SET SWITCH TO RESERIALIZE BCD CARDS       F0D33140
       CAL     BCDBF          LOAD LEADING CHARACTERS                   F0D33150
       TSX     LOCFL,4       *ASSEMBLE LEADING CHARACTERS               F0D33160
       LGR     6              LEFT ADJUST                               F0D33170
       TNZ     *-1                                                      F0D33180
       STQ     PROID          SAVE LEADING CHARACTERS                   F0D33190
       TSX     SCANP,4       *ASSEMBLE NEW SERIALIZATION                F0D33200
       TXI     NUM01,,0       NULL SERIALIZATION                        F0D33210
       RFT     3              IS SERIALIZATION ABSOLUTE                 F0D33220
       TRA     FIELD        **NO                                        F0D33230
       TRA     NUM02         *YES. RESET SERIALIZATION              (25)F0D33240
 UPD03 SLT     FLDND          WAS END OF VARIABLE FIELD SENSED      (25)F0D33250
       TRA     FIELD        **NO                                        F0D33260
       TSX     UPDLS,4       *YES, LIST THIS CARD                       F0D33270
       TRA     SOURC                                                    F0D33280
       REM     TURN OFF BCD CARD RESERIALIZATION                        F0D33290
 NUM01 AXT     -1,4           RESET SWITCH TO RESERIALIZE BCD CARDS     F0D33300
       SXD     INP04+2,4                                                F0D33310
       TSX     UPDLS,4       *LIST CARD                                 F0D33320
       TRA     SOURC                                                    F0D33330
       REM                                                              F0D33340
 OPDOP CAL     CHRCTR         LOAD FIRST CHARACTER                      F0D33350
       ERA     BLANK          IS VARIABLE FIELD BLANK                   F0D33360
       TZE     FIELD        **YES                                       F0D33370
       STZ     ERRFE          NO, CLEAR HANGING FLAGS                   F0D33380
       STZ     ERRFB                                                    F0D33390
       TSX     OCTCV,4       *ASSEMBLE OCTAL EQUIVALENT                 F0D33400
       NZT     ERRFE          IS OCTAL EQUIVALENT IN ERROR              F0D33410
       ZET     ERRFB                                                    F0D33420
       TRA     FIELD        **YES                                       F0D33430
       ORA     T1             NO, APPEND MACHINE OPERATION FLAG         F0D33440
       SLW     LITRL          SAVE FOR PASS TWO                         F0D33450
       PAI                                                              F0D33460
       TSX     EOPTB,4       *ENTER INTO OP TABLE                       F0D33470
       TRA     READ1                                                    F0D33480
       REM                                                              F0D33490
 OPSOP TSX     SSCAN,4       *ASSEMBLE EQUIVALENT NAME                  F0D33500
       TXI     FIELD,,0     **NULL EQUIVALENT NAME                      F0D33510
       SLT     EXPRR          IS SYMBOL IN ERROR                        F0D33520
       ZET     SYMB2          NO, IS SYMBOL TOO LONG                    F0D33530
       TRA     FIELD        **YES                                       F0D33540
       CAL     SYMBL          NO, LOAD EQUIVALENT NAME                  F0D33550
       LDQ     Q0                                                       F0D33560
       LGR     6              LEFT ADJUST                               F0D33570
       TNZ     *-1                                                      F0D33580
       XCL                                                              F0D33590
       TSX     SOPTB,4       *FIND CORRESPONDING OCTAL OPCODE           F0D33600
       TRA     FIELD        **NOT IN TABLE                              F0D33610
       STI     LITRL          SAVE FOR PASS TWO                         F0D33620
       TSX     EOPTB,4       *ENTER INTO OP TABLE                       F0D33630
       TRA     READ1                                                    F0D33640
       REM                                                              F0D33650
 OPVOP CAL     CHRCTR         LOAD FIRST CHARACTER                      F0D33660
       ERA     BLANK          IS VARIABLE FIELD BLANK                   F0D33670
       TZE     FIELD        **YES                                       F0D33680
       STZ     ERASE          NO, CLEAR WORKING STORAGE                 F0D33690
       STZ     ERRFE          RESET POSSIBLE HANGING ERROR FLAG         F0D33700
       STL     VFDMD          SET VFD MODE FLAG FOR SCAN                F0D33710
       AXT     36,4           SET UNUSED BIT COUNT TO FULL WORD         F0D33720
       SXA     VFDRB,4                                                  F0D33730
 OPV01 TSX     VFDCV,4       *ASSEMBLE NEXT FIELD                       F0D33740
       CLA     VFDFB          LOAD FIELD LENGTH                         F0D33750
       STA     OPV02          INITIALIZE SHIFT                          F0D33760
       SUB     VFDRB          COMPUTE COUNT OF REMAINING BITS           F0D33770
       STA     VFDRB                                                    F0D33780
       CAL     ERASE          LOAD PARTIAL WORD                         F0D33790
       LDQ     VFDFL+1        LOAD NEW FIELD                            F0D33800
 OPV02 LGL     **             PACK IT IN                                F0D33810
       SLW     ERASE          SAVE NEW PARTIAL WORD                     F0D33820
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D33830
       TRA     OPV01          NO                                        F0D33840
       STZ     VFDMD          YES, RESET VFD FLAG                       F0D33850
       NZT     ERRFE          IS WORD IN ERROR                          F0D33860
       ZET     RBITS          NO, IS WORD RELOCATABLE                   F0D33870
       TRA     FIELD        **YES                                       F0D33880
       ZET     VFDRB          NO, IS WORD EXACTLY 36 BITS               F0D33890
       TRA     FIELD        **NO                                        F0D33900
       LDI     ERASE          YES, LOAD OCTAL OPCODE                    F0D33910
       SIR     100000         APPEND MACHINE OPERATION FLAG             F0D33920
       STI     LITRL          SAVE FOR PASS TWO                         F0D33930
       TSX     EOPTB,4       *ENTER INTO OP TABLE                       F0D33940
       TRA     READ1                                                    F0D33950
       REM                                                              F0D33960
 ORDOP CAL     OPBIN          LOAD OPCODE                               F0D33970
       SLW     LITRL          SAVE FOR PASS TWO                         F0D33980
       AXT     5$ORDOP,4      SET PASS TWO TRANSFER ADDRESS             F0D33990
       SXD     OPBIN,4                                                  F0D34000
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D34010
       CLA     Q2             ORDER TAKES TWO WORDS                     F0D34020
       TSX     BPCTR,4       *BUMP LOCATION COUNTER                     F0D34030
       TRA     READ1                                                    F0D34040
       REM                                                              F0D34050
 ORGOP ZSD     ORG02+3        SET ORG SWITCH                            F0D34060
       CLA     CDCTR          LOAD CARD STORAGE COUNTER                 F0D34070
       CAS     PRGBK          IS IT GREATER THAN GREATEST TO DATE       F0D34080
       STO     PRGBK          YES, RESET PROGRAM BREAK                  F0D34090
       NOP                                                              F0D34100
 ORG01 TSX     SCANF,4       *EVALUATE NEW ORIGIN                       F0D34110
       TXI     AFLAG,,0       NULL ORIGIN                               F0D34120
       SLT     EXPRR          WAS VARIABLE FIELD IN ERROR               F0D34130
       ZET     VARUC          NO, IS VARIABLE FIELD IN COMMON           F0D34140
       TRA     PHASE        **YES                                       F0D34150
       NZT     ABSFLG         IS ASSEMBLY ABSOLUTE                      F0D34160
       ORA     D1             NO, SET RELOCATION BIT                    F0D34170
 ORG02 ZET     DUPMD          IS CARD IN RANGE OF DUP                   F0D34180
       TRA     PHASE        **YES                                       F0D34190
       STA     LOCTR          NO, UPDATE PROGRAM COUNTER                F0D34200
       TXL     *+2,4,**       IS CARD LOC                               F0D34210
       STA     CDCTR          NO, UPDATE CARD ORIGIN COUNTER            F0D34220
       SLW     ADDRS          DEFINE SYMBOL                             F0D34230
       SLW     LITRL          SAVE FOR PASS TWO                         F0D34240
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D34250
       SLT     FLDND          WAS END OF VARIABLE FIELD SENSED          F0D34260
       TRA     FIELD        **NO                                        F0D34270
       TRA     READ1          YES                                       F0D34280
       REM                                                              F0D34290
 PRTOP TSX    (PRNT),4       *PRINT CC 13 - 72 ON LINE                  F0D34300
       PZE     BCDBF+2,,10                                              F0D34310
       TSX     SPACP,2       *SPACE PAGE                                F0D34320
       TSX     UPDLS,4       *LIST CARD                                 F0D34330
       TRA     SOURC                                                    F0D34340
       REM                                                              F0D34350
 REWOP CAL     *+4            PREPARE TO REWIND                         F0D34360
       TSX     UPTOP,4       *REWIND                                    F0D34370
       TSX     UPDSC,4       *LOGICALLY DISCONNECT THIS TAPE            F0D34380
       TRA     SOURC                                                    F0D34390
       PZE     REWND,,(SKDP)                                            F0D34400
       REM                                                              F0D34410
 SKFOP CAL     *+3            PREPARE TO SKIP FILE                      F0D34420
       TSX     UPTIP,4       *SKIP FILE                                 F0D34430
       TRA     SKF01          INITIALIZE BUFFERS AND PROCESS NEXT      $F0D34440
       REM                    UPDATE CARD.                             $F0D34441
       PZE     D1,,(SKDP)                                               F0D34450
       REM                                                              F0D34460
 SSTOP TRA     FRPA2                                                   $F0D34470
       TRA     READ1                                                    F0D34480
       REM                                                              F0D34490
 SYNOP TSX     SCANP,4       *EVALUATE SYN DEFINITION                   F0D34500
       TXI     AFLAG,,0       NULL DEFINITION                           F0D34510
       OAI                    COMBINE BITS WITH DEFINITION              F0D34520
       STI     ADDRS          DEFINE SYMBOL                             F0D34530
       STI     LITRL          SAVE FOR PASS 2                           F0D34540
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D34550
       SLT     FLDND          WAS VARIABLE FIELD NULL                   F0D34560
       TRA     FIELD        **YES                                       F0D34570
       TRA     READ1          NO                                        F0D34580
       REM                                                              F0D34590
 TAPOP CAL     Q128           SET DEFINITION TO 0200                    F0D34600
       SLW     ADDRS                                                    F0D34610
       TSX     C0190,4       *LOAD CHANNEL CHARACTER                    F0D34620
       LAS     BLANK          IS FIELD NULL                             F0D34630
       TRA     FIELD        **NO, ILLEGAL CHARACTER                     F0D34640
       TRA     TAP01          YES                                       F0D34650
       LAS     QH             NO, IS IT GREATER THAN H                  F0D34660
       TRA     FIELD        **YES, TOO MANY CHANNELS                    F0D34670
       NOP                    NO                                        F0D34680
       LAS     PLUSS          IS IT GREATER THAN +                      F0D34690
       TRA     *+3            YES                                       F0D34700
       TRA     FIELD        **NO, ILLEGAL CHARACTER                     F0D34710
       TRA     TAP01+3        NO CHANNEL DESIGNATED                     F0D34720
       ANA     Q15            MASK OUT ZONE BITS (CHANNEL NUMBER)       F0D34730
       ALS     9              POSITION CHANNEL NUMBER                   F0D34740
       ORS     ADDRS          INSERT IN DEFINITION                      F0D34750
       TRA     TAP01+2                                                  F0D34760
       REM     REENTRY FOR NULL FIELD                                   F0D34770
 TAP01 STZ     CHRCTR         DELETE BLANK                              F0D34780
       TSX     AFLAG,4       *FLAG OMITTED FIELD                        F0D34790
       REM     REENTRY TO EVALUATE NEXT DIGIT IN TAPE NUMBER            F0D34800
       TSX     C0190,4       *GET NEXT DIGIT                            F0D34810
       REM     REENTRY FOR NO CHANNEL DESIGNATED                        F0D34820
       LAS     Q10            IS IT GREATER THAN 10                     F0D34830
       TRA     TAP02          YES, THIS MAY BE MODE CHARACTER           F0D34840
       TSX     MACERR,4     **CHARACTER IS BCD 10                       F0D34850
       LDQ     ADDRS          PICK UP CHANNEL AND PARTIAL TAPE ADDRESS  F0D34860
       VLM     Q10,,6         MULTIPLY CURRENT DIGIT BY 10              F0D34870
       VLM     Q1,,8          AND CHANNEL BY 1                          F0D34880
       LLS     14             REPOSITION CONVERTED PARTIAL ADDRESS      F0D34890
       ADD     CHRCTR         ADD IN THIS DIGIT OF TAPE ADDRESS         F0D34900
       SLW     ADDRS          SAVE CHANNEL AND PARTIAL TAPE ADDRESS     F0D34910
       ANA     BLANK          WAS TAPE NUMBER VALID                     F0D34920
       TZE     TAP01+2        YES, GET NEXT DIGIT                       F0D34930
       TRA     FIELD        **NO                                        F0D34940
       REM     REENTRY FOR CHARACTER FOLLOWING TAPE ADDRESS             F0D34950
 TAP02 AXT     5,4            LOAD LENGTH OF TAPE CHARACTER LIST        F0D34960
       LAS     TAPCH+5,4      IS CHARACTER THIS TAPE CHARACTER          F0D34970
       TRA     FIELD        **NO                                        F0D34980
       TRA     TAP03+5,4      YES                                       F0D34990
       TIX     *-3,4,1        IS LIST EXHAUSTED                         F0D35000
       TRA     FIELD        **YES                                       F0D35010
       REM                                                              F0D35020
 TAP03 TRA     TAP04          CHARACTER IS BLANK                        F0D35030
       TRA     *+5            CHARACTER IS L                           $F0D35040
       TRA     *+2            CHARACTER IS H                           $F0D35050
       TRA     *+3            CHARACTER IS D                            F0D35060
       CAL     PLUSS          CHARACTER IS B                            F0D35070
       ORS     ADDRS          INSERT BINARY/HIGH DENSITY MODE BIT      $F0D35080
       TSX     C0190,4       *GET NEXT CHARACTER                        F0D35090
       ERA     BLANK          IS IT BLANK                               F0D35100
       TNZ     FIELD        **NO                                        F0D35110
 TAP04 CAL     ADDRS          SAVE DEFINITION FOR PASS TWO              F0D35120
       SLW     LITRL                                                    F0D35130
       TSX     ESYML,4       *DEFINE TAPE ADDRESS                       F0D35140
       TRA     READ1                                                    F0D35150
       REM                                                              F0D35160
 TCDOP NZT     ABSFLG         IS ASSEMBLY ABSOLUTE                      F0D35170
       TRA     OPERR        **NO, OPERATION IS UNDEFINED                F0D35180
       TRA     READ1                                                    F0D35190
       REM                                                              F0D35200
 ULDOP CAL     *+4            PREPARE TO UNLOAD                         F0D35210
       TSX     UPTOP,4       *UNLOAD                                    F0D35220
       TSX     UPDSC,4       *LOGICALLY DISCONNECT THIS TAPE            F0D35230
       TRA     SOURC                                                    F0D35240
       PZE     UNLOD,,(SKDP)                                            F0D35250
       REM                                                              F0D35260
 UMCOP NZT     OPTFLG         IS AN UPDATE OUTPUT TAPE REQUESTED        F0D35270
       TRA     OPERR        **NO, OPERATION IS UNDEFINED                F0D35280
       CAL     MCREF+1        YES, FLIP SWITCHES TO OUTPUT              F0D35290
       LDQ     MCRDF+1        MACRO EXPANSIONS OR MACRO DEFINITIONS AND F0D35300
       STQ     MCREF+1        CALLS ON UPDATE OUTPUT TAPE               F0D35310
       SLW     MCRDF+1                                                  F0D35320
       TSX     UPDLS,4       *LIST CARD                                 F0D35330
       TRA     SOURC                                                    F0D35340
       REM                                                              F0D35350
 UPDOP TSX     WROPT,4       *WRITE LAST PARTIAL UPDATE OUTPUT BLOCK    F0D35360
       LXD     VRFLD,2        RELOAD WORD COUNT                         F0D35370
       LXA     VRFLD,1        RELOAD CHARACTER COUNT                    F0D35380
       TSX     UPSCN,4       *ASSEMBLE UPDATE INPUT TAPE NUMBER         F0D35390
       LAS     IPTFLG         IS THIS NEW UPDATE INPUT TAPE             F0D35400
       TRA     *+2            YES                                       F0D35410
       TRA     UPD01          NO                                        F0D35420
       STA     IPTFLG         RESET UPDATE INPUT TAPE FLAG              F0D35430
       LXD     IPRECT,4       LOAD OLD UPDATE INPUT TAPE NUMBER         F0D35440
       TXL     *+3,4,0        DOES OLD UPDATE INPUT TAPE EXIST          F0D35450
       TSX     UPDCL,4       *YES, BACKSPACE OVER LOOKAHEAD CARDS       F0D35460
       SXA     IPRECT,0       RESET UPDATE INPUT RECORD COUNT           F0D35470
       LXA     IPTFLG,4       RELOAD NEW UPDATE INPUT TAPE NUMBER       F0D35480
       SXD     IPRECT,4       SET NEW UPDATE INPUT TAPE NUMBER          F0D35490
       SXD     UPDTAP,4                                                 F0D35500
       TXI     *+1,4,(SCHU)   COMPUTE (SCHU)+MIPTAP                     F0D35510
       SXA     RDUP0,4        SET NEW END FILE TEST                     F0D35520
       TXL     UPD01,4,(SCHU) IS THERE A NEW UPDATE INPUT TAPE          F0D35530
       SXA     *+1,4          YES, INITIALIZE LOCATION OF (SCHU)+MIPTAP F0D35540
 UPD00 STL     **             RESET HANGING END FILE                    F0D35550
       SXA     *+2,1          SAVE CHARACTER COUNT                      F0D35560
       TSX     RDUPD,4       *START LOOKAHEAD BUFFERING                 F0D35570
       AXT     **,1           RELOAD CHARACTER COUNT                    F0D35580
       AXT     -1,4           SET SWITCH FOR EMPTY UPDATE BUFFER        F0D35590
       SXD     UPDSW,4                                                  F0D35600
 UPD01 TSX     UPSCN,4       *ASSEMBLE UPDATE OUTPUT TAPE NUMBER        F0D35610
       LAS     IPTFLG         IS OUTPUT TAPE INPUT TAPE                 F0D35620
       TRA     *+2            NO                                        F0D35630
       TNZ     FIELD         IF BLANK OR ZERO DISCONTINUE UPDATING     $F0D35640
       LAS     OPTFLG         IS THIS NEW UPDATE OUTPUT TAPE            F0D35650
       TRA     *+2            YES                                       F0D35660
       TRA     UPD02          NO                                        F0D35670
       STA     OPTFLG         RESET UPDATE OUTPUT TAPE FLAG             F0D35680
       LXD     OPRECT,4       LOAD OLD UPDATE OUTPUT TAPE NUMBER        F0D35690
       TXL     *+5,4,0        DOES OLD UPDATE OUTPUT TAPE EXIST         F0D35700
       TSX    (TAPE),4       *YES, CLOSE OUT OLD UPDATE OUTPUT TAPE     F0D35710
       PZE     Q0,,(SKDP)                                               F0D35720
       PZE     OPDTAP,,-1                                               F0D35730
       SXA     OPRECT,0       RESET UPDATE OUTPUT RECORD COUNT          F0D35740
       LXA     OPTFLG,4       RELOAD NEW UPDATE OUTPUT TAPE NUMBER      F0D35750
       SXD     OPRECT,4       SET NEW UPDATE OUTPUT TAPE NUMBER         F0D35760
       SXD     OPDTAP,4                                                 F0D35770
 UPD02 TSX     SCANF,4       *ASSEMBLE BLOCKING FACTOR              (25)F0D35780
       TRA     UPD05-1        NO 3RD FIELD. TURN ON BLOCKING        (25)F0D35790
       STL     PAKFLG         INITIALIZE BLOCKING OFF.              (25)F0D35800
       TZE     UPD05-2        IS VALUE ZERO                         (25)F0D35810
       SUB     Q10            NO. IS TI TEN                         (25)F0D35820
       TNZ     UPD05                                                (25)F0D35830
       AXT     -1-10*UPDRCL+UPDRCL,4 YES. SET BLOCKING FACTOR TO 10.(25)F0D35840
       SXD     UPBLK,4                                              (25)F0D35850
       SLT     EXPRR          IS EXPRESSION UNDEFINED               (25)F0D35860
       ZSA     PAKFLG         NO. 0 OR 10. TURN ON BLOCKING.        (25)F0D35870
 UPD05 TSX     SSCAN,4       *ASSEMBLE 4TH SUBFIELD                 (25)F0D35880
       TRA     UPD03        **THERE ISNT ANY                        (25)F0D35890
       CAL     SYMBL                                                (25)F0D35900
       TRA     UPSSC                                                (25)F0D35910
       REM                                                              F0D35920
 UPTIP LDQ     IPTFLG         LOAD INPUT TAPE NUMBER                    F0D35930
       TRA     UPTOP+1                                                  F0D35940
       REM                                                              F0D35950
 UPTOP LDQ     OPTFLG         LOAD OUTPUT TAPE NUMBER                   F0D35960
       SXA     UPTPX,4        SAVE CALLING LINKAGE                      F0D35970
       STQ     BERAS          HOLD UPDATE TAPE NUMBER                   F0D35980
       SLW     UPT02          SET OPERATION PARAMETER                   F0D35990
       TSX     UPSCN,4       *EVALUATE LOGICAL TAPE NUMBER              F0D36000
       TNZ     UPT01          IS A LOGICAL TAPE NUMBER SPECIFIED        F0D36010
       CAL     BERAS          NO, RELOAD UPDATE TAPE NUMBER             F0D36020
       TZE     OPERR        **IS AN UPDATE TAPE NUMBER SPECIFIED        F0D36030
       REM     REENTRY FOR LOGICAL TAPE NUMBER SPECIFIED                F0D36040
 UPT01 ALS     18             POSITION LOGICAL TAPE NUMBER              F0D36050
       STD     UPT02+1        INITIALIZE TAPE NUMBER PARAMETER          F0D36060
       CAS     OPDTAP         IS UPDATE OUTPUT TAPE SELECTED            F0D36070
       TRA     *+2            NO                                        F0D36080
       TSX     WROPT,4        YES, WRITE LAST UPDATE OUTPUT TAPE BLOCK  F0D36090
       TSX    (TAPE),4       *PERFORM TAPE OPERATION                    F0D36100
 UPT02 ***     **,,**                                                   F0D36110
       PZE     ,,**                                                     F0D36120
       PZE     TAPERR                                                   F0D36130
       TSX     UPDLS,4       *LIST CARD                                 F0D36140
 UPTPX AXT     **,4           RELOAD CALLING LINKAGE                    F0D36150
       TRA     1,4                                                      F0D36160
       REM                                                              F0D36170
 UPSCN SXA     UPSCX,4        SAVE CALLING LINKAGE                      F0D36180
       TSX     SCANP,4       *ASSEMBLE UPDATE TAPE NUMBER               F0D36190
       TRA     PATCHA        BLANK UPDATE TAPE NUMBER                  $F0D36200
       RFT     3              IS TAPE NUMBER ABSOLUTE                   F0D36210
       TRA     FIELD        **NO                                        F0D36220
       TZE     UPSCX          IS UPDATE TAPE DELETED                    F0D36230
       PAX     ,4             NO. TEST FOR LEGAL ASSIGNMENT         (25)F0D36240
       TXH     FIELD,4,T    **IS TAPE ASSIGNED TO SYSTEM            (25)F0D36250
       TXL     FIELD,4,7    **YES  IS IT RESERVED TO MONITOR        (25)F0D36260
 UPSCX AXT     **,4           NO. RETURN                            (25)F0D36270
       TRA     1,4                                                  (25)F0D36280
       REM                                                          (25)F0D36290
 UPSSC SLT     EXPRR          DOES 4TH FIELD CONTAIN ILLEGAL CHAR   (25)F0D36300
       TRA     *+2            NO                                    (25)F0D36310
       TRA     FIELD        **YES                                   (25)F0D36320
       ZET     DELFLG         IS ASSEMBLY ALREADY DELETED           (25)F0D36330
       TRA     UPD03        **YES                                   (25)F0D36340
       TZE     UPD03          NO. IS ASSEMBLY DELETED NOW           (25)F0D36350
       STL     DELFLG         YES. SET ASSEMBLY DELETED FLAG        (25)F0D36360
       TSX     (PRNT),4       PRINT UPDATE ONLY MSG ONLINE          (25)F0D36370
       PZE     DELMS,,5                                             (25)F0D36380
       TRA     UPD03        **CHECK FOR TOO MANY FIELDS             (25)F0D36390
       ...                    PATCH SPACE                           (25)F0D36400
       REM                                                              F0D36410
 UPDLS SXA     UPDLX,4        SAVE CALLING LINKAGE                      F0D36420
       TRA     UPFIX         WHICH BUFFER DO WE PRINT FROM          (25)F0D36430
       PZE                   (NOT USED)                             (25)F0D36440
       TSX     FPRINT,4      *PRINT BLANK LINE                          F0D36450
       PZE                                                              F0D36460
       CLA     INP06          UNBUMP SERIAL FOR UPDATE PSEUDOOP     (25)F0D36470
       SUB     INP07          NOT APPEARING ON UPDATE OUTPUT TAPE   (25)F0D36480
       STO     INP06                                                (25)F0D36490
       STL     COMCD          SET FLAG TO UNBLOCK MONITOR CONTROL CARDS F0D36500
 UPDLX AXT     **,4           RELOAD CALLING LINKAGE                    F0D36510
       TRA     1,4                                                      F0D36520
       REM                                                              F0D36530
       REM     LOGICALLY DISCONNECT FINISHED UPDATE TAPE                F0D36540
 UPDSC CAL     UPT02+1        RELOAD LOGICAL TAPE NUMBER                F0D36550
       CAS     OPDTAP         IS THIS UPDATE OUTPUT TAPE                F0D36560
       TRA     *+2            NO                                        F0D36570
       STZ     OPTFLG         YES, DISCONNECT UPDATE OUTPUT TAPE        F0D36580
       CAS     UPDTAP         IS THIS UPDATE INPUT TAPE                 F0D36590
       TRA     *+2            NO                                        F0D36600
       STZ     IPTFLG         YES, DISCONNECT UPDATE INPUT TAPE         F0D36610
       TRA     1,4                                                      F0D36620
       REM                                                              F0D36630
 VFDOP STL     VFDMD          SET VFD FLAG                              F0D36640
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D36650
       STZ     VFDTB          CLEAR TOTAL BIT COUNT                     F0D36660
 VFETC STZ     VFDFB          CLEAR FIELD WIDTH                         F0D36670
       TSX     C0190,4       *GET NEXT CHARACTER                        F0D36680
       LAS     COMMA          IS CHARACTER COMMA                        F0D36690
       TRA     VFD04          NO                                        F0D36700
       TRA     VFETC+1        YES, NULL FIELD                           F0D36710
       LAS     BLANK          IS CHARACTER BLANK                        F0D36720
       TRA     VFD04          NO                                        F0D36730
       TRA     VFD06          YES, END OF VARIABLE FIELD                F0D36740
       LAS     QO             IS CHARACTER O                            F0D36750
       TRA     VFD04          NO                                        F0D36760
       TRA     VFD02          YES, OCTAL FIELD                          F0D36770
       LAS     QH             IS CHARACTER H                            F0D36780
       TRA     VFD04          NO                                        F0D36790
       TRA     VFD02          YES, HOLLERITH FIELD                      F0D36800
       REM     REENTRY TO COMPUTE PARTIAL FIELD WIDTH                   F0D36810
 VFD01 LAS     SLASH          IS CHARACTER /                            F0D36820
       TRA     VFD05          NO                                        F0D36830
       TRA     VFD03          YES, FIELD FOLLOWS                        F0D36840
       LAS     Q10            IS CHARACTER NUMERIC                      F0D36850
       TRA     VFD05          NO                                        F0D36860
       TSX     MACERR,4     **CHARACTER IS BCD 10                       F0D36870
       CLA     VFDFB          YES, OLD PARTIAL FIELD WIDTH              F0D36880
       ALS     2                                                        F0D36890
       ADD     VFDFB          TIMES TEN                                 F0D36900
       ALS     1                                                        F0D36910
       ADD     CHRCTR         PLUS NEXT DIGIT                           F0D36920
       STO     VFDFB          IS NEW PARTIAL FIELD WIDTH                F0D36930
       REM     FIELD WIDTH FOLLOWS                                      F0D36940
 VFD02 TSX     C0190,4       *GET NEXT CHARACTER                        F0D36950
       TRA     VFD01                                                    F0D36960
       REM     FIELD FOLLOWS                                            F0D36970
 VFD03 CLA     VFDFB          LOAD FIELD WIDTH                          F0D36980
       CAS     Q63            IS SUBFIELD TOO LONG                      F0D36990
       CLA     Q63            YES, TRUNCATE IT                          F0D37000
       NOP                                                              F0D37010
       ADD     VFDTB          ADD TO TOTAL BIT COUNT                    F0D37020
       SLW     VFDTB          AND SAVE                                  F0D37030
       REM     LOOK FOR END OF FIELD                                    F0D37040
 VFD04 TSX     C0190,4       *GET NEXT CHARACTER                        F0D37050
 VFD05 LAS     COMMA          IS IT COMMA AT END OF FIELD               F0D37060
       TRA     VFD04          NO                                        F0D37070
       TRA     VFETC          YES, GET NEXT FIELD                       F0D37080
       ERA     BLANK          IS IT BLANK                               F0D37090
       TNZ     VFD04          NO                                        F0D37100
       TRA     VFD06+2        YES, ETC MAY NOT FOLLOW                   F0D37110
       REM     END OF VARIABLE FIELD                                    F0D37120
 VFD06 TSX     PEEKS,4       *IS NEXT CARD AN ETC CARD                  F0D37130
       TRA     VFD07          YES                                       F0D37140
       REM     END OF VFD STATEMENT                                     F0D37150
       LDQ     VFDTB          LOAD TOTAL BIT COUNT                      F0D37160
       PXD     ,0                                                       F0D37170
       DVP     Q36            COMPUTE NUMBER OF WORDS                   F0D37180
       DCT                    DID DIVIDE FAIL                           F0D37190
       TSX     MACERR,4     **YES                                       F0D37200
       TZE     *+2            IS THERE A PARTIAL WORD                   F0D37210
       CLA     Q1             YES, RESERVE SPACE FOR IT                 F0D37220
       STQ     VFDTB          COMBINE FULL WORDS                        F0D37230
       ADD     VFDTB          WITH PARTIAL WORD                         F0D37240
       TNZ     *+2            HAVE ANY BITS BEEN GENERATED              F0D37250
       CLA     Q1             NO, RESERVE WORD OF ZEROES                F0D37260
       TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D37270
       STZ     VFDMD          RESET VFD FLAG                            F0D37280
 VFD07 TRA     READ1                                                    F0D37290
       REM                                                              F0D37300
       REM     ERROR IN PROCESSING PSEUDOOPERATIONS                     F0D37310
 LITRR CAL     Q8             SET ERROR FLAG                            F0D37320
       TRA     PHASE+2                                                  F0D37330
 FIELX STZ     LITRL          DELETE PARTIAL DEFINITION                 F0D37340
 FIELD CAL     Q4             FLAG FIELD ERROR                          F0D37350
       TRA     PHASE+2                                                  F0D37360
 PHASE STZ     LITRL          DELETE DEFINITION IN ERROR                F0D37370
       CAL     Q1             FLAG PHASE ERROR                          F0D37380
       ORS     P1FLG                                                    F0D37390
       TRA     READ1                                                    F0D37400
       REM                                                              F0D37410
 OPERR CAL     Q16            SET UNDEFINED OPERATION FLAG              F0D37420
       ORS     P1FLG                                                    F0D37430
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD            F0D37440
       CLA     Q1                                                       F0D37450
       TSX     BPCTR,4       *BUMP PROGRAM COUNTER                      F0D37460
       TRA     READ1                                                    F0D37470
       REM                                                              F0D37480
       REM                                                              F0D37490
 DELMS BCI     5,+         ...UPDATE ONLY...                            F0D37500
 UPDRM BCI     8, NON-BCD CARD(S) ON UPDATE INPUT TAPE FOLLOWING        F0D37510
 XREDN BCI     9,0 EXCESSIVE REDUNDANCY ERRORS. VERIFY INPUT TAPES AND  F0D37520
       BCI     2,PUSH START.                                            F0D37530
 XORDR BCI     9,0 EXCESSIVE CARD ORDER ERRORS. VERIFY INPUT TAPES AND  F0D37540
       BCI     2,PUSH START.                                            F0D37550
 NOCNT BCI     5,  CARD-COUNT ESTIMATE MISSING.                         F0D37560
 CHANG BCI     5,0 CHANGE TAPE AND PUSH START.                          F0D37570
       REM                                                              F0D37580
       REM     SORT TABLES                                              F0D37590
 SRTBT DEC     -0,1B1,1B2,1B3,1B4,1B5,1B6,1B7,1B8,1B9,1B10,1B11,1B12    F0D37600
       DEC     1B13,1B14,1B15,1B16,1B17,1B18,1B19,1B20,1B21,1B22,1B23   F0D37610
       OCT     4000,2000,1000,400,200,100,40,20,10,4,2,1                F0D37620
       REM                                                              F0D37630
 SORTB PZE     -SYMTBL        LOCATION (COMPLEMENT) OF BOTTOM OF TABLE  F0D37640
 SORTA PZE     **             LOCATION (COMPLEMENT) OF TOP OF TABLE     F0D37650
       DEC     ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                      F0D37660
       TTL     PASS ONE MACRO PROCESSOR                                 F0D37670
       REM     ROUTINES TO DEFINE MACROS                                F0D37680
       REM                    MACRO, MOP, RMT                           F0D37690
       REM                                                              F0D37700
 MOPSW SLT     EXPRR          IS OPFIELD IN ERROR                       F0D37710
       TTR     **             NO                                        F0D37720
       TRA     INSTR          YES                                       F0D37730
       REM                                                              F0D37740
 MCROP CAL     BCDBF          LOAD LOCATION FIELD                       F0D37750
       TSX     LOCFL,4       *ASSEMBLE MACRO NAME                       F0D37760
       TNZ     MOP00+1        HAS NAME BEEN GIVEN                       F0D37770
       CAL     CHRCTR         NO, IS VARIABLE FIELD BLANK               F0D37780
       ERA     BLANK                                                    F0D37790
       TNZ     MOP00          NO, IMPROPER CARD                         F0D37800
       AXT     MCR01,4        SET VECTOR TO AVOID INITIALIZATION        F0D37810
       SXA     MOPSW+1,4                                                F0D37820
       TSX     SETTP,4       *SET UP MACRO ROUTING                      F0D37830
       PZE     ROUTE,,MOPSW                                             F0D37840
       TSX     MACERR,4     **ALREADY SET UP                            F0D37850
       AXT     -1,4           SET MACRO DEFINITION CARD SWITCH          F0D37860
       SXD     MCRDF,4                                                  F0D37870
       TRA     READ1          GET NEXT CARD WITH MACRO NAME IN OPFIELD  F0D37880
       REM     REENTRY FOR CARD FOLLOWING BLANK MACRO CARD              F0D37890
 MCR01 CAL     BCDBF          LOAD LOCATION FIELD                       F0D37900
       TSX     LOCFL,4       *ASSEMBLE LOCATION SYMBOL                  F0D37910
       SLW     LCARG          SAVE POSSIBLE LOCATION ARGUMENT           F0D37920
       LDQ     OPCOD          LOAD OPCODE                               F0D37930
       TRA     MOP01                                                    F0D37940
       REM                                                              F0D37950
 MOPOP TSX     SSCAN,4       *ASSEMBLE MACRO NAME                       F0D37960
       TXI     MOP00,,0       NO MACRO NAME, IMPROPER CARD              F0D37970
       SLT     EXPRR          WAS MACRO NAME IN ERROR                   F0D37980
       SLT     EXPND          NO, DID NAME END WITH OPERATOR            F0D37990
       STZ     SYMBL          YES, IMPROPER CARD                        F0D38000
       ZET     SYMB2          NO, IS MACRO NAME TOO LONG                F0D38010
 MOP00 STZ     SYMBL          YES, IMPROPER CARD                        F0D38020
       REM     REENTRY FOR MACRO                                        F0D38030
       TSX     SETTP,4       *SET UP MACRO ROUTING                      F0D38040
       PZE     ROUTE,,MOPSW                                             F0D38050
       TSX     MACERR,4     **ALREADY SET UP                            F0D38060
       AXT     -1,4           SET MACRO DEFINITION CARD SWITCH          F0D38070
       SXD     MCRDF,4                                                  F0D38080
       CAL     SYMBL          LOAD RIGHT ADJUSTED SYMBOL NAME           F0D38090
       LDQ     Q0             (NAME WILL BE ZERO FOR IMPROPER CARD)     F0D38100
       LGR     6              LEFT ADJUST                               F0D38110
       TNZ     *-1                                                      F0D38120
       REM     REENTRY FOR CARD FOLLOWING BLANK MACRO CARD              F0D38130
 MOP01 AXT     MOP03,4        SET VECTOR UNTIL FIRST NON-ETC CARD       F0D38140
       SXA     MOPSW+1,4                                                F0D38150
       SXA     MOP02,2        SAVE WORD COUNT                           F0D38160
       SXA     MOP02+1,1      SAVE CHARACTER COUNT                      F0D38170
       CAL     MOPP2          SET PASS TWO TRANSFER                     F0D38180
       SLW     OPBIN          TO PRINT CARD                             F0D38190
       XCL                    RECALL LEFT ADJUSTED MACRO NAME           F0D38200
       SLW     MOPNM          SAVE FOR END TEST                         F0D38210
       TNZ     *+3            IS NAME NULL                              F0D38220
       CAL     UNDFL          YES, LOAD UNDEFINED MACRO FLAG            F0D38230
       TRA     *+4                                                      F0D38240
       TSX     SOPTB,4       *IS MACRO NAME IN OPERATIONS TABLE         F0D38250
       TRA     *+5            NO                                        F0D38260
       CAL     MFLAG          YES, SET MULTIPLE DEFINITION FLAG         F0D38270
       SLW     LITRL          SAVE FOR PASS TWO                         F0D38280
       AXT     5$MCERR,4      SET PASS TWO TRANSFER                     F0D38290
       SXD     OPBIN,4        TO PRINT FLAG AND CARD IN ERROR           F0D38300
       CAL     MOPNM          RELOAD MACRO NAME                         F0D38310
       LDI     MOPTR          LOAD POINTER TO MACRO DEFINITION TABLE    F0D38320
       TZE     *+2            WAS NAME NULL                             F0D38330
       TSX     EOPTT,4       *NO, ENTER IN COMBINED OPERATIONS TABLE    F0D38340
       LXD     MOPTR,1        RELOAD POINTER TO MACRO DEFINITION TABLE  F0D38350
       TXI     *+1,1,1        BUMP POINTER BY LENGTH OF HEADING         F0D38360
       AXT     1,2            SET SWITCH TO STUFF BACKWARD              F0D38370
       CAL     *              LOAD CALLING LINKAGE                      F0D38380
       TRA     STUFY         *INIT SUBROUTINE TO STUFF MACRO DEF TABLE  F0D38390
       ZSA     MPCNT          RESET MACRO ARGUMENT COUNT                F0D38400
       TSX     SARGT,4       *INITIALIZE LOCATION OF ARGUMENT TABLE     F0D38410
 MOP02 AXT     **,2           RELOAD WORD COUNT                         F0D38420
       AXT     **,1           RELOAD CHARACTER COUNT                    F0D38430
       TRA     MOP04                                                    F0D38440
       REM     REENTRY FOR MACRO ETC CARD                               F0D38450
 MOP03 NZT     ETCMD          IS ETC CARD EXPECTED                      F0D38460
       TSX     MACERR,4     **NO                                        F0D38470
       STZ     ETCMD          YES, RESET FLAG                           F0D38480
       TSX     RESTF,4       *RESTORE STUFF CONDITIONS                  F0D38490
       CAL     PSYMB          LOAD PARTIAL ARGUMENT                     F0D38500
       TZE     MOP04          IS THERE A PARTIAL ARGUMENT               F0D38510
       SLW     SYMBL          YES, PRESET PARTIAL ARGUMENT              F0D38520
       STZ     SYMB2          CLEAR HIGH ORDER PORTION                  F0D38530
       TSX     SSCET,4       *ASSEMBLE REST OF ARGUMENT                 F0D38540
       TXI     MOP06,,0       NO MORE ARGUMENT                          F0D38550
       CAL     SYMBL          LOAD ARGUMENT                             F0D38560
       LXA     MPCNT,4        LOAD COUNT OF PARTIAL ARGUMENT            F0D38570
       TRA     MOP05                                                    F0D38580
       REM     REENTRY TO ASSEMBLE NEXT ARGUMENT                        F0D38590
 MOP04 TSX     SSCAN,4       *ASSEMBLE NEXT ARGUMENT                    F0D38600
       TXI     MOP06,,0       NO MORE ARGUMENT                          F0D38610
       CAL     SYMBL          LOAD ARGUMENT                             F0D38620
       TZE     MOP05+1        IS ARGUMENT ZERO                          F0D38630
       LXA     MPCNT,4        NO, BUMP ARGUMENT COUNT                   F0D38640
       TXI     *+1,4,1                                                  F0D38650
       TXH     MOP05+1,4,63   DID ARGUMENT TABLE OVERFLOW               F0D38660
       SXA     MPCNT,4        NO                                        F0D38670
       REM     REENTRY FOR ARGUMENT LIST ETC CARD                       F0D38680
 MOP05 SLW     DARGS,4        INSERT ARGUMENT IN TABLE                  F0D38690
       REM     REENTRY FOR TRUNCATED ARGUMENT LIST                      F0D38700
       SLW     PSYMB          SAVE POSSIBLE PARTIAL ARGUMENT            F0D38710
       LXA     CHRCTR,4       LOAD PUNCTUATION CHARACTER                F0D38720
       TXL     MOP04,4,27                                               F0D38730
       TXL     MOP08,4,28     PUNCTUATION IS )                          F0D38740
       TXL     MOP04,4,42                                               F0D38750
       TXL     MOP07,4,43     PUNCTUATION IS $                          F0D38760
       TXL     MOP04,4,47                                               F0D38770
       TXL     MOP06,4,48     PUNCTUATION IS BLANK                      F0D38780
       TXL     MOP04,4,59                                               F0D38790
       TXL     *+2,4,60       PUNCTUATION IS (                          F0D38800
       TSX     MACERR,4     **CHARACTER IS ILLEGAL                      F0D38810
       REM     PUNCTUATION IS (                                         F0D38820
       CLA     PARNC          BUMP PARENTHESES COUNT                    F0D38830
       ADD     Q1                                                       F0D38840
       STO     PARNC                                                    F0D38850
       TRA     MOP04                                                    F0D38860
       REM     PUNCTUATION IS BLANK                                     F0D38870
 MOP06 ZET     PARNC          ARE PARENTHESES BALANCED                  F0D38880
       TRA     *+3            NO                                        F0D38890
       TXL     MOP07+3,2,-12  YES, IS VARIABLE FIELD EXHAUSTED          F0D38900
       TRA     MOP10          NO                                        F0D38910
       TSX     PEEKS,4       *DOES ETC CARD FOLLOW                      F0D38920
       TRA     GSC32          YES                                       F0D38930
       TRA     MOP10-1      **NO, FLAG ERROR                        (23)F0D38940
       REM     PUNCTUATION IS $                                         F0D38950
 MOP07 TSX     C019A,4       *LOOK AT NEXT CHARACTER                    F0D38960
       ERA     BLANK          IS IT BLANK                               F0D38970
       TNZ     MOP04          NO, $ IS HEADING CHARACTER                F0D38980
       REM     REENTRY FOR VARIABLE FIELD EXHAUSTED                     F0D38990
       TSX     PEEKS,4       *DOES ETC CARD FOLLOW                      F0D39000
       TRA     GSC32          YES                                       F0D39010
       TRA     MOP10          NO                                        F0D39020
       REM     PUNCTUATION IS )                                         F0D39030
 MOP08 CLA     PARNC          BUMP PARENTHESES COUNT                    F0D39040
       SUB     Q1                                                       F0D39050
       STO     PARNC                                                    F0D39060
       TPL     MOP04          ARE THERE TOO MANY RIGHT PARENTHESES      F0D39070
       TSX     MCER1,4       *YES, SET ERROR FLAG                   (23)F0D39080
       REM     NO ETC CARD FOLLOWS                                      F0D39090
 MOP10 AXT     MOP11,4        RESET TRANSFER UNTIL END CARD             F0D39100
       SXA     MOPSW+1,4                                                F0D39110
       LXD     MOPTR,1        LOAD POINTER TO THIS MACRO                F0D39120
       LXA     MPCNT,4        LOAD ARGUMENT COUNT                       F0D39130
       PXD     ,4                                                       F0D39140
       STO     0,1            INSERT ARGUMENT COUNT IN HEADING          F0D39150
       CAL     LCARG          LOAD POSSIBLE LOCATION ARGUMENT           F0D39160
       TZE     GSC32          DOES IT EXIST                             F0D39170
       STZ     LCARG          YES, RESET IT                             F0D39180
       TXI     *+1,4,1        BUMP ARGUMENT COUNT                       F0D39190
       SXA     MPCNT,4                                                  F0D39200
       SLW     DARGS,4        ADD LAST ARGUMENT                         F0D39210
       PXD     ,4                                                       F0D39220
       SSM                    SET FLAG FOR LOCATION TYPE ARGUMENT       F0D39230
       STO     0,1            INSERT REVISED ARGUMENT COUNT IN HEADING  F0D39240
       TRA     GSC32                                                    F0D39250
       REM     REENTRY FOR MACRO INSTRUCTION CARDS                      F0D39260
 MOP11 TSX     RESTF,4       *RESTORE STUFF CONDITIONS                  F0D39270
       ZET     ETCMD          IS AN ETC CARD EXPECTED                   F0D39280
       TRA     MSC10          YES                                       F0D39290
       CAL     OPCOD          NO, LOAD OPCODE                           F0D39300
       ERA     ENDMM          IS OPCODE END                             F0D39310
       TNZ     MSC01          NO                                        F0D39320
       REM     OPCODE IS END                                            F0D39330
       CAL     BCDBF          LOAD LOCATION FIELD                       F0D39340
       TSX     LOCFL,4       *ASSEMBLE LOCATION SYMBOL                  F0D39350
       TNZ     MOP12          IS THERE A SYMBOL                         F0D39360
       LDQ     RESIDU         NO, SAVE BEGINNING OF VARIABLE FIELD      F0D39370
       STQ     MOPMQ          WHILE FINDING MACRO NAME                  F0D39380
       CAL     CHRCTR                                                   F0D39390
       SLW     MOPCH                                                    F0D39400
       LXD     VRFLD,2        LOAD WORD COUNT                           F0D39410
       LXA     VRFLD,1        LOAD CHARACTER COUNT                      F0D39420
       TSX     SSCAN,4       *ASSEMBLE VARIABLE FIELD SYMBOL            F0D39430
       TXI     RMT02,,0       NO VARIABLE FIELD SYMBOL                  F0D39440
       LDQ     MOPMQ          RESTORE BEGINNING OF VARIABLE FIELD       F0D39450
       STQ     RESIDU                                                   F0D39460
       CAL     MOPCH                                                    F0D39470
       SLW     CHRCTR                                                   F0D39480
       CAL     SYMBL          LOAD SYMBOL                               F0D39490
 MOP12 LDQ     Q0             LEFT ADJUST                               F0D39500
       LGR     6                                                        F0D39510
       TNZ     *-1                                                      F0D39520
       XCL                                                              F0D39530
       ERA     MOPNM          IS THIS END OF MACRO                      F0D39540
       TZE     RMT02          YES                                       F0D39550
       TRA     MSC01          NO                                        F0D39560
       REM                                                              F0D39570
 RMTOP AXT     -1,4           SET MACRO DEFINITION CARD SWITCH          F0D39580
       SXD     MCRDF,4        (CALL CARD SWITCH FOR RMT * )             F0D39590
       CAL     CHRCTR         LOAD FIRST CHARACTER                      F0D39600
       ERA     ASTRK          IS IT *                                   F0D39610
       TNZ     RMT00          NO                                        F0D39620
       AXT     5$BES01+4,4    YES, SET PASS TWO TRANSFER ADDRESS       $F0D39630
       REM                    TO LIST LOCATION LEFT ADJUSTED            F0D39640
       SXD     OPBIN,4                                                  F0D39650
       TSX     OTPUT,4       *WRITE RMT * CARD                          F0D39660
       TSX     RMTSR,4       *OUTPUT WAITING SEQUENCES                  F0D39670
       TRA     SOURC                                                    F0D39680
 RMT00 TSX     SETTP,4       *SET UP REMOTE ROUTING                     F0D39690
       PZE     ROUTE,,MOPSW                                             F0D39700
       TSX     MACERR,4     **ALREADY SET UP                            F0D39710
       AXT     RMT01,4        SET TRANSFER UNTIL NEXT RMT CARD          F0D39720
       SXA     MOPSW+1,4                                                F0D39730
       CAL     MOPTR          LOAD POINTER TO MACRO DEFINITION TABLE    F0D39740
       LXD     RMTEN,1        LOAD POINTER TO LAST REMOTE               F0D39750
       STD     0,1            INSERT POINTER IN HEADING DECREMENT       F0D39760
       STD     RMTEN          RESET POINTER                             F0D39770
       PDX     ,1                                                       F0D39780
       CAL     BHEAD          INSERT CURRENT HEADING CHARACTER          F0D39790
       ANA     Q63            WITH EXTRANEOUS CHARACTERS DELETED        F0D39800
       SLW     0,1            AS HEADING ADDRESS                        F0D39810
       TXI     *+1,1,1        BUMP POINTER BY LENGTH OF HEADING         F0D39820
       ZSA     MPCNT          RESET REMOTE ARGUMENT COUNT               F0D39830
       AXT     1,2            SET SWITCH TO STUFF BACKWARD              F0D39840
       CAL     *              LOAD CALLING LINKAGE                      F0D39850
       TRA     STUFY         *INITIALIZE SUBROUTINE TO STUFF MACRO DEF  F0D39860
       TSX     SARGT,4       *INITIALIZE LOCATION OF ARGUMENT TABLE     F0D39870
       TRA     GSC32                                                    F0D39880
       REM                                                              F0D39890
       REM     REENTRY FOR REMOTE INSTRUCTION CARD                      F0D39900
 RMT01 TSX     RESTF,4       *RESTORE STUFF CONDITIONS                  F0D39910
       ZET     ETCMD          IS AN ETC CARD EXPECTED                   F0D39920
       TRA     MSC10          YES                                       F0D39930
       CAL     OPCOD          NO, LOAD OPCODE                           F0D39940
       ERA     RMTMM          IS OPCODE RMT                             F0D39950
       TNZ     MSC01          NO                                        F0D39960
       REM     OPCODE IS RMT, END OF REMOTE SEQUENCE                    F0D39970
       REM     REENTRY AFTER END OF MACRO DEFINITION                    F0D39980
       REM     CLOSE OUT MACRO DEFINITION TABLE                         F0D39990
 RMT02 TSX     SFZRO,4       *STUFF TERMINATING ZEROS                   F0D40000
       TRA     RMT03          TO CHECK FOR UNNESTED MACRO              $F0D40010
       SXD     MOPTR,2        NO, SET POINTER TO NEXT HEADING           F0D40020
       SXD     MAC07,2        RESET MACRO EXPANSION TABLE OVERFLOW TEST F0D40030
       TSX     OTPUT,4       *WRITE RMT/END CARD                        F0D40040
       ZSD     SSCN0          RESET MACRO DEFINITION SCAN SWITCH        F0D40050
       ZSD     MCRDF          RESET MACRO DEFINITION CARD SWITCH        F0D40060
       TSX     RESTP,4       *RESET ASSEMBLER ROUTING                   F0D40070
       PZE     ROUTE,,MOPSW                                             F0D40080
       TRA     SOURC                                                    F0D40090
       REM                                                              F0D40100
       REM     ANALYSE CARD IN RANGE OF MACRO OR RMT                    F0D40110
       REM     DEFINE CARD LOCATION FIELD                               F0D40120
 MSC01 CAL     BCDBF          LOAD LOCATION FIELD                       F0D40130
       LAS     BLANKS         DOES LOCATION FIELD EXIST                 F0D40140
       TRA     *+2            YES                                       F0D40150
       TRA     MSC02          NO                                        F0D40160
       TSX     LOCFL,4       *ASSEMBLE LOCATION SYMBOL (OR EXPLICIT 0)  F0D40170
       TSX     SMART,4       *LOOK UP LOCATION IN ARGUMENT TABLE        F0D40180
       TSX     SFARN,4       *STUFF ARGUMENT NUMBER                     F0D40190
       TSX     SFARS,4       *STUFF LOCATION SYMBOL                     F0D40200
       REM     DEFINE CARD OPCODE                                       F0D40210
 MSC02 AXC     Q1,1           PREPARE TO STUFF OP TAG                   F0D40220
       TSX     SFFLG,4       *STUFF FLAG                                F0D40230
       LDQ     RESIDU         SAVE BEGINNING OF VARIABLE FIELD          F0D40240
       STQ     MOPMQ          DURING OPCODE ANALYSIS                    F0D40250
       LDQ     CHRCTR                                                   F0D40260
       STQ     MOPCH                                                    F0D40270
       LDQ     BCDBF+1        LOAD OPCODE                               F0D40280
       LGL     6              INITIALIZE VARIABLE FIELD SCAN            F0D40290
       STQ     RESIDU         TO SCAN OPCODE                            F0D40300
       ZAC                    INITIALIZE FIRST CHARACTER IN OPCODE      F0D40310
       LGL     6                                                        F0D40320
       SLW     CHRCTR                                                   F0D40330
       AXT     -1,2           SET COUNT TO WORD 2                       F0D40340
       AXT     6,1            SET COUNT TO CHARACTER 2                  F0D40350
       REM     REENTRY AFTER ' OR *                                     F0D40360
 MSC03 TSX     SSCAN,4       *ASSEMBLE (PARTIAL) OP FIELD               F0D40370
       TXI     MSC05,,0       NULL OP FIELD                             F0D40380
       CAL     SYMBL          LOAD PARTIAL OP CODE                      F0D40390
       TZE     MSC04+2        IS THERE AN OP CODE                       F0D40400
       SXA     MSC04,2        YES, SAVE WORD COUNT                      F0D40410
       SXA     MSC04+1,1      SAVE CHARACTER COUNT                      F0D40420
       TSX     SMART,4       *LOOK UP OP CODE IN ARGUMENT TABLE         F0D40430
       TSX     SFARN,4       *STUFF ARGUMENT NUMBER                     F0D40440
       TSX     SFARS,4       *STUFF OPCODE                              F0D40450
 MSC04 AXT     **,2           RELOAD WORD COUNT                         F0D40460
       AXT     **,1           RELOAD CHARACTER COUNT                    F0D40470
       CAL     CHRCTR         RELOAD PUNCTUATION                        F0D40480
       LAS     PRIME          IS PUNCTUATION '                          F0D40490
       TRA     *+2            NO                                        F0D40500
       TRA     MSC03          YES, GET NEXT SUBFIELD                    F0D40510
       ERA     ASTRK          IS PUNCTUATION *                          F0D40520
       TNZ     MSC07          NO, CHECK FURTHER                     (24)F0D40530
 MSC06 CAL     CHRCTR         YES, SET SUBFIELD TO PUNCTUATION      (24)F0D40540
       SLW     SYMBL                                                    F0D40550
       TSX     SFARS,4       *STUFF *                                   F0D40560
       TRA     MSC03          GET NEXT SUBFIELD                         F0D40570
       REM     BEGINNING OF VARIABLE FIELD SENSED                       F0D40580
 MSC05 AXC     Q62,1          PREPARE TO STUFF FIELD TAG                F0D40590
       TSX     SFFLG,4       *STUFF FLAG                                F0D40600
       TRA     MSC09          COMPUTE VARIABLE FIELD POSITION       (24)F0D40610
       SXA     ERASE,1        STORE IT FOR STUFF ROUTINE            (24)F0D40620
       AXC     ERASE,1        STUFF INTO MACRO DEFINITION           (24)F0D40630
       TSX     SFFLG,4                                              (24)F0D40640
       REM                                                              F0D40650
       REM     BEGIN TESTS FOR OPCODES REQUIRING SPECIAL HANDLING       F0D40660
 MSC10 LXD     VRFLD,2        LOAD WORD COUNT                       (24)F0D40670
       LXA     VRFLD,1        LOAD CHARACTER COUNT                  (24)F0D40680
       AXT     -1,4           PRESET FIRST FIELD SWITCH                 F0D40690
       SXD     GSCSA+1,4                                                F0D40700
       STZ     COUNT          RESET FIELD COUNT                         F0D40710
       STZ     SYMBL          RESET FIELD                               F0D40720
       AXT     1,4            PRESET LENGTH OF FIELD TO BE STUFFED  (24)F0D40730
       SXD     TOTAL,4                                              (24)F0D40740
       CAL     OPCOD          LOAD OPCODE                               F0D40750
       REM     COMPARE FOR OP CODE OF BCD, BCI, TTL, OR REM         (23)F0D40760
       AXT     4,4            LOAD LENGTH OF TABLE                  (23)F0D40770
       LAS     BCDMM+4,4      COMPARE SUCCESSIVE ENTRIES            (23)F0D40780
       TRA     *+2            AND IF MATCH IS FOUND, GO INITIALIZE  (23)F0D40790
       TRA     MSC11          FOR FULL CARD SCAN                    (23)F0D40800
       TIX     *-3,4,1        IS LIST EXHAUSTED                     (23)F0D40810
       TRA     MSC1A          YES, GO CHECK FOR LITERAL             (23)F0D40820
       REM     PATCH TO MACRO INSTRUCTION ARGUMENT SCAN             (23)F0D40830
 MCERP TSX     MCER1,4        SET FLAG AND PASS TWO ADDRESS         (23)F0D40840
       TRA     SSN04+4                                              (23)F0D40850
       REM     ERROR ROUTINE FOR UNDEFINED MACRO NAME               (23)F0D40860
 MCER3 CAL     UNDFL          LOAD UNDEFINED FLAG                   (23)F0D40870
       TSX     MCERR,4       *SET FOR PASS TWO                      (23)F0D40880
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD        (23)F0D40890
       TRA     READ1                                                (23)F0D40900
       REM     PATCH TO IFF PSEUDO-OPERATION PROCESSOR              (23)F0D40910
 IFF06 TXH     IFF02,2,0      DO ARGUMENT LENGTHS DIFFER..          (23)F0D40920
       LXA     MARGS,4        NO, LOAD POINTER TO FIRST ARGUMENT    (23)F0D40930
       LXA     MARGS-1,2      LOAD POINTER TO SECOND ARGUMENT       (23)F0D40940
       SXD     IFF08,2        AND INITIALIZE TEST FOR END           (23)F0D40950
 IFF07 CAL     0,4            COMPARE CORRESPONDING WORDS           (23)F0D40960
       ERA     0,2            OF ARGUMENT STRINGS                   (23)F0D40970
       TNZ     IFF02          THROUGH IF DIFFERENT                  (23)F0D40980
       TXI     IFF08,4,-1     BUMP FIRST ARGUMENT POINTER           (23)F0D40990
 IFF08 TXL     IFF02+1,4,**   HAVE WE COMPARED ALL OF IT            (23)F0D41000
       TXI     IFF07,2,-1     NO, KEEP CHECKING                     (23)F0D41010
       REM     TEST FOR LITERAL                                        $F0D41020
 MSC1A CAL     CHRCTR                                                  $F0D41030
       ERA     EQUAL         IF EQUAL TREAT AS                         $F0D41040
       TNZ     MSC20         HOLLERITH FIELD                           $F0D41050
       REM     REENTRY FOR  TTL,REM, BCI, BCD WITH SYMBOLIC COUNT      $F0D41060
 MSC11 SXA     GSAV1,1       SAVE VARIABLE FIELD CHARACTER COUNT       $F0D41070
       TXI     MSC14,1,-1                                              $F0D41080
       REM     PATCH TO MACRO-INSTRUCTION PROCESSOR                 (23)F0D41090
 MACIF TXL     IFF01,4,**     IS THIS IFF PSEUDO OPERATION          (23)F0D41100
       TRA     MAC02          NO, CONTINUE TO ARGUMENT SCAN         (23)F0D41110
       REM     PATCH TO GENERAL SCAN ROUTINE TO PREVENT LOSS OF     (23)F0D41120
       REM     LAST PUNCTUATION CHARACTER OF ALPHANUMERIC FIELD     (23)F0D41130
 GSCBP AXC     MSC22,4        UPDATE RETURN ADDRESS FROM GSCET      (23)F0D41140
       SXA     SMARX,4        SUBROUTINE IN CASE NON-BLANK          (23)F0D41150
       TRA     MSC22+2        PUNCTUATION OCCURS LATER ON CARD      (23)F0D41160
       REM     RE-ENTRY FOR VARIABLE FIELD TO BE SCANNED IN FULL    (23)F0D41161
 MSC14 AXC     12,4          SET LENGTH OF CARD TO SCAN                $F0D41170
       SXD     GSC11+1,4     SET END OF HOLLERITH FIELD SCAN TEST      $F0D41180
       AXT     -1,4           SET HOLLERITH FIELD SWITCHES              F0D41190
       SXD     GSC07,4                                                  F0D41200
       SXD     GSC09,4                                                  F0D41210
       TRA     MSC22                                                    F0D41220
       REM     REENTRY FOR NONHOLLERITH OPCODES                         F0D41230
 MSC20 SXA     GSAV1,1        SAVE VARIABLE FIELD CHARACTER COUNT       F0D41240
       TXI     *+1,1,-1                                                 F0D41250
       NZT     ETCMD          IS ETC CARD EXPECTED                      F0D41260
       TRA     MSC22         NO                                        $F0D41270
       STZ     ETCMD          YES, RESET FLAG                           F0D41280
       LXD     PCONT,4        PRESET PARTIAL FIELD COUNT                F0D41290
       SXD     COUNT,4                                                  F0D41300
       CAL     PSYMB          PRESET PARTIAL SYMBOL                     F0D41310
       SLW     SYMBL                                                    F0D41320
       ZSD     GSC02+1        SET SWITCH TO PROCESS FIRST FIELD         F0D41330
       REM                                                              F0D41340
       REM     REENTRY FOR HOLLERITH OPCODES                            F0D41350
       REM     BEGIN VARIABLE FIELD SCAN                                F0D41360
 MSC22 TSX     GSCET,4       *ASSEMBLE NEXT FIELD                       F0D41370
       TRA     MSC23          FIELD IS AN ARGUMENT                      F0D41380
       REM     REENTRY FOR HOLLERITH FIELD NOT AN ARGUMENT              F0D41390
       ZSD     GSCSA+1        RESET FIRST FIELD SWITCH                  F0D41400
       CLA     COUNT          ADD FIELD COUNT                           F0D41410
       ADD     TOTAL          INTO STUFF COUNT                          F0D41420
       STO     TOTAL                                                    F0D41430
       STZ     COUNT          RESET FIELD COUNT                         F0D41440
       STZ     SYMBL          DELETE FIELD NOT AN ARGUMENT              F0D41450
       LXA     GSAV2,2        LOAD VARIABLE FIELD WORD COUNT            F0D41460
       TRA     GSC01                                                    F0D41470
       REM     FIELD IS AN ARGUMENT                                     F0D41480
       REM     REENTRY AFTER FIRST BLANK IN HOLLERITH FIELD             F0D41490
 MSC23 TSX     GSCSA,4       *STUFF ARGUMENT                            F0D41500
       STZ     COUNT          RESET FIELD COUNT                         F0D41510
       STZ     SYMBL          RESET FIELD                               F0D41520
       AXT     2,2            SET STUFF COUNT TO INCLUDE                F0D41530
       SXD     TOTAL,2        PRECEDING PUNCTUATION                     F0D41540
 GSAV2 AXT     **,2           LOAD VARIABLE FIELD WORD COUNT            F0D41550
 GSAV1 AXT     **,1           LOAD VARIABLE FIELD CHARACTER COUNT       F0D41560
       TRA     MSC22          ENSURE CORRECT RETURN ADDRESS         (23)F0D41570
       REM                                                              F0D41580
       REM     ASSEMBLE NEXT FIELD                                      F0D41590
 GSCET SXA     SMARX,4        SAVE CALLING LINKAGE                      F0D41600
       SXA     GSCX1,2        SAVE STUFF WORD COUNT                     F0D41610
       SXA     GSCX2,1        SAVE STUFF CHARACTER COUNT                F0D41620
 GSC01 LXA     GSAV1,1        LOAD VARIABLE FIELD CHARACTER COUNT       F0D41630
       TSX     C0190,4       *GET NEXT CHARACTER                        F0D41640
       SXA     GSAV1,1        SAVE VARIABLE FIELD CHARACTER COUNT       F0D41650
       LXD     COUNT,1        BUMP FIELD COUNT                          F0D41660
       TXI     *+1,1,1                                                  F0D41670
       SXD     COUNT,1                                                  F0D41680
       LXD     BKTBL,4        LOAD SPECIAL CHARACTER COUNT              F0D41690
       LAS     BKTBL,4        IS THIS A SPECIAL CHARACTER               F0D41700
       TRA     *+3            NO                                        F0D41710
       TRA     GSC02          YES                                       F0D41720
       TIX     *-3,4,1        IS SPECIAL CHARACTER COUNT EXHAUSTED      F0D41730
       CAL     SYMBL          YES, APPEND THIS CHARACTER                F0D41740
       ALS     6              TO PARTIAL SYMBOL                         F0D41750
       ORA     CHRCTR                                                   F0D41760
       SLW     SYMBL                                                    F0D41770
       TRA     GSC01                                                    F0D41780
       REM                                                              F0D41790
       REM     SYMBOL HAS BEEN ASSEMBLED, TRANSFER ON PUNCTUATION       F0D41800
 GSC02 SXA     GSAV2,2        SAVE VARIABLE FIELD WORD COUNT            F0D41810
       TXH     GSC16,2,-1     IS THIS FIRST FIELD ON ETC CARD           F0D41820
       TRA     GSC04+1,4      NO, PROCESS FIELD ON PUNCTUATION          F0D41830
       REM                                                              F0D41840
       TRA     GSC15          PUNCTUATION IS (                          F0D41850
       TRA     GSC34          PUNCTUATION IS ,                          F0D41860
       TRA     GSC34          PUNCTUATION IS /                          F0D41870
       TRA     GSC09          PUNCTUATION IS BLANK                      F0D41880
       TRA     GSC34          PUNCTUATION IS *                          F0D41890
       TRA     GSC08          PUNCTUATION IS $                          F0D41900
       TRA     GSC34          PUNCTUATION IS -                          F0D41910
       TRA     GSC07          PUNCTUATION IS )                          F0D41920
       TRA     GSC34          PUNCTUATION IS +                          F0D41930
       TRA     GSC05          PUNCTUATION IS '                          F0D41940
 GSC04 TRA     GSC34         PUNCTUATION IS =                          $F0D41950
       REM                                                              F0D41960
       REM     PUNCTUATION IS '                                         F0D41970
 GSC05 TSX     GSC33,4       *CHECK PRECEDING FIELD FOR ARGUMENT        F0D41980
       TRA     GSC06          FIELD IS AN ARGUMENT                      F0D41990
       CLA     COUNT          ADD FIELD COUNT                           F0D42000
       SUB     D1             LESS PUNCTUATION CHARACTER                F0D42010
       ADD     TOTAL          INTO STUFF COUNT                          F0D42020
       STO     TOTAL                                                    F0D42030
       TSX     GSCSF,4       *STUFF FIELD PRECEDING '                   F0D42040
       ZSD     GSCSA+1        RESET FIRST FIELD SWITCH                  F0D42050
       TRA     GSC06+1                                                  F0D42060
       REM     ' FOLLOWS ARGUMENT                                       F0D42070
 GSC06 TSX     GSCSA,4       *STUFF ARGUMENT PRECEDING '                F0D42080
       AXC     MSC22,4        SIMULATE CALL TO ASSEMBLE NEXT FIELD      F0D42090
       SXA     SMARX,4                                                  F0D42100
       STZ     COUNT          RESET FIELD COUNT                         F0D42110
       STZ     SYMBL          RESET FIELD                               F0D42120
       AXT     1,2            SET STUFF COUNT TO OMIT PRECEDING '       F0D42130
       SXD     TOTAL,2                                                  F0D42140
       LXA     GSAV2,2        LOAD VARIABLE FIELD WORD COUNT            F0D42150
       LXA     GSAV1,1        LOAD VARIABLE FIELD CHARACTER COUNT       F0D42160
       TIX     *+3,1,1        DELETE ' FROM STUFF COUNT                 F0D42170
       TXI     *+1,2,-1                                                 F0D42180
       AXT     6,1                                                      F0D42190
       SXA     GSCX2,1        SAVE STUFF CHARACTER COUNT                F0D42200
       SXA     GSCX1,2        SAVE STUFF WORD COUNT                     F0D42210
       LXA     GSAV2,2        RELOAD VARIABLE FIELD WORD COUNT          F0D42220
       TRA     GSC01                                                    F0D42230
       REM                                                              F0D42240
       REM     PUNCTUATION IS )                                         F0D42250
 GSC07 TXL     GSC34,4,**     IS ) WITHIN HOLLERITH FIELD               F0D42260
       CLA     PARNC          NO, BUMP PARENTHESES COUNT                F0D42270
       SUB     Q1                                                       F0D42280
       STO     PARNC                                                    F0D42290
       TPL     GSC34          ARE THERE TOO MANY RIGHT PARENTHESES      F0D42300
       TSX     SFZRO,4       *YES, END THIS RECORD                      F0D42310
       TRA     GSCPE        **SET ERROR FLAG                        (23)F0D42320
       REM                                                              F0D42330
       REM     PUNCTUATION IS $                                         F0D42340
 GSC08 LXA     GSAV1,1        LOAD VARIABLE FIELD CHARACTER COUNT       F0D42350
       TSX     C019A,4       *LOOK AT NEXT CHARACTER                    F0D42360
       ERA     BLANK          IS IT BLANK                               F0D42370
       TNZ     GSC34          NO, $ IS HEADING CHARACTER                F0D42380
       TSX     PEEKS,4       *YES, DOES ETC CARD FOLLOW                 F0D42390
       TRA     GSC20          YES                                       F0D42400
       NZT     PARNC          NO, ARE PARENTHESES BALANCED              F0D42410
       TRA     GSC34          YES                                       F0D42420
       TRA     GSCPE        **NO, SET FLAG                          (23)F0D42430
       REM                                                              F0D42440
       REM     PUNCTUATION IS BLANK                                     F0D42450
 GSC09 TXH     GSC12,4,**     IS BLANK WITHIN HOLLERITH FIELD           F0D42460
       TXH     GSC10,1,1     YES,HAS A FIELD BEEN COLLECTED            $F0D42470
       AXT     ,0            NO OPERATION                              $F0D42480
       TXL     GSC11,4,**     NO, IS THIS FIRST BLANK                   F0D42490
       AXT     -1,4           YES, RESET SWITCH                         F0D42500
       SXD     GSC09+3,4                                                F0D42510
       CLA     TOTAL          SAVE STUFF COUNT                          F0D42520
       STO     PCONT          TO OMIT TERMINATING BLANKS                F0D42530
       TRA     GSC11                                                    F0D42540
       REM     FIELD HAS BEEN COLLECTED                                 F0D42550
 GSC10 TSX     GSC33,4       *CHECK FIELD FOR ARGUMENT                  F0D42560
       TXI     G10P1,4,GSC10-1    *AXT -1,4  FIELD IS AN ARGUMENT.     $F0D42570
       CLA     COUNT          ADD FIELD COUNT                           F0D42580
       ADD     TOTAL          INTO HOLLERITH FIELD COUNT                F0D42590
       TXI     G10PA,4,GSC10-2    *AXT -2,4  STUFF UP TO BLANK.        $F0D42600
 GSC11 LXA     GSAV2,4        LOAD VARIABLE FIELD WORD COUNT            F0D42610
       TXH     GSCBP,4,**     IS HOLLERITH FIELD COMPLETE           (23)F0D42620
       ZSD     GSC09+3        YES, SET FIRST BLANK SWITCH               F0D42630
       CLA     PCONT          SET STUFF COUNT                           F0D42640
       STO     TOTAL          TO HOLLERITH FIELD COUNT                  F0D42650
       TSX     GSCSF,4       *STUFF FIELD PRECEDING BLANK               F0D42660
       TRA     GSC31                                                    F0D42670
       REM     CARD IS STANDARD FORMAT                                  F0D42680
 GSC12 NZT     PARNC          ARE PARENTHESES BALANCED                  F0D42690
       TRA     *+5            YES                                       F0D42700
       TXH     GSC34,2,-12    NO, IS VARIABLE FIELD EXHAUSTED           F0D42710
       TSX     PEEKS,4       *YES, DOES AN ETC CARD FOLLOW              F0D42720
       TRA     GSC20          YES                                       F0D42730
 GSCPE TSX     MCER1,4       *NO, SET ERROR FLAG                    (23)F0D42740
       REM     END OF VARIABLE FIELD - BLANK DOES NOT FOLLOW ( OR $     F0D42750
       TXH     *+4,2,-12      IS VARIABLE FIELD EXHAUSTED               F0D42760
       TSX     PEEKS,4       *YES, DOES AN ETC CARD FOLLOW              F0D42770
       TRA     GSC20          YES                                       F0D42780
       TRA     GSC13          NO                                        F0D42790
       TSX     PEEKS,4       *DOES A PROGRAMMERS ETC FOLLOW             F0D42800
       TRA     *+2            YES                                       F0D42810
       TRA     GSC13          NO                                        F0D42820
       STZ     ETCMD          RESET ETC FLAG                            F0D42830
       STZ     ARGNO          DELETE ARGUMENT NUMBER                    F0D42840
       TSX     SFARN+1,4      STUFF 7700 FLAG FOR FOLLOWING CARD ETC    F0D42850
       REM     REENTRY FOR NO ETC CARD TO FOLLOW                        F0D42860
 GSC13 TSX     GSC33,4       *CHECK FIELD FOR ARGUMENT                  F0D42870
       TRA     GSC14          FIELD IS AN ARGUMENT                      F0D42880
       CLA     COUNT          ADD FIELD COUNT                           F0D42890
       SUB     D1             LESS PUNCTUATION CHARACTER                F0D42900
       ADD     TOTAL          INTO STUFF COUNT                          F0D42910
       STO     TOTAL                                                    F0D42920
       TSX     GSCSF,4       *STUFF FIELD PRECEDING BLANK               F0D42930
       TRA     GSC31                                                    F0D42940
 GSC14 TSX     GSCSA,4       *STUFF ARGUMENT PRECEDING FINAL BLANK      F0D42950
       TRA     GSC31                                                    F0D42960
       REM                                                              F0D42970
       REM     PUNCTUATION IS (                                         F0D42980
 GSC15 CLA     PARNC          BUMP PARENTHESES COUNT                    F0D42990
       ADD     Q1                                                       F0D43000
       STO     PARNC                                                    F0D43010
       TRA     GSC34                                                    F0D43020
       REM                                                              F0D43030
       REM     REENTRY FOR FIRST FIELD ON ETC CARD                      F0D43040
 GSC16 SXA     GSC19,4        SAVE PUNCTUATION CHARACTER                F0D43050
       CLA     COUNT          COMPUTE LENGTH OF ADDED SYMBOL            F0D43060
       SUB     PCONT                                                    F0D43070
       STD     COUNT                                                    F0D43080
 GSC17 TXL     *+4,1,**       IS THIS TAIL END OF A FIELD               F0D43090
       REM                    WHICH WAS TOO LONG TO BE AN ARGUMENT      F0D43100
       TXH     *+3,1,7        NO, IS FIELD TOO LONG TO BE AN ARGUMENT   F0D43110
       TSX     GSC33,4       *NO, CHECK FIELD FOR ARGUMENT              F0D43120
       TRA     GSC18+2        FIELD IS AN ARGUMENT                      F0D43130
       ZSD     GSC17          RESET TAIL END SWITCH                     F0D43140
       LXD     PCONT,1        LOAD LENGTH OF PARTIAL FIELD              F0D43150
       TXL     GSC18,1,0      IS THERE A PARTIAL FIELD                  F0D43160
       TXI     *+1,1,1        YES, COMPUTE LENGTH+1 OF PARTIAL FIELD    F0D43170
       SXA     ERASE,1                                                  F0D43180
       AXC     ERASE,1                                                  F0D43190
       TSX     SFFLG,4       *STUFF COUNT+1                             F0D43200
       LXD     PCONT,4        LOAD LENGTH OF PARTIAL FIELD              F0D43210
       LDC     PCONT,2        COMPUTE LOCATION OF FIRST CHARACTER       F0D43220
       TXI     *+1,2,6                                                  F0D43230
       AXC     PSYMB,1        PREPARE TO STUFF PARTIAL FIELD            F0D43240
       CAL     *              LOAD CALLING LINKAGE                      F0D43250
       TRA     STUFF         *STUFF PARTIAL FIELD                       F0D43260
       TSX     MACERR,4     **IMPOSSIBLE RETURN                         F0D43270
       TRA     ETCPC          TRANSFER TO PATCH                        $F0D43280
 GSC18 AXT     -1,4           SET PARTIAL FIELD SWITCH                  F0D43290
       SXD     SMART+1,4                                                F0D43300
       AXT     -1,4           RESET FIRST FIELD SWITCH                  F0D43310
       SXD     GSC02+1,4                                                F0D43320
       AXC     MSC22,4        SIMULATE CALL TO ASSEMBLE NEXT FIELD      F0D43330
       SXA     SMARX,4                                                  F0D43340
       LXD     COUNT,1        LOAD LENGTH OF ADDED FIELD                F0D43350
 GSC19 AXT     **,4           RELOAD PUNCTUATION CHARACTER              F0D43360
       TRA     GSC02+2                                                  F0D43370
       REM                                                              F0D43380
       REM     ETC CARD WILL FOLLOW (BLANK, $BLANK, OR CARD COLUMN 72   F0D43390
 GSC20 LXD     COUNT,4        LOAD FIELD COUNT                          F0D43400
       TXI     *+1,4,-1       DELETE TERMINAL $ OR BLANK                F0D43410
       TXH     GSC21,4,6      IS FIELD TOO LONG TO BE AN ARGUMENT       F0D43420
       SXD     PCONT,4        NO, SAVE PARTIAL FIELD COUNT              F0D43430
       CAL     SYMBL          SAVE PARTIAL FIELD                        F0D43440
       SLW     PSYMB                                                    F0D43450
       TSX     GSCSF,4       *STUFF FIELD PRECEDING PARTIAL FIELD       F0D43460
       TRA     GSC32                                                    F0D43470
       REM     LAST FIELD IS NOT AN ARGUMENT                            F0D43480
 GSC21 STZ     PCONT          RESET LENGTH OF PARTIAL FIELD             F0D43490
       STZ     PSYMB          DELETE PARTIAL FIELD                      F0D43500
       PXD     ,4             RECALL LENGTH OF PARTIAL FIELD            F0D43510
       ADD     TOTAL          ADD INTO STUFF COUNT                      F0D43520
       STO     TOTAL                                                    F0D43530
       AXT     -1,4           SET SWITCH THAT FIRST FIELD ON NEXT CARD  F0D43540
       SXD     GSC17,4        IS TAIL END OF A FIELD NOT AN ARGUMENT    F0D43550
       TSX     GSCSF,4       *STUFF TERMINAL FIELD                      F0D43560
       TRA     GSC32                                                    F0D43570
       REM                                                              F0D43580
       REM     REENTRY AFTER END OF SCAN                                F0D43590
 GSC31 TSX     SFZRO,4       *STUFF END OF RECORD MARK                  F0D43600
       STZ     PARNC          RESET PAREN COUNT                         F0D43610
       ZSD     GSC07          RESET HOLLERITH FIELD SWITCHES            F0D43620
       ZSD     GSC09                                                    F0D43630
       REM     REENTRY AFTER END OF SCAN, ETC FOLLOWS                   F0D43640
       REM     REENTRY AFTER END OF MACRO DEFINING ARGUMENTS            F0D43650
 GSC32 LXD     STUFI,4        SAVE STUFF CONDITIONS                     F0D43660
       SXA     RSTF1,4        IN CASE MAC ALTERS THEM                   F0D43670
       LXD     STUM2,4                                                  F0D43680
       SXA     RSTF1+2,4                                                F0D43690
       TRA     READ1                                                    F0D43700
       REM                                                              F0D43710
       REM     REENTRY AFTER ' OR BLANK, OR FIRST FIELD ON ETC CARD     F0D43720
 GSC33 SXA     SMARX,4        SAVE CALLING LINKAGE                      F0D43730
       REM     REENTRY AFTER OTHER PUNCTUATION                          F0D43740
 GSC34 ZSD     GSC09+3        SET FIRST BLANK SWITCH                    F0D43750
       LXD     COUNT,4        LOAD FIELD WIDTH                          F0D43760
       TXH     SMARX,4,7      IS FIELD TOO LONG TO BE AN ARGUMENT       F0D43770
       CAL     SYMBL          NO, LOAD FIELD                            F0D43780
       TRA     SMART+1        CHECK FOR ARGUMENT                        F0D43790
       REM                    RETURN IS TO 1,4 FOR ARGUMENT             F0D43800
       REM                                 2,4 FOR OTHER FIELD          F0D43810
       REM                                                              F0D43820
       REM     STUFF ARGUMENT INTO MACRO DEFINITION                     F0D43830
 GSCSA SXA     GSCAX,4        SAVE CALLING LINKAGE                      F0D43840
       TXL     *+2,4,**       IS THIS FIRST FIELD                       F0D43850
       TSX     GSCSF,4       *NO, STUFF FIELD PRECEDING ARGUMENT        F0D43860
       TSX     SFARN+1,4     *STUFF ARGUMENT                            F0D43870
       ZSD     GSCSA+1        RESET FIRST FIELD SWITCH                  F0D43880
 GSCAX AXT     **,4           RELOAD CALLING LINKAGE                    F0D43890
       TRA     1,4                                                      F0D43900
       REM                                                              F0D43910
       REM     STUFF FIELD INTO MACRO DEFINITION                        F0D43920
 GSCSF SXA     GSFP1,4        SAVE CALLING LINKAGE.                    $F0D43930
       LXD     TOTAL,1        LOAD LENGTH OF VARIABLE FIELD             F0D43940
       TXL     GSCFX+1,1,1    DOES A VARIABLE FIELD EXIST...           $F0D43950
       TXL     *+3,1,61       YES. IS FIELD COUNT TOO LONG...          $F0D43960
       TXI     GSFPA,1,-14   *YES. BREAK IT UP AND STUFF TWICE.        $F0D43970
       SXD     TOTAL,1       *TELL GS0X1+1 HOW MUCH TO STUFF.          $F0D43980
       SXA     GSCFX,4        SET RETURN TO PATCH OR CALLER.           $F0D43990
 GSCS1 SXA     ERASE,1        SET LENGTH+1 OF FIELD                     F0D44000
       AXC     ERASE,1                                                  F0D44010
       TSX     SFFLG,4       *STUFF COUNT+1                             F0D44020
 GSCX2 AXC     **,2           LOAD COUNT OF FIRST CHAR TO BE STUFFED    F0D44030
 GSCX1 AXT     **,1           LOAD COUNT OF FIRST WORD TO BE STUFFED    F0D44040
       LXD     TOTAL,4        LOAD LENGTH OF FIELD TO BE STUFFED        F0D44050
       TXI     *+1,2,6        COMPUTE LOCATION OF FIRST CHARACTER       F0D44060
       TXI     *+1,1,-BCDBF   COMPUTE LOCATION OF FIRST WORD            F0D44070
       CAL     *              LOAD CALLING LINKAGE                      F0D44080
       TXI     STUFF,4,-1     STUFF FIELD                               F0D44090
       TSX     MACERR,4     **IMPOSSIBLE RETURN                         F0D44100
 GSCFX AXT     **,4           RELOAD CALLING LINKAGE                    F0D44110
       TRA     1,4                                                      F0D44120
       REM                                                              F0D44130
       REM     FLOAT MACRO ARGUMENT TABLE ABOVE SYMBOL TABLE            F0D44140
 SARGT LXD     STPTR,1        GET SYMBOL TABLE END                     $F0D44150
       TRA     SARGP          AND CHECK FOR NESTING                    $F0D44160
       SXD     MP1,1          INITIALIZE MAC DEF OVERFLOW TEST         $F0D44170
       AXT     -1,1           SET MACRO DEFINITION SCAN SWITCH          F0D44180
       SXD     SSCN0,1                                                  F0D44190
       TRA     1,4                                                      F0D44200
       REM                                                              F0D44210
       REM                                                              F0D44220
       REM     RESTORE STUFF CONDITIONS                                 F0D44230
 RESTF SXA     RSTFX,4        SAVE CALLING LINKAGE                      F0D44240
 RSTF1 AXT     **,4           RESTORE STUFF                             F0D44250
       TRA     MP1            TEST FOR OVERFLOW OF MACRO DEF TABLE     $F0D44260
       AXT     **,4           BY AN INTERVENING MAC CARD                F0D44270
       SXD     STUM2,4                                                  F0D44280
       SXD     STF01,4                                                  F0D44290
       ZSD     STF03+1        DELETE OVERFLOW TEST                      F0D44300
       ZSD     STF08+2                                                  F0D44310
       AXT     1,4                                                      F0D44320
       SXD     STF08+1,4      SET DIRECTION OF STUFF BACKWARD           F0D44330
       SXD     STF10+2,4                                                F0D44340
       AXT     ,0                                                   (23)F0D44350
       CAL     MOPP2          SET PASS 2 TRANSFER ADDRESS               F0D44360
       SLW     OPBIN          TO PRINT CARD                             F0D44370
 RSTFX AXT     **,4           RELOAD CALLING LINKAGE                    F0D44380
       TRA     1,4                                                      F0D44390
       REM                                                              F0D44400
       REM     LOOK UP SYMBOL IN ARG TABLE                              F0D44410
 SMARS CAL     SYMBL                                                    F0D44420
 SMART SXA     SMARX,4        SAVE CALLING LINKAGE                      F0D44430
       TXL     SMARX,4,**     IS THIS PARTIAL FIELD ON ETC CARD         F0D44440
       TZE     SMARX          NO, DOES ARGUMENT EXIST                   F0D44450
 MPCNT AXT     **,4           YES, LOAD COUNT OF ARGUMENTS IN TABLE     F0D44460
       TXL     SMARX,4,0      DO ARGUMENTS EXIST                        F0D44470
       LAS     DARGS,4        YES, IS IT THIS ARGUMENT                  F0D44480
       TRA     *+2            NO                                        F0D44490
       TRA     *+3            YES                                       F0D44500
       TIX     *-3,4,1        IS ARGUMENT TABLE EXHAUSTED               F0D44510
       TRA     SMARX          YES                                       F0D44520
       REM     ARGUMENT HAS BEEN LOCATED IN TABLE                       F0D44530
       SXD     ARGNO,4        SAVE ARGUMENT NUMBER                      F0D44540
       LXA     SMARX,4        RELOAD CALLING LINKAGE                    F0D44550
       TRA     1,4                                                      F0D44560
       REM     SYMBOL IS NOT AN ARGUMENT                                F0D44570
 SMARX AXT     **,4           RELOAD CALLING LINKAGE                    F0D44580
       ZSD     SMART+1        RESET PARTIAL FIELD SWITCH                F0D44590
       TRA     2,4                                                      F0D44600
       REM                                                              F0D44610
       REM     STUFF ARGUMENT NUMBER                                    F0D44620
 SFARN TXI     *+1,4,-1       BUMP CALLING LINKAGE TO RETURN TO 2,4     F0D44630
       SXA     SFARX,4        SAVE CALLING LINKAGE                      F0D44640
       CAL     ARGNO          LOAD ARGUMENT NUMBER                      F0D44650
       ORA     D4032          FORM 0077NN000000                         F0D44660
       SLW     ERASE                                                    F0D44670
       AXC     ERASE,1        PREPARE TO STUFF FROM ERASE               F0D44680
       AXT     1,6            BEGINNING WITH SECOND CHARACTER           F0D44690
       TXI     SFS04,4,1      USING TWO CHARACTERS                      F0D44700
       REM     STUFF ARGUMENT SYMBOL                                    F0D44710
 SFARS SXA     SFARX,4        SAVE CALLING LINKAGE                      F0D44720
       AXT     7,4            PREPARE TO COUNT CHARACTERS               F0D44730
       AXT     0,2                                                      F0D44740
       ZAC                                                              F0D44750
       LDQ     SYMBL          LOAD SYMBOL                               F0D44760
       LGL     6              NEXT CHARACTER                            F0D44770
       TNZ     *+3            IS THIS IT                                F0D44780
       TXI     *+1,2,1        NO, BUMP CHARACTER COUNT                  F0D44790
       TIX     *-3,4,1        IS SYMBOL ALL SCANNED                     F0D44800
       SXA     SFS03,4        SAVE LENGTH OF SYMBOL                     F0D44810
       SXA     SFS03+1,2      SAVE STARTING CHARACTER                   F0D44820
       TXH     SFS02,4,1      WAS FIELD BLANK OR ZERO                   F0D44830
       AXC     D2,1           YES, PREPARE TO STUFF EXPLICIT ZERO       F0D44840
       AXT     2,2            BEGINNING WITH THIRD CHARACTER            F0D44850
       TXI     SFS04,4,1      USING TWO CHARACTERS                      F0D44860
       REM     ARGUMENT SYMBOL EXISTS                                   F0D44870
 SFS02 SXA     ERASE,4        SET LENGTH+1 OF SYMBOL                    F0D44880
       AXC     ERASE,1                                                  F0D44890
       TSX     SFFLG,4       *STUFF COUNT+1                             F0D44900
 SFS03 AXT     **,4           RELOAD LENGTH+1 OF SYMBOL                 F0D44910
       AXT     **,2           RELOAD POSITION OF FIRST CHARACTER        F0D44920
       AXC     SYMBL,1        PREPARE TO STUFF ARGUMENT SYMBOL          F0D44930
       TXI     *+1,4,-1       USING LENGTH OF SYMBOL                    F0D44940
 SFS04 CAL     *              LOAD CALLING LINKAGE                      F0D44950
       TRA     STUFF         *STUFF SYMBOL OR COUNT AND FLAG            F0D44960
       TSX     MACERR,4     **IMPOSSIBLE RETURN                         F0D44970
 SFARX AXT     **,4           RELOAD CALLING LINKAGE                    F0D44980
       TRA     1,4                                                      F0D44990
       REM                                                              F0D45000
       REM     STUFF TERMINATING ZEROS                                  F0D45010
 SFZRO AXC     Q0,1           PREPARE TO STUFF FROM ZEROS               F0D45020
       REM     STUFF COUNT OR FLAG                                      F0D45030
 SFFLG SXA     SFZRX,4        SAVE CALLING LINKAGE                      F0D45040
       AXT     5,2            PREPARE TO STUFF FROM LAST CHARACTER      F0D45050
       AXT     1,4            USING ONE CHARACTER                       F0D45060
       CAL     *                                                        F0D45070
       TRA     STUFF                                                    F0D45080
       TSX     MACERR,4     **IMPOSSIBLE RETURN                         F0D45090
 SFZRX AXT     **,4           RELOAD CALLING LINKAGE                    F0D45100
       TRA     1,4                                                      F0D45110
       EJECT                                                            F0D45120
       REM     ROUTINES TO EXPAND MACROS                                F0D45130
       REM                    IFF, IRP, MAC, RMT *                      F0D45140
       REM                                                              F0D45150
 IFFOP TSX     SCANF,4       *EVALUATE SWITCH                           F0D45160
       TXI     AFLAG+2,,0     NULL SWITCH                               F0D45170
       SLT     EXPRR          IS SWITCH IN ERROR                        F0D45180
       NZT     RBITS          NO, IS SWITCH ABSOLUTE                    F0D45190
       TZE     *+2            YES, IS SWITCH ZERO                       F0D45200
       CAL     Q1             NO, SET ABSOLUTE NONZERO, OR RELOCATABLE, F0D45210
       REM                    SWITCH NOT IN ERROR TO 1                  F0D45220
       SLW     VAREQ                                                    F0D45230
       AXT     -1,4           SET INTERCEPT IN MACRO PROCESSOR      (23)F0D45240
       SXD     MACIF,4        TO RETURN AFTER SCAN INITIALIZATION   (23)F0D45250
       SXD     SSN33,4        SET SWITCH FOR POSSIBLE ETC           (23)F0D45260
       SXA     VRFLD,1        UPDATE CHARACTER POSITION             (23)F0D45265
       TRA     MACOP+3       *INITIALIZE FOR ARGUMENT SCAN          (23)F0D45270
       REM     REENTRY FROM MACRO ARGUMENT SCAN INITIALIZATION      (23)F0D45275
 IFF01 ZSD     MACIF          RESET SWITCH                          (23)F0D45280
       SLT     FLDND         WAS END OF VARIABLE FIELD SENSED       (33)F0D45290
       TRA     IFFIX         NO                                     (33)F0D45300
       TRA     IFFIX+1       YES                                    (33)F0D45310
       LXD     MARGS,2        OBTAIN LENGTH OF FIRST ARGUMENT       (23)F0D45320
       TXH     *+2,2,0        IS IT NULL                            (23)F0D45330
       TXL     IFF02+1,4,1    YES,TRANSFER IF NO SECOND ARGUMENT    (23)F0D45340
       LDC     MARGS-1,4      INITIALIZE COMPUTATION OF             (23)F0D45350
       SXD     *+1,4          DIFFERENCE IN ARGUMENT LENGTHS        (23)F0D45360
       TXI     IFF06,2,**    *COMPUTE DIFFERENCE IN LENGTH          (23)F0D45370
       REM     REENTRY FROM COMPARISON OF ARGUMENTS                 (23)F0D45380
 IFF02 CAL     Q1             LOAD FLAG FOR UNEQUAL ARGUMENTS       (23)F0D45390
       ERA     VAREQ          COMBINE WITH SWITCH                       F0D45400
       TNZ     *+6            SHOULD FOLLOWING CARD BE OMITTED          F0D45410
       AXT     -1,4           YES, SET FIRST CARD SWITCH                F0D45420
       SXD     IFF04,4                                                  F0D45430
       TSX     SETTP,4       *PLANT IFF INTERCEPT                       F0D45440
       PZE     ROUTE,,IFF03                                             F0D45450
       TSX     MACERR,4     **ALREADY SET UP                            F0D45460
       TSX     PMCS3,4        RESTORE MACRO STATUS                  (23)F0D45470
       ZSD     SSN33          RESET FOR NORMAL ETC PRINTING         (23)F0D45480
       TRA     READ1          YES                                       F0D45490
       REM     RETURN FROM MACRO COMPILER FOR SUBSEQUENT CARD           F0D45500
 IFF03 CAL     BCDBF+1        LOAD OPCODE                               F0D45510
       ANA     PKMSK          MASK IN CC 8 - 11                         F0D45520
       ERA     ETCMK          IS CARD ETC                               F0D45530
       TZE     IFF04+2        YES, CONTINUE DELETING GENERATED CARDS    F0D45540
 IFF04 TXH     IFF05,4,**     HAS A NON ETC CARD BEEN DELETED           F0D45550
       ZSD     IFF04          NOT YET, RESTORE SWITCH                   F0D45560
       AXT     5$TTL03+1,4    SET PASS TWO TRANSFER ADDRESS TO LIST    $F0D45570
       SXD     OPBIN,4        THIS CARD UNDER CONTROL OF PCC           $F0D45580
       TRA     READ1                                                    F0D45590
       REM     DELETION IS COMPLETE                                     F0D45600
 IFF05 TSX     RESTP,4       *REMOVE INTERCEPT                          F0D45610
       PZE     ROUTE,,IFF03                                             F0D45620
       TRA     ROUTE                                                    F0D45630
       REM                                                              F0D45640
 IRPOP LXA     CLEVL,4        LOAD MACRO LEVEL                          F0D45650
       TXL     OPERR,4,0    **IS IRP WITHIN A MACRO                     F0D45660
       AXT     -1,4           YES, SET SWITCH TO INTERCEPT              F0D45670
       SXD     CMP22,4        SUBSEQUENT IRP CARD                       F0D45680
       TSX     OTPT0,4       *LIST FIRST IRP                            F0D45690
       TSX     IRP10,4       *SUPPRESS FOLLOWING ETC                    F0D45700
       LXA     CHRCTR,1       LOAD FIRST CHARACTER IN VARIABLE FIELD    F0D45710
       TXI     *+1,1,-48      IS IT BLANK                               F0D45720
       TXL     IRP01+1,1,0    YES                                       F0D45730
 IRP01 AXT     **,1           NO, LOAD ARGUMENT NUMBER                  F0D45740
       SXD     IRPNO,1                                                  F0D45750
       TXL     IRP06+1,1,0    IS IRP ON AN ARGUMENT                     F0D45760
       CAL     MDFCT          YES, SAVE MACRO DEFINITION WORD,,CHAR     F0D45770
       SLW     IRPPW          COUNT OF BEGINNING OF IRP                 F0D45780
       CLA     MARGS+1,1      LOAD POINTER TO IRP ARGUMENT              F0D45790
       STO     IRPAR          SAVE IT FOR END OF IRP                    F0D45800
       ADD     Q1                                                       F0D45810
       STA     IRPSD          SET WORD COUNT OF BEGINNING OF ARGUMENT   F0D45820
       AXT     5,4                                                      F0D45830
       SXD     IRPSD,4        SET CHAR COUNT OF BEGINNING OF ARGUMENT   F0D45840
       CAL     COMMA          PRESET LAST PUNCTUATION TO ,              F0D45850
       STA     IRPNO          TO SCAN ARGUMENTS ON GENERATED IRP CARD   F0D45860
       STA     LCHAR                                                    F0D45870
       TXI     IRP03,1,-1                                               F0D45880
       REM     REENTRY FROM COMPILER FOR NEXT CARD IN RANGE OF IRP      F0D45890
 IRP02 CAL     BCDBF+1        LOAD OP FIELD                             F0D45900
       ANA     PKMSK          MASK IN CARD COLUMNS 8 - 11               F0D45910
       ERA     IRPMK          IS OPCODE IRP                             F0D45920
       TZE     *+4            YES                                       F0D45930
       LXD     IRPNO,4        NO, LOAD IRP ARGUMENT COUNT               F0D45940
       TXL     IRP06+1,4,0    IS IRP ON AN ARGUMENT                     F0D45950
       TRA     CMP22+1        YES                                       F0D45960
       REM     SUBSEQUENT CARD IS IRP MARKING END OF RANGE              F0D45970
       TSX     IRP10,4       *SUPPRESS FOLLOWING ETC                    F0D45980
       LXD     IRPNO,1        LOAD ARGUMENT NUMBER                      F0D45990
       TXL     IRP06,1,0      WAS IRP ON AN ARGUMENT                    F0D46000
       CAL     IRPNO          YES, PRESET PUNCTUATION                   F0D46010
       STA     LCHAR          AT BEGINNING OF NEXT STRING               F0D46020
       ANA     ADDMK                                                    F0D46030
       ERA     BLANK          IS IT BLANK                               F0D46040
       TZE     IRP05          YES, IRP ARGUMENTS ARE EXHAUSTED          F0D46050
       TXI     *+1,1,-1       NO, BUMP ARGUMENT COUNT                   F0D46060
       CLA     MARGS,1        LOAD REFERENCE TO THIS ARGUMENT           F0D46070
       STA     MEPTR          OVERLAP ARGUMENTS                         F0D46080
       REM     REENTRY FOR FIRST IRP CARD                               F0D46090
 IRP03 STZ     MARGS,1        DELETE REFERENCE TO THIS ARGUMENT         F0D46100
       SXD     ARGJL,1        SET ARGUMENT INDEX                        F0D46110
       AXT     -1,1                                                     F0D46120
       SXD     SSN17,1        SET SWITCH TO AVOID BUMPING ARG INDEX     F0D46130
       CAL     PRNLS          SET PAREN LEVEL TO 0, ENABLE SCAN FOR ,   F0D46140
       LXA     LCHAR,4        LOAD LAST PUNCTUATION                     F0D46150
       TXL     *+3,4,59       WAS IT (                                  F0D46160
       TXH     *+2,4,60       NO                                        F0D46170
       CAL     PRNLT          YES, SET PAREN LEVEL TO 1, DISABLE , SCAN F0D46180
       SLW     PLEVL                                                    F0D46190
       CAL     IRPSD          SET BEGINNING OF STRING                   F0D46200
       STD     SSNBC          CHARACTER COUNT                           F0D46210
       STA     SSNBW          WORD COUNT                                F0D46220
       TSX     SCANS,4       *INITIALIZE CHARACTER SCAN ROUTINE         F0D46230
       TXL     SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEF0D46240
       TXL     SSN01,,4       PUNCTUATION RETURN,,LENGTH OF TABLE       F0D46250
       TXL     ,1,0           NULLIFY OVERFLOW TEST                     F0D46260
       TSX     SSINS,4       *ASSEMBLE NEXT STRING                      F0D46270
       LXD     IRPNO,4        LOAD ARGUMENT COUNT                       F0D46280
       CAL     MARGS+1,4      LOAD REFERENCE TO THIS ARGUMENT           F0D46290
       TNZ     *+5            IS THIS FINAL NULL STRING                 F0D46300
       CAL     IRPNO                                                    F0D46310
       ANA     ADDMK                                                    F0D46320
       ERA     COMMA          WAS PUNCTUATION COMMA                     F0D46330
       TNZ     IRP05+1                                                  F0D46340
       LXD     SSNBC,2        NO, HOLD COUNTS OF START OF FOLLOWING STRNF0D46350
       LXA     SSNBW,1                                                  F0D46360
       SXD     IRPSD,2                                                  F0D46370
       SXA     IRPSD,1                                                  F0D46380
       CAL     CCHAR          HOLD CURRENT PUNCTUATION CHARACTER        F0D46390
       STA     IRPNO          FOR BEGINNING OF FOLLOWING STRING         F0D46400
       CAL     IRPPW          RESTORE MACRO DEFINITION WORD,,CHAR COUNT F0D46410
       SLW     MDFCT          FOR NEXT ITERATION OVER RANGE OF IRP      F0D46420
       TRA     IRP06+1                                                  F0D46430
       REM     ARGUMENT LIST IS EXHAUSTED                               F0D46440
 IRP05 LXD     IRPNO,4        LOAD ARGUMENT COUNT                       F0D46450
       CAL     IRPAR          RESTORE REFERENCE TO THIS ARGUMENT        F0D46460
       SLW     MARGS+1,4                                                F0D46470
 IRP06 ZSD     CMP22          RESET IRP INTERCEPT                       F0D46480
       TRA     SOURC                                                    F0D46490
       REM                                                              F0D46500
       REM     PREPARE FOR FOLLOWING ETC                                F0D46510
 IRP10 SXA     IRP1X,4        SAVE CALLING LINKAGE                      F0D46520
       TSX     PEEKS,4       *WILL FOLLOWING CARD BE AN ETC             F0D46530
       TRA     *+2            YES                                       F0D46540
       TRA     IRP1X          NO                                        F0D46550
       LXD     MDFCT,1        BUMP MACRO DEFINITION CHARACTER COUNT     F0D46560
       TXI     *+1,1,1                                                  F0D46570
       SXD     MDFCT,1                                                  F0D46580
       STZ     ETCMD          SUPPRESS ETC CARD                         F0D46590
       ZSD     CMP01          AS SCAN WAS IN MACRO EXPANSION TABLE      F0D46600
 IRP1X AXT     **,4           RELOAD CALLING LINKAGE                    F0D46610
       TRA     1,4                                                      F0D46620
       REM                                                              F0D46630
 MACOP SLN     1              SET FLAG FOR MAC CALL                     F0D46640
       REM     ENTRY FOR MACRO NAME IN OPFIELD                          F0D46650
       AXT     -1,4           SET MACRO DEFINITION CARD SWITCH          F0D46660
       SXD     MCRDF,4                                                  F0D46670
       TXI     *+1,2,-BCDBF   COMPUTE VARIABLE FIELD WORD COUNT         F0D46680
       LAC     VRFLD,1        COMPUTE COUNT OF FIRST CHARACTER          F0D46690
       TXI     *+1,1,6        IN VARIABLE FIELD                         F0D46700
       SXA     SSNBW,2        SAVE COUNTS OF BEGINNING OF STRING        F0D46710
       SXD     SSNBC,1                                                  F0D46720
       TSX     PMCS1,4       *PUSH MACRO STATUS DOWN                    F0D46730
       CAL     INDFG          SET INDIRECTLY ADDRESSED MACRO FLAG       F0D46740
       STA     MCIND                                                    F0D46750
       TSX     SCANS,4       *INITIALIZE CHARACTER SCAN ROUTINE         F0D46760
       TXL     SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEF0D46770
       TXL     SSN01,,4       PUNCTUATION RETURN,,LENGTH OF TABLE       F0D46780
       TXL     SSN03,1,-BCDBF-12 OVERFLOW TEST                          F0D46790
       CAL     PRNLS          ENABLE SCAN FOR ,                         F0D46800
       SLW     PLEVL          SET PAREN LEVEL TO 0                      F0D46810
       CAL     COMMA          PRESET LAST PUNCTUATION TO ,              F0D46820
       STA     LCHAR                                                    F0D46830
       STZ     MARGS          RESET REFERENCE TO THIS ARGUMENT          F0D46840
       ZSD     ARGJL          RESET ARGUMENT INDEX                      F0D46850
       SLT     1              IS THIS MAC CALL                          F0D46860
       TRA     MACIF          NO, TEST FOR IFF                      (23)F0D46870
       TSX     SSING,4       *YES, LOCATE MACRO NAME IN STRING          F0D46880
       LXD     MARGS,4        LOAD NUMBER OF CHARACTERS IN NAME         F0D46890
       TXL     MCER3,4,0    **IS NAME NULL                              F0D46900
       LXD     MARGS,2        NO, LOAD LENGTH OF MACRO NAME             F0D46910
       LXA     MARGS,1        LOAD POINTER TO NAME IN MACEXP            F0D46920
       CAL     0,1            LOAD MACRO NAME                           F0D46930
       ANA     MARMK,2        MASK OUT FOLLOWING GARBAGE                F0D46940
       TSX     SOPTB,4       *EVALUATE MACRO NAME                       F0D46950
       TRA     MCER3        **NOT FOUND                                 F0D46960
       RNT     100000         IS THIS MACHINE OPERATION                 F0D46970
       LNT     200000         NO, IS THIS PSEUDOOPERATION               F0D46980
       TRA     MCER3        **YES                                       F0D46990
       STZ     MARGS          NO, IT IS MACRO, DELETE MACRO NAME        F0D47000
       ZSD     ARGJL          RESET ARGUMENT INDEX                      F0D47010
       PIA                    RECALL SYMBOL DEFINITION                  F0D47020
       PDX     ,1             LOAD POINTER TO MACRO SKELETON            F0D47030
       TXI     MAC02+2,1,1    BUMP PAST DEFINITION HEAD                 F0D47040
       REM     REENTRY FOR MACRO NAME IN OPFIELD                        F0D47050
 MAC02 LXD     OPBIN,1        LOAD POINTER FROM OP TABLE                F0D47060
       TXI     *+1,1,1        BUMP PAST DEFINITION HEAD                 F0D47070
       SXA     MDFCT,1        SET FIRST WORD OF MACRO SKELETON          F0D47080
       ZSD     MDFCT          SET MACRO DEFINITION CHARACTER COUNT      F0D47090
       REM                    TO FIRST CHARACTER IN WORD                F0D47100
       CAL     MOPP2          SET PASS TWO TRANSFER ADDRESS             F0D47110
       STO     OPBIN          IN CASE OF EMPTY MACRO                   $F0D47120
       CAL     0,1            LOAD FIRST WORD OF MACRO DEFINITION       F0D47130
       TNZ     *+3            IS MACRO EMPTY                            F0D47140
       TSX     PMCS3,4       *YES, PUSH MACRO STATUS UP                 F0D47150
       TRA     MAC2A                                                   $F0D47160
       CLA     1,1            NO, LOAD MACRO ARGUMENT COUNT             F0D47170
       STD     ARGIL          SET ARGUMENT COUNT                        F0D47180
       AXT     5$BES01+3,1    SET PASS TWO TRANSFER ADDRESS TO OMIT    $F0D47190
       TPL     MAC03          IS THERE A LOCATION ARGUMENT              F0D47200
       AXT     5$UNLOP+1,1    YES, RESET PASS 2 TRANSFER ADDRESS TO OMITF0D47210
       REM                    LISTING OCTAL LOCATION                    F0D47220
       CAL     BCDBF          LOAD LOCATION FIELD                       F0D47230
       TSX     LOCFL,4       *ASSEMBLE LOCATION SYMBOL                  F0D47240
       SLW     ARGWD          HOLD TO END OF ETC CARDS                  F0D47250
       TRA     MAC03+1        PREVENT MULTIPLY DEFINED LOCATION FIELDS  F0D47260
       REM     ASSEMBLE ARGUMENTS                                       F0D47270
 MAC03 TSX     ESYML,4       *DEFINE LOCATION FIELD                     F0D47280
       SXD     OPBIN,1        SET PASS TWO TRANSFER ADDRESS             F0D47290
       TSX     SSINS,4       *ASSEMBLE ARGUMENT STRINGS                 F0D47300
 MEPTR AXT     **,1           LOAD POINTER TO NEXT ENTRY                F0D47310
       REM                    IN MACRO EXPANSION TABLE                  F0D47320
       TRA     MAC06                                                    F0D47330
       REM     REENTRY TO CREATE NEXT SYMBOL                            F0D47340
 MAC04 NZT     CRSNO          ARE CREATED SYMBOLS PERMITTED             F0D47350
       TRA     MAC05          NO                                        F0D47360
 CRSCT AXT     **,4           YES, LOAD CREATED SYMBOL COUNT            F0D47370
       TXI     *+1,4,1        BUMP TO NEXT SYMBOL                       F0D47380
       SXA     CRSCT,4                                                  F0D47390
       TXL     *+3,4,9999     ARE THERE TOO MANY CREATED SYMBOLS        F0D47400
       LDI     CRSNM          YES, LOAD CREATED SYMBOL NAME             F0D47410
       TRA     SRCERR       **TERMINATE ASSEMBLY                        F0D47420
       PXA     ,4             NO, LOAD SYMBOL                           F0D47430
       TSX     BCDCV,4       *CONVERT TO BCD                            F0D47440
       LAS     ADTMK          IS CREATED SYMBOL GREATER THAN 3 DIGITS   F0D47450
       TRA     *+3            YES                                       F0D47460
       NOP                    NO                                        F0D47470
       ORA     CRPT1          APPEND . AS SECOND CHARACTER              F0D47480
       ALS     6              LEFT ADJUST                               F0D47490
       ORA     CRPT2          APPEND . AS FIRST CHARACTER               F0D47500
       SLW     0,1            INSERT CREATED SYMBOL                     F0D47510
       SXA     CRSNO,1        SAVE POINTER TO THIS SYMBOL               F0D47520
       TXI     *+1,1,-1       BUMP POINTER TO NEXT ENTRY                F0D47530
       REM     REENTRY FOR CREATED SYMBOLS SUPPRESSED                   F0D47540
 MAC05 CAL     CRSNO          LOAD CREATED SYMBOL POINTER,,COUNT        F0D47550
       LXD     ARGJL,2        LOAD ARGUMENT TABLE INDEX                 F0D47560
       TXI     *+1,2,1        BUMP ARGUMENT TABLE INDEX                 F0D47570
       SXD     ARGJL,2                                                  F0D47580
       SLW     MARGS+1,2      INSERT REFERENCE                          F0D47590
       REM     REENTRY AFTER ASSEMBLING STRING                          F0D47600
 MAC06 LXD     ARGIL,4        LOAD LENGTH OF ARGUMENT LIST              F0D47610
 ARGJL TXH     MAC04,4,**     ARE ANY TERMINAL ARGUMENTS MISSING        F0D47620
       REM                    (DECREMENT IS CURRENT ARGUMENT NUMBER)    F0D47630
       CAL     ARGWD          NO, LOAD SUBSTITUTABLE LOCATION FIELD     F0D47640
       TZE     MAC07          IS THERE ANY                              F0D47650
       LDQ     BLANKS         YES, LOAD FOLLOWING BLANKS                F0D47660
       AXT     1,2            PREPARE TO COUNT CHARACTERS               F0D47670
       LGR     6              LEFT ADJUST SYMBOL                        F0D47680
       TZE     *+2                                                      F0D47690
       TXI     *-2,2,1                                                  F0D47700
       STQ     0,1            INSERT LOCATION ARGUMENT IN MACEXP TABLE  F0D47710
       PXA     ,1                                                       F0D47720
       TXI     *+1,1,-1       BUMP POINTER TO NEXT ENTRY                F0D47730
       SLW     MARGS+1,4      OVERWRITE PREVIOUS POINTER WORD           F0D47740
       PXD     ,2             RECALL CHARACTER COUNT                    F0D47750
       STD     MARGS+1,4      INSERT IN REFERENCE                       F0D47760
       STZ     ARGWD          DELETE SUBSTITUTABLE LOCATION FIELD       F0D47770
       REM     REENTRY FOR CREATED ARGUMENTS SUPPRESSED                 F0D47780
 MAC07 TXL     OVRLP,1,**     IS MACRO EXPANSION TABLE FULL             F0D47790
       SXA     MEPTR,1        NO, SAVE POINTER TO NEXT ENTRY            F0D47800
       TSX     PMCL1,4       *BUMP MACRO LEVEL                          F0D47810
       TSX     OTPUT,4       *WRITE MACRO CALL CARD                     F0D47820
       ZSD     MCRDF          RESET MACRO CALL CARD SWITCH              F0D47830
       TRA     SOURC                                                    F0D47840
       REM                                                              F0D47850
       REM     OUTPUT REMOTE SEQUENCES                                  F0D47860
 RMTSR SXA     RMTSX,4        SAVE CALLING LINKAGE                      F0D47870
       TSX     SETTP,4       *SET UP REMOTE ROUTING                     F0D47880
       PZE     SOURC,,RMTS1                                             F0D47890
       TSX     MACERR,4     **ALREADY SET UP                            F0D47900
       CAL     BHEAD          SAVE CURRENT HEADING CHARACTER            F0D47910
       STA     RMTS2                                                    F0D47920
       ZSD     MCRDF          RESET MACRO CALL CARD SWITCH              F0D47930
       REM     REENTRY AFTER OUTPUTTING REMOTE SEQUENCE                 F0D47940
 RMTS1 LXD     RMTEN+1,1      LOAD POINTER TO NEXT SEQUENCE             F0D47950
       TXL     RMTS2,1,0      IS TABLE EXHAUSTED                        F0D47960
       TSX     PMCS1,4       *NO, PUSH MACRO STATUS DOWN                F0D47970
       ZSD     ARGIL          RESET NUMBER OF ARGUMENTS                 F0D47980
       ZSD     MDFCT          SET MACRO DEFINITION CHARACTER COUNT      F0D47990
       REM                    TO FIRST CHARACTER IN WORD                F0D48000
       LXD     RMTEN+1,1      LOAD POINTER TO NEXT SEQUENCE             F0D48010
       CAL     0,1            LOAD HEADING                              F0D48020
       STA     BHEAD          SET REMOTE HEADING CHARACTER              F0D48030
       STA     LITRL          SAVE FOR PASS TWO                         F0D48040
       ANA     D32767         MOVE POINTER TO NEXT SEQUENCE             F0D48050
       STD     RMTEN+1        TO CURRENT POINTER                        F0D48060
       TNZ     *+3            IS THERE ANOTHER SEQUENCE                 F0D48070
       AXC     RMTEN+1,4      NO, RESTORE POINTER FOR FIRST SEQUENCE    F0D48080
       SXD     RMTEN,4                                                  F0D48090
       TXI     *+1,1,1        BUMP COUNT PAST HEADING                   F0D48100
       SXA     MDFCT,1                                                  F0D48110
       TSX     PMCL1,4       *BUMP MACRO LEVEL                          F0D48120
       CAL     RMTP2          SET PASS TWO TRANSFER ADDRESS             F0D48130
       SLW     OPBIN                                                    F0D48140
       TSX     OTPT0,4       *WRITE INTERMEDIATE TAPE ONLY              F0D48150
       TRA     SOURC                                                    F0D48160
       REM     REMOTE SEQUENCES EXHAUSTED                               F0D48170
 RMTS2 AXT     **,4           RESTORE CURRENT HEADING CHARACTER         F0D48180
       SXA     BHEAD,4                                                  F0D48190
       SXA     LITRL,4        SAVE FOR PASS TWO                         F0D48200
       CAL     RMTP2          SET PASS TWO TRANSFER ADDRESS             F0D48210
       SLW     OPBIN                                                    F0D48220
       TSX     OTPT0,4       *WRITE INTERMEDIATE TAPE ONLY              F0D48230
       TSX     RESTP,4       *RESTORE ASSEMBLER ROUTING                 F0D48240
       PZE     SOURC,,RMTS1                                             F0D48250
 RMTSX AXT     **,4           RELOAD CALLING LINKAGE                    F0D48260
       TRA     1,4                                                      F0D48270
       REM                                                              F0D48280
       REM     ASSEMBLE MACRO NAME                                      F0D48290
 SSING AXT     -1,1           SET INTERCEPT TO RETURN WITH MACRO NAME   F0D48300
       SXD     SSN18,1                                                  F0D48310
       REM     REENTRY TO ASSEMBLE STRING                               F0D48320
 SSINS SXA     SSINX,4        SAVE CALLING LINKAGE                      F0D48330
       LXD     SSNBC,2        LOAD BEGINNING OF STRING CHARACTER COUNT  F0D48340
       LXA     SSNBW,1        LOAD BEGINNING OF STRING WORD COUNT       F0D48350
       TXI     SCANT,2,1                                                F0D48360
       REM                                                              F0D48370
       REM     CHARACTER IS PUNCTUATION                                 F0D48380
 SSN01 STA     CCHAR          SAVE CURRENT CHARACTER                    F0D48390
       TRA     *+5,4                                                    F0D48400
       TRA     SSN08          CHARACTER IS (                            F0D48410
 PLEVL TXI     SSN07,,**      CHARACTER IS ,                            F0D48420
       REM                    (RESET TO SSN10 IF WITHIN PARENS)         F0D48430
       TRA     SSN02          PUNCTUATION IS BLANK                      F0D48440
       REM     PUNCTUATION IS )                                         F0D48450
       LXD     PLEVL,4        LOAD PAREN COUNT                          F0D48460
       TXL     MCERP,4,0    **IS ) EXCESSIVE                        (23)F0D48470
       TXI     *+1,4,-1       NO, BUMP PAREN COUNT                      F0D48480
       SXD     PLEVL,4                                                  F0D48490
       TXH     SSN10,4,0      IS THIS OUTERMOST )                       F0D48500
       AXT     SSN07,4        YES, REENABLE SCAN FOR ,                  F0D48510
       SXA     PLEVL,4                                                  F0D48520
       TRA     SSN11                                                    F0D48530
       REM     PUNCTUATION IS BLANK                                     F0D48540
 SSN02 LXD     PLEVL,4        LOAD PAREN LEVEL                          F0D48550
       TXL     *+5,4,0        IS BLANK BETWEEN PARENTHESES              F0D48560
       LXA     LCHAR,4        YES, LOAD PRECEDING CHARACTER             F0D48570
       TXL     SSN10,4,42     IS IT $                                   F0D48580
       TXH     SSN10,4,43     NO                                        F0D48590
       TRA     SSN03+3        YES                                       F0D48600
       REM     BLANK IS NOT WITHIN PARENTHESES                          F0D48610
       LXA     LCHAR,4        LOAD PRECEDING CHARACTER                  F0D48620
       TXL     SSN04+4,4,42   IS CHARACTER $                            F0D48630
       TXH     SSN04+4,4,43   NO                                        F0D48640
       TRA     SSN03+3        YES                                       F0D48650
       REM     REENTRY AFTER INPUT CARD COLUMN 72                       F0D48660
 SSN03 LXA     LCHAR,4        LOAD PRECEDING CHARACTER                  F0D48670
       TXL     SSN04,4,42     IS IT $                                   F0D48680
       TXH     SSN04,4,43     NO                                        F0D48690
       REM     REENTRY FOR $BLANK                                       F0D48700
       TXH     *+3,2,0        DELETE $                                  F0D48710
       TXI     *+1,1,1                                                  F0D48720
       TXI     *+2,2,5                                                  F0D48730
       TXI     *+1,2,-1                                                 F0D48740
       REM     REENTRY AFTER CARD COLUMN 72 WITH NO PRECEDING $         F0D48750
 SSN04 TSX     PEEKS,4       *DOES ETC CARD FOLLOW                      F0D48760
       TRA     SSN05          YES                                       F0D48770
       LXD     PLEVL,4        NO, LOAD PAREN LEVEL                      F0D48780
       TXH     MCERP,4,0    **ARE PARENTHESES UNBALANCED            (23)F0D48790
       REM     REENTRY FOR BLANK NOT WITHIN PARENTHESES                 F0D48800
       AXT     -1,4           NO                                        F0D48810
       SXD     SSN18,4        SET SWITCH TO RETURN WITH STRING          F0D48820
       SXD     SSN12,4        SET SWITCH TO SUPPRESS NULL STRING STUFF  F0D48830
       TRA     SSN11                                                    F0D48840
       REM     REENTRY FOR ETC CARD TO FOLLOW                           F0D48850
 SSN05 PXD     ,2             LOAD INPUT CARD CHAR COUNT (CLEAR AC)     F0D48860
       TXL     SSN06,2,0      IS INPUT WORD EXHAUSTED                   F0D48870
       LDQ     0,1            NO, LOAD INPUT WORD                       F0D48880
       PDX     ,4             LOAD CHARACTER COUNT                      F0D48890
       TNX     SSN06+2,4,1    LEFT ADJUST PRECEDING CHARACTER           F0D48900
       RQL     6                                                        F0D48910
       TRA     *-2                                                      F0D48920
 SSN06 LDQ     -1,1           LOAD NEXT INPUT WORD                      F0D48930
       RQL     30             LEFT ADJUST PRECEDING CHARACTER           F0D48940
       LGL     6              LOAD PRECEDING CHARACTER                  F0D48950
       STA     CCHAR                                                    F0D48960
       AXT     -1,4                                                     F0D48970
       SXD     SSN17,4        SET SWITCH TO AVOID BUMPING ARGUMENT COUNTF0D48980
       TRA     SSN11                                                    F0D48990
       REM     PUNCTUATION IS ,                                         F0D49000
 SSN07 LXA     LCHAR,4        LOAD PRECEDING CHARACTER                  F0D49010
       TXH     SSN11,4,28     IS PRECEDING CHARACTER )                  F0D49020
       TXL     SSN11,4,27     NO                                        F0D49030
       TRA     SSN09          YES, , NOT CONSIDERED PUNCTUATION         F0D49040
       REM     PUNCTUATION IS (                                         F0D49050
 SSN08 LXD     PLEVL,4        BUMP PAREN COUNT                          F0D49060
       TXI     *+1,4,1                                                  F0D49070
       SXD     PLEVL,4                                                  F0D49080
       TXH     SSN10,4,1      IS THIS FIRST (                           F0D49090
       AXT     SSN10,4        YES, DISABLE SCAN FOR ,                   F0D49100
       SXA     PLEVL,4                                                  F0D49110
 LCHAR AXT     **,4           LOAD PRECEDING CHARACTER                  F0D49120
       TXH     SSN11,4,59     IS IT ,                                   F0D49130
       TXH     SSN09,4,58     YES                                       F0D49140
       TXH     SSN11,4,28     NO, IS IT (                               F0D49150
       TXL     SSN11,4,27     NO                                        F0D49160
       REM     REENTRY FOR ), OR ,(                                     F0D49170
 SSN09 SXD     SSNBC,2        RESET BEGINNING OF STRING                 F0D49180
       SXA     SSNBW,1        TO COUNT OF PUNCTUATION CHARACTER         F0D49190
       CAL     CCHAR          RELOAD CURRENT CHARACTER                  F0D49200
       REM     CHARACTER IS NOT PUNCTUATION, OR PUNCTUATION NOT BREAK   F0D49210
 SSN10 STA     LCHAR          SAVE LAST CHARACTER                       F0D49220
       TXI     SCANU+1,2,1                                              F0D49230
       REM                                                              F0D49240
       REM     PUNCTUATION IS BREAK CHARACTER                           F0D49250
 SSN11 SXA     SSNEC,2        SAVE POSITION OF PUNCTUATION              F0D49260
       SXD     SSNEW,1        AT END OF STRING                          F0D49270
 SSNBW AXT     **,1           LOAD COUNT OF WORD INCLUDING PUNCTUATION  F0D49280
       REM                    AT BEGINNING OF STRING                    F0D49290
 SSNEW TXL     *+3,1,**       IS THIS WORD  AT END OF STRING            F0D49300
       TXI     *+1,2,6        NO, BUMP CHARACTER COUNT BY ONE WORD      F0D49310
       TXI     *-2,1,-1       BUMP WORD COUNT BY ONE WORD               F0D49320
 SSNBC TIX     *+2,2,**       REDUCE STRING LENGTH BY CHARACTER COUNT   F0D49330
       REM                    OF PUNCTUATION AT BEGINNING OF STRING     F0D49340
       TRA     *+2            IT WAS -1, OMIT NEXT STEP             (24)F0D49350
       TXI     *+1,2,-1       DELETE PUNCTUATION CHARACTER FROM COUNT   F0D49360
       SXD     COUNT,2        SAVE LENGTH OF STRING                 (23)F0D49370
 SSN13 TXL     SSN14,1,**     IS THIS FIRST ON ETC CARD             (23)F0D49380
 SSN12 TXH     *+2,1,**       NO, IS THIS FINAL STRING              (23)F0D49390
       TXL     SSN22,2,0      YES, IS IT NULL                       (23)F0D49400
       LXA     MEPTR,1        NO, LOAD POINTER TO MACRO EXPANSION TABLE F0D49410
       AXT     -1,2           SET DIRECTION OF STUFF FORWARD            F0D49420
       LXD     MAC07,4        LOAD LOWER END OF MACRO DEFINITION TABLE  F0D49430
       CAL     *              LOAD CALLING LINKAGE                      F0D49440
       TRA     STUFY         *INITIALIZE ROUTINE TO STUFF MACEXP        F0D49450
 SSN14 ZSD     SSN13          RESET ETC SWITCH                          F0D49460
       LXD     SSNBC,2        RELOAD COUNTS OF BEGINNING OF STRING      F0D49470
       LXA     SSNBW,1                                                  F0D49480
       TXI     *+1,2,1        NUMBER OF LEADING CHARACTERS          (24)F0D49490
       TXL     *+3,2,5        IN FIRST WORD, IS IT SIX              (24)F0D49500
       TXI     *+1,1,-1       YES, BUMP TO NEXT WORD                (24)F0D49510
       TXI     *+1,2,-6       AND ADJUST CHARACTER COUNT            (24)F0D49520
       LXD     COUNT,4        LOAD LENGTH OF STRING                     F0D49530
       CAL     *              LOAD CALLING LINKAGE                      F0D49540
       TRA     STUFF         *ADD STRING TO EXPANSION                   F0D49550
       TRA     OVRLP        **EXPANSION TABLE FULL                      F0D49560
       ZET     ETCMD          WILL AN ETC CARD FOLLOW                   F0D49570
       TRA     SSN16          YES                                       F0D49580
       AXT     1,7            NO, PREPARE TO STUFF ONE CHARACTER        F0D49590
       CAL     *              LOAD CALLING LINKAGE                      F0D49600
       TXI     STUFF,1,-BLANKS-1  *STUFF TERMINATING BLANK              F0D49610
       TRA     OVRLP        **EXPANSION TABLE FULL                      F0D49620
 SSN16 LDQ     MEPTR          LOAD POINTER TO THIS ARGUMENT             F0D49630
       SXA     MEPTR,2        SET POINTER TO NEXT ARGUMENT              F0D49640
       LXD     ARGJL,4        LOAD ARGUMENT LIST COUNT                  F0D49650
       CLA     MARGS,4        LOAD REFERENCE TO THIS ARGUMENT           F0D49660
       PAX     ,2             LOAD POINTER TO THIS ARGUMENT             F0D49670
       ADD     COUNT          BUMP BY LENGTH OF STRING                  F0D49680
       STD     MARGS,4        SET REFERENCE TO NEXT ARGUMENT            F0D49690
       TXH     *+3,2,0        IS THIS REMAINDER OF ARGUMENT             F0D49700
       REM                    ON FOLLOWING ETC CARD                     F0D49710
       XCL                    NO, RECALL POINTER TO THIS ARGUMENT       F0D49720
       STA     MARGS,4        SET POINTER TO THIS ARGUMENT              F0D49730
 CCHAR AXT     **,1           SET BREAK PUNCTUATION                     F0D49740
       SXA     LCHAR,1        AS NEW PRECEDING CHARACTER                F0D49750
 SSNEC AXT     **,2           SET BEGINNING OF NEXT STRING              F0D49760
       LXD     SSNEW,1        TO PUNCTUATION AT END OF LAST STRING      F0D49770
       SXD     SSNBC,2                                                  F0D49780
       SXA     SSNBW,1                                                  F0D49790
 SSN17 TXL     SSN18+2,1,**   IS THIS PARTIAL ARGUMENT OR IRP           F0D49800
       TXI     *+1,4,1        NO, BUMP ARGUMENT COUNT                   F0D49810
       TXH     SSN18,4,63     DID ARGUMENT TABLE OVERFLOW               F0D49820
       SXD     ARGJL,4        NO, SET ARGUMENT COUNT                    F0D49830
       STZ     MARGS,4        CLEAR REFERENCE                           F0D49840
       REM     REENTRY FOR TRUNCATED ARGUMENT LIST                      F0D49850
 SSN18 TXL     SSN22,1,**     IS IMMEDIATE RETURN REQUESTED             F0D49860
       TXI     SCANT,2,1      NO, ASSEMBLE NEXT STRING                  F0D49870
       REM                                                              F0D49880
       REM     END OF CARD                                              F0D49890
       ZSD     SSN18          RESET IMMEDIATE RETURN SWITCH             F0D49900
       ZSD     SSN17          RESET END OF CARD SWITCH                  F0D49910
       NZT     ETCMD          WILL AN ETC CARD FOLLOW                   F0D49920
       TRA     SSN22+2        NO                                        F0D49930
       LXA     CLEVL,1        YES, LOAD MACRO LEVEL                     F0D49940
       TXL     SSN21,1,0      IS THIS FIRST LEVEL MACRO                 F0D49950
       LXA     MEPTR,1        NO, PREPARE TO PUSH TO MACRO EXP TABLE    F0D49960
       LXA     MCIND,4        PUSH DOWN INDIRECT ADDRESS FLAG           F0D49970
       SXA     SSLOC,4                                                  F0D49980
       CLA     P7             PREPARE TO PUSH                           F0D49990
       TSX     PUPOP,4       *PUSH DOWN INCOMPLETE ARGUMENT INDEX       F0D50000
       LXD     SSLOC,1        LOAD LOCATION OF PREVIOUS STATUS          F0D50010
       CAL     P7             PREPARE TO POP                            F0D50020
       TSX     PUPOP,4       *POP UP PREVIOUS COMPILER STATUS           F0D50030
       REM                    TO GENERATE ETC CARD                      F0D50040
       CAL     SSLOC          RESTORE INDIRECT ADDRESS FLAG             F0D50050
       STA     MCIND                                                    F0D50060
 SSN21 LXD     STUFI,4        SAVE STUFF STATUS                         F0D50070
       SXA     SSN32,4                                                  F0D50080
       LXD     STUM2,4                                                  F0D50090
       SXA     SSN32+2,4                                                F0D50100
       NOP                                                             $F0D50110
       TSX     SETTP,4       *SET UP MACRO ROUTING                      F0D50120
       PZE     ROUTE,,SSN30                                             F0D50130
       TSX     MACERR,4     **ALREADY SET UP                            F0D50140
       TRA     READ1                                                    F0D50150
       REM     REENTRY TO RETURN WITH STRING, OR AFTER FINAL NULL STRINGF0D50160
 SSN22 ZSD     SSN18          RESET IMMEDIATE RETURN SWITCH             F0D50170
       ZSD     SSN17          RESET PARTIAL ARGUMENT SWITCH             F0D50180
       REM     REENTRY AFTER END OF CARD, NO ETC CARD TO BE GENERATED   F0D50190
       ZSD     SSN12          RESET FINAL STRING SWITCH             (23)F0D50200
 SSINX AXT     **,4           RELOAD CALLING LINKAGE                    F0D50210
       TRA     1,4                                                      F0D50220
       REM                                                              F0D50230
       REM     REENTRY FOR ARGUMENT LIST ETC CARD                       F0D50240
 SSN30 TSX     RESTP,4       *RESET ASSEMBLER ROUTING                   F0D50250
       PZE     ROUTE,,SSN30                                             F0D50260
       SLT     EXPRR          WAS OP FIELD IN ERROR                     F0D50270
       TRA     *+2            NO                                        F0D50280
       TSX     MACERR,4     **YES, BUT IT MUST BE ETC                   F0D50290
       STZ     ETCMD          RESET ETC FLAG                            F0D50300
       CAL     MOPP2          SET PASS TWO TRANSFER                     F0D50310
 SSN31 TRA     SSN33         *TO PRINT CARD, PROVISIONALLY          (23)F0D50320
       LXA     CLEVL,1        LOAD MACRO LEVEL                          F0D50330
       TXL     SSN32,1,0      IS THIS FIRST LEVEL MACRO                 F0D50340
       LXA     MEPTR,1        LOAD POINTER TO MACRO EXPANSION TABLE     F0D50350
       CAL     2,1            GET LOCATION OF OUTER SCAN STATUS         F0D50360
       PDX     ,2                                                       F0D50370
       CAL     MDFCT          INSERT MACRODEFINITION WORD,,CHAR COUNT   F0D50380
       SLW     0,2            SO THAT IT MAY BE POPPED BACK             F0D50390
       CAL     P7             PREPARE TO POP                            F0D50400
       TSX     PUPOP,4       *POP UP INCOMPLETE ARGUMENT INDEX          F0D50410
       CAL     SSLOC          RESTORE INDIRECT ADDRESS FLAG             F0D50420
       STA     MCIND                                                    F0D50430
 SSN32 AXT     **,4           RESTORE STUFF COUNTS                      F0D50440
       SXD     STUFI,4                                                  F0D50450
       AXT     **,4                                                     F0D50460
       SXD     STF01,4                                                  F0D50470
       SXD     STUM2,4                                                  F0D50480
       LXD     MAC07,4        RESTORE STUFF OVERFLOW TESTS              F0D50490
       SXD     STF03+1,4                                                F0D50500
       SXD     STF08+2,4                                                F0D50510
       AXT     -1,4           RESTORE DIRECTION OF STUFF                F0D50520
       SXD     STF08+1,4                                                F0D50530
       SXD     STF10+2,4                                                F0D50540
       SXD     SSN13,4        SET ETC SWITCH                            F0D50550
       TSX     SCANS,4       *INITIALIZE CHARACTER SCAN ROUTINE         F0D50560
       TXL     SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEF0D50570
       TXL     SSN01,,4       PUNCTUATION RETURN,,LENGTH OF TABLE       F0D50580
       TXL     SSN03,1,-BCDBF-12 OVERFLOW TEST                          F0D50590
       LAC     VRFLD,2        COMPUTE CHARACTER COUNT                   F0D50600
       TXI     *+1,2,6                                                  F0D50610
       LXD     VRFLD,1        COMPUTE WORD COUNT                        F0D50620
       TXI     *+1,1,-BCDBF                                             F0D50630
       SXD     SSNBC,2        SET COUNTS OF BEGINNING OF STRING         F0D50640
       SXA     SSNBW,1                                                  F0D50650
       TXI     SCANT,2,1                                                F0D50660
       REM                                                              F0D50670
       REM     COMPILE MACRO EXPANSION                                  F0D50680
 CMPIL AXC     BCDBF,1        PREPARE TO STUFF INTO CARD IMAGE         $F0D50690
       AXC     BCDBF,4        BUFFER                                   $F0D50695
       AXT     -1,2           SET SWITCH TO STUFF FORWARD               F0D50700
       SXD     MCREF,2        SET MACRO GENERATED CARD SWITCH           F0D50710
       SXD     CMP11,2        PRESET END OF MACRO EXPANSION SWITCH      F0D50720
       SXD     PKMSW,2        SET LOOKAHEAD SWITCH FOR ETC CARD         F0D50730
       CAL     *              LOAD CALLING LINKAGE                      F0D50740
       TXI     STUFY,4,-12   *INITIALIZE STUFF ROUTINE                  F0D50750
 CMP01 TXH     CMP04,2,**     IS AN ETC CARD TO BE CREATED              F0D50760
       ZSD     CMP01          YES, RESET SWITCH                         F0D50770
       ZSD     CMP11          RESET END OF MACRO EXPANSION SWITCH       F0D50780
 CMPVF AXT     15,4           LOAD NUMBER OF CHARACTERS TO BE STUFFED   F0D50790
       REM                    (RESET TO 11 FOR 704 MODE)                F0D50800
       AXT     0,1            PREPARE TO STUFF FROM                    $F0D50805
       AXT     0,2            FIRST CHARACTER                          $F0D50810
       CAL     *              LOAD CALLING LINKAGE                      F0D50820
       TXI     STUFF,1,-ETCCD *STUFF ETC OPCODE                         F0D50830
       TSX     MACERR,4     **IMPOSSIBLE RETURN                         F0D50840
 CMP02 AXT     **,4           RESTORE DIRECTION OF STUFF                F0D50850
       SXD     STF06+1,4                                                F0D50860
       AXT     **,4           RELOAD NUMBER OF REMAINING CHARACTERS     F0D50870
       AXT     **,2           RELOAD CARD IMAGE CHARACTER COUNT         F0D50880
       AXT     **,1           RELOAD CARD IMAGE WORD COUNT              F0D50890
       CAL     *              LOAD CALLING LINKAGE                      F0D50900
       TRA     STUFF         *STUFF REMAINDER OF FIELD                  F0D50910
       TRA     CMP20          CARD IMAGE FULL                           F0D50920
       REM     REENTRY IF NO ETC CARD IS TO BE CREATED                  F0D50930
 CMP04 ZSD     PKMSW+1        RESET ETC SWITCH                          F0D50940
       AXT     1,4            PREPARE TO STUFF FROM BACKWARD DATA       F0D50950
       SXD     STF06+1,4                                                F0D50960
       TSX     SCANS,4       *INITIALIZE CHARACTER SCAN ROUTINE         F0D50970
       TXL     CMP05,,MDTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEF0D50980
       TXL     CMP10,,4       PUNCTUATION RETURN,,LENGTH OF TABLE       F0D50990
       TXH     ,1,-1          NULLIFY OVERFLOW TEST                     F0D51000
       ZSD     CMPFC          RESET FIELD LENGTH                        F0D51010
       ZSD     CMPCT          RESET COUNT OF COLUMNS STUFFED            F0D51020
       TRA     CMP16                                                    F0D51030
       REM                                                              F0D51040
       REM     CHARACTER IS NOT PUNCTUATION, IT IS FIELD LENGTH+1       F0D51050
 CMP05 SXA     MDFCT,1        SAVE MACRO DEFINITION WORD COUNT          F0D51060
       PAX     ,4             LOAD FIELD LENGTH+1                       F0D51070
       TXI     *+1,4,-1       BUMP TO FIELD LENGTH                      F0D51080
       SXD     CMPFC,4        SET FIELD LENGTH                          F0D51090
       TXI     *+1,2,1        BUMP CHARACTER COUNT PAST FIELD LENGTH    F0D51100
       PXD     ,2             COMPUTE END OF FIELD IN SKELETON          F0D51110
       ACL     CMPFC                                                    F0D51120
       STD     MDFCT          SAVE MACRO DEFINITION CHARACTER COUNT     F0D51130
       PXD     ,4                                                       F0D51140
       ADD     CMPCT          BUMP COUNT OF COLUMNS STUFFED             F0D51150
       STD     CMPCT                                                    F0D51160
       TXL     *+3,2,5        IS WORD EXHAUSTED                         F0D51170
       TXI     *+1,1,1        YES, BUMP COUNT TO NEXT WORD              F0D51180
       TXI     *-2,2,-6       RESET CHARACTER COUNT                     F0D51190
       CAL     *              LOAD CALLING LINKAGE                      F0D51200
       TRA     STUFF         *STUFF VARIABLE INTO CARD IMAGE            F0D51210
       TRA     CMP20          CARD IMAGE FULL                           F0D51220
       TRA     CMP16                                                    F0D51230
       REM                                                              F0D51240
       REM     CHARACTER IS PUNCTUATION                                 F0D51250
 CMP10 TXI     *+1,2,1        DELETE PUNCTUATION CHARACTER              F0D51260
       SXD     MDFCT,2        SAVE MACRO DEFINITION CHARACTER COUNT     F0D51270
       SXA     MDFCT,1        SAVE MACRO DEFINITION WORD COUNT          F0D51280
       TRA     *+5,4                                                    F0D51290
       TRA     CMP15          PUNCTUATION IS ARGUMENT MARK              F0D51300
       TRA     CMP13          PUNCTUATION IS VARIABLE FIELD MARK        F0D51310
       TRA     CMP12          PUNCTUATION IS OPCODE MARK                F0D51320
       REM     END OF RECORD                                            F0D51330
       AXC     BLANKS+1,1     PREPARE TO STUFF FROM BLANK WORDS         F0D51340
       AXT     0,6            PREPARE TO STUFF FROM FIRST CHARACTER     F0D51350
       CAL     *              LOAD CALLING LINKAGE                      F0D51360
       TXI     STUFF,4,6     *STUFF TWO WORDS OF BLANKS                 F0D51370
       NOP                                                              F0D51380
 CMP11 TXH     CMP21,2,**     IS THIS DOUBLE END OF RECORD MARK         F0D51390
       REM                    (END OF MACRO EXPANSION)                  F0D51400
       TSX     PMCL2,4       *YES, PUSH UP MACRO LEVEL                  F0D51410
       TXH     *+3,1,0        WAS THIS ZERO LEVEL MACRO                 F0D51420
       ZSD     PKMSW          YES, RESET LOOKAHEAD SWITCH               F0D51430
       ZSD     MCREF          RESET MACRO EXPANSION CARD SWITCH         F0D51440
       TRA     SOURC                                                    F0D51450
       REM     PUNCTUATION IS 01, OPCODE FOLLOWS                        F0D51460
 CMP12 ZSD     CMP11          RESET END OF MACRO EXPANSION SWITCH       F0D51470
       AXT     7,4            COMPUTE LENGTH OF LOCATION FIELD          F0D51480
 CMPFC TNX     CMP16,4,**     IS COLUMN 7 FULL                          F0D51490
       TRA     CMP14          NO                                        F0D51500
       REM     PUNCTUATION IS 76, VARIABLE FIELD FOLLOWS                F0D51510
 CMP13 ZSA     IRP01          RESET ARGUMENT NUMBER                     F0D51520
       REM     DETERMINE NUMBER OF BLANKS TO STUFF                  (24)F0D51530
       TXL     *+2,2,5        IS DEFINITION WORD EXHAUSTED          (24)F0D51540
       LDQ     -1,1           YES, LOAD NEXT ONE                    (24)F0D51550
       TXI     *+1,2,1        BUMP SKELETON CHARACTER COUNT         (24)F0D51560
       SXD     MDFCT,2        PAST COUNT OF CHARACTERS              (24)F0D51570
       ZAC                    WHICH SHOULD PRECEDE VARIABLE FIELD   (24)F0D51580
       LGL     6              ROLL UP SAID COUNT                    (24)F0D51590
       PAX     ,4                                                   (24)F0D51600
       AXT     ,0             MARK TIME                             (24)F0D51610
 CMPCT TIX     *+2,4,**       REDUCE BY COUNT OF CHARACTERS STUFFED     F0D51620
       AXT     1,4            PREPARE TO STUFF ONE BLANK IF TOO MANY    F0D51630
       REM     REENTRY TO STUFF BLANKS FOLLOWING LOCATION FIELD         F0D51640
 CMP14 PXD     ,4             SET NUMBER OF BLANKS TO STUFF             F0D51650
       ADD     CMPCT          BUMP COUNT OF COLUMNS STUFFED             F0D51660
       STD     CMPCT                                                    F0D51670
       AXC     BLANKS+1,1     PREPARE TO STUFF FROM BLANKS              F0D51680
       AXT     0,2            STARTING WITH FIRST CHARACTER             F0D51690
       CAL     *              LOAD CALLING LINKAGE                      F0D51700
       TRA     STUFF         *FILL OUT OPFIELD WITH BLANKS              F0D51710
       TRA     CMP20          CARD IMAGE FULL                           F0D51720
       TRA     CMP16                                                    F0D51730
       REM     PUNCTUATION IS 77, ARGUMENT FOLLOWS                      F0D51740
 CMP15 TXL     *+2,2,5        IS WORD EXHAUSTED                         F0D51750
       LDQ     -1,1           YES, LOAD NEXT WORD                       F0D51760
       TXI     *+1,2,1        BUMP CHARACTER COUNT PAST ARGUMENT NUMBER F0D51770
       SXD     MDFCT,2        SAVE MACRO DEFINITION CHARACTER COUNT     F0D51780
       ZAC                                                              F0D51790
       LGL     6              LOAD ARGUMENT NUMBER                      F0D51800
       TNZ     *+4            IS FOLLOWING CARD PROGRAMMERS ETC         F0D51810
       AXT     -1,4           YES, SET ETC SWITCH                       F0D51820
       SXD     PKMSW+1,4                                                F0D51830
       TRA     SCANT                                                    F0D51840
       STA     IRP01          INITIALIZE IRP ARGUMENT NUMBER            F0D51850
       PAX     ,1                                                       F0D51860
       CAL     MARGS+1,1      LOAD ARGUMENT REFERENCE                   F0D51870
       PAX     ,1             LOAD ARGUMENT LOCATION                    F0D51880
       PDX     ,4             LOAD ARGUMENT LENGTH                      F0D51890
       STD     CMPFC          SET FIELD LENGTH                          F0D51900
       ADD     CMPCT          BUMP COUNT OF COLUMNS STUFFED             F0D51910
       STD     CMPCT                                                    F0D51920
       AXT     -1,2           PREPARE TO STUFF FROM FORWARD DATA        F0D51930
       SXD     STF06+1,2                                                F0D51940
       AXT     0,2            PREPARE TO STUFF FROM FIRST CHARACTER     F0D51950
       CAL     *              LOAD CALLING LINKAGE                      F0D51960
       TRA     STUFF         *STUFF ARGUMENT INTO CARD IMAGE            F0D51970
       TRA     CMP20          CARD IMAGE FULL                           F0D51980
       AXT     1,2            PREPARE TO STUFF FROM BACKWARD DATA       F0D51990
       SXD     STF06+1,2                                                F0D52000
       REM     REENTRY TO CONTINUE SCAN                                 F0D52010
 CMP16 LXD     MDFCT,2        LOAD MACRO DEFINITION CHARACTER COUNT     F0D52020
       LXA     MDFCT,1        LOAD MACRO DEFINITION WORD COUNT          F0D52030
       TRA     SCANT                                                    F0D52040
       REM     GENERATED CARD IMAGE IS FULL                             F0D52050
 CMP20 LXD     STF06+1,2      SAVE DIRECTION OF STUFF                   F0D52060
       SXA     CMP02,2                                                  F0D52070
       AXT     -1,2           SET SWITCH TO CREATE ETC CARD             F0D52080
       SXD     CMP01,2                                                  F0D52090
       SXD     PKMSW+1,2                                                F0D52100
       SXA     CMP02+2,4      SAVE COUNT OF REMAINING CHARACTERS        F0D52110
       LXA     STF07,4        LOAD CHARACTER BIT COUNT                  F0D52120
       TXI     *+1,4,6                                                  F0D52130
       TXI     *+1,2,1                                                  F0D52140
       TIX     *-1,4,6        DIVIDE BY 6                               F0D52150
       SXA     CMP02+3,2      SAVE CARD IMAGE CHARACTER COUNT           F0D52160
       SXA     CMP02+4,1      SAVE CARD IMAGE WORD COUNT                F0D52170
       REM     REENTRY TO FINISH CARD                                   F0D52180
 CMP21 AXT     -1,4           PREPARE TO STUFF FROM FORWARD DATA        F0D52190
       SXD     STF06+1,4                                                F0D52200
 CMP22 TXL     IRP02,4,**     IS THIS CARD IN RANGE OF IRP              F0D52210
       CAL     BLANKS         NO, FILL OUT GENERATED CARD IMAGE         F0D52220
       LXD     STUFI,1                                                  F0D52230
       TXL     *+3,1,-BCDBF-12                                          F0D52240
       SLW     0,1                                                      F0D52250
       TXI     *-2,1,-1                                                 F0D52260
       CAL     Q32            SET MACRO GENERATED CARD FLAG             F0D52270
       SLW     P1FLG          FOR PASS 2 LISTING PURPOSES               F0D52280
       LXA     CLEVL,4        LOAD MACRO LEVEL                          F0D52290
       PXA     ,4                                                       F0D52300
       ALS     8              SHIFT INTO BIT POSITIONS 21 THRU 27       F0D52310
       ORS     P1FLG          HOLD FOR PASS TWO                         F0D52320
       TRA     CNTRL                                                    F0D52330
       EJECT                                                            F0D52340
       REM     ROUTINES PECULIAR TO MACROS                              F0D52350
       REM                    NOCRS, ORGCRS, PMC, SET                   F0D52360
       REM                                                              F0D52370
 CRSOP AXT     5,4            SET CREATED SYMBOL COUNT                  F0D52380
       SXD     CRSNO,4                                                  F0D52390
       TSX     SSCAN,4       *ASSEMBLE PROGRAMMER'S SYMBOL              F0D52400
       TXI     CRS01,,0       NULL SYMBOL                               F0D52410
       SLT     EXPRR          IS SYMBOL IN ERROR                        F0D52420
       ZET     SYMB2          NO, IS SYMBOL TOO LONG                    F0D52430
       TRA     FIELD        **YES                                       F0D52440
       SLT     EXPND          NO, DID SYMBOL END WITH OPERATION         F0D52450
       TRA     FIELD        **YES                                       F0D52460
       CAL     SYMBL          NO, LOAD SYMBOL                           F0D52470
       ANA     D63            MASK IN THIRD CHARACTER                   F0D52480
       SLW     CRPT1          PROGRAMMER MAY VARY THIRD CHARACTER       F0D52490
       CAL     SYMBL          RELOAD SYMBOL                             F0D52500
       ANA     ADTMK          MASK IN THREE DIGITS                      F0D52510
       XCL                                                              F0D52520
       TSX     DECSV+1,4     *CONVERT TO BINARY                         F0D52530
       STA     CRSCT          RESET ORIGIN                              F0D52540
       STA     LITRL          SAVE FOR PASS TWO                         F0D52550
       SLT     FLDND          WAS THIS END OF VARIABLE FIELD            F0D52560
       TRA     FIELD        **NO                                        F0D52570
 CRS01 TRA     READ1          YES                                       F0D52580
       REM                                                              F0D52590
 NOCOP STZ     CRSNO          RESET CREATED SYMBOL COUNT                F0D52600
       TRA     READ1                                                    F0D52610
       REM                                                              F0D52620
 SETOP TSX     SCANP,4       *EVALUATE SET DEFINITION                   F0D52630
       TXI     AFLAG,,0       NULL DEFINITION                           F0D52640
       OAI                    COMBINE BITS WITH DEFINITION              F0D52650
       SIL     20             AND SET FLAG                              F0D52660
       STI     ADDRS          DEFINE SYMBOL                             F0D52670
       STI     LITRL          SAVE FOR PASS TWO                         F0D52680
       CAL     BCDBF          LOAD LOCATION FIELD                       F0D52690
       TSX     LOCFL,4       *ASSEMBLE LOCATION SYMBOL                  F0D52700
       TZE     FIELD        **IS THERE A LOCATION SYMBOL                F0D52710
       XCL                    YES, ISOLATE FIRST CHARACTER              F0D52720
       LGL     6                                                        F0D52730
       TNZ     *+2            IS SYMBOL SHORTER THAN 6 CHARACTERS       F0D52740
       CAL     BHEAD          YES, APPEND HEADING CHARACTER             F0D52750
       LGR     6                                                        F0D52760
       STQ     SYMBL          HOLD FOR SYMBOL TABLE SEARCH              F0D52770
       ZSA     SET01          RESET LOCATION OF SYMBOL TO BE REDEFINED  F0D52780
       TSX     SSYMT,4       *FIND SYMBOL IN SYMBOL TABLE               F0D52790
 SET01 AXT     **,4           LOAD LOCATION OF SYMBOL                   F0D52800
       TXH     *+3,4,0        IS SYMBOL ALREADY IN TABLE                F0D52810
       TSX     ESYML,4       *NO, DEFINE IT                             F0D52820
       TRA     SET02                                                    F0D52830
       CAL     ADDRS          YES, LOAD NEW DEFINITION                  F0D52840
       LDI*    SRCH2          HOLD OLD DEFINITION                       F0D52850
       SLW*    SRCH2          REDEFINE SYMBOL                           F0D52860
       SLT     EXPRR          WAS SYMBOL IN TRANSFER VECTOR             F0D52870
       LNT     20             NO, WAS OLD DEFINITION SET                F0D52880
       TRA     FIELD        **NO                                        F0D52890
 SET02 TRA     READ1                                                    F0D52900
       EJECT                                                            F0D52910
       REM     MACRO PROCESSOR SUBROUTINES                              F0D52920
       REM                                                              F0D52930
       REM     SUBROUTINES TO PRINT MACRO ERROR MESSAGES                F0D52940
       REM                                                              F0D52950
       REM     UNMATCHED PARENTHESES                                    F0D52960
 MCER1 ZSD     SSN13          RESET SWITCH TO AVOID INITIALIZATION      F0D52970
       REM                    IN CASE THIS IS FIRST ARGUMENT ON ETC CARDF0D52980
       STZ     PARNC          RESET PARENTHESES COUNT                   F0D52990
       CAL     PARFL          LOAD UNMATCHED PAREN FLAG                 F0D53000
       REM     ENTRY FOR OTHER MACRO ERROR                          (23)F0D53010
 MCERR SLW     LITRL          SAVE FLAG FOR PASS TWO                (23)F0D53020
       SXA     MCERX,4                                              (23)F0D53030
       AXT     5$MCERR,4      SET PASS TWO TRANSFER                 (23)F0D53040
       SXD     OPBIN,4        ADDRESS TO PRINT FLAG                 (23)F0D53050
 MCERX AXT     **,4           AND CARD IN ERROR                     (23)F0D53060
       TRA     1,4                                                  (23)F0D53070
 PCCP2 MZE     ,,5$TTL03+1                                          (23)F0D53080
       REM                                                              F0D53090
       REM     MACRO DEFINITION OR COMPILE TABLE FULL                   F0D53100
 OVRLP LDI     MDFNM          LOAD MACRO DEFINITION NAME                F0D53110
       TRA     SRCERR       **TERMINATE ASSEMBLY                        F0D53120
       REM     MACRO LEVEL TABLE FULL                                   F0D53130
 LKTOV LDI     LVLNM          LOAD LEVEL TABLE NAME                     F0D53140
       TRA     SRCERR       **TERMINATE ASSEMBLY                        F0D53150
       REM                                                              F0D53160
       REM     PUSH MACRO LEVEL DOWN                                    F0D53170
 PMCL1 SXA     PMC1X,4        SAVE CALLING LINKAGE                      F0D53180
       LXA     CLEVL,1        LOAD MACRO LEVEL                          F0D53190
       TSX     SETTP,4       *SET UP MACRO COMPILER ROUTING             F0D53200
       PZE     SOURC,,CMPIL                                             F0D53210
       TXI     PMC11,1,1      BUMP MACRO LEVEL IF NO INTERRUPTION       F0D53220
       LXD     PMC21,4        HOLD OLD INTERRUPT LEVEL                  F0D53230
       SXA     MACNO,4                                                  F0D53240
       SXD     PMC21,1        SET NEW INTERRUPT LEVEL                   F0D53250
       TSX     PDOWN,4       *PUSH DOWN MACRO LEVEL                     F0D53260
       PZE     MACNO                                                    F0D53270
       TXI     *+1,1,1        BUMP MACRO LEVEL                          F0D53280
 PMC11 SXA     CLEVL,1        RESET MACRO LEVEL                         F0D53290
 PMC1X AXT     **,4           RELOAD CALLING LINKAGE                    F0D53300
       TRA     1,4                                                      F0D53310
       REM                                                              F0D53320
       REM     PUSH MACRO LEVEL UP                                      F0D53330
 PMCL2 SXA     PMC2X,4        SAVE CALLING LINKAGE                      F0D53340
 CLEVL AXT     **,1           LOAD MACRO LEVEL                          F0D53350
       TXL     PMC21,1,0      IS THIS FIRST LEVEL MACRO                 F0D53360
       TXI     *+1,1,-1       BUMP MACRO LEVEL                          F0D53370
       SXA     CLEVL,1                                                  F0D53380
 PMC21 TXH     PMC23,1,**     WAS MACRO EXPANSION INTERRUPTED           F0D53390
       TSX     RESTP,4       *NO, RESTORE OLD SWITCH                    F0D53400
       PZE     SOURC,,CMPIL                                             F0D53410
       TSX     PUPUP,4       *PUSH UP MACRO LEVEL                       F0D53420
       PZE     MACNO                                                    F0D53430
       LXA     MACNO,1        RESET INTERRUPTION TEST                   F0D53440
       SXD     PMC21,1        TO CURRENT MACRO LEVEL                    F0D53450
 PMC23 ZSD     CMP22          RESET IRP INTERCEPT PENDING POP OF STATUS F0D53460
       TSX     PMCS3,4       *BUMP MACRO STATUS UP                      F0D53470
       AXT     -1,4           RESET DIRECTION OF STUFF                  F0D53480
       SXD     STF06+1,4                                                F0D53490
 PMC2X AXT     **,4           RELOAD CALLING LINKAGE                    F0D53500
       TRA     1,4                                                      F0D53510
       REM                                                              F0D53520
       REM     PUSH MACRO STATUS DOWN                                   F0D53530
 PMCS1 SXA     PMCSX,4        SAVE CALLING LINKAGE                      F0D53540
       LXA     CLEVL,1        LOAD MACRO LEVEL                          F0D53550
       TXL     PMCS2,1,0      IS THIS FIRST LEVEL MACRO                 F0D53560
       CAL     MCIND          NO, PUSH DOWN INDIRECT ADDRESS FLAG       F0D53570
       STA     SSLOC                                                    F0D53580
       CLA     P7             PREPARE TO PUSH                           F0D53590
       LXA     MEPTR,1        TO MACRO EXPANSION TABLE                  F0D53600
       TSX     PUPOP,4       *PUSH DOWN OUTER MACRO STATUS              F0D53610
       ZSD     CMP22          RESET IRP INTERCEPT                       F0D53620
       LXA     MEPTR,4        LOAD POINTER TO THIS PUSH                 F0D53630
       SXD     SSLOC,4        SAVE IN CASE OF ANOTHER PUSH              F0D53640
       TRA     PMCS2+1                                                  F0D53650
       REM     MACRO IS FIRST LEVEL                                     F0D53660
 PMCS2 TRA     PMC2P                                                   $F0D53670
       SXA     MEPTR,1        SET POINTER TO NEXT ENTRY IN TABLE        F0D53680
 PMCSX AXT     **,4           RELOAD CALLING LINKAGE                    F0D53690
       TRA     1,4                                                      F0D53700
       REM                                                              F0D53710
       REM     PUSH MACRO STATUS UP                                     F0D53720
 PMCS3 SXA     PMC3X,4        SAVE CALLING LINKAGE                      F0D53730
       LXA     CLEVL,1        LOAD MACRO LEVEL                          F0D53740
       TXL     PMC3P,1,0      IS THIS FIRST LEVEL MACRO                $F0D53750
       CAL     P7             NO PREPARE TO POP                         F0D53760
       LXD     SSLOC,1        FROM MACRO EXPANSION TABLE                F0D53770
       SXA     MEPTR,1        RESET POINTER TO OVERWRITE OLD PUSH       F0D53780
       TSX     PUPOP,4       *PUSH UP OUTER MACRO                       F0D53790
       CAL     SSLOC          RESTORE INDIRECT ADDRESS FLAG             F0D53800
       STA     MCIND                                                    F0D53810
 PMC3X AXT     **,4           RELOAD CALLING LINKAGE                    F0D53820
       TRA     1,4                                                      F0D53830
       REM                                                              F0D53840
       REM     SET UP ROUTING FOR MACRO PROCESSOR                       F0D53850
 SETTP SXA     SETPX,4        SAVE CALLING LINKAGE                      F0D53860
       CAL*    1,4            LOAD OLD SWITCH                           F0D53870
       STA     ORDRF          SAVE TRANSFER ADDRESS FOR COMPARE         F0D53880
       XCL                    HOLD SWITCH                               F0D53890
       CAL     1,4            LOAD SWITCH ADDRESS,,TRANSFER ADDRESS     F0D53900
       ARS     18             RIGHT ADJUST TRANSFER ADDRESS             F0D53910
       LAS     ORDRF          IS SWITCH ALREADY INITIALIZED             F0D53920
       TRA     *+2            NO                                        F0D53930
       TRA     2,4            YES                                       F0D53940
       STA*    1,4            RESET SWITCH                              F0D53950
       CLA     LKTBP          LOAD POINTER TO NEXT SWITCH               F0D53960
       TNZ     *+2            WAS TABLE ENTRY MADE                      F0D53970
       TSX     MACERR,4     **NO                                        F0D53980
       STD*    1,4            YES, SAVE POINTER TO HIGHER LEVEL SWITCH  F0D53990
       PDC     ,4             COMPUTE LOCATION OF NEXT TABLE ENTRY      F0D54000
       CAL     0,4            LOAD POINTER TO NEXT LINK                 F0D54010
       STQ     0,4            SAVE OLD SWITCH                           F0D54020
       TZE     LKTOV        **IS TABLE EXHAUSTED                        F0D54030
       STD     LKTBP          NO, RESET POINTER TO FOLLOWING LINK       F0D54040
 SETPX AXT     **,4           RELOAD CALLING LINKAGE                    F0D54050
       TRA     3,4                                                      F0D54060
       REM                                                              F0D54070
       REM     RESTORE LOWER LEVEL ROUTING                              F0D54080
 RESTP SXA     RESTX,4        SAVE CALLING LINKAGE                      F0D54090
       SXA     RESTX+1,1      SAVE CHARACTER COUNT                      F0D54100
       CAL     1,4            LOAD SWITCH ADDRESS,,TRANSFER ADDRESS     F0D54110
       STA     REST3          SAVE SWITCH ADDRESS                       F0D54120
       ARS     18                                                       F0D54130
       STA     LKTBB          SAVE OLD TRANSFER ADDRESS FOR COMPARE     F0D54140
       CAL*    1,4            LOAD OLD SWITCH                           F0D54150
       STD     LKTBB          ESTABLISH DUPLICATE DECREMENTS            F0D54160
       LAS     LKTBB          DOES SWITCH COMPARE WITH REQUEST          F0D54170
       TRA     *+2            NO                                        F0D54180
       TRA     REST2          YES                                       F0D54190
       TSX    (PRNT),4       *INVITE CORRESPONDENCE                     F0D54200
       PZE     QUERY,,14                                                F0D54210
       SXA     *+2,2                                                    F0D54220
       TSX     SPACP,2       *LET THEM ANSWER                           F0D54230
       AXT     **,2                                                     F0D54240
       TRA     REST1                                                    F0D54250
 QUERY BCI ,    PLEASE SEND SOURCE PROGRAM TO APPLIED PROGRAMMING ATTN. F0D54260
       BCI     4,H.MELTZER. PUSH START.                                 F0D54270
       REM     REQUEST IS NOT CURRENT SWITCH                            F0D54280
 REST1 PDC     ,1             LOAD POINTER TO NEXT SWITCH               F0D54290
       TXH     *+2,1,0        WAS TABLE ENTRY MADE                      F0D54300
       TSX     MACERR,4     **NO                                        F0D54310
       CAL     0,1            YES, LOAD LAST LINK                       F0D54320
       STD     LKTBB          SET UP DECREMENT AGAIN                    F0D54330
       LAS     LKTBB          DOES THIS LINK COMPARE WITH REQUEST       F0D54340
       TRA     *+2            NO                                        F0D54350
       TRA     REST3          YES                                       F0D54360
       SXA     *+1,1          COMPLEMENT THIS POINTER                   F0D54370
       AXC     **,1                                                     F0D54380
       SXA     REST3,1        SAVE POINTER                              F0D54390
       TRA     REST1                                                    F0D54400
       REM     REQUEST IS CURRENT SWITCH                                F0D54410
 REST2 PDC     ,1             COMPLEMENT POINTER                        F0D54420
       CAL     0,1            PICK UP LINK                              F0D54430
       SLW*    1,4            RESET SWITCH                              F0D54440
       TRA     REST3+2                                                  F0D54450
       REM     REQUEST WAS FOUND IN TABLE                               F0D54460
 REST3 AXC     **,4           LOAD POINTER                              F0D54470
       STD     0,4            INSERT LOWER POINTER IN SWITCH            F0D54480
       CAL     LKTBP          LOAD POINTER TO NEXT LINK                 F0D54490
       SLW     0,1            RESTORE TABLE                             F0D54500
       SXA     *+1,1          COMPUTE TRUE POINTER ADRESS               F0D54510
       AXC     **,1                                                     F0D54520
       SXD     LKTBP,1        RESET POINTER TO NEXT LEVEL LINK          F0D54530
 RESTX AXT     **,4           RELOAD CALLING LINKAGE                    F0D54540
       AXT     **,1           RELOAD CHARACTER COUNT                    F0D54550
       TRA     2,4                                                      F0D54560
       REM                                                              F0D54570
       REM     PUSH DOWN PARAMETER                                      F0D54580
 PDOWN SXA     PDWNX,4        SAVE CALLING LINKAGE                      F0D54590
       LDQ*    1,4            LOAD VALUE OF PARAMETER                   F0D54600
       CAL     LKTBP          LOAD POINTER TO NEXT LEVEL                F0D54610
       TNZ     *+2            WAS TABLE ENTRY MADE                      F0D54620
       TSX     MACERR,4     **NO                                        F0D54630
       STD*    1,4            YES, SAVE POINTER TO HIGHER LEVEL PARAM   F0D54640
       PDC     ,4             COMPUTE LOCATION OF NEXT TABLE ENTRY      F0D54650
       CAL     0,4            LOAD POINTER TO NEXT LEVEL                F0D54660
       STQ     0,4            SAVE OLD PARAMETER                        F0D54670
       TZE     LKTOV        **IS TABLE EXHAUSTED                        F0D54680
       STD     LKTBP          NO, RESET POINTER TO FOLLOWING LINK       F0D54690
 PDWNX AXT     **,4           RELOAD CALLING LINKAGE                    F0D54700
       TRA     2,4                                                      F0D54710
       REM                                                              F0D54720
       REM     PUSH UP PARAMETER                                        F0D54730
 PUPUP SXA     PUPPX,4        SAVE CALLING LINKAGE                      F0D54740
       CAL     1,4            LOAD PARAMETER                            F0D54750
       STA     *+1            INITIALIZE PARAMETER ADDRESS              F0D54760
       LDC     **,4           LOAD POINTER TO CURRENT LEVEL             F0D54770
       TXH     *+2,4,0        WAS TABLE ENTRY MADE                      F0D54780
       TSX     MACERR,4     **NO                                        F0D54790
       LDQ     0,4            YES, LOAD FORMER LEVEL                    F0D54800
       CAL     LKTBP          LOAD POINTER TO NEXT LEVEL                F0D54810
       SLW     0,4            RESTORE TABLE                             F0D54820
       SXA     *+1,4          COMPUTE TRUE POINTER ADDRESS              F0D54830
       AXC     **,4                                                     F0D54840
       SXD     LKTBP,4        RESET POINTER TO NEXT LINK                F0D54850
 PUPPX AXT     **,4           RELOAD CALLING LINKAGE                    F0D54860
       STQ*    1,4            RESET FORMER LEVEL                        F0D54870
       TRA     2,4                                                      F0D54880
       REM                                                              F0D54890
       REM     PUSH / POP STATUS                                        F0D54900
 PUPOP SXA     POPPX,4        SAVE CALLING LINKAGE                      F0D54910
       STP     PUP01+1        SET PUSH / POP SWITCH                     F0D54920
       AXT     3,2            LOAD LENGTH OF SCAN STATUS WORDS          F0D54930
       TSX     PUP01,4       *PUSH / POP SCAN STATUS                    F0D54940
       PZE     SSLOC+1                                                  F0D54950
       LXD     ARGIL,2        LOAD LENGTH OF ARGUMENT TABLE             F0D54960
       TXL     *+3,2,0        ARE THERE ANY ARGUMENTS                   F0D54970
       TSX     PUP01,4       *YES, PUSH / POP ARGUMENTS                 F0D54980
       PZE     MARGS+1                                                  F0D54990
       AXT     1,2            LOAD LENGTH OF IRP SWITCH                 F0D55000
       TSX     PUP01,4       *PUSH/POP IRP INTERCEPT                    F0D55010
       PZE     CMP22+1                                                  F0D55020
       PDX     ,4             LOAD IRP SWITCH                           F0D55030
       TXL     POPPX,4,0      IS CARD IN RANGE OF IRP                   F0D55040
       AXT     4,2            YES, LOAD LENGTH OF IRP STATUS WORDS      F0D55050
       TSX     PUP01,4       *PUSH / POP IRP STATUS                     F0D55060
       PZE     IRPAR+1                                                  F0D55070
 POPPX AXT     **,4           RELOAD CALLING LINKAGE                    F0D55080
       TRA     1,4                                                      F0D55090
       REM                                                              F0D55100
 PUP01 CAL     1,4            LOAD ORIGIN OF LIST TO BE PUSHED / POPPED F0D55110
       ***     PUP02          (TXH IF PUSH, TXL IF POP)                 F0D55120
       STA     *+1            INITIALIZE PUSH ADDRESS                   F0D55130
       CLA     **,2           PUSH FROM                                 F0D55140
       STO     0,1            TO                                        F0D55150
       TXI     *+1,1,-1       BUMP TO COUNT                             F0D55160
       TIX     *-3,2,1        IS LIST EXHAUSTED                         F0D55170
       TRA     2,4            YES                                       F0D55180
 PUP02 STA     *+2            INITIALIZE POP ADDRESS                    F0D55190
       CLA     0,1            POP FROM                                  F0D55200
       STO     **,2           TO                                        F0D55210
       TXI     *+1,1,-1       BUMP FROM COUNT                           F0D55220
       TIX     *-3,2,1        IS LIST EXHAUSTED                         F0D55230
       TRA     2,4            YES                                       F0D55240
       REM                                                              F0D55250
       REM     STUFF MACRO DEFINITION INTO MACDEF                       F0D55260
       REM     STUFF MACRO CALL ARGUMENTS INTO MACEXP                   F0D55270
       REM     STUFF MACRO EXPANSION INTO BCDBF                         F0D55280
       REM                                                              F0D55290
       REM     TO INITIALIZE  CAL *                                     F0D55300
       REM                    TRA STUFY                                 F0D55310
       REM                    *** RETURN                                F0D55320
       REM                    XR1 = -(FIRST LOC TO BE STUFFED INTO)     F0D55330
       REM                    XR2 = -1/+1 TO STUFF FORWARD/BACKWARD     F0D55340
       REM                    XR4 = -(FIRST FORBIDDEN LOCATION) OVERFLOWF0D55350
       REM                          NO TEST FOR STUFFING BACKWARD       F0D55360
       REM                                                              F0D55370
       REM     TO CALL        CAL *                                     F0D55380
       REM                    TRA STUFF                                 F0D55390
       REM                    *** OVERFLOW RETURN (STUFFING FORWARD)    F0D55400
       REM                    *** NORMAL RETURN                         F0D55410
       REM                    XR1 = -(FIRST WORD TO BE STUFFED FROM)    F0D55420
       REM                    XR2 = NUMBER OF CHARS PRECEDING CHAR      F0D55430
       REM                          TO BE STUFFED (0 - 5)               F0D55440
       REM                    XR4 = NUMBER OF CHARACTERS TO STUFF       F0D55450
       REM                                                              F0D55460
       REM     INITIALIZE STUFF ROUTINE                                 F0D55470
 STUFY ACL     Q2             COMPUTE RETURN TO CALL+1                  F0D55480
       STA     STUFX          INITIALIZE RETURN                         F0D55490
       ZSD     STUM2          RESET HANGING OUTPUT CHARACTER COUNT      F0D55500
       ZSD     STF01                                                    F0D55510
       SXD     STUFI,1        SET FIRST LOCATION TO BE STUFFED INTO     F0D55520
       SXD     STF08+1,2      SET DIRECTION OF STUFF                    F0D55530
       SXD     STF10+2,2                                                F0D55540
       AXT     ,0                                                   (23)F0D55550
       TXH     *+2,2,1        IS STUFF BACKWARD                         F0D55560
       AXT     0,4            YES, DELETE OVERFLOW TEST                 F0D55570
       SXD     STF03+1,4      INITIALIZE OVERFLOW TESTS                 F0D55580
       SXD     STF08+2,4                                                F0D55590
 STUFX TRA     **                                                       F0D55600
       REM                                                              F0D55610
       REM     ENTER MACRO INFORMATION INTO MACRO TABLES                F0D55620
 STUFF ACL     Q2             COMPUTE CALL+1                            F0D55630
       STA     STF09          INITIALIZE OVERFLOW RETURN                F0D55640
       ACL     Q1             COMPUTE CALL+2                            F0D55650
       STA     STF11+1        INITIALIZE NORMAL RETURN                  F0D55660
       TXH     STF01,4,0      ANY CHARACTERS TO BE STUFFED              F0D55670
 STF12 LXD     STF08+1,2      PREPARE TO BUMP STUFF POINTER         (23)F0D55680
 STUFI TXI     STF11+1,2,**   ,,LOCATION TO BE STUFFED INTO         (23)F0D55690
 STF01 TXI     *+1,4,**       BUMP COUNT TO INCLUDE PARTIAL STUFFED WORDF0D55700
       CLA     STUM2          COMPUTE PARTIAL STUFFED BIT COUNT         F0D55710
       ARS     1              (6* CHARACTER COUNT)                      F0D55720
       ADD     STUM2                                                    F0D55730
       ARS     16                                                       F0D55740
       STO     STUM2                                                    F0D55750
       STA     STF04          SET SHIFT TO RIGHT ADJUST                 F0D55760
       REM                    PARTIAL STUFFED WORD                      F0D55770
       PXD     ,2             COMPUTE INPUT BIT COUNT                   F0D55780
       ARS     16             (6*(N-1) FOR NTH CHARACTER)               F0D55790
       STO     NERAS                                                    F0D55800
       ARS     1                                                        F0D55810
       ADD     NERAS                                                    F0D55820
       STO     NERAS                                                    F0D55830
       STA     STF05          SET SHIFT TO LEFT ADJUST INPUT CHARACTER  F0D55840
       SUB     STUM2          COMPUTE LEAD OF INPUT CHARACTER           F0D55850
       TMI     STF02          DOES INPUT CHARACTER LEAD OUTPUT CHARACTERF0D55860
       STA     STF07          NO, SET SHIFT TO APPEND LEADING           F0D55870
       REM                    CHARACTERS IN NEXT INPUT WORD             F0D55880
       SUB     Q36                                                      F0D55890
       STA     STF08          SET SHIFT TO RIGHT ADJUST FOLLOWING       F0D55900
       REM                    CHARACTERS IN NEXT INPUT WORD             F0D55910
       ADD     STUM2                                                    F0D55920
       STA     STF05+1        SET SHIFT TO APPEND LEADING               F0D55930
       REM                    CHARACTERS IN FIRST INPUT WORD            F0D55940
       CLA     P7             SET SWITCH TO LOAD NEXT INPUT WORD        F0D55950
       STP     STF06          FOR BALANCE OF FIRST STUFFED WORD         F0D55960
       TRA     STF03                                                    F0D55970
       REM     FIRST INPUT CHARACTER LEADS LAST OUTPUT CHARACTER        F0D55980
 STF02 STA     STF08          SET SHIFT TO RIGHT ADJUST FOLLOWING       F0D55990
       REM                    CHARACTERS IN NEXT INPUT WORD             F0D56000
       ADD     Q36                                                      F0D56010
       STA     STF07          SET SHIFT TO APPEND LEADING               F0D56020
       REM                    CHARACTERS IN NEXT INPUT WORD             F0D56030
       SUB     NERAS                                                    F0D56040
       STA     STF05+1        SET SHIFT TO APPEND LEADING               F0D56050
       REM                    CHARACTERS IN FIRST INPUT WORD            F0D56060
       CAL     P7             SET SWITCH TO RETAIN FIRST INPUT WORD     F0D56070
       STP     STF06          FOR BALANCE OF FIRST STUFFED WORD         F0D56080
       REM     STUFF ROUTINE IS INITIALIZED. STUFF OUTPUT WORDS         F0D56090
 STF03 LXD     STUFI,2        LOAD LOCATION OF FIRST WORD TO BE STUFFED F0D56100
       TXL     STF09,2,**     WILL STUFFED WORD OVERFLOW                F0D56110
       LDQ     0,2            NO, LOAD PARTIAL STUFFED WORD             F0D56120
 STF04 LGL     **             RIGHT ADJUST PARTIAL STUFFED WORD         F0D56130
       LDQ     0,1            LOAD FIRST INPUT WORD                     F0D56140
 STF05 RQL     **             LEFT ADJUST FIRST INPUT CHARACTER         F0D56150
       LGL     **             APPEND INPUT CHARACTERS TO PARTIAL WORD   F0D56160
 STF06 ***     STF07+1,,0     DOES INPUT CHARACTER LEAD OUTPUT CHARACTERF0D56170
       TXI     *+1,1,-1       NO, BUMP INPUT WORD COUNT TO NEXT WORD    F0D56180
       LDQ     0,1            LOAD NEXT INPUT WORD                      F0D56190
 STF07 LGL     **             APPEND LEADING CHARACTERS NEXT INPUT WORD F0D56200
       SLW     0,2            ADD TO TABLE                              F0D56210
       TNX     STF10,4,6      IS ENTRY COMPLETE                         F0D56220
 STF08 LGL     **             NO, RIGHT ADJUST FOLLOWING CHARACTERS     F0D56230
       REM                    NEXT INPUT WORD                           F0D56240
       TXI     *+1,2,**       BUMP STUFFED WORD COUNT                   F0D56250
       TXH     STF06+1,2,**   WILL STUFFED WORD OVERFLOW                F0D56260
       SXD     STUFI,2        YES, SAVE LAST WORD STUFFED               F0D56270
 STF09 TRA     **             RETURN TO CALL+1                          F0D56280
       REM     ENTRY IS COMPLETE                                        F0D56290
 STF10 TXL     *+3,4,5        WAS LAST WORD COMPLETE                    F0D56300
       AXT     0,4            YES, RESET HANGING CHARACTER COUNT        F0D56310
       TXI     *+1,2,**       BUMP STUFFED WORD COUNT FOR FINAL WORD    F0D56320
       SXD     STUFI,2        SAVE LOCATION OF LAST (PART) WORD STUFFED F0D56330
       SXD     STUM2,4        SAVE PARTIAL WORD CHARACTER COUNT         F0D56340
       SXD     STF01,4                                                  F0D56350
 STF11 TXH     STF12,4,0      BUMP COUNT IF PARTIAL WORD EXISTS     (23)F0D56360
       TRA     **             RETURN TO CALL+2                          F0D56370
       REM                                                              F0D56380
       REM     GENERALIZED SCAN ROUTINE                                 F0D56390
       REM                                                              F0D56400
       REM     SCANS FOR SELECTED CHARACTER IN LOW ORDER POSITION       F0D56410
       REM     IN TABLE AT LOCATION C OF LENGTH N                       F0D56420
       REM     TABLE IN DECREASING SORT ORDER                           F0D56430
       REM                                                              F0D56440
       REM     TO INITIALIZE  TSX   SCANS,4                             F0D56450
       REM                    TXL   K,,C+N    RETURN TO K AFTER EACH CH F0D56460
       REM                   (TXH   ,,C+N     NO RETURN)                F0D56470
       REM                    TXL   L,,N      RETURN TO L AFTER SEL CH  F0D56480
       REM                    TXL   M,1,-J-1  RETURN TO M AFTER J EXHST F0D56490
       REM                   (TXH   M,1,-J    SCAN BACKWARD)            F0D56500
       REM                                                              F0D56510
       REM     TO CALL, REGISTERS UPDATED                               F0D56520
       REM                    TRA   SCANT                               F0D56530
       REM     TO CALL, REGISTERS UNDISTURBED                           F0D56540
       REM                    TRA   SCANU                               F0D56550
       REM                OR  TXI   SCANU+1,2,1                         F0D56560
       REM                                                              F0D56570
       REM     ON RETURN      XR1, XR2 AT LAST CHARACTER SCANNED        F0D56580
       REM                    CURRENT CHARACTER IN AC                   F0D56590
       REM                    SELECTED CHARACTER POSITION IN XR4        F0D56600
       REM                                                              F0D56610
 SCANS CAL     1,4            LOAD RETURN1,,ORIGIN AT END OF TABLE      F0D56620
       SLW     SCAN6          INITIALIZE SINGLE CHARACTER RETURN        F0D56630
       ARS     18                                                       F0D56640
       STA     SCAN4          INITIALIZE ORIGIN OF SELECTED CHAR TABLE  F0D56650
       CAL     2,4            LOAD RETURN2,,LENGTH OF TABLE             F0D56660
       SLW     SCAN5          INITIALIZE SELECTED CHARACTER RETURN      F0D56670
       LDQ     3,4            LOAD RETURN3,,END OF SCAN TEST            F0D56680
       STQ     SCAN2          INITIALIZE TEST FOR END OF SCAN           F0D56690
       CAL     D1             PRELOAD BUMPER BACKWARD                   F0D56700
       TQP     *+2            IS SCAN BACKWARD                          F0D56710
       CAL     D32767         NO, LOAD BUMPER FORWARD                   F0D56720
       STD     SCAN1          SET DIRECTION OF SCAN                     F0D56730
       TRA     4,4                                                      F0D56740
       REM                                                              F0D56750
 SCANT TXL     SCAN2,2,5      IS WORD EXHAUSTED                         F0D56760
 SCAN1 TXI     *+1,1,**       YES, BUMP TO NEXT WORD                    F0D56770
       TXI     SCANT,2,-6     RESET CHARACTER COUNT                     F0D56780
 SCAN2 ***     **,,**         IS SCAN EXHAUSTED                         F0D56790
       LDQ     0,1            NO, LOAD CURRENT WORD                     F0D56800
       TXL     SCAN3,2,0      IS FIRST CHARACTER NEXT                   F0D56810
       PXD     ,2             NO, COMPUTE LENGTH OF SHIFT               F0D56820
       PDX     ,4                                                       F0D56830
       RQL     6              ROLL UP NEXT CHARACTER                    F0D56840
       TIX     *-1,4,1        IS THIS IT                                F0D56850
 SCAN3 ZAC                    YES, LOAD NEXT CHARACTER                  F0D56860
       LGL     6                                                        F0D56870
       LXD     SCAN5,4        LOAD LENGTH OF SPECIAL CHARACTER TABLE    F0D56880
 SCAN4 LAS     **,4           IS IT THIS CHARACTER                      F0D56890
       TRA     SCAN6          NO, NOT IN TABLE                          F0D56900
 SCAN5 ***     **,,**         YES, RETURN                               F0D56910
       TIX     SCAN4,4,1      IS TABLE EXHAUSTED                        F0D56920
 SCAN6 ***     **,,**         YES, IS SINGLE CHARACTER RETURN REQUESTED F0D56930
 SCANU TXI     *+1,2,1        NO, BUMP TO NEXT CHARACTER                F0D56940
       TXL     SCAN3,2,5      IS WORD EXHAUSTED                         F0D56950
       TRA     SCAN1          YES                                       F0D56960
       EJECT                                                            F0D56970
       REM     MACRO PROCESSOR ERASABLE STORAGE AND CONSTANTS           F0D56980
       REM                                                              F0D56990
 ARGNO PZE     ,,**           MACRO ARGUMENT NUMBER                     F0D57000
 ARGWD PZE                    MACRO LOCATION ARGUMENT                   F0D57010
 COUNT PZE     ,,**           MACRO FIELD COUNT                         F0D57020
 CRSNO PZE     **,,5          POINTER TO LAST CREATED SYMBOL,,COUNT     F0D57030
 LCARG PZE                    MACRO LOCATION ARGUMENT                   F0D57040
 MACNO PZE     **,,**         MACRO LEVEL,,POINTER TO NEXT LEVEL        F0D57050
 MCIND PZE     **             FLAG FOR INDIRECTLY ADDRESSED MACRO       F0D57060
 MOPCH PZE                    NEXT CHARACTER IN MACRO VARIABLE FIELD    F0D57070
 MOPMQ PZE                    RESIDUE OF WORD IN MACRO VARIABLE FIELD   F0D57080
 MOPNM PZE                    NAME OF MACRO BEING DEFINED               F0D57090
 MOPTR PTW     MACOP+1,,-VECTOR+1 SECOND WORD IN COMBINED OPERATN TABLE F0D57100
       REM                    DECREMENT IS POINTER TO NEXT AVAILABLE    F0D57110
       REM                    SPACE FOR HEADING IN MACRO DEF TABLE      F0D57120
       REM                    TABLE EXTENDS DOWN TOWARDS MACEXP         F0D57130
       REM                    PASS 2 TRANSFER ADDRESS WILL REPLACE THIS F0D57140
       REM                    WHEN PASSED FORWARD ON INTERMEDIATE TAPE  F0D57150
 PARNC PZE     **             MACRO PARENTHESES COUNT                   F0D57160
 PCONT PZE     ,,**           MACRO PARTIAL FIELD OR HOLLERITH COUNT    F0D57170
 PSYMB PZE                    MACRO PARTIAL FIELD                       F0D57180
 RMTEN PZE     ,,-*-1    (1)  POINTER TO MOST RECENTLY DEFINED SEQUENCE F0D57190
       PZE     ,,**      (2)  POINTER TO FIRST REMOTE SEQUENCE          F0D57200
 STUM2 PZE     **,,**         PARTIAL STUFFED WORD BIT COUNT,,CHAR COUNTF0D57210
 TOTAL PZE     ,,**           MACRO VARIABLE FIELD COUNT                F0D57220
 MDFCT PZE     **,,**    (1)  MACRO DEFINITION WORD,,CHARACTER COUNTS   F0D57230
 ARGIL PZE     ,,**      (2)  ,,NUMBER OF ARGUMENTS                     F0D57240
 SSLOC PZE     **,,**    (3)  IND ADD FLAG,,POINTER TO LAST SAVED SCAN  F0D57250
       REM     FOLLOWING PARAMS DESCRIBE IRP CARD WITHIN MACRO DEF TABLEF0D57260
 IRPNO PZE     **,,**    (1)  PUNCTUATION CHARACTER,,ARGUMENT COUNT     F0D57270
 IRPPW PZE     **,,**    (2)  MACRO SKELETON WORD,,CHARACTER COUNTS     F0D57280
 IRPSD PZE     **,,**    (3)  BEGINNING OF STRING WORD,,CHARACTER COUNT F0D57290
 IRPAR PZE     **,,**    (4)  REF TO THIS ARG,,POINTER TO NEXT ARG      F0D57300
 DARGS BES     64             BCD MACRO DEFINITION ARGUMENTS            F0D57310
       BSS     63        (1)  POINTERS TO ARGS IN MACRO EXPANSION TABLE F0D57320
 MARGS PZE     **,,**    (2)  -(LOC OF STRING),,(LENGTH OF STRING)      F0D57330
 LKTBB TXI     **,,**         OLD TRANSFER ADDRESS,,POINTER             F0D57340
 LKTBP DUP     1,112                                                    F0D57350
       PZE     ,,*+1          ,,POINTER TO NEXT LINK                    F0D57360
       PZE                    LINK TABLE END                            F0D57370
       REM                                                              F0D57380
 MOPP2 MZE     ,,5$UNLOP+1    PASS 2 TRANSFER TO PRINT MACRO CARD       F0D57390
 RMTP2 PZE     ,,5$RMTOP      PASS TWO ADDRESS TO RESET HEADING CHAR    F0D57400
 PRNLT TXI     SSN10,,1       TRANSFER TO DISABLE SCAN ON ,             F0D57410
 PRNLS TXI     SSN07,,0       TRANSFER TO ENABLE SCAN ON ,              F0D57420
       REM                                                              F0D57430
 MDTBL PZE     63        (1)  ARGUMENT MARK                             F0D57440
       PZE     62        (2)  VARIABLE FIELD MARK                       F0D57450
       PZE     01        (3)  OPCODE MARK                               F0D57460
       PZE     00        (4)  END OF RECORD MARK                        F0D57470
       REM                                                              F0D57480
 MPKMK OCT     007777770000   MASK FOR CARD COLUMNS 8 - 10              F0D57490
       OCT     777777777777   (1)                                       F0D57500
       OCT     777777777700   (2)                                       F0D57510
       OCT     777777770000   (3)                                       F0D57520
       OCT     777777000000   (4)                                       F0D57530
       OCT     777700000000   (5)                                       F0D57540
       OCT     770000000000   (6)                                       F0D57550
 MARMK OCT     000000000000   (7)                                       F0D57560
       REM                                                              F0D57570
 IRPMK BCI     1,0IRP 0                                                 F0D57580
 BCDMM BCI     1,BCD000                                                 F0D57590
 BCIMM BCI     1,BCI000                                                 F0D57600
 TTLMM BCI     1,TTL000       THIRD OF FOUR ENTRIES IN TABLE        (23)F0D57610
 REMMM BCI     1,REM000                                                 F0D57620
 RMTMM BCI     1,RMT000                                                 F0D57630
 ENDMM BCI     1,END000                                             (23)F0D57640
 CRSNM BCI     1,CRSYMB                                                 F0D57650
 LVLNM BCI     1,LEVEL                                                  F0D57660
 MDFNM BCI     1,MACRO                                                  F0D57670
 PARFL BCI     1, ()                                                    F0D57680
 UNDFL BCI     1, U                                                     F0D57690
 CRPT1 BCI     1,00.000       DECIMAL POINT FOR CREATED SYMBOL CHAR 3   F0D57700
 CRPT2 BCI     1,.0000        DECIMAL POINT FOR CREATED SYMBOL CHAR 2   F0D57710
       REM                                                              F0D57720
 NUM04 MPY     INP06                                                (25)F0D57730
       STQ     INP06                                                (25)F0D57740
       TRA     UPD03          RETURN                                (25)F0D57750
       PZE                    (NOT USED)                            (25)F0D57760
       REM                                                              F0D57770
 MCTBL BCI     1,00000(  (1)                                            F0D57780
       BCI     1,00000,  (2)                                            F0D57790
       BCI     1,00000   (3)                                            F0D57800
       BCI     1,00000)  (4)                                            F0D57810
       REM                                                              F0D57820
 ETCCD BCI     3,       ETC                                             F0D57830
 RMTCD BCI     6,       REM      REMOTE SEQUENCES                       F0D57840
       REM                                                              F0D57850
       REM     FORM OF ENTRY IN MACRO DEFINITION TABLE                  F0D57860
       REM     HEADING, MACRO DEF  PZE ,,ARGUMENT COUNT                 F0D57870
       REM                        (MZE    IF LAST ARG IS SYMBOLIC LOC)  F0D57880
       REM              RMT SEQ    PZE HEAD CHAR,,PTR TO NEXT SEQUENCE  F0D57890
       REM                         CARD IMAGE SKELETONS FOLLOW          F0D57900
       REM                                                              F0D57910
       REM     STRUCTURE OF SKELETONIZED CARD IMAGE                     F0D57920
       REM     FIELD MARKS (OCTAL) 01  OPCODE FOLLOWS                   F0D57930
       REM                         76NN  VARIABLE FIELD FOLLOWS     (24)F0D57940
       REM                        (PRECEDED BY NN CARD CHARACTERS)  (24)F0D57945
       REM                         00  END OF RECORD                    F0D57950
       REM                         (END MARK IS DOUBLE END OF RECORD)   F0D57960
       REM     FORM OF FIELD, ARG  77NN  WHERE NN IS ARGUMENT NUMBER    F0D57970
       REM                    OR   7700  FLAG FOR PROGRAMMERS ETC       F0D57980
       REM                    OR   NNXX  WHERE NN IS CHARACTER COUNT+1  F0D57990
       REM                                                              F0D58000
       REM                                                              F0D58010
 ETCPC STZ     SYMBL          DELETE ADDED FIELD                       $F0D58020
       LXA     GSAV2,2        RESTORE X2                               $F0D58021
       TRA     GSC18                                                   $F0D58022
 HYPOP CAL     OPBIN          LOAD OPCODE                              $F0D58023
       SLW     LITRL          SAVE FOR PASS TWO                        $F0D58024
       AXT     5$HYPOP,4      SET PASS TWO TRANSFER ADDRESS            $F0D58025
       SXD     OPBIN,4                                                 $F0D58026
       TSX     ESYML,4       *DEFINE POSSIBLE LOCATION FIELD           $F0D58027
       CLA     Q1             ORDER TAKES ONE WORD                     $F0D58028
       TSX     BPCTR,4       *BUMP LOCATION COUNTER                    $F0D58029
       TRA     READ1                                                   $F0D58030
       REM                                                             $F0D58031
 SRCS1 LDQ     INSBF+1        LOAD SOURCE CARD LOCATION FIELD          $F0D58032
       ZAC                                                             $F0D58033
       LGL     6                                                       $F0D58034
       ERA     ASTRK          IS IT *REMARK CARD                       $F0D58035
       TZE     *+4            YES                                      $F0D58036
       ERA     Q7             IS IT $REMARK CARD                       $F0D58037
       TZE     *+2            YES                                      $F0D58038
       CAL     D32767         NO,PUT OCTAL 77777 IN DECREMENT          $F0D58039
       STD     INP2A+1        SET REMARK CARD SWITCHES                 $F0D5803A
       STD     INP3A                                                   $F0D5803B
       STD     INPCH                                                   $F0D5803C
       CAL     SRCID          COMBINE SOURCE SERIALIZATION             $F0D5803D
       TRA     SRCSW+4                                                 $F0D5803E
INP2A  ZSD     DELUP+2        RESET HANGING INGORE SWITCH              $F0D5803F
       TXH     INP02+17,4,-1  TRANSFER IF REMARKS CARD                 $F0D5803G
       TRA     INP02+8                                                 $F0D5803H
INP3A  TXH     INP04-7,4,-1   TRANSFER IF REMARKS CARD                 $F0D5803I
       CAL     BCDBF+1        LOAD SOURCE WORD 2                       $F0D5803J
       TRA     INP03+6                                                 $F0D5803K
INPCH  TXH     INP03,4,-1     IF REMARKS CARD-DELETE AND PRINT         $F0D5803L
       CAL     INSBF+2        LOAD  SOURCE  WORD  2                    $F0D5803M
       ERA     IGNR           IS IT IGNORE                             $F0D5803N
       TNZ     INP03          NO,DELETE AND PRINT CARD                 $F0D5803O
       AXT     -1,4           YES,SET IGNORE SWITCH                    $F0D5803P
       SXD     DELUP+2,4                                               $F0D5803Q
       TRA     INP03          DELETE,DO NOT PRINT                      $F0D5803R
IGNR   BCI     1, IGNOR                                                $F0D5803S
CALN1  NZT     ABSFLG         IS IT ABSOLUTE ASSEMBLY                  $F0D5803T
       STL     TVFLG          NO,SET TRANSFER VECTOR NAME FLAG         $F0D5803U
       TRA     CALNM+3                                                 $F0D5803V
 MAC2A TSX     ESYML,4       *DEFINE LOCATION FIELD                    $F0D5803W
       TRA     MAC07+3                                                 $F0D5803X
 ESYMZ TXH     ESYMS+1,4,**   DID WE OVERLAP MACRO TABLE               $F0D5803Y
       TRA     ESYMS-5        YES, CALL SOURCE ERROR                   $F0D5803Z
 EOFIN STZ     TTLFG          KILL SUBTITLE                         (26)F0D58040
       TRA     EOFER                                                (26)F0D58041
 ETEST AXT     0,2                                                     $F0D58042
       LDI     (SCHU)+MINTAP                                           $F0D58043
       RNT     100           IS IT REDUNDANCY ERROR                    $F0D58044
       TRA     SRCRR+2       YES-MACHINE ERRROR                        $F0D58045
       TRA     *+2           NO - BINARY CARD                          $F0D58046
 EOFER AXT     -1,2          END  OF FILE CARD                         $F0D58047
       TSX     FPRINT,4      PRINT POSSIBLE REASON FOR ERROR           $F0D58048
       PZE     SRCRM,,10                                               $F0D58049
 AECRD CAL     ECARD,2       SET UP ERROR MESSAGE                      $F0D5804A
       SLW     ENDER+4                                              (26)F0D5804B
       TSX     FPRINT,4      PRINT ERROR MESSAGE                       $F0D5804C
       PZE     ENDER,,6       OFF LINE                              (26)F0D5804D
       TSX     (TAPE),4       BACKSPACE OVER EOF                    (26)F0D5804E
       PZE     BSREC,,(SKDP)  OR BINARY                             (26)F0D5804F
       PZE     ,,MINTAP                                             (26)F0D5804G
       TSX     WRFBK,4        WRITE LAST PARTIAL LISTING BUFFER     (26)F0D5804H
       TSX     (SECL),4       CALL SOURCE ERROR RECORD              (26)F0D5804I
ENDER  BCI     6, HAS CAUSED FAP TO READ        CARD                (26)F0D5804.
       DUP     1,4            PATCH SPACE                           (26)F0D5804)
       PZE                                                          (26)F0D5804J
 OTPT3 STA     BCDBF+13       AS LOW ORDER 18 BITS                     $F0D5804M
       STT     BCDBF+13       OF WORD 14                               $F0D5804N
       TRA     OTPT2+1                                                 $F0D5804O
 RMT03 LXA     CLEVL,4        GET MACRO NESTING LEVEL                  $F0D5804P
       TXH     RMT02+2,4,0    WAS THIS NESTED DEFINITION               $F0D5804Q
       SXD     ESYMZ,2        NO,INITIALIZE TEST                       $F0D5804R
       TRA     RMT02+2                                                 $F0D5804S
 PMC2P CLA     STPTR          FLOAT MACRO EXPANSION TABLE              $F0D5804T
       ADM     MOPTR          BETWEEN SYMBOL TABLE AND                 $F0D5804U
       ARS     1              MACRO DEFINITION TABLE                   $F0D5804V
       PDX     ,1                                                      $F0D5804W
       SXD     ESYMZ,1        INITIALIZE SYMBOL TABLE OVERFLOW TEST    $F0D5804X
       TRA     PMCS2+1                                                 $F0D5804Y
 STP0A TMI     READ1         TRANSFER IF CC7 * COMMENTS CARD           $F0D5804Z
       ZSD     COMCD+2       OTHERWISE RESET SWITCH                    $F0D58050
       TRA     COMCD+4                                                 $F0D58051
 FRPA1 CAL*    (FGBX)                                                  $F0D58052
       ANA     Q4            IS THIS AN IBSFAP JOB                     $F0D58053
       TNZ     ENDC+2        YES                                       $F0D58054
       RNT     000040        NO,IS END CARD SETTING 10 SPECIFIED       $F0D58055
       ZSD     WRIT0+3       NO,SET SWITCH TO UNBUFFER LISTING OUTPUT  $F0D58056
       TRA     ENDC+2                                                  $F0D58058
 FRPA2 ZET     FCFLG         IS THIS FIRST CARD GROUP                  $F0D58059
       TRA     FIELD       **NO                                        $F0D58060
  GO   TSX     SSCAN,4      *FIND VARIABLE FIELD                       $F0D58064
       TRA     TEST          VARIABLE FIELD BLANK                      $F0D58065
       CAL     SYMBL         IS VARIABLE FIELD                         $F0D58066
       ERA     TROF          FORTRAN                                   $F0D58067
       TZE     FORT          YES                                       $F0D58068
       CAL     SYMBL         NO, IS VARIABLE FIELD                     $F0D58069
       ERA     SISBI         IBSYS                                     $F0D58070
       TZE     TBLE          YES                                       $F0D58071
 TEST  LDI*    (FGBX)                                                  $F0D58072
       RNT     4             IS THIS AN IBSFAP JOB                     $F0D58073
       TRA     FORT          NO, THIS IS A FORTRAN JOB                 $F0D58074
 TBLE  CLA     SIZE                                                    $F0D58075
       STD     SYMSIZ        CHANGE SST SIZE                           $F0D58076
       AXT     LIBTBL,1                                                $F0D58077
 LOOP  CLA     SYSTBL+LIBTBL,1                                         $F0D58078
       STO     SYMTBL+LIBTBL,1                                         $F0D58079
       TIX     LOOP,1,1                                                $F0D58080
 FORT  ZSD     ESYMT+2       SET SWITCH TO SAVE SST                    $F0D58081
       TRA     READ1                                                   $F0D58082
 TROF  BCI     1,ORTRAN                                                $F0D58083
 SISBI BCI     1,0IBSYS                                                $F0D58084
 SIZE  PZE     **,,-LIBTBL                                             $F0D58085
PATCHA SLN     FLDND         SENSE LIGHT INDICATES END OF VAR. FIELD   $F0D58092
       TRA     UPSCX         RETURN TO RELOAD CALLING SEQUENCE         $F0D58093
 JPLCH TSX     (LOAD),4,1   *AFTER PASS ONE, CALL PASS TWO.            $F0D58094
       BCI     1,9F0500      REC. 6 PARAMETER. PASS 2.                 $F0D58095
 MSC07 ERA     BLANK          IS PUNCTUATION )                      (24)F0D58096
       TZE     MSC06          YES, STUFF AS PART OF OP CODE         (24)F0D58097
       ERA     MINUS          NO, IS PUNCTUATION (                  (24)F0D58098
       TXL     MSC08,2,-2    (MAKE THE CHECK ONLY IF IT WAS         (24)F0D58099
       TXL     MSC08,1,5      FOUND IN CARD COLUMN EIGHT)           (24)F0D58100
       TZE     MSC06          YES, STUFF AS PART OF OP CODE         (24)F0D58101
 MSC08 ERA     PRIME          IS PUNCTUATION BLANK                  (24)F0D58102
       TZE     MSC05          IF YES, STUFF VARIABLE FIELD FLAG     (24)F0D58103
       LDQ     RESIDU         NO, RESET SCAN POSITION TO INCLUDE    (24)F0D58104
       CAL     CHRCTR         CURRENT PUNCTUATION CHARACTER         (24)F0D58105
       LGR     6                                                    (24)F0D58106
       STQ     RESIDU                                               (24)F0D58107
       TXI     MSC10+2,1,1    GO TO VARIABLE FIELD SCAN             (24)F0D58108
 MSC09 LDQ     MOPMQ          RESTORE BEGINNING OF VARIABLE         (24)F0D58109
       STQ     RESIDU         FIELD FOR SCAN ROUTINES               (24)F0D58110
       CAL     MOPCH                                                (24)F0D58111
       SLW     CHRCTR                                               (24)F0D58112
       LAC     VRFLD,1        LOAD CHARACTER AND WORD POSITIONS     (24)F0D58113
       LDC     VRFLD,2        OF VARIABLE FIELD SCAN                (24)F0D58114
       TXH     *+2,2,1        COMPUTE NUMBER OF CHARACTERS          (24)F0D58115
       TXI     MSC05+3,1,13   PRECEDING VARIABLE FIELD              (24)F0D58116
       TXI     MSC05+3,1,19                                         (24)F0D58117
 G10PA SUB     D1            *OMIT BLANK PUNCTUATION CHARACTER         $F0D58118
       STO     PCONT          FROM STUFF COUNT.                        $F0D58119
       REM     REENTRY FOR FIELD IS AN ARGUMENT WITH BLANK PUNCTUATION.$F0D58120
 G10P1 SXD     GSC09+3,4     *SET FIRST BLANK SWITCH TO AVOID          $F0D58121
       REM                    UPDATING PCONT TO INCLUDE                $F0D58122
       REM                    BLANK PUNCTUATION ONLY.                  $F0D58123
       TXL     GSC11,4,-2    *IS FIELD AN ARGUMENT...                  $F0D58124
       STZ     PCONT          YES.ZERO PARTIAL STUFF COUNT IN CASE     $F0D58125
       REM                    GSC11+3 IS REACHED BEFORE GSC10+2.       $F0D58126
       TRA     MSC23         *ENTRY WAS FROM GSC10+1.                  $F0D58127
 GSFPA SXD     GSFP2,1       *STORE NO.+5 TO STUFF 2ND TIME.           $F0D58128
       AXT     19,1           STUFF 18 CHARACTERS FIRST TIME.          $F0D58129
       TSX     GSCS1-2,4     *SET GSCFX TO RETURN TO PATCH.            $F0D58130
 GSFP1 AXT     **,4          *SET GSCFX TO RETURN TO CALLER.           $F0D58131
       AXT     -4,1           UPDATE GSCX1 WITH LOCATION               $F0D58132
       SXA     GSCX1,1        TO STUFF FROM NEXT.                      $F0D58133
 GSFP2 TXI     GSCS1-2,1,**  *STUFF REMAINDER OF FIELD.                $F0D58134
 MP1   TXH     OVRLP,4,**     DID TABLE OVERFLOW                       $F0D58135
       SXD     STUFI,4        NO, PICK UP LAST LOCATION USED           $F0D58136
       TRA     RESTF+3                                                 $F0D58137
       REM                                                             $F0D58138
SKF01  CLA     UPT02+1        WAS SKPFIL TAPE                          $F0D58139
       SUB     UPDTAP         SAME AS UPDATE INPUT                     $F0D58140
       TNZ     SOURC        **NO                                       $F0D58141
       ZSA     IPRECT         YES,ZERO MEANINGLESS COUNT               $F0D58142
       TSX     RDUPD,4       *REINITIATE BUFFER READING                $F0D58143
       AXT     -1,4           SET EMPTY BUFFER SWITCH                  $F0D58144
       SXD     UPDSW,4                                                 $F0D58145
       TRA     SOURC                                                   $F0D58146
 EVNOP STL     EVNFLG         SET FLAG FOR EVEN PROLOGUE, ETC.         $F0D58147
       LDI     LOCTR          GET PROGRAM COUNTER                      $F0D58148
       CAL     Q1                                                      $F0D58149
       RFT     1              IS IT ODD..                              $F0D58150
       TSX     BPCTR,4       *YES, BUMP IT                             $F0D58151
       TRA     READ1                                                   $F0D58152
       REM                                                             $F0D58153
       REM     PATCH TO ADJUST PROGRAM CARD FOR EVEN                   $F0D58154
 ENDFP