File MACRO.56

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

/MACRO-PROCESSOR    C.D.N.





FIELD 0



*21
	WRITSR


*40






	INSIZE=OUBUF-INTAB-3

MACSRA,	MACSR
MTABMX,	-7577
WRITAD,	WRITSR
NAT,	0
PERSMA,	PERSIM
TABADD,	TABLE-1
MMAXIN,	-INSIZE
INBFAD,	INBF1
NM6,	-6
NM3,	-3
ROBFA,	ROBUF
ENDBFA,	ENDBUF
TEM,	0
INCNT,	0
INPOI,	0
TABPOI,	0
LINEND,	0
INPOI2,	0
MACPOI,	0
ARGCNT,	0
ARGNUM,	0
MACSWT,	0
ROCNT,	0
ENDCNT,	0
ROPOI,	0
ENDPOI,	0
TABEND,	0
MCFLAG,	0
SERCHR,	0
N2000,	2000
N5777,	5777






*1000




START1,	CLA
	DCA MACSWT
	TAD WRITAD
	DCA 21
	TAD PERSMA
	DCA MACPOI
	TAD PERSMA
	DCA TABEND
	DCA MCFLAG
STRTLP,	TAD NAT
	CDF 20
	DCA I MACPOI
	CDF 0
	TAD MACPOI
	ISZ MACPOI
	TAD MTABMX
	SZA CLA
	JMP STRTLP
	TAD PERSMA
	DCA MACPOI
START,	JMS SRLINE
	TAD MMAXIN
	DCA INCNT
	TAD INBFAD
	DCA INPOI
