. . P H A S E F I V E . . THIS PHASE OF THE COMPILER GENERATES THE OBJECT CODE. . FOR ARITHMETIC AND LOGICAL EXPRESSIONS THE ORDER OF COMPUTATION . IS DETERMINED AND ARITHMETIC REGISTERS ARE ASSIGNED. FOR . SUBPROGRAMS THE PROLOGUE AND EXIT PORTIONS ARE GENERATED . AT THE END OF THE SUBPROGRAM FROM FILES PREPARED DURING THE . GENERATION OF THE MAIN BODY OF THE CODE. STORAGE IS ASSIGNED . FOR CONSTANTS NOT ALREADY ASSIGNED AND REFERENCED STATEMENT . LABELS ARE GIVEN THE CURRENT VALUE OF INSTRUCTION LOCATION . COUNTER. . . N5REG . DEFINES REGISTERS . . SECTION 1 - PHASE 5 MAIN CONTROL . . SECTION 1.0.0 . THIS SECTION INITIALIZES THE PHASE 5 FLAGS AND . COUNTERS. . $(1) RES 0 LIT N5MN* . EXEC8C L A0,BUGERR ER IALL$ SZ IRW1S+11 L,M A0,63 SZ GPT0,A0 JGD A0,$-1 L,M A0,3 SZ PSEVEN,A0 SZ PZERO,A0 JGD A0,$-2 L,M A2,PZERO S A2,PZERO L,M A1,PSEVEN S A1,PSEVEN S A2,GPT0 DS A1,GPT0+7 DS A1,GPT1+7 DS A1,GPT2+7 DS A1,GPT3+7 DS A1,GPT4+7 DS A1,GPT5+7 DS A1,GPT6+7 S A1,GPT7+7 L,M A0,11 SZ IRW1,A0 JGD A0,$-1 L A1,(010000) L,M A0,1 SZ IRW2 S A1,IRW2,A0 A,M A1,010000 A,M A0,1 TLE,M A0,12 J $-4 L A1,(2,1) SZ A2 L,M A0,7 DS A1,AREGB1,A1 SZ,H1 AREGB1,*A1 JGD A0,$-2 L,M A1,0 L,M A2,0 L A0,(16,0) L,M A4,7 L,M A5,7 DS A1,AREGB2,*A0 JGD A5,$-1 AN,M A0,8*16-2 A,M A2,020000 JGD A4,$-5 L,M A0,3 SZ TRACFL,A0 JGD A0,$-1 L,M A1,0 L A2,(1,0) . LOGICAL REGISTERS AVAILABLE L,M A3,10 TZ,M 0 N5MNG A,M A1,1 TNZ,S6 CR131K . TEST LARGE CORE OPTION J N5MNH TNE,M A1,1 . B1 IS PHYSICALLY THERE J N5MNT . BUT LOGICALLY UNAVAILABLE N5MNH TZ,S2 N0RGTB+1,A1 . TEST IF PHYSICAL REGISTER AVAILABLE S A1,IREQT,*A2 . SET LOGICAL REGISTER NUMBER N5MNT JGD A3,N5MNG S A1,IREQT,A2 S A1,IREQT+1,A2 . REMOVE GARBAGE AT END OF TABLE L,M A0,10 . NORMAL NUMBER OF INDEX REGISTERS TZ,S2 U1110A AN,M A0,2 . ADJUST FOR 1110 CALLING SEQUENCES TZ,S6 CR131K . SUBTRACT ONE FOR B1 USED IN LARGE CORE AN,M A0,1 S A0,MXIRRG TZ,S6 CR131K A,M A0,1 A,M A0,1 RSSB L,M A3,0,A2 . ONE MORE THAN LOGICAL REGISTERS AN,M A0,1 . LOGICAL REGISTERS ARE ZERO RELATIVE AN,M A3,1 L A1,(1,0) TNE,H2 A0,IREQT,*A1 J RSSA . THIS REGISTER EXISTS JGD A3,$-2 AN,M A0,1 . TRY NEXT LOWER REGISTER J RSSB RSSA A,M A0,1 . SET BACK TO PHYSICAL REGISTER NUMBER S,H1 A0,MXIRRG SZ CRTRAC L,M A0,1 TZ,S2 CRFLGS NON ZERO IS CTS CALL TNZ,H1 CRDBUG NON ZERO IS Y OPTION J N5MN1 S A0,TRACFL TRACE STORES S A0,TRACFL+1 TRACE LOOPS S A0,TRACFL+2 TRACE LABELS S A0,CRTRAC N5MN1 TZ,S3 U1110A . IF ZERO, USE NON REENT. MATH LIB. J $+5 L,M A1,05 L,M A0,15 S,S5 A1,REEXNM,A0 . REMOVE $ SIGNS FROM JGD A0,$-1 . EXP LIB NAMES L,M A0,('NIOCB$') . PRODUCTION NAME OF NIOCB$ TZ,S6 CRNCCB . TEST FOR NON CONFIGURED TESTING L,M A0,('JIOCB$') . TESTING NAME OF NIOCB$ S,H2 A0,N5NIOCB DO 1-LMSC , PROC TZ,S2 U1110A . REENTRANT LIBRARY J N5MN2 L,M A0,('NIO3$ ') S,H2 A0,FNI03U L,M A0,('NIO4$ ') S,H2 A0,FNI04U DO LMSC , PROC END N5MN2 . L,M AA1,1 TNZ,H2 CRPRO S,H1 AA1,GLDMFL INITIALIZE SO FIRST INTERNAL ROUTINE WILL BE RECOGINZE . OPEN F61 TO WRITE OWF61 L,M B11,LEXD LENGTH OF SUBEXD LOGIFT JGD B11,$+1 L,H1 A0,SUBEXD,B11 SZ,H1 SUBEXD,B11 S,H1 A0,SUBEXQ,B11 SET UP LENGTHS IN SUBEXQ LOGIFT S,H2 A0,SUBEXQ,B11 LOGIFT JGD B11,$-4 L,M AA1,LC1 SET SYMBOLIC COUNTER TO INSTRUCTIONS S AA1,LCN TNZ,S6 CR131K J ERTRAP L,M AA1,1 131K S,S1 AA1,IRW2+1 . PERMENENTLY ASSIGN B1 131K TZ CRPRO 131K J PHS5G 131K SLJ GEN 131K MI 1,(LX B1,('USRAD$'),,H1),NAME 131K EX $+1 131K L,M AA1,020 131K S,S2 AA1,OLDITM . 18 BITS AND NO B1 - PLEASE 131K SLJ GEN 131K MI 1,(LXI B1,*-1,*0,XM),ABS 131K EX $+3 ERTRAP TZ CRPRO J PHS5G ERTRAX SLJ GEN PCI 0,(((11))-3) EX $+1 DO JPL , TZ,S2 U1110A DO JPL , J ERTRAXC SLJ GENR MI 1,(LMJ P1,('NINTR$')),NAME EX $+1 ERTRAXB . S,H2 B11,IOWLK SLJ GENWLK J PHS5G ERTRAXC SLJ GENR MI 1,(LMJ P1,('TINTR$')),NAME EX ERTRAXB . . . SECTION 1.0.1 . THE FOLLOWING READS INTO 'ITEM' FROM FILE 50 THE . FIRST ITEM OF A MAJOR GROUP. FOR EXAMPLE A LABEL . OR A STATEMENT TYPE OR A BEGIN DO ITEM. . PHS5G* LA AA1,ITEMQ . HAS NEXT ITEM BEEN READ IN YET SZ TREQFL JZ AA1,PHS5G0 NO SZ ITEMQ YES, ERASE ITEMQ SA AA1,ITEM AND TRANSFER ITEM J PHS5G1 AVOID READ IN PHS5G0 LMJ B11,FILE50 READ IN NEXT FILE 50 ITEM + ITEM 001000 PHS5G1 LX,S1 BB1,ITEM LX,H2 BB2,ITEM TLEM,M BB1,30 J PHS5ID,BB1 001400 SLJ ERRL BAD ID . . SECTION 1.0.2 . THE FOLLOWING IS A JUMP TABLE TO TRANSFER CONTROL . TO THE ROUTINE APPROPRIATE TO THE ID DIGITS OF 'ITEM'. . AN INAPPROPRIATE ID CAUSES A STANDARD ERROR PRINTOUT . BY EXECUTING - SLJ ERRL - . PHS5ID SLJ ERRL ID=0 SLJ ERRL 1 SLJ ERRL 2 SLJ ERRL 3 SLJ ERRL 4 SLJ ERRL 5 SLJ ERRL 6 SLJ ERRL 7 SLJ ERRL 8 J LINFO ITEM CONTAINS INFO FOR A LOOP J STP 10 STATEMENT TYPE 002700 J LBL 11 LABEL 002800 J GLBL 12 GENERATED LABEL SLJ ERRL 13 SLJ ERRL 14 J SLOOP 15 BEGIN DO J ELOOP 16 END DO SLJ ERRL 17 SLJ ERRL 18 SLJ ERRL 19 J LOGIFS 20 LOGICAL SEP J STRT 21 START OF PROGRAM 003800 J N5ELSE 22 IF - ELSE J FEX 23 FIRST EXECUTABLE 004000 J EOP 24 END OF PROGRAM 004100 J PHS5G 25 USAGE SLJ ERRL J EOL 27 END OF LIST J DEBUG 28 DEBUG ITEM 004500 J EOF50 29 END OF FILE . . SECTION 1.1.0 . THIS SECTION READS FROM FILE50 N ITEMS INTO . ITEM+1 AND ON. N IS DETERMINED FROM S3 OF ITEM. . STP TNZ GLBLTS TEST FOR DIAGNOSTIC J STPA ABOUT MISUSE OF LABEL L BB1,GLBLTS SZ GLBLTS L AA1,0,BB1 NAME OF LABEL S AA1,STBB+1 L,H1 AA1,N5ERLA S,H1 AA1,STBB LMJ B11,ERFP + STBB STPA L,H2 AA1,ITEM SZ ST01F2 SZ IOLST CLEAR IO LIST FLAG GENIOL SA,H2 AA1,STPITM S,H1 AA1,N5ERLA . SAVE SEQUENCE NUMBER FOR ERROR MESSAGE L,S2 AA2,ITEM SUBTYPE REGIST TNE,M AA2,4 SUBROUTINE DEF ITEM REGIST J $+3 REGIST LMJ B11,FILE61 + STPITM LA,M AA1,ITEM+1 LR,S3 R5,ITEM GET NR OF ASSOC ITEMS 004900 L,S2 AA2,ITEM STATEMENT SUBTYPE REGIST TNE,M AA2,051 . TEST FOR NAMELIST J NLST . NAMELIST MAY HAVE TO READ MANY STATEME TE,M AA2,4 TYPE OF SUBROUTINE ENTRY REGIST JGD R5,$+2 005000 J STP1 NO ITEMS 005100 STP0 SA AA1,STP01 005200 LMJ B11,FILE50 READ IN AN ITEM 005300 J *STP01 REENT LA AA1,STP01 ADVANCE 005500 AA,M AA1,1 INPUT ITEM 005600 SA AA1,STP01 LOCATION 005700 JGD R5,STP0 LOOP 005800 STP1 LX,S2 BB1,ITEM GET ST INDEX S BB1,STSUBT STATEMENT TYPE TLEM,M BB1,51 J STP2 SLJ ERRL BAD ST TYPE . . SECTION 1.1.1 . THE FOLLOWING CODE CALLS SUBROUTINE RPLAB IF JAPFLG . IS NON-ZERO AND THE STATEMENT TYPE IS 6 TO 14 INCLUSIVE. . STP2 TNZ GOTOFL J STP2B L AA1,ITEM PRINT DIAGNOSTIC FOR UNREACHABLE CODE S,H1 AA1,STP2C SZ GOTOFL L,S2 AA1,ITEM TE,M AA1,2 NO DIAGNOSTIC FOR TRACE ITEMS TNE,M AA1,20 TEST FOR END CARD J STP2B LMJ B11,ERFP + STP2C STP2B L AA1,(077700) SSL AA1,0,BB1 JNB AA1,STP3,BB1 TZ JAPFLG LMJ B11,RPLAB LX,S2 BB1,ITEM SN,H2 AA1,GOTOFL CATCH CHANGE OF CONTROL WITH NO LABEL J STP3,BB1 . SECTION 1.1.2 . THE FOLLOWING IS A JUMP TABLE WHICH TRANSFERS CONTROL . TO THE ROUTINE APPROPRIATE TO THE STATEMENT TYPE. . STP3 J PHS5G ST=00 FATAL ERROR J ST01 01 ARITHMETIC 006500 J ST02 02 ARITH ST FUNC J ST01 03 LOGICAL 006700 J ST02B EXTRA INFORMATION ABOUT SUBROUTINES REGIST J ST05 05 ASSIGN 006900 J ST07 06 ASSIGNED GO TO J ST07 07 GO TO 007100 J ST08 08 COMPUTED GO TO 007200 J ST09 09 ARITH IF J ST10 10 IF ACC 007400 J ST10 11 IF MQ 007500 J ST12 12 IF DIV 007600 J ST13 13 IF SL 007700 J ST14 14 IF SS 007800 J ST15 15 SENSE LIGHT 007900 J ST01 16 CALL 008000 J ST17 17 PAUSE 008100 J ST18 18 STOP 008200 J ST19 19 RETURN 008300 J ST24 SLJ ERRL 21 DO J STIO 22 BACKSPACE 008600 J STIO 23 REWIND 008700 J STIO 24 END FILE 008800 J STIO 25 PRINT 008900 J STIO 26 PUNCH 009000 J STIO 27 READ TAPE 009100 J STIO 28 READ(UNIT,F) 009200 J STIO 29 READ INPUT TAPE 009300 J STIO 30 READ(UNIT) 009400 J STIO 31 READ 009500 J STIO 32 WRITE(UNIT,F) 009600 J STIO 33 WRITE OUTPUT TAPE 009700 J STIO 34 WRITE(UNIT) 009800 J STIO 35 WRITE TAPE 009900 J ST01IN 36 INPUT LIST GENIOL J ST01OU 37 OUPT PUT LIST GENIOL SLJ ERRL 38 IN QUESTION J STIO 39 READ NAME LIST J STIO 40 WRITE NAME LIST J NLST 41 NAME LIST J STIO DECODE J STIO ENCODE J ST194 . RETURN INDIRECT RETIND J STIO . 45 DEFINE FILE J STIO . 46 DIRECT ACCESS READ J STIO . 46 DIRECT ACCESS WRITE J STIO . 48 FIND J STIOSL . SHORT IO FROM DO LOOP INPUT J STIOSL . SHORT IO FROM DO LOOP OUTPUT . . SECTION 1.2.0 . THIS SECTION CONTROLS THE PROCESSING OF ALL STATEMENTS . OF THE TYPE THAT CONTAIN EXPRESSIONS, SUCH AS ARITHMETIC . EQUATIONS, STATEMENT FUNCTIONS, IF STATEMENTS, CALLS,ETC. . ST01IN S,H1 BB1,IOLST SET INPUT LIST FLAG GENIOL J ST01J ST01OU S,H2 BB1,IOLST J ST01J ST01 SZ,H2 IOFLX1 ST01J SLJ GEXP SLJ DET DETERMINE ORDER 010400 SZ ST01F1 SZ ST01F2 LX BB1,EXPL IS THIS A LA,S2 AA1,ITEM LOGICAL IF TE,M AA1,03 J ST0103 NO LA,S1 AA1,TT1,BB1 TE,M AA1,07 J ST0103 NO ST01T LMJ B11,FILE50 + ITEMQ LA,T1 AA1,ITEMQ IS NEXT STATEMENT S,S6 AA1,STSUBT TNE,M AA1,01206 A GO TO J ST0101 YES TNE,M AA1,01202 J ST02J TE,M AA1,01207 J ST0102 NO ST0101 LMJ B11,FILE50 READ IN GO TO + ITEM+2 ADDRESS ITEM SZ ITEMQ ERASE ITEMQ SA AA1,ST01F1 . SET F1 WITH STATEMENT TYPE ST0102 LX BB1,EXPL LA,S1 AA1,TT2,BB1 IS 2ND EQUALS LX,H2 BB2,TT2,BB1 OPERAND A TP,XH2 TT2,BB1 ANX,M BB2,0,*0 TE,M AA1,06 TRIAD REF J ST3A NO TRACE LX,S2 BB3,TT3,BB2 YES, IS MAJOR LA,M AA1,01760 OPERATOR SSL AA1,0,BB3 RELATIONAL JNB AA1,ST3A NO TRACE SX B11,ST01F2 YES, SET F2 TN,XH2 TT2,BB1 J ST3A L,S2 AA1,TT3,BB2 XOR,M AA1,1 S,S2 AA2,TT3,BB2 ST3A SN,H2 AA1,LGIFOP LGIFOP ST0103 SLJ ALG GEN CODE FOR TRIADS . . SECTION 1.3.0 . THIS SECTION READS IN FROM FILE 50 THE ITEMS COMPRISING . THE TRIADS FOR AN EXPRESSION. A TRIAD CONSISTS OF TWO . OPERANDS AND AN OPERATOR AND THESE ITEMS ARE PLACED IN . TABLES TT1, TT2, AND TT3 RESPECTIVELY. IF EITHER OPERAND . IS A SUBEXPRESSION, THE USAGE ITEM IS PLACED IN TABLE . TT7 OR TT9. THE READ-IN TERMINATES WHEN AN EQUALS . OR A SUBSCRIPT DEFINITION OPERATOR IS ENCOUNTERED. . THE NUMBER OF TRIADS IS STORED IN EXPL AND EXPL2. . GEXPR SZ TREQFL REENT LX,M BB1,0 039200 GEXP0 LMJ B11,FILE50 READ IN FIRST OPERAND 039300 + BB1,TT1 LA,M AA1,5 039500 TE,S1 AA1,TT1,BB1 CHECK FOR SUBEX 039600 J GEXP1 039700 L,H2 B11,TT1,BB1 LOGIFT TP,XH2 TT1,BB1 LOGIFT AN,M B11,0,*0 SUBTRACT USES SO IT CAN BE TOLD IF ALLLOGIFT L,H1 AA1,SUBEXQ,B11 USES ARE COMPLETE WITHIN NEXT STATELOGIFT AN,M AA1,1 SO NO STORES AND RELOADS WILL BE DONE LOGIFT S,H1 AA1,SUBEXQ,B11 LOGIFT SX B11,FL50F LMJ B11,FILE50 READ IN 039800 + BB1,TT7 USAGE ITEMS L,T2 AA1,TT7,BB1 DISTANCE TO NEXT USE LSSL AA1,24 . DO NOT CONSIDER SIGN BIT SSL AA1,24 A AA1,F50CTR TG AA1,LCF50 J GEXL1 L,H2 B11,TT1,BB1 TP,XH2 TT1,BB1 AN,M B11,0,*0 L,XH1 AA1,SUBEXQ,B11 AN,M AA1,1 TP AA1 S,XH1 AA1,SUBEXQ,B11 GEXL1 . TNZ BUG J GEXP1 L,T3 AA4,TT1,BB1 SLJ SVSBXD SRITE CURRENT SUBEXD ENTRY INTO F61 FOR EDITING GEXP1 LMJ B11,FILE50 READ IN SECOND OPERAND 040200 + BB1,TT2 LA,M AA1,5 CHECK FOR SUBEX 040400 TE,S1 AA1,TT2,BB1 J GEXP2 040600 L,H2 B11,TT2,BB1 LOGIFT TP,XH2 TT2,BB1 LOGIFT AN,M B11,0,*0 LOGIFT L,H1 AA1,SUBEXQ,B11 LOGIFT AN,M AA1,1 LOGIFT S,H1 AA1,SUBEXQ,B11 LOGIFT SX B11,FL50F LMJ B11,FILE50 READ IN 040700 + BB1,TT9 L,T2 AA1,TT9,BB1 LSSL AA1,24 . DO NOT CONSIDER SIGN BIT SSL AA1,24 A AA1,F50CTR TG AA1,LCF50 J GEXL2 L,H2 B11,TT2,BB1 TP,XH2 TT2,BB1 AN,M B11,0,*0 L,XH1 AA1,SUBEXQ,B11 AN,M AA1,1 TP AA1 S,XH1 AA1,SUBEXQ,B11 GEXL2 . TNZ BUG J GEXP2 L,T3 AA4,TT2,BB1 SLJ SVSBXD GEXP2 SZ TT4,BB1 SZ TT5,BB1 041200 SZ TT6,BB1 041300 SZ TT10,BB1 SZ TT11,BB1 . HOLD J DESIGNATOR ECT SZ TT12,BB1 SZ TT13,BB1 . HOLDS CHARACTER INFORMATION LMJ B11,FILE50 READ IN OPERATOR + BB1,TT3 LA,S2 AA1,TT3,BB1 041600 TE,M AA1,1 CHECK FOR EQUALS OP 041700 J GEXP3 041800 GEXP21 SX BB1,EXPL IF YES, THEN DONE 041900 SX BB1,EXPL2 L,M AA1,7 . TEST ALL REGISTER PAIRS L BB3,(02777775) GEXJ1 TNZ,H1 AREGB1+2,*BB3 . TEST ANY TRIADS IN A REGISTER YET J GEXJ2 L,S3 AA2,AREGB1,BB3 . TEST FOR TRIAD AND,M AA2,6 JNZ AA3,GEXJ2 JNB AA2,GEXJ2 LMJ B11,DAREG . DEASSIGN REGISTER GEXJ2 JGD AA1,GEXJ1 J *GEXP EXIT 042000 GEXP3 TNE,M AA1,14 CHECK FOR SUBSC DEF J GEXP21 YES AX,M BB1,1 TLEM,M BB1,TTLTH J GEXP0 N5ER* LA AA1,ITEM ERROR TRIAD TABLES HAVE OVERFLOWED SA,H1 AA1,ERROR1 FILLED LMJ B11,ERFP FILE FATAL ERROR + ERROR1 J EOF50 SVSBXR AND,M AA4,07777 REENT L B11,AA5 S,H2 B11,FORM2 L AA4,SUBEXD,B11 S AA4,FORM2+1 LMJ B11,FILE61 +FORM2 L B11,AA5 LOGIFT L AA4,SUBEXQ,B11 LOGIFT S AA4,FORM2+1 LOGIFT LMJ B11,FILE61 LOGIFT +FORM2 LOGIFT J *SVSBXD . . SECTION 1.5.0 . THIS SECTION INITIATES THE CODE GENERATION FOR EXPRESSIONS . BY LOADING CELL ALGI WITH THE NUMBER OF THE FIRST . TRIAD TO BE PROCESSED, AS DETERMINED IN SECTION 1.4. . DURING EXPRESSION CODE GENERATION, ALGI CONTAINS THE . NUMBER OF THE TRIAD CURRENTLY BEING PROCESSED. IF THE . EXPRESSION BEING PROCESSED IS A SUBSCRIPT, THEN CONTROL . IS GIVEN TO THE SUBSCRIPT PROCESSOR (SP). . ALGR TZ,H2 LGIFOP LMJ B11,RPLAB DO NOT DEASSIGN IF USES COMPLETE WITHIN LOGIFT SZ LGIFOP STATEMENT THE FIRST IN A LOGICAL IF LOGIFT LX,H2 BB1,EXPL PROCESSOR 056300 NOP 0 056400 LX,T2 BB1,TT5,BB1 STARTING TRIAD NR 056500 SX BB1,ALGI TO I 056600 TNZ SUBS J ALG1 L,S2 AA1,TT3,BB1 TNE,M AA1,14 TN LEVC J SP J ST012 ALG1 LX,S2 BB2,TT3,BB1 056900 TLEM,M BB2,25 J ALGT,BB2 DETERMINE OP TYPE 057100 SLJ ERRL ERROR . SECTION 1.5.1 . CONTROL COMES TO THIS SECTION AFTER THE CODE GENERATION . FOR EACH TRIAD. IF AN ARGUMENT TO A FUNCTION HAS . JUST BEEN COMPUTED, THEN SUBROUTINE 'ARG' IS GIVEN . CONTROL. FINALLY, ALGI IS LOADED WITH THE NUMBER . OF THE NEXT TRIAD TO BE PROCESSED, AS DETERMINED IN . SECTION 1.4. . ALG2* LX BB1,ALGI . HERE, AFTER TRIAD NOP 0 057400 TNZ,S1 TT5,BB1 IS RESULT AN ARGUMENT J ALG3 NO LA,S2 AA1,TT3,BB1 057700 TE,M AA1,17 J ALG21 LA AA1,TT3,BB1 AND AA1,(0177777) JZ AA2,ALG3 TG,M AA2,64 OPEN FUNCT TEST J ALG3 ALG21 . ALG3 LX BB1,ALGI F(I) TO I 059000 SX BB1,LALGI . LAST I LX,T3 BB1,TT5,BB1 059200 SX BB1,ALGI 059300 J ALG1 GET NEXT TRIAD 059400 . . SECTION 1.5.2 . THE FOLLOWING IS A JUMP TABLE THAT DISTRIBUTES . PROGRAM CONTROL ACCORDING TO THE OPERATOR IN THE . NEXT TRIAD TO BE PROCESSED. . ALGT J ALG2 ZERO OP-IGNORE J ST011 EQUALS 059700 J OP02 .OR. 059800 J OP03 .AND. 059900 J OP04 .EQ. 060000 J OP04 .NE. 060100 J OP04 .LT. 060200 J OP04 .GT. 060300 J OP04 .GE. 060400 J OP04 .LE. 060500 J OP10 PLUS 060600 J OP11 SLASH 060700 J OP12 STAR 060800 SLJ N5ERRL J ST011 SUBSCRIPT DEF J OP19 SEMI-COLON (SUBSCRIPT CONN) 061100 J OP16 COLON 061200 J OP17 COMMA 061300 J OP16E J OP19 OFFSET PLUS 061500 J OP16 SPECIAL COMPLEX DIVIDE SLJ N5ERRL . 025 UNKNOWN SLJ N5ERRL . 026 UNKNOWN SLJ N5ERRL . 027 UNKNOWN J OPCAT . // CONCATENATION OPERATOR . SECTION 1.15.0 . THIS SECTION GENERATES CODE FOR CALCULATING INDEXING . QUANTITIES IN INDEX REGISTERS. FIRST, TABLE SPT IS . LOADED FROM THE TRIAD TABLES WITH ALL QUANTITIES . TO BE ADDED OR SUBTRACTED FROM THE INDEX REGISTER. . THEN THE GPT TABLE IS SEARCHED FOR A POSITIVE ELEMENT. . WHEN ONE IS FOUND, IT IS EXCHANGED WITH THE ELEMENT . AT THE HEAD OF THE TABLE. IF NONE IS FOUND, THE . CONSTANT ZERO IS ADDED TO THE TABLE. ALL THIS IS NECESSARY . BECAUSE THERE IS NO NEGATIVE LOADING INSTRUCTION . FOR INDEX REGISTERS. . SP* LX BB1,(1,0) TRACE LX BB2,(1,0) LA,M AA1,6 TRIAD REF TEST LA,M AA2,5 SUBEX ITEM TEST LA,M AA3,14 SUBSCRIPT DEF TEST L R2,(0770000,0377777) REGIST SZ SUBFLG SET NON ZERO IF SUBSCRIPTED SUBSCRPT SZ SPOPFL 131K SP1 L,T1 AA4,TT3,BB1 TNE,M AA4,01023 TEST FOR SUBSCRIPTED SUBSCRIPTS J SP13 TNE,M AA4,01017 J SP13A TNE,M AA4,01020 TEST FOR LOC FUNCTION J SP13C TE,S1 AA1,TT2,BB1 . TRIAD 131K J SP2 . PRIMATIVE 131K TN,XH2 TT2,BB1 . NEGATIVE TRIAD 131K J SP3 131K L,H2 R1,BB2 . COUNT IN SPT 131K L B11,(1,0) 131K L AA4,TT2,BB1 . TRIAD OP 131K MSE AA4,SPT,*B11 . FIND TRIAD TO BE NEGATED 131K SLJ SHNTHP THIS SHOULD NOT HAPPEN REGIST S AA4,SPT-1,B11 . REPL WITH NEGATIVE 131K J SP3 131K SP2 LA AA4,TT2,BB1 PUT ITEM IN TABLE SA AA4,SPT,*BB2 SP3 TE,S1 AA1,TT1,BB1 . TRIAD 131K J SP4 . PRIMATIVE 131K TN,XH2 TT1,BB1 J SP5 131K L,H2 R1,BB2 . COUNT IN SPT 131K L B11,(1,0) 131K L AA4,TT1,BB1 . TRIAD OP 131K MSE AA4,SPT,*B11 . FIND TRIAD TO BE NEGATED 131K SLJ SHNTHP REGIST S AA4,SPT-1,B11 . REPL WITH NEGATIVE 131K J SP5 131K SP4 LA AA4,TT1,BB1 PUT ITEM IN TABLE SA AA4,SPT,*BB2 SP5 TE,S2 AA3,TT3,*BB1 SUBS DEF TEST J SP1 NO, DO NEXT TRIAD SZ SPT-1,BB2 PUT END TO TABLE S,H1 BB2,SPOPFL . SAVE SPT ITEM COUNT 131K SP14A TNZ,H2 SPOPFL 131K J SP14D . NO OPTIMIZATION 131K L,M AA1,2 131K TE,H1 AA1,SPOPFL 131K J SP14D . MORE THAN ONE ENTRY IN SPT 131K L BB1,ALGI . LOC TRIAD 131K J FNSPLC . ENTER IFN 131K SP14D ANX,M BB1,1 LA,M GA0,0,BB1 . GET TRIAD NO. OF SUBEXP LMJ B11,BREQ MAKE B-REQUEST TNZ SUBFLG TEST FOR SUBSCRIPTED SUBSCRIPT J $+4 L,T3 AA5,PZERO+3 TEST IF X11 ASSIGNED FOR COMPUTATION TNE,H1 AA5,MXIRRG J SP25 L,H2 AA5,IRW1,BB3 SZ,H2 IRW1,BB3 S AA5,SVEXP S,H1 BB3,SVEXP LX BB1,(1,0) NOP 0 SP6 TNZ SPT,BB1 END OF TABLE TEST J SP11 YES SP7 TP,XH2 SPT,*BB1 IS ITEM POSITIVE J SP12 SP71 LA AA1,SPT SWAP POSITIVE LA AA2,SPT-1,BB1 ITEM WITH SA AA1,SPT-1,BB1 FIRST ITEM SA AA2,SPT IN TABLE SLJ GEN GENERATE LOAD INDEX PCI 0,SPT FOR FIRST ELEMENT TNE,ID 5,SP71A,P1 SUBEXP MAYBE NEG. TE,S P1,SP71A,0 IN A REG EVEN THO EX $+1 L,T3 AA4,PZERO+3 . IF QUANTITY HAS BEEN COMPUTED A S,H2 AA4,SPCON1 . STORE NEGATIVE IS GENERATED IF THE L AA5,PZERO+3 . QUANTITY IS AN A REG. THE INDEX L AA6,PZERO . REGISTER WHICH IS IN P0 IS TRANSFERED S AA5,SPCON2 S AA6,SPCON3 SLJ GENR . TO P1 AND P0 IS SET UP BY AREQ1C TO SLJ AREQ1C . POINT AT EXPRESSION PZERO AND PZERO+3 PCI 0,P1 J $+2 . ARE SAVED FOR THE AX AND ANX INSTRUCTIONS EX SP12 MI 1,SPCON1,ABS EX $+1 L AA5,SPCON2 L AA6,SPCON3 S AA5,PZERO+3 S AA6,PZERO J SP71A+2 SP71A MI 1,(LX P0,P1) EX $+1 LX,M BB1,1 SP8 SX BB1,SPX TNZ SPT,BB1 END OF TABLE TEST J SP18 SLJ GEN GEN AX OR ANX PCI 0,SPT,BB1 FOR EACH TABLE TE,S P1,SP9,1 ITEM MI 1,(AX P0,P1) EX SP10 SP9 MI 1,(ANX P0,P1) EX SP10 SP10 LX BB1,SPX AX,M BB1,1 J SP8 TABLE ITEM SP11 LA AA1,(030100,0) PUT IMMEDIATE CONST SA AA1,SPT,BB1 ITEM FOR ZERO SZ SPT+1,BB1 INTO TABLE J SP7 GO BACK TO INTERCHANGE SP12 LA,T1 AA1,SPT-1,BB1 TEST FOR IMMED CONST TE,M AA1,0301 WHICH ARE ALWAYS POS J SP6 NO J SP71 YES SP18 L,H1 BB3,SVEXP L AA5,SVEXP S,H2 AA5,IRW1,BB3 J PHS5G SP13 L,M AA4,0,BB1 A AA4,(060000,0) FORM TRIAD ITEM S AA4,SPT,BB2 L,S3 AA4,TT3,BB1 MODE S,S3 AA4,SPT,*BB2 A,M BB1,1 S BB1,SUBFLG SHOW SUBSCRIPTED SUBSCRIPT OCCURRED J SP1 SIMPLE ARGUMENT LATER SP13A AN,M BB2,1 SZ SPOPFL 131K J SP13 SP13C L,M AA4,TT2,BB1 A AA4,(07000,0) J FACTOR OF M S AA4,TT11,BB1 S BB1,ALGI . POINTER TO LOC NEEDED IN FN44 131K S,H2 AA4,SPOPFL . SET OK TO OPTIMIZE FLAG 131K L,S1 AA4,TT2,BB1 . 131K TNE,M AA4,6 . TEST FOR OFSET IMBEDDED IN LOC 131K J SP13D . 131K L B11,TT2,BB1 SET SO ARGUMENT OF LOC WILL NOT BE CALLED SP13B L,S1 AA4,1,B11 . BY VALUE 131K OR,M AA4,010 . CALL BY NAME 131K S,S1 AA5,1,B11 J SP13 SP13D L,T1 AA4,TT3-1,BB1 131K TE,M AA4,01023 131K J SP13 131K AN,M BB2,1 . THEN PLACE LOC OVER OLD OFFSET IN SPT 131K L B11,TT1-1,BB1 . VAR IN OFFSET 131K J SP13B 131K SP25 LMJ B11,N5DIR GIVE INDEX BACK SZ SUBS IF ONLY X11 USE ACCUMULATR J ALGR SHNTR L BB3,AA4 NEGATIVE SIGN ON TRIAD REFERENCE REENT TP,XM 0,BB3 LOGIFT AN,M BB3,0,*0 LOGIFT L AA5,TT1,BB3 TRISGN SLJ SHNTHA TRISGN S AA5,TT1,BB3 L AA5,TT2,BB3 TRISGN SLJ SHNTHA TRISGN S AA5,TT2,BB3 L BB3,SHNTHP EXIT ADDRESS TRISGN L AA4,TRISGN SZ TRISGN JNZ AA4,SHNTR A,M BB3,1 TRISGN J 0,BB3 TRISGN SHNTRA L BB4,(1,0) REENT L R1,BB2 TRISGN MSE AA5,SPT,*BB4 TRISGN J SHNTRJ L,T1 AA5,SPT-1,BB4 TRISGN TNE,M AA5,0301 TRISGN J SHNTAB TRISGN L,H2 AA5,SPT-1,BB4 TRISGN XOR AA5,(0400000) REVERSE SIGN BIT TRISGN S,H2 AA6,SPT-1,BB4 TRISGN L AA5,SPT-1,BB4 J *SHNTHA TRISGN SHNTRJ L AA6,AA5 SSL AA6,30 TE,M AA6,6 SLJ N5ERRL S AA5,TRISGN J *SHNTHA SHNTAB LN,XH2 AA5,SPT-1,BB4 COMPLIEMENT AN IMMEDIATE CONSTNAT TRISGN S,H2 AA5,SPT-1,BB4 TRISGN L AA5,SPT-1,BB4 J *SHNTHA TRISGN . SECTION 1.16.0 . THE FOLLOWING SETS THE STATF FLAG AT THE START OF . STATEMENT FUNCTIONS WHICH CAUSES THE CODE GENERATED . TO USE ONLY DESTRUCTIBLE REGISTERS. . ST02 . READ IN HOLERITH FORM OF LEFT SIDE OF EQUALS TRACE L,S3 R1,ITEM TRACE S R1,TRACNL LENGTH OF TRACE ID TRACE L BB1,(1,ITEM+1) TRACE L BB2,(1,TRACNM) TRACE BT BB2,0,*BB1 TRACE J PHS5G TRACE ST02B L,H2 AA1,ITEM REGIST L,S3 BB1,ITEM TYPE OF SUBOUTINE INFORMATION REGIST J $,BB1 REGIST J ST02B1 TYPE OF ENTRANCE TO GENERATE REGIST J ST02B2 MONITOR VARIABLE MONITO J ST02B3 MONITOR LENGTH MONITO ST02J L,S3 BB2,ITEMQ S BB2,TRACNL L,M BB1,0 JGD BB2,$+1 LMJ B11,FILE50 J TRACNM,BB1 A,M BB1,1 JGD BB2,$-3 J ST01T . THE SYNTAX OF A SUBROUTINE, FUNCTION OR ENTRY STATEMENT HAS BEEN REGIST . INCREASED TO ALLOW DEFINING THE TYPE OF RECEIVING SEQUENCE, THE REGIST . NAME OF VARIABLE EQUAL TO START OF CALLING SEQUENCE AND A VARIABLREGIST . EQUAL TO START OF TEMP STORAGE REGIST . SUBROUTINE JOE/LMJ(A1)/,ARG1,ARG2,...) CALL,TEMP REGIST . THE TYPE OF RECEIVING SEQUENCE IS PASSED WITH A 120401 ITEM REGIST . S4 IS 1 FOR AN SLJ AND ZERO FOR AN LMJ REGIST . IFAN LMJ S6 IS THE REGISTER NUMBER REGIST . IF S4 CONTAINS A 7 THEN AN LIJ WAS GENERATED AND S5 CONTAINS . REGISTER POINTING AT ARGUMENTS . THE SYMBOL TABLE ADDRESS OF CALL IS H2 OF A 0120402 ITEM REGIST . THE SYMBOL TABLE ADDRESS OF TEMP IS H2 OF 0120403 ITEM REGIST ST02B1 S AA1,N5RGFA REGIST L B11,SUBNME SYM REF OF ENTRY SSL AA1,6 AND,M AA1,070 . EXTRACT LMJ/LIJ/FIELD SSL AA2,6 TE,M AA2,7 . DO NOT STORE IR ARGUMENT REGISTER S,S6 AA1,2,B11 SAVE ER/SLJ FLAG J PHS5G REGIST ST02B2 L BB2,N5MNL1 MONITO S,H2 AA1,N5MNTB,*BB2 MONITO S BB2,N5MNL1 MONITO L,M AA2,0,BB2 MONITO TLE,M AA2,N5MNTL MONITO J PHS5G MONITO AN,M BB2,1 MONITO S BB2,N5MNL1 PUT ALL REMAINING ENTRIES ON TOP OF ONE MONITOR L,H1 AA1,N5ERLA MONITO S,H1 AA1,ST02BE MONITO LMJ B11,ERFP MONITO +ST02BE MONITO J PHS5G MONITO ST02B3 L BB2,N5MNL2 MONITO S,H1 AA1,N5MNTB,*BB2 MONITO S BB2,N5MNL2 MONITO L,M AA2,0,BB2 MONITO TLE,M AA2,N5MNTL MONITO J PHS5G MONITO AN,M BB2,1 MONITO S BB2,N5MNL2 MONITO J PHS5G MONITO . SECTION 1.17.0 . THIS SECTION GENERATES CODE FOR THE ASSIGN STATEMENT. . ST05 L,M AA1,1 S AA1,AFLG TZ,S6 CR131K J ST052 131K SLJ GEN ASSIGN 131K PCI 0,ITEM+1 N TO 116100 PCI 0,ITEM+2 M 116200 MI 1,ST051 MI 1,ST051+1 SLJ ASGN PCI 0,P2 ST05J EX $+1 SZ AFLG J PHS5G ST051 LR,M R1,P1 116500 SR R1,P2 116600 ST052 SLJ GEN 131K PCI 0,ITEM+1 131K PCI 0,ITEM+2 131K PCI 0,(((B11))-3) 131K SLJ ASGN PCI 0,P2 SLJ FSRG . FIND SCRATCH REG 131K MI 1,(LA P7R,P1,0,M) TRACE MI 1,(ANH P7R,B1),ABS RELATIVEISE ADDRESS AND ADD TRACE EX $+1 131K L,H2 B11,ITEM+2 131K TP,XH2 ITEM+2 AN,M B11,0,*0 TN 1,B11 . 18 BIT ADDRESS ? 131K J ST053 . NO 131K SLJ CLOB2 . CLOBBER B11 131K SLJ GENR 131K MI 1,(LX P3,P2,,M) 131K EX $+1 131K L,M AA1,3 131K S,S2 AA1,OLDITM . INCLUDE RSA IN RELOCATION 131K SLJ GENR 131K MI 1,(SA P7R,0,P3),ABS TRACE J ST05J ST053 SLJ GENR 131K MI 1,(SA P7R,P2) TRACE J ST05J . SECTION 1.18.0 . THIS SECTION GENERATES CODE FOR THE GO TO STATEMENT. . ST07 S BB1,GMIGTF . UNCOND GO TO 131K SLJ GEN 131K PCI 0,ITEM+1 117400 TE,ID P1,ST079,7 CHECK FOR DROP OUT MI 1,(J P1) 117500 ST079 EX $+1 131K SZ GMIGTF . CLEAR SHORT GO TO FLAG 131K J PHS5G 131K . SECTION 1.19.0 . THIS SECTION GENERATES CODE FOR THE COMPUTED GO TO . STATEMENT. . ST08 LA,H2 AA1,ITEM+1 COMPUTED GO TO SN,H2 AA1,B11FL SHOW B11,DESTROYED AA,M AA1,1 SA,H2 AA1,ST081+1 117900 SA,H2 AA1,ST082+1 118100 SLJ CLOB2 CLOBBER B11 118200 L BB3,(2,0) . DEASSIGN A2 L,M AA1,0 . ONLY ONE REGISTER LMJ B11,DONEA SLJ GEN 118300 PCI 0,(((14))-3) . USE A2 FOR ARG NUMBER PCI 0,ITEM+2 COMP GO TO VARIABLE PCI 0,(((11))-3) PCI 0,(((A2+12))-3) TE,ID P2,ST08J,7 TEST FOR ARG REPLACEMENT EX $+1 131K L,H2 B11,ITEM+2 131K TZ,S6 CR131K TN 1,B11 131K J ST086 . 16 BIT LOAD 131K SLJ GENR . 18 BIT LOAD 131K MI 1,(LA P1,P2,,M) EX $+1 131K ST08K L,M AA1,3 S,S2 AA1,OLDITM . INCLUDE RSA IN RELOCATION 131K SLJ GENR 131K MI 1,(LA P1,0,P1,H2),ABS EX $+4 131K ST086 SLJ GENR 131K MI 1,ST081 EX $+1 131K TNZ,S6 CR131K J ST080 131K SLJ GENR 131K MI 1,ST084,ABS . ADD B1 TO B11 TO UNRELATIVIZE IT 131K J $+2 131K ST080 SLJ GENR 131K MI 1,ST081+1,ABS EX $+1 TNZ,S6 CR131K . G OPTION? J $+4 . NO L,H1 AA1,OLDITM+1 . ADD B1 TO INDEX FIELD OR,M AA1,1 S,H1 AA2,OLDITM+1 TZ,S2 U1110A . REENTRANT LIBRARY J ST08R SLJ GENR MI 2,ST082,SREL EX ST083 118800 ST084 AA,M P1,0,B1 ST08R SLJ GENR MI 1,(J 1,P1),SREL MI 1,(LMJ P3,('NER2$ ')),NAME EX $+1 L,M AA2,062 . WALKBACK CODE SLJ GENWLK ST083 LMJ B11,FILE50 GENERATE J VECTOR 119300 + ITEM 119400 SLJ GEN VARIABLE 119800 PCI 0,ITEM 119900 MI 1,(J P1) EX ST085 120100 ST085 LA,H2 AA1,ITEM+1 GET R, THE NR OF JUMPS ANA,M AA1,1 120700 SA,H2 AA1,ITEM+1 JNZ AA1,ST083 120900 TNZ,S2 U1110A . REENTRANT LIBRARY TZ CR360C . 360 PROGRAMS FALL THRU MONITO J PHS5G . INSTEAD OF ERRORING OUT MONITO SLJ GEN CSC17 MI 1,(SLJ ('NERR2$')),NAME CSC17 EX $+1 SLJ GENWLK J PHS5G ST08J EX $+1 L,M AA1,493 CODE FOR COMPUTED GO TO S AA1,N5CLAG SZ ARGX L,M R1,200 S R1,OP16NA L,M B11,$+3 S B11,SPIOAU J OP1631 SLJ GEN REPLACE PARAMETERS DESTROYED IN N5COL PCI 0,(((14))-3) PCI 0,ITEM+2 EX $+1 SZ SPIOAU L,H1 AA1,(LX A2,0,0,H2) TZ,S6 CR131K L,H1 AA1,(LX A2,0,0,M) S,H1 AA1,OLDITM+1 TNZ,S6 CR131K J ST080 J ST08K . SECTION 1.20.0 . THIS SECTION GENERATES CODE FOR THE IF ACCUMULATOR . OVERFLOW AND IF MQ OVERFLOW STATEMENTS. . ST12 L,M AA1,('DVCHK$') IF DIVIDE CHECK J $+2 ST10 L,M AA1,('OVERF$') IF ACCUMULATOR OVERFLOW S,H2 AA1,UT109 SLJ GEN PCI 0,ITEM+1 PCI 0,ITEM+2 PCI 0,(((11))-3) MI 1,UT109,NAME LMJ X11,OVERF$ OR DVCHK$ TE,ID P1,UT103,7 IF LABEL PRESENT MI 1,(J P1) JUMP TO IT UT102 TE,ID P2,UT104,7 MI 1,(J P2) JUMP TO 2ND LABEL EX PHS5G UT103 MI 1,(J 2),SREL J UT102 UT104 MI 1,(J 1),SREL EX PHS5G . SECTION 1.22.0 . THIS SECTION GENERATES CODE FOR THE IF SENSE LIGHT . STATEMENT. . ST13 LX B11,ITEM+1 GET CONST VALUE NOP 0,0 FROM SYMBOL TABLE LA AA1,0,B11 FOR S LIGHT NUMBER SA AA1,ITEM+1 LA,M AA1,S1+1 ANA,S6 AA1,ITEM+1 GET SL J-DESIG 124600 SSC AA1,10 ALIGN TO J FIELD 124700 OR AA1,(TNZ ('NSLT$ ')) 124800 SA AA2,ST139 124900 OR AA1,(SZ ('NSLT$ ')) 125000 SA AA2,ST139+1 125100 SLJ GEN 125200 PCI 0,ITEM+3 N2 PCI 0,ITEM+2 N1 TNE,ID P1,ST130,P2 TNE,ID P1,ST130,7 MI 1,ST139+1,NAME EX PHS5G ST130 MI 1,ST139,NAME TE,ID P1,ST133,7 MI 1,(J P1) J ST131+1 125900 ST133 TNE,ID P2,ST131,7 MI 1,(J 2),SREL J $+2 126200 ST131 MI 1,(J 3),SREL MI 1,ST139+1,NAME 126400 TE,ID P2,ST132,7 126500 MI 1,(J P2) ST132 EX PHS5G 126800 . SECTION 1.23.0 . THIS SECTION GENERATES CODE FOR THE IF SENSE SWITCH . STATEMENT. . ST14 SLJ CLOB1 IF SENSE SWITCH 127100 LA,M AA1,B11 127200 SA AA1,PZERO+3 127300 LA,M AA1,PZERO SA AA1,PZERO SLJ GEN 127500 PCI 0,ITEM+1 127600 PCI 0,ITEM+2 127700 PCI 0,ITEM+3 127800 MI 1,(LMJ P0,('NSTCH$')),NAME 127900 MI 1,(+ P1) 128000 TE,ID P2,ST141,7 DROP OUT TEST 128100 MI 1,(J P2) J ST142 128400 ST141 TE,ID P3,ST1411,7 128500 MI 1,(J 2),SREL 128600 J ST142+1 ST1411 MI 1,(J 1) SREL 128800 EX ST143A ST142 TE,ID P3,ST143,7 129000 MI 1,(J P3) ST143 EX ST143A ST143A L,M AA2,062 WALKBACK CODE TZ,S2 U1110A SLJ GENWLK J PHS5G . SECTION 1.24.0 . THIS SECTION GENERATES CODE FOR THE SENSE LIGHT STATEMENT. . ST15 LX B11,ITEM+1 GET CONST VALUE NOP 0,0 FROM SYM TABLE LA AA1,0,B11 FOR S LIGHT NR. SA AA1,ITEM+1 TZ,S6 ITEM+1 J ST151 129600 SLJ GEN SENSE LIGHT 0 129700 MI 1,(SZ ('NSLT$ ')),NAME 129800 EX PHS5G 129900 ST151 LA,M AA1,S1+1 SENSE LIGHT I 130000 ANA,S6 AA1,ITEM+1 130100 SSC AA1,10 130200 OR AA1,(SR R1,('NSLT$ ')) SA AA2,ST159 130400 SLJ GEN 130500 MI 1,(LR R1,1,0,M),ABS MI 1,ST159,NAME 130600 EX PHS5G 130700 . SECTION 1.25.0 . THIS SECTION GENERATES CODE FOR THE PAUSE STATEMENT. . ST17 L,M AA1,('NPAUS$') SA,H2 AA1,ST179 131100 SLJ CLOB1 131200 SLJ GEN 131300 PCI 0,(((B11))-3) PCI 0,ITEM+1 MI 1,ST179,NAME 131500 MI 1,ST179+1 EX $+1 TRACE L,H2 A0,ST179 TRACE TZ CRTRAC IS TRACE ACTIVE TNE,M A0,('NPAUSE$') J PHS5G S,H2 B11,IOWLK NSTOP$ WANTS A WALKBACK FOR TRACE DO JPL , TNZ CRLBCM SLJ GENWLK TRACE J PHS5G TRACE . SECTION 1.26.0 . THIS SECTION GENERATES CODE FOR THE STOP STATEMENT. . ST18 LA,M AA1,('NSTOP$') S,H2 AA1,GOTOFL CATCH CHANGE OF CONTROL WITH NO LABEL J ST17+1 132100 . SECTION 1.27.0 . THIS SECTION GENERATES CODE FOR THE RETURN STATEMENT. . ST19* LA,S1 AA1,ITEM+1 . CHECK ID OF NEXT ITEM EVER1 SN,H2 AA1,GOTOFL CAT CHAGE OF CONTROL WITH NO LABEL L,H1 AA2,N5ERLA . SEQUENCE NUMBER EVER1 S,H1 AA2,ST19B+1 SZ,S1 ST19B+1 LA,M AA2,PHS5G SA,H2 AA2,ST19E TNE,M AA1,7 EVER1 J ST193 . DUMMY FOR BLANK RETURN EVER1 TE,M AA1,3 . TEST FOR CONSTANT EVER1 J ST192 . VARIABLE FOR RETURN K EVER1 TZ,H2 ITEM+1 . ZERO FOR RETURN 0 EVER1 J ST191 . NOT ZERO CONSTANT EVER1 . RETURN ZERO EVER1 TZ,S2 U1110A . REENTRANT LIBRARY J ST19R SLJ GEN PCI 0,(((R3))-3) MI 1,(LR P1,2),SREL MI 1,(J ('NERR6$')),NAME EX ST19A EVER1 ST19R SLJ GEN PCI 0,(((11))-3) MI 1,(LMJ P1,('NER6$ ')),NAME EX $+1 L,M AA2,062 . CODE FOR WALKBACK J ST19A ST191 . RETURN CONSTANT EVER1 LA,M AA1,1 EVER1 TG AA1,EXTYP SA AA1,EXTYP EVER1 LA,H2 AA1,ITEM+1 EVER1 SA,H2 AA1,ST191A EVER1 TZ,S2 U1110A . REENTRANT LIBRARY J UST191 SLJ GEN EVER1 PCI 0,(((A2))-3) PCI 0,(((R3))-3) PCI 0,CEXIT MI 1,ST191A,ABS MI 1,(LR P2,2),SREL MI 1,(J P3),REL EX ST19A EVER1 ST192 . RETURN VARIABLE EVER1 LA,M AA1,2 EVER1 TG AA1,EXTYP EVER1 SA AA1,EXTYP EVER1 TZ,S6 CR131K J ST192G TZ,S2 U1110A REENTRANT LIBRARY J UST192 SLJ GEN EVER1 PCI 0,ITEM+1 PCI 0,(((A2))-3) PCI 0,(((R3))-3) PCI 0,KEXIT MI 1,(LA P2,P1) MI 1,(LR P3,2),SREL MI 1,(J P4),REL EX ST19A EVER1 ST192G SLJ GEN PCI 0,(((B11))-3) PCI 0,(((A2))-3) PCI 0,(((R3))-3) PCI 0,KEXIT PCI 0,ITEM+1 MI 1,(LX P1,P5,0,M) MI 1,(LA P2,0,P1),ABS MI 1,(LR P3,2),SREL MI 1,(J P4),REL REGIST EX ST19A ST193* . RETURN BLANK EVER TZ,S2 U1110A . REENTRANT LIBRARY J UST194 SLJ GEN PCI 0,(((R3))-3) PCI 0,BEXIT MI 1,(LR P1,2),SREL MI 1,(J P2),REL EX $+1 EVER1 J *ST19E ST194 . RETURN INDIRECT RETIND SN,H2 AA1,ENTFL RETIND SN,H2 AA1,GOTOFL RETIND L,M AA1,1 RETIND S,S1 AA1,MEXIT SHOW INDIRECT RETURN OCCURED RETIND TNZ,S6 CR131K J ST194B RETIND ST194A SLJ GEN RETIND PCI 0,MEXIT ADDRESS TO JUMP TO RETIND PCI 0,(((B11))-3) RETIND PCI 0,LINK1 . NUMBER OF ARGUMENTS RETIND PCI 0,ITEM+1 RETIND MI 1,(LX P2,P4,0,M) RETIND MI 1,( LX P2,0,P2,M),ABS RETIND EX $+1 RETIND L,S4 AA1,OLDITM+1 RETIND OR,M AA1,020 RETIND S,S4 AA2,OLDITM+1 RETIND SLJ GENR RETIND MI 1,(SZ P3,0,H2) RETIND MI 1,(J P1),REL RETIND EX PHS5G RETIND ST194B TZ,S2 U1110A . REENTRANT LIBRARY J UST195 SLJ GEN PCI 0,MEXIT . ADDRESS TO JUMP TO RETIND PCI 0,(((B11))-3) RETIND PCI 0,LINK1 . NUMBER OF ARGUMENTS RETIND PCI 0,ITEM+1 RETIND MI 1,(LX P2,P4,0,H2) RETIND MI 1,(SZ P3,0,H2) . CLEAR OUT NUMBER OF ARGUMENTSRETIND MI 1,(J P1),REL RETIND EX PHS5G RETIND UST191 SLJ GEN PCI 0,(((A2))-3) PCI 0,KEXIT PCI 0,(((11))-3) MI 1,ST191A,ABS . LA A2,CONSTANT MI 1,(LMJ P3,P2) EX $+1 UST193 L,M AA2,062 ST19A SLJ GENWLK J *ST19E UST194 SLJ GEN PCI 0,BEXIT MI 1,(J P1) EX $+1 J *ST19E UST195 SLJ GEN PCI 0,MEXIT . ADDRESS TO JUMP TO PCI 0,(((B11))-3) PCI 0,LINK3 . DYN$ PCI 0,ITEM+1 MI 1,(LX P2,P4) . USER SUPPLIED RETURN ADDRESS MI 1,(SZ P3,0,S2) . CLEAR NUMBER OF ARGS MI 1,(SX P2,P3,0,H2) MI 1,(LMJ P2,P1) EX UST193 . GENERATE WALKBACK PACKET FOR DRUM UST192 SLJ GEN PCI 0,ITEM+1 PCI 0,(((A2))-3) PCI 0,(((11))-3) PCI 0,KEXIT MI 1,(LA P2,P1) . LOAD VALUE OF VARIABLE MI 1,(LMJ P3,P4) EX UST193 LINFO . . THIS SECTION READS LOOP INFORMATION FROM F50 AND SAVES IT . IN TABLES INDEXED BY LEVEL LMJ B11,F50 GET OPERAND +ITEM+1 L BB1,LEVEL L,S2 BB2,ITEM TYPE OF LOOP INFO L,H2 BB2,LINFT-8,BB2 GET ADDRESS OF TABLE TO PUT OPERANDS INTO L AA1,ITEM+1 A BB2,0,BB1 INCREASE TABLE BY LEVEL NUMBER S AA1,0,BB2 J PHS5G LINFT +N5LCT SAVES LOOP COUNT +N5MIVA MATERIALIZE INDUCTION VAR OPERAND +N5MIVB MATERIALIZE INDUCTION VAR INSTRUCTIONS +N5MIVC INCREMENT INDUCTION VAR MATERIALIZATION ST24 . THIS SECTION GENERATES PROLOGS FOR GLOBAL DUMMIES TNZ,H2 CRPRO J ST24A SN AA1,GLDMFL TZ CRIFZ SLJ PROLOG ST24A L AA1,TEMPN S,H1 AA1,LRSTC1+2 LMJ B11,BREGM J PHS5G J PHS5G . SECTION 1.30.0 . THIS SECTION EVALUATES AND SENDS OUT TO FILE61 . LABEL ITEMS FOR GENERATED AND PROGRAMMER REFERENCED . LABELS. . GLBL SX B11,GLBLF SET GLBLF J LBLJJ . DO NOT CLEAR CHANGE OF CONTROL FLAG LBL LMJ B11,RPLAB SZ GOTOFL CLEAR CHANGE OF CONTROL WITH NO LABEL FLAG LBLJJ S,H2 B11,B11FL SZ STSUBT TNZ,H2 ITEM J PHS5G TRACE LX,H2 BB2,ITEM TP,XH2 ITEM AN,M BB2,0,*0 SLJ EVALLB LX BB2,ITEM TP,XH2 ITEM AN,M BB2,0,*0 TP,T3 2,BB2 IS LABEL UNSAFE LMJ B11,USIRL TNZ GLBLF J LBLTST TEST FOR TRACE INFO TRACE SZ GLBLF J SLOOP2 LBLTST L,H1 AA1,CRDBUG TEST FOR Y OPTION TRACE A AA1,TRACFL+2 SET FROM TRACE STATEMENT TRACE JZ AA1,PHS5G DO NOT TRACE LABELS TRACE TNZ,S2 U1110A REENTRANT LIBRARY J LBL2A SLJ GEN MI 1,(SLJ ('TRAC2$')),NAME EX LBL2B LBL2A SLJ GEN MI 1,(SLJ ('NER12$')),NAME TRACE EX $+1 TRACE LBL2B SLJ GEN MI 1,(+0),ABS TRACE EX SL102 TRACE . THE NEXT SECTION EVALUATES A LABEL IN THE SYMBOL TABLE . AND SENDS A LABEL ITEM TO PHASE VI EVALLR L B11,LCN L AA1,LRSTC1,B11 S,H2 AA1,1,BB2 RSA UNDER COUNTER L B11,CRSTC1,B11 S,H1 B11,1,BB2 SYMBOLIC COUNTER NUMBER SX,H2 BB2,LBLITM LMJ B11,FILE61 + LBLITM J *EVALLB . SECTION 1.31.0 . THIS SECTION PROCESSES LOGICAL IF SEPARATORS (LIS). . LIS OCCUR IN PAIRS SURROUNDING LOGICAL IF STATEMENTS. . THE LOGIFF FLAG IS RESET FOR THE FIRST OF THE PAIR . AND SET FOR THE SECOND. LOGIFS . TNZ,H2 ITEM J LGFS1 . 2ND ONE OF PAIR L BB2,LGNSLV NEST LEVEL OF LOGICAL IF SZ EXPL .SET TRIAD COUNT TO ZERO L,S2 AA1,ITEM TOP,M AA1,020 A,M BB2,1 S BB2,LGNSLV TOP,M AA1,020 SZ LOGELQ,BB2 L,S3 AA2,ITEM . NON ZERO IF LABELS WITHIN IF S,S3 AA2,LGIFOP TOP,M AA1,020 SZ LOGIFX,BB2 L,H2 AA1,ITEM NUMBER OF ITEMS WITHIN LOGICAL IF A AA1,F50CTR S AA1,LCF50 SX B1,LOGIFF SET LOGIFF SX B1,LGARIF . THIS FLAG ALLOWS ARIF INSIDE LOGICAL IF SLJ UPTMST EXEC8C L,S2 AA1,ITEM TEP,M AA1,020 . TEST FOR IFELSE J LOGELA J PHS5G LGFS1 SZ LOGIFF RESET LOGIFF SZ LCF50 SLJ LWTMST DECREASE PUSHDOWN FOR CONDITIONAL STORAGE OF RESULTS SZ GOTOFL L,S2 AA1,ITEM TEP,M AA1,020 . IT WAS AN IFELSE J PHS5G SZ STSUBT L BB2,LGNSLV LX,H2 B11,LOGIFX,BB2 TZ LOGELQ,BB2 L B11,LOGELQ,BB2 N5ELEV . L BB1,LCN L BB2,LGNSLV DECREASE LEVEL AN,M BB2,1 ON L,S1 AA1,ITEM . 2ND LOGICAL IF TNE,M AA1,20 OF A PAIR S BB2,LGNSLV LOGELC . L AA1,LRSTC1,BB1 TZ 1,B11 J PHS5G SA AA1,1,B11 L AA1,CRSTC1,BB1 SA,H1 AA1,1,B11 L,H1 AA1,N5ERLA . CURRENT SEQUENCE NUMBER S,H2 AA1,0,B11 L,M AA1,'I@' S,T1 AA1,0,B11 S,H2 B11,LBLITM LMJ B11,FILE61 +LBLITM LMJ B11,RPLAB L AA1,ITEM TE AA1,(0240000,0) . TEST FOR ENDIF ITEM J PHS5G L BB2,LGNSLV . LOGICAL IF LEVEL L,H2 B11,LOGIFX+1,BB2 TNZ LOGELQ+1,BB2 J PHS5G L BB1,LCN J LOGELC N5ELSE L BB1,LGNSLV L B11,LOGIFX,BB1 S B11,SLGIFL,BB1 SLJ GEN PCI 1,LOGIFX,BB1 EX $+1 TZ ST01F1 J N5EL2 L B11,STSUBT PREVIOUS STATEMENT TYPE L AA1,(03077700) SSL AA1,0,B11 JB AA1,N5EL2 DO NOT GENERATE JUMP TZ,H1 LOGELQ,BB1 J N5EL3 JUMP TO COMMON IFELSE EXIT L,M AA1,020000 S,H1 AA1,LOGIFX,BB1 . MAKE LIKE VARIABLE SLJ GEN PCI 0,LOGIFX,BB1 MI 1,(J P1) EX $+1 N5EL2 SZ GOTOFL L B11,SLGIFL,BB1 J N5ELEV N5EL3 SLJ GEN PCI 0,LOGELQ,BB1 MI 1,(J P1) EX N5EL2 LOGELA L BB1,LGNSLV . CURRENT NESTING LEVEL L B11,LOGIFX,BB1 . SAVE SO NEW CELL CAN BE GENERATED S B11,SLGIFL,BB1 TZ LOGELQ,BB1 . TEST FOR FIRST IFELSE J LOGLA3 . NOT FIRST SLJ GEN . GET ADDRESS FOR PCI 1,LOGELQ,BB1 . GET ADDRESS FOR EX $+1 . EXIT TO LOGLA3 TZ ST01F1 . NO NEED TO GENERATE J LOGLA2 . A JUMP L B11,STSUBT . PREVIOUS STATEMENT TYPE SZ STSUBT L AA1,(03077700) SSL AA1,0,B11 JB AA1,LOGLA2 . DO NOT GENERATE JUMP L,M AA1,020000 S,H1 AA1,LOGELQ,BB1 . MAKE IT LOOK LIKE VARIABLE SLJ GEN PCI 0,LOGELQ,BB1 . GEN JUMP TO ENDIF MI 1,(J P1) EX $+1 LOGLA2 SZ GOTOFL SLJ GEN PCI 1,LOGIFX,BB1 EX $+1 L,M AA1,020000 S,H1 AA1,LOGIFX,BB1 L B11,SLGIFL,BB1 L BB1,LCN J LOGELC . TEST FOR CONDITIONAL STORE AND RELOAD IF NECESSARY LWTMSR L,M BB1,10 REENT LWTMSB L B11,IRW1SI A,M B11,0,BB1 L,H2 AA1,IRW1S,B11 TNE,H2 AA1,IRW1,BB1 EXEC8C J LWTMSA L BB2,IRW1S,B11 TNZ,M 0,BB2 NOTHING IN REGISTER AT SAVE POINT EXEC8C J LWTMSC TNZ,T1 SUBEXD,BB2 EXEC8C J LWTMSC TNZ,H2 IRW1,BB1 . TEST IF SIMPLY DEASSIGNED J LWTMSA TNZ,H2 SUBEXQ,BB2 LO J LWTMSC S BB2,TT2 SZ GA0 S BB1,UPTMST LMJ B11,BREQ2 L BB1,UPTMST LWTMSA JGD BB1,LWTMSB J *LWTMST LWTMSC L,H2 BB2,IRW1,BB1 . SUBEXPRESSION NUMBER TNZ,M 0,BB2 J LWTMSA L,T1 BB3,SUBEXD,BB2 . TEMP NUMBER ASSIGNED TNZ,M 0,BB3 J LWTMSA . NO TEMP ASSIGNED SZ,S3 SUBEXD,BB2 L,M BB3,0,BB1 L AA1,BB3 TE AA1,SX . IF REGISTER TO BE DEASSIGNED DONT DO I LMJ B11,N5DIR DEASSIGN REGISTER J LWTMSA . THIS SECTION ADDS A SIMULATED LEFT PARENTHESIS TO A CONDITIONAL . STORE PUSH DOWN LIST UPTMSR L,M R1,11 L AA1,LGNSLV MSI,M AA1,11 S AA1,IRW1SI . SAVE INDEX INTO IRW1S L B11,(1,IRW1) L BB1,(1,IRW1S) A BB1,AA1 BT BB1,0,*B11 J *UPTMST . SECTION 1.36.0 . 'DEBUG ITEM PROCESSING. SETTING THE 'BUG' FLAG TO . NON-ZERO CAUSES ALL SUBSEQUENT ITEMS READ FROM FILE 50 . TO BE SENT ON TO FILE 61 AS A DEBUGGING AID. . DEBUG LA,S5 AA1,ITEM L,H1 AA2,ITEM TRACE FLAGS TRACE AND,M AA2,0377 TNZ AA3 TEST FOR TRACE ITEM S AA1,BUG L AA3,AA2 TRACE JNB AA3,DBGA REGIST L,M A0,3 TRACE SSL AA3,1 TRACE AND,M AA3,1 TRACE TZ AA4 REGIST S AA4,TRACFL,A0 SET TRACE FLAG ONE WORD FOR EACH TRACE JGD A0,$-4 REGIST SSL AA3,1 S,S6 AA3,CRTRAC JZ AA1,PHS5G SA AA1,CRD . IF ANY DIAGNOSTICS GIVE DUMP J PHS5G DBGA L,M A0,3 REGIST SSL AA3,1 REGIST TEP,M AA3,1 REGIST SZ TRACFL,A0 REGIST JGD A0,$-3 REGIST SSL AA3,1 XOR,M AA3,7 AND AA4,CRTRAC S AA5,CRTRAC J PHS5G REGIST . SECTION 1.37.0 . 'END OF FILE 50' ITEM PROCESSING. . EOF50* LMJ B11,FILE61 + EOF61 EOF501 . EF50 . TRACE L,M B11,EOF61 SLJ FL613 BCLOSE F50 BCLOSE F51A OFF61 . CLOSE F61 AND OPEN TO READ FORWARD SZ CRPH6 J *PHEXIT . SECTION 1.42.0 . THE FOLLOWING IS AN INTERPRETIVE SUBROUTINE FOR . MAKING AN A-REGISTER REQUEST FOR A SINGLE QUANTITY. . THERE ARE FOUR ENTRY POINTS AS FOLLOWS. . 1. AREQCN FOR MAKING A CONDITIONAL NON-DESTRUCTIVE REQUEST . 2. AREQ1C FOR MAKING A CONDITIONAL DESTRUCTIVE REQUEST. . 3. AREQ1N FOR MAKING A NON-DESTRUCTIVE REQUEST. . 4. AREQ1 FOR MAKING A DESTRUCTIVE REQUEST. . UPON EXIT, THE QUANTITY DESIGNATED BY P1 IS (TO BE) . LOADED INTO THE REGISTER DESIGNATED BY P0. . AREQ1Q* EX $+1 CONDITIONAL NON DESTRUCTIVE SX GB1,ARQCF1 FLAG FOR NO SYNONMYS AREQCN* EX $+1 CONDITIONAL NON DESTRUCTIVE SX GB1,ARQCF J AREQ1N+1 AREQ1C* EX $+1 SX GB1,ARQCF SET NON ZERO J AREQ1+1 AREQ1N* EX $+1 SX GB1,AA1 J AREQ1+2 167200 AREQ1* EX $+1 . DESTRUCTIBLE REQUEST SZ AA1 167400 LX B11,GPT,GB2 AN,M B11,*0 SA AA1,DEST SEQUENCE 167600 LA AA1,1,B11 167700 SA AA1,AREQ11 167800 J AREQ1J $(2) . AREQ1J LMJ B11,ARQ1 AREQ11 + $ 168000 J AREQ1K $(1) . AREQ1K SZ ARQFND SZ ARQCF1 TNZ LOADED 168100 J AREQ12 NOT LOADED SZ ARQCF SLJ GENR RETURN 168300 NOP 0 168400 AREQ12 LA AA1,ARQCF SZ ARQCF JZ AA1,AREQ1X SLJ GENR DONT LOAD NOP 1 . SECTION 1.43.0 . THIS IS AN INTERPRETIVE SUBROUTINE FOR MAKING A-REGISTER . REQUESTS FOR TWO QUANTITIES. THE TWO ENTRIES ARE, . 1. AREQ2N FOR MAKING A NON-DESTRUCTIVE REQUEST. . 2. AREQ2 FOR MAKING A DESTRUCTIVE REQUEST. . AREQ2N EX $+1 NON-DEST REQUEST 168600 SX GB1,AA1 J AREQ2+2 168800 AREQ2* EX $+1 DESTRUCTIBLE REQUEST SZ AA1 169000 LX B11,GPT,GB2 AN,M B11,*0 SA AA1,DEST DESTRUCTIBLE REQUEST 169200 LA AA1,1,B11 P1 LOC TO 169300 S,H2 AA1,AREQA1 LA AA1,2,B11 P2 169500 S,H2 AA1,AREQA2 REENT J AREQ2J $(2) . AREQ2J LMJ B11,ARQ2 AREQA1 +0 AREQA2 +0 J AREQ2K $(1) . AREQ2K TZ LOADED J AREQ25 170100 AREQ1X SLJ GENR LOAD P1 170200 LOC P2,0 . MOVE P2 TO P6 TA EQU 8 N5LOAD* EX $+1 TRACE L,M AA1,PZERO TRACE S,H2 AA1,PZERO IF A LOAD IS PERFORMED THERE CAN BE NO SITRACE SLJ GENR TRACE N5LDJ* TE,TA P1,AREQ23,3 TE,TA P1,AREQ23,4 TE,S P1,AREQ22,1 T IF NEGATIVE 170500 MI 1,(LA P0,P1) 170600 NOP 0 170700 AREQ22 MI 1,(LNA P0,P1) 170800 NOP 0 170900 AREQ23 TE,S P1,AREQ24,1 T IF NEG 171000 MI 1,(DL P0,P1) NOP AREQ24* MI 1,(DLN P0,P1) NOP AREQ25 LA AA1,LOADED 171500 TE,M AA1,1 171600 J AREQ26 171700 SLJ GENR NO SKIP RETURN IF 1ST 171800 NOP 0 ARG LOADED 171900 AREQ26 SLJ GENR SKIP RETURN FOR 2ND 172000 NOP 1 ARG LOADED 172100 . SECTION 1.44.0 . THIS INTERPRETIVE SUBROUTINE IS USED WHENEVER . A QUANTITY IS ASSIGNED A VALUE. . ASGN* EX $+1 ASSIGN LX,M GB3,1 LMJ B11,ASN NOP 0,*GPT,GB2 SLJ GENR NOP 0 . SECTION 1.47.0 . THIS INTERPRETIVE SUBROUTINE IS CALLED AT THE FINISH . OF THE CODE GENERATION FOR EACH TRIAD. . MRSLR . LX,M GB3,1 LA,M GA1,*GPT,GB2 LMJ B11,MRST SLJ GENR NOP 0 . SECTION 1.48.0 . THIS INTERPRETIVE SUBROUTINE DEASSIGNS A TRIAD. . DESR LX,M GB3,1 LA,S1 AA1,*GPT,GB2 TE,M AA1,6 TRIAD REF TEST J DEASN2 LMJ B11,DEAS2 NOP 0,*GPT,GB2 DEASN1 SLJ GENR NOP 0 RETURN DEASN2 TE,M AA1,8 OPERATOR TEST J DEASN1 NO LA,M AA1,*GPT,GB2 FORM TRIAD ANA,M AA1,TT3 REF SA,H2 AA1,DEASN3 ITEM LMJ B11,DEAS2 DEASSIGN NOP 0,DEASN3 TRIAD J DEASN1 N5SNPA S A0,SNAPA0 L A0,N5SNP S,H2 A0,N5SNPB L A0,*0,A0 S A0,N5SNPB+1 L A0,N5SNP A,M A0,1 S,H2 A0,N5SNP LMJ B11,FILE61 +N5SNPB L A0,SNAPA0 J *N5SNP . FORTRA . THIS ROUTINE IS ENTERED BY SLJ WHENEVER A PHASE 5 FORTRA . DUMP IS APPROPRIATE. IT DUMPS REGISTERS, PHASE 5 VARIABLES, FORTRA . AND SYMBOL TABLE, CLOSES F50 AND RETURNS TO PHASE 0. FORTRA . FORTRA ERA L R15,N5ERRL REENT S R15,N5ERLA+1 FORTRA TZ,S3 ERRL ER CEND$ SLJ N0RGSV . SAVE REGISTERS. FORTRA LMJ B11,CONTTT +06500,N5ERRL LR R15,(J EF50) TRACE EX ERAZZZ SR R15,ERAZZZ L R15,(NOP 0) S R15,N5ERRL+1 LMJ B11,N5DMP . N5DMP DOES CUSFL TESTING, FORTRA +N5ERLA+1 +N0RGSA REGISTER SAVE AREA +0 . (DUMMY WALKBACK) FORTRA LMJ B11,ERFP +N5ERLA J EOF50 ERB L,H1 R15,N5ERLA REENT S,H1 R15,ER5X . FORTRA S,H1 R15,ER5X L R15,B11 DS A0,SSSSSS LMJ B11,ERFP + ER5X DL A0,SSSSSS S R15,B11 L R15,ERRL5 S,H2 R15,N5ERRL J N5ERRL+1 ERC L,H1 R15,N5ERLA REENT S,H1 R15,ER6X L R15,B11 DS A0,SSSSSS LMJ B11,ERFP + ER6X DL A0,SSSSSS S R15,B11 L R15,ERRL6 S,H2 R15,N5ERRL J N5ERRL+1 $(2) . REENT STBB +0205011 +0 STP01* +0 STP2C +0,005006 ERROR1 + 0,025001 SPX + 0 SPCON1 SN P0,0 TRISGN +0 ST02BE +015021 MONITO ST081 LX,H2 P4,P2 TLEM,M P4,$ ST082 J 1,P1 J $ 119200 ST109 +0 +0 ST139 RES 2 126900 ST159 +0 ST179* LMJ P1,$ + P2 EOF61 + 0100000,0 + 0 MRSLT* TE,S P1,MRSLT1,0 LR,S P0 MRSLT1* SA,S P0,P1 SA,T P1,P0 EX MRSLR DEASN* EX DESR N5SNP* J $-$ J N5SNPA N5SNPB +0340400,0 +0 DEASN3 + 060000,$ N5ERRL* +0 NOP 0 TRACE J ERA REENT N5ERLA* +0,0425002 FATAL ERROR ERRL5* J $ J ERB REENT ERAZZZ NOP $-$ ER5X +05010 ERRL6* J $-$ J ERC REENT ER6X +05012 ST19E* J PHS5G ST191A LA,M P1,$-$ GEXP J $-$ REENT J GEXPR REENT SVSBXD* J $-$ REENT J SVSBXR REENT ALG J $-$ REENT J ALGR REENT SUBFLG +0 REENT SHNTHP J $-$ REENT J SHNTR REENT SHNTHA J $-$ REENT J SHNTRA REENT EVALLB* J $-$ REENT J EVALLR REENT LWTMST* J $-$ REENT J LWTMSR REENT STR4M +05014 . TWO MANY ENTRY POINTS REENT UPTMST* J $-$ REENT J UPTMSR REENT SSSSSS + 0701634527016 + 0701634527016 SPCON2 +0 HOLDS REGISTER NUMBER SPCON3 +0 HOLDS P0 SPOPFL + 0 STSUBT* +0 . TYPE OF CURRENT STATEMENT FOR IF-ELSE/N5GEN SVEXP +0 SNAPA0 +0 BUGERR +0120300,ERRL XEC8C IODBNK* +020000,0 LCF50* +0 . SAVES COUNT IN F50 AT END OF LOGICAL IF UT109 LMJ P3,$-$ END