; 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