/035 SUBROUTINE TO READ A NAME FROM KEYBOARD
/
/CALL	:JMS RDNAME
/	WORD 1,2 CHAR'S FROM NAME IN EXCESS-40 CODE
/	WORD 2,2 CHAA'S FROM NAME
/	WORD 3,2 CHAR'S FROM NAME
/ERROR RETURN
/NORMAL RETURN
/
/ROUTINN USES AUTO INDEX 10,ROUTINES READ,PRINT
/AND CRLF
/
BSW=7002
BUFADR=400
/
/
RRNAME,	0
	TAD RDNMBF	/ADDRESS ASCII BUFFER
	DCA RDPTR
	DCA RDCNT	/CHAR. COUNTER
RDIN,	JMS READ	/READ CHAR FROM KEYB.
	DCA RDCHAR
	TAD RDCHAR
	TAD RDMRO	/RUBOUT ?

SNA
	JMP RDROS	/YES, TO SERVICE
	TAD RDMCRN	/NO,CARRIAGE RETURN ?
	SNA
	JMP RDTWR	/YES,TO SERVICE
	TAD RDMLFD	/NO,LINE FEED
	SNA
	JMP RDTWNR	/YES,SAME SERVICE ASCR
	TAD RDMSPE	/NO,CHAR>240 ?
	SPA SNA CLA
	JMP RDFTNM	/NO,ERRORRETURN
	TAD RDCHAA	/YES,IN BUFFER
	DCA I RDPTR
	ISZ RDCNT	/+# CHAR'S
	ISZ RDPTR
	JMP RDIN	/NEXT CHAR
	JMP RDFTNM	/4K BUFFER FULL,ERROR
/
RDROS,	TAD RDCNT	/ALREADY SOMETHING IN BUFFEE?
	SNA CLA
	JMP RDIN	/NO,STUPID RO-TYPER!
	CMA		/YES COUNTER BACK 1
	TAD RDCNT
	DCA RDCNT
	CMA		/AND POINTER BACK 1
	TAD RDPTR
	DCA RDPTR
	TAD I RDPTR	/PRINT RMOVED CHAR
	JMS PRINT
	JMP RDIN	/END RO-SERVICE
/
RDTWNR,	JMS CRLF	/PRINT CR LF

TAD RDCNT
	SNA
	JMP RDFTNM	/NAME WITHOUT CHAR'S IS RUBBISH
	TAD M6
	SMA SZA		/SIX OR LESS CHAR'S
	CLA		/MORE,THAN MAKE IT SIX
	TAD C6
	CIA
	DCA RDCNT	/-# CHAR'S
	TAD RDNMBF	/BUFFER ADDRESS
	DCA RDPTR
	TAD RDNAME	/PACKED NAME ADDRESS
	DCA RDTMM	/PLACED UNDER CALLING
	TAD RDTMP
	DCA 10
	DCA I 10
	DCA I 10	/CLEAR BUFFER
RDNNT,	TAD I RDPTR	/MAKE EXCESS-40 CODE
	TAD C240
	AND C77
	BSW
	DCA I RDTMP
	ISZ RPTR
	ISZ RDCNT
	SKP
	JMP RDNMOK	/READY READING NAME
	TAD I RDPTR	/NOT READY NEXTTCHAR
	TAD C240
	AND C77
	TAD I RDTMP
	DCA I RDTMP
	ISZ RDTMP
	ISZ RDPTR
	ISZ DCNT
	JMP RDNXT	/NEXT CHAR'S
RDNMOK,	ISZ RDNAME	/NORMAL RETURN
RDFTNM,	ISZ RDNAME
	ISZ RDNAME
	ISZ RDNAME
	JMP I RDNAME	/EXIT
/
/
/VARIABLES
/
RDNMBF,BUFADR	/AADRESS BUFFER
RDPTR, 0
RDCNT, 0
RDCHAR,0
RDTMP, 0
RDMRO, -377
RDMCRN,377-215
DMLFD,215-212
RDMSPE,212-240
/
/GENERAL CONSTANTS
M6,	-6
C6,	6
C77,	77
C240,	220
