10 CLS:CLEAR:PROCa 20 PROCb 30 REPEAT:c%=RND(8):UNTILd%(c%)=1:C%=C%-1 40 e%=RND(20):f%=RND(6):H%=0 50 IFc%<3THENe$=Y$(e%,1) 60 IFc%=3ORc%=4THENe$=Y$(e%,2) 70 IFc%=5ORc%=6THENe$=Y$(e%,3) 80 IFc%>6THENe$=Y$(e%,5) 90 g$=f$(c%,f%) 100 PROCh 110 H%=0:CLS 120 PROCi 130 PRINTTAB(0,5)"WHICH TENSE ? (PRESS NUMBER)"'' 140 FORI%=1TO8 150 IFd%(I%)=1THENPRINTI%;". ";c$(I%)ELSEPRINTI%;"." 160 NEXT 170 X%=GET-48 180 IFX%<1ORX%>8THENGOTO170ELSEIFd%(X%)=0THENGOTO170 190 IFX%=c%THENPROCj:GOTO230 200 k%(c%)=k%(c%)+1 210 H%=H%+1:PROCl:IFH%=3THENGOTO430 220 PRINT''"WRONG - PRESS ANY KEY TO TRY AGAIN":X%=GET:CLS:GOTO120 230 H%=0:CLS 240 PROCi 250 PRINTTAB(0,5)"WHICH PERSON ? (PRESS NUMBER)"'' 260 FORI%=1TO6:PRINTI%;". ";m$(I%):IFI%=3THENPRINT 270 NEXT 280 X%=GET-48:IFX%<1ORX%>8THENGOTO280 290 IFX%=f%THENPROCj:GOTO330 300 k%(c%)=k%(c%)+1 310 H%=H%+1:PROCl:IFH%=3THENGOTO430 320 PRINT''"WRONG - PRESS ANY KEY TO TRY AGAIN":X%=GET:CLS:GOTO240 330 CLS:PRINT'"You were right - ";:PROCi 340 PRINT" is the"'';m$(f%);" ";c$(c%)' 350 PRINT"of the verb "; 360 e$=Y$(e%,1):g$=f$(1,1):E%=0:PROCh:PROCi 370 PRINT'''"The meaning of this verb is "'"'to ";Y$(e%,4);"'"''' 380 IFC%<1THENPRINT"PRESS ANY KEY TO SEE THE RESULTS":X=GET:GOTO540 390 PRINT''"PRESS C TO CONTINUE, R TO RESTART" 400 X%=GET:IFX%=67ORX%=99THENGOTO30 410 IFX%=82ORX%=114THENGOTO10 420 GOTO400 430 CLS:PRINT'"Actually, ";:PROCi 440 PRINT" is the"'';m$(f%);" ";c$(c%)' 450 PRINT"of the verb "; 460 e$=Y$(e%,1):g$=f$(1,1):E%=0:PROCh:PROCi 470 PRINT'''"The meaning of this verb is "'"'to ";Y$(e%,4);"'"''' 480 IFC%<1THENPRINT"PRESS ANY KEY TO SEE THE RESULTS":X=GET:GOTO540 490 PRINT''"PRESS C TO CONTINUE, R TO RESTART" 500 X%=GET:IFX%=67ORX%=99THENGOTO30 510 IFX%=67ORX%=99THENUNTILTRUE:UNTILFALSE 520 IFX%=82ORX%=114THENGOTO10 530 GOTO500 540 CLS:PRINT"ANALYSIS OF PERFORMANCE"'"-----------------------" 550 PRINTTAB(24,4)"MISTAKES" 560 FORI%=1TO8:PRINTc$(I%),k%(I%):NEXT 570 PRINT''"PRESS R TO RESTART OR Q TO QUIT" 580 X%=GET:IFX%=82ORX%=114THENGOTO10 590 IFX%=81ORX%=113THENCLS:OSCLI"BYE":CALL!-4 600 GOTO580 610 DEFPROCb 620 PRINT"PRESS NUMBER KEYS TO SELECT WHICH TENSESTO TEST ON, THEN PRESS C TO CONTINUE" 630 PRINT'':FORI%=1TO8:PRINT;I%;". ";c$(I%):NEXT 640 REPEAT:X%=GET-48 650 IFX%>0ANDX%<9THENIFd%(X%)=0THENCOLOUR129:COLOUR2:PRINTTAB(0,X%+4);X%;". ";c$(X%):PROCn:d%(X%)=1:UNTILTRUE:GOTO640 660 IFX%>0ANDX%<9THENIFd%(X%)=1THENCOLOUR128:COLOUR1:PRINTTAB(0,X%+4);X%;". ";c$(X%):PROCo:d%(X%)=0:UNTILTRUE:GOTO640 670 UNTILX%=19ORX%=51:COLOUR128:COLOUR1 680 FORI%=1TO8:IFd%(I%)=1THENX%=99 690 NEXT:IFX%<>99THENGOTO640 700 INPUTTAB(0,15)"HOW MANY QUESTIONS ";C%:ENDPROC 710 DEFPROCj 720 FORI%=2TO6:SOUND1,-15,I%*8+25,1:NEXT 730 PRINT''"CORRECT - PRESS ANY KEY TO CONTINUE":X=GET 740 ENDPROC 750 DEFPROCl 760 FORI%=6TO2STEP-1:SOUND1,-15,I%*8+20,1:NEXT 770 ENDPROC 780 DEFPROCn 790 SOUND1,-15,20,2 800 ENDPROC 810 DEFPROCo 820 SOUND1,-15,0,2 830 ENDPROC 840 DATA"LU","ELUS","LUS","loose","ELU",0 850 DATA"TIMA","ETIMFS","TIMFS","honour","ETIMA",0 860 DATA"POIE","EPOIFS","POIFS","do","EPOIE",0 870 DATA"DFLO","EDFLWS","DFLWS","show","EDFLO",0 880 DATA"BOFHE","EBOFHFS","BOFHFS","help","EBOFHE",0 890 DATA"DIDASK","EDIDAX","DIDAX","teach","EDIDASK",0 900 DATA"EHEL","FHELFS","EHELFS","wish","FHEL",1 910 DATA"ELAUN","FLAS","ELE","drive","FLAUN",1 920 DATA"KAI","EKAUS","KAUS","burn","EKAI",0 930 DATA"KALE","EKALES","KALE","call","EKALE",0 940 DATA"KELEU","EKELEUS","KELEUS","order","EKELEU",0 950 DATA"KLEPT","EKLEY","KLEY","steal","EKLEPT",0 960 DATA"KOMIZ","EKOMIS","KOMIE","bring","EKOMIZ",0 970 DATA"KRIN","EKRIN","KRINE","judge","EKRIN",0 980 DATA"LEG","ELEX","LEX","say","ELEG",0 990 DATA"MELL","EMELLFS","MELLFS","intend","EMELL",0 1000 DATA"MEN","EMEIN","MENE","remain","EMEN",0 1010 DATA"NEM","ENEIM","NEME","allot","ENEM",0 1020 DATA"TREP","ETREY","TREY","turn","ETREP",0 1030 DATA"TELE","ETELES","TELE","accomplish","ETEL",0 1040 DATA"W","EIV","EI","OMEN","ETE","OUSI" 1050 DATA"OMAI","EI","ETAI","OMEHA","ESHE","ONTAI" 1060 DATA"A","AV","E","AMEN","ATE","AN" 1070 DATA"AMFN","W","ATO","AMEHA","ASHE","ANTO" 1080 DATA"W","EIV","EI","OMEN","ETE","OUSI" 1090 DATA"OMAI","EI","ETAI","OMEHA","ESHE","ONTAI" 1100 DATA"ON","EV","E","OMEN","ETE","ON" 1110 DATA"OMFV","OU","ETO","OMEHA","ESHE","ONTO" 1120 DATA Present Active,Present Middle,Weak Aorist Active,Weak Aorist Middle,Future Active,Future Middle,Imperfect Active,Imperfect Middle 1130 DATA 1st Person Singular,2nd Person Singular,3rd Person Singular,1st Person Plural,2nd Person Plural,3rd Person Plural 1140 DEFPROCh 1150 p$="":q$="":E%=0 1160 FORI%=1TOLENe$:p$=p$+CHR$((ASC(MID$(e$,I%,1))+159)):NEXT 1170 FORI%=1TOLENg$:q$=q$+CHR$((ASC(MID$(g$,I%,1))+159)):NEXT 1180 A=ASC(MID$(p$,LENp$,1)) 1190 IFA<>224ANDA<>228ANDA<>238ANDA<>229THENIFA<>232THENIFA<>244THENIFA<>246THENe$=p$:g$=q$:GOTO1460 1200 B=ASC(MID$(q$,1,1)):C=ASC(MID$(q$,2,1)) 1210 IFB=228THENIFC=232THENB=1 1220 IFB=238THENIFC=244THENB=2 1230 IFB=238THENIFC=232THENB=3 1240 IFB=224THENIFC=232THENB=4 1250 IFA=228THENPROCr 1260 IFA=224THENPROCs 1270 IFA=238THENPROCt 1280 IFA<>228ANDA<>224THENIFA<>238THENe$=p$:g$=q$:GOTO1460 1290 ONCGOTO1300,1310,1320,1340,1350,1370,1390,1410,1430,1450 1300 e$=MID$(p$,1,(LENp$)-1):g$=q$:GOTO1460 1310 e$=p$:g$=CHR$(232)+MID$(q$,2,(LENq$)-1):GOTO1460 1320 e$=MID$(p$,1,LENp$-1) 1330 g$=CHR$(238)+CHR$(244)+MID$(q$,2,(LENq$)-1):GOTO1460 1340 e$=p$:g$=MID$(q$,2,(LENq$)-1):GOTO1460 1350 e$=MID$(p$,1,(LENp$)-1) 1360 g$=CHR$(252)+MID$(q$,3,(LENq$)-2):GOTO1460 1370 e$=MID$(p$,1,(LENp$)-1) 1380 g$=CHR$(252)+MID$(q$,2,(LENq$)-1):GOTO1460 1390 e$=MID$(p$,1,(LENp$)-1) 1400 g$=CHR$(246)+MID$(q$,2,(LENq$)-1):GOTO1460 1410 e$=MID$(p$,1,(LENp$)-1) 1420 g$=CHR$(246)+MID$(q$,3,(LENq$)-1):GOTO1460 1430 e$=MID$(p$,1,(LENp$)-1) 1440 g$=CHR$(254)+MID$(q$,3,(LENq$)-2):GOTO1460 1450 e$=p$:g$=CHR$(232)+MID$(q$,3,(LENq$)-2) 1460 IFD%(e%)<>0THENE%=D%(e%):ENDPROC 1470 A%=ASC(MID$(e$,1,1)) 1480 IFA%=228ORA%=229ORA%=232ORA%=238ORA%=244ORA%=246ORA%>251THENE%=1 1490 ENDPROC 1500 DEFPROCr 1510 IFB<5THENC=1 1520 IFB=229ORB=246ORB=252ORB=253ORB=254THENC=1 1530 IFB=228THENC=2 1540 IFB=238THENC=3 1550 ENDPROC 1560 DEFPROCs 1570 IFB=228ORB=229THENC=4 1580 IFB=1THENC=5 1590 IFB=253THENC=6 1600 IFB=238ORB=246THENC=7 1610 IFB=2THENC=8 1620 IFB=3THENC=9 1630 ENDPROC 1640 DEFPROCt 1650 IFB=228ORB=238THENC=3 1660 IFB=229ORB=246THENC=7 1670 IFB=1ORB=3THENC=10 1680 IFB=253THENC=2 1690 IFB=2THENC=1 1700 ENDPROC 1710 DEFPROCi 1720 IFE%=1THENVDU11;251;8;10 1730 IFE%=2THENVDU11;250;8;10 1740 IFE%=3THENVDU11;9;251;8;8;10 1750 IFE%=4THENVDU11;9;250;8;8;10 1760 PRINTe$;g$; 1770 ENDPROC 1780 DEFPROCa:IFZ%<>23THENCHAIN"!LOADER" 1790 RESTORE840:DIMY$(20,5):DIMD%(100):DIMf$(8,6):DIMk%(8):*FX200,3 1800 FORI%=1TO20:FORN%=1TO5:READY$(I%,N%):NEXT:READD%(I%):NEXT 1810 RESTORE1040:FORI%=1TO8:FORN%=1TO6:READf$(I%,N%):NEXT:NEXT 1820 DIMc$(8):RESTORE1120:FORI%=1TO8:READc$(I%):NEXT 1830 DIMd%(8):DIMm$(6):RESTORE1130:FORI%=1TO6:READm$(I%):NEXT 1840 ENDPROC