RGDFS . $(1) . XREF* S B11,SVB11 LMJ B9,SMERGE +CRSRTB DL A0,0,B3 DS A0,NITEM E$DIT ED$PKT . INITIATE EDIT MODE E$DITX LMJ B11,PRINT8 . WRITE BLANK LINE L,M A0,24 S,S3 A0,ED$PKT . MODIFY PRINT PKT FOR SLOP OVER LMJ B11,GWRITE + CRTITL + 0,(3) NOP . XGT10 DL A0,NITEM DS A0,ITEM TZ,S6 SOA . TEST IF START OF ARGS HAD BEEN FOUND J XAA TZ EOT . ALREADY FOUND END J RET2 XGT11 LMJ B9,SGET +RET2X,CRSRTB DL A0,0,B3 DS A0,NITEM L,S1 A0,NITEM+1 TG,M A0,010 . SET FLAG FOR START OF ARG/REF S,S6 A0,SOA DL A0,ITEM TE A0,NITEM ARE THEY DUPLICATE J XGT12 . NO TNE A1,NITEM+1 . HOW ABOUT 2ND PART J XGT11 . SKIP THIS ITEM L,S1 A1,NITEM+1 . GET FLAG TNE,M A1,2 J XGT11 . SKIP TYPE 2 ITEM TNE,M A1,1 . IS IT DEFINED, TYPE 1 J XGT10 . KEEP THIS ONE XGT12 L,H1 A0,ITEM . SYM TABLE ADDRESS TNE A0,LASYM J XGT55 L,S3 A2,2,A0 . GET CLASS AND,M A2,7 TE,M A3,2 . IS CLASS EQUAL 2 J XGT15 L A1,0,A0 . ARE NAMES THE SAME TNE A1,LASTNM J XGT55 XGT15 L,H1 A0,ITEM L,S3 A2,2,A0 AND,M A2,7 J $+1,A3 . JUMP ON CLASS J XGT100 . 0 - VARIABLE J XGT30 . 1 - INTERNAL SUB J XGT100 . 2 - EXTERNAL SUB J XGT10 . 3 - CONSTANT J XGT20 . 4 - PARAMETER J XGT100 . 5 - ARGUMENT J XGT60 . 6 - INTRINSIC FUNCT J XGT40 . 7 - LABEL XGT20 L,S2 A1,2,A0 . GET CM SSL A1,4 JNB A1,XGT10 J XGT100 XGT30 L,S2 A1,2,A0 . SYMF AND,M A1,010 L,S2 A3,2,A0 . SYMDFI AND,M A3,3 JNZ A2,$+2 JZ A4,XGT10 J XGT100 XGT40 L,S2 A1,2,A0 . SYMD AND,M A1,7 J $+1,A2 J XGT10 . 0 J XGT51 . 1 STMT LABEL J XGT100 . 2 FORMAT LABEL J XGT10 . 3 J XGT10 . 4 J XGT50 . 5 J XGT50 . 6 J XGT50 . 7 XGT50 L,S3 A1,2,A0 . GET TYPE SSL A1,3 TE,M A1,7 J XGT10 TG,M A2,6 J XGT100 J XGT10 XGT51 L A1,0,A0 . GET LABEL L,M R2,5 XGT52 AND,M A1,077 . LOOK FOR GENERATED LABELS TE,M A2,' ' . AND IGNORE THEM J XGT53 SSL A1,6 JGD R2,XGT52 XGT53 TNE,M A2,'G' J XGT10 . IGNORE GENERATED LABEL J XGT100 . IT'S A GOOD ONE XGT55 E$DITR ED$PKT . RE-ENTER EDIT MODE J XGT200 XGT60 L,S2 A1,2,A0 . INTRINSIC FUNCT AND,M A1,010 JZ A2,XGT10 XGT100 TZ PFL . DO WE PRINT LMJ B11,PRINT8 SZ PFL L,H1 A0,ITEM S A0,LASYM L A1,0,A0 S A1,LINE$ E$DITR ED$PKT . RE-ENTER EDIT MODE XGT150 E$COL 12 S B11,START XGT200 DL A0,ITEM . SAVE CURRENT ITEMS DS A0,LAST1 L,H1 A0,ITEM L A1,0,A0 S A1,LASTNM . SAVE CURRENT NAME L,M A0,',' S A0,PFL TNZ START LMJ B11,ECHAR$ E$CHAR ' ' L,M A0,'*' L,S1 A1,ITEM+1 . FLAG TNE,M A1,1 LMJ B11,ECHAR$ L A5,ITEM . GET SEQUENCE NUMBER LSSL A5,18 SZ A4 L,M R2,5 LDSL A4,3 . GET FIRST NONZERO DIGIT TNZ A4 JGD R2,$-2 XGT202 L A0,A4 A,M A0,'0' . ADD 060 LMJ B11,ECHAR$ SZ A4 LDSL A4,3 . GET NEXT OCTAL DIGIT JGD R2,XGT202 TNZ,H2 ITEM+1 . LOC OF DEFINE J XGT300 E$CHAR '(' L,H2 A0,ITEM+1 L A5,0,A0 . NAME OF DEFINE SZ A4 L,M R2,5 XGT204 LDSL A4,6 L A0,A4 TE,M A0,' ' LMJ B11,ECHAR$ SZ A4 JGD R2,XGT204 E$CHAR ')' XGT300 SZ START E$COLN . RETRIEVE COL. POINTER TG,M A0,125 . SHOULD WE PRINT J XGT301 XGT303 S A0,WDX E$DITX . END EDIT MODE TZ EOT . WAS END OF TABLE FOUND J RET2 J XGT10 XGT301 TG,M A0,133 IS LINE EXCEEDED J XGT302 S A0,PFL J XGT303 XGT302 L A0,WDX . GET PREVIOUS COL. POINTER ANU,M A0,133 SN A1,A4 E$COL . GO TO THAT COL. L,M A0,' ' . CLEAR OUT JUNK LMJ X11,ECHAR$ JGD A4,$-2 LMJ B11,PRINT8 J XGT150 RET2X S B11,EOT J XGT12 RET2 TZ PFL . DO WE PRINT LMJ B11,PRINT8 RETURN L B11,SVB11 J 0,B11 XAA LMJ B9,SGET +REV2X,CRSRTB DL A0,0,B3 DS A0,NITEM REV3X . L,S1 A2,ITEM+1 TNE,M A2,012 . TEST FOR START OF NEW FUNCTION J XAC . NO CONTINUATION OF OLD TZ PFL . TEST IF PRINTING IN LAST LINE SHOULD LMJ B11,PRINT8 . LINE SHOULD BE TERMINATED SZ PFL L,H1 A0,ITEM+1 . TEST FOR ARGUMENT ONE AND,M A0,07777 TE,M A1,1 J XAFA . IT WAS NOT ARGUMENT ONE E$DIT ED$PKT . ENTER EDIT MODE E$COL 7 L,S6 A0,ITEM+1 . GET TYPE OF ENTRY SSL A0,3 AN,M A0,1 SSC A0,35 L,M A0,NAMEA,A0 L,M A1,12 LMJ B11,ECOPY$ E$COL 23 L,H1 A0,ITEM . SYM PTR TO FUNCTION S A0,LASTFC L A0,0,A0 . NAME OF FUNCTION S A0,FNCNME . SAVE NAME OF CURRENT FUNCTION LMJ B11,EFD1$ . EDIT NAME OF FUNCTUON E$COL 33 L,H2 A5,ITEM . SEQUENCE NUMBER OF DEFINITION LSSL A5,18 SZ A4 L,M R2,5 LDSL A4,3 TNZ A4 JGD R2,$-2 XAGA L A0,A4 A,M A0,'0' LMJ B11,ECHAR$ SZ A4 LDSL A4,3 . GET NEXT OCTAL DIGIT JGD R2,XAGA LMJ B11,EDITX$ LMJ B11,PRINT8 . AT THIS POINT AN ARGUMENT IS EDITED OUT XAFA E$DIT ED$PKT ENTER EDIT MODE E$COL 11 L,M A0,NARG L,M A1,12 LMJ B11,ECOPY$ . EDIT THE STRING 'ARGUMENT' E$COL 24 L,H1 A0,ITEM+1 AND,M A0,07777 JZ A1,XAB . IGNORE ARGUMENT ZERO L A0,A1 S A0,SARGNO . SAVE ARGUMENT NUMBER DEFINED LMJ B11,EDECV$ E$COL 30 L,S4 A0,ITEM+1 SSL A0,3 S,S5 A0,SDEID SSC A0,35 . MULTIPLY BY 2 TO HAVE TWO WORD TABLE DL A5,TTABLE,A0 SZ A4 L,M R2,5 XAC1 LDSL A4,6 L A0,A4 TE,M A0,' ' LMJ B11,ECHAR$ SZ A4 JGD R2,XAC1 SZ A4 L A5,A6 . SECOND HALF OF WORD SZ A4 L,M R2,5 XAC2 LDSL A4,6 L A0,A4 TE,M A0,' ' LMJ B11,ECHAR$ SZ A4 JGD R2,XAC2 E$CHAR '/' L,S4 A0,ITEM+1 AND,M A0,7 . EXTRACT INDEX TO ARGUMENT ID S,S6 A1,SDEID . SAVE ID CODE OF DEFINITION SSC A1,35 .TWO WORDS FOR EACH ENTRY L,M R2,5 DL A5,TIDAR,A1 SZ A4 XAC3 LDSL A4,6 EDIT FIRST CHARACTERS L A0,A4 ARGUMENT ID TE,M A0,' ' LMJ B11,ECHAR$ SZ A4 JGD R2,XAC3 . COUNT SIX CHARACTERS SZ A4 L A5,A6 . EDIT OUT SECOND PART OF ID L,M R2,5 XAC4 LDSL A4,6 L A0,A4 TE,M A0, ' ' LMJ B11,ECHAR$ SZ A4 JGD R2,XAC4 LMJ B11,EDITX$ . CLOSE OUT EDIT PACKAGE LMJ B11,PRINT8 XAB DL A0,NITEM DS A0,ITEM TZ EOT J RET2 J XAA XAC L,H1 A0,ITEM+1 . ARGUMENT NUMBER AND,M A0,07777 TE,H2 A1,SARGNO TEST IF REF MATCHES LAST DEF J XACM . PRINT MESSAGE ABOUT MISSING DEF L,H1 A0,ITEM . SYM POINTER TO NAME L A0,0,A0 . NAME OF FUNCTION TE A0,FNCNME . TEST FOR PROCESSING SAME FUNCTION J XACM DEFINITION IS MISSING FOR FUNCTION TNZ,H1 SARGNO J XDC1 E$DITR ED$PKT . REENTER EDIT PACKAGE L,H1 A0,SARGNO . LAST COLUMN NUMBER E$COL . SKIP TO THAT COLUMN L,M A0,',' . PUT COMMA AFTER LAST REF LMJ B11,ECHAR$ E$COLN . RETRIEVE CURRENT COL NU A,M A0,3 . SKIP THREE COLUMNS E$COL . E$COLN . RETRIEVE COLUMN NUMBER TLE,M A0,105 . TEST FOR LENGTH OF LINE J XDC2 LMJ B11,EDITX$. CLOSE OUT EDIT PACKAGE LMJ B11,PRINT8 . PRINT THE LINE XDC1 E$DIT ED$PKT . OPEN EDIT PACKAGE E$COL 15 XDC2 L,H2 A5,ITEM . SEQUENCE NUMBER OF REF LSSL A5,18 SZ A4 L,M R2,5 LDSL A4,3 TNZ A4 JGD R2,$-2 XAHA L A0,A4 A,M A0,'0' LMJ B11,ECHAR$ SZ A4 LDSL A4,3 . GET NEXT OCTAL DIGIT JGD R2,XAHA E$COLN . RETRIEVE CURRENT LOC NU A,M A0,3 S A0,PFL . INDICATE SOME PRINTING OCCURRED LMJ B11,ECOL$ . SKIP 3 COLUMNS L,S4 A0,ITEM+1 SSL A0,3 . GET DIGIT DEFINING TYPE L,M A2,' ' . LOAD BLANK IF TYPES MATCH TE,S5 A0,SDEID . TEST TYPE OF REF AND DEF L,M A2,'*' S,S2 A2,SDEID L,S1 A0,TLT,A0 LMJ B11,ECHAR$ . OUTPUT TYPE DIGIT L,M A0,'/' LMJ B11,ECHAR$ L,S4 A0,ITEM+1 AND,M A0,7 L A0,A1 S,S3 A0,SDEID L,S1 A0,RLT,A0 . GET FIRST LETTER DESCRIBING REF ID LMJ B11,ECHAR$ L,S3 A0,SDEID L,S2 A0,RLT,A0 . GET SECOND LETTER DESCRIBING REF ID LMJ B11,ECHAR$ L,S3 A0,SDEID . ID CODE OF REFERENCE L,S6 A1,SDEID . ID CODE OF DEFINITION L A4,IDTB,A0 SSL A4,0,A1 L,M A5,' ' JB A4,$+2 L,M A5,'*' S,S3 A5,SDEID L,M A5,' ' . FORCE BLANKS IF DEFIINITION TZ,H1 LASTFC . FOR MODULE IS MISSING S,H1 A5,SDEID L,S2 A0,SDEID . FIRST CHARACTER OF FLAG LMJ B11,ECHAR$ L,S3 A0,SDEID . SECOND CHARACTER OF FLAG LMJ B11,ECHAR$ E$COLN . RETRIEVE COLUMN NUMBER S,H1 A0,SARGNO J XAB REV2X S B11,EOT J REV3X . CONTINUE PROCESSING ALREADY READ ITEM XACM S A1,SARGNO . SET ARGUMENT NUMBER TZ PFL TEST FOR A LINE TO PRINT LMJ B11,PRINT8 SZ PFL TNZ,H2 SARGNO J XAB L,H1 A0,ITEM . SYMBOL TABLE POINTER TNE,H2 A0,LASTFC . SYM OF LAST PROCESSED FUNCTION J CRFQA L,S3 A2,2,A0 AND,M A2,7 TNE,M A3,5 . TEST FOR DUMMY ARGUMENT J CRFDC . REFERENCE TO DUMMY FUNCTION TNE,M A3,2 J CRXFC . REFERENCE TO EXTERNAL FUNCTION E$DIT ED$PKT L,M A0,XACMX L,M A1,29 LMJ B11,ECOPY$ E$COL 33 L,H2 A0,SARGNO LMJ B11,EDECV$ L,M A0,(' FOR ') L,M A1,6 LMJ B11,ECOPY$ L,H1 A0,ITEM L A0,0,A0 . GET NAME OF FUNCTION LMJ B11,EFD1$ LMJ B11,EDITX$ LMJ B11,PRINT8 J XAB CRFDC E$DIT ED$PKT E$COL 7 L,M A0,DFMSG L,M A1,28 LMJ B11,ECOPY$ E$COL 39 CRDFCA L,H1 A0,ITEM . SYM PTR TO FUNCTION NAME S,H2 A0,LASTFC L A0,0,A0 S,H1 A0,LASTFC . FLAG FOR NO DEFINITIONS FOR ARGS S A0,FNCNME LMJ B11,EFD1$ . EDIT NAME OF FUNCTION LMJ B11,EDITX$ . CLOSE OUT EDIT PACKAGE LMJ B11,PRINT8 CRFQA E$DIT ED$PKT . OPEN EDIT PACKADE E$COL 11 L,M A0,NARG L,M A1,12 LMJ B11,ECOPY$ . PRINT WORD COPY E$COL 30 L,H1 A0,ITEM+1 AND,M A0,07777 L A0,A1 LMJ B11,EDECV$ . EDIT ARGUMENT NUMBER LMJ B11,EDITX$ LMJ B11,PRINT8 J XAC CRXFC E$DIT ED$PKT E$COL 7 L,M A0,XFMSG L,M A1,33 LMJ B11,ECOPY$ E$COL 42 J CRDFCA $(2) . SVB11 +0 ITEM +0 . SYM LOC = H1, SEQ NO. = H2 +0 . FLAG = S1, ST=S3 DEFINE = H2 LAST1 +0 LAST2 +0 NITEM +0 +0 LASYM +0 CRTITL ' CROSS REFERENCE ' EOT +0 LASTNM +0 WDX +0 PFL +0 START +0 XACMX ' NO DEFINITION FOR ARGUMENT ' XFMSG ' REFERENCE TO EXTERNAL FUNCTION ' DFMSG ' REFERENCE TO DUMMY FUNCTION ' SOA +0 LASTFC +0 FNCNME +0 SDEID +0 SARGNO +0 TTABLE 'LABLE ' 'INTEGER' 'REAL ' 'DBLE PREC' 'COMPLEX' 'LOGICAL' 'BOOLEAN' NAMEA 'SUBROUTINE' 'FUNCTION' 'ENTRY ' TIDAR 'LABLE ' 'VARIABLE' 'ARRAY ' 'FUNCTION' '*VARIABLE*' '*ARRAY*' NARG 'ARGUMENT' TLT 'L' 'I' 'R' 'D' 'C' 'L' 'B' RLT 'L' 'V' 'A' 'C' 'AE' 'EX' 'FN' IDTB +1 . ONLY ALLOWED WITH TYPE 0 +022 . ONLY ALLOWED WITH TYPE 1 AND 4 +044 . ONLY ALLOWED WITH TYPE 2 AND 5 +2 . ONLY ALLOWED WITH TYPE 1 +066 . ONLY ALLOWED WITH TYPES 2 AND 5 +2 . ONLY ALLOWED WITH TYPE 1 +10 . ONLY ALLOWED WITH TYPE 4 END