home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / educ / lang2.zip / GREEK.ZIP / GREEK.ASC < prev    next >
Text File  |  1987-05-04  |  36KB  |  1,002 lines

  1. 100 REM  ***********************************************************
  2. 150 REM  *                      RHEMA 1.0                           *
  3. 200 REM  *            GREEK VOCABULARY DRILL SYSTEM                 *
  4. 250 REM  *                                                          *
  5. 300 REM  *  COPYRIGHT 1987 BY DANIEL R. CRIDER                      *
  6. 350 REM  *       THIS PROGRAM IS RELEASED INTO THE PUBLIC DOMAIN    *
  7. 400 REM  *  ON A SHAREWARE BASIS. PLEASE SEND $15 TO DANIEL CRIDER  *
  8. 450 REM  *  FOR THE RIGHT TO USE THIS PROGRAM. THIS PROGRAM IS NOT  *
  9. 500 REM  *  TO BE RE-SOLD OR RE-RELEASED WITH ANY COMMERCIAL        *
  10. 550 REM  *  PACKAGE OR PROGRAM.                                     *
  11. 600 REM  *  FOR NOTICE OF OTHER RIGHTS AND RESTRICTIONS PLEASE      *
  12. 650 REM  *  SEE THE FILE RHEMA.DOC WHICH SHOULD BE SUPPLIED WITH    *
  13. 700 REM  *  THIS PROGRAM. PLEASE MAIL YOUR PAYMENT AND ANY COMMENTS *
  14. 750 REM  *  TO:                                                     *
  15. 800 REM  *        DANIEL CRIDER                                     *
  16. 850 REM  *        6604 CERVANTES AVE                                *
  17. 900 REM  *        FT. WORTH, TEXAS 76133                            *
  18. 950 REM  *                                                          *
  19. 1000 REM ************************************************************
  20. 1050 REM ************  SET UP ARRAYS
  21. 1100 CLEAR:DIM LI(30),US(30)
  22. 1150 DIM GC(6)
  23. 1200 FOR I=1 TO 6:GC(I)=0:NEXT I
  24. 1250 ML=0
  25. 1300 DIM W1$(12),W2$(12),WD(2,12)
  26. 1350 DIM LETT$(30,9),LN$(30),CN$(15)
  27. 1400 DIM ACC$(15,3)
  28. 1450 DIM EG$(30),GZ$(6)
  29. 1500 GOSUB 6050
  30. 1550 REM ************  LOAD ALPHABET
  31. 1600 PRINT
  32. 1650 PRINT TAB(36);"RHEMA 1.0"
  33. 1700 PRINT
  34. 1750 PRINT TAB(18);"     COPYRIGHT 1987 BY DANIEL R. CRIDER"
  35. 1800 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  36. 1850 OPEN "I",1,"ALPHA.BAS"
  37. 1900 FOR I=1 TO 30
  38. 1950 PRINT TAB(15) "PLEASE STANDBY ... LOADING GREEK LETTERS [";I;"]"
  39. 2000 GOSUB 6200
  40. 2050 FOR J=1 TO 9
  41. 2100 LINE INPUT#1,AX$
  42. 2150 LETT$(I,J)=MID$(AX$,13,6)
  43. 2200 NEXT J
  44. 2250 NEXT I
  45. 2300 PRINT
  46. 2350 FOR I=1 TO 15
  47. 2400 PRINT TAB(15) ".................. LOADING GREEK ACCENTS [";I;"]"
  48. 2450 GOSUB 6200
  49. 2500 FOR J=1 TO 3
  50. 2550 LINE INPUT#1,AX$
  51. 2600 ACC$(I,J)=MID$(AX$,13,6)
  52. 2650 NEXT J
  53. 2700 NEXT I
  54. 2750 PRINT
  55. 2800 CLOSE #1
  56. 2850 FOR I=1 TO 30:READ LN$(I):NEXT I
  57. 2900 FOR I=1 TO 15:READ CN$(I):NEXT I
  58. 2950 FOR I=1 TO 30:READ EG$(I):NEXT I
  59. 3000 FOR I=1 TO 6:READ GZ$(I):NEXT I
  60. 3050 PRINT
  61. 3100 PRINT
  62. 3150 PRINT TAB(10) "USE A NUMBER FROM 1 TO 10 TO RANDOMIZE THE DRILL ORDER."
  63. 3200 PRINT TAB(10) "THE SAME NUMBER EACH TIME WILL GIVE THE SAME DRILL ORDER."
  64. 3250 PRINT
  65. 3300 INPUT "         ENTER A NUMBER FROM 1 TO 10: ",R
  66. 3350 IF R<1 OR R>10 THEN 3250
  67. 3400 LET R = INT(1+(13*RND(-1)))
  68. 3450 REM ************  OPEN VOCABULARY FILE
  69. 3500 GOSUB 6050:PRINT
  70. 3550 PRINT "_______________________________________________________________________________":PRINT:PRINT
  71. 3600 PRINT TAB(10) "[ 1 ] LESSON #1                 [ 11 ] LESSON #11"
  72. 3650 PRINT TAB(10) "[ 2 ] LESSON #2                 [ 12 ] LESSON #12"
  73. 3700 PRINT TAB(10) "[ 3 ] LESSON #3                 [ 13 ] LESSON #13"
  74. 3750 PRINT TAB(10) "[ 4 ] LESSON #4                 [ 14 ] LESSON #14"
  75. 3800 PRINT TAB(10) "[ 5 ] LESSON #5                 [ 15 ] LESSON #15"
  76. 3850 PRINT TAB(10) "[ 6 ] LESSON #6                 [ 16 ] LESSON #16"
  77. 3900 PRINT TAB(10) "[ 7 ] LESSON #7                 [ 17 ] LESSON #17"
  78. 3950 PRINT TAB(10) "[ 8 ] LESSON #8                 [ 18 ] LESSON #18"
  79. 4000 PRINT TAB(10) "[ 9 ] LESSON #9                 [ 19 ] LESSON #19"
  80. 4050 PRINT TAB(9) "[ 10 ] LESSON #10                [ 20 ] LESSON #20"
  81. 4100 PRINT
  82. 4150 PRINT "_______________________________________________________________________________"
  83. 4200 PRINT:PRINT
  84. 4250 PRINT "PRESS RETURN ALONE TO DEFAULT TO MAIN VOCABULARY FILE."
  85. 4300 PRINT
  86. 4350 PRINT "WHAT IS YOUR CHOICE";
  87. 4400 INPUT AX$
  88. 4450 IF AX$="" THEN AX$="VOCAB"
  89. 4500 IF AX$="1" THEN AX$="LESSON1":IF AX$="11" THEN AX$="LESSON11"
  90. 4550 IF AX$="2" THEN AX$="LESSON2":IF AX$="12" THEN AX$="LESSON12"
  91. 4600 IF AX$="3" THEN AX$="LESSON3":IF AX$="13" THEN AX$="LESSON13"
  92. 4650 IF AX$="4" THEN AX$="LESSON4":IF AX$="14" THEN AX$="LESSON14"
  93. 4700 IF AX$="5" THEN AX$="LESSON5":IF AX$="15" THEN AX$="LESSON15"
  94. 4750 IF AX$="6" THEN AX$="LESSON6":IF AX$="16" THEN AX$="LESSON16"
  95. 4751 IF AX$="7" THEN AX$="LESSON7":IF AX$="17" THEN AX$="LESSON17"
  96. 4800 IF AX$="8" THEN AX$="LESSON8":IF AX$="18" THEN AX$="LESSON18"
  97. 4850 IF AX$="9" THEN AX$="LESSON9":IF AX$="19" THEN AX$="LESSON19"
  98. 4900 IF AX$="10" THEN AX$="LESSON10":IF AX$="20" THEN AX$="LESSON20"
  99. 4950 GOSUB 6200
  100. 5000 PRINT "VOCABULARY FILE NAME.....";AX$
  101. 5050 AX$=AX$ + ".GRK"
  102. 5100 PRINT "PLEASE STANDBY...SCANNING VOCABULARY FILE"
  103. 5150 OPEN "R",#1,AX$,125
  104. 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$
  105. 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$
  106. 5300 LR=1
  107. 5350 DL=0
  108. 5400 GET #1,LR
  109. 5450 GZ=CVI(KG$)
  110. 5500 GC(GZ)=GC(GZ)+1
  111. 5550 IF EOF(1) GOTO 5800
  112. 5600 WD(2,1)=CVI(W2$(1))
  113. 5650 IF WD(2,1)=99 THEN DL=DL+1
  114. 5700 LR=LR+1
  115. 5750 GOTO 5400
  116. 5800 LR=LR-1
  117. 5850 GOTO 6500
  118. 5900 REM ************ RING BELL CODE
  119. 5950 PRINT CHR$(7);CHR$(7);
  120. 6000 RETURN
  121. 6050 REM ************  CLEAR SCREEN CODE
  122. 6100 PRINT CHR$(26)
  123. 6150 RETURN
  124. 6200 REM ************  CURSOR UP SCREEN CODE
  125. 6250 PRINT CHR$(11);
  126. 6300 RETURN
  127. 6350 REM ************ CURSOR DOWN SCREEN CODE
  128. 6400 PRINT CHR$(10);
  129. 6450 RETURN
  130. 6500 REM ************  DISPLAY MENU
  131. 6550 REM ************* RESET SOME VARIABLES BEFORE MENU DISPLAY
  132. 6600 LM$="N"
  133. 6650 SX$=""
  134. 6700 TX=0
  135. 6750 SU=0
  136. 6800 GOSUB 6050
  137. 6850 PRINT TAB(22);"CURRENTLY ";LR-DL;" VOCABULARY WORDS ON FILE"
  138. 6900 PRINT
  139. 6950 PRINT
  140. 7000 PRINT TAB(35);"RHEMA 1.0"
  141. 7050 PRINT TAB(25);"GREEK VOCABULARY DRILL SYSTEM"
  142. 7100 PRINT TAB(35);"MASTER MENU"
  143. 7150 PRINT
  144. 7200 PRINT TAB(25);"1-- ADD NEW WORDS TO VOCABULARY"
  145. 7250 PRINT TAB(25);"2-- REVIEW LAST X WORDS"
  146. 7300 PRINT TAB(25);"3-- REVIEW ENTIRE VOCABULARY"
  147. 7350 PRINT TAB(25);"4-- REVIEW ENTIRE VOCABULARY--"
  148. 7400 PRINT TAB(25);"    --CONCENTRATE ON LAST X WORDS"
  149. 7450 PRINT TAB(25);"5-- PRINT VOCABULARY"
  150. 7500 PRINT TAB(25);"6-- CORRECT VOCABULARY"
  151. 7550 PRINT TAB(25);"7-- END PROGRAM"
  152. 7600 PRINT
  153. 7650 PRINT
  154. 7700 PRINT TAB(28);"PLEASE ENTER YOUR CHOICE ";
  155. 7750 INPUT M
  156. 7800 IF M>7 OR M<1 THEN 7700
  157. 7850 IF M=1 OR M>4 THEN 8450
  158. 7900 PRINT:PRINT "DO YOU WISH TO LIMIT YOUR DRILL TO A PARTICULAR TYPE OF SPEECH? ";
  159. 7950 INPUT LM$
  160. 8000 IF LM$<>"Y" AND LM$<>"N" THEN 7900
  161. 8050 IF LM$="N" THEN 8450
  162. 8100 PRINT:PRINT
  163. 8150 PRINT "ENTER YOUR SELECTED WORD TYPE TO DRILL"
  164. 8200 PRINT "1. VERBS  2. NOUNS  3. PRONOUNS  4. ADJECTIVES  5. ADVERBS  6. OTHER"
  165. 8250 PRINT "ENTER YOUR CHOICE 1-6 ";
  166. 8300 INPUT LM
  167. 8350 IF LM<1 OR LM>6 THEN 8250
  168. 8400 IF GC(LM)=0 THEN GOSUB 5900:PRINT "BUT YOU DON'T HAVE ANY ";GZ$(LM);"S ON FILE YET!":PRINT:GOTO 8150
  169. 8450 ON M GOTO 8850,22550,23950,27850,38050,30450,8500
  170. 8500 REM ************  END PROGRAM
  171. 8550 PRINT "READY TO QUIT? (Y OR N) ";
  172. 8600 INPUT X$
  173. 8650 IF X$<>"Y" AND X$<>"N" THEN 8550
  174. 8700 IF X$="N" THEN 6500
  175. 8750 CLOSE #1
  176. 8800 END
  177. 8850 REM ************  ADD NEW WORDS TO VOCABULARY
  178. 8900 FZ$=""
  179. 8950 IF SU=1 THEN 9950
  180. 9000 GOSUB 6050
  181. 9050 INPUT "                    DO YOU WANT MENUS? (Y OR N) ";MX$
  182. 9100 MN$="ON"
  183. 9150 IF MX$<>"Y" AND MX$<>"N" THEN 9050
  184. 9200 IF MX$="N" THEN MN$="OFF"
  185. 9250 PRINT:PRINT
  186. 9300 PRINT  "                 ENTER YOUR CHOICE OF LOADING SET-UPS"
  187. 9350 PRINT
  188. 9400 PRINT "                     1.--STANDARD LOAD"
  189. 9450 PRINT "                     2.--QUICK LOAD BY LETTER NUMBER"
  190. 9500 PRINT "                     3.--TRANSLITERATION LOAD"
  191. 9550 PRINT
  192. 9600 PRINT:PRINT "                      ENTER YOUR CHOICE 1, 2, OR 3";
  193. 9650 INPUT X
  194. 9700 IF X>3 THEN 9300
  195. 9750 IF X=0 THEN 6500
  196. 9800 IF X=1 THEN QK$="N":TL$="N"
  197. 9850 IF X=2 THEN QK$="Y":TL$="N"
  198. 9900 IF X=3 THEN QK$="N":TL$="Y"
  199. 9950 GOSUB 6050
  200. 10000 SU=1
  201. 10050 REM ************  SET UP LETTERS
  202. 10100 FOR J=1 TO 12:WD(2,J)=29:NEXT J
  203. 10150 IF TL$="Y" THEN 12300
  204. 10200 PRINT "ENTER NUMBER OF LETTERS PLEASE (ENTER 0 TO RETURN TO MENU) ";
  205. 10250 INPUT WL
  206. 10300 IF WL=0 THEN 6500
  207. 10350 IF WL<13 THEN 11450
  208. 10400 PRINT "LIMIT IS 12 LETTERS"
  209. 10450 REM **** RESET SPACES AND TABS
  210. 10500 SX$=""
  211. 10550 TX=0
  212. 10600 GOTO 10200
  213. 10650 REM ************  LETTER SELECT MENU
  214. 10700 GOSUB 6050
  215. 10750 EL$=""
  216. 10800 PRINT "SELECT YOUR LETTERS BY NUMBER"
  217. 10850 IF MN$="OFF" THEN RETURN
  218. 10900 PRINT " 1. ALPHA   A       11. LAMBDA  L         21. PHI    PH"  
  219. 10950 PRINT " 2. BETA    B       12. MU      M         22. CHI    CH"
  220. 11000 PRINT " 3. GAMMA   G       13. NU      N         23. PSI    PS"
  221. 11050 PRINT " 4. DELTA   D       14. XI      X         24. OMEGA  O" 
  222. 11100 PRINT " 5. EPSILON E       15. OMICRON O         25. ALPHA IOTA DIPTHONG"
  223. 11150 PRINT " 6. ZETA    Z       16. PI      P         26. ETA IOTA DIPTHONG"
  224. 11200 PRINT " 7. ETA     E       17. RHO     R         27. OMEGA IOTA DIPTHONG"
  225. 11250 PRINT " 8. THETA   TH      18. SIGMA   S         28. BLANK (NO LETTER)"
  226. 11300 PRINT " 9. IOTA    I       19. TAU     T         29. HYPHEN -"           
  227. 11350 PRINT "10. KAPPA   K       20. UPSILON U         30. CORRECT LAST LETTER"
  228. 11400 RETURN
  229. 11450 REM ************  LETTER DRIVER
  230. 11500 EL$=""
  231. 11550 IX=0
  232. 11600 TX=0
  233. 11650 SX$=""
  234. 11700 FOR J=1 TO 12
  235. 11750 WD(1,J)=15
  236. 11800 NEXT J
  237. 11850 IF QK$="Y" THEN 14900
  238. 11900 FOR WX=1 TO WL STEP  1
  239. 11950 IX=IX+1
  240. 12000 GOSUB 10650
  241. 12050 GOSUB 46550
  242. 12100 GOSUB 47300
  243. 12150 IF IZ=30 THEN 16400
  244. 12200 NEXT WX
  245. 12250 GOTO 17100
  246. 12300 REM TRANSLITERATION LOAD ******************************
  247. 12350 GOSUB 6050:PRINT "TRANSLITERATION LOAD"
  248. 12400 GOSUB 10850
  249. 12450 PRINT :PRINT "ENTER THE GREEK WORD IN TRANSLITERATED ENGLISH"
  250. 12500 PRINT "USE THE LETTERS IN THE ABOVE MENU. IF A ROUGH BREATHING-MARK
  251. 12550 PRINT "IS NEEDED, THEN PLACE AN H BEFORE THE FIRST LETTER IF THE WORD"
  252. 12600 PRINT "STARTS WITH A VOWEL (LIKE HODOS); OR AFTER THE FIRST LETTER IF
  253. 12650 PRINT "THE WORD STARTS WITH A CONSONANT (LIKE RHEMA)."
  254. 12700 PRINT:INPUT "ENTER YOUR WORD ";AX$
  255. 12750 EL$=""
  256. 12800 WL=LEN(AX$):FOR J=1 TO 12:WD(1,J)=15:WD(2,J)=0:NEXT J
  257. 12850 IX=0:IF WL=0 THEN 6500
  258. 12900 WX=1
  259. 12950 X$=MID$(AX$,WX,1)
  260. 13000 IX=IX+1
  261. 13050 IF IX>12 THEN PRINT "NUMBER OF GREEK LETTERS EXCEEDS 12":GOSUB 5900:PRINT "RE-ENTER WORD FROM SCRATCH":GOTO 12700
  262. 13100 IF X$="H" AND IX=1 THEN WD(1,1)=2: IX=IX-1:WL=WL-1:GOTO 14700
  263. 13150 IF X$="H" AND IX=2 THEN WD(1,1)=2: IX=IX-1:WL=WL-1:GOTO 14700
  264. 13200 IF X$="T" AND MID$(AX$,WX,2)="TH" THEN WD(2,IX)=8:WL=WL-1:WX=WX+1:GOTO 14700
  265. 13250 IF X$="P" AND MID$(AX$,WX,2)="PH" THEN WD(2,IX)=21:WL=WL-1:WX=WX+1:GOTO 14700
  266. 13300 IF X$="C" AND MID$(AX$,WX,2)="CH" THEN WD(2,IX)=22:WL=WL-1:WX=WX+1:GOTO 14700
  267. 13350 IF X$="P" AND MID$(AX$,WX,2)="PS" THEN WD(2,IX)=23:WL=WL-1:WX=WX+1:GOTO 14700
  268. 13400 IF X$="N" AND MID$(AX$,WX,2)="NG" THEN WD(2,IX)=3:GOTO 14700
  269. 13450 IF X$="A" THEN WD(2,IX)=1
  270. 13500 IF X$="B" THEN WD(2,IX)=2
  271. 13550 IF X$="G" THEN WD(2,IX)=3
  272. 13600 IF X$="D" THEN WD(2,IX)=4
  273. 13650 IF X$="E" THEN WD(2,IX)=5
  274. 13700 IF X$="E" AND WD(2,IX-1)=28 THEN WD(2,IX)=7
  275. 13750 IF X$="E" AND IX=WL THEN WD(2,IX)=7
  276. 13800 IF X$="Z" THEN WD(2,IX)=6
  277. 13850 IF X$="I" THEN WD(2,IX)=9
  278. 13900 IF X$="K" OR X$="C" THEN WD(2,IX)=10
  279. 13950 IF X$="L" THEN WD(2,IX)=11
  280. 14000 IF X$="M" THEN WD(2,IX)=12
  281. 14050 IF X$="N" THEN WD(2,IX)=13
  282. 14100 IF X$="X" THEN WD(2,IX)=14
  283. 14150 IF X$="O" AND IX<>WL THEN WD(2,IX)=15
  284. 14200 IF X$="O" AND IX=WL THEN WD(2,IX)=24
  285. 14250 IF X$="O" AND IX=WL AND WD(2,IX-1)=28 THEN WD(2,IX)=15
  286. 14300 IF X$="P" THEN WD(2,IX)=16
  287. 14350 IF X$="R" THEN WD(2,IX)=17
  288. 14400 IF X$="S" THEN WD(2,IX)=18
  289. 14450 IF X$="T" THEN WD(2,IX)=19
  290. 14500 IF X$="U" THEN WD(2,IX)=20
  291. 14550 IF X$="-" THEN WD(2,IX)=29
  292. 14600 IF X$=" " OR X$="" THEN WD(2,IX)=28
  293. 14650 IF WD(2,IX)=0 THEN GOSUB 5900:PRINT "ILLEGAL LETTER ";X$;" RE-ENTER":GOTO 12700
  294. 14700 WX=WX+1:IF IX<WL THEN 12950
  295. 14750 FOR WX=1 TO WL:IZ=WD(2,WX):GOSUB 47950:NEXT WX
  296. 14800 FOR WX=WL+1 TO 12:WD(2,WX)=29:NEXT WX
  297. 14850 GOTO 17100
  298. 14900 REM QUICK LOAD LETTERS ********************************
  299. 14950 GOSUB 10650
  300. 15000 PRINT
  301. 15050 PRINT "ENTER ALL LETTERS IN 2-DIGIT CODES SEPARATED BY COMMAS OR PERIODS."
  302. 15100 PRINT
  303. 15150 LINE INPUT L$
  304. 15200 IF LEN(L$)<>WL*3-1 THEN PRINT "WRONG NUMBER OF LETTERS":GOSUB 5900:GOTO 15150
  305. 15250 IL=1
  306. 15300 FOR WX=1 TO WL STEP 1
  307. 15350 IX=IX+1
  308. 15400 IZ$=MID$(L$,IL,2)
  309. 15450 IL=IL+3
  310. 15500 I2=IZ
  311. 15550 IZ=VAL(IZ$)
  312. 15600 IF IZ=28 AND I2=28 THEN 16000
  313. 15650 IF IZ=28 AND IX=1 THEN 16200
  314. 15700 IF IZ<1 OR IZ>28 THEN PRINT "INVALID CODE ENTERED FOR LETTER ";IX
  315. 15750 IF IZ<1 OR IZ>28 THEN GOSUB 5900
  316. 15800 IF IZ<1 OR IZ>28 THEN 15000
  317. 15850 GOSUB 47950
  318. 15900 NEXT WX
  319. 15950 GOTO 17100
  320. 16000 REM DOUBLE BLANKS
  321. 16050 PRINT "DOUBLE BLANKS ARE NOT ALLOWED"
  322. 16100 GOSUB 5900
  323. 16150 GOTO 15000
  324. 16200 REM LEADING BLANK
  325. 16250 PRINT "YOUR FIRST LETTER CAN NOT BE A BLANK"
  326. 16300 GOSUB 5900
  327. 16350 GOTO 15000
  328. 16400 REM ************  FIX LAST LETTER
  329. 16450 IF IX=1 THEN PRINT "THIS IS YOUR FIRST LETTER":GOTO 12100
  330. 16500 PRINT "WOULD YOU LIKE TO CHANGE LETTER NUMBER ";IX-1;" WHICH IS NOW"
  331. 16550 Z=WD(2,WX-1)
  332. 16600 PRINT LN$(Z)
  333. 16650 FOR J=1 TO 9:PRINT LETT$(Z,J)
  334. 16700 NEXT J
  335. 16750 INPUT "ENTER Y TO CHANGE, N TO KEEP ";AX$
  336. 16800 IF AX$<>"Y" AND AX$<>"N" THEN 16750
  337. 16850 IF AX$="N" THEN 12000
  338. 16900 WX=WX-1
  339. 16950 WD(2,WX)=29
  340. 17000 IX=IX-1
  341. 17050 GOTO 12000
  342. 17100 REM ************ CHECK ALL LETTERS
  343. 17150 WX=1
  344. 17200 IF IZ=18 THEN ID=21
  345. 17250 WD(2,WL)=ID
  346. 17300 GOSUB 6050
  347. 17350 GOSUB 45600
  348. 17400 PRINT "ARE LETTERS CORRECT? ";
  349. 17450 INPUT AX$
  350. 17500 IF AX$<>"Y" AND AX$<>"N" THEN 17400
  351. 17550 IF TL$="Y" AND AX$="Y" THEN 19950
  352. 17600 IF AX$="Y" THEN 19750
  353. 17650 PRINT TAB(25);"PLEASE CHOOSE ONE OF THE FOLLOWING:"
  354. 17700 PRINT TAB(25);"       1. ABORT-RETURN TO MAIN MENU"
  355. 17750 PRINT TAB(25);"       2. RETRY THIS WORD FROM SCRATCH"
  356. 17800 PRINT TAB(25);"       3. FIX THIS WORD"
  357. 17850 INPUT "ENTER 1, 2 OR 3";X
  358. 17900 IF X<1 OR X>3 THEN 17850
  359. 17950 ON X GOTO 6500,10050,18050
  360. 18000 IF AX$="Y" THEN 19750
  361. 18050 REM ************  FIX SOME LETTER
  362. 18100 GOSUB 18200
  363. 18150 GOTO 17300
  364. 18200 REM ************  LETTER REPAIR SUBROUTINE
  365. 18250 PRINT "ENTER LETTER NUMBER TO FIX (1 IS FAR LEFT ";WL;" IS FAR RIGHT) ";
  366. 18300 INPUT IX
  367. 18350 IF IX=0 THEN RETURN
  368. 18400 IF IX>WL THEN GOSUB 5900:PRINT "YOU ONLY HAVE ";WL;" LETTERS IN THIS WORD":GOTO 18250
  369. 18450 WX=IX
  370. 18500 PRINT "WOULD YOU LIKE TO CHANGE LETTER NUMBER ";IX;" WHICH IS NOW"
  371. 18550 Z=WD(2,WX)
  372. 18600 PRINT LN$(Z)
  373. 18650 FOR J=1 TO 9:PRINT LETT$(Z,J)
  374. 18700 NEXT J
  375. 18750 INPUT "ENTER Y TO CHANGE, N TO KEEP ";AX$
  376. 18800 IF AX$<>"Y" AND AX$<>"N" THEN 18750
  377. 18850 IF AX$="N" THEN 18250
  378. 18900 WD(2,WX)=29
  379. 18950 GOSUB 10650
  380. 19000 GOSUB 47300
  381. 19050 IF WX=WL AND IZ=18 THEN ID=21
  382. 19100 WD(2,WX)=ID
  383. 19150 RETURN 
  384. 19200 REM ************  SELECT ACCENTS MENU
  385. 19250 GOSUB 6050
  386. 19300 PRINT "SELECT YOUR ACCENTS AND SPECIAL MARKS BY NUMBER"
  387. 19350 IF MN$="OFF" THEN RETURN
  388. 19400 PRINT "1. SMOOTH BREATH 6. DIAERSIS       11. ROUGH + ACUTE"
  389. 19450 PRINT "2. ROUGH BREATH  7. SMOOTH + GRAVE 12. ROUGH + CIRC."
  390. 19500 PRINT "3. ACUTE         8. SMOOTH + ACUTE 13. CORONIS"        
  391. 19550 PRINT "4. CIRCUMFLEX    9. SMOOTH + CIRC. 14. APOSTROPHE"        
  392. 19600 PRINT "5. GRAVE        10. ROUGH + GRAVE  15. BLANK (NO MARK OR ACCENT)"
  393. 19650 PRINT
  394. 19700 RETURN
  395. 19750 REM ************  SELECT ACCENTS
  396. 19800 FOR J=1 TO 12
  397. 19850 WD(1,J)=15
  398. 19900 NEXT J
  399. 19950 IX=0
  400. 20000 GOSUB 19200
  401. 20050 GOSUB 45600
  402. 20100 PRINT "LETTER NUMBER TO PLACE MARK OR ACCENT OVER (1=LEFT ";WL;"=FAR RIGHT ;99=QUIT)"
  403. 20150 INPUT IX
  404. 20200 IF IX=99 THEN 20800
  405. 20250 IF IX<=WL THEN 20500
  406. 20300 GOSUB 5900
  407. 20350 PRINT "YOU HAVE ONLY ";WL;" LETTERS IN THIS WORD"
  408. 20400 FOR I=1 TO 400:NEXT I
  409. 20450 GOTO 20000
  410. 20500 PRINT "ENTER ACCENT OR MARK NUMBER FOR LETTER NUMBER ";IX;" - ";LN$(WD(2,IX))
  411. 20550 INPUT IZ
  412. 20600 IF IZ=0  THEN GOSUB 6050:GOSUB 19400:GOTO 20500
  413. 20650 IF IZ<1 OR IZ>16 THEN 20600
  414. 20700 WD(1,IX)=IZ
  415. 20750 GOTO 20000
  416. 20800 REM ************  FINAL ACCENTS CHECK
  417. 20850 GOSUB 45600
  418. 20900 PRINT
  419. 20950 PRINT "ARE ALL ACCENTS CORRECT? (Y OR N) "
  420. 21000 INPUT AX$
  421. 21050 IF AX$<>"Y" AND AX$<>"N" THEN 20950
  422. 21100 IF AX$="N" THEN 20000
  423. 21150 GOSUB 43700
  424. 21200 IF FZ$="REPAIR" THEN RETURN
  425. 21250 GOTO 8850
  426. 21300 REM **************** COMPUTE JZ *********************
  427. 21350 JZ=RX
  428. 21400 IF RX>30 THEN JZ=30
  429. 21450 IF LR<30 THEN JZ=LR-10
  430. 21500 IF LM$="Y" AND GT>=30 THEN JZ=20
  431. 21550 IF LM$="Y" AND GT<30 THEN JZ=10
  432. 21600 IF JZ<5 THEN JZ=5
  433. 21650 RETURN
  434. 21700 REM ******** LIMITING OFF *********
  435. 21750 GOSUB 5900
  436. 21800 PRINT "NOT ENOUGH WORDS OF TYPE ";GZ$(LM);" IN REVEIW AREA "
  437. 21850 PRINT "TO LIMIT DRILL TO."
  438. 21900 PRINT "********** LIMITING TURNED OFF *********"
  439. 21950 INPUT "STRIKE THE RETURN KEY TO CONTINUE ";AX$
  440. 22000 LM$="N"
  441. 22050 RETURN
  442. 22100 REM ************** VOCABUALRY SCAN **********
  443. 22150 GT=0
  444. 22200 PRINT "STANDBY FOR VOCABULARY SCAN"
  445. 22250 FOR I=LR-RX TO LR
  446. 22300 GET #1,I
  447. 22350 GZ=CVI(KG$)
  448. 22400 IF GZ=LM THEN GT=GT+1
  449. 22450 NEXT I
  450. 22500 RETURN
  451. 22550 REM ************  REVIEW LAST X WORDS
  452. 22600 GOSUB 6050
  453. 22650 PRINT "ENTER THE NUMBER OF YOUR MOST RECENT VOCABULARY WORDS YOU WISH TO REVIEW"
  454. 22700 INPUT "ENTER A 0 TO RETURN TO THE MAIN MENU ";RX
  455. 22750 IF RX=0 THEN 6500
  456. 22800 IF LM$="N" THEN 22950
  457. 22850 GOSUB 22100
  458. 22900 IF GT<15 THEN GOSUB 21700
  459. 22950 FOR I=1 TO 30:US(I)=0:LI(I)=0:NEXT I:UL=0:ML=0
  460. 23000 SS=0:SR=0
  461. 23050 GOSUB 21300
  462. 23100 PRINT "ENTER [ MENU ] IN PLACE OF THE DEFINITION TO RETRUN TO MAIN MENU."
  463. 23150 PRINT "ENTER SCORE FOR YOUR SCORE"
  464. 23200 I=INT(RND*15)+1
  465. 23250 IF I>4 AND I<8 THEN 23750 
  466. 23300 TR=INT(RND*RX)+1
  467. 23350 TR=TR+(LR-RX)
  468. 23400 FOR I=1 TO JZ
  469. 23450 IF US(I)=TR THEN 23300
  470. 23500 NEXT I
  471. 23550 GOSUB 29300
  472. 23600 IF LM$="Y" AND GZ<>LM THEN 23300
  473. 23650 GOSUB 25850
  474. 23700 GOTO 23200
  475. 23750 REM ********** CALL MISS LIST ******
  476. 23800 GOSUB 25150
  477. 23850 IF TR=RW THEN 23300
  478. 23900 GOTO 23200
  479. 23950 REM ************  REVIEW ENTIRE VOCABULARY
  480. 24000 FOR I=1 TO 30:US(I)=0:LI(I)=0:NEXT I:UL=0:ML=0
  481. 24050 SS=0:SR=0
  482. 24100 RX=30
  483. 24150 IF LM$="N" THEN 24350
  484. 24200 GT=GC(LM)
  485. 24250 IF GT<15 THEN GOSUB 21700
  486. 24300 GOSUB 21300
  487. 24350 PRINT "ENTER [ MENU ] IN PLACE OF THE DEFINTION TO RETURN TO MAIN MENU."
  488. 24400 PRINT "ENTER SCORE FOR YOUR SCORE"
  489. 24450 I=INT(RND*15)+1
  490. 24500 IF I>4 AND I<8 THEN 24950
  491. 24550 TR=INT(RND*LR)+1
  492. 24600 FOR I=1 TO JZ
  493. 24650 IF US(I)=TR THEN 24450
  494. 24700 NEXT I
  495. 24750 GOSUB 29300
  496. 24800 IF LM$="Y" AND GZ<>LM THEN 24550
  497. 24850 GOSUB 25850
  498. 24900 GOTO 24450
  499. 24950 REM ********** CALL MISS LIST ******
  500. 25000 GOSUB 25150
  501. 25050 IF TR=RW THEN 24550
  502. 25100 GOTO 24450
  503. 25150 REM ************  GET ONE OFF OF MISS LIST
  504. 25200 IF ML=0 THEN RETURN
  505. 25250 MM=1
  506. 25300 I=INT(RND*ML)+1
  507. 25350 TR=LI(I)
  508. 25400 MI=I
  509. 25450 GOSUB 29300
  510. 25500 GOSUB 25850
  511. 25550 MM=0
  512. 25600 RETURN    
  513. 25650 REM SCORE **********************************************
  514. 25700 PRINT "OUT OF ";SS-1;" WORDS YOU HAVE GOTTEN ";SR;" RIGHT FOR A"
  515. 25750 PRINT "GRADE OF ";((SR/(SS-1))*100)
  516. 25800 RETURN
  517. 25850 REM ******************** TRY THE WORD **************************
  518. 25900 SS=SS+1
  519. 25950 UL=UL+1
  520. 26000 IF UL=LR THEN FOR I=1 TO 30:US(I-1)=0:NEXT I:UL=0
  521. 26050 IF UL=JZ THEN FOR I=2 TO JZ:US(I-1)=US(I):NEXT I:UL=UL-1
  522. 26100 US(UL)=TR
  523. 26150 GOSUB 6050
  524. 26200 IF SS<>1 THEN PRINT "GRADE CURRENTLY ";INT((SR/(SS-1))*100)
  525. 26250 GOSUB 45600
  526. 26300 PRINT
  527. 26350 PRINT "DEFINITION IS...";
  528. 26400 INPUT AX$
  529. 26450 IF AX$="OR" OR AX$="**OR**" THEN 26400
  530. 26500 IF AX$="SCORE" THEN GOSUB 25650:GOTO 26300
  531. 26550 IF AX$="MENU" THEN 6500
  532. 26600 IF AX$="" OR AX$=" " THEN 27200
  533. 26650 X=INSTR(DF$,AX$)
  534. 26700 IF X=0 THEN 27200
  535. 26750 PRINT "*** CORRECT *** ";DF$
  536. 26800 IF MA=0 THEN SR=SR+1
  537. 26850 IF MM=0 THEN 27000
  538. 26900 FOR IJ=MI TO ML-1:LI(IJ)=LI(IJ+1):NEXT IJ
  539. 26950 ML=ML-1
  540. 27000 FOR I=1 TO 500:NEXT I
  541. 27050 IF MA<>0 THEN MA=MA-1:GOTO 26150
  542. 27100 GOTO 27150
  543. 27150 RETURN
  544. 27200 PRINT "*** INCORRECT ANSWER ***"
  545. 27250 GOSUB 5900
  546. 27300 MA=1
  547. 27350 RW=TR
  548. 27400 IF KY$="N" THEN MA=1
  549. 27450 PRINT "DEFINITION IS...";DF$
  550. 27500 ML=ML+1
  551. 27550 IF ML>30 THEN ML=30
  552. 27600 LI(ML)=TR
  553. 27650 PRINT "STRIKE ANY KEY TO CONTINUE"
  554. 27700 X$=INKEY$
  555. 27750 IF X$="" THEN 27700
  556. 27800 GOTO 25850
  557. 27850 REM ************  REVIEW ENTIRE VOCABULARY--CONCENTRATE ON LAST X WORDS
  558. 27900 GOSUB 6050
  559. 27950 PRINT "ENTER THE NUMBER OF YOUR MOST RECENT VOCABULARY WORDS YOU WISH TO REVIEW"
  560. 28000 INPUT "ENTER A 0 TO RETURN TO THE MAIN MENU ";RX
  561. 28050 IF RX=0 THEN 6500
  562. 28100 FOR I=1 TO 30:US(I)=0:LI(I)=0:NEXT I:UL=0:ML=0
  563. 28150 SS=0:SR=0
  564. 28200 IF LM$="N" THEN 28400
  565. 28250 GOSUB 22100
  566. 28300 IF GT<15 THEN GOSUB 21700
  567. 28350 GOSUB 21300
  568. 28400 PRINT "ENTER HALT TO RETURN TO MAIN MENU"
  569. 28450 PRINT "ENTER SCORE FOR YOUR SCORE"
  570. 28500 I=INT(RND*15)+1
  571. 28550 IF I>4 AND I<8 THEN 29100
  572. 28600 IF I>7 AND I<10 THEN TR=INT(RND*LR)+1:GOTO 28750
  573. 28650 TR=INT(RND*RX)+1
  574. 28700 TR=TR+(LR-RX)
  575. 28750 FOR I=1 TO JZ
  576. 28800 IF US(I)=TR THEN 28650
  577. 28850 NEXT I
  578. 28900 GOSUB 29300
  579. 28950 IF LM$="Y" AND GZ<>LM THEN 28650
  580. 29000 GOSUB 25850
  581. 29050 GOTO 28500
  582. 29100 REM ********** CALL MISS LIST ******
  583. 29150 GOSUB 25150
  584. 29200 IF TR=RW THEN 28650
  585. 29250 GOTO 28500
  586. 29300 REM ************  READ A WORD
  587. 29350 GET #1, TR
  588. 29400 EL$=""
  589. 29450 FOR I=1 TO 12
  590. 29500 WD(1,I)=CVI(W1$(I))
  591. 29550 WD(2,I)=CVI(W2$(I))
  592. 29600 EL$=EL$ + EG$(WD(2,I))
  593. 29650 NEXT I
  594. 29700 X=INSTR(EL$,"GG")
  595. 29750 IF X=0 THEN 29850
  596. 29800 MID$(EL$,X,2)="NG"
  597. 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
  598. 29900 Z=WD(2,1)
  599. 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
  600. 30000 EL$=MID$(EL$,1,1) + "H" + MID$(EL$,2,11)
  601. 30050 GZ=CVI(KG$)
  602. 30100 IF WD(2,1)=99 THEN TR=TR+1:GOTO 29350
  603. 30150 RETURN
  604. 30200 REM ************  CORRECT ACCENTS SUBROUTINE
  605. 30250 FZ$="REPAIR"
  606. 30300 GOSUB 20800
  607. 30350 FZ$=""
  608. 30400 RETURN
  609. 30450 REM ******************* CORRECT VOCABULARY *******************
  610. 30500 MN$="ON":QK$="N":TL$="N"
  611. 30550 GOSUB 6050
  612. 30600 PRINT "ENTER WORD NUMBER TO CORRECT (0 RETURNS TO MAIN MENU)"
  613. 30650 PRINT "(THE LETTER 'S' WILL SEARCH FOR A WORD) ";
  614. 30700 INPUT TR$
  615. 30750 IF TR$="S" THEN 31700
  616. 30800 TR=VAL(TR$)
  617. 30850 IF TR<0 OR TR>LR THEN 30450
  618. 30900 IF TR=0 THEN GOTO 6500
  619. 30950 GOSUB 29300
  620. 31000 DW$=DF$
  621. 31050 GOSUB 45600
  622. 31100 PRINT "WORD NUMBER ";TR;" WORD IS A(N) ";GZ$(GZ)
  623. 31150 PRINT "DEFINITION IS ";DW$
  624. 31200 PRINT
  625. 31250 PRINT "              CHOOSE ONE OF THE FOLLOWING:"
  626. 31300 PRINT "1--- CORRECT LETTERS               5--- DELETE WORD"
  627. 31350 PRINT "2--- CORRECT ACCENTS               6--- STORE CORRECTED WORD"
  628. 31400 PRINT "3--- CORRECT DEFINITION/WORD TYPE  7--- GET ANOTHER WORD"
  629. 31450 PRINT "4--- RE-ENTER WORD FROM SCRATCH    8--- RETURN TO MAIN MENU"
  630. 31500 PRINT
  631. 31550 INPUT "                  ENTER YOUR CHOICE ";FM
  632. 31600 IF FM>8 OR FM<1 THEN 31550
  633. 31650 ON FM GOTO 32750,34000,34350,35600,36200,37150,33100,33550
  634. 31700 REM ************* SEARCH FOR A WORD **************************
  635. 31750 GOSUB 6050
  636. 31800 PRINT "ENTER A DEFINITION TO SEARCH FOR (STRIKE ENTER KEY TO ESCAPE"
  637. 31850 INPUT "SEARCH MODE) ";AX$
  638. 31900 IF AX$="" THEN 30450
  639. 31950 PRINT "SEARCHING..... POSSIBLE WORD NUMBERS ARE:"
  640. 32000 H=0
  641. 32050 FOR TR=1 TO LR
  642. 32100 GOSUB 29300
  643. 32150 X=INSTR(DF$,AX$)
  644. 32200 IF X=0 THEN 32350
  645. 32250 H=H+1
  646. 32300 PRINT TR;" ";
  647. 32350 NEXT TR
  648. 32400 PRINT 
  649. 32450 PRINT H;" MATCHES TO SEARCH FOUND "
  650. 32500 PRINT "STRIKE ANY KEY TO CONTINUE"
  651. 32550 X$=INKEY$
  652. 32600 IF X$="" THEN 32550
  653. 32650 PRINT:PRINT
  654. 32700 GOTO 30600
  655. 32750 REM *********** CORRECT LETTERS
  656. 32800 GOSUB 45600
  657. 32850 INPUT "DO YOU WISH TO CORRECT THE LETTERS IN THIS WORD? ";AX$
  658. 32900 IF AX$<>"Y" AND AX$<>"N" THEN 32850
  659. 32950 IF AX$="N" THEN GOSUB 6050:GOTO 31050
  660. 33000 GOSUB 18200
  661. 33050 GOTO 32750
  662. 33100 REM *********** GET ANOTHER WORD *********************
  663. 33150 PRINT "DO YOU WISH TO GET SOME OTHER WORD? "
  664. 33200 PRINT "BE WARNED....ANY CHANGES YOU HAVE MADE TO THE "
  665. 33250 PRINT "CURRENT WORD WILL BE DROPPED UNLESS YOU HAVE TAKEN OPTION 6"
  666. 33300 PRINT "AND STORED YOUR CHANGES TO DISK. STILL WANT ANOTHER WORD?"
  667. 33350 INPUT "ENTER Y TO GET ANOTHER WORD, N TO KEEP CURRENT WORD";AX$
  668. 33400 IF AX$<>"Y" AND AX$<>"N" THEN 33350
  669. 33450 IF AX$="N" THEN GOSUB 6050:GOTO 31050
  670. 33500 GOTO 30450
  671. 33550 REM ********* RETURN TO MAIN MENU ***************
  672. 33600 PRINT "DO YOU WISH TO RETURN TO MAIN MENU? "
  673. 33650 PRINT "BE WARNED...ANY CHANGES YOU HAVE MADE TO THE "
  674. 33700 PRINT "CURRENT WORD WILL BE DROPPED UNLESS YOU HAVE TAKEN OPTION 6"
  675. 33750 PRINT "AND STORED YOUR CHANGES TO DISK. DO YOU STILL WISH TO RETURN"
  676. 33800 INPUT "TO THE MAIN MENU? ENTER Y TO RETURN, N TO STAY IN CORRECTION MODE ";AX$
  677. 33850 IF AX$<>"Y" AND AX$<>"N" THEN 33550
  678. 33900 IF AX$="N" THEN GOSUB 6050:GOTO 31050
  679. 33950 GOTO 6500
  680. 34000 REM *********** CORRECT ACCENTS ***************************
  681. 34050 GOSUB 45600
  682. 34100 INPUT "DO YOU WISH TO CORRECT THE ACCENTS IN THIS WORD? ";AX$
  683. 34150 IF AX$<>"Y" AND AX$<>"N" THEN 34100
  684. 34200 IF AX$="N" THEN GOSUB 6050:GOTO 31050
  685. 34250 GOSUB 30200
  686. 34300 GOTO 34000
  687. 34350 REM *********** CORRECT DEFINITION ****************
  688. 34400 INPUT "DO YOU WISH TO CORRECT THE DEFINITION OF THIS WORD? ";AX$
  689. 34450 IF AX$<>"Y" AND AX$<>"N" THEN 34400
  690. 34500 IF AX$="N" THEN 35000
  691. 34550 PRINT "ENTER NEW DEFINITION "
  692. 34600 INPUT DW$
  693. 34650 IF LEN(DW$)>65 THEN PRINT "DEFINITION IS TOO LONG":GOTO 34550
  694. 34700 PRINT "DEFINITION OK? "
  695. 34750 INPUT AX$
  696. 34800 IF AX$<>"N" AND AX$<>"Y" THEN 34700
  697. 34850 IF AX$="N" THEN 34550
  698. 34900 LSET DF$=DW$
  699. 34950 GOSUB 6050:GOTO 31050
  700. 35000 REM ************* CORRECT WORD TYPE **********************
  701. 35050 PRINT "THIS WORD IS CURRENTLY STORED AS AN ";GZ$(GZ)
  702. 35100 PRINT "DO YOU WISH TO CHANGE THIS? ";
  703. 35150 INPUT AX$
  704. 35200 IF AX$="N" THEN GOSUB 6050:GOTO 31050
  705. 35250 GC(GZ)=GC(GZ)-1
  706. 35300 PRINT "WHAT KIND OF A WORD IS THIS? SELECT ONE OF THE FOLLOWING:"
  707. 35350 PRINT "1. VERB  2. NOUN  3. PRONOUN  4. ADJECTIVE  5. ADVERB  6. OTHER"
  708. 35400 PRINT "ENTER CHOICE (1-6) ";
  709. 35450 INPUT GZ
  710. 35500 GC(GZ)=GC(GZ)+1
  711. 35550 GOSUB 6050:GOTO 31050
  712. 35600 REM ********** RE-ENTER WORD ****************************
  713. 35650 GOSUB 6050
  714. 35700 GOSUB 45600
  715. 35750 PRINT "WOULD YOU LIKE TO RE-ENTER THIS WORD FROM SCRATCH? "
  716. 35800 PRINT "THIS IS THE ONLY WAY TO CHANGE THE NUMBER OF LETTERS "
  717. 35850 INPUT "IN THIS WORD....(ENTER Y TO RE-ENTER, N TO KEEP) ";AX$
  718. 35900 IF AX$<>"Y" AND AX$<>"N" THEN 35600
  719. 35950 IF AX$="N" THEN 30950
  720. 36000 FZ$="REPAIR"
  721. 36050 GOSUB 10050
  722. 36100 FZ$=""
  723. 36150 GOTO 30450
  724. 36200 REM ******** DELETE WORD *********
  725. 36250 IF TR=LR THEN 36700
  726. 36300 PRINT "NOTE: DELETED WORDS MAKE DISK SPACE VERY INEFFICIENT"
  727. 36350 PRINT "IT IS BETTER TO RE-ENTER WORD FROM SCRATCH THAN TO DELETE"
  728. 36400 INPUT "DO YOU WISH TO DELETE THIS WORD? ";AX$
  729. 36450 IF AX$<>"N" AND AX$<>"Y" THEN 36400
  730. 36500 IF AX$="N" THEN GOSUB 6050:GOTO 31050
  731. 36550 WD(2,1)=99:PRINT "NOW DELETING WORD # ";TR
  732. 36600 LR=LR-1
  733. 36650 GOTO 37550
  734. 36700 PRINT "THIS IS CURRENTLY THE LAST WORD IN THE FILE"
  735. 36750 GOSUB 5900:GOSUB 5900:GOSUB 5900
  736. 36800 PRINT "THE LAST RECORD CANNOT BE DELETED"
  737. 36850 PRINT "WHY DON'T YOU TRY RE-ENTERING SOME OTHER"
  738. 36900 PRINT "WORD FROM SCRATCH IN ITS PLACE?"
  739. 36950 PRINT "STRIKE ANY KEY TO CONTINUE"
  740. 37000 X$=INKEY$
  741. 37050 IF X$="" THEN 37000
  742. 37100 GOTO 30450
  743. 37150 REM ******* WRITE CORRECTED WORD TO DISK **********
  744. 37200 GOSUB 6050
  745. 37250 GOSUB 45600
  746. 37300 PRINT "DEFINITION IS ";DF$
  747. 37350 INPUT "READY TO WRITE THIS CORRECTED WORD TO DISK? ";AX$
  748. 37400 IF AX$<>"Y" AND AX$<>"N" THEN 37350
  749. 37450 IF AX$="N" THEN GOSUB 6050:GOTO 31050
  750. 37500 PRINT "NOW STORING ON RECORD NUMBER ";TR
  751. 37550 ON ERROR GOTO 45250
  752. 37600 FOR I=1 TO 12
  753. 37650 LSET W1$(I)=MKI$(WD(1,I))
  754. 37700 LSET W2$(I)=MKI$(WD(2,I))
  755. 37750 NEXT I
  756. 37800 LSET DF$=DW$
  757. 37850 LSET KG$=MKI$(GZ)
  758. 37900 PUT #1,TR
  759. 37950 ON ERROR GOTO 0
  760. 38000 GOTO 30450
  761. 38050 REM ************  PRINT ENTIRE VOCABULARY
  762. 38100 SH$="Y"
  763. 38150 PRINT "DO YOU WISH TO PRINT ACTUAL GREEK? ";
  764. 38200 INPUT SH$
  765. 38250 IF SH$<>"Y" AND SH$<>"N" THEN 38150
  766. 38300 PRINT "DO YOU WISH TO PRINT OUT THE ENTIRE VOCABULARY? (Y OR N)";
  767. 38350 INPUT AX$
  768. 38400 IF AX$<>"Y" AND AX$<>"N" THEN 38300
  769. 38450 BV=1: LV=LR:IP=0
  770. 38500 IF AX$="Y" THEN 39000
  771. 38550 PRINT "DO YOU WISH TO PRINT OUT PART OF THE VOCABULARY? (Y OR N)";
  772. 38600 INPUT AX$
  773. 38650 IF AX$<>"Y" AND AX$<>"N" THEN 38550
  774. 38700 IF AX$="N" THEN 6500
  775. 38750 INPUT "ENTER FIRST WORD NUMBER TO LIST ";BV
  776. 38800 INPUT "ENTER LAST WORD NUMBER TO LIST ";LV
  777. 38850 IF BV<1 THEN BV=1
  778. 38900 IF LV>LR THEN LV=LR
  779. 38950 GOTO 39200
  780. 39000 PRINT "DO YOU WANT A SORTED LISTING? ";
  781. 39050 INPUT AX$
  782. 39100 IF AX$<>"Y" AND AX$<>"N" THEN 39000
  783. 39150 IF AX$="Y" THEN 39550
  784. 39200 FOR TR=BV TO LV
  785. 39250 GOSUB 29300
  786. 39300 GOSUB 41400
  787. 39350 NEXT TR
  788. 39400 LPRINT STRING$(70,"*")
  789. 39450 LPRINT CHR$(12);CHR$(12)
  790. 39500 GOTO 6500
  791. 39550 REM ************ SORT ROUTINE **********************
  792. 39600 GOSUB 6050:PRINT "STANDBY FOR SORT (THIS WILL TAKE A WHILE)" 
  793. 39650 DIM SO$(LR), SO(LR)
  794. 39700 FOR TR=1 TO LR
  795. 39750 GOSUB 29300:PRINT "RECORD ";TR:GOSUB 6200
  796. 39800 FOR I=1 TO 11
  797. 39850 IF WD(2,I)=29 AND WD(2,I+1)=29 THEN WL=I-1:GOTO 39950
  798. 39900 NEXT I
  799. 39950 CD$="":FOR I=1 TO WL STEP 1 
  800. 40000 Z=WD(2,I)
  801. 40050 ZX=Z+65
  802. 40100 IF Z=29 THEN ZX=64
  803. 40150 CD$=CD$+CHR$(ZX)
  804. 40200 NEXT I
  805. 40250 SO$(TR)=CD$:SO(TR)=TR 
  806. 40300 NEXT TR
  807. 40350 PRINT 
  808. 40400 PRINT "FIRST PASS COMPLETE, BEGINNING SECOND PASS":PRINT
  809. 40450 FOR I=1 TO LR-1
  810. 40500 FOR J=1 TO LR-1
  811. 40550 IF SO$(J)<SO$(J+1) THEN 40750
  812. 40600 TP$=SO$(J):TP=SO(J)
  813. 40650 SO$(J)=SO$(J+1):SO(J)=SO(J+1)
  814. 40700 SO$(J+1)=TP$:SO(J+1)=TP
  815. 40750 NEXT J
  816. 40800 GOSUB 6200:PRINT "WORD # ";I
  817. 40850 NEXT I
  818. 40900 PRINT "SORT COMPLETE....BEGINNING PRINTOUT"
  819. 40950 FOR SI=1 TO LR
  820. 41000 TR=SO(SI)
  821. 41050 IF TR<1 OR TR>LR THEN 41150
  822. 41100 GOSUB 29300:GOSUB 41400
  823. 41150 NEXT SI
  824. 41200 LPRINT STRING$(70,"*")
  825. 41250 LPRINT CHR$(12);CHR$(12)
  826. 41300 ERASE SO$, SO
  827. 41350 GOTO 6500
  828. 41400 REM ************ PRINT A WORD ROUTINE
  829. 41450 IP=IP+1
  830. 41500 IF SH$="N" AND IP<>9 THEN 41750
  831. 41550 IF SH$="N" AND IP=9 THEN 41650
  832. 41600 IF IP<>4 THEN 41750
  833. 41650 IP=1:LPRINT STRING$(70,"*")
  834. 41700 LPRINT CHR$(12)
  835. 41750 LPRINT STRING$(70,"*")
  836. 41800 LPRINT "WORD NUMBER ";TR;" WORD TYPE IS ";GZ$(GZ);" DEFINITION IS "
  837. 41850 LPRINT DF$
  838. 41900 LPRINT
  839. 41950 IF SH$="N" THEN 43400
  840. 42000 FOR I = 1 TO 11
  841. 42050 IF WD(2,I)=29 AND WD(2,I+1)=29 THEN WL=I-1:GOTO 42250
  842. 42100 NEXT I
  843. 42150 IF WD(2,12)=29 THEN WL=11
  844. 42200 IF WD(2,12)<>29 THEN WL=12
  845. 42250 Z=WD(2,1)
  846. 42300 TX=INT((12-WL)/2)*6
  847. 42350 SX$=""
  848. 42400 IF WL<12 THEN SX$=" "
  849. 42450 FOR J=1 TO 3
  850. 42500 LPRINT TAB(TX);
  851. 42550 FOR I=1 TO WL
  852. 42600 Z=WD(1,I)
  853. 42650 LPRINT ACC$(Z,J);
  854. 42700 LPRINT SX$;
  855. 42750 NEXT I
  856. 42800 NEXT J
  857. 42850 LPRINT
  858. 42900 FOR J=1 TO 9
  859. 42950 LPRINT TAB(TX);
  860. 43000 FOR I=1 TO WL
  861. 43050 Z=WD(2,I)
  862. 43100 LPRINT LETT$(Z,J);
  863. 43150 LPRINT SX$;
  864. 43200 NEXT I
  865. 43250 LPRINT
  866. 43300 NEXT J
  867. 43350 LPRINT
  868. 43400 X=LEN(EL$)
  869. 43450 Y=40-X/2
  870. 43500 IF SH$="N" THEN Y=1
  871. 43550 LPRINT TAB(Y);EL$
  872. 43600 LPRINT
  873. 43650 RETURN
  874. 43700 REM ************  WRITE RECORD TO DISK
  875. 43750 ON ERROR GOTO 45250
  876. 43800 PRINT "WHAT IS THE DEFINITION OF THIS WORD?"
  877. 43850 INPUT DW$
  878. 43900 IF LEN(DW$)>65 THEN PRINT "YOUR DEFINITION IS TOO LONG, PLEASE ENTER A SHORTER ONE":GOTO 43800
  879. 43950 PRINT "WHAT KIND OF WORD IS THIS? SELECT ONE OF THE FOLLOWING:"
  880. 44000 PRINT "1. VERB   2. NOUN  3. PRONOUN  4. ADJECTIVE  5. ADVERB  6. OTHER"
  881. 44050 PRINT "ENTER CHOICE (1-6) ";
  882. 44100 INPUT GZ
  883. 44150 IF GZ<1 OR GZ>6 THEN 44050
  884. 44200 INPUT "READY TO WRITE ON DISK? (Y OR N) ";AX$
  885. 44250 IF AX$<>"Y" AND AX$<>"N" THEN 44200
  886. 44300 IF AX$="N" THEN 43800
  887. 44350 IF FZ$<>"REPAIR" THEN 44500
  888. 44400 LHOLD=LR
  889. 44450 LR=TR-1
  890. 44500 PRINT "STORING ON DISK RECORD ";LR+1
  891. 44550 GC(GZ)=GC(GZ)+1
  892. 44600 LSET KG$=MKI$(GZ)
  893. 44650 FOR I=1 TO 12
  894. 44700 LSET W1$(I)=MKI$(WD(1,I))
  895. 44750 LSET W2$(I)=MKI$(WD(2,I))
  896. 44800 NEXT I
  897. 44850 LSET DF$=DW$
  898. 44900 LSET KG$=MKI$(GZ)
  899. 44950 LR=LR+1
  900. 45000 PUT #1,LR
  901. 45050 ON ERROR GOTO 0
  902. 45100 IF FZ$<>"REPAIR" THEN RETURN
  903. 45150 LR=LHOLD
  904. 45200 RETURN
  905. 45250 REM ************  ERROR CONTROL
  906. 45300 PRINT "ERROR IS ";ERR
  907. 45350 IF ERR=61 THEN PRINT "YOUR DISK IS OUT OF SPACE"
  908. 45400 PRINT "PRESS ANY KEY TO CONTINUE"
  909. 45450 X$=INKEY$
  910. 45500 IF X$="" THEN 45450
  911. 45550 RESUME NEXT
  912. 45600 REM ************  DISPLAY WORD ROUTINE
  913. 45650 FOR I = 1 TO 11
  914. 45700 IF WD(2,I)=29 AND WD(2,I+1)=29 THEN WL=I-1:GOTO 45900
  915. 45750 NEXT I
  916. 45800 IF WD(2,12)=29 THEN WL=11
  917. 45850 IF WD(2,12)<>29 THEN WL=12
  918. 45900 Z=WD(2,1)
  919. 45950 TX=INT((12-WL)/2)*6
  920. 46000 SX$=""
  921. 46050 IF WL<12 THEN SX$=" "
  922. 46100 FOR J=1 TO 3
  923. 46150 PRINT TAB(TX);
  924. 46200 FOR I=1 TO WL
  925. 46250 Z=WD(1,I)
  926. 46300 PRINT ACC$(Z,J);
  927. 46350 PRINT SX$;
  928. 46400 NEXT I
  929. 46450 NEXT J
  930. 46500 PRINT
  931. 46550 REM CALL POINT FOR NEW WORD
  932. 46600 FOR J=1 TO 9
  933. 46650 PRINT TAB(TX);
  934. 46700 FOR I=1 TO WL
  935. 46750 Z=WD(2,I)
  936. 46800 PRINT LETT$(Z,J);
  937. 46850 PRINT SX$;
  938. 46900 NEXT I
  939. 46950 PRINT
  940. 47000 NEXT J
  941. 47050 PRINT
  942. 47100 X=LEN(EL$)
  943. 47150 Y=40-X/2
  944. 47200 PRINT TAB(Y);EL$
  945. 47250 RETURN
  946. 47300 REM ************  LETTER DATA MATCH SUBROUTINE
  947. 47350 PRINT "INPUT YOUR CHOICE FOR LETTER NUMBER ";IX
  948. 47400 INPUT IZ
  949. 47450 IF IZ<>28 THEN 47800
  950. 47500 IF WX=1 THEN 47650
  951. 47550 IF WX>2 AND WD(2,WX-1)=29 THEN 47650
  952. 47600 GOTO 47800
  953. 47650 PRINT "DOUBLE BLANKS OR BLANKS AT THE BEGINNING OF A WORD"
  954. 47700 PRINT "ARE NOT ALLOWED, PLEASE TRY SOMETHING ELSE"
  955. 47750 GOTO 47350
  956. 47800 IF IZ=0 THEN GOSUB 6050:GOSUB 10900:GOSUB 45600:GOTO 47300
  957. 47850 IF IZ>30 OR IZ<1 THEN 47400
  958. 47900 IF IZ=30 THEN 49500
  959. 47950 ID=IZ
  960. 48000 IF IZ=2 THEN ID=3
  961. 48050 IF IZ=3 THEN ID=4
  962. 48100 IF IZ=4 THEN ID=5
  963. 48150 IF IZ=5 THEN ID=6
  964. 48200 IF IZ=6 THEN ID=7
  965. 48250 IF IZ=7 THEN ID=8
  966. 48300 IF IZ=8 THEN ID=10
  967. 48350 IF IZ=9  THEN ID=11
  968. 48400 IF IZ=10 THEN ID=12
  969. 48450 IF IZ=11 THEN ID=13
  970. 48500 IF IZ=12 THEN ID=14
  971. 48550 IF IZ=13 THEN ID=15
  972. 48600 IF IZ=14 THEN ID=16
  973. 48650 IF IZ=15 THEN ID=17
  974. 48700 IF IZ=16 THEN ID=18
  975. 48750 IF IZ=17 THEN ID=19
  976. 48800 IF IZ=18 THEN ID=20
  977. 48850 IF IZ=19 THEN ID=22
  978. 48900 IF IZ=20 THEN ID=23
  979. 48950 IF IZ=21 THEN ID=24
  980. 49000 IF IZ=22 THEN ID=25
  981. 49050 IF IZ=23 THEN ID=26
  982. 49100 IF IZ=24 THEN ID=27
  983. 49150 IF IZ=25 THEN ID=2 
  984. 49200 IF IZ=26 THEN ID=19
  985. 49250 IF IZ=27 THEN ID=28
  986. 49300 IF IZ=28 THEN ID=29
  987. 49350 IF IZ=28 AND WD(2,WX-1)=20 THEN WD(2,WX-1)=21
  988. 49400 IF IZ=29 THEN ID=30 
  989. 49450 WD(2,WX)=ID
  990. 49500 RETURN
  991. 49550 DATA "ALPHA","ALPHA-IOTA DIPTHONG","BETA","GAMMA","DELTA","EPSILON","ZETA"
  992. 49600 DATA "ETA","ETA-IOTA DIPTHONG","THETA","IOTA","KAPPA","LAMBDA","MU","NU"
  993. 49650 DATA "XI","OMICRON","PI","RHO","SIGMA","FINAL SIGMA","TAU","UPSILON"
  994. 49700 DATA "PHI","CHI","PSI","OMEGA","OMEGA-IOTA DIPTHONG","BLANK","HYPHEN"
  995. 49750 DATA "SMOOTH BREATH","ROUGH BREATH","ACUTE","CIRCUMFLEX","GRAVE"
  996. 49800 DATA "DIAERSIS","SMOOTH + GRAVE","SMOOTH + ACUTE", "SMOOTH + CIRC."
  997. 49850 DATA "ROUGH + GRAVE", "ROUGH + ACUTE", "ROUGH + CIRC.","CORONIS"
  998. 49900 DATA "APOSTROPHE","BLANK (NO MARK)"
  999. 49950 DATA "A","AI","B","G","D","E","Z","E","EI","TH","I","K","L","M","N"
  1000. 50000 DATA "X","O","P","R","S","S","T","U","PH","CH","PS","O","OI"," ","-"
  1001. 50050 DATA "VERB","NOUN","PRONOUN","ADJECTIVE","ADVERB","OTHER"
  1002. ,"O","P","R","S","S","T","U","PH","CH","PS",