/ROUTINE TO READ A LINE FROM THE TERMINAL, WITH
/NICE ECHOING AND RUBOUT HANDLING.
INPUT,	0
	UND			/TURN OFF ECHO
	STA			/SET KB BREAK
	KSB			/ TO ANYTHING
	CLA
	TAD	KKBBUF		/GET PTR TO KB BUFFER
	DCA	KBPTR		/INIT POINTER
	DCA	DELFLG		/CLEAR RUBOUT FLAG
INLOOP,	KRB			/READ A CHAR
	DCA	INCBUF		/SAVE IT
	TAD	INCBUF		/GET IT BACK
	TAD	RUBOUT		/RUBOUT?
	SNA			/NO, SKIP
	JMP	INPRUB		/PROCESS RUBOUT
	CLA
	TAD	INCBUF
	TAD	ESC33		/MODEL 33 ALTMODE?
	SZA
	JMP	INP1		/NO, SKIP
	TAD	INPESC
	DCA	INCBUF		/REPLACE WITH ASCII ESCAPE
INP1,	CLA
	TAD	INCBUF		/GET CHAR
	DCA	I KBPTR		/PUT IN BUFFER
	ISZ	KBPTR		/INC PTR
	TAD	DELFLG		/CLOSING '\' NEEDED?
	SNA			/YES
	JMP	INP2		/NO, DON'T PRINT IT
	CLA
	TAD	BACKSL		/GET '\'
	TLS			/PRINT IT
	CLA
	DCA	DELFLG		/CLEAR FLAG
INP2,	TAD	INCBUF		/GET CHAR
	JMS	ECHO		/ECHO IT
	TAD	INCBUF
	TAD	CARRET		/CAR RET?
	SNA
	JMP	INPRET
	CLA
	TAD	INCBUF
	TAD	LINFED		/LINE FEED?
	SZA
	JMP	INLOOP		/NO, GET ANOTHER CHAR
INPRET,	DUP			/ECHO BACK ON
	HLT	/DURING DEBUGGING ***
	JMP	I INPUT		/RETURN
/
INPRUB,	TAD	KBPTR		/GET BUFFER PTR
	CIA			/NEGATE
	TAD	KKBBUF		/(KBPTR)=#KBBUF?
	SNA			/NO, NOT AT BEGN OF LINE
	JMP	INLOOP		/YES, IGNORE RUBOUT
	CLA
	TAD	DELFLG		/RUBOUT FLAG SET?
	SZA			/NO, GO PRINT '\'
	JMP	RUB1		/YES, GO ECHO
	ISZ	DELFLG		/SET FLAG
	TAD	BACKSL		/LOAD '\'
	TLS			/PRINT IT
RUB1,	STA
	TAD	KBPTR
	DCA	KBPTR		/DEC KBPTR
	TAD	I KBPTR		/GET CHAR
	JMS	ECHO		/ECHO IT
	JMP	INLOOP		/GET ANOTHER CHAR
/
ECHO,	0
	DCA	INCBUF		/SAVE CHAR TO BE ECHOED
	TAD	INCBUF
	AND	K7540		/CLEAR AC4,AC7-AC11
	SNA			/NOT CTRL CHAR, SKIP
	JMP	ECHOCC		/GO ECHO CTRL CHAR
	CLA
	TAD	INCBUF		/GET CHAR
	TLS			/PRINT IT
	CLA
	JMP	I ECHO		/RETURN
ECHOCC,	TAD	INCBUF		/GET CHAR
	TAD	CARRET		/CAR RET?
	SNA
	JMP	ECHOCR		/PRINT CR/LF
	CLA
	TAD	INCBUF
	TAD	LINFED		/LINE FEED?
	SNA
	JMP	ECHOCR		/PRINT CR/LF
	CLA
	TAD	UPARR
	TLS			/PRINT '^'
	CLA
	TAD	INCBUF
	TAD	K0100		/ADD 64.
	TLS			/PRINT CHAR
	CLA
	JMP	I ECHO
ECHOCR,	TAD	INPCR
	TLS			/PRINT CR
	CLA
	TAD	INPLF
	TLS			/PRINT LF
	CLA
	JMP	I ECHO		/RETURN
/
KKBBUF,	KBBUF
KBPTR,	0
DELFLG,	0
INCBUF,	0
RUBOUT,	-377
CARRET,	-215
LINFED,	-212
ESC33,	-375	/STRANGE MODEL 33 ESCAPE
BACKSL,	"\
K7540,	7540
UPARR,	"^
K0100,	100
DOLSGN,	"$
INPCR,	215
INPLF,	212
INPESC,	233
KBBUF,
$
