1 REM *** TYPING.BA 2 CLS:CLEAR500 3 V1$=CHR$(27)+"p":V0$=CHR$(27)+"q" 4 LINE(5,5)-(234,58),1,B 5 LINE(4,4)-(235,59),1,B 6 O$="St. Petersburg Police Department" 7 PRINT@44,O$ 8 O$="POLICE COMPUTER KEYBOARD TUTOR" 9 PRINT@85,O$ 10 PRINT@139,"By" 11 PRINT@169,"First Master Users Class" 12 PRINT@253,"November 2, 1984 13 PRINTV1$;:FORI=1TO8:X=I*1000 14 SOUNDX,10:READN$:PRINT@211,N$:NEXTI:RESTORE3000 15 PRINTV0$ 20 DATA" SGT. JIM BOOKS " 30 DATA" OFF. JOE CANALI " 40 DATA" JON HOLTZWORTH " 50 DATA" OFF. LENNY LEEDY " 60 DATA" SGT. GARY MITCHELL " 70 DATA" SGT. PAUL MAINS " 80 DATA" DET. BILL WAULK " 90 DATA" OFF. RANDY WESSEL " 100 REM *** ADMINISTRATION *** 110 CLS:MAXFILES=2:CLEAR1000:CALL16959 120 ONERRORGOTO9000 130 RESTORE3000 140 FORN=1TO10:READF$(N),K$(N):NEXTN 160 OPEN"TEST"FORINPUTAS1 170 OPEN"RESULT"FORAPPENDAS2 180 PRINT#2,"TYPING.BA " 190 PRINT#2,DAY$;" ";DATE$;" ";TIME$ 195 PRINT#2," RIGHT WRONG SCORE W.P.M." 200 REM *** QUESTION *** 210 R=0:W=0:A=0:GOSUB1600 220 LINEINPUT#1,Q$ 230 IFEOF(1)THENGOTO800 240 Q$=LEFT$(Q$,79):LQ=LEN(Q$) 260 PRINT@0,Q$ 270 PRINT@80,STRING$(LQ,"_") 300 REM *** ANSWER *** 310 FORI=1TOLQ:P=79+I 320 K$=MID$(Q$,I,1) 325 GOSUB900 330 A$=INKEY$:IFA$=""THENGOTO330 335 IFA$=CHR$(27)THENMENU 340 IFI=1THENGOSUB1400:T1=T 350 IFA$<>K$THENGOSUB500:GOTO330 360 IFA$=K$THENGOSUB400:NEXTI 370 GOSUB1400:T2=T 380 GOSUB2000 390 GOTO1000 400 REM *** RIGHT *** 410 PRINT@P,A$ 420 R=R+1:PRINT@246,""; 430 PRINTUSING"####";R 440 GOSUB600 490 RETURN 500 REM *** WRONG *** 505 BEEP 510 CALL17001:PRINT@P,A$:CALL17006 540 W=W+1:PRINT@259,""; 550 PRINTUSING"####";W 580 GOSUB600 590 RETURN 600 REM *** SCORE *** 610 S=R/(W+R)*100 620 PRINT@272,""; 630 PRINTUSING"####";S;:PRINT"%"; 690 RETURN 800 REM *** END OF PROGRAM *** 810 PRINT#2,TIME$ 820 CLS:PRINT@177,"THE END" 830 BEEP:BEEP:FORI=1TO500:NEXT:MENU 900 REM *** FINGER *** 910 FORN=1TO10 920 X=INSTR(1,K$(N),K$) 930 IFX=0THENNEXTN 940 F$=SPACE$(13) 950 MID$(F$,1)=F$(N) 960 CALL17001 970 PRINT@293,K$:PRINT@296,F$ 980 CALL17006 990 RETURN 1000 REM *** BREAK *** 1010 CALL17001 1020 PRINT@291," (ENTER) " 1030 CALL17006 1040 A$=INKEY$ 1050 IFA$<>CHR$(13)THENGOTO1010 1060 PRINT#2,USING"######";R;W;S;WPM 1090 GOTO 200 1400 REM *** TIME$ TO SECONDS *** 1410 T$=TIME$ 1420 HH$=LEFT$(T$,2):HH=VAL(HH$) 1430 MM$=MID$(T$,4,2):MM=VAL(MM$) 1440 SS$=RIGHT$(T$,2):SS=VAL(SS$) 1450 T=(HH*3600)+(MM*60)+SS 1460 RETURN 1600 REM *** SCREEN *** 1610 CLS:LINE (0,36)-(239,36) 1620 PRINT@240,"Right" 1630 PRINT@253,"Wrong" 1640 PRINT@266,"Score" 1650 CALL17001 1660 PRINT@280,STRING$(11,"*");" ( ) "; 1670 PRINTSPACE$(13);STRING$(11,"*"); 1680 CALL17006 1690 RETURN 2000 REM *** WORDS PER MINUTE *** 2010 TT=T2-T1 2020 WPM=10*(R+W)/TT 2030 PRINT@211,"";:PRINTUSING"##";WPM 2040 PRINT@214,"Words Per Minute" 2060 FORI=1TO1000:NEXTI 2090 RETURN 3000 REM *** KEYS PER FINGER *** 3111 DATA Right Index,6^yYhHnN7&uUjJmM 3112 DATA Left Index,%5tTgGbB$4rRfFvV 3113 DATA Right Middle,*8iIkK< 3114 DATA Left Middle,#3eEdDcC 3115 DATA Right Thumb," " 3116 DATA Left Little,!1qQaAzZ 3117 DATA Right Ring,(9oOlL>. 3118 DATA Right Little,)0pP?/-_[]+= 3119 DATA Left Ring,@2wWsSxX 3120 DATA Left Thumb, 9000 REM *** ERROR TRAP *** 9010 BEEP 9020 IFERR=54ORERR=52THENGOTO9100 9100 CLS:PRINT@175,"FILE ERROR" 9110 PRINT@210,"CHECK DOCUMENTATION" 9120 FORI=1TO1000:NEXT:MENU 9999 END