File NULL.PA (PAL assembler source file)

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

/NULL HANDLER FOR OS/8
/TVIN HANDLER FOR FORTRAN IV
/
/WRITTEN BY
/	R. W. PHELPS
/	DEPT. RAD. BIOL. & BIOPHYSICS
/	UNIVERSITY OF ROCHESTER MEDICAL CENTER
/	ROCHESTER, NY  14642
/
/DESIGNED FOR USR WITH SUBROUTINE <TV>.  SEE WRITEUP
/UNDER SEPARATE COVER.
/
/	NOTE:  BOTH BUFFERS MUST BE IN THE SAME FIELD.
/		TVIN CAN OPERATE ONLY WITH FORTRAN IV.
/		NULL CAN BE USED TO DUMMY ANY OUTPUT.
/
	*0
	-2
	DEVICE NULL
	DEVICE NULL
	1240
	NULL&177
	ZBLOCK 2
/
	DEVICE NULL
	DEVICE TVIN
	2410
	TVIN&177
	ZBLOCK 2
/
/
	*200
/
/PUT CR AS LAST LOCATION TO FORCE CALLING
/THIS HANDLER FOR NEXT READ REQUEST.
/
/
SBFLD,	0
BFLD,	HLT
	JMP I SBFLD
/
LCR,	TAD BPNTR
K377,	AND (7400
	TAD K377
	DCA KNTR
	TAD (215	/PUT CR IN BUFFER AS LAST CHAR
			/  (3RD CHAR OF LAST SET MUST BE NULL)
	DCA I KNTR
	ISZ PNTR	/POINT TO CHR CTR
	IAC
	AND BPNTR	/ODD OR EVEN?
	TAD (-3		/-2 IF ODD
LCDF,	CDF 0
	DCA I PNTR
/
RETRN,	TAD TVIN
	DCA NULL
	JMP NRETRN
/
/RUBOUT A CHARACTER
/
LRUB,	TAD I TVIN
	CIA
	TAD BPNTR
	SPA SNA CLA	/MORE CHARS TO RUBOUT?
	JMP L3		/NO
	CMA
	TAD BPNTR	/MOVE POINTER BACK
	DCA BPNTR
	JMS SBFLD	/TO BUFFER FIELD
	DCA I BPNTR	/NULL OUT THE CHARACTER
	CDF 0
	TAD BPNTR
	DCA I PNTR
	JMP L3
/
PNTR,	0
KNTR=SBFLD
BPNTR,	0
/
/
NULL,	0
	TAD I NULL	/GET BUFFER FIELD
	AND (70
	TAD LCDF
	DCA BFLD
	ISZ NULL
	TAD I NULL
	JMS ZERO
NRETRN,	ISZ NULL
	ISZ NULL
	ISZ NULL
	JMP I NULL
/
/
TVIN,	0		/ALWAYS CALLED FROM FIELD 0 IN FORTRAN
/
/FIND DSRN UNIT WITH ENTRY POINT 40 (NULL)
/
	TAD (DSRN
	DCA PNTR
	TAD (-11
	DCA KNTR
L1,	TAD I PNTR
	TAD (-5000-NULL
	SNA CLA
	JMP L2
	TAD (11
	TAD PNTR
	DCA PNTR
	ISZ KNTR
	JMP L1
	JMP I (UE	/USER ERROR - NO NULL HANDLER TO
			/  MARK TV BUFFER
/
L2,	ISZ PNTR	/SKIPS HANDLER CODE WORD
	ISZ PNTR
	TAD I PNTR	/GET BUFFER FIELD
	AND (70
	TAD LCDF
	DCA BFLD
	TAD I PNTR
	CIA
	TAD I TVIN
	AND (70
	SZA CLA
	JMP I (UE	/BUFFERS NOT IN SAME FIELD
	ISZ PNTR
	TAD I PNTR	/GET BUFFER LOCATION
	JMS ZERO	/CLEAR JUNK FROM BUFFER
	IAC
	AND I PNTR
	SZA CLA
	ISZ I PNTR	/START IN AN EVEN POSITION
	TAD I PNTR
	DCA BPNTR
	TAD BPNTR	/STUFF BUFFER LOCATION -- TRICK
	ISZ TVIN	/  TO START MASSIO READ AT
	DCA I TVIN	/  THIS LOCATION.
/
L3,	JMS I (HANG	/WAIT FOR A CHARACTER TO BE TYPED
	  KPUHNG
	TAD KBDCHR	/GET THE CHARACTER
	TAD (-377
	SNA
	JMP LRUB	/RUBOUT
	TAD (-215+377
	JMS SBFLD
	SNA CLA
	JMP LCR		/CR - END OF LINE
	TAD KBDCHR
	DCA I BPNTR
	ISZ BPNTR
	CDF 0
	ISZ I PNTR	/BUMP POINTER FOR SCOPE DISPLAY
	JMP L3		/GO DO ANOTHER
/
ZERO,	0		/FILL BUFFER WITH ZERO TO END
	DCA BPNTR
	JMS SBFLD
	DCA I BPNTR
	ISZ BPNTR
	TAD BPNTR
	AND K377
	SZA CLA
	JMP .-5
	CDF 0
	JMP I ZERO
/
/
/
UE=1415			/'DEVICE ERROR'
DSRN=4244
HANG=0524
KPUHNG=0465
KBDCHR=0005
$



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