. THIS SECTION CONTAINS ALL THE CODE TO TRANSMIT ITEMS FROM F31 . TO F50 AND/OR F40 EXCEPT FOR THE ACTUAL FILING ROUTINES $(1) LIT . RGS . REGISTER DEFINITIONS LGFIF . NESTED LOGICAL IF DEFINITIONS . THIS SECTION OF CODE SENDS ALL THE ITEMS IN F31 THAT ARE CONNECTED 16290 . WITH ONE STATEMENT. UPON ENTRY THE FIRST ITEM IS CHECKED TO BE 16300 . A STATEMENT TYPE. IF IT IS NOT AN ERROR MESSAGE IS PUT OUT. IF IT 16310 . IS, IT AND ALL SUCCEDING ITEMS UP TO THE NEXT STATEMENT TYPE ARE SENT 16320 . TO F50. THE PROPER OCCURRENCE MARKS ARE ALSO INSERTED 16330 F50 EQU 2 XT35* S,H2 B11,T35C T35E ETV B2,F31,B8,S1 31 15 . BRANCH ON IF J T351 . ERROR J T352 01 INDUCTION VARIABLE 16410 J T352 02 VARIABLE 16420 J T352 03 CONSTANT 16430 J T351 04 OFFSET ERROR 16440 J T351 . 05 EXPRESSION ERROR J T351 06 TRIAD ERROR 16460 J T352 07 DROPOUT 16470 J T353 08 OPERATION 16480 J T352 09 SUBSCRIPT CODE 16490 J T35C1 J T358L 11 STATEMENT LABEL J T35GL J T351 13 STATEMENT REFERENCE ERROR 16530 J T351 14 FORMAT REFERENCE ERROR 16540 J T35A1 15 BEGIN DO 16550 J T359 16 END DO 16560 J T351 17 VARIABLE DEF PT ERROR 16570 J T351 18 COMMON DEF PT ERROR 16580 J T351 19 EQUIVALENT DEF PT ERROR 16590 J T35LS 20 LOGICAL IF SEPARATOR J T35ZL . SET UP TO PULL OUT ZERO LEVEL J T35ELS J T358+1 23 FIRST EXECUTABLE ITEM 16630 J T35EOP J T358+1 25 USAGE OPERATOR 16650 SLJ XERV J T35EOL . 27 END OF LIST J T35K2 . DEBUG ITEM J N3ERRL+1 . END OF FILE GIVE DUMP MAYBE J T35EF T351 XER 15 16700 T35ELS TNZ,H2 F31,B8 J T352 SEND ONLY TO PHASE 4 LMJ B11,EXX . LOOK FOR EXPRESSIONS DEFINED ON IF FXX F31,B8 F50 A,M B8,1 TNZ,H2 LOOPNU . TEST FOR ACTIVE LOOPS J T35E LMJ B11,USC J T35E T35EOL LX B11,B8 J T35EL T35C1 JE A15,F31+1,B8,T1 03600 SENDC J *T35C REENT BDH LMJ B11,EXX . SEARCH FOR EXPRESSIONS BROUGHT TO TOP OF LOOP LMJ B11,EXX . A SECOND SEARCH IS SOMETIMES NECESSARY TZ,H2 LOOPNU J T35ENT SR,H2 R4, SEQNX LMJ B11,EXX T35ENT L,S1 A0,F31,B8 TE,M A0,025 J T352 L,S2 A15,STTY TE,M A15,2 TEST FOR TRACE J $+2 J T352 J T358H2 T35LS L,S6 A14,F31,B8 AND,M A14,020 . EXTRACT IFELSE BIT S,S2 A15,F31,B8 SET IFELSE BIT AND,M A14,057 REMOVE IF ELSE BIT MVW F31,B8 SAVELG L,H1 B5,LGLNST TZ A15 A,M B5,1 SZ,H2 F31,B8 L A13,CF50 TZ A15 S A13,LCF50 SAVE COUNT IN F50 AT END OF LOGICAL IF L A13,LCF50 AN A13,CF50 TNZ A15 SET INTO LOGICAL IF SEPARATOR THE NUMBER O S,H2 A13,F31,B8 ITEMS IN F50 WITHIN THE LOGICAL IF L A14,LGLBFL , FLAG FOR LABELS WITHIN IF TNZ A15 S,S3 A14,F31,B8 . MARK FOR PHASE V JZ A15,T35LS3 TNZ,S2 F31,B8 . TEST FOR ELSEIF S,H1 B5,LGLNST LMJ B11,EXX L A0,SAVELG AND A0,(07777700) SSL A1,6 EXTRACT SEQUENCE NUMBER OF LOGBCP S,H2 A1,SEQNX LMJ B11,EXX SN,H2 A0,LIFFLG SET SO THAT EXPRESSIONS WILL NOT BE REMOVED AGAIN . UNTIL THE TOP SIDE OF THE STATEMENT L,S6 A14,SAVELG AND,M A14,1 L,H1 B5,LGLNST T35LS3 JNZ A15,T35LSJ TNZ,S2 F31,B8 . TEST FOE ELSE IF J T35LSJ L,H2 A0,F31-1,B8 . SEQUENCE NUMBER OS ELSE IF S,H2 A0,SEQNX LMJ B11,EXX LMJ B11,EXX T35LSJ FXX F31,B8 F50 L,S6 A15,SAVELG TZ,S2 F31,B8 . TEST FOR ELSEIF J $+4 TNZ A15 AN,M B5,1 S,H1 B5,LGLNST TP B5 SLJ XERV LMJ B11,EXX L,S6 A14,SAVELG AND,M A14,1 JNZ A15,T35LS1 L,H2 A0,SEQNX A,M A0,1 . BACK UP FOR ELSE S,H2 A0,SEQNX TZ,S2 F31,B8 TEST FOR IFELSE LMJ B11,EXX J BDH T35LS1 LMJ B11,USC TZ,H2 LOOPNU J T352 SR,H2 R4,SEQNX LMJ B11,EXX J T352 T35GL MVW F31,B8 GL . SAVE GENERATED LABE TILL BEGIN DO J T352 T35EF JNE A15,F31-1,B8,S1 012 SENDC ANX,M B8,1 J SENDC T35ZL L,S2 A0,F31,B8 SSL A0,3 TNE,M A0,7 TEST FOR ENTRY J BDH SEARCH FOR EXPRESSIONS DEFINED AT ENTRY SR,H2 R6,SEQNX SET TO 2 FOR ZERO LEVEL J T358+1 167020 T35K2 LA A14,F31,B8 AND,M A14,7 AX,M B8,1 TE,M A15,4 J $+4 FXX F31-1,B8 F40 J T35E FXX F31-1,B8 F50 J T35E T352 LX,S1 B2,F31,B8 . LOADS ID 167100 AX,M B8,1 . IF ITEM WILL BE IN RECONSTRUCTED TRIAD 167110 L,S2 A15,STTY TE,M A15,2 IGNORE HOLERITH DATA FOR TRACE J $+3 SZ,S2 STTY J T35E LA A15,(06370200000) . LEAVE IN PLACE AND SEND RECONSTRUCTD TRIAD SSL A15,0,B2 THIS CHECKS TO SEE IF AN ITEM SHOULD GO TO F40 16730 JNB A15,T35E GO GET NEXT FILE ITEM 16740 FXX F31-1,B8 F40 . FILE ITEM IN F40 16750 J T35E 16760 T353 LA,014 A0,F31,B8 ON OPERATIONS TEST IF IT IS EQUALS16770 TE,016 A0,1 IT IS AN ERROR 16780 J T351 16790 L A3,FLPR TNZ LIFFLG DO NOT CLEAR IF SET S A3,LIFFLG LX B2,F31,B8 LOADS EXPRESSION NUMBER 16800 S B2,SV3 . SAVE EXPRESSION NUMBER SXLOC A3 SV3,0,T3 LNKSBX SR R4,LBX . SET FLAG TO KEEP J3=0 LMJ B9,DC1 . LINKS EQUALS TO EXPRESSIONS TNZ LIFFLG TEST IF EXPRESSIONS OUT PUT ON LOGICAL IF LMJ B11,EXX SR R4,USAFZZ SET NON ZERO TO ALLOW EXPRESSION LEFT OF EQUALS SXLOC A3 SV3,0,T3 LNKSBX SZ LBX . RESET FLAG LX,M B4,0 . SETS FNSNO TO ZERO 168324 LX,M B5,0 . SETS TRINO TO ZERO 168328 LMJ B11,RSB THIS SUBROUTINE REFORMS A TRIAD 16840 MVW STTY FLST . STATEMENT TYPE TO BE FILED NEXT LMJ B11,TI5 16850 SZ USAFZZ TNZ LIFFLG J $+3 SZ LIFFLG LMJ B11,EXX J T352 168600 T35* S,H2 B11,T35C JE A15,F31+1,B8,T1 03600 SENDC T354 LA A0,F31,B8 SA A0,STTY SAVE THIS ITEM TILL NEXT 16890 SA,H2 A0,SEQNX 168910 ETV A2,F31,B8,S2 50 24 . BRANCH ON SUBTYPE J BDH . DUMMY STATEMENT TYPE FOR BEGIN DO J T352 01 ARITHEMETIC STATEMENT 016920 J T356 02 PASS NAME OF STATEMENT FOR TRACE J T352 J T358H3 PASS SUBROUTINE ENTRY INFO J T356 05 ASSIGN 216960 J T3561 . 06 ASSIGNED GO TO J T3561 . 07 UNCONDITIONAL GO TO J T357 08 COMPUTED GO TO 2+R16990 J T356J . 09 ARITHMETIC IF J T3561 10 IF ACCUMULATOR OVERFLOW J T3561 11 IF QUOTIENT OVERFLOW J T3561 12 IF DIVIDE CHECK J T3561 13 IF SENSE LIGHT J T3561 14 IF SENSE SWITCH J T356 15 SENSE LIGHT 117060 J T352 16 CALL 017070 J T356 17 PAUSE 117080 J T356 18 STOP 117090 J T356 19 RETURN 117100 J T3572 . 20 END J T352 21 DO 3 OF DO ITEMS WERE DELETED 417120 J T356 22 BACK SPACE 117130 J T356 23 REWIND 117140 J T356 24 END FILE 117150 J T356 . 25 PRINT J T356 . 26 PUNCH J T356 27 READ TAPE 117180 J T356 28 READ (UNIT,F) 217190 J T356 29 READ INPUT TAPE 217200 J T356 30 READ (UNIT) 117210 J T356 31 READ F 117220 J T356 32 WRITE (UNIT,F) LIST 217230 J T356 33 WRITE OUTPUT TAPE 217240 J T356 34 WRITE UNIT 117250 J T356 35 WRITE TAPE T 117260 J T352 36 INPUT LIST 017270 J T352 37 OUTPUT LIST 017280 SLJ XERV J T356 39 READ NAMELIST 1108 J T356 40 WRITE NAMELIST 1108 J T356 41 NAMELIST 1108 J T356 42 DECODE J T356 43 ENCODE J T356 . RETURN INDIRECT RETIND J T356 45 DEFINE FILE J T356 46 DIRECT ACCESS READ J T356 47 DIRECT ACCESS WRITE J T356 48 FIND J T356 . 49 SHORT INPUT LIST J T356 . 50 SHORT OUTPUT LIST T356J L,S3 A1,F31,B8 A,M A1,0,B8 L,S1 A2,F31+1,A1 TE,M A2,012 J SENDC L,S1 A2,F31+2,A1 TNE,M A2,036 J SENDC L,H2 A1,F31,B8 S,H2 A1,SEQNX LMJ B11,EXX L,S3 A1,F31,B8 A,M A1,0,B8 L,H2 A2,F31+1,A1 S,H2 A2,SEQNX LMJ B11,EXX L,H2 A1,F31,B8 S,H2 A1,SEQNX LMJ B11,USC LMJ B11,EXX S B11,LIFFLG J T356Q T3561 LMJ B11,USC GENERATE LABEL INDICATOR LMJ B11,EXX T356 TNZ LIFFLG J $+3 SZ LIFFLG T356Q LMJ B11,EXX LX,S3 B10,F31,B8 THIS SECTION SENDS THE NEXT N ANX,M B10,1 ITEMS WITHOUT ANY PROCESSING 17300 T356AX AX,M B8,1 FXX F31,B8 F50 . FILES ITEM IN F50 17330 JGD B10,T356AX FXX STTY F50 . FILES LAST STATEMENT TYPE L,S2 A15,STTY TNE,M A15,2 J T352 J BDH T357 AX,M B8,2 173600 LMJ B11,USC . GENERATE LABEL INDICATOR SX B8,B9 LX,H2 B10,F31-1,B8 . LOADS R 173700 ANX,M B10,1 173750 T3571 AX,M B8,1 173800 NOP 0,0 173850 FXX F31,B8 F50 173900 JGD B10,T3571 173950 FXX F31,B9 F50 . FILES I FXX F31-1,B9 F50 . FILES R T3572 FXX STTY F50 . FILES LAST STATEMENT TYPE SZ LIFFLG J BDH+1 T358L SR R4,LOOPLB . STORE FACT THAT LABEL OCCURED SZ LIFFLG T358 LMJ B11,USC GO PUT USAGE INDICATOR INTO FILE 17440 T358H2 LMJ B11,EXX 174915 T358H3 FXX F31,B8 F50 J T352 . GO TEST FOR SENDING TO FILE 40 T35EOP SZ FLND J T358H2 T359 LMJ B11,USC GO PUT USAGE INDICATOR INTO FILE 17590 LX B11,LCT COUTS LOOP LEVELS LR R15,LOOPLB . THIS FLAG MUST BE SEPARATE SR R15,LLBTB,*B11 . FOR EACH LEVEL SX B11,LCT LX B11,B8 SZ FLND . THIS FLAG IS SETON END 17600 SZ LOOPLB T35EL SZ LIFFLG LMJ B11,EXX CSC17 J T358+1 . AND AT BOTTOM OF SUBPROGRAM 176100 T35A1 LA A15,CF50 . THE SEQUENCE RELATIVE TO F50 /F 17620 SN A15,FLBG . START OF LOOP IS STORED FOR DEFINITION AT SAME LEVL IFL SEQNX 1 176405 TNZ LOOPLB . ONLY OUTPUT DUMMY LABEL IF LOOPS J $+3 . HAVE OCCURED FXX (0130000,0) F50 . DUMMY LABEL TO FORCE STORES LX B11,LCT COUNTER FOR LABEL IN LOOP PUSH DOWN MVW LLBTB-1,B11 LOOPLB AN,M B11,1 SX B11,LCT SR R4,LOOPLB SX B8,SV8 176410 LMJ B11,EXX 176420 LMJ B11,USC . PUT LABEL INDICATOR OUT AFTER LOOP EXPRESSIONS DFL SEQNX 1 176425 SX NSEQN,SV7 176426 LMJ B11,DLC 176427 LX NSEQN,SV7 176428 LX B8,SV8 FXX GL F50 . TRANSMIT GENERATED LABEL L B11,LOOPNU SEND REQUIRED LOOP INFO FXX LP5TB,B11 F50 TO PHASE V FXX F31,B8 F50 . INSERT BEGIN D3 176430 FXX F31,B8 F40 . SEND BEGIN DO TO F40 LMJ B11,EXX . SEARCH FOR GENERATED ITEMS 176450 LA A0,(0120000,0) . DUMMY TO GET ITEMS TO TOP OF LOOP AA,H2 A0,SEQNX LMJ B11,TF31 L,H2 A0,SEQNX EVALUATE AND SEARCH S,H2 A0,DEFNO FOR EXPRESSIONS BROUGHT TO TOP S B8,T35SB8 REENT LMJ B10,DB1 L B8,T35SB8 REENT J T352 . THIS SECTION OF CODE SENDS THE ITEMS IN INSET TO F5/ AND OCCURENCE 17720 . MARKS TO F50 AND TO F40 IF SUBSCRIPTS ARE INVOLVED 17730 . NUMBER OF ITEMS TO TRANSMIT IS IN B4 AND INSNO 17740 TI5* LX B1,(+1,0) . USED AS INSERT FOR INSERT 17750 SX,1 B11,TI5X 17760 LA,015 A15,INSERT,B1 17820 TNE,016 A15,5 17830 LMJ B10,USA . ITEM WAS AN EXPRESSION 17840 TZ DELF DO NOT GERERATE CODE WHEN EXPRESSION BEING DELETED J TI5D TI5C FXX INSERT, B1 F50 . 17850 TI5D TLEM,1 B1,INSNO J TI5+2 178700 TZ DELF J TI5X FXX FLST F50 . INSERT STATEMENT TYPE ITEM J *TI5X REENT $(2) LIFFLG* +0 NON ZERO IF EXPRESSIONS OUTPUT ON LOGICAL IF TI5X J $-$ REENT T35C J $-$ REENT T35SB8 +0 REENT LCT +1,0 COUNTER FOR LABEL IN LOOP PUSHDOWN END