home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib28b.dsk / WORD.ELEVATOR.bas < prev   
BASIC Source File  |  2023-02-26  |  15KB  |  292 lines

  1. 10  REM **********************
  2. 20  REM *   WORD.ELEVATOR    *
  3. 30  REM *    BY GARY KNOX    *
  4. 40  REM * COPYRIGHT (C) 1986 *
  5. 50  REM * BY MICROSPARC, INC *
  6. 60  REM * CONCORD, MA  01742 *
  7. 70  REM **********************
  8. 80  IF  PEEK(104) < >16  THEN  POKE 104,16: POKE 103,1: POKE 4096,0: PRINT  CHR$(4)"RUN WORD.ELEVATOR"
  9. 90  TEXT : HOME :D$ =  CHR$(4): GOSUB 2730: PRINT : GOTO 120
  10. 100  REM  ** TIMER **
  11. 110 T = T +1:T$ =  STR$( INT(T)): VTAB 22: HTAB (23 - LEN(T$)): PRINT T$:P =  PEEK( -16336): RETURN 
  12. 120 D$ =  CHR$(4): PRINT : GOTO 2860
  13. 130  DIM S$(100),F(2,10),WL$(2,10),B$(100),B(100),WR(100)
  14. 140  GOTO 2180
  15. 150 D$ =  CHR$(4)
  16. 160  GOSUB 1740: GOSUB 1280
  17. 170  IF NL = 0  THEN  HOME : PRINT "NO WORD LISTS...": VTAB 8: PRINT "SELECT CREATE A WORD LIST.": GOTO 2840
  18. 180  REM  ** ELEVATOR & WORD MOTION **
  19. 190 MI = 0
  20. 200  FOR K = 1 TO 6:KP =  PEEK( -16384): NEXT 
  21. 210  POKE  -16368,0
  22. 220  GOSUB 110
  23. 230  IF KP = 193  THEN EU =  -8
  24. 240  IF KP = 218  THEN EU = 8
  25. 250  IF KP = 136  THEN EU = 0: GOTO 430
  26. 260  IF KP = 149  AND EC = 0  THEN EU = 0: GOTO 610
  27. 270  IF EU = 0  THEN 200
  28. 280 L =  INT(EP/8)
  29. 290  IF DI = 1  THEN 310
  30. 300  IF EP +EU >(BT)  OR (EP) +EU <45  THEN EU = 0: GOTO 200
  31. 310  GOSUB 110
  32. 320  HCOLOR= 0: HPLOT 100,EP TO 180,EP
  33. 330  IF EC = 1  THEN  HTAB 16: VTAB L: PRINT "            ": REM  12 SPACES
  34. 340 EP = EP +EU
  35. 350  HCOLOR= 3: HPLOT 100,EP TO 180,EP
  36. 360 L =  INT(EP/8)
  37. 370  HTAB 16: VTAB L: PRINT E$
  38. 380  IF DI = 1  THEN  RETURN 
  39. 390  POKE  -16368,0
  40. 400 EU = 0
  41. 410  GOTO 200
  42. 420  REM   ** MOVE LEFT SIDE **
  43. 430 L =  INT(EP/8)
  44. 440  IF EC = 1  AND WL$(1,L -5) = ""  THEN 520
  45. 450  IF EC = 0  AND WL$(1,L -5) < >""  THEN 470
  46. 460  GOTO 200
  47. 470  HTAB 2: VTAB L: PRINT "            ": REM 12 SPACES
  48. 480  GOSUB 110:ND = ND -1:EC = 1
  49. 490  HTAB 16: VTAB L:E$ = WL$(1,L -5): PRINT E$:WL$(1,L -5) = ""
  50. 500  IF L < >6  THEN  HPLOT 0,(L -6) *8 +40 TO 90,(L -6) *8 +40
  51. 510  GOTO 200
  52. 520  HTAB 16: VTAB L: PRINT "            ": REM 12 SPACES
  53. 530  GOSUB 110:KP = 0
  54. 540  HTAB 2: VTAB L: PRINT E$
  55. 550  IF L < >6  THEN  HPLOT 0,(L -6) *8 +40 TO 90,(L -6) *8 +40
  56. 560 WL$(1,L -5) = E$:E$ = ""
  57. 570 ND = ND +1: IF ND = N  THEN 710
  58. 580  IF DI = 1  THEN  RETURN 
  59. 590 EC = 0: GOTO 200
  60. 600  REM   ** MOVE RIGHT SIDE **
  61. 610 L =  INT(EP/8)
  62. 620  IF WL$(2,L -5) = ""  THEN 200
  63. 630  HTAB 28: VTAB L: PRINT "            ": REM  12 SPACES
  64. 640  IF L < >6  THEN  HPLOT 185,(L -6) *8 +40 TO 279,(L -6) *8 +40
  65. 650 EC = 1
  66. 660  GOSUB 110
  67. 670  HTAB 16: VTAB L: PRINT WL$(2,L -5):E$ = WL$(2,L -5):WL$(2,L -5) = ""
  68. 680  IF DI = 1  THEN 2050
  69. 690  GOTO 200
  70. 700  REM  ** CHECK WORD ORDER **
  71. 710 T =  INT(T): FOR K = 1 TO N -1
  72. 720  POKE 8,0
  73. 730  IF WL$(1,K) >WL$(1,K +1)  THEN 1120
  74. 740  NEXT K
  75. 750  REM  ** WORDS ARE RIGHT **
  76. 760 X2 = 279:Y2 = 159:BT = BT +4:Y1 = BT
  77. 770  FOR X1 = 0 TO 279  STEP 5: HPLOT X1,Y1 TO X2,Y2:X2 = X2 -5: NEXT X1:X1 = X1 -5:X2 = X2 +5
  78. 780 CC =  INT(7 * RND(1)) +1: IF CC = 4  THEN 780
  79. 790  HCOLOR= CC: FOR Y1 = BT TO 159  STEP 5: HPLOT X1,Y1 TO X2,Y2:Y2 = Y2 -5: NEXT Y1
  80. 800  FOR Y = 160 TO 190: HPLOT 1,Y TO 106,Y: HPLOT 166,Y TO 278,Y: NEXT Y
  81. 810  VTAB 22: HTAB 2: PRINT " YOUR TIME-->";: HTAB 26: PRINT " GOOD WORK! "
  82. 820  VTAB ( INT((BT +159)/2)/8) +1: HTAB 12: PRINT " PRESS <RETURN> ": GET A$: PRINT : IF  ASC(A$) < >13  THEN 820
  83. 830  REM  ** LIST BEST SCORES **
  84. 840 FL = 0:MI = 0
  85. 850 KZ = 0:K = 0
  86. 860 K = K +1: IF NB = 0  THEN 910
  87. 870  IF WR(K) = N  AND KZ = 10  THEN 1230
  88. 880  IF T >B(K)  THEN 990
  89. 890  IF FL = 1  THEN 990
  90. 900  IF KZ > = 10  THEN 990
  91. 910  IF KZ = 0  THEN  GOSUB 2920
  92. 920  INPUT "ENTER YOUR NAME ";K$: IF K$ = ""  THEN  HTAB 1: CALL  -998: CALL  -868: GOTO 920
  93. 930 NB = NB +1: IF NB = 1  AND FL = 0  THEN 970
  94. 940  FOR L = NB TO K +1  STEP  -1
  95. 950 B$(L) = B$(L -1):B(L) = B(L -1):WR(L) = WR(L -1)
  96. 960  NEXT L
  97. 970  CALL  -1008: HTAB 1: CALL  -868
  98. 980 B$(K) = K$:B(K) = T:WR(K) = N:FL = 1
  99. 990  IF WR(K) = N  AND KZ = 0  THEN  GOSUB 2920
  100. 1000  IF WR(K) = N  THEN KZ = KZ +1: PRINT KZ") "B$(K);: HTAB 25: PRINT B(K)
  101. 1010  IF K <NB  THEN 860
  102. 1020  IF FL = 0  AND KZ <10  THEN FL = 1:K = K +1: GOTO 910
  103. 1030  IF FL = 0  THEN  PRINT : INVERSE : PRINT "YOUR TIME WAS";: HTAB 24: PRINT " "T" ": NORMAL 
  104. 1040  IF KZ = 0  THEN 1100
  105. 1050  VTAB 23: PRINT "PRESS <RETURN> KEY ";: GET A$: IF  ASC(A$) < >13  THEN  HTAB 1: GOTO 1050
  106. 1060  IF FL = 0  THEN  PRINT : GOTO 1100
  107. 1070  REM  ** SAVE BEST SCORES **
  108. 1080  PRINT : PRINT D$;"OPEN BEST": PRINT D$;"WRITE BEST": PRINT NB
  109. 1090  FOR K = 1 TO NB: PRINT B$(K): PRINT B(K): PRINT WR(K): NEXT : PRINT D$;"CLOSE"
  110. 1100  CLEAR : GOTO 120
  111. 1110  REM  ** WORDS ARE WRONG **
  112. 1120  TEXT : HOME : PRINT "YOUR LIST WAS OUT OF ORDER.": FOR KK = 1 TO 20:A =  PEEK( -16336): NEXT : FOR KK = 1 TO 1000: NEXT : PRINT 
  113. 1130  PRINT "YOUR LIST";: HTAB 25: PRINT "CORRECT LIST": PRINT 
  114. 1140  FOR K = 1 TO N: PRINT WL$(1,K): NEXT K
  115. 1150  VTAB 5:PP = 1:FL = 1:MI = 1
  116. 1160 L$ = WL$(1,1):LL = 1
  117. 1170  FOR KK = 1 TO N: IF L$ >WL$(1,KK)  THEN L$ = WL$(1,KK):LL = KK
  118. 1180  NEXT KK
  119. 1190  HTAB 25: PRINT L$:WL$(1,LL) = "ZZZZZZZZZZZZZ": IF PP = N  THEN 1210
  120. 1200 PP = PP +1: GOTO 1160
  121. 1210  VTAB 23: PRINT "PRESS <RETURN> KEY.. ";: GET A$: PRINT : IF  ASC(A$) < >13  THEN 1210
  122. 1220  GOTO 850
  123. 1230  FOR TT = NB TO 1  STEP  -1: IF WR(TT) = N  THEN 1250
  124. 1240  NEXT TT
  125. 1250  FOR RR = TT TO NB:B$(RR) = B$(RR +1):B(RR) = B(RR +1):WR(RR) = WR(RR +1): NEXT RR:NB = NB -1
  126. 1260  GOTO 990
  127. 1270  REM  ** GET WORD LISTS **
  128. 1280  PRINT D$;"OPEN LISTS": PRINT D$;"READ LISTS": INPUT NL: PRINT D$;"CLOSE"
  129. 1290  IF NL = 0  THEN  RETURN 
  130. 1300  IF NL = 1  THEN LI = 1: GOTO 1320
  131. 1310  HOME : VTAB 10: PRINT "WHICH WORD LIST DO YOU WANT?": PRINT : PRINT "YOUR CHOICES ARE LIST NUMBERS 1 TO "NL;: INPUT " ";NL$:LI =  VAL(NL$): IF LI <1  OR LI >NL  THEN 1310
  132. 1320  PRINT D$;"OPEN WORDLIST"LI",L26"
  133. 1330  PRINT D$;"READ WORDLIST"LI",R0"
  134. 1340  INPUT NW
  135. 1350  FOR K = 1 TO NW
  136. 1360  PRINT D$;"READ WORDLIST"LI",R"K
  137. 1370  INPUT S$(K): NEXT K
  138. 1380  PRINT D$;"CLOSE"
  139. 1390  HOME : VTAB 10: PRINT "ENTER THE NUMBER OF WORDS YOU WANT"
  140. 1400  PRINT : PRINT "TO ALPHABETIZE ON THE ELEVATOR.": PRINT 
  141. 1410 WN = 10
  142. 1420  IF NW < = 10  THEN WN = NW
  143. 1430  PRINT "ENTER A NUMBER FROM 2 TO "WN;: INPUT " ";N$:N =  VAL(N$): IF N <2  OR N >WN  THEN  VTAB 14: HTAB 1: CALL  -868: GOTO 1430
  144. 1440  FOR K = 1 TO N
  145. 1450 T$ = S$( INT(NW * RND(1)) +1)
  146. 1460  IF K = 1  THEN 1500
  147. 1470  FOR L = 1 TO K -1
  148. 1480  IF T$ = WL$(2,L)  THEN 1450
  149. 1490  NEXT L
  150. 1500 WL$(2,K) = T$
  151. 1510  NEXT K
  152. 1520  REM  ** DRAW ELEVATOR **
  153. 1530  HGR2 : HCOLOR= 3
  154. 1540  IF  PEEK(2051) = 141  THEN 1560
  155. 1550  PRINT D$;"BLOAD PRINTER": PRINT D$"BLOADPTABLE": IF  PEEK(48896) = 76  THEN  POKE 2050,216: PRINT  CHR$(4)"PR# A$802": POKE 8,0: GOTO 1570
  156. 1560  POKE 54,3: POKE 55,8: POKE 8,0
  157. 1570  HPLOT 0,0 TO 279,0 TO 279,191 TO 0,191 TO 0,0: HPLOT 0,159 TO 279,159: HPLOT 0,35 TO 279,35
  158. 1580 CL =  INT(7 * RND(1)) +1: HCOLOR= CL
  159. 1590  FOR Y = 1 TO 34: HPLOT 2,Y TO 277,Y: NEXT Y: HCOLOR= 3
  160. 1600  VTAB 2: HTAB 8: PRINT " W O R D   E L E V A T O R ": PRINT 
  161. 1610  HTAB 2: PRINT "ALPHABETIZED";: HTAB 30: PRINT "WORD LIST": PRINT 
  162. 1620  POKE 8,1: FOR K = 1 TO N: HTAB 28: PRINT WL$(2,K): NEXT 
  163. 1630  FOR K = 1 TO N: HPLOT 0,K *8 +40 TO 90,K *8 +40: HPLOT 185,K *8 +40 TO 279,K *8 +40: NEXT K
  164. 1640  FOR KK = (K -1) *8 +42 TO (K -1) *8 +44: HPLOT 0,KK TO 279,KK: NEXT 
  165. 1650 EM = 0:EU = 0
  166. 1660  POKE 8,0: HTAB 19: VTAB 21: INVERSE : PRINT "TIME": NORMAL 
  167. 1670  HTAB 18: PRINT "00000":T = 0:EP = (K -1) *8 +40:BT = EP
  168. 1680  HPLOT 108,159 TO 108,191: HPLOT 164,159 TO 164,191: HPLOT 100,(K -1) *8 +40 TO 178,(K -1) *8 +40
  169. 1690  HCOLOR= CL: FOR Y = 160 TO 190: HPLOT 2,Y TO 106,Y: HPLOT 166,Y TO 277,Y: NEXT Y
  170. 1700  VTAB 22
  171. 1710  HTAB 2: PRINT " <A>ELEV UP   ";: HTAB 25: PRINT " <-- LEFT SIDE "
  172. 1720  HTAB 2: PRINT " <Z>ELEV DOWN ";: HTAB 25: PRINT " --> RIGHT SIDE"
  173. 1730  HCOLOR= 3: POKE 8,1: RETURN 
  174. 1740  REM  ** GET BEST SCORES **
  175. 1750  PRINT D$;"OPEN BEST": PRINT D$;"READ BEST": INPUT NB: IF NB = 0  THEN 1770
  176. 1760  FOR K = 1 TO NB: INPUT B$(K),B(K),WR(K): NEXT 
  177. 1770  PRINT D$;"CLOSE": RETURN 
  178. 1780  REM  ** MAKE WORD LIST **
  179. 1790  IF A$ = "N"  THEN  RETURN 
  180. 1800  PRINT 
  181. 1810 D$ =  CHR$(4)
  182. 1820  PRINT D$"OPEN LISTS": PRINT D$"READ LISTS"
  183. 1830  INPUT NL
  184. 1840  PRINT D$;"CLOSE"
  185. 1850 L = 11:NW = 0
  186. 1860  HOME : GOSUB 2500
  187. 1870  IF  ASC(AZ$) < >63  THEN NW = NW +1:S$(NW) = S$: GOTO 1860
  188. 1880  PRINT 
  189. 1890  PRINT D$;"OPEN LISTS": PRINT D$;"WRITE LISTS":NL = NL +1: PRINT NL: PRINT D$;"CLOSE"
  190. 1900  PRINT D$;"OPEN WORDLIST"NL",L26"
  191. 1910  PRINT D$;"WRITE WORDLIST"NL",R0"
  192. 1920  PRINT NW: FOR K = 1 TO NW
  193. 1930  PRINT D$;"WRITE WORDLIST"NL",R"K
  194. 1940  PRINT S$(K): NEXT K: PRINT D$;"CLOSE": RETURN 
  195. 1950  REM  ** GAME INSTRUCTIONS **
  196. 1960  HOME : INVERSE : HTAB 7: PRINT "WORD ELEVATOR INSTRUCTIONS": NORMAL : PRINT : PRINT 
  197. 1970  PRINT "  THE COMPUTER WILL PUT WORDS ON ONE    SIDE OF THE SCREEN. THE WORDS MAY NOT   BE IN ALPHABETICAL ORDER.": PRINT 
  198. 1980  PRINT "  IT IS YOUR JOB TO USE THE ELEVATOR TO MOVE THE WORDS TO THE OTHER SIDE OF THE SCREEN.  THE WORDS MUST BE PLACED IN    ALPHABETICAL ORDER.": PRINT 
  199. 1990  PRINT "  THE COMPUTER WILL KEEP TRACK OF HOW   LONG IT TAKES.  IF YOU ARE FAST ENOUGH, THE COMPUTER WILL ADD YOUR NAME TO THE  'BEST TEN SCORES'."
  200. 2000  POKE 8,0: VTAB 22: PRINT "PRESS <RETURN> KEY ";: GET A$: PRINT : IF  ASC(A$) < >13  THEN  VTAB 22: HTAB 1: CALL  -868: GOTO 2000
  201. 2010 N = 3:WL$(2,1) = "COMPUTER":WL$(2,2) = "CHIP":WL$(2,3) = "APPLE"
  202. 2020  GOSUB 1530: POKE 8,0: VTAB 12: HTAB 13: PRINT "TRY THE FOLLOWING..": SPEED= 80
  203. 2030 DI = 1: VTAB 16: HTAB 2: PRINT "PRESS THE --> KEY": PRINT : HTAB 2: PRINT "A WORD WILL MOVE ONTO THE ELEVATOR":F(2,3) = 1:L = 8
  204. 2040  SPEED= 255:NN = 149: GOSUB 2140: POKE 8,1: GOTO 630
  205. 2050  GOSUB 2160: POKE 8,0: VTAB 16: HTAB 2: PRINT "PRESS THE <A> KEY": PRINT : HTAB 2: PRINT "THE ELEVATOR WILL MOVE UP"
  206. 2060  SPEED= 255:NN = 193: GOSUB 2140:KP = 65: POKE 8,1: GOSUB 230
  207. 2070  GOSUB 2160: POKE 8,0: VTAB 16: HTAB 2: PRINT "PRESS THE <Z> KEY": PRINT : HTAB 2: PRINT "THE ELEVATOR WILL MOVE DOWN"
  208. 2080  SPEED= 255:NN = 218: GOSUB 2140:KP = 218: POKE 8,1: GOSUB 230
  209. 2090  GOSUB 2160: POKE 8,0: VTAB 16: HTAB 2: PRINT "PRESS THE <-- KEY": PRINT : HTAB 2: PRINT "A WORD WILL MOVE OFF THE ELEVATOR "
  210. 2100  SPEED= 255:NN = 136: GOSUB 2140: POKE 8,1: GOSUB 430: POKE 8,0
  211. 2110  GOSUB 2160: VTAB 16: HTAB 2: PRINT "PRESS THE <RETURN> KEY...": SPEED= 255
  212. 2120  POKE  -16368,0:NN = 141: GOSUB 2140
  213. 2130  GET A$: HOME : TEXT : CLEAR : GOTO 130
  214. 2140 KP =  PEEK( -16384): IF KP < >NN  THEN 2140
  215. 2150  RETURN 
  216. 2160  FOR TT = 16 TO 18: VTAB TT: HTAB 2: PRINT "                                     ": NEXT TT: SPEED= 80: RETURN 
  217. 2170  REM  ** MENU **
  218. 2180  POKE 216,0:HT = 9:SN = 4:Q$ =  CHR$(34):HL = 5
  219. 2190 HL$(0) = "              ^^^^ ^^^^^^^^             "
  220. 2200 HL$(1) = "              WORD ELEVATOR             "
  221. 2210 HL$(2) = "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^     "
  222. 2220 HL$(3) = "        CHOOSE ONE OF THE FOLLOWING     "
  223. 2230 HL$(4) = "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^     "
  224. 2240 SI$(1) = "PLAY A GAME."
  225. 2250 SI$(2) = "DIRECTIONS FOR THE GAME."
  226. 2260 SI$(3) = "CREATE A WORD LIST."
  227. 2270 SI$(4) = "END THE PROGRAM."
  228. 2280  TEXT : HOME 
  229. 2290  INVERSE : FOR X = 0 TO HL -1: PRINT HL$(X);: NEXT X: PRINT : NORMAL 
  230. 2300 CS = 1
  231. 2310  FOR X = 1 TO SN: IF X = CS  THEN  INVERSE 
  232. 2320  VTAB HL +2 +X +X *(SN <10): HTAB HT: PRINT SI$(X): NORMAL 
  233. 2330  NEXT X
  234. 2340  VTAB 19: INVERSE : PRINT HL$(2): NORMAL 
  235. 2350  VTAB 21: HTAB 11: PRINT "<PRESS THESE KEYS>": HTAB 2
  236. 2360  VTAB 23: INVERSE : PRINT "<--";: NORMAL : PRINT " UP";: HTAB 10: INVERSE : PRINT "-->";: NORMAL : PRINT " DOWN";: INVERSE : HTAB 23: PRINT "RETURN";: NORMAL : PRINT " TO CHOOSE."
  237. 2370  POKE  -16368,0
  238. 2380 K =  PEEK( -16384): IF K <128  THEN 2380
  239. 2390  POKE  -16368,0:K = K -128: IF K < >8  AND K < >21  AND K < >13  THEN 2380
  240. 2400 OS = CS
  241. 2410  IF K = 8  THEN CS = CS -1:CS = CS *(CS >0) +SN *(CS = 0): GOSUB 2480: GOTO 2380
  242. 2420  IF K = 21  THEN CS = CS +1:CS = CS *(CS < = SN) +(CS = SN +1): GOSUB 2480: GOTO 2380
  243. 2430  ON CS GOSUB 2440,2450,2460,2470: GOTO 2280
  244. 2440  GOSUB 150: RETURN 
  245. 2450  GOTO 1960
  246. 2460  GOSUB 1780: RETURN 
  247. 2470  TEXT : HOME : END 
  248. 2480  VTAB HL +2 +OS +OS *(SN <10): HTAB HT: PRINT SI$(OS)
  249. 2490  VTAB HL +2 +CS +CS *(SN <10): INVERSE : HTAB HT: PRINT SI$(CS): NORMAL : RETURN 
  250. 2500  REM  ** INPUT ROUTINE **
  251. 2510  VTAB 2: HTAB 2: PRINT "TYPE A WORD..THEN PRESS RETURN KEY."
  252. 2520  HTAB 2: PRINT "PRESS  <?>  KEY WHEN NO MORE WORDS."
  253. 2530  IF L > = 38  THEN BE = 1:EN = 39: GOTO 2550
  254. 2540 S$ = "":BE =  INT((40 -L)/2) -1:EN = BE +L +1
  255. 2550  VTAB 6: HTAB BE
  256. 2560  PRINT  CHR$(91);: HTAB EN: PRINT  CHR$(93);
  257. 2570 U = BE: VTAB 6: HTAB U +1
  258. 2580  GET AZ$:AS =  ASC(AZ$): IF   NOT (AS >64  AND AS <91)  AND AS < >8  AND AS < >63  AND AS < >21  AND AS < >13  THEN 2580
  259. 2590  IF  ASC(AZ$) = 63  THEN  RETURN 
  260. 2600  IF  ASC(AZ$) = 21  THEN AZ$ = " ": GOTO 2660
  261. 2610  IF  ASC(AZ$) = 13  THEN 2680
  262. 2620  IF  ASC(AZ$) < >8  THEN 2660
  263. 2630  IF  POS(0) = BE  THEN 2580
  264. 2640  IF U = BE +1  THEN S$ = "": CALL  -1008: PRINT " ";: CALL  -1008: GOTO 2570
  265. 2650 S$ =  LEFT$(S$,U -BE -1): CALL  -1008: PRINT " ";:U = U -1: CALL  -1008: GOTO 2580
  266. 2660  IF U <EN -1  THEN U = U +1:S$ = S$ +AZ$: HTAB U: PRINT AZ$;
  267. 2670  GOTO 2580
  268. 2680  VTAB 24: HTAB 6: PRINT "IS SPELLING OK? (Y/N) ";: GET AZ$: IF AZ$ < >"Y"  AND AZ$ < >"N"  THEN  VTAB 24: HTAB 1: CALL  -868: GOTO 2680
  269. 2690  IF AZ$ = "N"  THEN  VTAB 6: HTAB 1: CALL  -958:S$ = "": GOTO 2510
  270. 2700  IF S$ = ""  THEN  VTAB 6: HTAB 1: CALL  -958: GOTO 2510
  271. 2710  RETURN 
  272. 2720  REM  ** TITLE PAGE **
  273. 2730  INVERSE : HTAB 7: VTAB 5: FOR K = 8 TO 33: PRINT " ";: NEXT : PRINT 
  274. 2740  INVERSE : HTAB 7: VTAB 5: FOR K = 8 TO 33: PRINT " ";: NEXT : PRINT 
  275. 2750  FOR K = 6 TO 22: HTAB 32: PRINT " ": NEXT 
  276. 2760  VTAB 22: FOR K = 32 TO 7  STEP  -1: HTAB K: PRINT " ";: NEXT 
  277. 2770  FOR K = 22 TO 6  STEP  -1: HTAB 7: VTAB K: PRINT " ";: NEXT 
  278. 2780  HTAB 13: VTAB 7: NORMAL : PRINT "WORD ELEVATOR"
  279. 2790  HTAB 19: VTAB 8: PRINT "BY"
  280. 2800  HTAB 15: VTAB 9: PRINT "GARY  KNOX"
  281. 2810  HTAB 15: VTAB 13: PRINT "COPYRIGHT"
  282. 2820  HTAB 16: VTAB 14: PRINT "1986 BY": HTAB 12: VTAB 15: PRINT "MICROSPARC, INC."
  283. 2830  GOSUB 2840: RETURN 
  284. 2840  VTAB 24: HTAB 7: PRINT "PRESS <RETURN> KEY...";: GET A$: TEXT : HOME : RETURN 
  285. 2850  REM  ** FILE OPENER **
  286. 2860  ONERR  GOTO 2880
  287. 2870  PRINT D$;"OPEN BEST": PRINT D$;"READ BEST": INPUT NB: PRINT D$;"CLOSE": GOTO 130
  288. 2880  PRINT D$;"CLOSE"
  289. 2890  PRINT D$;"OPEN BEST": PRINT D$;"WRITE BEST": PRINT 0: PRINT D$;"CLOSE"
  290. 2900  PRINT D$;"OPEN LISTS": PRINT D$;"WRITE LISTS": PRINT 0: PRINT D$;"CLOSE": GOTO 130
  291. 2910  REM  TITLE ROUTINE
  292. 2920  TEXT : HOME : INVERSE : HTAB 10: PRINT "THE BEST FOR "N" WORDS": NORMAL : VTAB 3: PRINT "   NAME";: HTAB 24: PRINT "TIME": PRINT : RETURN