INLOOP,	CIF 10
	JMS I (ICHAR
	JMP TSTEOF
	JMS SRCH
	212
	JMP INLOOP
	JMS MACLOK
	JMS SRCH
N215,	215
	TAD MACSWT
	JMS SRCH
	215
	JMP LINRDY
	DCA I INPOI
	ISZ INPOI
	ISZ INCNT
	JMP INLOOP
	JMS TERR
	TEXT /INPUT OVERFLOW/		/PROBABLY "MACEND" MISSING




LINRDY,	DCA I INPOI
	TAD INPOI
	DCA LINEND
	TAD INBFAD
	DCA INPOI


SPCBEG,	CLA
	TAD I INPOI
	JMS SRCH
	"/
	JMP REPEAT
	JMS CHKALN
	SKP
	JMP ISITMC
	JMS SRCH
	"?
	JMP ISITMC
NTFNRT,	JMS SRCH
	215
	JMP COMOUT
	JMS OUTTYP
MCDNRT,	ISZ INPOI
	JMP SPCBEG

REPEAT,	JMP COMOUT		/OR "NOP"FOR REPEATED TEXT"
	JMP COMENT
REPINS,	JMP COMOUT		/AS IN REPEAT



CHKALN,	0	/SKIP IF ALPHANUMERIC
	JMS SRCHBK
	301
	32
	ISZ CHKALN
	JMS SRCHBK
	260
	12
	ISZ CHKALN
	JMP I CHKALN




NOTFND,	CLA
	TAD I INPOI
	JMS CHKALN
	JMP NTFNRT
	JMS OUTTYP
	ISZ INPOI
	JMP NOTFND



	JMS OUTTYP
COMOUT,	CLA
	TAD I INPOI
	ISZ INPOI
	JMS SRCH
	215
	SKP
	JMP COMOUT-1



COMENT,	JMP START	/OR  " NOP "   FOR REPEAT TEXT
	JMS SRTDC
	"/
	TAD INBFAD
	DCA INPOI
CMENTL,	TAD I INPOI
	ISZ INPOI
	JMS SRCH
	215
	JMP START
	JMS OUTTYP
	JMS SRCH
	212
	JMS SRTDC
	"/
	JMP CMENTL
COMINS,	JMP START		/AS IN COMENT

PAGE MACBAR, TAD I INPOI JMP NTFNRT ISITMC, CLA TAD MCFLAG SZA CLA JMP MACBAR TAD TABADD DCA TABPOI SEARCH, TAD INPOI DCA INPOI2 CLA CLL CML TAD TABPOI CMA TAD TABEND SZL CLA JMP NOTFND JMP COMPAR CMPLOP, ISZ INPOI2 ISZ TABPOI COMPAR, CLA CDF 20 TAD I TABPOI CDF 0 AND N2000 SZA CLA JMP NONALN CDF 20 TAD I TABPOI CDF 0 JMS SRCH "? JMP CMPLOP CIA TAD I INPOI2 SNA CLA JMP CMPLOP MISMTC, ISZ TABPOI CDF 20 TAD I TABPOI CDF 0 JMS SRCH 0 JMP ONEAT CLA JMP MISMTC ONEAT, ISZ TABPOI CLA CDF 20 TAD I TABPOI CDF 0 JMS SRCH 0 JMP NOTFND CLA JMP SEARCH MACLOK, 0 DCA TEM TAD TEM JMS CHKALN JMP RESET CIA CDF 20 TAD I ROPOI CDF 0 ISZ ROPOI SNA CLA JMP INCRO TAD NM6 DCA ROCNT RORET, TAD TEM CIA CDF 20 TAD I ENDPOI CDF 0 ISZ ENDPOI SNA CLA JMP INCEND TAD NM6 DCA ENDCNT ENDRET, TAD TEM JMP I MACLOK INCRO, ISZ ROCNT NOP CLA JMP RORET INCEND, ISZ ENDCNT NOP CLA JMP ENDRET RESET, CLA TAD NM6 TAD ROCNT SZA CLA JMP .+3 TAD NM3 DCA MACSWT TAD ENDCNT TAD NM6 SNA CLA DCA MACSWT CLA IAC DCA ROCNT DCA ENDCNT TAD ROBFA DCA ROPOI TAD ENDBFA DCA ENDPOI TAD TEM JMP I MACLOK MATERR, JMS TERR TEXT /ILLEGAL ARG. NUMBER/ /PROBABLY TERMINATOR MISSING
PAGE NONALN, CLA TAD I INPOI2 JMS CHKALN SKP CLA JMP MISMTC JMP MATCH CHKTAB, 0 /SKIP IF TAB OR SPACE OR C.R. OR L.F. JMS SRCH 240 ISZ CHKTAB JMS SRCH 211 ISZ CHKTAB JMS SRCH 215 ISZ CHKTAB JMS SRCH 212 ISZ CHKTAB JMS SRCH ", ISZ CHKTAB JMP I CHKTAB N7007, 7007 MATCH, TAD I INPOI2 DCA SERCHR TAD INPOI DCA INPOI2 ISZ TABPOI CDF 20 TAD I TABPOI CDF 0 SPA JMP SPECAL AND N7007 /TO BE REPLACED DCA ARGNUM TAD SERCHR JMS CHKTAB JMP MISMTC ISZ TABPOI CLA CDF 20 TAD I TABPOI CDF 0 JMS CHKTAB JMP MATERR GENLOP, CLA ISZ TABPOI CDF 20 TAD I TABPOI CDF 0 JMS SRCH "# JMP DUMARG JMS SRCH 0 JMP MACDON JMS OUTTYP CLA JMP GENLOP ARGGET, 0 CIA DCA ARGCNT CLA CMA TAD INPOI DCA INPOI2 TAD ARGCNT SNA CLA JMP I ARGGET DUMLOP, ISZ INPOI2 CLA TAD I INPOI2 JMS CHKTAB SKP CLA JMP DUMLOP ISZ ARGCNT SKP CLA JMP I ARGGET DUMLP2, ISZ INPOI2 CLA TAD I INPOI2 JMS CHKTAB JMP DUMLP2 JMP DUMLOP+1 REPLAC, CLA TAD I INPOI2 JMS CHKTAB SKP JMP GENLOP JMS OUTTYP ISZ INPOI2 JMP REPLAC OUTTYP, 0 AND N5777 JMS SRCH 212 JMP LINOUT JMS SRCH 215 JMP LINOUT TCHAR JMP I OUTTYP LINOUT, MQL JMS SRLINE CLA MQA JMP I OUTTYP MACDON, CLA TAD ARGNUM JMS ARGGET TAD INPOI2 DCA INPOI MCDNLP, TAD I INPOI JMS CHKTAB SKP CLA JMP MACOUT ISZ INPOI JMP MCDNLP
PAGE MACOUT, TAD ARGNUM SZA CLA JMP SPCBEG ISZ INPOI JMP NOTFND DUMARG, CLA ISZ TABPOI CDF 20 TAD I TABPOI CDF 0 AND N7007 NOP JMS ARGGET JMP REPLAC SPECAL, JMS SRCH -1 JMP MACRO JMS SRCH -2 JMP MACEND JMS TERR TEXT /NEGATIVE NUMBER OF ARGS./ MACRO, CLA CMA DCA MCFLAG TAD MACSRA DCA 21 TAD INPOI TAD N5 DCA INPOI JMP MCDNRT N5, 5 NM4215, -4215 MACSR, 0 DCA TEM TAD SERCHR CIA TAD TEM SZA CLA JMP SERPAS DCA MCFLAG TAD N2000 TAD TEM DCA TEM TAD N5 DCA SERCHR SERPAS, TAD TEM TAD NM4215 SNA CLA JMP BYPASS TAD TEM CDF 20 DCA I MACPOI CDF 0 TAD MACPOI TAD MTABMX SNA CLA JMP MACOVR CDF 20 TAD I MACPOI CDF 0 ISZ MACPOI JMP I MACSR BYPASS, TAD TEM JMP I MACSR MACEND, CLA CMA TAD MACPOI DCA MACPOI TAD WRITAD DCA 21 TAD NAT JMS MACSR CLA TAD INPOI TAD N5 DCA INPOI TAD MACPOI DCA TABEND JMP MCDNRT WRITSR, 0 CIF 10 JMS I (OCHAR JMP OUTERR JMP I WRITSR MACOVR, JMS TERR TEXT /MACRO TABLE FULL/ PAGE TSTEOF, SMA CLA JMP CLOSE JMS TERR TEXT /READ ERROR/ CLOSE, CIF 10 JMS I (OCLOSE JMP CLERR CDF CIF 0 JMP I N7600 OUTERR, JMS TERR TEXT /OUTPUT ERROR/ CLERR, JMS TERR TEXT /CLOSE ERROR/ TERR, 0 CLA TAD I TERR RTR;RTR;RTR JMS TYPIT TAD I TERR JMS TYPIT ISZ TERR JMP TERR+1 TYPIT, 0 AND (77 SNA JMP CRLF TAD (300 JMS TTYOUT JMP I TYPIT CRLF, CLA TAD (215 JMS TTYOUT TAD (212 JMS TTYOUT JMP BEGIN TTYOUT, 0 TLS TSF JMP .-1 CLA JMP I TTYOUT SRCH, 0 DCA TEMP TAD I SRCH ISZ SRCH CIA TAD TEMP SZA CLA ISZ SRCH TAD TEMP JMP I SRCH TEMP, 0 N7600, 7600 SRLINE, 0 CLA TAD (215 TCHAR CLA TAD (212 TCHAR JMP I SRLINE SRCHBK, 0 DCA TEMP TAD I SRCHBK ISZ SRCHBK CIA TAD TEMP SPA JMP NO CMA TAD I SRCHBK SPA NO, ISZ SRCHBK ISZ SRCHBK CLA TAD TEMP JMP I SRCHBK SRTDC, 0 CLA TDCLP, TAD I SRTDC ISZ SRTDC TCHAR SPA CLA JMP TDCLP JMP I SRTDC PAGE BEGIN, CLA TAD (255 DCA 21 CIF 10 JMS I (7700 10 CIF 10 CALLCD, JMS I (200 5 0 CIF 10 JMS I (IOPEN CIF 10 JMS I (OOPEN SMA CLA JMP OPTION JMS TERR TEXT /OPEN FAILED/ OPTASK, JMS SRLINE JMS SRTDC 4000+"O 4000+"P 4000+"T 4000+"I 4000+"O 4000+"N 4000+"S 4240 4000+"( 4000+"E 4240 4000+"O 4000+"R 4240 4000+"L 4000+") 4240 4000+"? 240 RTCHAR DCA TEM JMS SRLINE CLA TAD TEM JMS SRCH "E JMP EREPLA JMS SRCH "L JMP SETLST JMP OPTASK OPTION, CLA TLS CDF 10 TAD 7643 CDF 0 AND (201 JMS SRCH 200 JMP EREPLA JMS SRCH 1 SKP JMP OPTASK SETLST, CLA TAD (NOP DCA COMENT TAD (NOP DCA REPEAT JMP START1 EREPLA, CLA TAD COMINS DCA COMENT TAD REPINS DCA REPEAT JMP START1 PAGE INTAB, 240 /SPACE INBF1, ZBLOCK INSIZE FIELD 2 *0 0 TABLE, 0 ROBUF, "M "A "C "R "O 2000 -1 240 0 ENDBUF, "M "A "C "E "N "D 2000 -2 240 0 PERSIM, 0



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