home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / misc / ham&el#5 / zzcode.bas (.txt) < prev   
Encoding:
GW-BASIC  |  1986-11-30  |  16.2 KB  |  524 lines

  1. 10  '******* WRITTEN BY WB4ZNH, CARL HENSON WITH THE HELP OF BILL MANLEY *******
  2. 20  '*******            8280 CHESTNUT DRIVE                              *******
  3. 30  '*******            JONESBORO, GA. 30236                             *******
  4. 40  '*******            (404) 478-3255                                   *******
  5. 50  '***************************************************************************
  6. 60  'I KNOW THE FCC TEST STYLE PRACTICE WILL CREATE SOME RIDICULOUS SITUATIONS.
  7. 70  'FOR EXAMPLE, IT WILL HAPPEN THAT THE WEATHER IS HOT AND HUMID BUT THE TEMP.
  8. 80  'WILL BE MINUS 6! OR A 12 YR OLD DOCTOR LICENSED AS NOVICE FOR 10 YRS WITH
  9. 90  'AN EXTRA CALL. THE INTENT WAS TO MAKE THE VARIABLES TRULY RANDOM. IF THE  
  10. 100  'FCC CAN BE RIDICULOUS THEN SO CAN I!  73 AND GOOD DX! CARL
  11. 110  '***************************************************************************
  12. 120  'PROGRAM MODIFIED BY KW4M, DAVID FENTEM.  THE MOST SIGNIFICANT CHANGES WERE
  13. 130  'THE ADDITION OF THE ASCII FILE AND THE COMMONLY USED WORDS ROUTINES.
  14. 140  'THE COMMONLY USED WORDS ROUTINE IS INTENDED TO HELP ACHIEVE HIGH SPEED
  15. 150  'COPYING ABILITY THROUGH WORD RECOGNITION AS OPPOSED TO CHARACTER
  16. 160  'RECOGNITION.
  17. 170  '**************************************************************************
  18. 180  KEY OFF
  19. 190  CLS
  20. 200  DEFINT A-Z
  21. 210  T = 105:TT = 20'
  22. 220  PLAY "MFMLT105O3"'                          ** SET DEFAULT CODE SPEED **
  23. 230  DIM C$(90):DIM F$(41):DIM FC$(18):DIM WRD$(250)
  24. 240  C$(32) = "P12"'                                       *   *
  25. 250  C$(33) = ""
  26. 260  C$(34) = ""
  27. 270  C$(35) = ""
  28. 280  C$(36) = ""
  29. 290  C$(37) = ""
  30. 300  C$(38) = ""
  31. 310  C$(39) = ""
  32. 320  C$(40) = ""
  33. 330  C$(41) = ""
  34. 340  C$(42) = ""
  35. 350  C$(43) = ""
  36. 360  C$(44) = "L16GP48L16GP48L48GP48L48GP48L16GP48L16GP16"'* , *
  37. 370  C$(45) = "L16GP48L48GP48L48GP48L48GP48L16GP16"'       * - *
  38. 380  C$(46) = "L48GP48L16GP48L48GP48L16GP48L48GP48L16GP16"'* . *
  39. 390  C$(47) = "L16GP48L48GP48L48GP48L16GP48L48GP16"'       * / *
  40. 400  C$(48) = "L16GP48L16GP48L16GP48L16GP48L16GP16"'       * 0 *
  41. 410  C$(49) = "L48GP48L16GP48L16GP48L16GP48L16GP16"'       * 1 *
  42. 420  C$(50) = "L48GP48L48GP48L16GP48L16GP48L16GP16"'       * 2 *
  43. 430  C$(51) = "L48GP48L48GP48L48GP48L16GP48L16GP16"'       * 3 *
  44. 440  C$(52) = "L48GP48L48GP48L48GP48L48GP48L16GP16"'       * 4 *
  45. 450  C$(53) = "L48GP48L48GP48L48GP48L48GP48L48GP16"'       * 5 *
  46. 460  C$(54) = "L16GP48L48GP48L48GP48L48GP48L48GP16"'       * 6 *
  47. 470  C$(55) = "L16GP48L16GP48L48GP48L48GP48L48GP16"'       * 7 *
  48. 480  C$(56) = "L16GP48L16GP48L16GP48L48GP48L48GP16"'       * 8 *
  49. 490  C$(57) = "L16GP48L16GP48L16GP48L16GP48L48GP16"'       * 9 *
  50. 500  C$(58) = ""
  51. 510  C$(59) = ""
  52. 520  C$(60) = ""
  53. 530  C$(61) = ""
  54. 540  C$(62) = ""
  55. 550  C$(63) = "L48GP48L48GP48L16GP48L16GP48L48GP48L48GP16"'* ? *
  56. 560  C$(64) = ""
  57. 570  C$(65) = "L48GP48L16GP16"'                            * A *
  58. 580  C$(66) = "L16GP48L48GP48L48GP48L48GP16"'              * B *
  59. 590  C$(67) = "L16GP48L48GP48L16GP48L48GP16"'              * C *
  60. 600  C$(68) = "L16GP48L48GP48L48GP16"'                     * D *
  61. 610  C$(69) = "L48GP16"'                                   * E *
  62. 620  C$(70) = "L48GP48L48GP48L16GP48L48GP16"'              * F *
  63. 630  C$(71) = "L16GP48L16GP48L48GP16"'                     * G *
  64. 640  C$(72) = "L48GP48L48GP48L48GP48L48GP16"'              * H *
  65. 650  C$(73) = "L48GP48L48GP16"'                            * I *
  66. 660  C$(74) = "L48GP48L16GP48L16GP48L16GP16"'              * J *
  67. 670  C$(75) = "L16GP48L48GP48L16GP16"'                     * K *
  68. 680  C$(76) = "L48GP48L16GP48L48GP48L48GP16"'              * L *
  69. 690  C$(77) = "L16GP48L16GP16"'                            * M *
  70. 700  C$(78) = "L16GP48L48GP16"'                            * N *
  71. 710  C$(79) = "L16GP48L16GP48L16GP16"'                     * O *
  72. 720  C$(80) = "L48GP48L16GP48L16GP48L48GP16"'              * P *
  73. 730  C$(81) = "L16GP48L16GP48L48GP48L16GP16"'              * Q *
  74. 740  C$(82) = "L48GP48L16GP48L48GP16"'                     * R *
  75. 750  C$(83) = "L48GP48L48GP48L48GP16"'                     * S *
  76. 760  C$(84) = "L16GP16"'                                   * T *
  77. 770  C$(85) = "L48GP48L48GP48L16GP16"'                     * U *
  78. 780  C$(86) = "L48GP48L48GP48L48GP48L16GP16"'              * V *
  79. 790  C$(87) = "L48GP48L16GP48L16GP16"'                     * W *
  80. 800  C$(88) = "L16GP48L48GP48L48GP48L16GP16"'              * X *
  81. 810  C$(89) = "L16GP48L48GP48L16GP48L16GP16"'              * Y *
  82. 820  C$(90) = "L16GP48L16GP48L48GP48L48GP16"'              * Z *
  83. 830  PY$ = "PRESS ANY KEY"'                       *                  *
  84. 840  PR$ = "WHICH CHARACTER?"'                    *                  *
  85. 850  CLS:LOCATE 3,24,0:PRINT "MORSE CODE PRACTICE PROGRAM"
  86. 860  LOCATE 5,29,0:PRINT "(A)scii File"
  87. 870  LOCATE 7,29,0:PRINT "(R)andom Characters"
  88. 880  LOCATE 9,29,0:PRINT "(C)ommonly Used Words"
  89. 890  LOCATE 11,29,0:PRINT "(Y)our Selection"
  90. 900  LOCATE 13,29,0:PRINT "(5) Letter Code Groups"
  91. 910  LOCATE 15,29,0:PRINT "(F)CC Test Style"
  92. 920  LOCATE 17,29,0:PRINT "(Q)uit Code Practice"
  93. 930  LN = 1:CN = 1' LN IS LINE NUMBER, CN IS COLUMN NUMBER
  94. 940  GOSUB 1240
  95. 950  S$ = INKEY$:IF S$ = "" THEN 950'    **************************
  96. 960  IF LEN(S$) > 1 THEN GOSUB 1210:GOTO 950'                     **
  97. 970  IF S$ = "A" OR S$ = "a" THEN 2130' **                       **
  98. 980  IF S$ = "R" OR S$ = "r" THEN 4830'  **  ROUTE THE INPUT     **
  99. 990  IF S$ = "C" OR S$ = "c" THEN 2330'  **                      **
  100. 1000  IF S$ = "Y" OR S$ = "y" THEN 1080'   **                      **
  101. 1010  IF S$ = "F" OR S$ = "f" THEN 1330'  ** FROM THE KEYBOARD    **
  102. 1020  IF S$ = "5" THEN 2230'              **                      **
  103. 1030  IF S$ = "Q" OR S$ = "q" THEN CLS:END
  104. 1040  GOTO 950'                           **************************
  105. 1050  LN = CSRLIN:CN = POS(0)
  106. 1060  LOCATE 25,1,0:PRINT "Press F10 to exit";
  107. 1070  LOCATE LN,CN,0:RETURN
  108. 1080  CLS' ************* YOUR SELECTION ROUTINE *********************
  109. 1090  LOCATE 1,1,0:PRINT PY$:GOSUB 1050:GOSUB 1240
  110. 1100  ON KEY(10) GOSUB 1300
  111. 1110  KEY(10) ON:LOCATE 3,1,0
  112. 1120  S$ = INKEY$:IF S$ = "" THEN 1120
  113. 1130  IF LEN(S$) > 1 THEN GOSUB 1210:GOTO 1120
  114. 1140  S = ASC(S$)
  115. 1150  IF S > 96 AND S < 123 THEN S = S - 32
  116. 1160  IF S < 32 OR S > 90 THEN 1120
  117. 1170  IF S > 57 AND S < 63 OR S = 64 THEN 1190
  118. 1180  PRINT S$;
  119. 1190  PLAY C$(S)
  120. 1200  GOTO 1120
  121. 1210  S$ = MID$(S$,2,1):S = ASC(S$)'*** SPEED SET SUB-ROUTINE ******************
  122. 1220  IF S = 72 THEN T = T + 5:IF T > 255 THEN T = T - 5
  123. 1230  IF S = 80 THEN T = T - 5:IF T < 35 THEN T = T + 5
  124. 1240  T$ = "T" + STR$(T):PLAY T$:TT = (T/5)-1
  125. 1250  LN = CSRLIN:CN = POS(0)
  126. 1260  LOCATE 25,29,0:PRINT CHR$(24);" Faster    ";CHR$(25);" Slower     ";
  127. 1270  LOCATE 25,52,0:PRINT TT;" WPM";
  128. 1280  LOCATE LN,CN,0
  129. 1290  RETURN
  130. 1300  RESET' ******SUBROUTINE TO START AGAIN*************
  131. 1310  KEY(10) OFF
  132. 1320  RETURN 850
  133. 1330  CLS:GOSUB 1050:GOSUB 1240' *** FCC TEST STYLE ***
  134. 1340  ON KEY(10) GOSUB 1300
  135. 1350  KEY(10) ON:LOCATE 1,1,0
  136. 1360  FD$(1) = "":FD$(2) = "":FD$(3) = "":FD$(4) = ""
  137. 1370  RESTORE
  138. 1380  FOR I = 1 TO 18
  139. 1390  FOR II = 1 TO 10
  140. 1400  READ G$(II)
  141. 1410  NEXT II
  142. 1420  B$ = RIGHT$(TIME$,2):V = VAL(B$)
  143. 1430  RANDOMIZE V
  144. 1440  Y = INT((RND*(10)) + 1)
  145. 1450  FC$(I) = G$(Y)
  146. 1460  NEXT I
  147. 1470  F$(1) = "VVV VVV "
  148. 1480  F$(2) = FC$(1)
  149. 1490  F$(3) = " DE "
  150. 1500  F$(4) = FC$(2)
  151. 1510  F$(5) = " RRR AND TNX "
  152. 1520  F$(6) = FC$(3)
  153. 1530  F$(7) = ", UR RST "
  154. 1540  F$(8) = FC$(4)
  155. 1550  F$(9) = ", QTH HR IS "
  156. 1560  F$(10) = FC$(5)
  157. 1570  F$(11) = ", AND NAME IS "
  158. 1580  F$(12) = FC$(6)
  159. 1590  F$(13) = ".  MY RIG RUNS "
  160. 1600  F$(14) = FC$(7)
  161. 1610  F$(15) = " WATTS INTO A "
  162. 1620  F$(16) = FC$(8)
  163. 1630  F$(17) = " UP "
  164. 1640  F$(18) = FC$(9)
  165. 1650  F$(19) = " FEET.  MY RECEIVER IS "
  166. 1660  F$(20) = FC$(10)
  167. 1670  F$(21) = " WITH "
  168. 1680  F$(22) = FC$(11)
  169. 1690  F$(23) = " TUBES.  MY AGE IS "
  170. 1700  F$(24) = FC$(12)
  171. 1710  F$(25) = " AND LICENSED "
  172. 1720  F$(26) = FC$(13)
  173. 1730  F$(27) = " YEARS AS "
  174. 1740  F$(28) = FC$(14)
  175. 1750  F$(29) = " CLASS.  THE WEATHER HERE IS "
  176. 1760  F$(30) = FC$(15)
  177. 1770  F$(31) = " AND TEMPERATURE IS "
  178. 1780  F$(32) = FC$(16)
  179. 1790  F$(33) = " DEGREES.  MY OCCUPATION IS "
  180. 1800  F$(34) = FC$(17)
  181. 1810  F$(35) = ".  I MUST QRT SOON FOR "
  182. 1820  F$(36) = FC$(18)
  183. 1830  F$(37) = ".  HOW COPY?  "
  184. 1840  F$(38) = FC$(1)
  185. 1850  F$(39) = " DE "
  186. 1860  F$(40) = FC$(2)
  187. 1870  F$(41) = " KN AR"
  188. 1880  FOR I = 1 TO 11
  189. 1890  FD$(1) = FD$(1) + F$(I)
  190. 1900  NEXT I
  191. 1910  FOR I = 12 TO 21
  192. 1920  FD$(2) = FD$(2) + F$(I)
  193. 1930  NEXT I
  194. 1940  FOR I = 22 TO 31
  195. 1950  FD$(3) = FD$(3) + F$(I)
  196. 1960  NEXT I
  197. 1970  FOR I = 32 TO 41
  198. 1980  FD$(4) = FD$(4) + F$(I)
  199. 1990  NEXT I
  200. 2000  FOR I = 1 TO 4
  201. 2010  L = LEN(FD$(I))
  202. 2020  FOR Q = 1 TO L
  203. 2030  A$ = MID$(FD$(I),Q,1):A = ASC(A$)
  204. 2040  PRINT A$;:PLAY C$(A)
  205. 2050  S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  206. 2060  NEXT Q
  207. 2070  NEXT I
  208. 2080  LOCATE 17,9,0:PRINT "(F)CC TEST STYLE AGAIN?"
  209. 2090  S$ = INKEY$:IF S$ = "" THEN 2090
  210. 2100  IF LEN(S$) > 1 THEN GOSUB 1210:GOTO 2090
  211. 2110  IF S$ = "F" OR S$ = "f" THEN 1330
  212. 2120  GOTO 850
  213. 2130  CLS:GOSUB 1050:GOSUB 1240'****** ASCII FILE ROUTINE ********************
  214. 2140  ON KEY(10) GOSUB 1300
  215. 2150  KEY(10) ON:ON ERROR GOTO 2170
  216. 2160  LOCATE 1,1,0
  217. 2170  INPUT "Enter file name:   ",CFILE$
  218. 2180  LOCATE 3,1,0
  219. 2190  OPEN CFILE$ FOR INPUT AS #1
  220. 2200  IF EOF(1) THEN CLOSE:GOTO 850
  221. 2210  S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  222. 2220  MSG$ = INPUT$(1,#1):GOSUB 5040: GOTO 2200
  223. 2230  CLS:GOSUB 1050:GOSUB 1240'***** 5 LETTER CODE GROUPS ROUTINE **********
  224. 2240  ON KEY(10) GOSUB 1300
  225. 2250  KEY(10) ON:LOCATE 1,1,0
  226. 2260  I = 0
  227. 2270  GOSUB 5150
  228. 2280  S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  229. 2290  IF Y > 57 AND Y < 63 OR Y = 64 THEN 2270
  230. 2300  PRINT CHR$(Y);:PLAY C$(Y):I = I + 1
  231. 2310  IF I = 5 THEN I = 0:PRINT " ";:PLAY "P12"
  232. 2320  GOTO 2270
  233. 2330  CLS'******** COMMONLY USED WORDS ROUTINE ************************
  234. 2340  GOSUB 1050:GOSUB 1240:ON KEY(10) GOSUB 1300
  235. 2350  KEY(10) ON
  236. 2360  WRD$(1) = "A"
  237. 2370  WRD$(2) = "NO"
  238. 2380  WRD$(3) = "SO"
  239. 2390  WRD$(4) = "BE"
  240. 2400  WRD$(5) = "AN"
  241. 2410  WRD$(6) = "DO"
  242. 2420  WRD$(7) = "AS"
  243. 2430  WRD$(8) = "IT"
  244. 2440  WRD$(9) = "AT"
  245. 2450  WRD$(10) = "IF"
  246. 2460  WRD$(11) = "HE"
  247. 2470  WRD$(12) = "IN"
  248. 2480  WRD$(13) = "OR"
  249. 2490  WRD$(14) = "IS"
  250. 2500  WRD$(15) = "ON"
  251. 2510  WRD$(16) = "GO"
  252. 2520  WRD$(17) = "OF"
  253. 2530  WRD$(18) = "TO"
  254. 2540  WRD$(19) = "OH"
  255. 2550  WRD$(20) = "BY"
  256. 2560  WRD$(21) = "I"
  257. 2570  WRD$(22) = "US"
  258. 2580  WRD$(23) = "ME"
  259. 2590  WRD$(24) = "UP"
  260. 2600  WRD$(25) = "WE"
  261. 2610  WRD$(26) = "FOR"
  262. 2620  WRD$(27) = "CRY"
  263. 2630  WRD$(28) = "BUT"
  264. 2640  WRD$(29) = "HIM"
  265. 2650  WRD$(30) = "ONE"
  266. 2660  WRD$(31) = "WAS"
  267. 2670  WRD$(32) = "YOU"
  268. 2680  WRD$(33) = "NOW"
  269. 2690  WRD$(34) = "CAN"
  270. 2700  WRD$(35) = "HOW"
  271. 2710  WRD$(36) = "ANY"
  272. 2720  WRD$(37) = "OUR"
  273. 2730  WRD$(38) = "WAY"
  274. 2740  WRD$(39) = "ARE"
  275. 2750  WRD$(40) = "WHO"
  276. 2760  WRD$(41) = "OUT"
  277. 2770  WRD$(42) = "AND"
  278. 2780  WRD$(43) = "HAS"
  279. 2790  WRD$(44) = "USE"
  280. 2800  WRD$(45) = "ALL"
  281. 2810  WRD$(46) = "GOT"
  282. 2820  WRD$(47) = "MAY"
  283. 2830  WRD$(48) = "SAY"
  284. 2840  WRD$(49) = "AIM"
  285. 2850  WRD$(50) = "HAD"
  286. 2860  WRD$(51) = "GET"
  287. 2870  WRD$(52) = "MAN"
  288. 2880  WRD$(53) = "HER"
  289. 2890  WRD$(54) = "NOT"
  290. 2900  WRD$(55) = "SEE"
  291. 2910  WRD$(56) = "SHE"
  292. 2920  WRD$(57) = "THE"
  293. 2930  WRD$(58) = "HIS"
  294. 2940  WRD$(59) = "BEEN"
  295. 2950  WRD$(60) = "DOES"
  296. 2960  WRD$(61) = "KIND"
  297. 2970  WRD$(62) = "HAND"
  298. 2980  WRD$(63) = "COME"
  299. 2990  WRD$(64) = "GIRL"
  300. 3000  WRD$(65) = "VERY"
  301. 3010  WRD$(66) = "INTO"
  302. 3020  WRD$(67) = "TIME"
  303. 3030  WRD$(68) = "OVER"
  304. 3040  WRD$(69) = "THIS"
  305. 3050  WRD$(70) = "YOUR"
  306. 3060  WRD$(71) = "GIVE"
  307. 3070  WRD$(72) = "THEM"
  308. 3080  WRD$(73) = "WITH"
  309. 3090  WRD$(74) = "SUCH"
  310. 3100  WRD$(75) = "TELL"
  311. 3110  WRD$(76) = "JUST"
  312. 3120  WRD$(77) = "LIKE"
  313. 3130  WRD$(78) = "HAVE"
  314. 3140  WRD$(79) = "WERE"
  315. 3150  WRD$(80) = "THAT"
  316. 3160  WRD$(81) = "WANT"
  317. 3170  WRD$(82) = "THEY"
  318. 3180  WRD$(83) = "WELL"
  319. 3190  WRD$(84) = "LOOK"
  320. 3200  WRD$(85) = "MADE"
  321. 3210  WRD$(86) = "WHAT"
  322. 3220  WRD$(87) = "WHEN"
  323. 3230  WRD$(88) = "FACE"
  324. 3240  WRD$(89) = "HERE"
  325. 3250  WRD$(90) = "MUCH"
  326. 3260  WRD$(91) = "ONLY"
  327. 3270  WRD$(92) = "PART"
  328. 3280  WRD$(93) = "WILL"
  329. 3290  WRD$(94) = "SEEM"
  330. 3300  WRD$(95) = "MAKE"
  331. 3310  WRD$(96) = "MOST"
  332. 3320  WRD$(97) = "SOME"
  333. 3330  WRD$(98) = "THAN"
  334. 3340  WRD$(99) = "MORE"
  335. 3350  WRD$(100) = "THEN"
  336. 3360  WRD$(101) = "MUST"
  337. 3370  WRD$(102) = "KNOW"
  338. 3380  WRD$(103) = "MANY"
  339. 3390  WRD$(104) = "FROM"
  340. 3400  WRD$(105) = "SAID"
  341. 3410  WRD$(106) = "DOWN"
  342. 3420  WRD$(107) = "ABOUT"
  343. 3430  WRD$(108) = "SHALL"
  344. 3440  WRD$(109) = "WHICH"
  345. 3450  WRD$(100) = "UNDER"
  346. 3460  WRD$(111) = "THEIR"
  347. 3470  WRD$(112) = "YOUNG"
  348. 3480  WRD$(113) = "WOMEN"
  349. 3490  WRD$(114) = "THING"
  350. 3500  WRD$(115) = "MIGHT"
  351. 3510  WRD$(116) = "THERE"
  352. 3520  WRD$(117) = "OFTEN"
  353. 3530  WRD$(118) = "THIN"
  354. 3540  WRD$(119) = "WOULD"
  355. 3550  WRD$(120) = "THESE"
  356. 3560  WRD$(121) = "OTHER"
  357. 3570  WRD$(122) = "THOSE"
  358. 3580  WRD$(123) = "WHERE"
  359. 3590  WRD$(124) = "TODAY"
  360. 3600  WRD$(125) = "MAYBE"
  361. 3610  WRD$(126) = "SHOULD"
  362. 3620  WRD$(127) = "MOTHER"
  363. 3630  WRD$(128) = "FATHER"
  364. 3640  WRD$(129) = "BECAUSE"
  365. 3650  WRD$(130) = "PICTURE"
  366. 3660  WRD$(131) = "THROUGH"
  367. 3670  WRD$(132) = "PROBABLY"
  368. 3680  WRD$(133) = "SOMETHING"
  369. 3690  WRD$(134) = "AMATEUR"
  370. 3700  WRD$(135) = "RADIO"
  371. 3710  WRD$(136) = "HAM"
  372. 3720  WRD$(137) = "ARRL"
  373. 3730  WRD$(138) = "COAX"
  374. 3740  WRD$(139) = "DIPOLE"
  375. 3750  WRD$(140) = "QUAD"
  376. 3760  WRD$(141) = "BEAM"
  377. 3770  WRD$(142) = "YAGI"
  378. 3780  WRD$(143) = "WINDOM"
  379. 3790  WRD$(144) = "VERTICAL"
  380. 3800  WRD$(145) = "WIRE"
  381. 3810  WRD$(146) = "TEMP"
  382. 3820  WRD$(147) = "HOT"
  383. 3830  WRD$(148) = "COLD"
  384. 3840  WRD$(149) = "CLEAR"
  385. 3850  WRD$(150) = "SUNNY"
  386. 3860  WRD$(151) = "WET"
  387. 3870  WRD$(152) = "DRY"
  388. 3880  WRD$(153) = "RAINY"
  389. 3890  WRD$(154) = "YAESU"
  390. 3900  WRD$(155) = "KENWOOD"
  391. 3910  WRD$(156) = "HEATH"
  392. 3920  WRD$(157) = "DRAKE"
  393. 3930  WRD$(158) = "COLLINS"
  394. 3940  WRD$(159) = "TEN TEC"
  395. 3950  WRD$(160) = "HOMEBREW"
  396. 3960  WRD$(161) = "ICOM"
  397. 3970  WRD$(162) = "NOVICE"
  398. 3980  WRD$(163) = "TECH"
  399. 3990  WRD$(164) = "GENERAL"
  400. 4000  WRD$(165) = "ADVANCED"
  401. 4010  WRD$(166) = "EXTRA"
  402. 4020  WRD$(167) = "SHACK"
  403. 4030  WRD$(168) = "CONTEST"
  404. 4040  WRD$(169) = "TEST"
  405. 4050  WRD$(170) = "LINEAR"
  406. 4060  WRD$(171) = "AMP"
  407. 4070  WRD$(172) = "TUNER"
  408. 4080  WRD$(173) = "PHONE"
  409. 4090  WRD$(174) = "TUBE"
  410. 4100  WRD$(175) = "KEYER"
  411. 4110  WRD$(176) = "POWER"
  412. 4120  WRD$(177) = "WATTS"
  413. 4130  WRD$(178) = "VOLTS"
  414. 4140  WRD$(179) = "NORTH"
  415. 4150  WRD$(180) = "SOUTH"
  416. 4160  WRD$(181) = "EAST"
  417. 4170  WRD$(182) = "WEST"
  418. 4180  WRD$(183) = "MILES"
  419. 4190  WRD$(184) = "QRL"
  420. 4200  WRD$(185) = "QRM"
  421. 4210  WRD$(186) = "QRN"
  422. 4220  WRD$(187) = "QRP"
  423. 4230  WRD$(188) = "QRS"
  424. 4240  WRD$(189) = "QRT"
  425. 4250  WRD$(190) = "QRU"
  426. 4260  WRD$(191) = "QRV"
  427. 4270  WRD$(192) = "QRZ"
  428. 4280  WRD$(193) = "QSB"
  429. 4290  WRD$(194) = "QSK"
  430. 4300  WRD$(195) = "QSL"
  431. 4310  WRD$(196) = "QSO"
  432. 4320  WRD$(197) = "QSY"
  433. 4330  WRD$(198) = "QTH"
  434. 4340  WRD$(199) = "ABT"
  435. 4350  WRD$(200) = "ADR"
  436. 4360  WRD$(201) = "AGN"
  437. 4370  WRD$(202) = "ANT"
  438. 4380  WRD$(213) = "FREQ"
  439. 4390  WRD$(214) = "FT"
  440. 4400  WRD$(215) = "GE"
  441. 4410  WRD$(216) = "GN"
  442. 4420  WRD$(217) = "GND"
  443. 4430  WRD$(218) = "HI"
  444. 4440  WRD$(219) = "HPE"
  445. 4450  WRD$(220) = "HR"
  446. 4460  WRD$(221) = "HRD"
  447. 4470  WRD$(222) = "HW"
  448. 4480  WRD$(223) = "COPY"
  449. 4490  WRD$(224) = "INFO"
  450. 4500  WRD$(225) = "MSG"
  451. 4510  WRD$(226) = "OM"
  452. 4520  WRD$(227) = "PSE"
  453. 4530  WRD$(228) = "PWR"
  454. 4540  WRD$(229) = "RCVR"
  455. 4550  WRD$(230) = "RIG"
  456. 4560  WRD$(231) = "RPT"
  457. 4570  WRD$(232) = "RST"
  458. 4580  WRD$(233) = "SKED"
  459. 4590  WRD$(234) = "SRI"
  460. 4600  WRD$(235) = "SSB"
  461. 4610  WRD$(236) = "73"
  462. 4620  WRD$(237) = "TMW"
  463. 4630  WRD$(238) = "TNX"
  464. 4640  WRD$(239) = "TX"
  465. 4650  WRD$(240) = "UR"
  466. 4660  WRD$(241) = "VY"
  467. 4670  WRD$(242) = "WUD"
  468. 4680  WRD$(243) = "WX"
  469. 4690  WRD$(244) = "XMTR"
  470. 4700  WRD$(245) = "XTAL"
  471. 4710  WRD$(246) = "XCVR"
  472. 4720  WRD$(247) = "XYL"
  473. 4730  WRD$(248) = "YL"
  474. 4740  WRD$(249) = "88"
  475. 4750  WRD$(250) = "-"
  476. 4760  B$ = RIGHT$(TIME$,2):V=VAL(B$):RANDOMIZE V
  477. 4770  LOCATE 1,1,0
  478. 4780  B$ = RIGHT$(TIME$,2):V=VAL(B$)
  479. 4790  S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  480. 4800  W = INT(RND*(32000)):V=V+W:RANDOMIZE V
  481. 4810  Y = INT((RND*(250)) + 1)
  482. 4820  MSG$ = WRD$(Y) + " ":GOSUB 5040:GOTO 4780
  483. 4830  CLS'********** RANDOM CHARACTER ROUTINE  ****************************
  484. 4840  GOSUB 1050:GOSUB 1240:I = 0
  485. 4850  ON KEY(10) GOSUB 1300
  486. 4860  KEY(10) ON
  487. 4870  GOSUB 5150
  488. 4880  LOCATE 10,13,0:PRINT PR$;
  489. 4890  IF Y > 57 AND Y < 63 OR Y = 64 THEN 4870
  490. 4900  PLAY C$(Y)
  491. 4910  S$ = INKEY$:IF S$ = "" THEN 4910
  492. 4920  IF LEN(S$) > 1 THEN GOSUB 1210:GOTO 4910
  493. 4930  S = ASC(S$)
  494. 4940  LOCATE 17,20,0:PRINT S$;
  495. 4950  IF S > 96 AND S < 123 THEN S = S - 32
  496. 4960  IF S = Y THEN LOCATE 17,24,0:PRINT "Right On!  ":PLAY "P4":GOTO 4840
  497. 4970  LOCATE 17,24,0:PRINT "WRONG!     "
  498. 4980  PLAY "T32O0L32CP64T64O2AP64"
  499. 4990  T$ = "T" + STR$(T) + "O3P4":PLAY T$
  500. 5000  I = I + 1
  501. 5010  IF I < 3 THEN 4900
  502. 5020  IF I = 3 THEN LOCATE 17,20,0:PRINT CHR$(Y);"   is Correct.";
  503. 5030  PLAY C$(Y)+ "P2":GOTO 4840
  504. 5040  '*****SUBROUTINE TO SEND A STRING IN MORSE **************************
  505. 5050  FOR I=1 TO LEN(MSG$)
  506. 5060  S$=MID$(MSG$,I,1):S=ASC(S$)
  507. 5070  IF S>96 AND S<123 THEN S=S-32
  508. 5080  IF S = 13 THEN PLAY "P12":PRINT:GOTO 5110
  509. 5090  IF S<32 OR S>90 THEN 5120
  510. 5100  PLAY C$(S):PRINT S$;
  511. 5110  S$ = INKEY$:IF LEN(S$) > 1 THEN GOSUB 1210
  512. 5120  NEXT I
  513. 5130  RETURN
  514. 5140  '*************** RANDOMIZE ROUTINE ***************************
  515. 5150  X$ = RIGHT$(TIME$,2):X = VAL(X$)
  516. 5160  RANDOMIZE X
  517. 5170  Y = INT(RND*(46+1)):Y = Y + 44:RETURN
  518. 5180  DATA WB1ZLX,WA2HHS,KA3CQZ,KB4FLF,WD5HIG,K6AAS,KL7ZXC,W8ANA,KA9ZD,WB0JOQ,WA1SSH,WB2KRK,KF3G,NP4ZX,WB5HSI,WB6VBB,AL7L,WB8TER,KB9J,W0TRW,GEORGE,BILL,FRED,JOHN,WILBUR,STEVE,HANK,MIKE,KARL,LARRY
  519. 5190  DATA 599,589,579,578,479,468,459,339,359,369,"MINOT,ND","JONESBORO,GA","WORCHESTER,MASS","GASTONIA,NC","SITKA,ALASKA","CHARLESTON,WVA","MESA,ARIZ","PORTLAND,OR","INDIANAPOLIS,IND","LUBBOCK,TEX",FRANK,JOEL,HARRY,STANLEY,TED,DONALD,ROBERT,GEOFFREY
  520. 5200  DATA MARVIN,PETER,45,100,1500,250,450,75,500,900,60,200,INVERTED VEE,TRAP DOUBLET,GROUND PLANE,VERTICAL,TRIBAND YAGI,DIPOLE,WINDOM,QUAD,DELTA LOOP,LONGWIRE,50,35,20,75,80,40,65,34,27,43,HQ100,R4,SB303,SX101,R390,TS830S,75S3B,R1000,NC183D,FRG7
  521. 5210  DATA 10,11,21,6,7,8,9,12,19,18,41,23,36,33,53,68,47,29,14,39,2,3,4,5,6,7,8,9,10,12,NOVICE,TECHNICIAN,GENERAL,ADVANCE,EXTRA,NOVICE,TECHNICIAN,GENERAL,ADVANCE,EXTRA
  522. 5220  DATA COOL AND DRY,COLD AND WET,WARM AND WINDY,HOT AND HUMID,COLD AND WINDY,WARM AND DRY,COOL AND WINDY,HOT AND DRY,WARM AND WET,COLD AND DRY,MINUS 6,57,71,23,43,49,65,34,29,MINUS 4,STUDENT,LAWYER,MECHANIC,DENTIST,TEACHER,POLICEMAN
  523. 5230  DATA TRUCK DRIVER,CLERK,GOURMET COOK,DOCTOR,BREAKFAST,LUNCH,DINNER,SCHOOL,BED,EXERCISE,LUNCH,DINNER,WORK,BREAKFAST
  524.