File PAS2.MA (MACREL macro assembler source file)

Directory of image this file is from
This file as a plain text file

/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



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search