/COS 300 CREF EDITED 10/11/73 /COPYRIGHT 1972, 1973 /DIGITAL EQUIPMENT CORPORATION /MAYNARD, MASS. 01754 / /SGW BASED ON SR HACK / / /THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE /ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION /OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT /AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC. / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL /EQUIPMENT CORPORATION. / /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY /OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. / /THERE ARE FOUR TABLES USED IN CREF. THE FIRST OF THEM IS THE SYMBOL /TABLE. IT IS BUILT SEQUENTIALLY IN FIELD 1, STARTING FROM LOCATION /ZERO, THREE WORDS PER SYMBOL AND TWO CHARACTERS PER WORD. THE /DEFINITION TABLE IS IN FIELD 0, AND EACH SYMBOL HAS A CORRESPONDING /ENTRY IN THIS TABLE EQUAL TO THE LINE NUMBER WHERE THE SYMBOL IS DEFINED. /THE REFTABLE IS ALSO IN FIELD 0 AND IS BUILT BACKWARDS FROM 4377 /TOWARDS THE DEFINITION TABLE (WHICH BUILDS UPWARDS). THE REFTABLE HAS /ONE ENTRY PER SYMBOL, AND IT IS A POINTER TO WHERE THE CHAIN OF LINKED /GROUPS OF REFERENCES FOR THE SYMBOL BEGIN. /THE ACTUAL TABLE OF REFERENCES IS IN FIELD 1 (IF 8K, OR IN FIELD 2 /IF 12K). IT BUILDS BACKWARDS FROM LOCATION 7777. THE REFERENCES ARE /PUT IN GROUPS OF LENGTH GRPSIZ CONSISTING OF GRPSIZ-1 LINE NUMBERS /FOLLOWED BY A POINTER TO THE NEXT GROUP OF REFERENCES FOR THE SYMBOL. /IF 8K, THE INPUT BUFFER IS LOCATIONS 4400-4777 IN FIELD 0; IF /12K, IT IS IN FIELD 1 (AFTER THE SYMBOL TABLE) AT LOCATIONS 4000-7777. /AC CONSTANTS AC0001= CLA IAC AC0002= CLA CLL CML RTL AC4000= CLA CLL CML RAR AC7777= CLA CMA AC7776= CLA CLL CMA RAL AC7775= CLA CLL CMA RTL / XR10= 10 XR11= 11 XR12= 12 / P7= 40 TEMP= 61 M1= 45 M4= 66 CHAR=57 COUNT= 62 P17= 64 SYSHND= 77 P77= 20 BSWPTR= 22 P7600= 70 KPTRST= 43 P7400= 2 W0= 46 W1= 47 W2= 50 W3= 51 W4= 52 W5= 53 LPOCHR= 35 KOTOPD= 74 KRDOIO= 26 KCDOIO= 27 / *100 EQSWIT, 0 SAVCHR, 0 LEFT, 0 RIGHT, 0 MAXREF, 0 MAXSYM, 0 S1, 0 S2, 0 S3, 0 INDEX, 0 PTR, 0 PT, 0 ID, CHAR1, 0 CHAR2, 0 CHAR3, 0 CHAR4, 0 ID5, 0 ID6, 0 ID7, 0 IFLAG, 0 IFFLG, 0 LINENO, 0 LINCNT, -1 PHASE, 0 SAVPTR, 0 PCOUNT, 0 OLD, 0 NEW, 0 FILPTR, 6370 ERKNT, 0 GRPSIZ, -3 /HOW MANY REFERENCES PER GROUP GRPCNT, 0 PERLIN, 0 WC, 0 MAXPTR, 0 NOTREF, 0 /# OF SYMBOLS DEFINED BUT NEVER REFERENCED *200 JMP I (INITCD SINIT, AC0001 /INIT (SYS,SYS) JMS I KPTRST TAD BUFSIZ DCA I W0 TAD BUFLOC DCA I W1 TAD I FILPTR ISZ FILPTR SNA JMP END CLL RAR RTR RTR DCA TEMP TAD TEMP AND P7400 DCA I W5 TAD TEMP RAL AND (377 DCA I W4 DCA I W3 GO, DCA PTR /PTR=1 (WE USE 0) AC0001 /XMIT(SYS,INLINE,...) JMS I KRDOIO INLINE-1 JMP SINIT /TRY AGAIN TAD I (INLINE+1 /LINENO=64*#L1+#L2 7421 /MQL 7501 /MQA DCA LINENO DCA IFFLG /IFFLG= JMS I (COMPRES /CALL COMPRESS JMS I (IDENT /CALL IDENT TAD PHASE /GOTO(PROCK),PHASE SZA CLA JMP I (PROCK TAD PTR /IF(LINE(PTR).EQ.',') GOTO FLDNAM JMS I [GETLC TAD (-15 SNA CLA JMP FLDNAM TAD (-5 /IF(ID5.EQ.'START') GOTO START JMS I (IF SZA CLA START STRTCD-1 TAD M4 /IF(ID4.EQ.'PROC') GOTO PROC JMS I (IF SZA CLA PROC PROCCD-1 FAKE, TAD (-6 /IF(ID6.EQ.'RECORD')GOTO RECORD JMS I (IF SZA CLA RECORD RECCD-1 TAD (-5 /IF(ID5.EQ.'BLOCK')GOTO BLOCK JMS I (IF SZA CLA BLOCK BLOCCD-1 J, TAD CHAR /IF(CHAR.EQ.';')GOTO GO SNA CLA /... WE REPLACE 0000 FOR ; JMP GO Q, TAD LINENO JMS I [PRNTNM TAD (5 JMS I KCDOIO IGNORE-1 K200, 200 JMP GO FLDNAM, ISZ PTR /PTR=PTR+1 TAD PTR /IF(LINE(PTR).EQ.'X')GOTO FAKE JMS I [GETLC TAD (-71 SNA JMP FAKE TAD (71-44 /IF(LINE(PTR).EQ.'C')GOTO FAKE SNA CLA JMP FAKE DUPCOD, TAD IFLAG /IF(IFLAG.EQ.0)GOTO GO SNA CLA JMP GO JMS I [LOOKUP /CALL LOOKUP TAD INDEX /DEFINITION(INDEX)=LINENO TAD (DEFTBL DCA TEMP TAD LINENO DCA I TEMP START, JMP GO /GOTO GO BLOCK, TAD (5 /PTR=6 DCA PTR JMP REC2 /GOTO REC2 RECORD, TAD (6 /PTR=7 DCA PTR REC2, JMS I (IDENT /CALL IDENT JMP DUPCOD /CALL LOOKUP, ETC. PROC, ISZ PHASE /PHASE = 1 JMP GO /GOTO GO / BUFSIZ, 200 /THIS CHANGES IF 12K TO 2010 BUFLOC, 4400 /THIS CHANGES IF 12K TO 4000 / PAGE PROCK, DCA SAVPTR /SAVPTR=1 (WE USE 0) TAD PTR /IF(LINE(PTR).EQ.',')CALL LABEL JMS I [GETLC TAD (-15 SNA CLA JMS LABEL BR2, TAD SAVPTR /PTR=SAVPTR DCA PTR TAD EQSWIT /IF(EQSWITCH.EQ.1)GOTO REG2 SZA CLA JMP REG2 BRANCH, TAD (JMPT2 /GOTO( ...MESS... ),#CHAR1-33 TAD CHAR1 DCA TEMP TAD I TEMP DCA TEMP JMP I TEMP CC, TAD CHAR2 /IF(CHAR2.EQ.'A')GOTO ADV4 TAD (-42 JMP ADV45 TT, TAD CHAR4 /IF(CHAR4.EQ.'P')GOTO ADV4 TAD (-61 JMP ADV45 F, TAD CHAR2 /IF(CHAR2.EQ.'I')GOTO ADV4 TAD (-52 ADV45, SNA CLA JMP ADV4 JMP ADV5 /GOTO ADV5 KI, TAD CHAR2 /IF(CHAR2.EQ.'F')GOTO LIF TAD (-47 SNA CLA JMP LIF TAD CHAR3 TAD (-44 /IF(CHAR3.EQ.'C')GOTO ADV4 SNA CLA JMP ADV4 INIT, TAD PTR /PTR=PTR+4 TAD (4 DCA PTR TAD PTR /PT=PTR DCA PT DCA PCOUNT /PCOUNT= INLOOP, ISZ PT /INCR PT TAD PT JMS I [GETLC /IF(LINE(PT).EQ.'(')GOTO LPAREN SNA JMP Q TAD (-11 SNA JMP LPAREN TAD M1 /IF(LINE(PT).EQ.')')GOTO RPAREN SNA JMP RPAREN TAD (12-15 /IF(LINE(PT).NE.',')GOTO INLOOP SZA CLA JMP INLOOP TAD PCOUNT /IF(PCOUNT.NE.0)GOTO INLOOP SZA CLA JMP INLOOP IP2, AC0001 /SAVCHR=LINE(PT+1) TAD PT JMS I [GETLC DCA SAVCHR IPLOOP, ISZ PT /INCR PT TAD PT /IF(LINE(PT).EQ.')')GOTO HALT JMS I [GETLC SNA JMP Q TAD (-12 SNA JMP HALT TAD (12-15 /IF(LINE(PT).EQ.',')GOTO HALT SNA CLA JMP HALT TAD PT /LINE(PT)='.' TAD (LINE DCA TEMP TAD P17 DCA I TEMP JMP IPLOOP /GOTO IPLOOP HALT, TAD SAVCHR /IF(SAVCHR.EQ.'F')GOTO IP2 TAD (-47 SNA JMP IP2 TAD (47-67 /IF(SAVCHR.EQ.'V')GOTO IP2 SNA CLA JMP IP2 JMP REG2 /GOTO REG2 R, TAD CHAR3 /IF(CHAR3.EQ.'T')GOTO GO TAD (-65 SNA CLA JMP GO JMP ADV4 /GOTO ADV4 / LPAREN, ISZ PCOUNT /INCR PCOUNT JMP INLOOP /GOTO INLOOP RPAREN, AC7777 /PCOUNT=PCOUNT-1 TAD PCOUNT DCA PCOUNT JMP INLOOP /GOTO INLOOP ADV7, IAC /INCR PTR ADV6, IAC ADV5, IAC ADV4, TAD (3 TAD PTR DCA PTR JMP REG / PAGE REG, ISZ PTR /INCR PTR CLA REG2, TAD PTR /IF(LINE(PTR).EQ.';')GOTO FINI JMS I [GETLC SNA /...WE USE 0000 FOR ; JMP FINI TAD (-42 /IF(LINE(PTR).LT.'A')GOTO REG SPA JMP REG TAD (42-73 /IF(LINE(PTR).GT.'Z')GOTO REG SMA SZA CLA JMP REG JMS I [IDENT /CALL IDENT JMS I [LOOKUP /CALL LOOKUP JMS I (MAKREF /** PUT IN-LINE** JMP REG2 /GOTO REG2 / LIF, ISZ PTR /PTR=PTR+2 ISZ PTR TAD PTR /PT=PTR DCA PT DCA PCOUNT /PCOUNT= IFLOOP, ISZ PT /INCR PT TAD PT /IF(LINE(PT).EQ.'(')GOTO LPAR JMS I [GETLC TAD [-11 SNA JMP LPAR TAD M1 /IF(LINE(PT).NE.')')GOTO IFLOOP SZA CLA JMP IFLOOP TAD PCOUNT /IF(PCOUNT.EQ.0)GOTO IFEND SNA JMP IFEND TAD M1 /PCOUNT=PCOUNT-1 DCA PCOUNT JMP IFLOOP /GOTO IFLOOP IFEND, ISZ IFFLG /IFFLG=1 TAD PT /LINE(PT)=';' TAD [LINE DCA TEMP DCA I TEMP JMP REG /GOTO REG LPAR, ISZ PCOUNT /INCR PCOUNT JMP IFLOOP /GOTO IFLOOP FINI, TAD IFFLG /IF(IFFLG.EQ.0)GOTO GO SNA CLA JMP GO ISZ PTR /INCR PTR DCA IFFLG /IFFLG= TAD PTR /SAVPTR=PTR DCA SAVPTR JMS I (IDENT /CALL IDENT JMP BR2 /GOTO BR2 GETLC, 0 TAD [LINE DCA TEMP TAD I TEMP JMP I GETLC / LABEL, 0 ISZ PTR /INCR PTR TAD PTR /SAVPTR=PTR DCA SAVPTR JMS LOOKUP /CALL LOOKUP TAD INDEX /DEFINITION(INDEX)=LINENO TAD (DEFTBL DCA TEMP TAD LINENO DCA I TEMP JMS I [IDENT /CALL IDENT JMP I LABEL /RETURN / HEADER, 0 TAD [214 JMS I LPOCHR CDF 0 ISZ I (HDRPAG TAD K5 JMS I KCDOIO HDR1-1 /"COS CREF VXX XX-XXX-XX PAGE XX" KM62, -62 JMS CRLF TAD K5 JMS I KCDOIO HDR2-1 /"SYMBOL DEF REFERENCES" K5, 5 JMS CRLF TAD KM62 DCA LINCNT TAD (-12 DCA LEFT JMP I HEADER / CRLF, 0 TAD [215 JMS I LPOCHR TAD [212 JMS I LPOCHR JMP I CRLF / STRTCD, -64;-65;-42;-63;-65 /"START" / PAGE COMPRE, 0 DCA EQSWIT /EQSWITCH= DCA OLD /OLD=1, EXCEPT WE USE OLD=0 DCA NEW /SAME FOR NEW TAD I [INLINE /GET WORD COUNT DCA WC CLOOP, TAD OLD /CHAR=LINE(OLD) JMS I [GETXC DCA CHAR TAD CHAR /GOTO( ...MESS... ),#CHAR TAD (JMPTBL DCA TEMP TAD I TEMP DCA TEMP JMP I TEMP RR, TAD NEW TAD [LINE DCA TEMP DCA I TEMP /0 AT END JMP I COMPRE /RETURN / SETEQ, ISZ EQSWIT /EQSWITCH=1 JMP P /GOTO P INQ, ISZ OLD /INCR OLD TAD OLD /IF(LINE(OLD).NE.QUOTE)GOTO INQ JMS I [GETXC SNA JMP Q TAD [-10 SZA CLA JMP INQ JMP II /GOTO II / DOT, ISZ OLD /INCR OLD TAD OLD /IF(LINE(OLD).NE.'.')GOTO DOT JMS I [GETXC SNA JMP Q TAD (-17 SZA CLA JMP DOT TAD OLD /CHAR=LINE(OLD) JMS I [GETXC DCA CHAR P, TAD NEW /LINE(NEW)=CHAR TAD (LINE DCA TEMP TAD CHAR DCA I TEMP ISZ NEW /INCR NEW II, ISZ OLD /INCR OLD JMP CLOOP /GOTO CLOOP / IDENT, 0 DCA CHAR1 /ID= DCA CHAR2 DCA CHAR3 DCA CHAR4 DCA ID5 DCA ID6 DCA ID7 TAD PTR /LEFT=PTR DCA LEFT DCA IFLAG /IFLG= IDLOOP, TAD PTR /CHAR=LINE(PTR) JMS I [GETLC DCA CHAR TAD CHAR /IF(CHAR.LT.'0')GOTO IDEND TAD [-21 SPA JMP IDEND TAD [21-32 /IF(CHAR.LE.'9')GOTO IDINC SPA SNA JMP IDINC TAD (32-42 /IF(CHAR.LT.'A')GOTO IDEND SPA JMP IDEND TAD (42-73 /IF(CHAR.GT.'Z')GOTO IDEND SMA SZA CLA JMP IDEND IDINC, CLA ISZ PTR /INCR PTR JMP IDLOOP /GOTO IDLOOP IDEND, AC7777 /RIGHT=PTR-1 TAD PTR DCA RIGHT TAD RIGHT /IF(RIGHT.LT.LEFT)RETURN CIA TAD LEFT SMA SZA CLA JMP I IDENT /RETURN DCA COUNT /ID=LINE(LEFT,RIGHT) TAD (ID-1 DCA XR10 TAD [-7 DCA COMPRE IDNTLP, TAD LEFT TAD COUNT JMS I [GETLC DCA I XR10 TAD LEFT TAD COUNT ISZ COUNT CIA ISZ COMPRE /DONE 7 CHARS YET? TAD RIGHT SMA SZA CLA JMP IDNTLP ISZ IFLAG /IFLAG=1 JMP I IDENT / PAGE /GENERAL "IF" TEST /CALL: / TAD (-# OF WORDS TO COMPARE / JMS IF / APPROPRIATE SKP CODE + CLA / ADDR TO GO TO IF IF IS GOOD / ADDR-1 OF ARG1 / ADDR-1 OF ARG2 / (RETURN) IF TEST FAILS / IF, 0 DCA COUNT AC7777 TAD IF DCA XR12 TAD I XR12 DCA IFSKP /GET SKP CODE TAD I XR12 DCA IFJMP /GET PLACE TO GO TO TAD (ID-1 DCA XR10 /GET 1ST ARG PTR TAD I XR12 DCA XR11 /GET 2ND ARG PTR IFTST, TAD I XR10 TAD I XR11 IFSKP, 0 JMP I XR12 /ERROR RETURN ISZ COUNT JMP IFTST JMP I IFJMP /GOOD COMPARE IFJMP, 0 / LOOKUP, 0 DCA INDEX TAD (S1-1 DCA XR10 TAD (ID-1 DCA XR11 AC7775 DCA COUNT LKPACK, TAD I XR11 BSW004, BSW005 TAD I XR11 CIA DCA I XR10 ISZ COUNT JMP LKPACK CDF 10 AC7777 DCA XR10 TAD MAXSYM /# OF SYMBOLS IN TABLE CIA SNA JMP CREATE /SPECIAL FIRST-SYMBOL CASE DCA COUNT / (-) THE # OF SYMBOLS IN TABLE LUKLUP, TAD I XR10 /MATCH WHAT WE GET WITH WHAT WE WANT TAD S1 SZA CLA JMP BAD2 TAD I XR10 TAD S2 SZA CLA JMP BAD1 TAD I XR10 TAD S3 SNA CLA JMP GOTIT JMP BAD0 BAD2, ISZ XR10 BAD1, ISZ XR10 BAD0, ISZ INDEX /BUMP SYMBOL # ISZ COUNT /LOOKED AT ALL? JMP LUKLUP /NOPE CREATE, TAD S1 /OUR SYMBOL IS NEW...ADD IT TO END OF TABLE CIA DCA I XR10 TAD S2 CIA DCA I XR10 TAD S3 CIA DCA I XR10 CDF 0 JMS GRPTR /SET UP TEMP AS A GOOD REFPTR CLA TAD GRPSIZ TAD MAXPTR /ALLOCATE A GROUP FOR IT DCA MAXPTR /BY SUBRTRACTING ONE FROM FREE SPACE TAD MAXPTR DCA I TEMP /AND SETTING UP A POINTER TO IT TAD INDEX TAD [DEFTBL DCA TEMP DCA I TEMP /CLEAR OUT ITS DEFINITION SLOT ISZ MAXSYM /BUMP TOTAL # OF SYMBOLS...WE JUST ADDED ONE GOTIT, CDF 0 JMP I LOOKUP / MAKREF, 0 JMS GRPTR /GET PTR TO FIRST GROUP OF REFERENCES JMS REFFLD /SET PROPER CDF REFLUP, DCA TEMP TAD GRPSIZ IAC /ONE FOR WORD TAKEN BY THE POINTER DCA LOOKUP GRPSCN, TAD I TEMP /GET ENTRY IN GROUP SNA CLA JMP GOTHOLE /IT'S EMPTY SO USE IT ISZ TEMP /POINT TO NEXT IN GROUP ISZ LOOKUP /END OF THIS GROUP YET? JMP GRPSCN /NOPE TAD I TEMP /GET PTR TO NEXT GROUP SZA /ANOTHER GROUP? JMP REFLUP /YUP TAD GRPSIZ TAD MAXPTR DCA MAXPTR TAD MAXPTR /NO, MUST CREATE NEW GROUP DCA I TEMP TAD MAXPTR DCA TEMP GOTHOLE,TAD LINENO DCA I TEMP CDF 0 JMP I MAKREF REFFLD, 0 REFCDF, CDF 10 /CHANGES IF 12K JMP I REFFLD / GRPTR, 0 TAD INDEX CIA TAD (REFTBL DCA TEMP TAD I TEMP JMP I GRPTR / PAGE END, TAD MAXSYM /WERE THERE ANY SYMBOLS? SNA JMP I P7600 /NOPE CMA DCA SYMCNT /SAVE AS COUNT OF HOW MANY WE MUST PRINT NEWSYM, CDF 0 JMS I [LPCRLF TAD MAXSYM CIA DCA COUNT /# OF SYMBOLS WE MUST CHECK DCA INDEX ISZ SYMCNT /DONE ALL SYMBOLS? JMP SETXR /NOPE JMS I [LPCRLF TAD NOTREF JMS I KOTOPD DCA I (NTRFCT TAD NOTREF SNA CLA /SHOULD WE PRINT THE MESSAGE? JMP EJ /NOPE TAD KK5 JMS I KCDOIO REFTXT-1 /"SYMBOLS DEFINED BUT NEVER REFERENCED: " KK5, 5 EJ, TAD [214 JMS I LPOCHR JMP I P7600 SETXR, AC7777 GETBST, DCA XR10 /SEARCH TABLE FOR "LOWEST" SYMBOL TAD XR10 DCA XR11 /XR11 IS POINTER TO "CURRENT BEST" SYMBOL CDF 10 TAD I XR10 /GET A SYMBOL TO BE "CURRENT BEST" DCA S1 TAD I XR10 DCA S2 TAD I XR10 DCA S3 LOOK, ISZ COUNT JMP NOTDON AC7777 /REMOVE THIS SYMBOL FROM FUTURE CONSIDERATIONS DCA I XR11 /BY SETTING FIRST TWO CHARS TO ^^ CDF 0 JMS I [GRPTR DCA REFPTR JMS I (REFFLD TAD I REFPTR SNA CLA ISZ NOTREF /NO REFS FOR THIS SYMBOL CDF 0 TAD INDEX TAD [DEFTBL DCA TEMP TAD I TEMP /GET DEFINITION LINE # DCA DEFINI TAD S1 /PRINT SYMBOL JMS I [LP8P2C TAD S2 JMS I [LP8P2C TAD S3 JMS I [LP8P2C JMS I [LP8P2C /PLUS 2 SPACES TAD DEFINI OUTNUM, JMS I [PRNTNM /PRINT DEF LINE # JMS I [LP8P2C /TOTAL OF 4 SPACES OUTLUP, TAD GRPSIZ /GET # OF REFS PER GROUP IAC /-1 FOR GROUP POINTER DCA GRPCNT NXTREF, ISZ PERLIN /SPACE ON LINE? JMP REFOK /YES CDF 0 JMS I [LPCRLF /NO - GO TO NEXT LINE ISZ PERLIN /FUDGE FACTOR JMS I [SPACE -20 REFOK, JMS I (REFFLD TAD I REFPTR /GET REF ISZ REFPTR SNA /WAS THERE ONE? JMP NEWSYM /NOPE CDF 0 JMS I [PRNTNM JMS I (REFFLD ISZ GRPCNT /MORE IN THIS GROUP? JMP NXTREF /YUP TAD I REFPTR /NO - GET PTR TO NEXT GROUP SNA JMP NEWSYM /NONE DCA REFPTR JMP OUTLUP NOTDON, TAD I XR10 /COMPARE NEXT AGAINST "CURRENT BEST" CLL CIA TAD S1 SNA JMP EQL2 SNL CLA JMP EBAD2 SWAP2, ISZ XR10 SWAP1, ISZ XR10 SWAP0, TAD MAXSYM TAD COUNT DCA INDEX AC7775 TAD XR10 JMP GETBST EQL2, TAD I XR10 CLL CIA TAD S2 SNA JMP EQL1 SNL CLA JMP EBAD1 JMP SWAP1 EQL1, TAD I XR10 CLL CIA TAD S3 SZL CLA JMP SWAP0 JMP LOOK REFPTR, 0 DEFINI, 0 EBAD2, ISZ XR10 EBAD1, ISZ XR10 JMP LOOK /BUMP PAST BAD SYMBOL & TRY NEXT / SYMCNT, 0 / PAGE SPACE, 0 TAD I SPACE /GET # TO DO ISZ SPACE DCA PT SPCLUP, TAD [240 JMS I LPOCHR ISZ PT JMP SPCLUP JMP I SPACE / PRNTNM, 0 DCA TEMP TAD KTENTB DCA LPCRLF DCA LP8P2C TAD M4 DCA CHAR NCLOOP, DCA GETXC NCLUP, TAD TEMP CLL TAD I LPCRLF SNL JMP NXTPWR DCA TEMP ISZ GETXC JMP NCLUP NXTPWR, CLA TAD GETXC SNA CLA JMP ZON TAD K20 DCA LP8P2C ZON, TAD LP8P2C SZA TAD GETXC TAD K240 JMS I LPOCHR ISZ LPCRLF ISZ CHAR JMP NCLOOP JMS I [LP8P2C JMP I PRNTNM K20, 20 K240, 240 KTENTB, TENTBL TENTBL, -1750 -144 -12 -1 LPCRLF, 0 JMS I KCRLF ISZ LINCNT SKP JMS I [HEADER TAD [-13 DCA PERLIN JMP I LPCRLF KCRLF, CRLF / GETXC, 0 CLL RAR IAC /ONE FOR LINE # DCA TEMP TAD TEMP TAD WC SMA CLA JMP I GETXC TAD TEMP TAD [INLINE+1 /+1 TO SKIP WORD COUNT DCA TEMP TAD I TEMP SNL BSW001, BSW002 RH, AND P77 JMP I GETXC LP8P2C, 0 DCA PTR TAD PTR BSW002, BSW003 AND P77 SNA IAC /00 TO SPACE TAD K237 JMS I LPOCHR TAD PTR AND P77 SNA IAC TAD K237 JMS I LPOCHR JMP I LP8P2C K237, 237 RECCD, -63;-46;-44;-60;-63;-45 /"RECORD" PROCCD, -61;-63;-60;-44 /"PROC" BLOCCD, -43;-55;-60;-44;-54 /"BLOCK" HDR1, -45 /"COS 300 CREF VXX XX-XXX-XX PAGE XX" 4460 6401 2421 2101 4463 4647 0101 0101 6701 /V 2417 /3. 2130 /07 0101 0101 0101 0101 0101 0101 DAY, 0101 MT1, 0101 MT2, 0101 1630 YR, 0101 0101 0101 WKDAY1, 0101 WKDAY2, 0101 0101 0101 0101 0101 0101 0101 0101 6142 5046 0101 HDRPAG, 0121 /PAGE # / HDR2, -15 /"SYMBOL DEF REFERENCES" 6472 5643 6055 0101 4546 4701 0101 0101 6346 4746 6346 5744 4664 IGNORE, -10 /"IS BEING IGNORED" 5264 0143 4652 5750 0152 5057 6063 4645 / REFTXT, -24 /"SYMBOLS DEFINED BUT NEVER REFERENCED: XX" 6472 5643 6055 6401 4546 4752 5746 4501 4366 6501 5746 6746 6301 6346 4746 6346 5744 4645 3301 NTRFCT, 7171 /A COUPLE OF COMPUTED GOTO'S IN DISGUISE / JMPTBL, RR;II;P;INQ;P;P;P;P;INQ;P;P;P;P;P;P;DOT P;P;P;P;P;P;P;P;P;P;P;P;RR;P;SETEQ;P;P;P;P;P;P;P P;P;P;P;P;P;P;P;P;P;P;P;P;P;P;P;P;P;P;P;P;P;II;II;II;II JMPT2, J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J;J J;J;J;J;ADV6;Q;CC;ADV7;END;F;ADV4;Q;KI;Q;Q;Q;Q;GO;ADV7 Q;Q;R;GO;TT;Q;Q;ADV5;ADV4;J;J;J;J;J;J / LINE=. INLINE=LINE+100 / MTBL, 1653 /-J 4257 /AN 1647 /-F 4643 /EB 1656 /-M 4263 /AR 1642 /-A 6163 /PR 1656 /-M 4272 /AY 1653 /-J 6657 /UN 1653 /-J 6655 /UL 1642 /-A 6650 /UG 1664 /-S 4661 /EP 1660 /-O 4465 /CT 1657 /-N 6067 /OV 1645 /-D 4644 /EC / WEEKDY, 6442 /SA 6501 /T 6466 /SU 5701 /N 5660 /MO 5701 /N 6566 /TU 4601 /E 7046 /WE 4501 /D 6551 /TH 6663 /UR 4763 /FR 5201 /I / / PAGE BSWT, INITCD, TAD BSWVAL BSWVAL, 7002 TAD (-0270 SNA CLA JMP BSWLUP TAD (JMS I BSWPTR DCA BSWVAL BSWLUP, TAD BSWADR SNA JMP FLDCLR DCA BSWT TAD I BSWT DCA BSWADR TAD BSWVAL DCA I BSWT JMP BSWLUP BSWADR, BSW001 FLDCLR, TAD I (7775 TAD (-6221 SPA CLA JMP ONLY8K KCDF20, CDF 20 DCA I BSWADR /IF 12K SYMBOLS IN FIELD 1, REFS IN FIELD 2 ISZ BSWADR JMP .-2 TAD KCDF20 CDF 0 DCA I (REFCDF AC4000 /SET UP FOR I/O BUFFER IN FIELD 1 DCA I (BUFLOC TAD (2010 DCA I (BUFSIZ ONLY8K, CDF 10 DCA I BSWADR ISZ BSWADR JMP .-2 CDF 0 TAD I M4 DCA SYSHND TAD I M1 AND P7 DCA PTR TAD PTR BSW003, BSW004 TAD (2301 DCA I (YR TAD I M1 CLL RAR RTR AND (37 DCA PT TAD PT JMS I KOTOPD DCA I (DAY TAD I M1 BSW006= 0 BSW005, BSW006 RTR AND P17 DCA SAVCHR TAD SAVCHR CLL RAL TAD (MTBL-3 DCA XR10 TAD I XR10 DCA I (MT1 TAD I XR10 DCA I (MT2 / /FIGURE OUT DAY OF WEEK / PTR2, TAD SAVCHR TAD (JAN-1 DCA PTR2 TAD I M1 AND P7 CLL RTR SNL SMA JMP LEAP ISZ JAN ISZ FEB LEAP, AND P7 /YEAR/4 TAD PTR /YEAR TAD (132 /72 + 72/4 TAD PT /DAY TAD I PTR2 /MAGIC # DIV7, TAD (-7 SMA JMP DIV7 TAD P7 CLL RAL TAD (WEEKDY-1 DCA XR10 TAD I XR10 DCA I (WKDAY1 TAD I XR10 DCA I (WKDAY2 JMP I (SINIT / JAN, 0 FEB, 3 4;0;2;5;0;3;6;1;4;6 / PAGE DEFTBL= INLINE+100 / / D E F T B L B U I L D S D O W N ! ! / / R E F T B L B U L D S U P ! ! / *4377 REFTBL, 0 /REFTBL STARTS WORKING BACK FROM 4377 / $-$-$