RGDF . THIS DEFINES THE REGISTERS FORMG FORM 5,7,6,1,1,16 $(1) . LIT . N4MN* . ALTERNATE NAME FOR START OF PHASE 4 L A0,BUGERR ER IALL$ . PHASE 4 MAIN CONTROL 00000100 SZ LEVW2 MAIN OBF50 . CLOSE WRITE-OPEN READ BACKWARDS F50 OWF51 . OPEN WRITE F51 L,H2 A0,CRNEXD TG,M A0,LEXD-1 L,M A0,LEXD-1 N4SXD L,H2 A1,SUBEXD,A0 MOVE EXPRESSION COUNT S,H2 A1,SUBQQQ,A0 L A1,(0400000) S A1,SUBEXD,A0 JGD A0,N4SXD L B8,(2,0) L,M A0,0 COUNT AVAILABLE INEX REGISTERS L,M R1,9 L A1,(1,0) TZ,S2 N0RGTB+1,*A1 BIT IN THIS TABLE FOR EACH REG A,M A0,1 JGD R1,$-2 TLE,M A0,3 J MA9 TZ CRENT NO ZERO LEVEL SUBSCRIPTS J $+3 IF ENTRY STATEMENTS TZ,H2 CR131K AN,M A0,2 LEAVE 2 MORE ZERO LEVEL INDEX REGISERS TZ,S2 U1110A AN,M A0,2 MA9 AU,M A0,1 S A0,MNZRA S A1,MNZIR MA10 LMJ B11,NEXTI GET NEXT ITEM 00000500 AND A0,(0777700000000) 00000600 DSL A1,30 00000700 SSL A2,30 00000800 LMJ B11,*IDSW,A1 00000900 J MA10 00001000 IDSW J MA10 0 00001100 J MA10 1 00001200 J MA10 2 00001300 J MA10 3 00001400 J MA10 4 00001500 J MA10 5 00001600 J MA10 6 00001700 J MA10 7 00001800 J MA10 8 00001900 J *IDSW9,A2 SUBSCRIPT CODE 9 00002000 J MA10 10 00002100 J MA10 11 00002200 J MA10 12 00002300 J MA10 13 00002400 J MA10 14 00002500 J BDP BEGIN DO 15 00002600 J EDP END DO 16 00002700 J MA10 17 00002800 J MA10 18 00002900 J MA10 19 00003000 J MA10 20 00003100 J BSP BEGIN PROG 21 J JAP J MA10 23 00003400 J ESP END OF PROG 24 00003500 J ID25 USUAGE ITEM J MA10 26 00003700 J MA10 27 00003800 J DBUGF 28 00003900 J DONE END OF FILE 29 00004000 J MA10 30 00004100 IDSW9 J MA10 0 00004200 J LCP LOOP COUNT 1 00004300 J IIP INNER INC 2 00004400 J IVP INITIAL VAL 3 00004500 J MA10 4 00004600 J OIP OUT INC 5 00004700 ID25 TNE,M A2,041 J SUPN TE,M A2,045 J *IDSW25,A2 J SED IDSW25 J MA10 0 00005500 J SUP SUB USE 1 00005600 J IMP LAST LAB, ETC. 2 00005700 J MA10 3 00005800 J MA10 4 00005900 J SED SUB DEF 5 00006000 J MA10 6 00006100 J MA10 7 00006200 J MA10 8 00006300 . DEBUG FLAG ITEM ID=28 . SETS THE DEBUG FLAG EQUAL TO THE CONTENTS OF THE . S5 FIELD OF THE DEBUG ITEM. NON-ZERO TURNS ON DEBUG . PRINTOUTS, ZERO TURNS OFF DEBUG PRINTOUTS. DBUGF L,S6 A0,ITEM AND,M A0,7 TE,M A1,4 J 0,B11 NOT FOR PHASE 4 L A0,ITEM AND A0,(0777700) S A1,DEBUG J 0,B11 00006330 . LOOP COUNT ID=9, T=1 00006400 . SAVE INVART FIELD IN LEVEL TABLE FOR USE IN INDUCTION VARIABLE . MATERIALIZATION. . SET D FIELD OF LOOP TABLE TO ZERO IF LOOP DID NOT . COLLAPSE, (COUNT VALUE NON-ZERO), TO 1 IF COLLAPSED. . OUTPUT COUNT LOADING AND TESTING ITEMS TO FILE 51 LCP S,H2 B11,LC90 L A2,A7 LEVEL AND,M A0,07777 TNZ,H2 SUBQQQ,A1 LSSL A1,36 S,H2 A1,LEVEL+1,A2 L,T2 B1,ITEM PB LMJ B11,NEXTI GET WORD2 OF ITEM 00006600 L,T3 B2,LOOP,B1 PE TNE A0,(030104777776) J LC97 LOOP HAS COLLAPSED 00006800 L A1,(011060000) ID=9, T=6 00006900 S A1,F51,B8 00007000 S,T1 B1,F51,B8 PLAT 00007100 LC10 L,M A2,1 00007200 S,S4 A2,LOOP,B2 LOOP,D 00007300 S A0,F51+1,B8 FILE 40 ITEM TO F51 00008300 TG,M A7,6 J LC98 . SET BITS TO FORCE TEMP STORES LC20 A A2,A7 S,S3 A2,F51+1,*B8 REG L,M A1,01107 ID=9, T=7 00008400 S,T2 A1,F51,B8 00008500 S,T1 B2,F51,B8 PLAT PE 00008600 S A0,F51+1,B8 FILE 40 ITEM TO F51 00008700 S,S3 A2,F51+1,*B8 REG J *LC90 REENT LC97 SZ,S4 LOOP,B2 LOOP,D 00009100 J *LC90 00009200 LC98 LR,M R5,5 L,T1 B1,LOOP+1,B1 . PB(OD) JGD R5,$-1 ACCESS LOOP 5 LEVELS OUT OR,S3 A2,LOOP+1,B1 . LOOP,F SA,S3 A3,LOOP+1,B1 . SET F1 LX,T3 B1,LOOP,B1 . PE L,S3 A3,LOOP+1,B1 . LOOP,G OR,M A3,010 S,S3 A4,LOOP+1,B1 . G4=1 J LC20 . INNER INCREMENT ID=9, T=2 00009300 . SAVE INCREMTING INFORMATION FOR SUBSCRIPT IN LOAD TABLE . FOR LATER PROCESSING. LINK TO THE LOAD TABLE FOR SUBSCRIPT . IS IN SUBEXD TABLE,T1. IIP AND,M A0,07777 EXP IN A1 TNZ,H2 SUBQQQ,A1 TEST EXPRESSION COUNT J NEXTI S,T3 A0,IP91 SEARCH ITEM S,H2 B11,IP90 L,T1 B3,SUBEXD,A1 SUBEXD,SUBR 00009700 TZ B3 J IP10 L B3,NLOAD A,M B3,2 S B3,NLOAD S,T1 B3,SUBEXD,A1 IP10 L,T2 A1,ITEM PE 00009800 S,T1 A1,LOAD+1,B3 LOAD,PLATI 00010000 LMJ B11,NEXTI GET NEXT ITEM FROM FILE 40 00010100 S,H2 A0,LOAD+1,B3 LOAD,VALI 00010300 DSL A0,29 00010400 TG A1,(020000000000) 00010500 A,M A0,010 S,S3 A0,LOAD+1,B3 LOAD, INDI 00010700 L A1,IP91 L A2,(2,0) IP94 TNE,H2 A1,F51,*A2 J IP92 TLE A2,B8 J IP94 TE,M A0,6 CON IN SYM J *IP90 REENT L,H2 A0,ITEM TP,XH2 ITEM AN,M A0,0,*0 L,M A1,016 L A0,0,A0 SYM WORD 1 TP,XH2 ITEM LN A0,A0 S,H2 A0,LOAD+1,B3 S,S3 A1,LOAD+1,B3 J *IP90 IP92 L,14 A3,6 TE,S3 A3,F51-1,A2 J IP94 L A3,ITEM S A3,F51-1,A2 L,14 A3,6 S,S3 A3,F51-1,A2 L,S1 A3,F51-1,A2 TE,M A3,5 TEST FOR SUBEXPRESSION J IP94 L A3,F51-1,A2 SSC A3,12 SSL A3,24 L,H2 A4,SUBQQQ,A3 INCREASE NUMBER OF USES A,M A4,1 S,H2 A4,SUBQQQ,A3 J IP94 . INITIAL VALUE ID=9, T=3 00010900 . STORE DEFINITION LEVEL OF SUBSCRIPT INTO SUBEXD TABLE,S3. . SAVE INITIAL VALUE FOR SUBSCRIPT IN LOAD TABLE FOR LATER . PROCESSING. LINK TO THE LOAD TABLE FOR SUBSCRIPT IS IN . SUBEXD TABLE,T1. IVP AND,M A0,07777 EXP IN A1 TNZ,H2 SUBQQQ,A1 TEST FOR ZERO EXPRESSION COUNT J NEXTI S,H2 B11,IV90 S,S3 A7,SUBEXD,A1 SUBEXD,LEVF L,T1 B3,SUBEXD,A1 SUBEXD,SUBR 00011300 TZ B3 00011400 J IV10 00011500 L B3,NLOAD 00011600 A,M B3,2 00011700 S B3,NLOAD 00011800 S,T1 B3,SUBEXD,A1 SUBEXD,SUBR 00011900 IV10 L,T2 A0,ITEM 00012000 S,T1 A0,LOAD,B3 LOAD,PLATS 00012100 LMJ B11,NEXTI GET NEXT ITEM FROM FILE 40 00012200 S,H2 A0,LOAD,B3 LOAD,VALS 00012300 SSL A0,22 TYPE*4 00012400 A,S1 A0,ITEM ID 00012500 S,S3 A0,LOAD,B3 LOAD,INDS 00012600 TE,M A0,01403 CON IN SYM J *IV90 REENT L,H2 A0,ITEM TP,XH2 ITEM . TEST FOR MINUS SIGN AN,M A0,0,*0 . SUBTRACT OUT SIGN BIT L,M A1,7 L A0,0,A0 SYM WORD 1 TP,XH2 ITEM LN A0,A0 S,H2 A0,LOAD,B3 S,S3 A1,LOAD,B3 J *IV90 . OUTER INCREMENT ID=9, T=5 00013500 . OUTPUT TO FILE 51 AN OUTER INCREMENT FOR AN OPTIMAL SUBSCRIPT OIP S,H2 B11,OP90 S A0,F51,B8 00013700 S,T3 A0,RLI L,T1 A0,ITEM ID AND TYPE 00013800 S,T2 A0,F51,B8 00013900 L,T2 A0,ITEM PE 00014000 S,T1 A0,F51,B8 00014200 LMJ B11,NEXTI GET WORD 2 OF ITEM TO A0 00014300 S A0,F51+1,*B8 00014400 . THIS NEXT SECTION PUTS ENTRIES INTO F51 TO RELOAD THE INCREMENT . IF AN ADD OCCURS WHICH CAN DESTROY IT. SUCH AS ADD IS A NEGATIVE CONTSTANT . VARIABLE OR EXPRESSION L A1,RLI REENT L,T1 A2,SUBEXD,A1 ENTRY INTO LOAD TABLE L,S3 A0,LOAD+1,A2 SSL A0,1 L A1,F51-2,B8 S A1,F51,B8 L,M A1,01106 ID OF ITEM S,T2 A1,F51,B8 L,H2 A1,LOAD+1,A2 VALUE OF INCREMENT A A1,CVLOAD,A0 S A1,F51+1,B8 L,T1 A1,F51-1,B8 TE,M A1,0301 J $+3 TN,XH2 F51-1,B8 ONLY GENERATE LOAD INCREMENT FO NEG CONS J OP90 L,S1 A1,F51+1,B8 TE,M A1,5 J $+6 L A0,F51+1,B8 AND,M A0,07777 EXTRACT A 12 BIT INDEX LOAD L,H2 A2,SUBQQQ,A1 UP COUNT OF EXPRESSIONS A,M A2,1 S,H2 A2,SUBQQQ,A1 L,M A0,6 S,S3 A0,F51-1,B8 S,S3 A0,F51+1,*B8 MARK AS RELOAD INCREMENT ITEM J *OP90 REENT . BEGIN DO ID=15 00014600 . AT START OF NEW NEST CERTAIN COUNTERS AND TABLES ARE . RESET. COUNTER VALUES FOR THE NEXT OUTER DO ARE . SAVED IN THE LOOP TABLE AND THE LEVEL TABLE. THESE COUNTER . VALUES ARE RESTORED WHEN PROCESSING OF THE INNER DO . LOOPS OF THE NEST IS COMPLETED. BDP S,H2 B11,BD90 L,M A1,4 S A1,OPINV RESET OPINV AND A0,(07777000000) 00014800 SSL A1,18 00014900 L B1,A1 PB OR PLATC B1=PB 00015000 JNZ A7,BD10 NOT A NEW NEST 00015100 . BOOKKEEPING FOR NEW NEST. L A0,(01000001) 00015200 L,M A1,11 BD02 SZ IR,*A0 RESET IR TAB 00015400 JGD A1,BD02 00015500 L B10,(01000000) NU B10=NU 00015600 SZ IU 00015800 SZ A8 NIRI 00016000 L B9,(01000000) NOSUB B9=NOSUB 00016100 TG A9,MIR 00016200 S A9,MIR 00016300 SZ INVART+0 SZ INVART+1 SZ INVART+2 SZ INVART+3 SZ INVART+4 BD10 L,T3 B2,LOOP,B1 LOOP,PE A,M A7,1 LEVC S,S2 A9,LOOP,B2 LOOP,IRI 00016800 L A0,A7 00016950 S B10,NUT 00016600 S,T3 B10,LEVW2,A0 USER S,S4 A10,LEVW2,A0 IRIC SZ A9 MAXI 00017000 SZ A10 CURI 00017100 S,T1 B1,LEVEL,A0 LEVEL,LPLAT 00017150 J *BD90 REENT . END DO ID=16 00017300 . OUTPUTS FILE ITEMS TO MATERIALIZE INDUCTION VARIABLE IF . NEEDED. PROCESSES THE USE TABLE TO MAKE RESERVATIONS . FOR THE SUBSCRIPTS THAT ARE TO BE PERMANENTLY LOADED. IF . THE SUBSCRIPT IS ASSOCIATED WITH THE CURRENT LOOP THE LOADING . AND INCREMENTING ITEMS ARE OUTPUT TO FILE 51; IF NOT . THE SUBSCRIPT IS ADDED TO THE OSUB TABLE TO BE PROCESSED . AT THE END OF THE NEST. BOOKKEEPING IS DONE TO RESET . COUNTERS TO NEXT OUTER LOOP. TABLES ARE PRINTED IF THE . DEBUG FLAG IS SET. . AT THE END OF A NEST THE OSUB TABLE IS PROCESSED . TO GENERATE LOADING AND INCREMENTING ITEMS FOR THE OUTER . SUBSCRIPTS. FILE 51 IS SORTED AND OUTPUT TO DRUM. . A0,A1,A6 00017400 . B6,B7 00017500 EDP S,H2 B11,ED90 TNZ,S4 LOOP,B2 LOOP,D 00017700 J ED94 LOOP COLLAPSED 00017800 L,S4 A0,LOOP,B1 LOOP, C 00016600 SSL A0,2 00016603 JNB A0,ED01 . MATERIALIZE INDUCTION VARIABLE 00016609 L A3,A7 LEVEL L,M A0,01100 ID=9, T=0 L,H2 A1,LEVEL,A3 EXP. NO. S A1,F51,B8 S,T2 A0,F51,B8 00016615 S,T1 B1,F51,B8 PB 00016618 L,S1 A0,LOOP+1,B2 LOOP, IB 00016621 SSL A0,3 00016624 L,XH1 A1,LOOP,B1 LOOP,BEG JP A1,ED00E TE,M A0,7 J ED00E LN,H1 A1,LOOP,B1 A,M A1,0,*0 ED00E S,H2 A1,F51+1,B8 TE,M A0,5 TEST FOR EXPRESSION J ED00EA LSSL A1,24 EXTRACT NUMBER WITHOUT SIGN BIT SSL A1,24 L,H2 A2,SUBQQQ,A1 A,M A2,1 S,H2 A2,SUBQQQ,A1 ED00EA . L,H1 A0,CVLOAD,A0 ID AND TYPE 00016633 S,H1 A0,F51+1,*B8 00016636 TZ,H2 LEVEL,A3 J ED92 L,S4 A0,LOOP,B1 LOOP,C JB A0,ED00W UNSAFE L A0,OPINV JZ A0,ED00W MORE THAN 4 LOOP MATERIALIZED L,H2 A2,LOOP+1,B1 . SYM PTR OF IV L,S3 A2,2,A2 SSL A2,3 . TEST IF IND VAR TE,M A2,1 J ED00W . NOT INTEGER . MATERIALIZE INDUCTION VARIABLE IN PERMANENT A-REG L,M A1,1 S,S4 A1,F51-2,B8 S,T3 A0,F51-2,B8 S,T3 A0,F51,B8 A A0,(-1,0) S,S6 A1,INVART,A0 ED00M TZ,S6 INVART-1,*A0 J ED00M S,H2 A0,OPINV L,M A0,01106 ID=9,T=6 J ED00X ED00W L,M A0,01101 ID=9,T=1 ED00X S,T2 A0,F51,B8 S,T1 B2,F51,B8 PE 00016645 L,S3 A0,LOOP+1,B2 LOOP, G 00016648 AND,M A0,7 00016651 L,XH2 A0,LOOP+1,B2 LOOP,INC JP A0,ED00Y TNE,M A1,7 LN,T3 A0,LOOP+1,B2 LOOP,INC ED00Y S A0,F51+1,B8 TE,M A1,5 TEST FOR EXPRESSION J ED00YA LSSL A0,24 SSL A0,24 L,H2 A2,SUBQQQ,A0 A,M A2,1 S,H2 A2,SUBQQQ,A0 ED00YA . L,H1 A0,CVLOAD,A1 ID AND TYPE 00016660 S,H1 A0,F51+1,*B8 00016663 ED01 L A0,B10 NU AN A0,NUT JZ A0,ED70 NO PERM. SUBSCRIPTS TO ASSIGN S,H2 A0,NSUB AN A0,MNZIR SUBTRACT MAX NUM NON ZERO LEVEL ASSIGNS A A0,A8 NIRI 00018400 JN A0,ED05 FEWER ASGN THAN AVAIL REGS 00018500 L A0,NUT 00018600 A,M A0,USE 00018700 S A0,ED04 00018800 J ED04J $(2) . ED04J LMJ B11,SRT1 ED04 + $-$ + NSUB 00019100 . PRINT USE TABLE 00019110 J ED04K $(1) . ED04K . ED05 TNZ DEBUG 00019120 J ED06 00019130 S B10,NU 00019140 L A0,NUT 00019150 S A0,DUMPI 00019160 XPH1 ED98 USE TABLE 00019170 ED04C XPBB USE-1,6 XPT NU,6,ED06,ED04C 00019190 ED06 LMJ B11,APIR ASSIGN PERMANENT REGS 00019200 ED70 AN,M A7,1 LEVC 00019300 LMJ B11,ATIR RESERVE TEMPORARY REGS 00019400 TG A14,MIR 00019600 S A14,MIR 00019700 AN A14,A8 S,S3 A14,LOOP,B1 LOOP AIR . PRINT IR TABLE 00019700 TNZ DEBUG 00019710 J ED70E 00019720 SZ DUMPI S,H2 B9,NOSUB XPH1 ED96 EDJ1 XPBB OSUB,6 XPT NOSUB,6,EDJ2,EDJ1 EDJ2 SZ DUMPI 00019730 XPH1 ED99 IR TABLE 00019740 ED70C XPBB IR,6 00019750 XPT (11),6,ED70E,ED70C ED70E LMJ B11,DIR DEASSIGN REGS 00019770 L A0,A7 SZ IU 00020300 A,S4 A10,LEVW2+1,A0 IRIC LXM,T3 B10,LEVW2+1,A0 USER TO NU L,S2 A9,LOOP,B2 LOOP,IRI TO MAXI 00020100 L,T1 B1,LOOP+1,B1 LOOP, PB(OD) TO PLATC 00020200 L,T3 A0,LEVW2,A0 USER L,T3 B2,LOOP,B1 LOOP, PE L A1,(-1,5) S,H2 A0,NUT TZ,S6 INVART-1,*A1 J $-1 S,H2 A1,OPINV JNZ A7,*ED90 NOT LEVEL ZERO 00020700 . END OF NEST 00020800 ED72 L A0,B9 TNE A0,(01000000) J ED73 00021000 L,H2 B7,OSUB-1,A0 OSUB,EXP B7=K 00021100 L,H1 A6,OSUB-1,A0 OSUB,IR A6=T2 00021200 L,T1 B6,SUBEXD,B7 SUBEXD,SUBR B6=J 00021300 LMJ B11,GLI GENERATE LOAD AND INC 00021400 JGD B9,ED72 . PRINT OSUB TABLE 00021510 ED73 TNZ DEBUG 00021520 J ED73E 00021530 S,H2 B9,NOSUB 00021540 SZ DUMPI 00021550 XPH1 ED96 OSUB TABLE 00021560 ED73C XPBB OSUB,6 00021570 XPT NOSUB,6,ED73E,ED73C 00021580 ED73E L,M A0,0,B8 TG,M A0,F51L J DON4J SSL A0,1 S A0,ED91 LMJ B11,SRT2 SORT FILE51 FOR NEST 00022100 + F51 + ED91 00022300 . PRINT FILE 51 00022310 TNZ DEBUG 00022320 J ED85 S,H2 B8,NF51 SZ DUMPI XPH1 ED97 F51 00022370 ED74C XPBB F51,6 00022380 XPT NF51,6,ED75,ED74C 00022390 . PRINT LOAD TABLE 00022392 ED75 SZ DUMPI 00022394 XPH1 ED99G 00022396 ED75C XPBB LOAD,6 00022398 XPT NLOAD,6,ED85,ED75C ED85 SZ NLOAD LMJ B11,WNF51 WRITE N F51 ITEMS LX B8,(2,0) J *ED90 REENT ED92 L,H2 B11,LEVEL,A3 L,M A0,076 L,T1 B11,SUBEXD,B11 NOP 0,0 AND,S3 A0,LOAD+1,B11 S,S3 A1,LOAD+1,B11 J ED01 ED94 L,T1 B1,LOOP+1,B1 LOOP,PB(OD) 00022600 AN,M A7,1 00022700 L,T3 B2,LOOP,B1 LOOP,PE 00022800 J *ED90 00022900 . BEGIN SUBPROGRAM ID=21 00023000 . BOOKKEEPING TO RESET COUNTERS AND FLAGS. BSP S,H2 B11,BS90 SSL A2,3 TNE,M A2,7 J BS90 DO NOT CONSIDER ENTIES AS BEGIN OF PROGRAM S,H2 A0,SYMSP 00023200 L A1,(01,0) S A1,ZRLEVN SZ ZRLEV . ZERO LEVEL FLAG 131K L,M A7,0 LEVC 00023300 SZ MIR 00023400 L,M A9,0 MAXI 00023500 L,M A10,0 CURI 00023600 J *BS90 REENT JAP SX B11,ZRLEV . NON-ZERO TO ZERO LEVEL FLAG J MA10 . END SUBPROGRAM ID=24 00024200 . MAKE PERMANENT INDEX REGISTER ASSIGNMENTS FOR THE MOST . FREQUENTLY USED LEVEL ZERO DEFINED SUBSCRIPTS. TEN MINUS . THE MAXIMUM NO. IR'S NEEDED FOR THE PROGRAM LIMITS THE . NUMBER OF SUCH PERMANENT ASSIGNMENTS. ESP S,H2 B11,ES90 TNG A9,MIR MAXI L A9,MIR 00024500 L,H2 A0,ZRLEVN NO. OF ZRLEVT ENTRIES JZ A0,*ES90 NO. ZERO LEVEL SUBSCRIPTS TZ,S6 CR131K A,M A9,1 AN,M A9,MNZRA . MAX AVAILABLE REGISTERS JP A9,*ES90 ALL IR USED LNA A9,A9 TG A9,A0 J ES92 MORE IR THAN SUBSCRIPTS S A0,NSUB LMJ B11,SRT1 SORT ZRLEVT TABLE + ZRLEVT + NSUB ES50 L A0,(1,0) MAKE PERMANENT ASSIGN AN,M A9,1 L A2,MNZRA AN A2,A9 TNZ CRENT S A2,MNZRA L A2,MNZIR AN A2,A9 TNZ CRENT S A2,MNZIR ES60 L,H2 A2,ZRLEVT,*A0 L,M A1,040 TNZ CRENT NO ZERO LEVEL SUBSCRIPTS IF ENTRY STATEMENTS S,S5 A1,SUBEXD,A2 JGD A9,ES60 J *ES90 REENT ES92 L A9,A0 J ES50 . SUBSCRIPT USAGE ID=25 T=1 00025200 . IF SUBSCRIPT USE IS AT SAME LEVEL AS DEFINE, THE EFFECT OF . THIS OCCURRENCE ON THE MAXIMUM NUMBER OF TEMPORARY REGISTERS . REQUIRED IS DETERMINED. IF USE IS AT DIFFERENT LEVEL, . THE USE TABLE IS SEARCHED TO DETERMINE IF SUBSCRIPT . HAS OCCURRED BEFORE; IF SO THE FREQUENCY OF OCCURRENCE IS . INCREASED; IF NOT IT IS ADDED AS NEW ENTRY TO THE USE TABLE. . IF SUBSCRIPT CONTAINS INDUCTION VARIABLE AND OCCURS AFTER . THE INCREMENT MARKER ITEM AND IS ASSOCIATED WITH THE . CURRENT LOOP, THE INCREMENT ON FINAL USE BIT IS SET FOR . THE SUBSCRIPT IN THE LOAD TABLE. . A0 CONTAINS THE FILE 40 ITEM 00025300 . A0,A1,A2,A3,A16 00025400 SUPN AND,M A0,07777 L,M A2,010000 OR,H2 A2,SUBEXD,A1 S,H2 A3,SUBEXD,A1 J SP10 SUP AND,M A0,07777 SP10 S,H2 B11,SP90 L B5,A1 B5=EXP 00025700 AND A0,(077770000) 00025800 JNZ A1,SP20 NOT FINAL OCCUR 00026100 L A1,SUBEXD,B5 00026200 OR A1,(0200000) 00026300 S A2,SUBEXD,B5 SUBEXD,S2 SET TO 1 00026400 TE,S3 A7,SUBEXD,B5 SUBEXD,LEVF 00026500 J SP22 GLOBAL ASSIGNED SUBSCRIPT 00026600 L,T1 A1,SUBEXD,B5 TNE A1,(0777777777777) J *SP90 A,M A10,1 TLE A9,A10 S A10,A9 J *SP90 00027000 SP20 TNE,S3 A7,SUBEXD,B5 SUBEXD,LEVF 00027100 J SP92 SEQ DEPENDENT SUBSCRIPT 00027200 SP22 TN,XH2 SUBEXD,B5 SUBEXD,IL 00027300 J SP40 ALREADY ASSIGNED AT INNER LOOP 00027400 L A2,NUT 00027500 ANU A2,B10 NU 00027600 JZ A3,SP94 NO OTHER ENTRY 00027650 SN A3,R1 00027700 L A3,B5 EXP 00027800 SE,H2 A3,USE,*A2 USE,SN 00027900 J SP94 NOT IN USE TABLE 00028000 L,T1 A1,USE-1,A2 USE,FREQ 00028100 AN,M A1,1 S,T1 A1,USE-1,A2 00028300 SP40 TNZ IU 00028400 J *SP90 00028500 L,T1 A1,SUBEXD,B5 SUBEXD,SUBR 00028600 JZ A1,*SP90 NON-INDUCTION VAR 00028700 L,T1 A2,LOAD+1,A1 LOAD, PLATI 00028800 TE A2,B2 PLATC, PE 00028900 J *SP90 NOT FOR THIS LOOP 00029000 L,S3 A2,LOAD+1,A1 00029100 OR,M A2,1 LAOD, A SET TO 1 00029200 S,S3 A3,LOAD+1,A1 00029300 J *SP90 REENT SP92 L A1,(0777777777777) 00029500 TNE,T1 A1,SUBEXD,B5 SUBEXD,SUBR 00029600 J *SP90 00029700 TLE A10,MNZRA A,M A10,1 CURI 00029800 S,T1 A1,SUBEXD,B5 00029900 TNG A9,A10 00029940 S A10,A9 00029960 J *SP90 00030000 SP94 S B5,USE,B10 USE,EXP 00030100 LN,M A1,1 S,T1 A1,USE,*B10 USE, FREQ 00030300 J SP40 00030350 . SUBSCRIPT EXPRESSION DEFINITION ID=25 T=5 00030400 . STORE CURRENT LEVEL INTO SUBEXD TABLE ENTRY OF SUBSCRIPT . EXPRESSION. IF LEVEL ZERO FLAG SET, DETERMINE TEN MOST . FREQUENTLY USED SUBSCRIPTS DEFINED AT LEVEL ZERO. SED AND,M A0,07777 S,H2 B11,SD90 00030600 S,S3 A7,SUBEXD,A1 SUBEXD,LEVF 00030700 TZ ZRLEV J *SD90 REENT L A2,ZRLEVN ANU A2,(1,10) 131K TZ,S6 CR131K ANU A2,(1,9) TN A3 J SED50 TABLE FULL S,H2 A1,ZRLEVT,A2 SUBSCRIPT NUMBER L,H2 A3,SUBQQQ,A1 NUMBER OF OCCURENCES TLE,M A3,5 J *SD90 SN,H1 A3,ZRLEVT,*A2 S A2,ZRLEVN J *SD90 . SEARCH ZRLEVT TABLE FOR ENTRY WITH SMALL NO. OF OCCURS SED50 L,M R1,9 TZ,S6 CR131K L,M R1,8 . ONE LESS POSITION IN 131K CODE 131K L A2,(1,0) L,H2 A4,SUBQQQ,A1 NN TLE,M A4,5 J *SD90 L,M A3,0 SED60 LM,XH1 A5,ZRLEVT+1,*A2 TLE A4,A5 J SED70 NO. OF OCCURS GREATER LM,XH1 A4,ZRLEVT,A2 L A3,A2 SED70 JGD R1,SED60 TNZ A3 J *SD90 NEW SUB HAS FEWER NO. OCCUR L,H2 A4,SUBQQQ,A1 NN S,H2 A1,ZRLEVT,A3 SN,H1 A4,ZRLEVT,A3 NO OF OCCURRENCES J *SD90 . INCREMENT MARKER ID=25 T=2 00031200 IMP S,H2 B11,IU . NON-ZERO TO IU J 0,B11 00031400 . SEARCH IR TABLE FOR ASSIGNMENT 00031500 . A3=LEV, THE IR DEASSIGN LEVEL 00031600 . A2=REGISTER ASSIGNED 00031700 . A0,A1,A2,A4 00031800 SIRT S,H2 B11,ST90 LN,M A4,1 A4=T1 00032000 L,M A2,0 A2=T2 00032100 L A0,(01000000) A0=K 00032200 L A1,MNZRA COUNTS ENTRIES IN IR TABLE J ST50 ST02 TNZ IR+1,*A0 00032400 J ST92 REG'S BEYOND HERE NOT USED 00032500 TZ,H1 IR,A0 IR, EXP 00032600 J ST50 REG ALREADY ASSIGNED 00032700 TNG,T3 A3,IR,A0 IR, LEVD 00032800 J ST50 ASSIGNMENT NOT POSSIBLE 00032900 TG,T3 A4,IR,A0 IR, LEVD 00033000 J ST50 PREVIOUS ASSIGN BETTER 00033100 L,T3 A4,IR,A0 T1 00033200 LXM A2,A0 T2 00033300 ST50 JGD A1,ST02 00033400 J *ST90 REENT ST92 JNZ A2,*ST90 ASSIGNMENT MADE 00033600 LXM A2,A0 00033700 S,S4 A0,IR,A0 IR,X 00033800 J *ST90 00033900 . PROCESS LOAD TABLE ENTRY J TO GENERATE LOADING AND . INCREMENTING ITEMS FOR FILE 51 FOR SUBSCRIPT K. . A6=T2, IR ASSIGNED 00034000 . B7=K, SUBSCRIPT EXP NO. 00034100 . B6=J, LOAD TAB ENTRY NO. 00034200 . A0,A1,A2,A3,A4,A6 00034300 GLI S,H2 B11,GL90 L,T1 A2,LOAD+1,B6 PLATEAU AT END OF LOOP L,T3 A2,LOOP,A2 PLATEAU AT BEGINNING OF LOOP SSC A2,12 A A2,(011050000) A A2,B7 PUT ENTRY INTO PHASE V THAT TELLS WHICH SUBSCRIPTS A S A2,F51,B8 ARE TO BE INCREMENTED SO SAVE L A2,(030100,0) S A2,F51+1,*B8 INSTRUCTIONS CAN BE GENERATED AT INNER LOOP L,S3 A0,LOAD+1,B6 LOAD, INDI AND A 00034500 L,S3 A1,LOAD,B6 LOAD, INDS 00034600 TNE,M A6,6 . 6 IS A FLAG FOR LOAD INCREMENT AN,M A6,1 SSC A6,18 T2 00034700 JNB A0,GL94 NO INC ON FINAL USE 00034800 L,M A2,0100000 00034900 OR A2,SUBEXD,B7 SUBEX,S1 00035000 S A3,SUBEXD,B7 SET INC ON FINAL USE BIT 00035100 SSL A0,1 00035200 L A2,GL96,A1 00035300 AND A2,GL96,A0 00035400 JZ A3,GL50 NON-CONSTANT LOADS 00035450 L,H2 A3,LOAD+1,B6 LOAD,VALI 00035500 SSC A3,18 00035600 OR,H2 A3,LOAD,B6 LOAD,VALS 00035700 LMJ B11,SLT SEARCH FOR CONSTANT IN SYM 00035800 + CRIHL 00035900 J $+2 J $+4 LMJ B11,SLTI INSERT IN SYM 00036000 L,M A0,073 S,S3 A0,2,A1 SYM MODE A A6,(030000000000) ID AND TYPE S A6,F51+1,B8 S,H2 A1,F51+1,B8 GL30 L,T1 A0,LOAD,B6 LOAD PLATS 00036400 S,T1 A0,F51,B8 00036500 L,M A0,01102 ID=9,T=2 00036600 S,T2 A0,F51,B8 00036700 S,T3 B7,F51,*B8 00036800 J *GL90 00036900 . GENERATE LOAD INCREMENT 00037000 GL50 TZ GL96,A0 J GL95 INCREMENT A CONSTANT L A2,(0110300000000) A,T1 A2,LOAD,B6 LOAD, PLATS SSC A2,12 00037200 A A2,B7 00037400 S A2,F51,B8 00037500 L,H2 A2,LOAD+1,B6 LOAD,VALI 00037600 A A2,(077000000) IR. NO. A A2,CVLOAD,A0 ID AND TYPE 00037800 S A2,F51+1,*B8 00037900 . GENERATE LOAD MODIFIER 00038000 GL60 L A2,(0110300000000) ID=9, T=3 GL64 A,T1 A2,LOAD,B6 LOAD, PLATS 00038200 SSC A2,12 00038300 A A2,B7 EXP NO. 00038400 S A2,F51,B8 00038500 L,H2 A2,LOAD,B6 LOAD,VALS 00038600 A A2,A6 00038700 A A2,CVLOAD,A1 ID AND TYPE 00038800 S A2,F51+1,*B8 00038900 J *GL90 REENT . GENERATE INCREMENT ITEM 00039100 GL94 L,T1 A2,LOAD+1,B6 LOAD, PLATI (PE) 00039200 SSC A2,12 00039300 A A2,(011050000) ID=9,T=2 00039400 A A2,B7 K 00039500 S A2,F51,B8 00039600 L,H2 A2,LOAD+1,B6 LOAD,VALI 00039700 SSL A0,1 00039800 A A2,A6 00039900 A A2,CVLOAD,A0 ID AND TYPE 00040000 S A2,F51+1,*B8 00040100 . GENERATE LOAD INDEX 00040200 L A2,(0110200000000) ID=9,T=2 00040300 J GL64 00040400 GL95 L,H2 A4,LOAD+1,B6 LOAD, VALI SSC A4,18 LMJ B11,SLT SEARCH FOR CONSTANT IN SYM + CRIHL J $+2 J $+4 LMJ B11,SLTI INSERT IN SYM L,M A0,073 S,S3 A0,2,A1 SYM, MODE L,M A0,030076 S,H1 A0,F51+1,B8 S,H2 A1,F51+1,B8 L A2,(0110300000000) A,T1 A2,LOAD,B6 LOAD, PLATS SSC A2,12 A A2,B7 S A2,F51,*B8 L,S3 A1,LOAD,B6 LOAD, INDS J GL60 . ASSIGN PERMANENT INDEX REGS AND GENERATE LOAD FOR F51 00041000 . PROCESS USE TABLE ENTRIES NUT TO NU TO ASSIGN PERMANENT . INDEX REGISTERS. IF SUBSCRIPT CONTAINS NO INDUCTION VARIABLE . OR IS CONTROLED BY THE INDUCTION VARIABLE OF THE CURRENT . DO, LOADING AND INCREMENTING ITEMS ARE GENERATED FROM . THE ASSOCIATED LOAD TABLE ENTRY AND OUTPUT TO FILE 51; OTHERWISE . ADDED TO OSUB TABLE TO BE PROCESSED AT THE END OF THE NEST. . A0,A1,A2,A3 00041100 . B5,B6,B7 00041200 APIR L B5,(01000000) LXM B5,NUT B5=I 00041400 S,H2 B11,AP90 00041500 LR R5,NSUB 00041550 JGD R5,AP02 00041560 AP02 L,H2 B7,USE,*B5 USE,SN B7=K 00041600 NOP 0,0 00041700 L,XH2 A0,SUBEXD,B7 SUBEXD,IL 00041800 JP A0,AP50 PREVIOUSLY ASSIGNED 00041900 AND A0,(0377777) 00041940 S,H2 A1,SUBEXD,B7 00041960 AP10 L,S3 A3,SUBEXD,B7 LEVF TO L 00042000 LMJ B11,SIRT SEARCH IR TAB FOR IR TO USE 00042100 JZ A2,AP96 ASSIGN NOT MADE 00042200 A,M A8,1 NIRI 00042300 AP20 S,H1 B7,IR,A2 IR,EXP 00042400 S,T3 A3,IR,A2 IR,LEVD 00042500 AP30 L,T1 B6,SUBEXD,B7 SUBEXD,SUBR B6=J 00042600 TZ B6 SUBSCRIPT CONTAINS AN IND VAR 00042700 J AP34 00042750 . FORM LOAD ITEM FOR RELATIVE CONSTANT 00042800 L,S3 A0,SUBEXD,B7 SUBEXD,LEVF 00042900 L,M A1,01002 ID=8,T=2 00043000 S,T2 A1,F51,B8 00043100 L,T1 A1,LEVEL+1,A0 LEVEL,LPLAT 00043200 S,T1 A1,F51,B8 00043300 S,T3 B7,F51,B8 K 00043400 L A1,(050000000000) ID=5,T=0 00043500 S A1,F51+1,B8 00043600 S,S3 A2,F51+1,B8 IR NO. 00043700 S,T3 B7,F51+1,*B8 00043800 J AP50 00043900 . FORM LOAD AND INC ITEM FOR IND VAR 00043950 AP34 L,T1 A0,LOAD,B6 LOAD,PLATS 00044000 TE A0,B1 PB CURRENT 00044100 J AP94 NOT FOR THIS PLATEAU 00044200 S A2,A6 00044300 LMJ B11,GLI GENERATE LOAD AND INC 00044400 AP50 JGD R5,AP02 00044500 J *AP90 REENT AP94 S,H2 B7,OSUB,B9 OSUB,EXP 00044800 S,H1 A2,OSUB,*B9 OSUB,IR 00044900 J AP50 00044950 AP96 L,T1 B6,SUBEXD,B7 SUBEXD,PLOC 00044960 TZ B6 00044970 J AP34 00044980 J AP50 00044990 . RESERVE INDEX REGISTERS FOR SEQ. DEPENDENT SUBSCRIPTS 00045000 . DETERMINE NO. IR USED BY ALL INNER LOOPS 00045100 . A3,A6,A9,A16 00045200 ATIR* S,H2 B11,AT90 00045300 L A3,(01000000) A3=T1 00045400 L A14,A8 L A6,MNZRA COUNTS ENTRIES IN IR TABLE AT10 TG,T3 A7,IR+1,*A3 J AT20 00045800 A,M A14,1 AT20 JGD A6,AT10 00046200 L A3,A7 LEVC 00046300 AT90A JGD A9,AT30 J *AT90 00046500 AT30 TNE A14,MNZIR TEST AGAINST MAX INDEX USUAGE J *AT90 00046700 LMJ B11,SIRT SEARCH IR TABLE FOR ASSIGNMENT 00046800 JZ A2,AT90A S,T3 A7,IR,A2 IR, LEVD 00046900 L,M A4,1 S,H1 A4,IR,A2 IR,EXP A,M A8,1 NIRI 00047100 A,M A14,1 T2 00047300 JGD A9,AT30 MAXI 00047400 J *AT90 REENT . DEASSIGN INDEX REGISTERS 00047900 . SCANS THE IR TABLE AT END OF LOOP TO DEASSIGN THOSE REGISTERS . THAT HAVE REACHED THEIR DEFINE LEVEL. IF THE REGISTER LEVEL . IS GREATER THAN THE CURRENT LEVEL, THE REGISTER LEVEL . IS SET EQUAL TO THE CURRENT LEVEL THUS ALLOWING THE . REGISTER TO BE REUSED IN ANY PARALLEL SUB-NESTS. . A0,A1,A2,A3,A4 00048000 DIR* S,H2 B11,DR90 00048100 L A0,(01000000) A0=M 00048200 L A4,MNZRA MAX ENTRIES IN TABLE SZ A10 CURI 00048400 DR30 TNZ IR+1,*A0 00048500 J *DR90 REMAINDER OF TABLE NEVER USED 00048600 TNE,T3 A7,IR,A0 IR, LEVD 00048700 J DR40 DEASSIGN INDEX 00048800 TNG,T3 A7,IR,A0 IR, LEVD S,T3 A7,IR,A0 00049000 J DR50 00049100 DR40 L,H1 A1,IR,A0 IR, EXP 00049200 JZ A1,DR50 NOT ASSIGNED 00049250 AN,M A8,1 NIRI 00049300 L A2,SUBEXD,A1 00049400 AND A2,(0777700200000) SUBEXD,SUBR AND S2 00049500 TNE A3,(0777700200000) 00049600 AN,M A10,1 CURI 00049700 DR44 L A2,SUBEXD,A1 00049800 OR A2,(0400000) 00049900 S,H2 A3,SUBEXD,A1 SUBEXD,IL SET TO 1 00050000 SZ,H1 IR,A0 IR, EXP 00050100 DR50 JGD A4,DR30 00050200 J *DR90 REENT . MOVE WORD 4 OF SYM TABLE FOR 2 WORD CONSTANTS AND . THEN CLEAR WORD 4 FOR USE BY PHASE 5 . CLEAR H1 OF SUBEXD TABLE FOR USE BY PHASE 5 . 'DONE'-1 MUST BE +0 FOR MSEA$ ERROR ACTION (SLJ DONE-1) $(2) . DONERR +0 NOP. J DON4J $(1) . DON4J ER CEND$ LR R15,DONERR SLJ N0RGSV LMJ B11,CONTTT +006400,DONERR L R15,DONERR S R15,PH4ER+1 XERF PH4ER L,H1 A0,PH4ER A,M A0,1 S,H1 A0,PH4ER SLJ N0RGRS DONE* BCLOSE F30 BCLOSE F40 SZ DONERR OFF51. L B1,(-1,0) LXM B1,CRSFNX JGD B1,$+1 L,S1 A1,SYMBRK L,H2 A0,CRSYM A,M A0,4 S,H1 A0,SYMBRK+1,A1 L,H1 A1,SYMBRK+1 SZ,S2 SYMBRK S A1,SYMB L A2,(4,4) A,H2 A2,CRISYM XX01 L,M A15,0,A2 TNE,H2 A15,CRSYM J XX03 L,M A15,0,A2 TNE A15,SYMB J YY03 L,S3 A0,2,A2 AND,M A0,7 TE,M A0,033 TNE,M A0,043 J XX06 DOUBLE PREC. OR COMPLEX CONSTANT EX XX99,A1 XX01C L,S2 A0,2,A2 AND,M A0,7 L A4,3,A2 MOVE STOARAGE ASSIGNEMENT FOR FORMATS TNE,M A1,2 S A4,1,A2 XX02Y NOP 0,0,*A2 J XX02K XX01E SZ 1,A2 XX02 SZ 3,*A2 CLEAR WORD 4 OF SYM XX02K J XX01 XX03 L,H2 A0,CRNEXD TG,M A0,LEXD-1 REENT L,M A0,LEXD-1 REENT L A2,(1,1) S,H2 B1,CRSFNX XX04 L,H2 A1,SUBQQQ,A2 EXPRESSION COUNT S,H1 A1,SUBEXD,*A2 JGD A0,XX04 N4XT* . TERMINATING POINT FOR PHASE 3 IF FATAL ERROR RETURN J *PHEXIT XX02C SZ,H2 2,A2 SZ,H2 1,A2 J XX02 XX06 L A0,3,A2 MOVE WORD 4 OF SYM S,H2 B1,2,A2 LINK TO OTHER HALF OF CONSTANT S A0,0,*B1 S,H2 B1,CRSFNX SLJ TSCSYM L,M A15,0,B1 TE,H2 A15,CRSFNX . TEST FOR EXPANSION LXM,H2 B1,CRSFNX . RELOAD FOR EXPANDED TABLE J XX01E XX99 J XX02 0 J XX02J 1 XEC8C J XX02J 2 XEC8C J XX01E 3 J XX02Y J XX02C J XX02 6 NOP 0,0 7 NEXTI S,H2 B11,NX90 . READ FILE 40 ITEM TO A0 RBF40 RETURN S A0,ITEM 00051500 J *NX90 XX02J L,H2 A5,2,A2 XEC8C AND,M A5,0177777 S A6,3,A2 SZ,H1 3,*A2 XEC8C J XX02+1 XEC8C YY03 L,S2 A3,SYMBRK A,M A3,1 S,S2 A3,SYMBRK L,H1 A4,SYMBRK+1,A3 S A4,SYMB L A4,SYMBRK,A3 A,M A4,3 SSL A4,2 LSSL A4,2 LXM A2,A4 J XX01 RBF40E S,H2 B11,RF40E S,H2 B11,CRB11 DS A2,RF40E+1 DS A4,RF40E+3 B$READ F40,DONE L,H2 A1,F40+6 A,M A1,1 L B11,RF40E L,H2 A0,0,A1 S A0,F40I NUMBER OF ITEMS A A1,0,A1 DL A2,RF40E+1 DL A4,RF40E+3 AN,M B11,2 J 0,B11 $(2) . RF40E J $ RES 4 $(1) . . WNF51 -- THIS ROUTINE WRITES FILE 51 ITEMS, THE NUMBER OF . ITEMS IS IN B8, THE FIRST LOCATION TO WRITE FROM IS F51 . . CALLING SEQUENCE -- LMJ B11,WNF51 . WNF51 S,H2 B11,WNF51E L A0,(1,F51) WNF51A L A1,F51I NUMBER OF WORDS LEFT IN BUFFER TLE,M A1,0,B8 J WNF51F BUFFER IS FULL S B8,R1 AN,M A1,0,B8 S A1,F51I L A1,F51J BUFFER INDEX BT A1,0,*A0 S A1,F51J J *WNF51E WNF51F S A1,R1 AN B8,A1 L A1,F51J BT A1,0,*A0 WRITE THE REST OF THIS BLOCK S A0,WNF51G L,H2 A0,F51A+6 . LOC OF CURRENT BUFFER L,M A1,BUFN S A1,F51I SSA A1,1 S A1,1,A0 BWRIT F51A WRITE THE BLOCK L,H2 A1,F51A+6 A A1,(1,NBCW) S A1,F51J L A0,WNF51G J WNF51A ED96 + 'OSUB ' 00022910 + 'TABLE ' 00022911 ED97 + 'FILE ' 00022912 + '51 ' 00022913 ED98 + 'USE ' 00022914 + 'TABLE ' 00022915 ED99 + 'IR ' 00022916 + 'TABLE ' 00022917 ED99G + 'LOAD ' 00022918 + 'TABLE ' 00022919 GL96 +0 0 00040800 +0 1 00040802 +0 2 00040804 +1 3 00040806 +0 4 00040810 +0 5 00040812 +0 6 00040814 +1 7 00040816 CVLOAD + 0 0 00040900 + 010000000000 1 00040902 + 020000000000 2 00040904 + 030000000000 3 00040906 + 040000000000 4 00040908 + 050000000000 5 00040910 + 060000000000 6 00040912 + 030100000000 7 00040914 $(2) . T SYMB +0 WNF51G RES 1 PH4ER +0424001 +0 WNF51E J $-$ ED91 +0 LC90 J $-$ T IP90 J $-$ T IP91 +060000 T IV90 J $-$ T OP90 J $-$ T RLI +0 T BD90 J $-$ T ED90 J $-$ T BS90 J $-$ T ES90 J $-$ T SP90 J $-$ T SD90 J $-$ T ST90 J $-$ T GL90 J $-$ T AP90 J $-$ T AT90 J $-$ T DR90 J $-$ T NX90 J $-$ NX91 + 0 00051700 SLTF + 0 SRV RES 15 DUMPL + 0 DUMPI + 0 DEBUG + 0 NOSUB + 0 NF51 + 0 MNZRA +0 USED TO DETERMINE MAX NUMBER IR REGISTERS TO ASSIGN MNZIR +0 ONE MORE THAN MNZRA NU + 0 MIR + 0 . MAXIMUM NO. IR'S NEEDED BY PROGRAM . LEVC IS IN A7..THE CURRENT LEVEL . NIRI IS IN A8..NO. OF INDEX REG'S CURRENTLY ASSIGNED IN IR TABLE . MAXI IS IN A9..MAX NO. OF INDEX REG'S NEEDED FOR RELATIVE CONSTANTS . CURI IS IN A10..NO. OF ACTIVE RELATIVE CONSTANT INDEX REG'S . PLATC IS IN B1..PLATEAU OF THE CURRENT LOOP, PB . PLATCE IS IN B2..PLATEAU OF THE CURRENT LOOP, PE . NF51 IS IN B8..NEXT F51 ENTRY NUMBER (INC OF 2) . NOSUB IS IN B9..NEXT OSUB TABLE ENTRY NUMBER (INC OF 1) . NU IS IN B10..NEXT USE TABLE ENTRY NUMBER (INC OF 1) SYMSP +0 . SYM TABLE REF OF CURRENT PROG OR SUB PROG NUT +0 . VALUE OF NU AT START OF LOOP IU +0 . INCREMENT MARKER FLAG..IF 1 THE INC MARK ITEM ENCOUNTERED NLOAD +0 . NEXT LOAD TABLE ENTRY NUMBER ITEM +0 . CONTAINS THE ITEM READ FROM FILE 40 NSUB +0 . NO. OF SUBSCRIPTS TO PROCESS IN USE TABLE OPINV +0 ZRLEV +0 . ZERO LEVEL FLAG ZRLEVN +0 . NO. OF ENTRIES IN ZRLEVT ZRLEVT RES 10 TABLE CONTAING 10 MOST FREQ RES 2 OVERTIME AREA FOR ZRELVT BUGERR +0120300,DONERR ERRPAR +024001 $(4) . SUBQQQ RES 1410 . LOAD TABLE CONTAINS INITIAL VALUE AND INC INFO ON INDUCTION VAR SUB . PLATS = PLATEAU OF INDEX LOAD . INDS = INDICATOR FOR VALS . VALS = INITIAL VALUE . PLATI = PLATEAU OF INDEX INCREMENT . INDI = INDICATOR FOR VALI . VALI = INCREMENT VALUE . A = 1 IF SUBSCRIPT IS TO BE INCREMENTED ON FINAL USE LOAD RES 1000 . OSUB TABLE CONTAINS INFO ON SUBSCRIPTS ASSIGNED BEFORE IT . WAS POSSIBLE TO DETERMINE IF THE INDEX COULD BE . INCREMENTED ON FINAL USE . IR = INDEX REG NO. ASSIGNED . EXP = SUBSCRIPT EXPRESSION NO. OSUB RES 600 . SUBEXD TABLE CONTAINS INFO ON EACH SUBEXPRESSION . SUBR = INDEX INTO LOAD TABLE . LEVF = LEVEL AT WHICH SUBEXPRESSION WAS DEFINED . IL OR S3 = 0 IF INDEX REG HAS BEEN ASSIGNED . S2 = 1 IF FINAL OCCURRENCE HAS BEEN REACHED . USE TABLE CONTAINS SUBSCRIPT USAGES BY LOOP LEVELS . SN = SUBSCRIPT NUMBER . FREQ = NUMBER OF DIFFERENT OCCURRENCES $(5) . USE RES 600 . LEVEL TABLE CONTAINS THE PLATEAU ASSOCIATED WITH LEVEL . LPLAT = PLATEAU OF BEGIN, PE LEVEL* RES 64 1 WORD PER ENTRY LEVW2 RES 64 . IR TABLE CONTAINS STATUS OF EACH INDEX REG . EXP = SUBSCRIPT EXPRESSION NO. . X = NON-ZERO IF INDEX WAS EVER USED . LEVD = LEVEL AT WHICH INDEX IS TO BE DEASSIGNED IR RES 13 INVART RES 5 $(5) . F51L EQU 4000 . COMMONS SUBXZZ + N3TB1Z ARE 4790 LOCATIONS LONG. . THERE IS SUFFICIENT SPACE FOR F51 TO USE 4000 WORDS. F51 RES 1 SUBXZZ INFO 2 5 N3QQQ INFO 2 4 END