RGDFS . REGISTER DEFINITIONS . N6QRC IS AN ASCII VERSION OF N6SRC . N6QRC 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. ASCII . ALL CHARACTER STRINGS ARE ASCII $(1) . LIT N6QRC* S,H2 B11,EXIT L A6,VI05+21 . SAVE CTS LINE NUMBER L A5,ENDAS . LOAD A5 WITH ASCII 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 A1,(1,ALINE$) L,M R1,33 L,M A0,ENDAS BT A1,0,*A0 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 A0,('---') . INITIAL TAIL TE,M A4,1,A3 . IS IT JUST ONE SMALLER L A0,('===') . NO PUT THE EMPHASIS ON IT J L22 . GO DO IT L40 L A4,A0 . MAX L A3,PDL . MIN L A0,('<--') . INITIAL HEAD TE,M A4,1,A3 . IS IT JUST LARGER L A0,('<==') . NO PUT THE EMPHASIS ON IT L22 . L,M A1,ENDAS . GET ASCII BLANKS . L A2,(1,ALINE$) . OUTPUT . L,M R1,33 . LENGTH . BT A2,0,*A1 . CLEAR IT TO BLANKS S,H1 A0,ALINE$+25 . 39 COLUMNS FROM END SSL A0,18 S,Q4 A0,ALINE$+24 TG,M A4,24 . TOO LONG L,M A4,24 . YES /TRUNCATE L,M R1,':' . STARTS FROM THE RIGHT ANU A4,A3 . CLOBBER A5 AND GET MAX-MIN L A1,(-1,ALINE$+31) L A2,(1,2) . CHARACTER POINETR J SETIT . START THE JOB STRCHR S,Q4 R1,0,A1 S,Q3 R1,0,A1 S,Q2 R1,0,A1 LMJ A0,$+1 . CAPTURE LAST STORE S,Q1 R1,0,*A1 . STORE AND 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 ENDS EX STRCHR,*A2 . SET + JGD A5,$-1 . ABS (LEVEL-LAST LEVEL) L,M A3,24 . TOTAL LEVELS AN A3,A4 . TOTAL LEFT L,Q2 R1,ALINE$+25 . 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 . MAX TIMES EX STRCHR,*A2 . BLANK FILL JGD A3,$-1 L A5,ENDAS . RESTORE A5 LMJ B11,APRINT8 . GIVE IT TO EM L100 L A2,VI05 . SEQ NUMBER SLJ AOCTAL . CONVERT TO ASCII S A1,ALINE$ S,Q1 A5,ALINE$ . BLANK SSL A2,18 . GET LOWER 2 DIGITS OF SEQUENCE NUMBER S,H1 A2,ALINE$+1 TZ,S2 VI05 . MACRO NUMBER J L110 DL A14,ALINE$ . SAVE ALINE$ FROM E$DIT A$EDIT AED$PKT . ENTER EDIT MODE A$ECOL 6 . GO TO COL 6 DS A14,ALINE$ . RESTORE SEQ NUMBER L A0,LINE . LINE NUMBER L,M A1,5 . PUT OUT 5 DIGITS LMJ B11,AEDECF$ . DECIMAL CONVERSION TNZ,S2 CRFLGS . FORTRAN CALLED BY CTS J L105 . NO A$ECOL 96 L A0,VI60ID+1 . CTS LINE NUMBER L,M A1,7 LMJ B11,AEDECF$ . DECIMAL CONVERSION L105 A$EDITX . LEAVE EDIT MODE L,M A0,'*' S,Q4 A0,ALINE$+2 . ADD THE ASTERISK J L150 L110 L,M A0,'M' S,Q4 A0,ALINE$+1 L A0,('AC ') S A0,ALINE$+2 L,S2 A1,VI05 . MACNO A,M A1,060 . CONVERT TO ASCII S,Q4 A1,ALINE$+2 L150 S A5,OSN . OLD LINE NUMBER L,M A0,19 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,' ' J L164J LMJ B11,VI812A . CONVERT TO DECIMAL S A3,OSN L164J L,H1 A0,VI60ID+1 . NEW OR NNNN S,H2 A0,VI05+21 L,H2 A0,VI60ID+1 . NEW OR NNNN S,H1 A0,VI05+22 L155 L A1,PARTBZ . GET OPTION LETTERS TEP,M A1,0100 . TEST T OPTION J INDENQ . TRY TO INDENT SOURCE INRT L,M A0,19 . COUNT FOR JGD . DL A1,VI05+2,A0 . COLUMNS 85 TO 92 . DSL A1,18 . JUSTIFY COLUMNS 88 TO 90 . S,Q3 A2,ALINE$+24 . SSL A2,9 . S,H1 A2,ALINE$+24 . COLUMNS 97 TO 98 S A5,VI05+21 . INITIALIZE COLUMS 81 TO 84 L164 DL A1,VI05+1,A0 . COLUMNS 81 TO 88 DSL A1,9 . EXTRACT COLUMNS 84 TO 87 S A2,ALINE$+4,A0 . PLACE IN COLUMNS 93 TO 96 JGD A0,$-3 S A1,VI05+3 . COLUMN 16 L166 . ENTRY FOR INDENTATION L A0,PARTBZ . GET OPTION LETTERS JNB A0,$+2 . Z OPTION TEST J *NORSA L A0,LRSTC1+1 RSA A,M A0,1 TNE A0,OLDRSA . HAS RSA CHANGED J *NORSA . NO, (L230 FOR LOOP PICT, L200 OTHERWIS 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 L200 TZ,S2 CRFLGS . FORTRAN CALLED BY CTS? J L250 . YES OUT PUT LINE L A0,OSN . PUT OLD LINE NUMBER S,Q3 A0,ALINE$+25 . IN LINE BUFFER COLUMN 103 SSL A0,9 S,H1 A0,ALINE$+25 . COLUMNS 101,102 SSL A0,18 S,Q4 A0,ALINE$+24 . COLUMN 100 J L250 . GO OUTPUT LINE L210 TZ,S2 CRFLGS . FORTRAN CALLED BY CTS J L215 . YES S A5,ALINE$+27 . ASCII BLANKS TO COLUMN 109 TO 112 S,H1 A5,ALINE$+28 . COLUMNS 113 TO 114 L A0,OSN S,Q3 A0,ALINE$+25 . IN LINE BUFFER COLUMN 103 SSL A0,9 S,H1 A0,ALINE$+25 SSL A0,18 S,Q4 A0,ALINE$+24 . COLUMN 100 L215 L A2,OLDRSA . CONVERT RSA SLJ AOCTAL . TO ASCII OCTAL DSL A1,18 . JUSTIFY OCTAL RESULT S,Q1 A2,ALINE$+27 . COLUMN 109 DSL A1,9 S A2,ALINE$+26 . COLUMNS 105 TO 108 J L250 . GO CONVERT LINE L220 L A2,OLDRSA . CONVERT RSA SLJ AOCTAL . TO ASCII OCTAL L,M A0,' ' . LOAD AN ASCII BLANK LSSL A1,9 . TO PUT FIRST ON RSA DSL A0,9 . INSERT BLANK CHARACTER S,H2 A2,ALINE$+32 . COLUMNS 131, 132 S,H1 A1,ALINE$+32 . COLUMNS 129,130 SSL A1,18 S,H2 A1,ALINE$+31 . COLUMNS 127, 128 J L231 L230 S A5,ALINE$+32 . BLANKS TO 129,132 S,H2 A5,ALINE$+31 . BLANKS TO 127,128 L231 L,Q1 A0,STR S,Q4 A0,ALINE$+24 . COLUMN 100 L,M A0,5 DL A1,STR,A0 . COLUMNS 1,8 DSL A1,27 . EXTRACT COLUMNS 2 TO 5 S A2,ALINE$+25,A0 JGD A0,$-3 L A1,STR+5 S,Q3 A1,ALINE$+31 . COLUMN 127 SSL A1,9 S,H1 A1,ALINE$+31 . COLUMNS 125 AND 126 L250 LMJ B11,APRINT8 . WRITE THE SOURCE LINE S A6,VI05+21 . 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 INDENQ* L,Q1 A0,VI05+1 . TEST FOR COMMENT TE,M A0,'C' J INDCJ L A0,VI05+1 TE A0,('C ') . TEST FIRST 6 COLUMNS J INRT . FOR 'C ' L,H1 A0,VI05+2 TE A0,' ' 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+3) . INITIALIZE TO PICK UP SOURCE L B5,(1,2) . COLUMN 7 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 . FOUR SPACES PER INDENTATION LEVEL A,M A0,3 . SKIP TO H2 OF ALINE$+3 L A8,A0 . OUTPUT CHARACTER COUNT DSL A0,4 . DIVIDE BY FOUR SSL A1,34 L B7,A1 . CHARACTER INDEX L B8,A0 . GET WORD COUNT LXI,M B7,1 A,M B7,3 . GET TO COLUMN 19 A B8,(1,ALINE$+4) . COMPUTE INDEXES TO STORE S B7,SECB7 . SAVE FOE SECOND CARD S B8,SECB8 . SAVE FOR SECOND CARD L A0,VI05+1 . COLUMNS 1 TO 4 L,M A1,' ' TE,H2 A1,ALINE$ J INDEG . GENERATED STAT MAY PUT LABEL HERE L,H1 A1,VI05+2 . COLUMNS 5-6 S,H2 A1,ALINE$+3 . COLUMNS 5-6 S A0,ALINE$+2 . COLUMN 1-4 INDEG L,H1 A0,VI05+19 . COLUMN 73-78 DSC A0,18 S,Q3 A1,ALINE$+22 . COLUMN 87 DSC A0,9 S,H1 A1,ALINE$+22 . COLUMN 85-86 S,H2 A0,ALINE$+21 . COLUMN 83-84 SSC A0,9 S,Q2 A0,ALINE$+21 . COLUMN 82 DL A0,VI05+20 . COLUMN 79-84 S,Q1 A1,ALINE$+24 . COLUMN 93 DSC A0,9 S A1,ALINE$+23 . COLUMN 89-92 S,Q4 A0,ALINE$+22 . COLUMN 88 INGX EX INGET,*B5 TZ A6 . TEST FOR LEADING BLANK J $+3 TNE,M A0,' ' J INGXC . SKIP LEADING BLANK EX INPUT,*B7 A,M A6,1 . SHOW A NON LEADING BLANK A,M A8,1 . COUNT CHARACTERS DISCARDED INGXC L,M A0,0,B6 TG,M A0,VI05+19 . TEST LENGTH OF LINE J INGXCC TLE,M A8,69 . TEST IF OUTPUT LINE FULL J INGX . GO GET NEXT ORDER INGXCC S B5,SECB5 S B6,SECB6 J L166 INSEC . SECOND LINE OF INDENTATION L,Q1 A0,VI05+1 . TEST FOR COMMENT TE,M A0,'C' J INSEC2 L,Q2 A0,VI05+1 . COLUMN 2 TE,M A0,'*' J *EXIT L,M A0,' ' TE,H2 A0,VI05+1 . COLUMNS 3-4 I J *EXIT . PLAIN COMMENT INSEC2 L,M A8,0 . FLAG FOR NON BLANKS L B5,SECB5 . RESTORE SCANNING REGISTERS L B6,SECB6 . RESTORE SCANNING REGISTER L B7,SECB7 . RESTORES SCANNING REGISTERS L B8,SECB8 . RESTORES SCANNING REGISTERS INGXA EX INGET,*B5 TE,M A0,' ' A,M A8,1 L,M A1,0,B6 TG,M A1,VI05+20 J INGXB EX INPUT,*B7 J INGXA INGXB L,M A0,5 . MOVE STRUCTURE CODING L A1,(1,0) L A2,STR+1,A1 S,H1 A2,ALINE$+26,A1 . COLUMNS 105 AND 106 SSL A2,18 S,H2 A2,ALINE$+25,*A1 . COLUMNS 103 AND 104 JGD A0,$-4 TZ A8 . TEST FOR CONTINUATION LINE LMJ B11,APRINT8 L B5,SVB5 L B6,SVB6 L B7,SVB7 L B8,SVB8 J *EXIT INPUT S,Q1 A0,0,B8 S,Q2 A0,0,B8 S,Q3 A0,0,B8 SLJ INPUTR INGET L,Q1 A0,0,B6 L,Q2 A0,0,B6 L,Q3 A0,0,B6 SLJ GETR VI812A L A3,ENDAS . WORD OF ASCII BLANKS VI811 DSL A1,36 . PREPARE FOR DIVIDE DI,M A1,10 DSL A2,4 L,M A2,3 . EQUIVALENT TO ADDINIG O6O DSL A2,5 . FORM ASCII DIGIT JNZ A1,VI811 . DO NEXT DIGIT J 0,B11 $(2) EXIT J $-$ INPUTR J $-$ S,Q4 A0,0,*B8 L B7,(1,0) J *INPUTR GETR J $-$ L,Q4 A0,0,*B6 L B5,(1,0) J *GETR ALINE$ RES 34 AED$PKT* +00041,ALINE$ +0 +0 DO 8 , +0 AOCTAL* J $-$ DSL A2,18 . MOVE NUMBER TO CONVERT TO A3 DSL A1,72 . CLEAR A1 AND A2 L,M R2,5 . CONVERT RIGHT HALF OF A2 LSSC A3,3 . MOVE SIGNIFICANT DIGIT TO LOW PART OF AND,M A3,7 . MOVE DIGIT TO A4 A A2,A4 LDSL A1,9 JGD R2,$-4 LDSL A1,9 A A1,(060060060060) A A2,(060060,0) J *AOCTAL APRINT8 L A0,(000133,ALINE$) TZ RPFOR$+1 J APALTN ER APRINT$ J $+4 APALTN S A0,RPFOR$ L,M A0,RPFOR$ ER APRNTA$ L,M A0,ENDAS . ASCII BLANKS L,M R1,33 L A1,(1,ALINE$) BT A1,0,*A0 J 0,B11 ENDAS +' ' . ASCII BLANKS END