;		FSTFLD.SBR - Clean Fast Field Sub-Routine
;
; Original Version : INKEY.M68 Written by Richard Kipp
;					  Constant Care Medical Center
;
; Published in AMUS - 10/83
;
; Modified by INKEY.M68 Jim Barouski, NPI 4/1/87
;
; This subroutine can easily replace ACCEPT.SBR. In fact, it has many more
; benefits that ACCEPT.SBR does not provide. For instance :
;
;	1. NOECHO.SBR is not required
;       2. ECHO.SBR is not required either.
;	3. Provides Fast Field with "Invisible Character Entry"
;		(Similar to Password entry upon account logging)
;	4. On some Terminal Drivers, ^Z will clear a Screen, 
;	   This subroutine will not. (At least not on FLPCOL.TDV)
;	5. Does not make the terminal go bozo when ^Q or ^S (XON,XOFF) is hit.
;	6. Will not "DING" the keyboard if ^G is hit.
;	7. Returns Character and not Character ASCII Value although ASCII
;		value can be obtained from BASIC
;
;	XCALL FSTFLD,char		! Get 1 Character
;	AV=ASC(char)			! Set ASCII value of variable char
;					! into field AV
;
	SEARCH	SYS
	SEARCH	SYSSYM

	VMAJOR=1
	VMINOR=0
	VSUB=1
	VEDIT=100

	OBJNAM	.SBR

	PHDR	-1,PV$RPD!PV$WPD,PH$REU	; Reusable / Read & write to disk

BEGIN:
	CTRLC	REXIT		; on ^C return to BASIC
	JOBIDX	A0		; Move address of Job Control to A0
	MOV	JOBTRM(A0),A2	; Move address of terminal status to A2
	ORW	#3,@A2		; Set image mode & noecho flags
GETCHR:
	TIN			; GET CHaRacter from terminal
MOVCHR:
	INC	A3		; add 4 to Register A3 so that it now
	INC	A3		; points to the absolute address of
	INC	A3		; the variable listed as the first
	INC	A3		; XCALL argument

	MOV	@A3,A4		; move second word of argument list to
				; A4 (move address of variable to A4).
	MOVB	D1,@A4		; MOVe input CHR to BASIC variable
REXIT:
	RTN

	EVEN
	END