10 ' *********************************************
20 ' *                                           *
30 ' *   PASSWORD.BAS  -  example program        *
40 ' *                                           *
50 ' *                                           *
60 ' *      by     Robert Hendrix                *
70 ' *             1080 Bouldercrest Dr.         *
80 ' *             Watkinsville, GA              *
90 ' *                                           *
100 '*                                           *
110 '*********************************************
120 '
130 KEY OFF : DIM USERNAME$(15), PASSWORD$(15)
140 '
150 ' ========= ROUTINE TO DISABLE CTRL - BREAK COMBINATION ==================
160 '
170 DEF SEG=0
180 POKE &H6C,&H53
190 POKE &H6D,&HFF
200 POKE &H6E,&H0
210 POKE &H6F,&HF0
220 '
230 '========== OPEN AND READ VALUES FROM PASSWORD FILE ======================
240 '
250 OPEN "I",#1,"filename.dat"
260  FOR X=1 TO 15 : IF EOF(1) THEN 290     ' Set up for 15 user ID's
270 INPUT #1,USERNAME$(X),PASSWORD$(X)
280 NEXT
290 CLOSE #1
300 '
310 '========= ASK USER TO TOGGLE CAPS LOCK ===============================
320 '
330 CLS:LOCATE 25,1 : PRINT "Have you pressed the caps lock key to the ";
340 COLOR 31 : PRINT "ON "; :COLOR 7:PRINT " position (Y or N)?"
350 YESNO$ = INKEY$ : IF YESNO$ = "" THEN 350
360 IF YESNO$ = "Y" THEN 390
370 LOCATE 24,10 : PRINT "It dosen't feel right to me . . try again !";
380 FOR M=1 TO 1250 :NEXT : PRINT SPC(50); : GOTO 330
390 LOCATE 24,1 : PRINT SPC(50):LOCATE 25,1 : PRINT SPC(50)
400 '
410 '========= ASK USER FOR HIS/HER NAME ===================================
420 '
430 CLS : LOCATE 5,5 : INPUT "Please enter your name "; NME$
440 IF NME$="JUNK" THEN END
450 LOCATE 7,5 : PRINT "Thank-you " NME$
460 FOR J=1 TO 850 : NEXT
470 '
480 '========= MATCH NAME ENTERED WITH NAME SAVED FROM PASSWORD FILE ==========
490 '
500 IF NME$="" THEN 540
510 FOR Z=1 TO 15
520 IF NME$ = USERNAME$(Z) THEN 590
530 NEXT Z
540 CLS : LOCATE 5,5 : PRINT "******  INVALID USERNAME ******"
550 FOR N=1 TO 850 : NEXT : GOTO 760
560 '
570 '========= ASK FOR USER'S PASSWORD =======================================
580 '
590 CLS : LOCATE 5,5 : PRINT "Please enter your password "
600 PS$ = INKEY$ : IF PS$ = "" THEN 600
610 IF ASC(PS$) = 13 THEN 660
620 PASSWD$ = PASSWD$ + PS$ : GOTO 600
630 '
640 '======== TEST FOR PASSWORD MATCH =========================================
650 '
660 IF PASSWD$ = PASSWORD$(Z)  THEN 800
670 CLS : LOCATE 5,5 : PRINT " ****  INCORRECT PASSWORD **** " : PASSWD$=""
680 '
690 '========= ALLOW 4 ATTEMPTS TO GET PASSWORD RIGHT ========================
700 '
710 FOR N=1 TO 850 : NEXT : COUNT = COUNT + 1 : IF COUNT < 4 THEN 590
720 FOR N= 1 TO 1250 : NEXT : LOCATE 5,5 : PRINT " Number of attempts exceeds limit!" : COUNT = 0 :  EXCEEDS.ATTEMPTS = 1
730 '
740 ' ============== SET CAPS-LOCK TO 'ON' ===================================
750 '
760 DEF SEG = &H40 : POKE &H17,PEEK(&H17) OR 64 :GOTO 430  ' START AGAIN
770 '
780 ' =========== SUCCESSFUL ENTRY =====================
790 '
800 CLS : SYSTEM
ND
 verify the spelling of an
individual word while cre