! WHO.BAS Security program for jobs attached to modems
! JAMES A. JARBOE IV
! 1401 19TH STREET
! HUNTSVILLE, TX 77340
!
! Dear AMOS AIDS,
! This is a simple security program for entry onto your system
! through a modem. The job attached to the modem must be forced
! to run WHO, then just let it sit until someone calls up.
! The first six letters of the variable CODES(x) must be the
! user's name (the variable NAME$). This chains to a command file in
! [2,2] which will log that person into their correct account
! if they use their secret code (SEC$ variable the last four characters
! of CODE$(x)). SECRETCODE is for the operator to get out of WHO if
! there is any need since a control C is error trapped.
! SECRET is the user name and CODE is the user code
! Example of command file to chain to
! ;KLR.CMD logs into KENNETH'S letter writing account
! :S
! SET NOCTRLC
! XY=0
! DEL*
! LOG DSK1:50,50
! :R
! RUN WORDPR
!
!
! Since our programs are menu driven and error trapped, when the
! user exits the menu the WHO program is chained to run for the
! next user who calls.
! WHO.BAS is not a fancy program nor as foolproof as other
! security programs, but it works for us.
!
!
!
ON ERROR GOTO FIX ! traps control C
MAP1 NAME$,S,6 ! user's name and command file to chain to
MAP1 SEC$,S,4 ! user's code
MAP1 PASS$,S,10 ! user's name+code
MAP1 CODES(10),S,10 ! security code names (10) can be changed
CODES(1)="SECRETCODE" ! NAME$+SEC$ must = CODES to pass
CODES(2)="KLR 01 " ! security
CODES(3)="SUE 02 " ! the first six characters are user NAME
CODES(4)="KAREN 03 " ! the last four characters are user CODE
CODES(5)="JAMES 04 "
XCALL NOECHO ! calls noecho so input cannot be seen
TOP:
PRINT TAB(-1,0); ! clears screen
INPUT"Please enter user name ",NAME$
IF NAME$="" THEN GOTO TOP
?:?
INPUT"Please enter user code ",SEC$
PASS$=UCS(NAME$)+SPACE$(6-LEN(NAME$))
SEC$=UCS(SEC$)
IF LEN(NAME$)> 6 THEN GOTO TOP
IF LEN(SEC$)> 4 THEN GOTO TOP
FOR I=1 TO 10 ! 10 must be changed to whatever CODES #'s there are
IF PASS$+SEC$=CODES(I) THEN I=10:NEXT I : GOTO OK
NEXT I
PRINT TAB(20,1);chr$(7);:input"Sorry User not on file CR TO CONTINUE",i$
GOTO TOP
OK:
CHAIN "DSK0:"+NAME$+".CMD[2,2]"
FIX:
RESUME TOP