File MAC2.MA (MACREL macro assembler source file)

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

/12 PASS 2 ROOT TO MACREL	POST FT 1
/ 8-MAR-78	ADDED KLUDGY AUXILIARY SECT CHUNK SUPPORT
	.INCLUDE MGLOB.MA
	.ASECT MAC2
/
/
/
/
/
/
/
/
/
/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,OUT,PARSYM .EXTERNAL PASS3,POP,PUSH,PUTSYM,READLN,ROTL6,SCAN .EXTERNAL LPATCH,BPUTX,PUTBT,PUTBN .GLOBAL PUXBIN,BPUT,PUNBIT,PUTBIT,ORIG,PUTB,PUNY,PUTLC .GLOBAL UNNAM *1200 /PUTBIN IS CALLED TO PUT OUT A BINARY ENTRY INCLUDING A FLAG FIELD. /'FLG' MUST ALREADY HAVE BEEN SET UP. PUTBIN IS CALLED WITH THE /DATA WORD IN THE AC. PUXBIN, 0 DCA BINARY ISZ PC L3, 3 TAD I (EXTPC SZA CLA DCA PC /DON'T BUMP PC IF IT'S EXTERNAL CIF 10 JMS I (LPATCH JMS BPUT JMP I PUXBIN TM, BPUT, 0 TAD PC AND QQ7600 DCA LITPAG /MIGHT FLOW INTO NEXT LITERAL PAGE JMS PUNY JMP I BPUT /NO BINARY THIS PASS JMS I (BPUTX JMP I BPUT
PUNBIT, 0 JMS PUXBIN JMS I QQOUT JMP I PUNBIT /PUXBIN IS JUST LIKE PUTBIN BUT IT DOESN'T PRINT LINE PUTBIT, 0 DCA BINARY /SAVE TEMPORARILY TAD BINARY JMS PUTB JMP I PUTBIT /L4060, 4060 L4110, 4110
ORIG, 0 DCA PC /NEW ORIGIN TAD L3 DCA FLG TAD CSTYPE TAD QM10 SNA CLA TAD (15-ORGCOD /ASECTS TAKE ABSOLUTE ORIGINS IAC /TAD (ORGCOD DCA BINARY JMS BPUT TAD PC TAD RELOK /ADD RELOCATION CONSTANT JMS PUTBIT DCA FLG /DON'T PRINT '*' IN LISTING JMP I ORIG
IFDEF PLM < / FLAG= 0 LOAD ENTRY AS IS / 1 ADD BASE OF CURRENT SECT TO ENTRY / 2 7-BIT CURRENT SECT RELOC IF MRI / IF 62XX, ADD FIELD OF CURRENT SECT / 3 SPECIAL LOADER CODE / 0 EXTENDED CODE / 1 LSD+DATA / 2 FIELD LSD+DATA / 3 ZBLOCK, VALUE / 4 NEW SECT / 5 LSD+DATA PAGE 0 / 6 STACK STUFF / EXTENDED CODES: / / 0 END OF TEXT / 1 ORIGIN / 2 STACK STUFF >
PUTB, 0 DCA TM JMS PUNY JMP I PUTB TAD TM JMS I (PUTBT JMP I PUTB PUNY, 0 /SKIP IF PUNCHING BINARY CLL STA RAL /-2 TAD PASS SZA CLA JMP I PUNY TAD PUNFLG SNA CLA INCR PUNY JMP I PUNY
PUTLC, 0 /PUT OUT LOADER CODE (FLG=3) DCA BINARY /CODE IS IN AC JMS PUNY JMP I PUTLC /DO NOTHING EXCEPT ON PASS 2 TAD L3 DCA FLG /ADVANCED RELOCATION TAD BINARY JMS I (PUTBN JMP I PUTLC /PUTELC, 0 /OUTPUT EXTENDED LOADER CODE (IN NEXT WORD) / JMS PUNY / JMP I PUTELC /ONLY DO IT ON PASS 2 / TAD I PUTELC /GET EXTENDED CODE / JMS PUTLC /FIRST TELL LSD THAT THIS IS AN EXTENDED LOADER CODE / ISZ PUTELC / JMP I PUTELC /****** THIS IS RIDICULOUS. IT IS SAME AS PUTLC
UNNAM, 0 CIF 20 JMS I (KLU2 JMS I QQLOOKUP /SEE IF IT'S ALREADY THERE JMS I QQENTER /IF NOT, ENTER IT JMS I QQGETSYM /GET ITS INFO TAD FLAG SPA CLA /DO WE KNOW THIS GUY? JMP UP /YES, MUST HAVE A HIGH OF 200 TAD L4110 /NO, SET DEFINED A-SECT + UNNAMED BIT DCA FLAG TAD FREEPTR SNA HLT DCA SYMSCT /ALLOCATE A NEW SECT TAD SYMSCT JMS I (CNVADR DCA TMP TAD I TMP DCA FREEPTR DCA I TMP ISZ TMP TAD CURFLD CLL RTR RTR DCA I TMP TAD TMP CIF 20 JMS I (KLU3 JMS I QQPUTSYM /SAVE THIS GREAT NEW INFORMATION UP, DCA HISEK /FIDDLE TAD SYMNUM DCA CURSCT /NOTE PRESENCE OF NEW SECT JMS PUNY JMP NOT2 TAD L3 DCA FLG TAD QUAL / AND QQ377 TAD (NEWSCT JMS PUNBIT NOT2, TAD QQ200 JMS ORIG TAD SYMNUM DCA TAGLOC JMP I UNNAM TMP, 0 PAGE
.GLOBAL KLU9,PRLINO .EXTERNAL OK2A .EXTERNAL CALLIT .GLOBAL KLU6, OVL .RSECT KLUDG2 FIELD 2 KLU2, 0 TAD (10 /CREATE AN A-SECT DCA I (CSTYPE TAD (0614 /SET NAME TO FLDN DCA I (NAME1 TAD (0472 /FORCE NON-STANDARD NAME DCA I (NAME2 /USED AS SPECIAL SIGNAL TO 'FIELD' TAD I (CURFLD TAD (4060 DCA I (NAME3 CIF CDF 0 JMP I KLU2 KLU3, 0 IAC DCA TNP STA DCA I TNP ISZ TNP DCA I TNP ISZ TNP DCA I TNP CIF CDF 0 DCA I (SYMVAL JMP I KLU3 TNP, 0 KLU6, 0 IAC DCA TNP TAD I TNP DCA RT ISZ TNP ISZ TNP TAD I TNP DCA OVL TAD OVL SZA CLA TAD (40 TAD RT CIF CDF 0 JMP I KLU6 OVL, 0 RT, 0
KLU9, 0 TAD (2 DCA TEEMP TAD I TEEMP CIF CDF 0 DCA I (SYMVAL JMP I (OK2A TEEMP, 0
PRLINO, 0 /PRINT LINE NUMBER TAD (40 DCA I (PAD TAD I (LINEN2 SZA CLA JMP PL2 TAD (40 CDF 20 CIF 0 JMS I (CALLIT LISTER PL3, CDF 0 STA CLL TAD I (LINEN2 CLA /CLEAR LINK IF 0, SET IF NON-0 TAD I (LINENO CDF 20 CIF 0 JMS I (CALLIT DPRINT CIF CDF 0 JMP I PRLINO PL2, DCA I (PAD TAD I (LINEN2 CLL CDF 20 CIF 0 JMS I (CALLIT DPRINT JMP PL3



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