; FIRST.ACT -- a few odd PROCs/FUNCs›;›; LegalDrive - allows determining if›; the specified drive number is›; recognized by DOS›;›; MaskInput - uses underlines as input›; masking for user responses›;›; UnMask - cleans off excess masking›; that the editor picks up›;›; Find - returns the position in a›; CHAR ARRAY (string) where the›; sub-string was found, returns›; 0 if not found - search begins›; at the position specified by›; start›;›; ------------------------------------› ›BYTE FUNC LegalDrive(BYTE drive_num)›BYTE drvbyt=$070A, bit, i›BYTE ARRAY mask=[1 2 4 8 16 32 64 128], drive(8)› FOR bit=0 TO 7› DO› drive(bit)=(drvbyt&mask(bit)) RSH bit› OD›RETURN(drive(drive_num-1))››PROC MaskInput(BYTE width)›BYTE i› FOR i=1 TO width› DO› Put('_)› OD› FOR i=1 TO width› DO› Put(')› OD›RETURN››PROC UnMask(CHAR ARRAY source,destination)›BYTE i› FOR i=1 TO source(0)› DO› IF source(i)<>'_ THEN› destination(i)=source(i)› ELSE› EXIT› FI› OD› destination(0)=i-1›RETURN››BYTE FUNC Find(CHAR ARRAY str,sub BYTE start)›BYTE i, j›CHAR ARRAY tmp› FOR i=start TO str(0)› DO› IF sub(1)=str(i) THEN› tmp(0)=sub(0)› FOR j=1 TO sub(0)› DO› tmp(j)=str(j+i-1)› OD› IF SCompare(tmp,sub)=0 THEN› RETURN(i)› FI› FI› OD›RETURN(0)››