/6 PASS 2 SPECIFIC OVERLAY / 21-AUG-78 REMOVED /D SWITCH .INCLUDE MGLOB.MA .ASECT PAS2,LEVEL=1,OVERLAY=15 / / / / / / / / / /COPYRIGHT (C) 1977 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / / .EXTERNAL ASEMLV,BACKUP,BRANCH,CREF,CRLF,DPRINT,ENTER,EOS,ERROR,EXPR .EXTERNAL FSCHEK,GETCHR,GETKAR,GETSYM,LETTER,LISTER,LOOKUP,ORIG,OUT,PARSYM .EXTERNAL PASS3,POP,PUSH,PUNBIT,PUTBIT,PUTSYM,PUXBIN,READLN,ROTL6,SCAN .EXTERNAL OPTR1,LITABS,LITREL,OUTBUF,QPUT .GLOBAL PUTBN,PUTBT,LITKRF .GLOBAL CREFX,MORCRF,BPUTX .GLOBAL KRFSY,CHKFUL .EXTERNAL KRFTMP FIELD 3 *2000 RELOC 1400 16 OBUFLD=10 PUTBN, 0 DCA TEM$ /SAVE NEW ENTRY WORD TAD FLGFLG SNA CLA JMS GETFLG CDF OBUFLD TAD I FLGLOC /ADD IN NEW FLAG WORD CLL RTL TAD FLG DCA I FLGLOC SZL /IS FLAG WORD FULL? DCA FLGFLG /YES, NOTE THAT WE NEED A NEW FLAG WORD CDF 0 TAD TEM$ JMS PUTBT JMP I PUTBN TEM$: 0 IFDEF PLM < / / TAD ENTRY / JMS PUTBIN / / FLG MUST ALREADY HAVE BEEN SET UP / / FLG=0,1,2,OR 3 / /OUTPUT BUFFER IS 2 PAGES LONG STARTING AT OUTBUF. /DATA IS STORED VIA OPTR1 WHICH ALWAYS /PTS TO THE NEXT FREE WORD / /INITIALIZATION: MUST SET OUTCNT TO -400 /OPTR1 TO OUTBUF /ETC. /SET FLGLOC TO OUTBUF+1 / /TO WRITE OUT BUFFER, MERELY CALL PUTBUF / /FLGLOC MUST INITIALLY CONTAIN A 1. KEEP SHIFTING /IT LEFT 2 UNTIL LINK GOES ON. / / TAD ENTRY / JMS PUTBIT / /PUTS 1 WORD IN BINARY BUFFER WITHOUT UPDATING FLAG WORD > /DF=OBUFLD CHKFUL, 0 /IS OPTR1 POINTING BEYOND BUFFER END? CDF OBUFLD TAD I (OPTR1 CDF 0 TAD MOUT SZA CLA JMP I CHKFUL /NO /INSTEAD WANT TO JUMP SOMEWHERE DURING KREF PASS TAD FLGFLG SNA CLA JMP NOFLGW /NO FLAG WORD /OR FLAG WORD NEEDS NO MORE ROTATING CDF OBUFLD TAD I FLGLOC /YES, BUFER IS FULL CLL RTL /LEFT-JUSTIFY FLAG WORD SNL JMP .-2 DCA I FLGLOC NOFLGW, CDF 0 TAD PASS /WHAT PASS IS THIS? DCA TEM$ CLL STA RAL /-2 TAD TEM$ SZA CLA JMP A$ /NOT PASS 2 TAD HDRWRD /PASS 2 CDF OBUFLD DCA I (OUTBUF /PUT HEADER WORD INTO BUFFER A$: CIF CDF 10 JMS I (QPUT /OUTPUT BUFFER DCA FLGFLG /NEED A NEW FLAG WORD LOC TAD TEM$ /SKIP IF KREF PASS TAD (-4 CDF 10 SZA CLA ISZ I (OPTR1 /POINT TO OUTBUF+1 JMP I CHKFUL /IN CREF CASE, 1ST WORD IN EACH BUFFER IS CRAP /HEADER: BIT 0: 0 MEANS LSD BLOCK / 1 MEANS TEXT BLOCK TEM$: 0 /PUT A WORD INTO BINARY BUFFER WITHOUT UPDATING FLAG WORD PUTBT, 0 DCA T$ /SAVE IT JMS CHKFUL CDF OBUFLD TAD I (OPTR1 DCA TEM$ TAD T$ DCA I TEM$ /STORE ENTRY AWAY ISZ I (OPTR1 /PT TO NEXT FREE LOCATION CDF 0 JMP I PUTBT T$: 0 TEM$: 0 GETFLG, 0 /NEED A NEW FLAG WORD LOCATION JMS CHKFUL CDF 10 TAD I (OPTR1 DCA FLGLOC /GOT IT ISZ I (OPTR1 /PT TO NEXT FREE LOCATION CLA IAC DCA FLGFLG CLA IAC DCA I FLGLOC /INTIIALIZE FLAG WORD TO 1 CDF 0 JMP I GETFLG BPUTX, 0 TAD FLG AND QQ7 /GET RID OF BIT 0 DCA FLG TAD BINARY JMS PUTBN JMP I BPUTX MOUT, -OUTBUF-400 PAGE CREFX, 0 STL CLA RAR DCA DEFCOD TAD TEMP SNA CLA DCA DEFCOD /SET DEFCOD TO 4000 FOR DEFINITIONS CDF 0 TAD NAME1 JMS I (PUTBT TAD NAME2 JMS I (PUTBT TAD NAME3 JMS I (PUTBT TAD SWMTOX AND (400 /LOOK AT /P SWITCH SZA CLA JMP P$ /P WAS SPECIFIED TAD LINEN2 /NO /P, USE HIGH-ORDER LINE NUMBER SKP P$: TAD PAGENO /IF /P WAS SPECIFIED, USE PAGE NUMBER TAD DEFCOD /MULTIPLEX IN DEFINITION BIT JMS I (PUTBT TAD LINENO JMS I (PUTBT TAD LINEXT JMS I (PUTBT TAD DEFCOD SNA CLA /IS THIS A DEFINITION? JMP I CREFX /NO, RETURN TAD SYMVAL /YES JMS I (PUTBT /OUTPUT VALUE TAD FLAG JMS I (PUTBT /AND FLAGS JMP I CREFX DEFCOD, 0 MORCRF, 0 /CREF A LITERAL REFERENCE TAD (7626 /V DCA NAME1 /VALUE CREF TAD I (LITABS DCA NAME2 TAD I (LITREL SZA CLA TAD ("+ DCA NAME3 JMS I QQCREF TAD (7614 /L DCA NAME1 /NOW CREF BY LOCATION TAD TRMABS DCA NAME2 TAD TRMREL SZA CLA TAD ("+ DCA NAME3 JMS I QQCREF JMP I MORCRF LITKRF, 0 /CALLED FROM MACLIT DCA T$ /WITH SPECIAL CODE IN AC TAD (7626 /76-V MAGIC NUMBER FOR KREF DCA NAME1 /CREATE EXTENDED NAME TAD EXPREL SZA CLA TAD ("+ DCA NAME3 /SET UP FOR KREF TAD T$ SZA CLA TAD (")-"] TAD ("] JMS I QQCREF /CREF BY VALUE WITH DEFINITION CODE ] OR ) JMP I LITKRF T$: 0 KRFSY, 0 TAD FLAG AND (1200 SNA CLA JMP KRFD$ /SYMBOL IS NEITHER PERMANENT NOR LOCAL TAD SWMTOX RAL /PUT /M SWITCH IN LINK CLA CML TAD FLAG AND (1000 /PERM BIT IN AC SZA SNL CLA JMP KRFD$ /KREF IF /M EVEN THOUGH PERMANENT TAD SWATOL RTR CLA CML TAD FLAG AND (200 SNA SZL CLA JMP I KRFSY KRFD$: TAD I (KRFTMP JMS I QQCREF JMP I KRFSY PAGE RELOC .ASECT DMY1,LEVEL=1,OVERLAY=16 FIELD 3 *2000 0 PAGE 0 PAGE .ASECT DMY2,LEVEL=1,OVERLAY=17 FIELD 3 *2000 0 PAGE 0 PAGE