home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1994-02-05 | 34.9 KB | 1,002 lines
100 REM *********************************************************** 150 REM * RHEMA 1.0 * 200 REM * GREEK VOCABULARY DRILL SYSTEM * 250 REM * * 300 REM * COPYRIGHT 1987 BY DANIEL R. CRIDER * 350 REM * THIS PROGRAM IS RELEASED INTO THE PUBLIC DOMAIN * 400 REM * ON A SHAREWARE BASIS. PLEASE SEND $15 TO DANIEL CRIDER * 450 REM * FOR THE RIGHT TO USE THIS PROGRAM. THIS PROGRAM IS NOT * 500 REM * TO BE RE-SOLD OR RE-RELEASED WITH ANY COMMERCIAL * 550 REM * PACKAGE OR PROGRAM. * 600 REM * FOR NOTICE OF OTHER RIGHTS AND RESTRICTIONS PLEASE * 650 REM * SEE THE FILE RHEMA.DOC WHICH SHOULD BE SUPPLIED WITH * 700 REM * THIS PROGRAM. PLEASE MAIL YOUR PAYMENT AND ANY COMMENTS * 750 REM * TO: * 800 REM * DANIEL CRIDER * 850 REM * 6604 CERVANTES AVE * 900 REM * FT. WORTH, TEXAS 76133 * 950 REM * * 1000 REM ************************************************************ 1050 REM ************ SET UP ARRAYS 1100 CLEAR:DIM LI(30),US(30) 1150 DIM GC(6) 1200 FOR I=1 TO 6:GC(I)=0:NEXT I 1250 ML=0 1300 DIM W1$(12),W2$(12),WD(2,12) 1350 DIM LETT$(30,9),LN$(30),CN$(15) 1400 DIM ACC$(15,3) 1450 DIM EG$(30),GZ$(6) 1500 GOSUB 6050 1550 REM ************ LOAD ALPHABET 1600 PRINT 1650 PRINT TAB(36);"RHEMA 1.0" 1700 PRINT 1750 PRINT TAB(18);" COPYRIGHT 1987 BY DANIEL R. CRIDER" 1800 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 1850 OPEN "I",1,"ALPHA.BAS" 1900 FOR I=1 TO 30 1950 PRINT TAB(15) "PLEASE STANDBY ... LOADING GREEK LETTERS [";I;"]" 2000 GOSUB 6200 2050 FOR J=1 TO 9 2100 LINE INPUT#1,AX$ 2150 LETT$(I,J)=MID$(AX$,13,6) 2200 NEXT J 2250 NEXT I 2300 PRINT 2350 FOR I=1 TO 15 2400 PRINT TAB(15) ".................. LOADING GREEK ACCENTS [";I;"]" 2450 GOSUB 6200 2500 FOR J=1 TO 3 2550 LINE INPUT#1,AX$ 2600 ACC$(I,J)=MID$(AX$,13,6) 2650 NEXT J 2700 NEXT I 2750 PRINT 2800 CLOSE #1 2850 FOR I=1 TO 30:READ LN$(I):NEXT I 2900 FOR I=1 TO 15:READ CN$(I):NEXT I 2950 FOR I=1 TO 30:READ EG$(I):NEXT I 3000 FOR I=1 TO 6:READ GZ$(I):NEXT I 3050 PRINT 3100 PRINT 3150 PRINT TAB(10) "USE A NUMBER FROM 1 TO 10 TO RANDOMIZE THE DRILL ORDER." 3200 PRINT TAB(10) "THE SAME NUMBER EACH TIME WILL GIVE THE SAME DRILL ORDER." 3250 PRINT 3300 INPUT " ENTER A NUMBER FROM 1 TO 10: ",R 3350 IF R<1 OR R>10 THEN 3250 3400 LET R = INT(1+(13*RND(-1))) 3450 REM ************ OPEN VOCABULARY FILE 3500 GOSUB 6050:PRINT 3550 PRINT "_______________________________________________________________________________":PRINT:PRINT 3600 PRINT TAB(10) "[ 1 ] LESSON #1 [ 11 ] LESSON #11" 3650 PRINT TAB(10) "[ 2 ] LESSON #2 [ 12 ] LESSON #12" 3700 PRINT TAB(10) "[ 3 ] LESSON #3 [ 13 ] LESSON #13" 3750 PRINT TAB(10) "[ 4 ] LESSON #4 [ 14 ] LESSON #14" 3800 PRINT TAB(10) "[ 5 ] LESSON #5 [ 15 ] LESSON #15" 3850 PRINT TAB(10) "[ 6 ] LESSON #6 [ 16 ] LESSON #16" 3900 PRINT TAB(10) "[ 7 ] LESSON #7 [ 17 ] LESSON #17" 3950 PRINT TAB(10) "[ 8 ] LESSON #8 [ 18 ] LESSON #18" 4000 PRINT TAB(10) "[ 9 ] LESSON #9 [ 19 ] LESSON #19" 4050 PRINT TAB(9) "[ 10 ] LESSON #10 [ 20 ] LESSON #20" 4100 PRINT 4150 PRINT "_______________________________________________________________________________" 4200 PRINT:PRINT 4250 PRINT "PRESS RETURN ALONE TO DEFAULT TO MAIN VOCABULARY FILE." 4300 PRINT 4350 PRINT "WHAT IS YOUR CHOICE"; 4400 INPUT AX$ 4450 IF AX$="" THEN AX$="VOCAB" 4500 IF AX$="1" THEN AX$="LESSON1":IF AX$="11" THEN AX$="LESSON11" 4550 IF AX$="2" THEN AX$="LESSON2":IF AX$="12" THEN AX$="LESSON12" 4600 IF AX$="3" THEN AX$="LESSON3":IF AX$="13" THEN AX$="LESSON13" 4650 IF AX$="4" THEN AX$="LESSON4":IF AX$="14" THEN AX$="LESSON14" 4700 IF AX$="5" THEN AX$="LESSON5":IF AX$="15" THEN AX$="LESSON15" 4750 IF AX$="6" THEN AX$="LESSON6":IF AX$="16" THEN AX$="LESSON16" 4751 IF AX$="7" THEN AX$="LESSON7":IF AX$="17" THEN AX$="LESSON17" 4800 IF AX$="8" THEN AX$="LESSON8":IF AX$="18" THEN AX$="LESSON18" 4850 IF AX$="9" THEN AX$="LESSON9":IF AX$="19" THEN AX$="LESSON19" 4900 IF AX$="10" THEN AX$="LESSON10":IF AX$="20" THEN AX$="LESSON20" 4950 GOSUB 6200 5000 PRINT "VOCABULARY FILE NAME.....";AX$ 5050 AX$=AX$ + ".GRK" 5100 PRINT "PLEASE STANDBY...SCANNING VOCABULARY FILE" 5150 OPEN "R",#1,AX$,125 5200 FIELD #1,2 AS W1$(1),2 AS W1$(2),2 AS W1$(3),2 AS W1$(4),2 AS W1$(5),2 AS W1$(6),2 AS W1$(7),2 AS W1$(8),2 AS W1$(9),2 AS W1$(10),2 AS W1$(11),2 AS W1$(12),101 AS Y5$ 5250 FIELD #1,24 AS Y4$,2 AS W2$(1),2 AS W2$(2),2 AS W2$(3),2 AS W2$(4),2 AS W2$(5),2 AS W2$(6),2 AS W2$(7),2 AS W2$(8),2 AS W2$(9),2 AS W2$(10),2 AS W2$(11),2 AS W2$(12),2 AS KG$, 65 AS DF$ 5300 LR=1 5350 DL=0 5400 GET #1,LR 5450 GZ=CVI(KG$) 5500 GC(GZ)=GC(GZ)+1 5550 IF EOF(1) GOTO 5800 5600 WD(2,1)=CVI(W2$(1)) 5650 IF WD(2,1)=99 THEN DL=DL+1 5700 LR=LR+1 5750 GOTO 5400 5800 LR=LR-1 5850 GOTO 6500 5900 REM ************ RING BELL CODE 5950 PRINT CHR$(7);CHR$(7); 6000 RETURN 6050 REM ************ CLEAR SCREEN CODE 6100 PRINT CHR$(26) 6150 RETURN 6200 REM ************ CURSOR UP SCREEN CODE 6250 PRINT CHR$(11); 6300 RETURN 6350 REM ************ CURSOR DOWN SCREEN CODE 6400 PRINT CHR$(10); 6450 RETURN 6500 REM ************ DISPLAY MENU 6550 REM ************* RESET SOME VARIABLES BEFORE MENU DISPLAY 6600 LM$="N" 6650 SX$="" 6700 TX=0 6750 SU=0 6800 GOSUB 6050 6850 PRINT TAB(22);"CURRENTLY ";LR-DL;" VOCABULARY WORDS ON FILE" 6900 PRINT 6950 PRINT 7000 PRINT TAB(35);"RHEMA 1.0" 7050 PRINT TAB(25);"GREEK VOCABULARY DRILL SYSTEM" 7100 PRINT TAB(35);"MASTER MENU" 7150 PRINT 7200 PRINT TAB(25);"1-- ADD NEW WORDS TO VOCABULARY" 7250 PRINT TAB(25);"2-- REVIEW LAST X WORDS" 7300 PRINT TAB(25);"3-- REVIEW ENTIRE VOCABULARY" 7350 PRINT TAB(25);"4-- REVIEW ENTIRE VOCABULARY--" 7400 PRINT TAB(25);" --CONCENTRATE ON LAST X WORDS" 7450 PRINT TAB(25);"5-- PRINT VOCABULARY" 7500 PRINT TAB(25);"6-- CORRECT VOCABULARY" 7550 PRINT TAB(25);"7-- END PROGRAM" 7600 PRINT 7650 PRINT 7700 PRINT TAB(28);"PLEASE ENTER YOUR CHOICE "; 7750 INPUT M 7800 IF M>7 OR M<1 THEN 7700 7850 IF M=1 OR M>4 THEN 8450 7900 PRINT:PRINT "DO YOU WISH TO LIMIT YOUR DRILL TO A PARTICULAR TYPE OF SPEECH? "; 7950 INPUT LM$ 8000 IF LM$<>"Y" AND LM$<>"N" THEN 7900 8050 IF LM$="N" THEN 8450 8100 PRINT:PRINT 8150 PRINT "ENTER YOUR SELECTED WORD TYPE TO DRILL" 8200 PRINT "1. VERBS 2. NOUNS 3. PRONOUNS 4. ADJECTIVES 5. ADVERBS 6. OTHER" 8250 PRINT "ENTER YOUR CHOICE 1-6 "; 8300 INPUT LM 8350 IF LM<1 OR LM>6 THEN 8250 8400 IF GC(LM)=0 THEN GOSUB 5900:PRINT "BUT YOU DON'T HAVE ANY ";GZ$(LM);"S ON FILE YET!":PRINT:GOTO 8150 8450 ON M GOTO 8850,22550,23950,27850,38050,30450,8500 8500 REM ************ END PROGRAM 8550 PRINT "READY TO QUIT? (Y OR N) "; 8600 INPUT X$ 8650 IF X$<>"Y" AND X$<>"N" THEN 8550 8700 IF X$="N" THEN 6500 8750 CLOSE #1 8800 END 8850 REM ************ ADD NEW WORDS TO VOCABULARY 8900 FZ$="" 8950 IF SU=1 THEN 9950 9000 GOSUB 6050 9050 INPUT " DO YOU WANT MENUS? (Y OR N) ";MX$ 9100 MN$="ON" 9150 IF MX$<>"Y" AND MX$<>"N" THEN 9050 9200 IF MX$="N" THEN MN$="OFF" 9250 PRINT:PRINT 9300 PRINT " ENTER YOUR CHOICE OF LOADING SET-UPS" 9350 PRINT 9400 PRINT " 1.--STANDARD LOAD" 9450 PRINT " 2.--QUICK LOAD BY LETTER NUMBER" 9500 PRINT " 3.--TRANSLITERATION LOAD" 9550 PRINT 9600 PRINT:PRINT " ENTER YOUR CHOICE 1, 2, OR 3"; 9650 INPUT X 9700 IF X>3 THEN 9300 9750 IF X=0 THEN 6500 9800 IF X=1 THEN QK$="N":TL$="N" 9850 IF X=2 THEN QK$="Y":TL$="N" 9900 IF X=3 THEN QK$="N":TL$="Y" 9950 GOSUB 6050 10000 SU=1 10050 REM ************ SET UP LETTERS 10100 FOR J=1 TO 12:WD(2,J)=29:NEXT J 10150 IF TL$="Y" THEN 12300 10200 PRINT "ENTER NUMBER OF LETTERS PLEASE (ENTER 0 TO RETURN TO MENU) "; 10250 INPUT WL 10300 IF WL=0 THEN 6500 10350 IF WL<13 THEN 11450 10400 PRINT "LIMIT IS 12 LETTERS" 10450 REM **** RESET SPACES AND TABS 10500 SX$="" 10550 TX=0 10600 GOTO 10200 10650 REM ************ LETTER SELECT MENU 10700 GOSUB 6050 10750 EL$="" 10800 PRINT "SELECT YOUR LETTERS BY NUMBER" 10850 IF MN$="OFF" THEN RETURN 10900 PRINT " 1. ALPHA A 11. LAMBDA L 21. PHI PH" 10950 PRINT " 2. BETA B 12. MU M 22. CHI CH" 11000 PRINT " 3. GAMMA G 13. NU N 23. PSI PS" 11050 PRINT " 4. DELTA D 14. XI X 24. OMEGA O" 11100 PRINT " 5. EPSILON E 15. OMICRON O 25. ALPHA IOTA DIPTHONG" 11150 PRINT " 6. ZETA Z 16. PI P 26. ETA IOTA DIPTHONG" 11200 PRINT " 7. ETA E 17. RHO R 27. OMEGA IOTA DIPTHONG" 11250 PRINT " 8. THETA TH 18. SIGMA S 28. BLANK (NO LETTER)" 11300 PRINT " 9. IOTA I 19. TAU T 29. HYPHEN -" 11350 PRINT "10. KAPPA K 20. UPSILON U 30. CORRECT LAST LETTER" 11400 RETURN 11450 REM ************ LETTER DRIVER 11500 EL$="" 11550 IX=0 11600 TX=0 11650 SX$="" 11700 FOR J=1 TO 12 11750 WD(1,J)=15 11800 NEXT J 11850 IF QK$="Y" THEN 14900 11900 FOR WX=1 TO WL STEP 1 11950 IX=IX+1 12000 GOSUB 10650 12050 GOSUB 46550 12100 GOSUB 47300 12150 IF IZ=30 THEN 16400 12200 NEXT WX 12250 GOTO 17100 12300 REM TRANSLITERATION LOAD ****************************** 12350 GOSUB 6050:PRINT "TRANSLITERATION LOAD" 12400 GOSUB 10850 12450 PRINT :PRINT "ENTER THE GREEK WORD IN TRANSLITERATED ENGLISH" 12500 PRINT "USE THE LETTERS IN THE ABOVE MENU. IF A ROUGH BREATHING-MARK 12550 PRINT "IS NEEDED, THEN PLACE AN H BEFORE THE FIRST LETTER IF THE WORD" 12600 PRINT "STARTS WITH A VOWEL (LIKE HODOS); OR AFTER THE FIRST LETTER IF 12650 PRINT "THE WORD STARTS WITH A CONSONANT (LIKE RHEMA)." 12700 PRINT:INPUT "ENTER YOUR WORD ";AX$ 12750 EL$="" 12800 WL=LEN(AX$):FOR J=1 TO 12:WD(1,J)=15:WD(2,J)=0:NEXT J 12850 IX=0:IF WL=0 THEN 6500 12900 WX=1 12950 X$=MID$(AX$,WX,1) 13000 IX=IX+1 13050 IF IX>12 THEN PRINT "NUMBER OF GREEK LETTERS EXCEEDS 12":GOSUB 5900:PRINT "RE-ENTER WORD FROM SCRATCH":GOTO 12700 13100 IF X$="H" AND IX=1 THEN WD(1,1)=2: IX=IX-1:WL=WL-1:GOTO 14700 13150 IF X$="H" AND IX=2 THEN WD(1,1)=2: IX=IX-1:WL=WL-1:GOTO 14700 13200 IF X$="T" AND MID$(AX$,WX,2)="TH" THEN WD(2,IX)=8:WL=WL-1:WX=WX+1:GOTO 14700 13250 IF X$="P" AND MID$(AX$,WX,2)="PH" THEN WD(2,IX)=21:WL=WL-1:WX=WX+1:GOTO 14700 13300 IF X$="C" AND MID$(AX$,WX,2)="CH" THEN WD(2,IX)=22:WL=WL-1:WX=WX+1:GOTO 14700 13350 IF X$="P" AND MID$(AX$,WX,2)="PS" THEN WD(2,IX)=23:WL=WL-1:WX=WX+1:GOTO 14700 13400 IF X$="N" AND MID$(AX$,WX,2)="NG" THEN WD(2,IX)=3:GOTO 14700 13450 IF X$="A" THEN WD(2,IX)=1 13500 IF X$="B" THEN WD(2,IX)=2 13550 IF X$="G" THEN WD(2,IX)=3 13600 IF X$="D" THEN WD(2,IX)=4 13650 IF X$="E" THEN WD(2,IX)=5 13700 IF X$="E" AND WD(2,IX-1)=28 THEN WD(2,IX)=7 13750 IF X$="E" AND IX=WL THEN WD(2,IX)=7 13800 IF X$="Z" THEN WD(2,IX)=6 13850 IF X$="I" THEN WD(2,IX)=9 13900 IF X$="K" OR X$="C" THEN WD(2,IX)=10 13950 IF X$="L" THEN WD(2,IX)=11 14000 IF X$="M" THEN WD(2,IX)=12 14050 IF X$="N" THEN WD(2,IX)=13 14100 IF X$="X" THEN WD(2,IX)=14 14150 IF X$="O" AND IX<>WL THEN WD(2,IX)=15 14200 IF X$="O" AND IX=WL THEN WD(2,IX)=24 14250 IF X$="O" AND IX=WL AND WD(2,IX-1)=28 THEN WD(2,IX)=15 14300 IF X$="P" THEN WD(2,IX)=16 14350 IF X$="R" THEN WD(2,IX)=17 14400 IF X$="S" THEN WD(2,IX)=18 14450 IF X$="T" THEN WD(2,IX)=19 14500 IF X$="U" THEN WD(2,IX)=20 14550 IF X$="-" THEN WD(2,IX)=29 14600 IF X$=" " OR X$="" THEN WD(2,IX)=28 14650 IF WD(2,IX)=0 THEN GOSUB 5900:PRINT "ILLEGAL LETTER ";X$;" RE-ENTER":GOTO 12700 14700 WX=WX+1:IF IX<WL THEN 12950 14750 FOR WX=1 TO WL:IZ=WD(2,WX):GOSUB 47950:NEXT WX 14800 FOR WX=WL+1 TO 12:WD(2,WX)=29:NEXT WX 14850 GOTO 17100 14900 REM QUICK LOAD LETTERS ******************************** 14950 GOSUB 10650 15000 PRINT 15050 PRINT "ENTER ALL LETTERS IN 2-DIGIT CODES SEPARATED BY COMMAS OR PERIODS." 15100 PRINT 15150 LINE INPUT L$ 15200 IF LEN(L$)<>WL*3-1 THEN PRINT "WRONG NUMBER OF LETTERS":GOSUB 5900:GOTO 15150 15250 IL=1 15300 FOR WX=1 TO WL STEP 1 15350 IX=IX+1 15400 IZ$=MID$(L$,IL,2) 15450 IL=IL+3 15500 I2=IZ 15550 IZ=VAL(IZ$) 15600 IF IZ=28 AND I2=28 THEN 16000 15650 IF IZ=28 AND IX=1 THEN 16200 15700 IF IZ<1 OR IZ>28 THEN PRINT "INVALID CODE ENTERED FOR LETTER ";IX 15750 IF IZ<1 OR IZ>28 THEN GOSUB 5900 15800 IF IZ<1 OR IZ>28 THEN 15000 15850 GOSUB 47950 15900 NEXT WX 15950 GOTO 17100 16000 REM DOUBLE BLANKS 16050 PRINT "DOUBLE BLANKS ARE NOT ALLOWED" 16100 GOSUB 5900 16150 GOTO 15000 16200 REM LEADING BLANK 16250 PRINT "YOUR FIRST LETTER CAN NOT BE A BLANK" 16300 GOSUB 5900 16350 GOTO 15000 16400 REM ************ FIX LAST LETTER 16450 IF IX=1 THEN PRINT "THIS IS YOUR FIRST LETTER":GOTO 12100 16500 PRINT "WOULD YOU LIKE TO CHANGE LETTER NUMBER ";IX-1;" WHICH IS NOW" 16550 Z=WD(2,WX-1) 16600 PRINT LN$(Z) 16650 FOR J=1 TO 9:PRINT LETT$(Z,J) 16700 NEXT J 16750 INPUT "ENTER Y TO CHANGE, N TO KEEP ";AX$ 16800 IF AX$<>"Y" AND AX$<>"N" THEN 16750 16850 IF AX$="N" THEN 12000 16900 WX=WX-1 16950 WD(2,WX)=29 17000 IX=IX-1 17050 GOTO 12000 17100 REM ************ CHECK ALL LETTERS 17150 WX=1 17200 IF IZ=18 THEN ID=21 17250 WD(2,WL)=ID 17300 GOSUB 6050 17350 GOSUB 45600 17400 PRINT "ARE LETTERS CORRECT? "; 17450 INPUT AX$ 17500 IF AX$<>"Y" AND AX$<>"N" THEN 17400 17550 IF TL$="Y" AND AX$="Y" THEN 19950 17600 IF AX$="Y" THEN 19750 17650 PRINT TAB(25);"PLEASE CHOOSE ONE OF THE FOLLOWING:" 17700 PRINT TAB(25);" 1. ABORT-RETURN TO MAIN MENU" 17750 PRINT TAB(25);" 2. RETRY THIS WORD FROM SCRATCH" 17800 PRINT TAB(25);" 3. FIX THIS WORD" 17850 INPUT "ENTER 1, 2 OR 3";X 17900 IF X<1 OR X>3 THEN 17850 17950 ON X GOTO 6500,10050,18050 18000 IF AX$="Y" THEN 19750 18050 REM ************ FIX SOME LETTER 18100 GOSUB 18200 18150 GOTO 17300 18200 REM ************ LETTER REPAIR SUBROUTINE 18250 PRINT "ENTER LETTER NUMBER TO FIX (1 IS FAR LEFT ";WL;" IS FAR RIGHT) "; 18300 INPUT IX 18350 IF IX=0 THEN RETURN 18400 IF IX>WL THEN GOSUB 5900:PRINT "YOU ONLY HAVE ";WL;" LETTERS IN THIS WORD":GOTO 18250 18450 WX=IX 18500 PRINT "WOULD YOU LIKE TO CHANGE LETTER NUMBER ";IX;" WHICH IS NOW" 18550 Z=WD(2,WX) 18600 PRINT LN$(Z) 18650 FOR J=1 TO 9:PRINT LETT$(Z,J) 18700 NEXT J 18750 INPUT "ENTER Y TO CHANGE, N TO KEEP ";AX$ 18800 IF AX$<>"Y" AND AX$<>"N" THEN 18750 18850 IF AX$="N" THEN 18250 18900 WD(2,WX)=29 18950 GOSUB 10650 19000 GOSUB 47300 19050 IF WX=WL AND IZ=18 THEN ID=21 19100 WD(2,WX)=ID 19150 RETURN 19200 REM ************ SELECT ACCENTS MENU 19250 GOSUB 6050 19300 PRINT "SELECT YOUR ACCENTS AND SPECIAL MARKS BY NUMBER" 19350 IF MN$="OFF" THEN RETURN 19400 PRINT "1. SMOOTH BREATH 6. DIAERSIS 11. ROUGH + ACUTE" 19450 PRINT "2. ROUGH BREATH 7. SMOOTH + GRAVE 12. ROUGH + CIRC." 19500 PRINT "3. ACUTE 8. SMOOTH + ACUTE 13. CORONIS" 19550 PRINT "4. CIRCUMFLEX 9. SMOOTH + CIRC. 14. APOSTROPHE" 19600 PRINT "5. GRAVE 10. ROUGH + GRAVE 15. BLANK (NO MARK OR ACCENT)" 19650 PRINT 19700 RETURN 19750 REM ************ SELECT ACCENTS 19800 FOR J=1 TO 12 19850 WD(1,J)=15 19900 NEXT J 19950 IX=0 20000 GOSUB 19200 20050 GOSUB 45600 20100 PRINT "LETTER NUMBER TO PLACE MARK OR ACCENT OVER (1=LEFT ";WL;"=FAR RIGHT ;99=QUIT)" 20150 INPUT IX 20200 IF IX=99 THEN 20800 20250 IF IX<=WL THEN 20500 20300 GOSUB 5900 20350 PRINT "YOU HAVE ONLY ";WL;" LETTERS IN THIS WORD" 20400 FOR I=1 TO 400:NEXT I 20450 GOTO 20000 20500 PRINT "ENTER ACCENT OR MARK NUMBER FOR LETTER NUMBER ";IX;" - ";LN$(WD(2,IX)) 20550 INPUT IZ 20600 IF IZ=0 THEN GOSUB 6050:GOSUB 19400:GOTO 20500 20650 IF IZ<1 OR IZ>16 THEN 20600 20700 WD(1,IX)=IZ 20750 GOTO 20000 20800 REM ************ FINAL ACCENTS CHECK 20850 GOSUB 45600 20900 PRINT 20950 PRINT "ARE ALL ACCENTS CORRECT? (Y OR N) " 21000 INPUT AX$ 21050 IF AX$<>"Y" AND AX$<>"N" THEN 20950 21100 IF AX$="N" THEN 20000 21150 GOSUB 43700 21200 IF FZ$="REPAIR" THEN RETURN 21250 GOTO 8850 21300 REM **************** COMPUTE JZ ********************* 21350 JZ=RX 21400 IF RX>30 THEN JZ=30 21450 IF LR<30 THEN JZ=LR-10 21500 IF LM$="Y" AND GT>=30 THEN JZ=20 21550 IF LM$="Y" AND GT<30 THEN JZ=10 21600 IF JZ<5 THEN JZ=5 21650 RETURN 21700 REM ******** LIMITING OFF ********* 21750 GOSUB 5900 21800 PRINT "NOT ENOUGH WORDS OF TYPE ";GZ$(LM);" IN REVEIW AREA " 21850 PRINT "TO LIMIT DRILL TO." 21900 PRINT "********** LIMITING TURNED OFF *********" 21950 INPUT "STRIKE THE RETURN KEY TO CONTINUE ";AX$ 22000 LM$="N" 22050 RETURN 22100 REM ************** VOCABUALRY SCAN ********** 22150 GT=0 22200 PRINT "STANDBY FOR VOCABULARY SCAN" 22250 FOR I=LR-RX TO LR 22300 GET #1,I 22350 GZ=CVI(KG$) 22400 IF GZ=LM THEN GT=GT+1 22450 NEXT I 22500 RETURN 22550 REM ************ REVIEW LAST X WORDS 22600 GOSUB 6050 22650 PRINT "ENTER THE NUMBER OF YOUR MOST RECENT VOCABULARY WORDS YOU WISH TO REVIEW" 22700 INPUT "ENTER A 0 TO RETURN TO THE MAIN MENU ";RX 22750 IF RX=0 THEN 6500 22800 IF LM$="N" THEN 22950 22850 GOSUB 22100 22900 IF GT<15 THEN GOSUB 21700 22950 FOR I=1 TO 30:US(I)=0:LI(I)=0:NEXT I:UL=0:ML=0 23000 SS=0:SR=0 23050 GOSUB 21300 23100 PRINT "ENTER [ MENU ] IN PLACE OF THE DEFINITION TO RETRUN TO MAIN MENU." 23150 PRINT "ENTER SCORE FOR YOUR SCORE" 23200 I=INT(RND*15)+1 23250 IF I>4 AND I<8 THEN 23750 23300 TR=INT(RND*RX)+1 23350 TR=TR+(LR-RX) 23400 FOR I=1 TO JZ 23450 IF US(I)=TR THEN 23300 23500 NEXT I 23550 GOSUB 29300 23600 IF LM$="Y" AND GZ<>LM THEN 23300 23650 GOSUB 25850 23700 GOTO 23200 23750 REM ********** CALL MISS LIST ****** 23800 GOSUB 25150 23850 IF TR=RW THEN 23300 23900 GOTO 23200 23950 REM ************ REVIEW ENTIRE VOCABULARY 24000 FOR I=1 TO 30:US(I)=0:LI(I)=0:NEXT I:UL=0:ML=0 24050 SS=0:SR=0 24100 RX=30 24150 IF LM$="N" THEN 24350 24200 GT=GC(LM) 24250 IF GT<15 THEN GOSUB 21700 24300 GOSUB 21300 24350 PRINT "ENTER [ MENU ] IN PLACE OF THE DEFINTION TO RETURN TO MAIN MENU." 24400 PRINT "ENTER SCORE FOR YOUR SCORE" 24450 I=INT(RND*15)+1 24500 IF I>4 AND I<8 THEN 24950 24550 TR=INT(RND*LR)+1 24600 FOR I=1 TO JZ 24650 IF US(I)=TR THEN 24450 24700 NEXT I 24750 GOSUB 29300 24800 IF LM$="Y" AND GZ<>LM THEN 24550 24850 GOSUB 25850 24900 GOTO 24450 24950 REM ********** CALL MISS LIST ****** 25000 GOSUB 25150 25050 IF TR=RW THEN 24550 25100 GOTO 24450 25150 REM ************ GET ONE OFF OF MISS LIST 25200 IF ML=0 THEN RETURN 25250 MM=1 25300 I=INT(RND*ML)+1 25350 TR=LI(I) 25400 MI=I 25450 GOSUB 29300 25500 GOSUB 25850 25550 MM=0 25600 RETURN 25650 REM SCORE ********************************************** 25700 PRINT "OUT OF ";SS-1;" WORDS YOU HAVE GOTTEN ";SR;" RIGHT FOR A" 25750 PRINT "GRADE OF ";((SR/(SS-1))*100) 25800 RETURN 25850 REM ******************** TRY THE WORD ************************** 25900 SS=SS+1 25950 UL=UL+1 26000 IF UL=LR THEN FOR I=1 TO 30:US(I-1)=0:NEXT I:UL=0 26050 IF UL=JZ THEN FOR I=2 TO JZ:US(I-1)=US(I):NEXT I:UL=UL-1 26100 US(UL)=TR 26150 GOSUB 6050 26200 IF SS<>1 THEN PRINT "GRADE CURRENTLY ";INT((SR/(SS-1))*100) 26250 GOSUB 45600 26300 PRINT 26350 PRINT "DEFINITION IS..."; 26400 INPUT AX$ 26450 IF AX$="OR" OR AX$="**OR**" THEN 26400 26500 IF AX$="SCORE" THEN GOSUB 25650:GOTO 26300 26550 IF AX$="MENU" THEN 6500 26600 IF AX$="" OR AX$=" " THEN 27200 26650 X=INSTR(DF$,AX$) 26700 IF X=0 THEN 27200 26750 PRINT "*** CORRECT *** ";DF$ 26800 IF MA=0 THEN SR=SR+1 26850 IF MM=0 THEN 27000 26900 FOR IJ=MI TO ML-1:LI(IJ)=LI(IJ+1):NEXT IJ 26950 ML=ML-1 27000 FOR I=1 TO 500:NEXT I 27050 IF MA<>0 THEN MA=MA-1:GOTO 26150 27100 GOTO 27150 27150 RETURN 27200 PRINT "*** INCORRECT ANSWER ***" 27250 GOSUB 5900 27300 MA=1 27350 RW=TR 27400 IF KY$="N" THEN MA=1 27450 PRINT "DEFINITION IS...";DF$ 27500 ML=ML+1 27550 IF ML>30 THEN ML=30 27600 LI(ML)=TR 27650 PRINT "STRIKE ANY KEY TO CONTINUE" 27700 X$=INKEY$ 27750 IF X$="" THEN 27700 27800 GOTO 25850 27850 REM ************ REVIEW ENTIRE VOCABULARY--CONCENTRATE ON LAST X WORDS 27900 GOSUB 6050 27950 PRINT "ENTER THE NUMBER OF YOUR MOST RECENT VOCABULARY WORDS YOU WISH TO REVIEW" 28000 INPUT "ENTER A 0 TO RETURN TO THE MAIN MENU ";RX 28050 IF RX=0 THEN 6500 28100 FOR I=1 TO 30:US(I)=0:LI(I)=0:NEXT I:UL=0:ML=0 28150 SS=0:SR=0 28200 IF LM$="N" THEN 28400 28250 GOSUB 22100 28300 IF GT<15 THEN GOSUB 21700 28350 GOSUB 21300 28400 PRINT "ENTER HALT TO RETURN TO MAIN MENU" 28450 PRINT "ENTER SCORE FOR YOUR SCORE" 28500 I=INT(RND*15)+1 28550 IF I>4 AND I<8 THEN 29100 28600 IF I>7 AND I<10 THEN TR=INT(RND*LR)+1:GOTO 28750 28650 TR=INT(RND*RX)+1 28700 TR=TR+(LR-RX) 28750 FOR I=1 TO JZ 28800 IF US(I)=TR THEN 28650 28850 NEXT I 28900 GOSUB 29300 28950 IF LM$="Y" AND GZ<>LM THEN 28650 29000 GOSUB 25850 29050 GOTO 28500 29100 REM ********** CALL MISS LIST ****** 29150 GOSUB 25150 29200 IF TR=RW THEN 28650 29250 GOTO 28500 29300 REM ************ READ A WORD 29350 GET #1, TR 29400 EL$="" 29450 FOR I=1 TO 12 29500 WD(1,I)=CVI(W1$(I)) 29550 WD(2,I)=CVI(W2$(I)) 29600 EL$=EL$ + EG$(WD(2,I)) 29650 NEXT I 29700 X=INSTR(EL$,"GG") 29750 IF X=0 THEN 29850 29800 MID$(EL$,X,2)="NG" 29850 IF WD(1,1)<> 2 AND WD(1,1)<>10 AND WD(1,1)<>11 AND WD(1,1)<>12 AND WD(1,2)<> 2 AND WD(1,2)<>10 AND WD(1,2)<> 11 AND WD(1,2)<> 12 THEN 30050 29900 Z=WD(2,1) 29950 IF Z=1 OR Z=2 OR Z=6 OR Z=8 OR Z=9 OR Z=11 OR Z=17 OR Z=23 OR Z=27 OR Z=28 THEN EL$="H" + EL$:GOTO 30050 30000 EL$=MID$(EL$,1,1) + "H" + MID$(EL$,2,11) 30050 GZ=CVI(KG$) 30100 IF WD(2,1)=99 THEN TR=TR+1:GOTO 29350 30150 RETURN 30200 REM ************ CORRECT ACCENTS SUBROUTINE 30250 FZ$="REPAIR" 30300 GOSUB 20800 30350 FZ$="" 30400 RETURN 30450 REM ******************* CORRECT VOCABULARY ******************* 30500 MN$="ON":QK$="N":TL$="N" 30550 GOSUB 6050 30600 PRINT "ENTER WORD NUMBER TO CORRECT (0 RETURNS TO MAIN MENU)" 30650 PRINT "(THE LETTER 'S' WILL SEARCH FOR A WORD) "; 30700 INPUT TR$ 30750 IF TR$="S" THEN 31700 30800 TR=VAL(TR$) 30850 IF TR<0 OR TR>LR THEN 30450 30900 IF TR=0 THEN GOTO 6500 30950 GOSUB 29300 31000 DW$=DF$ 31050 GOSUB 45600 31100 PRINT "WORD NUMBER ";TR;" WORD IS A(N) ";GZ$(GZ) 31150 PRINT "DEFINITION IS ";DW$ 31200 PRINT 31250 PRINT " CHOOSE ONE OF THE FOLLOWING:" 31300 PRINT "1--- CORRECT LETTERS 5--- DELETE WORD" 31350 PRINT "2--- CORRECT ACCENTS 6--- STORE CORRECTED WORD" 31400 PRINT "3--- CORRECT DEFINITION/WORD TYPE 7--- GET ANOTHER WORD" 31450 PRINT "4--- RE-ENTER WORD FROM SCRATCH 8--- RETURN TO MAIN MENU" 31500 PRINT 31550 INPUT " ENTER YOUR CHOICE ";FM 31600 IF FM>8 OR FM<1 THEN 31550 31650 ON FM GOTO 32750,34000,34350,35600,36200,37150,33100,33550 31700 REM ************* SEARCH FOR A WORD ************************** 31750 GOSUB 6050 31800 PRINT "ENTER A DEFINITION TO SEARCH FOR (STRIKE ENTER KEY TO ESCAPE" 31850 INPUT "SEARCH MODE) ";AX$ 31900 IF AX$="" THEN 30450 31950 PRINT "SEARCHING..... POSSIBLE WORD NUMBERS ARE:" 32000 H=0 32050 FOR TR=1 TO LR 32100 GOSUB 29300 32150 X=INSTR(DF$,AX$) 32200 IF X=0 THEN 32350 32250 H=H+1 32300 PRINT TR;" "; 32350 NEXT TR 32400 PRINT 32450 PRINT H;" MATCHES TO SEARCH FOUND " 32500 PRINT "STRIKE ANY KEY TO CONTINUE" 32550 X$=INKEY$ 32600 IF X$="" THEN 32550 32650 PRINT:PRINT 32700 GOTO 30600 32750 REM *********** CORRECT LETTERS 32800 GOSUB 45600 32850 INPUT "DO YOU WISH TO CORRECT THE LETTERS IN THIS WORD? ";AX$ 32900 IF AX$<>"Y" AND AX$<>"N" THEN 32850 32950 IF AX$="N" THEN GOSUB 6050:GOTO 31050 33000 GOSUB 18200 33050 GOTO 32750 33100 REM *********** GET ANOTHER WORD ********************* 33150 PRINT "DO YOU WISH TO GET SOME OTHER WORD? " 33200 PRINT "BE WARNED....ANY CHANGES YOU HAVE MADE TO THE " 33250 PRINT "CURRENT WORD WILL BE DROPPED UNLESS YOU HAVE TAKEN OPTION 6" 33300 PRINT "AND STORED YOUR CHANGES TO DISK. STILL WANT ANOTHER WORD?" 33350 INPUT "ENTER Y TO GET ANOTHER WORD, N TO KEEP CURRENT WORD";AX$ 33400 IF AX$<>"Y" AND AX$<>"N" THEN 33350 33450 IF AX$="N" THEN GOSUB 6050:GOTO 31050 33500 GOTO 30450 33550 REM ********* RETURN TO MAIN MENU *************** 33600 PRINT "DO YOU WISH TO RETURN TO MAIN MENU? " 33650 PRINT "BE WARNED...ANY CHANGES YOU HAVE MADE TO THE " 33700 PRINT "CURRENT WORD WILL BE DROPPED UNLESS YOU HAVE TAKEN OPTION 6" 33750 PRINT "AND STORED YOUR CHANGES TO DISK. DO YOU STILL WISH TO RETURN" 33800 INPUT "TO THE MAIN MENU? ENTER Y TO RETURN, N TO STAY IN CORRECTION MODE ";AX$ 33850 IF AX$<>"Y" AND AX$<>"N" THEN 33550 33900 IF AX$="N" THEN GOSUB 6050:GOTO 31050 33950 GOTO 6500 34000 REM *********** CORRECT ACCENTS *************************** 34050 GOSUB 45600 34100 INPUT "DO YOU WISH TO CORRECT THE ACCENTS IN THIS WORD? ";AX$ 34150 IF AX$<>"Y" AND AX$<>"N" THEN 34100 34200 IF AX$="N" THEN GOSUB 6050:GOTO 31050 34250 GOSUB 30200 34300 GOTO 34000 34350 REM *********** CORRECT DEFINITION **************** 34400 INPUT "DO YOU WISH TO CORRECT THE DEFINITION OF THIS WORD? ";AX$ 34450 IF AX$<>"Y" AND AX$<>"N" THEN 34400 34500 IF AX$="N" THEN 35000 34550 PRINT "ENTER NEW DEFINITION " 34600 INPUT DW$ 34650 IF LEN(DW$)>65 THEN PRINT "DEFINITION IS TOO LONG":GOTO 34550 34700 PRINT "DEFINITION OK? " 34750 INPUT AX$ 34800 IF AX$<>"N" AND AX$<>"Y" THEN 34700 34850 IF AX$="N" THEN 34550 34900 LSET DF$=DW$ 34950 GOSUB 6050:GOTO 31050 35000 REM ************* CORRECT WORD TYPE ********************** 35050 PRINT "THIS WORD IS CURRENTLY STORED AS AN ";GZ$(GZ) 35100 PRINT "DO YOU WISH TO CHANGE THIS? "; 35150 INPUT AX$ 35200 IF AX$="N" THEN GOSUB 6050:GOTO 31050 35250 GC(GZ)=GC(GZ)-1 35300 PRINT "WHAT KIND OF A WORD IS THIS? SELECT ONE OF THE FOLLOWING:" 35350 PRINT "1. VERB 2. NOUN 3. PRONOUN 4. ADJECTIVE 5. ADVERB 6. OTHER" 35400 PRINT "ENTER CHOICE (1-6) "; 35450 INPUT GZ 35500 GC(GZ)=GC(GZ)+1 35550 GOSUB 6050:GOTO 31050 35600 REM ********** RE-ENTER WORD **************************** 35650 GOSUB 6050 35700 GOSUB 45600 35750 PRINT "WOULD YOU LIKE TO RE-ENTER THIS WORD FROM SCRATCH? " 35800 PRINT "THIS IS THE ONLY WAY TO CHANGE THE NUMBER OF LETTERS " 35850 INPUT "IN THIS WORD....(ENTER Y TO RE-ENTER, N TO KEEP) ";AX$ 35900 IF AX$<>"Y" AND AX$<>"N" THEN 35600 35950 IF AX$="N" THEN 30950 36000 FZ$="REPAIR" 36050 GOSUB 10050 36100 FZ$="" 36150 GOTO 30450 36200 REM ******** DELETE WORD ********* 36250 IF TR=LR THEN 36700 36300 PRINT "NOTE: DELETED WORDS MAKE DISK SPACE VERY INEFFICIENT" 36350 PRINT "IT IS BETTER TO RE-ENTER WORD FROM SCRATCH THAN TO DELETE" 36400 INPUT "DO YOU WISH TO DELETE THIS WORD? ";AX$ 36450 IF AX$<>"N" AND AX$<>"Y" THEN 36400 36500 IF AX$="N" THEN GOSUB 6050:GOTO 31050 36550 WD(2,1)=99:PRINT "NOW DELETING WORD # ";TR 36600 LR=LR-1 36650 GOTO 37550 36700 PRINT "THIS IS CURRENTLY THE LAST WORD IN THE FILE" 36750 GOSUB 5900:GOSUB 5900:GOSUB 5900 36800 PRINT "THE LAST RECORD CANNOT BE DELETED" 36850 PRINT "WHY DON'T YOU TRY RE-ENTERING SOME OTHER" 36900 PRINT "WORD FROM SCRATCH IN ITS PLACE?" 36950 PRINT "STRIKE ANY KEY TO CONTINUE" 37000 X$=INKEY$ 37050 IF X$="" THEN 37000 37100 GOTO 30450 37150 REM ******* WRITE CORRECTED WORD TO DISK ********** 37200 GOSUB 6050 37250 GOSUB 45600 37300 PRINT "DEFINITION IS ";DF$ 37350 INPUT "READY TO WRITE THIS CORRECTED WORD TO DISK? ";AX$ 37400 IF AX$<>"Y" AND AX$<>"N" THEN 37350 37450 IF AX$="N" THEN GOSUB 6050:GOTO 31050 37500 PRINT "NOW STORING ON RECORD NUMBER ";TR 37550 ON ERROR GOTO 45250 37600 FOR I=1 TO 12 37650 LSET W1$(I)=MKI$(WD(1,I)) 37700 LSET W2$(I)=MKI$(WD(2,I)) 37750 NEXT I 37800 LSET DF$=DW$ 37850 LSET KG$=MKI$(GZ) 37900 PUT #1,TR 37950 ON ERROR GOTO 0 38000 GOTO 30450 38050 REM ************ PRINT ENTIRE VOCABULARY 38100 SH$="Y" 38150 PRINT "DO YOU WISH TO PRINT ACTUAL GREEK? "; 38200 INPUT SH$ 38250 IF SH$<>"Y" AND SH$<>"N" THEN 38150 38300 PRINT "DO YOU WISH TO PRINT OUT THE ENTIRE VOCABULARY? (Y OR N)"; 38350 INPUT AX$ 38400 IF AX$<>"Y" AND AX$<>"N" THEN 38300 38450 BV=1: LV=LR:IP=0 38500 IF AX$="Y" THEN 39000 38550 PRINT "DO YOU WISH TO PRINT OUT PART OF THE VOCABULARY? (Y OR N)"; 38600 INPUT AX$ 38650 IF AX$<>"Y" AND AX$<>"N" THEN 38550 38700 IF AX$="N" THEN 6500 38750 INPUT "ENTER FIRST WORD NUMBER TO LIST ";BV 38800 INPUT "ENTER LAST WORD NUMBER TO LIST ";LV 38850 IF BV<1 THEN BV=1 38900 IF LV>LR THEN LV=LR 38950 GOTO 39200 39000 PRINT "DO YOU WANT A SORTED LISTING? "; 39050 INPUT AX$ 39100 IF AX$<>"Y" AND AX$<>"N" THEN 39000 39150 IF AX$="Y" THEN 39550 39200 FOR TR=BV TO LV 39250 GOSUB 29300 39300 GOSUB 41400 39350 NEXT TR 39400 LPRINT STRING$(70,"*") 39450 LPRINT CHR$(12);CHR$(12) 39500 GOTO 6500 39550 REM ************ SORT ROUTINE ********************** 39600 GOSUB 6050:PRINT "STANDBY FOR SORT (THIS WILL TAKE A WHILE)" 39650 DIM SO$(LR), SO(LR) 39700 FOR TR=1 TO LR 39750 GOSUB 29300:PRINT "RECORD ";TR:GOSUB 6200 39800 FOR I=1 TO 11 39850 IF WD(2,I)=29 AND WD(2,I+1)=29 THEN WL=I-1:GOTO 39950 39900 NEXT I 39950 CD$="":FOR I=1 TO WL STEP 1 40000 Z=WD(2,I) 40050 ZX=Z+65 40100 IF Z=29 THEN ZX=64 40150 CD$=CD$+CHR$(ZX) 40200 NEXT I 40250 SO$(TR)=CD$:SO(TR)=TR 40300 NEXT TR 40350 PRINT 40400 PRINT "FIRST PASS COMPLETE, BEGINNING SECOND PASS":PRINT 40450 FOR I=1 TO LR-1 40500 FOR J=1 TO LR-1 40550 IF SO$(J)<SO$(J+1) THEN 40750 40600 TP$=SO$(J):TP=SO(J) 40650 SO$(J)=SO$(J+1):SO(J)=SO(J+1) 40700 SO$(J+1)=TP$:SO(J+1)=TP 40750 NEXT J 40800 GOSUB 6200:PRINT "WORD # ";I 40850 NEXT I 40900 PRINT "SORT COMPLETE....BEGINNING PRINTOUT" 40950 FOR SI=1 TO LR 41000 TR=SO(SI) 41050 IF TR<1 OR TR>LR THEN 41150 41100 GOSUB 29300:GOSUB 41400 41150 NEXT SI 41200 LPRINT STRING$(70,"*") 41250 LPRINT CHR$(12);CHR$(12) 41300 ERASE SO$, SO 41350 GOTO 6500 41400 REM ************ PRINT A WORD ROUTINE 41450 IP=IP+1 41500 IF SH$="N" AND IP<>9 THEN 41750 41550 IF SH$="N" AND IP=9 THEN 41650 41600 IF IP<>4 THEN 41750 41650 IP=1:LPRINT STRING$(70,"*") 41700 LPRINT CHR$(12) 41750 LPRINT STRING$(70,"*") 41800 LPRINT "WORD NUMBER ";TR;" WORD TYPE IS ";GZ$(GZ);" DEFINITION IS " 41850 LPRINT DF$ 41900 LPRINT 41950 IF SH$="N" THEN 43400 42000 FOR I = 1 TO 11 42050 IF WD(2,I)=29 AND WD(2,I+1)=29 THEN WL=I-1:GOTO 42250 42100 NEXT I 42150 IF WD(2,12)=29 THEN WL=11 42200 IF WD(2,12)<>29 THEN WL=12 42250 Z=WD(2,1) 42300 TX=INT((12-WL)/2)*6 42350 SX$="" 42400 IF WL<12 THEN SX$=" " 42450 FOR J=1 TO 3 42500 LPRINT TAB(TX); 42550 FOR I=1 TO WL 42600 Z=WD(1,I) 42650 LPRINT ACC$(Z,J); 42700 LPRINT SX$; 42750 NEXT I 42800 NEXT J 42850 LPRINT 42900 FOR J=1 TO 9 42950 LPRINT TAB(TX); 43000 FOR I=1 TO WL 43050 Z=WD(2,I) 43100 LPRINT LETT$(Z,J); 43150 LPRINT SX$; 43200 NEXT I 43250 LPRINT 43300 NEXT J 43350 LPRINT 43400 X=LEN(EL$) 43450 Y=40-X/2 43500 IF SH$="N" THEN Y=1 43550 LPRINT TAB(Y);EL$ 43600 LPRINT 43650 RETURN 43700 REM ************ WRITE RECORD TO DISK 43750 ON ERROR GOTO 45250 43800 PRINT "WHAT IS THE DEFINITION OF THIS WORD?" 43850 INPUT DW$ 43900 IF LEN(DW$)>65 THEN PRINT "YOUR DEFINITION IS TOO LONG, PLEASE ENTER A SHORTER ONE":GOTO 43800 43950 PRINT "WHAT KIND OF WORD IS THIS? SELECT ONE OF THE FOLLOWING:" 44000 PRINT "1. VERB 2. NOUN 3. PRONOUN 4. ADJECTIVE 5. ADVERB 6. OTHER" 44050 PRINT "ENTER CHOICE (1-6) "; 44100 INPUT GZ 44150 IF GZ<1 OR GZ>6 THEN 44050 44200 INPUT "READY TO WRITE ON DISK? (Y OR N) ";AX$ 44250 IF AX$<>"Y" AND AX$<>"N" THEN 44200 44300 IF AX$="N" THEN 43800 44350 IF FZ$<>"REPAIR" THEN 44500 44400 LHOLD=LR 44450 LR=TR-1 44500 PRINT "STORING ON DISK RECORD ";LR+1 44550 GC(GZ)=GC(GZ)+1 44600 LSET KG$=MKI$(GZ) 44650 FOR I=1 TO 12 44700 LSET W1$(I)=MKI$(WD(1,I)) 44750 LSET W2$(I)=MKI$(WD(2,I)) 44800 NEXT I 44850 LSET DF$=DW$ 44900 LSET KG$=MKI$(GZ) 44950 LR=LR+1 45000 PUT #1,LR 45050 ON ERROR GOTO 0 45100 IF FZ$<>"REPAIR" THEN RETURN 45150 LR=LHOLD 45200 RETURN 45250 REM ************ ERROR CONTROL 45300 PRINT "ERROR IS ";ERR 45350 IF ERR=61 THEN PRINT "YOUR DISK IS OUT OF SPACE" 45400 PRINT "PRESS ANY KEY TO CONTINUE" 45450 X$=INKEY$ 45500 IF X$="" THEN 45450 45550 RESUME NEXT 45600 REM ************ DISPLAY WORD ROUTINE 45650 FOR I = 1 TO 11 45700 IF WD(2,I)=29 AND WD(2,I+1)=29 THEN WL=I-1:GOTO 45900 45750 NEXT I 45800 IF WD(2,12)=29 THEN WL=11 45850 IF WD(2,12)<>29 THEN WL=12 45900 Z=WD(2,1) 45950 TX=INT((12-WL)/2)*6 46000 SX$="" 46050 IF WL<12 THEN SX$=" " 46100 FOR J=1 TO 3 46150 PRINT TAB(TX); 46200 FOR I=1 TO WL 46250 Z=WD(1,I) 46300 PRINT ACC$(Z,J); 46350 PRINT SX$; 46400 NEXT I 46450 NEXT J 46500 PRINT 46550 REM CALL POINT FOR NEW WORD 46600 FOR J=1 TO 9 46650 PRINT TAB(TX); 46700 FOR I=1 TO WL 46750 Z=WD(2,I) 46800 PRINT LETT$(Z,J); 46850 PRINT SX$; 46900 NEXT I 46950 PRINT 47000 NEXT J 47050 PRINT 47100 X=LEN(EL$) 47150 Y=40-X/2 47200 PRINT TAB(Y);EL$ 47250 RETURN 47300 REM ************ LETTER DATA MATCH SUBROUTINE 47350 PRINT "INPUT YOUR CHOICE FOR LETTER NUMBER ";IX 47400 INPUT IZ 47450 IF IZ<>28 THEN 47800 47500 IF WX=1 THEN 47650 47550 IF WX>2 AND WD(2,WX-1)=29 THEN 47650 47600 GOTO 47800 47650 PRINT "DOUBLE BLANKS OR BLANKS AT THE BEGINNING OF A WORD" 47700 PRINT "ARE NOT ALLOWED, PLEASE TRY SOMETHING ELSE" 47750 GOTO 47350 47800 IF IZ=0 THEN GOSUB 6050:GOSUB 10900:GOSUB 45600:GOTO 47300 47850 IF IZ>30 OR IZ<1 THEN 47400 47900 IF IZ=30 THEN 49500 47950 ID=IZ 48000 IF IZ=2 THEN ID=3 48050 IF IZ=3 THEN ID=4 48100 IF IZ=4 THEN ID=5 48150 IF IZ=5 THEN ID=6 48200 IF IZ=6 THEN ID=7 48250 IF IZ=7 THEN ID=8 48300 IF IZ=8 THEN ID=10 48350 IF IZ=9 THEN ID=11 48400 IF IZ=10 THEN ID=12 48450 IF IZ=11 THEN ID=13 48500 IF IZ=12 THEN ID=14 48550 IF IZ=13 THEN ID=15 48600 IF IZ=14 THEN ID=16 48650 IF IZ=15 THEN ID=17 48700 IF IZ=16 THEN ID=18 48750 IF IZ=17 THEN ID=19 48800 IF IZ=18 THEN ID=20 48850 IF IZ=19 THEN ID=22 48900 IF IZ=20 THEN ID=23 48950 IF IZ=21 THEN ID=24 49000 IF IZ=22 THEN ID=25 49050 IF IZ=23 THEN ID=26 49100 IF IZ=24 THEN ID=27 49150 IF IZ=25 THEN ID=2 49200 IF IZ=26 THEN ID=19 49250 IF IZ=27 THEN ID=28 49300 IF IZ=28 THEN ID=29 49350 IF IZ=28 AND WD(2,WX-1)=20 THEN WD(2,WX-1)=21 49400 IF IZ=29 THEN ID=30 49450 WD(2,WX)=ID 49500 RETURN 49550 DATA "ALPHA","ALPHA-IOTA DIPTHONG","BETA","GAMMA","DELTA","EPSILON","ZETA" 49600 DATA "ETA","ETA-IOTA DIPTHONG","THETA","IOTA","KAPPA","LAMBDA","MU","NU" 49650 DATA "XI","OMICRON","PI","RHO","SIGMA","FINAL SIGMA","TAU","UPSILON" 49700 DATA "PHI","CHI","PSI","OMEGA","OMEGA-IOTA DIPTHONG","BLANK","HYPHEN" 49750 DATA "SMOOTH BREATH","ROUGH BREATH","ACUTE","CIRCUMFLEX","GRAVE" 49800 DATA "DIAERSIS","SMOOTH + GRAVE","SMOOTH + ACUTE", "SMOOTH + CIRC." 49850 DATA "ROUGH + GRAVE", "ROUGH + ACUTE", "ROUGH + CIRC.","CORONIS" 49900 DATA "APOSTROPHE","BLANK (NO MARK)" 49950 DATA "A","AI","B","G","D","E","Z","E","EI","TH","I","K","L","M","N" 50000 DATA "X","O","P","R","S","S","T","U","PH","CH","PS","O","OI"," ","-" 50050 DATA "VERB","NOUN","PRONOUN","ADJECTIVE","ADVERB","OTHER" ,"O","P","R","S","S","T","U","PH","CH","PS",