RGDFS . N6SRC EDITS THE SOURCE LISTING WITH SEQUENCE NUMBERS AND RELATIVE . STORAGE ASSIGNMENTS. DO LOOP PICTURE IS MADE IF B OPTION . REQUESTS IT. MACRO LINES ARE ALSO EDITED. . $(1) LIT N6SRC* S,H2 B11,EXIT TZ VIASCI . TEST FOR ASCII IMAGE J N6QRC . GO EDIT AN ASCII IMAGE L A6,VI05+14 . SAVE CTS LINE NUMBER L A5,ENDS RESERVE A5 FOR WORD OF BLANKS TZ INIT IS THIS THE FIRST TIME? J *LMODE NO (L20 FOR LOOP PICT, L100 OTHERWISE) S B11,INIT INITIALIZE L,M A0,L20 ASSUME LOOP LISTING S,H2 A0,LMODE L,M A0,L220 ASSUME RSA PRINT S,H2 A0,RSAPR L,M A0,L230 S,H2 A0,NORSA L,S6 A0,CRLIST LIST FLAG TE,M A0,2 LONG LIST =2 J L10 L,M A0,L200 IF FULL LISTING, S,H2 A0,RSAPR SUPPRESS EVERYTHING J L15 L10 TZ CRSDG LOOK FOR B OPTION J L20 L,M A0,L210 DEMAND TERMINAL OR S,H2 A0,RSAPR NO B OPTION L15 L,M A0,L100 S,H2 A0,LMODE L,M A0,L200 S,H2 A0,NORSA J L100 . SEE IF CURRENT LOOP SITUATION HAS CHANGED L20 L,S3 A0,VI05 DO LEVEL TNE A0,PDL J L100 TG A0,PDL J L40 L A4,PDL . MAX L A3,A0 . MIN L,M A0,'---' . INITIAL TAIL TE,M A4,1,A3 . IS IT JUST ONE SMALLER? L,M A0,'===' . NO/ PUT THE EMPHASIS ON IT! J L22 . GO DO IT L40 L A4,A0 . MAX L A3,PDL . MIN L,M A0,'<--' . INITIAL HEAD TE,M A4,1,A3 . IS IT JUST ONE LARGER? L,M A0,'<==' . NO/ PUT THE EMPHASIS ON IT! L22 L,M A1,ENDS . GET BLANKS L A2,(1,LINE$) . OUTPUT L,M R1,22 . LENGTH BT A2,0,*A1 . CLEAR IT TO BLANKS S,H2 A0,LINE$+16 . SET HEAD/TAIL TG,M A4,24 . TOO LONG? L,M A4,24 . YES/ TRUNCATE TG,M A3,24 . TOO LONG? L,M A3,24 . YES/ TRUNCATE L,M R1,':' . START FROM THE RIGHT ANU A4,A3 . CLOBBER A5 & GET MAX-MIN L A1,(-1,LINE$+20) . WORD POINTER L A2,(1,0) . CHARACTER POINTER J SETIT . START THE JOB STRCHR S,S6 R1,0,A1 . CHARACTER STORE FROM RIGHT S,S5 R1,0,A1 . S,S4 R1,0,A1 . S,S3 R1,0,A1 . S,S2 R1,0,A1 . LMJ A0,$+1 . CAPTURE LAST STORE S,S1 R1,0,*A1 . STORE & BACK UP THE WORD L A2,(1,0) . RESET CHARACTER POINTER J 0,A0 . RETURN EX STRCHR,*A2 . SET : SETIT JGD A3,$-1 . MIN ( LEVEL , LAST LEVEL ) L,M R1,'+' . NOW MARK END(S) J $+2 . MAX-MIN TIMES EX STRCHR,*A2 . SET + JGD A5,$-1 . ABS(LEVEL-LAST LEVEL) L,M A3,24 . TOTAL LEVELS AN A3,A4 . TOTAL LEFT L,S6 R1,LINE$+16 . GET - OR = J $+2 . FILL EX STRCHR,*A2 . SET - OR = JGD A3,$-1 . FILL UP THE 4 WORDS L A1,(-1,STR+4) . POINT TO SAVE AREA L A2,(1,0) . CHARACTER POINTER L,S3 A4,VI05 . GET LEVEL S A4,PDL . SAVE FOR NEXT TIME TG,M A4,24 . TOO LONG? L,M A4,24 . YES/ TRUNCATE L,M A3,24 . TOTAL LEVELS AN A3,A4 . TOTAL LEFT L,M R1,':' . CUUISE MODE FILL J $+2 . MAX TIMES EX STRCHR,*A2 . SET : JGD A4,$-1 . LOOP L,M R1,' ' . BLANK OUT REMAINDER J $+2 . EX STRCHR,*A2 . BLANK FILL JGD A3,$-1 . L A5,ENDS . RESTORE A5 LMJ B11,PRINT8 . GIVE IT TO 'EM . L100 L A2,VI05 SEQ. NUMBER SLJ OCTAL CONVERT TO FIELD DATA S A1,LINE$ S,S1 A5,LINE$ BLANK TZ,S2 VI05 MACRO NUMBER J L110 L A4,LINE$ SAVE LINE$ FROM E$DIT E$DIT ED$PKT ENTER EDIT MODE E$COL 6 GO TO COL. 6 S A4,LINE$ RESTORE SEQ. NUMBER L A0,LINE LINE NUMBER L,M A1,5 PUT OUT 5 DIGITS LMJ B11,EDECF$ DECIMAL CONVERSION TNZ,S2 CRFLGS FORTRAN CALLED BY CTS? J L105 NO E$COL 96 L,H2 A0,VI60ID+1 . CTS LINE NUMBER S,S3 A5,VI05+14 BLANK CHARACTER L,M A1,7 PUT OUT SEVEN DIGITS LMJ B11,EDECF$ DECIMAL CONVERSION L105 E$DITX LEAVE EDIT MODE L,M A0,'*' S,S6 A0,LINE$+1 ADD THE ASTERISK J L150 L110 L A0,(' MAC ') S A0,LINE$+1 L,S2 A1,VI05 MACNO A,M A1,060 GO TO FIELD DATA S,S6 A1,LINE$+1 L150 S A5,OSN OLD LINE NUMBER L,M A0,13 TZ,S2 CRFLGS FORTRAN CALLED BY CTS? J L164 YES S A5,OSN . INITIALIZE TO BLANKS L,H2 A1,VI60ID+2 . OLD LINE NUMBER IN BINARY JZ A1,L164J . IT WAS A NEW LINE L,H2 A3,VI60ID+1 TE,M A3,050505 J L164J LMJ B11,VI812 . CONVERT TO DECIMAL SSC A3,12 . FORCE A BLANK TO BE FIRST S A3,OSN L164J L,S3 A0,VI60ID+1 . NEW OR NNNN S,S3 A0,VI05+14 L,H2 A0,VI60ID+1 . NEW OR NNNN S,H2 A0,VI05+14 L155 L A1,PARTBZ . GET OPTION LETTERS TEP,M A1,0100 . TEST T OPTION J INDENT . TRY TO INDENT SOURCE INRT L,M A0,13 L162 L,H2 A1,VI05+1,A0 MOVE LINE TO S,H1 A1,LINE$+3,A0 OUTPUT LINE BUFFER L164 L,H1 A1,VI05+1,A0 S,H2 A1,LINE$+2,A0 JGD A0,L162 L166 . ENTRY FOR INDENTATION L A0,PARTBZ GET @FOR CARD OPTIONS JNB A0,$+2 Z OPTION TEST J *NORSA Z OPTION IS ON L A0,LRSTC1+1 RSA A,M A0,1 TNE A0,OLDRSA HAS RSA CHANGED J *NORSA NO, (L230 FOR LOOP PICT, L200 OTHERWISE) S A0,OLDRSA J *RSAPR (L220 FOR LOOP PICT, L200 FOR . L OPTION, L210 OTHERWISE) . L200 TZ,S2 CRFLGS FORTRAN CALLED BY CTS? J L250 YES, OUTPUT LINE L A0,OSN PUT OLD LINE NUMBER S,S1 A0,LINE$+17 IN OUTPUT BUFFER SSL A0,6 S,H2 A0,LINE$+16 J L250 GO OUTPUT LINE . L210 TZ,S2 CRFLGS FORTRAN CALLED BY CTS? J L215 YES S A5,LINE$+18 L A0,OSN S,S1 A0,LINE$+17 SSL A0,6 S,H2 A0,LINE$+16 L215 L A2,OLDRSA CONVERT RSA SLJ OCTAL TO FIELD DATA OCTAL S,S1 A1,LINE$+18 SSL A1,6 S,S6 A1,LINE$+17 SSL A1,6 S,S5 A1,LINE$+17 SSL A1,6 S,S4 A1,LINE$+17 SSL A1,6 S,S3 A1,LINE$+17 J L250 GO OUTPUT LINE . L220 L A2,OLDRSA CONVERT RSA SLJ OCTAL TO FIELD DATA OCTAL L,M A0,05 PUT 1 BLANK AS LEADING LSSL A1,6 CHARACTER ON RSA DSL A0,6 S A1,LINE$+21 J L231 . L230 S A5,LINE$+21 L231 L,H1 A0,STR DO LOOP STRUCTURE CHAR. S,H2 A0,LINE$+16 L,M A0,3 L A1,STR+1,A0 S A1,LINE$+17,A0 JGD A0,$-2 L,S1 A2,STR+5 S,S1 A2,LINE$+21 L250 LMJ B11,PRINT8 WRITE THE SOURCE LINE S A6,VI05+14 . RESTORE CTS LINE NUMBER L A1,PARTBZ . GET OPTION LETTERS TEP,M A1,0100 . TEST FOR T OPTION J INSEC J *EXIT . THIS SECTION INDENTS THE PROGRAM INDENT*. L,S1 A0,VI05+1 . TEST FOR COMMENT TE,M A0,'C' J INDCJ L A0,VI05+1 TE A0,('C ') . PLAIN COMMENT? J INRT INDCJ S B5,SVB5 . CHARACTER SOURCE S B6,SVB6 . WORD SOURCE S B7,SVB7 . CHARACTER DESTINATION S B8,SVB8 . WORD DESTINATION L B6,(1,VI05+2) . INITIALIZE TO PICK UP SOURCE L B5,(1,0) L,M A6,0 . LEADING BLANK FLAG L,S3 A0,VI05 . STRUCTURE LEVEL TG,M A0,8 L,M A0,8 . ALLOW 8 LEVELS OF INDENTATION MSI,M A0,4 . FOR SPACES PER INDUCTION LEVEL A,M A0,3 . SKIP TO H2 OF LINE$+3 L A8,A0 . OUTPUT CHARACTER COUNT DSL A0,36 DI,M A0,6 L B7,A1 . CHARACTER INDEX L B8,A0 . GET WORD COUNT LXI,M B7,1 A B8,(1,LINE$+3) . COMPUTE INDEXES TO STORE S B7,SECB7 . SAVE FOR SECOND CARD S B8,SECB8 . SAVE FOR SECOND CARD L A0,VI05+1 . COLUMNS ONE TO SIX L,M A1,' ' TE,H2 A1,LINE$+2 J INDEG . GENERATED STMT MAY HAVE PLACED LABEL HERE S,H1 A0,LINE$+3 SSC A0,18 S,H2 A0,LINE$+2 INDEG L A0,VI05+13 . COLUMNS 72 TO 78 S,H1 A0,LINE$+15 SSC A0,18 S,H2 A0,LINE$+14 L A0,VI05+14 S,H1 A0,LINE$+16 . SET CHG NOTES SSC A0,18 . S,H2 A0,LINE$+15 INGX EX INGET,*B5 TZ A6 . TEST FOR LEADING BLANK J $+3 TNE,M A0,' ' J INGXC . SKIP LEADING BLANKS EX INPUT,*B7 A,M A6,1 . SHOW A NON LEADING BLANK OCCURRED A,M A8,1 INGXC L,M A0,0,B6 TG,M A0,VI05+13 J INGXCC TLE,M A8,69 . J INGX . GO GET NEXT ORDER INGXCC S B5,SECB5 S B6,SECB6 . CURRENT SOURCE FOR SECOND CARD J L166 INSEC . SECOND LINE OF IDENTATION L,S1 A0,VI05+1 . TEST FOR COMMENT TE,M A0,'C' J INSEC2 L A0,VI05+1 TE A0,('C ') . PLAIN COMMENT? J *EXIT INSEC2. L,M A8,0 . FLAG FOR NON BLANKS L B5,SECB5 . RESTORE SCANNIN REGISTERS L B6,SECB6 . RESTORE SCANNIN REGISTERS L B7,SECB7 . RESTORE SCANNIN REGISTERS L B8,SECB8 . RESTORE SCANNIN REGISTERS INGXA EX INGET,*B5 TE,M A0,' ' A,M A8,1 . SHOW NON BLANK OCCURRENCE L,M A1,0,B6 TG,M A1,VI05+13 J INGXB EX INPUT,*B7 . J INGXA INGXB L,M A0,3 L A1,STR+1,A0 S A1,LINE$+17,A0 JGD A0,$-2 TZ A8 LMJ B11,PRINT8 . WRITE SECOND PART OF LINE L B5,SVB5 L B6,SVB6 L B7,SVB7 L B8,SVB8 J *EXIT INPUT S,S1 A0,0,B8 S,S2 A0,0,B8 S,S3 A0,0,B8 S,S4 A0,0,B8 S,S5 A0,0,B8 SLJ INPUTR INGET L,S1 A0,0,B6 L,S2 A0,0,B6 L,S3 A0,0,B6 L,S4 A0,0,B6 L,S5 A0,0,B6 SLJ GETR . . ENTRY TO PRINT NO. OF DIAGNOSTICS, CAU TIME AND BREAKPOINT . ATHENA$ FILE. TIMDIA* S,H2 B11,EXIT L A0,*0,B11 GET XREF SWITCH S A0,NX LMJ B11,INTSRC CONVERT NO. OF DIAGN. TO FIELD DATA + DIAG + DI NOP . L A0,DI L A1,(' 0') TNE A0,ENDS BLANK S A1,DI L,M A3,8 L A0,CRE SSL A0,24 . SIMULATE TZ,T1 TZ A0 L,M A3,4 TZ CRFL FATAL ERROR FLAG L,M A3,0 S A3,ERSVT L A0,NX TE,M A0,1 NX=1, IF CROSS REFERENCING J L183 L181 LMJ B11,PRINT8 BLANK LINE L A1,ENDS BLANKS L A0,DI N0. OF DIAGNOSTICS LDSL A0,6 S A0,LINE$ DL A1,('DIAGNOSTICS ') DS A1,LINE$+1 L A0,ERSVT LEVEL OF ERROR DL A2,RL,A0 DL A4,RL+2,A0 DS A2,LINE$+3 DS A4,LINE$+5 LMJ B11,PRINT8 WRITE NO. OF DIAGNOSTICS L A0,NX J $,A0 J L191 NX=1, IF CROSS REFERENCING J L185 NX=2, AT VERY END OF COMPILATION L183 TNZ CREMOT NON ZERO FOR DEMAND J L183A TNZ RPFOR$+1 ALTERNATE PRINT PACKET J L185 L183A TNZ,H2 CRCRFT XREF FLAG J L181 DO 1-LMSC , PROC L185 L,M A0,ERRT BUFFER ADDRESS L A1,(1,11) ER PCT$ L A0,ERRT . CURRENT SUPS AN A0,CRTIME BEGINNING TIME DSA A0,36 DI,M A0,50 SM A0,PDL . TIME IN MICRO SEC. LMJ B11,INTSRC CONVERT TO FIELD DATA + PDL + PDL NOP . L,S5 A0,PDL L,M A1,'0' REPLACE BLANK WITH TNE,M A0,' ' ZERO FOLLOWING DECIMAL POINT S,S5 A1,PDL DO LMSC , PROC END DO JPL ,L185 . TNZ CREMOT DEMAND TERMINAL FLAG J L186 TNZ RPFOR$ ALTERNATE PRINT PACKET J L189 L186 LMJ B11,PRINT8 BLANK LINE DO 1-LMSC , PROC DL A0,('COMPILATION ') DL A2,('TIME = ') DS A0,LINE$ DS A2,LINE$+2 L,H1 A0,PDL LSSL A0,6 A,S4 A0,PDL . TIME DIGITS 1 TO 4 S,H2 A0,LINE$+3 SSL A0,18 S,S3 A0,LINE$+3 L,M A0,'.' S,S1 A0,LINE$+4 L,S6 A0,PDL . TIME DIGIT 6 S,S3 A0,LINE$+4 L,S5 A0,PDL . TIME DIGIT 6 S,S2 A0,LINE$+4 L,M A0,' SE' S,H2 A0,LINE$+4 L A0,('CONDS ') S A0,LINE$+5 DO LMSC , PROC END DO 1-JPL , PROC TIMER$ EQU 0400300 . TIMING COMMON BANK TIMNG$ EQU 01000 . TO GET DATA FMTIM$ EQU 01001 . TO FORMAT THE DATA L,M A0,LINE$ . LOCATION TO EDIT S,H2 A0,DQPKT+1 L,M A0,DQFB2 LXI,M X11,TIMER$ LIJ X11,TIMNG$ DL A0,DQPKT LXI,M X11,TIMER$ . BANK NAME LIJ X11,FMTIM$ . GO FORMAT RESULTS DO JPL , PROC END LMJ B11,PRINT8 PRINT TIME AND NO. OF DIAG. TNZ,S2 CRFLGS CALLED BT CTS? J $+3 NO TZ,S2 RPFLG$ PAGE EJECT? J L195 YES TNZ CREMOT DEMAND FLAG J L191J TZ,S2 RPFLG$ SHOULD ALT PRINT FILE J L195 BE BREAKPOINTED? L A0,(3,BRKATH) ER CSF$ J L196 L191J TZ BRKPTT LMJ B11,PGJECT . PAGE EJECT J L191 . RETURN L195 LMJ B11,PGJECT PAGE EJECT ROUTINE L196 TNZ,S3 RPFLG$ SHOULD ALT PRINT FILE J L197 BE FREE-ED L A0,(3,FREE) ER CSF$ L197 SZ RPFOR$+1 TURN OFF ATHENA$ FILE FLAG L189 L A1,DI NO. DIAGNOSTICS IN FIELD DATA LSSC A1,6 DL A2,('DIAGNOSTICS ') DO LMSC , L A4,PDL . TIME DS A1,LINE$ DS A3,LINE$+2 DO 1-LMSC , PROC L,M A0,'.' S,S4 A0,LINE$+3 L A1,PDL TIME SSL A1,12 S,H1 A1,LINE$+3 L A2,(' SEC ') S A2,LINE$+4 DO LMSC , PROC END DO 1-JPL , PROC L,M A0,LINE$+3 S,H2 A0,DQPKT+1 L,M A0,DQFB2 LXI,M X11,TIMER$ LIJ X11,TIMNG$ DL A0,DQPKT LXI,M X11,TIMER$ . BANK NAME LIJ X11,FMTIM$ . FORMAT STATISTICS DO JPL , PROC END L A0,ERSVT LEVEL OF ERRORS DL A2,RL,A0 DL A4,RL+2,A0 DO LMSC , DS A2,LINE$+5 DO LMSC , DS A4,LINE$+7 DO JPL , DS A2,LINE$+14 DO JPL , DS A4,LINE$+16 LMJ B11,PRINT8 L191 L,H2 B11,EXIT RETURN J 1,B11 . $(2). INPUTR J $-$ S,S6 A0,0,*B8 L B7,(1,0) J *INPUTR GETR J $-$ L,S6 A0,0,*B6 L B5,(1,0) J *GETR SVB5* +0 SVB6* +0 SVB7* +0 SVB8* +0 SECB5* +0 SECB6* +0 SECB7* +0 SECB8* +0 STR*. DO 6 , ' ' . LOOP STRUCTURE CHARACTERS PDL* +0 INIT* +0 OLDRSA* -1 LMODE* J $-$ SRCEXT* . ALSO SET BY N6FS FOR GENERATED SOURCE EXIT +0 RSAPR* J $-$ NORSA* J $-$ FLRET* J $-$ OSN* J $-$ . OLD LINE NUMBER IWDS* J $-$ . NUMBER OF WORDS IN LINE BUFFER NX* +0 XREF SWITCH DI* +0 . NUMBER OF DIAGNOSTICS ERSVT +0 . LEVEL OF ERRORS PHEXIT J $-$ TEXIT J $-$ $(1) . ENDS ' ' DO LMSC ,BRKATH '@BRKPT ATHENA$ . ' DO LMSC ,FREE '@FREE ATHENA$. ' DO JPL ,BRKATH '@BRKPT DP$ . ' DO JPL ,FREE '@FREE DP$. ' RL ', NO RELOCATABLE MADE ' ', ERRORS IN RELOCATABLE ' ' ' END