530 POKE TABLE,T2: FOR I = 1 TO 12: DRAW 1 AT LE(1) +HK *I,VK: NEXT : FOR I = 1 TO 12: DRAW 1 AT LE(2) +HK *I,2 *VK: NEXT : FOR I = 1 TO 3: DRAW 1 AT 8 +I *9,3 *VK: NEXT
540 REM ROW 3
550 FOR I = 1 TO 12: DRAW 1 AT LE(3) +HK *I,3 *VK: NEXT : FOR I = 1 TO 2: DRAW 1 AT LE(3) +12 *HK +(HK *I)/2,3 *VK: NEXT
560 FOR I = 1 TO 4: DRAW 1 AT 8 +8.8 *I,4 *VK: NEXT : FOR I = 1 TO 11: DRAW 1 AT LE(4) +HK *I,4 *VK: NEXT : FOR I = 1 TO 4: DRAW 1 AT LE(4) +11 *HK +I *HK/2.5,4 *VK: NEXT
570 REM ROW 4
580 DRAW 1 AT 4 *HK +LE(1),5 *VK: FOR I = 1 TO 9: DRAW 1 AT 4 *HK +LE(1) +I *HK/2,5 *VK: NEXT : RETURN
640 VTAB 21: HTAB 1: PRINT L$: PRINT " <- -> TO SELECT <RETURN> TO EXECUTE": PRINT TAB( 4)" UP AND DOWN ARROWS MAY BE USED": PRINT L$;: RETURN : REM PROMPTS
650 FL = 0: FOR K = 1 TO 4:T(K) = Y(K):T$(K) = L$(K):K$(K) = F$(K): NEXT :F$ = "LEFT ": RETURN : REM LEFT HOME KEYS
660 LINE = ( PEEK(4) +1)/2: RETURN : REM CURSOR CHOICE
680 HCOLOR= 0: FOR I = 1 TO LEN(X$):N = ASC( MID$ (X$,I,1)) -31: DRAW N AT C +HK +7 *I,R *VK: DRAW N AT C +1 +HK +7 *I,R *VK: NEXT : HCOLOR= 3: RETURN : REM DOUBLE THICK LETTERS
690 FOR I = 1 TO LEN(X$): DRAW ASC( MID$ (X$,I,1)) -31 AT H +8 *I,V: DRAW ASC( MID$ (X$,I,1)) -31 AT H +1 +8 *I,V: NEXT : RETURN : REM DRAW TEXT
700 FOR I = 1 TO LEN(X$): XDRAW ASC( MID$ (X$,I,1)) -31 AT H +5 *I,V: NEXT : RETURN : REM DRAW TEXT
710 W = 20:X = 120:Y = 260:Z = 150: RETURN : REM BIG BOX
720 HPLOT W,X TO Y,X TO Y,Z TO W,Z TO W,X: FOR I = 1 TO 2: HPLOT W -I,X +I TO W -I,Z +I TO Y -I,Z +I: NEXT : RETURN : REM BIG MESSAGE BOX
730 X$ = "PRESS <RETURN>..."
740 W = 60:X = 165:Y = 215:Z = 185: RETURN : REM <RETURN> BOX
750 HCOLOR= 0: FOR I = X +1 TO Z -1: HPLOT W +1,I TO Y -1,I: NEXT : HCOLOR= 3: RETURN : REM ERASE BOX
760 HCOLOR= 0: FOR I = X +19 TO Z -1: HPLOT W +1,I TO Y -1,I: NEXT : HCOLOR= 3: RETURN : REM ERASE BOX
770 HOME
780 POKE 49232,0: POKE 49239,0: POKE 49234,0: POKE 49237,0: RETURN : REM SWITCH TO GRAPHICS
800 POKE TABLE,T2: FOR J = 1 TO 5: XDRAW 1 AT LE(1),VK: FOR Z = 1 TO 200: NEXT : GOSUB 820: NEXT : DRAW 2 AT LE(1),VK: POKE TABLE,T1:X$ = "ESC":V = VK:H = 11: GOSUB 700: RETURN
1010 HOME : CALL 62450: PRINT TAB( 9)"LEARNING THE HOME KEYS": PRINT : PRINT L$: PRINT TAB( 27)"<ESC> to Menu"
1020 PRINT : PRINT "The keys known as the HOME KEYS are the": PRINT : PRINT "keys upon which your fingers lightly": PRINT : PRINT "rest when not actually typing."
1030 PRINT : PRINT "For your ";: INVERSE : PRINT "LEFT";: NORMAL : PRINT " hand, these keys are": PRINT : PRINT TAB( 15)"A S D F": PRINT : PRINT "and for your ";: INVERSE : PRINT "RIGHT";: NORMAL : PRINT " hand they are": PRINT : PRINT TAB( 15)"J K L ;": PRINT
1040 GOSUB 670: IF X$ = CHR$(27) THEN GOSUB 620: GOTO 950
1050 VTAB 5: HTAB 1: CALL -958: PRINT : PRINT "Follow the instructions given next for": PRINT : PRINT "help in learning the correct position "
1060 PRINT : PRINT "for your fingers in order to learn to": PRINT : PRINT "type.": GOSUB 670: IF X$ = CHR$(27) THEN GOSUB 620: GOTO 950
1070 GOSUB 770: REM GRAPHICS
1080 X$ = "LEARN THE HOME KEYS":V = 3:H = 65: POKE TABLE,T1: GOSUB 690
1090 GOSUB 790: REM MESSAGE BOXES
1100 GOSUB 710:X$ = "THIS IS THE TYPICAL COMPUTER":H = W +2:V = X +5: GOSUB 690:X$ = "KEYBOARD.":V = X +14: GOSUB 690
1110 GOSUB 730:H = W +2:V = X +5: GOSUB 690: GOSUB 830: GOSUB 810: REM PRINT RTN
1140 X$ = "DURING THE DRILL, YOU MAY":H = W +2:V = X +5: GOSUB 690:X$ = "QUIT BY PRESSING <ESC>":V = X +14: GOSUB 690
1150 GOSUB 800: REM <ESC>
1160 GOSUB 730:H = W +2:V = X +5: GOSUB 690
1170 X$ = " OR <ESC>...":V = X +14: GOSUB 690: GOSUB 830: GET X$
1180 IF X$ = CHR$(27) THEN GOSUB 620: GOTO 950
1190 GOSUB 740: GOSUB 750: GOSUB 710: GOSUB 750
1200 REM
1210 REM HOME KEY DRILL
1220 REM
1230 GOSUB 650: REM SET LEFT KEYS
1240 HCOLOR= 3: POKE TABLE,T3: FOR K = 1 TO 4: DRAW 1 AT 20 +187 *(FL = 1) +8 *K,99 -T(K): FOR I = 99 -T(K) +8 TO 115: HPLOT 20 +187 *(FL = 1) +K *8 +1,I TO 20 +187 *(FL = 1) +K *8 +7,I: NEXT : NEXT
1250 IF FLAG = 0 THEN DRAW 2 AT 60,107
1260 IF FLAG = 1 THEN ROT= 48: DRAW 2 AT 207,115: ROT= 0
1270 FOR K = 1 TO 4: REM FOR EACH SET OF HOME KEYS
1280 POKE TABLE,T1:X$ = "PRESS THE '" +T$(K) +"' KEY WITH YOUR ":V = X +5:H = W +2: GOSUB 690:X$ = F$ +K$(K) +" FINGER.":V = X +14: GOSUB 690: GOSUB 830
1290 POKE TABLE,T2: FOR I = 1 TO 5: XDRAW 1 AT FN H(K),3 *VK: NEXT : HCOLOR= 3: DRAW 1 AT FN H(K),3 *VK: POKE TABLE,T1: XDRAW ASC(T$(K)) -31 AT FN H(K),3 *VK
1300 POKE -16368,0
1310 IF PEEK( -16384) >128 THEN X$ = CHR$( PEEK( -16384) -128): GOTO 1330
1320 POKE TABLE,T3: XDRAW 1 AT 20 +187 *(FL = 1) +8 *K,99 -T(K): FOR J = 1 TO 50: NEXT : GOTO 1310
1330 IF X$ = CHR$(27) THEN K = 4: NEXT : GOSUB 650: GOSUB 620: GOTO 950
1520 HOME : PRINT TAB( 12)"HOME KEY DRILL": PRINT : PRINT L$: PRINT "'?'=Help" TAB( 28)"<ESC> to Menu"
1530 FOR I = 1 TO 8: VTAB 10: HTAB 5 +3 *I: PRINT " " + MID$ (HK$,I,1)" ": NEXT
1540 INVERSE : FOR I = 1 TO 5: VTAB 7 +I: HTAB 7: PRINT " ";: HTAB 32: PRINT " ";: NEXT : FOR J = 8 TO 12 STEP 4: FOR I = 7 TO 32: VTAB J: HTAB I: PRINT " ";: NEXT : NEXT : NORMAL : PRINT
1550 VTAB 21: PRINT L$
1560 VTAB 22: HTAB 1: PRINT "Select by pressing the HOME KEY you want";: PRINT "to Practice ";
1570 POKE -16368,0: GET X$
1580 IF X$ = CHR$(27) THEN GOSUB 620: GOTO 950: REM <ESC>
1590 IF X$ = "?" THEN 2570: REM HELP (?)
1600 IF X$ = CHR$(91) THEN 1640
1610 FOR I = 1 TO 8: IF X$ = MID$ (HK$,I,1) THEN LINE = I:I = 8: NEXT : GOSUB 820: GOTO 1650
1620 NEXT
1630 IF X$ >" " THEN X$ = CHR$( ASC(X$) -32): GOTO 1600
1680 ON LINE GOTO 1690,1720,1750,1780,1820,1870,1900,1930
1690 Z$ = "1QAZ": FOR I = 1 TO 4:X$ = MID$ (Z$,I,1)
1700 POKE TABLE,T2: XDRAW 1 AT HK +LE(I), FN A(I) *VK: XDRAW 2 AT HK +LE(I), FN A(I) *VK: POKE TABLE,T1: XDRAW ASC(X$) -31 AT HK +LE(I), FN A(I) *VK: GOSUB 820: NEXT
1710 GOTO 1970
1720 Z$ = "2WSX": FOR I = 1 TO 4:X$ = MID$ (Z$,I,1)
1730 POKE TABLE,T2: XDRAW 1 AT 2 *HK +LE(I), FN S(I) *VK: XDRAW 2 AT 2 *HK +LE(I), FN S(I) *VK: POKE TABLE,T1: XDRAW ASC(X$) -31 AT 2 *HK +LE(I), FN S(I) *VK: GOSUB 820: NEXT
1740 GOTO 1970
1750 Z$ = "3EDC": FOR I = 1 TO 4:X$ = MID$ (Z$,I,1)
1760 POKE TABLE,T2: XDRAW 1 AT HK *3 +LE( FN D(I)), FN D(I) *VK: XDRAW 2 AT 3 *HK +LE( FN D(I)), FN D(I) *VK: POKE TABLE,T1: XDRAW ASC(X$) -31 AT 3 *HK +LE( FN D(I)), FN D(I) *VK: GOSUB 820: NEXT
1770 GOTO 1970
1780 Z$ = "45RTFGVB": FOR I = 1 TO 8:X$ = MID$ (Z$,I,1)
1980 IF LINE <5 THEN F$ = "LEFT": FOR I = 1 TO 4:K$(I) = F$(I): NEXT :F = LINE: GOTO 2000
1990 F$ = "RIGHT": FOR I = 1 TO 4:K$(I) = F$(5 -I): NEXT :F = LINE -4: REM SWAP FINGER NAMES
2000 GOSUB 710: ON F1 GOSUB 710: ON F1 GOSUB 760: ON F1 GOTO 2010:X$ = "THE OUTLINED KEYS ARE YOUR":V = X +5:H = W +3: GOSUB 690:X$ = "DRILL KEYS. TYPE USING ONLY":V = X +14: GOSUB 690
2010 GOSUB 710:X$ = "YOUR " +F$ +" " +K$(F) +" FINGER.":H = W +3:V = X +23: GOSUB 690
2020 IF F1 THEN GOSUB 830: GOTO 2050: REM DON'T PRINT <ESC> AGAIN
2030 GOSUB 740: GOSUB 750:X$ = " <ESC> TO MENU":V = X +5:H = W +3: GOSUB 690: GOSUB 800
2040 X$ = "BEGIN TYPING":V = X +14:H = W +20: GOSUB 690: GOSUB 830:F2 = 1:F1 = 1
2050 POKE -16368,0: GET X$: IF X$ < > CHR$(27) THEN 2070
2060 TEXT : POKE TABLE,T2: FOR I = 1 TO LEN(Z$):X$ = MID$ (Z$,I,1): ON LINE GOSUB 870,880,890,900,910,920,930,940: NEXT :F2 = 0: GOTO 1560
2070 IF X$ > CHR$(96) THEN X$ = CHR$( ASC(X$) -32)
2080 FOR J = 1 TO LEN(Z$): IF X$ = MID$ (Z$,J,1) THEN J = LEN(Z$): NEXT : GOSUB 850: GOTO 2050
2090 NEXT : GOSUB 860: GOTO 2050
2100 REM
2110 REM KEYBOARD TEST
2120 REM
2130 TEXT : HOME : PRINT TAB( 13)"KEYBOARD TEST": PRINT L$: PRINT "'?'=Help" TAB( 27)"<ESC> to Menu": POKE 34,3: HOME
2220 VTAB 22: PRINT L$: PRINT "Type the character that appears in the": PRINT "small box as it appears.";: HTAB 1: VTAB 3: PRINT " ";: REM 8 SPACES IN QUOTES
2360 VTAB 23: HTAB 1: PRINT "Press <RETURN> to Continue...";: POKE -16368,0: GET X$: IF X$ = CHR$(13) THEN 2130
2370 IF X$ = CHR$(27) THEN TEXT : GOSUB 620: GOTO 950
2380 GOSUB 860: GOTO 2360
2390 REM SOUND ROUTINE
2400 DATA 20,29,35,43: REM LEFT EDGE OFFSET FOR EACH KEY ROW
2410 DATA 166,7,173,48,192,165,6,32,168,252,202,208,245,96
2420 DATA A,S,D,F
2430 DATA J,K,L,;
2440 DATA LITTLE,RING,MIDDLE,INDEX
2450 DATA 0,7,9,5
2460 HOME : PRINT TAB( 10)"MAIN MENU HELP SCREEN": PRINT : PRINT L$: POKE 34,5
2470 PRINT : PRINT "The LEARN HOME KEYS selection will ": PRINT : PRINT "teach which keys go with which finger": PRINT : PRINT "on the HOME KEY row."
2480 PRINT : PRINT : PRINT "The HOME FINGER DRILL will exercise ": PRINT : PRINT "each HOME KEY finger over the range": PRINT : PRINT "of keys used by that finger."
2490 PRINT : PRINT : PRINT "The KEYBOARD TEST will provide a 'press": PRINT : PRINT "the right key' drill with scoring.": PRINT : PRINT L$
2500 VTAB 24: HTAB 1: PRINT "Press <RETURN> to Return to Main Menu";: GET X$: TEXT : GOSUB 620: GOTO 950
2510 TEXT : HOME : PRINT TAB( 11)"KEYBOARD TEST HELP": PRINT : PRINT L$
2520 PRINT : PRINT "This is a test of ACCURACY, not speed.": PRINT : PRINT "Each correct response to the framed": PRINT : PRINT "character will cause the same character": PRINT : PRINT "to be printed in the larger box.": PRINT
2530 PRINT : PRINT "An incorrect response will produce a ": PRINT : PRINT "click, and the character will be print-": PRINT : PRINT "ed in INVERSE mode in the large box."
2540 PRINT : PRINT "The score is given at the end of the ": PRINT : PRINT "exercise.": VTAB 23: PRINT L$: VTAB 24: HTAB 1: PRINT "Press <RETURN> to Continue...";: GET X$
2550 VTAB 4: CALL -958: VTAB 6: HTAB 1: PRINT "REMEMBER:": PRINT : PRINT : PRINT "Keep your fingers over the appropriate": PRINT : PRINT "HOME KEYS.": PRINT : PRINT "Take your time. Accuracy is more ": PRINT : PRINT "important than speed."
2560 VTAB 22: PRINT L$: VTAB 23: HTAB 1: PRINT "Press <RETURN> to Continue...";: GET X$: GOTO 2130
2570 HOME : PRINT TAB( 7)"HOME KEY DRILL HELP SCREEN": PRINT : PRINT L$: POKE 34,4
2580 PRINT : PRINT "This drill lets you practice with the": PRINT : PRINT "individual HOME KEYS previously ": PRINT : PRINT "learned. From the horizontal row of": PRINT
2590 PRINT "letters, select the finger you wish to": PRINT : PRINT "practice with by pressing the": PRINT : PRINT "associated HOME KEY."
2600 PRINT : VTAB 23: PRINT L$: VTAB 24: HTAB 1: PRINT "Press <RETURN> to Continue...";: GET X$: HOME
2610 PRINT : PRINT "You may exit the exercise by pressing": PRINT : PRINT "the ESC key while typing. At that ": PRINT : PRINT "point, you may return to the main": PRINT : PRINT "menu or select another finger to ": PRINT : PRINT "practice."
2620 VTAB 23: PRINT L$: VTAB 24: HTAB 1: PRINT "Press <RETURN> to Return to DRILL MENU";: GET X$: TEXT : GOTO 1520
2630 REM
2640 REM ** ONERR DOS ERRORS **
2650 REM
2660 IF PEEK(222) = 6 THEN E$ = "BINARY FILE NOT FOUND ON THIS DISK.": GOTO 2690
2670 IF PEEK(222) = 8 THEN E$ = "DISK I/O ERROR ENCOUNTERED.":E1$ = "CHECK DRIVE DOOR AND RUN PROGRAM AGAIN": GOTO 2690
2680 E$ = "DOS ERROR # "; PEEK(222)" ENCOUNTERED. ":E1$ = "CHECK YOUR DOS MANUAL FOR DETAILS.":