File IO.SB (8k SABR macro assembler source file)

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

/IO.SB	SPL/8 CHARACTER I/O ROUTINES
/
/
/	IN(DEV):	RETURNS:
/
/	EOL	IF CR-LF
/	EOF	IF ^Z
/	ELSE	RETURNS CHAR
/
///////////////////////////////////////////////
OPDEF	TADI	1400

ABSYM	EOS	-1
ABSYM	EOL	-2
ABSYM	EOF	-3

	ENTRY	IN
IN,	BLOCK	2
	JMS	IARG
	DCA	DEV
	CLA STL RTR	/SET READ
	DCA	RW

RLF,	JMS	IO	/GET THE CHAR
	TAD	(-212	/LF?
	SNA
	JMP	RLF	/YES, IGNORE
	TAD	(-3	/CR?
	SNA
	JMP	REOL	/YES, RETURN EOL
	TAD	(-15	/^Z?
	SNA
	JMP	REOF
	TAD	(232	/NO, RESTORE CHAR
IORT,	RETRN	IN	/RETURN

REOL,	TAD	CEOL
	JMP	IORT

REOF,	TAD	CEOF
	JMP	IORT

////////////////////////////////////////////
/
/	OUT(DEV,CHR) OR OUT(CHR)
/
/	OUTPUT CHARACTER TO DEV ( OR TTY )
/
/	EOL -> CR-LF
/	EOF WILL GO OUT, BUT TRUNCATES FILE
/
////////////////////////////////////////////

	ENTRY	OUT

OUT,	BLOCK	2
	TAD	OUT
	DCA	IN
	TAD	OUT#
	DCA	IN#
	DCA	RW	/SET WRITE
	STA
	TAD	OUT#
	DCA	DEV
	TAD	OUT
	DCA	CFL
CFL,	HLT
	TADI	DEV	/GET PARAM WORD
	AND	(400	/ONE PARAM?
	SZA CLA
	JMP	A2	/NO, GET 2

	CLA IAC	/SET DEV #1
	DCA	DEV
	JMS	IARG	/GET ARG
	JMP	OT

A2,	JMS	IARG
	DCA	DEV
	JMS	IARG

OT,	TAD	(2	/EOL?
	SNA
	JMP	OEOL	/YES
	TAD	CEOL	/NO, RESTORE
	JMS	IO
	JMP	IORT

OEOL,	TAD	(215
	JMS	IO
	TAD	(212
	JMS	IO
	JMP	IORT

IARG,	0	/GET ARG FROM 'IN'
	TAD	IN
	DCA	INFL
INFL,	HLT
	TADI	IN#
	INC	IN#
	DCA	ARGF
	TADI	IN#
	INC	IN#
	DCA	INFL
ARGF,	HLT	/PARAM FIELD
	TADI	INFL	/GET VALUE
	JMP I	IARG	/RETURN VALUE


IO,	0	/DO IO
	AND	(177
	TAD	(200
	DCA	IOTMP
	STA
	TAD	DEV
	AND	(3
	CLL RAR
	RTR
	RTR
	AND	(1400
	TAD	IOTMP
	TAD	RW
	CALL	0,GENIO
	JMP I	IO	/RETURN
IOTMP,	0

CEOL,	EOL
CEOF,	EOF
DEV,	0
RW,	0

	END



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