10 'LANGUAGE MASTER (C) 1988 BY NORMAND A. LEVEILLEE M100 Version 50 ON ERROR GOTO 2000 100 DIM E$(25):DIM F$(25):DIM I$(25):DIM N$(30) 110 CLS:GOSUB 3000 200 REM MENU 210 CLS:SC=0:PRINT CHR$(27)"p";:PRINT@49," " 220 PRINT@89," Language Master ";:PRINT@129," by ";:PRINT@169," Normand A. Leveillee " 230 PRINT@209," (C) 1988 ";:PRINT@249," ";:PRINT CHR$(27)"q":FOR D=1TO500:NEXTD:PRINT: 240 PRINTTAB(18-LEN(ID$)/2);"* ";ID$;" *" 250 PRINT 260 PRINT" 1. Study the lesson":PRINT 270 PRINT" 2. Take the test":PRINT 280 PRINT" -> PRESS OFF <-":BEEP 290 PRINT" Type No. & ";:INPUT C$:PRINT 300 CLS 310 IFC$="1"THEN500 320 IFC$="2"THEN1000 330 IFC$="@"THENMENU 340 IFC$<>"1"ORC$<>"2"ORC$<>"@"THEN200ELSE350 350 GOTO200 500 'STUDY 510 CLS:PRINT:PRINT:PRINT:PRINT " There are";X;"items to study.":PRINT:PRINT:PRINT " Learning speed: 1=slow (10s) 520 PRINT" 2=average (5 s)":PRINT" 3=fast (3 s)" 530 PRINT@240,"PRESS to STOP Scrolling" 540 PRINT@280,"Type No. & press ";:INPUTN 550 IF N=1 THEN Z=2000 560 IF N=2 THEN Z=1000 570 IF N=3 THEN Z=500 575 IF N>3 THEN Z=100 580 FOR L2=1TOX 590 READ F$,E$ 600 CLS:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 610 PRINT TAB(20-LEN(F$)/2);F$ 620 PRINT:PRINT 630 PRINT TAB(20-LEN(E$)/2);E$ 640 FOR D=1 TO Z:NEXTD 650 NEXT L2 660 FOR D=1TO500:NEXTD 670 RESTORE 680 GOTO 200 1000 'Practice/Test 1010 CLS:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT" PRACTICE all items or take TEST?":PRINT:INPUT" P or T & ";N$ 1020 IF N$="P"ORN$="p"THEN 1100ELSE1300 1100 REM PRACTICE in ORDER 1110 FOR L3=1TOX 1120 CLS:READ F$,E$ 1130 GOSUB 1800 1140 NEXT L3 1150 IF L3=XTHEN 1500ELSE1500 1300 SEC=VAL(RIGHT$(TIME$,2)):FOR T=1TOSEC:DM=RND(1):NEXTT:REM *** Test Random 1310 FOR L3=1TOX 1320 CLS:S=RND(1)*X+1:FORI=1TOS:READ F$,E$:NEXTI:RESTORE 1330 GOSUB 1800 1340 IF L3=20 THEN 1500 1350 NEXT L3 1500 CLS:'SCORE 1510 LET PC=INT((SC/L3)*100) 1520 PRINT@170,"Your score is ";PC;"%":FOR D=1TO 500:NEXTD 1530 PRINT:PRINT " Type your last name ";:INPUT N$:IFN$=""THEN1530 1540 OPEN "SMARKS.DO" FOR APPEND AS 1:PRINT #1,DATE$;" ";N$;" ";PC;"% ";LEFT$(ID$,8):CLOSE #1 1550 IF PC<70 THEN 1560 ELSE 1700 1560 PRINT:PRINT" You did not pass! Sorry!" 1570 PRINT:PRINT" Review the items and retake the test!":FOR D=1TO500:NEXTD 1580 PRINT:PRINT" PRESS to CONTINUE";:INPUTZ$;:IF Z$=""THEN 500ELSE500 1700 CLS:BEEP:PRINT:PRINT:PRINT " C(ontinue) or E(nd)?":PRINT:PRINT " Type C/E & ";:INPUT Y$ 1710 IF Y$="C"OR Y$="c"THEN 200 ELSE MENU 1750 END 1800 'DISPLAY 1810 T=0 1820 CLS:PRINT:PRINT:PRINT 1830 PRINTTAB(20-LEN(IN$)/2);IN$:PRINT 1840 PRINT:PRINT TAB(20-LEN(E$)/2);E$ 1850 PRINT:PRINTTAB(18-LEN(F$)/2);:INPUT I$ 1860 IF I$<>F$ THEN 1870ELSE 1910 1870 IF I$="@"THEN 200ELSE 1875 1875 T=T+1:IF T<2 THEN 1880 ELSE 1890 1880 PRINT:PRINT" * Try Again *":FOR D=1TO200:NEXTD:GOTO 1840 1890 PRINT:PRINT:PRINT " ** The ANSWER is **":PRINT:PRINTTAB(20-LEN(F$)/2);F$:FOR D=1TO500:NEXTD 1900 PRINT:PRINT" PRESS to CONTINUE";:INPUTZ$:IF Z$=""GOTO1930ELSE1930 1910 PRINT:PRINT:PRINT:PRINT" *** That's CORRECT ***":FOR DELAY=1TO300:NEXT 1920 SC=SC+1 1930 RETURN 2000 'ERROR Trap 2010 IF ERR=>1 OR ERR=<60 THEN CLS:PRINT@246,"PROBLEMS! NOTIFY THE TEACHER!":BEEP:BEEP 2020 FOR D=1TO500:NEXT D:LET EN$="ERROR":OPEN EN$ FOR APPEND AS 1:PRINT #1,ERR:MENU 3500 MENU