File OVRA.MA (MACREL macro assembler source file)

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

/12 DIRECTIVES OVERLAY 1 TO MACREL	POST V0A
/	7-MAR-78	INSTALLED PATCHES TO FIX OS8 PACKING
/	15-AUG-78	ZBLOCK CHECKS FOR ILLEGAL ARG
/	16-AUG-78	FIXED FILLING OF OS/8 PACKING
/			ADDED COS -237 PACKING
/	17-AUG-78	ALLOWED PAGE>
/	23-AUG-78	PROHIBIT PAGE IN FSECT WITH LITERALS
	.INCLUDE MGLOB.MA
	.ASECT OVRA,LEVEL=1,OVERLAY=0
/
/
/
/
/
/
/
/
/
/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 PRGLIT,CURPAG .GLOBAL ER35,ER44,ER45,ER46,ER58 .GLOBAL $PAGE,$ZBLOCK,$TEXT
FIELD 3 *2000 1 /OVERLAY NUMBER $PAGE, TAD PC JMS I QQHGHSCT /RECOMPUTE HIGH PC TAD CSTYPE TAD (-30 SZA CLA /IS THIS AN FSECT? JMP 1$ /NO CDF 10 /YES TAD I (CURPAG /AND ARE THERE ANY CURRENT PAGE LITERALS? CDF 0 IAC SZA CLA ER58: JMS I QQERROR /YES, OOPS 1$: TAD PC TAD QQ177 AND QQ7600 /ROUND UP TO NEXT PAGE DCA PC DCA TAGLOC /LSB ENDS AT END OF PAGE JMS I QQSCAN /PASS UP SPACES TAD CHAR TAD (-76 SZA CLA JMS I QQEOS /AT END OF STATEMENT? JMP PAGE1X /YES, NO ARGUMENT TO PAGE PSEUDO-OP JMS I QQBACKUP /NO, THERE IS AN ARGUMENT JMS I QQEXPR /IT MAY BE AN EXPRESSION PAGG1, DCA PC /GET ITS VALUE TAD EXPCOD SNA TAD EXPREL SZA CLA JMP ER35 /RELOCATABLE PART TAD PC AND (7740 SZA CLA /IT MUST BE IN THE RANGE 0-37 JMP ER35 /IT WASN'T TAD PC JMS I QQROTL6 RAL /MULTIPLY BY 200 DCA PC PAGE1X, TAD PC /SEE IF NEW PAGE IS SAME AS OLD PAGE CIA TAD LITPAG /MUST BE A BETTER WAY *** SZA CLA /NOTE: THIS IS BUG IF ISSUE PAGE AT END OF PAGE JMS I (PRGLIT INCR PCFLAG TAD PC JMS I QQORIG JMP I (PSEUDP
ER35, JMS I QQERROR /ARG TO 'PAGE' OUT OF RANGE /OR BAD ZBLOCK ARGUMENT TAD PC AND (37 JMP PAGG1
/*** RELOC STUFF $ZBLOCK,JMS I QQBACKUP JMS I QQEXPR /GET EXPRESSION AFTER ZBLOCK COMMAND DCA TE TAD EXPREL SNA TAD EXPCOD SZA CLA JMP ER35 TAD TE SNA /IS IT 0? JMP I (PSEUDB /YES - SPECIAL CASE, GENERATE NO CODE CIA DCA TE TAD I (LISTWD DCA SAVBE TAD I (LISTWD /EXTRA ZEROES NEVER PRINT AND (6777 TAD (1000 DCA I (LISTWD TAD CHAR TAD (-54 SNA CLA JMS I QQEXPR DCA TEV DCA FLG ZBLUP, TAD TEV JMS I QQPUNBIT /*** TEMP (?) OUTPUT WORD AT TIME? ISZ TE JMP ZBLUP TAD SAVBE DCA I (LISTWD JMP I (PSEUDN /ALLOW ZBLOCK N, /CHECK FOR LITERAL OVERLAP ETC. TE, 0 TEV, 0 /VALUE TO BE STORED SAVBE, 0
TEXLST, SIXTXT;-2 /0 - SIXBIT ASCTXT;-1 /1 - ASCII OS8TXT;-3 /2 - OS/8 PACKED TEXT USRTXT;-2 /3 - USER-IMPLEMENTED TEXT PACKING SCHEME USRTXT, TAD (-237 AND QQ70 /USER CAN PATCH THIS WITH HIS OWN CODE JMS I QQROTL6 DCA SV$ JMS I (GOTXT TAD (-237 AND QQ77 TAD SV$ JMS I QQPUNBIT JMS I (GOTXT JMP USRTXT SV$: 0 PAGE
$TEXT, TAD I (ENABWD AND (3 CLL RAL TAD (TEXLST-1 DCA XR1 TAD I XR1 DCA GOTXT TAD I XR1 DCA FILCNT TAD I (ENABWD CMA AND QQ200 DCA PARITY JMS I QQSCAN /IGNORE INITIAL BLANKS DCA FLG /TYPE 0 BINARY / ISZ PCFLAG / ISZ BNFLAG /JUST IN CASE NO BINARY IS GENERATED TEX3, TAD CHAR SNA JMP ER44 JMS I QQBRANCH -74;TEX4 /OPEN ANGLE BRACKET -73;ER44 /; 1;-36;ER45 /UNPRINTABLE RANGE *** 0 TAD CHAR DCA TXTCHR /SAVE CHAR AS TERMINATOR TEXLUP, JMS I QQGETKAR /GET A CHAR FROM WITHIN TEXT STATEMENT JMP TEXEND /END-OF-LINE ENDS TEXT STREAM JMS PRNTBL CIA TAD TXTCHR /COMPARE CHAR WITH DELIMETER SNA CLA /IS THIS THE END? JMP TEX2 /YES TAD CHAR /NO, SEND CHAR TO COROUTINE JMS PUTXT / DCA PCFLAG / DCA BNFLAG JMP TEXLUP TEX2, JMS I QQGETCHR JMS I QQSCAN /IGNORE BLANKS JMS I QQEOS /END OF STATEMENT? JMP TEXEND /YES JMP TEX3 /NO /FOR COMPATIBILITY WITH PAL8, / MEANS COMMENT AFTER FIRST GROUP TEXEND, TAD I (ENABWD /ZERO FILL BIT IS IN AC0 SMA CLA /ONE LESS 0 IF NO ZERO-FILL JMS PUTXT ISZ FILCNT JMP .-2 ISZ PCFLAG ISZ BNFLAG /IN CASE NO BINARY GENERATED JMP I (BYEX /PROHIBIT UNPRINTABLE CHARS
TEX4, JMS I QQEXPR /NULL EXPRESSION *** JMS PUTXT /*** RELOC PART? TAD CHAR TAD (-76 /CLOSE ANGLE BRACKET SNA CLA JMP TEX2 ER46, JMS I QQERROR JMP I (PSEUDP ER44, JMS I QQERROR /MISSING ITEM JMP I (PSEUDP ER45, JMS I QQERROR /UNPRINTABLE CHAR JMS I QQGETCHR /SKIP IT JMP TEX3 TXTCHR, 0 /DELIMITER CHAR FOR TEXT SVKR, 0 FILCNT, -2 /NEG OF NO. OF FILLER 0'S NEEDED TO ZERO FILL /***************************************************/ PUTXT, 0 /COROUTINE LINKAGE AND QQ177 /FORCE TO 7-BIT JMP I GOTXT GOTXT, SIXTXT JMP I PUTXT /***************************************************/ /COROUTINE INITIALIZATION: C(GOTXT)_'SIXTXT'
SIXTXT, AND QQ77 /CHAR TO BE SIXBIT PACKED IS IN AC JMS I QQROTL6 /MOVE LOW ORDER 7 BITS TO LEFT BYTE OF AC DCA SVKR /SAVE LEFT BYTE JMS GOTXT /GET NEXT BYTE TO PACK AND QQ77 TAD SVKR /COMBINE WITH LEFT HALF JMS I QQPUNBIT JMS GOTXT /GET LEFT BYTE JMP SIXTXT PRNTBL, 0 /CHECK IF CHAR IN AC IS PRINTABLE /LEAVE IT IN AC IF IT IS /IF IT ISN'T, GENERATE AN ERROR MESSAGE /AND TRY AGAIN WITH NEXT CHARACTER /0 GIVES ERROR AND BRANCHES TO 'ASEMLV' JMP I PRNTBL
ASCTXT, SZA TAD PARITY /MAKE 8-BIT ASCII IF SO ENABLED JMS I QQPUNBIT JMS GOTXT JMP ASCTXT PARITY, 0
SVKR2, 0 SVKR3, 0 OS8TXT, SZA TAD PARITY DCA SVKR /SAVE FIRST CHARACTER JMS GOTXT SZA TAD PARITY DCA SVKR2 JMS GOTXT SZA TAD PARITY DCA SVKR3 TAD SVKR3 RTL RTL AND (7400 TAD SVKR JMS I QQPUNBIT TAD SVKR3 RTR RTR RAR AND (7400 TAD SVKR2 JMS I QQPUNBIT JMS GOTXT JMP OS8TXT 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