home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3 / hamradioversion3.0examsandprograms1992.iso / misc / pc_ham3 / cqss.bas < prev    next >
BASIC Source File  |  1985-09-22  |  20KB  |  351 lines

  1. 20 K = 1000 : REM number of stations in contest
  2. 30 PRINT "ARRL SWEEPSTAKES CONTEST SIMULATION VERSION 2.12"
  3. 40 Q4 = 18 : K7 = 74 : K6 = 66 : P1 = .1 : P5 = .5 : Z0 = 0 : Z1 = 1 : Z2 = 2 : Z3 = 3 : Q = (RND(Z1) * Z2)
  4. 50 N1 = Z1 : Z2 = 2 : Z3 = 3 : Z4 = 4 : Z5 = 5 : Z6 = 6 : Z7 = 7 : Z8 = 8 : Z9 = 9 : B1 = 100 : B2 = 200 : B3 = 300 : T3 = 12
  5. 60 DIM L(Z7),L$(Z5),C$(K),C(K),S(K7),S$(K7),P(85),P$(Z4),Z$(Q4),B$(Z4)
  6. 70 Z$(13) = "DUPLICATE" : B$(Z0) = "10" : B$(Z1) = "15" : B$(Z2) = "20" : B$(Z3) = "40"
  7. 80 P$(Z0) = "W" : P$(Z1) = "K" : P$(Z2) = "WA" : Q$ = "QWERTYUIOPASDFGHJKLZXCVBNM"
  8. 90 B$(Z4) = "80" : Z$(Z0) = "CALL" : Z$(Z1) = "LOG" : Z$(Z2) = "BAND " : Z$(Z3) = "CHECK" : X$ = ""
  9. 100 P$(Z3) = "WB" : Z$(Z4) = "STATUS" : Z$(Z5) = "BREAK" : Z$(Z6) = "QSL" : E$ = " DE "
  10. 110 B4 = 400 : B5 = 500 : T4 = 16 : T5 = 20 : T6 = 24 : T7 = 60 : Z$(Z8) = "REPEAT" : Z$(Z9) = "QRT"
  11. 120 DIM M$(Z5) : M$(Z0) = "NUMBER" : M$(Z1) = "POWER" : M$(Z4) = Z$(Z3) : M$(Z5) = "SECTION"
  12. 130 M$(Z2) = Z$(Z0) : A$ = "G3ZCZ/W3" : H = 21 : D = 19 : R$ = " !# * " : D$ = "NOVEMBER" : N = 1968
  13. 140 K$ = "CK" : Z$(7) = "SEND" : Z$(10) = "TUNE" : Z$(11) = "DATA " : Z$(T3) = "TIME" : M$(3) = Z$(3)
  14. 150 P$(Z4) = "N" : PRINT "COPYRIGHT (C) JOE KASSER [G3ZCZ] 1979 "
  15. 160 FOR I = Z0 TO 85 : READ P(I) : NEXT 
  16. 170 DATA .3,.58,.66,.76,.84,.88,1,.17,.34,.53,.78,1,.04,.41,.85,1,.04
  17. 180 DATA .14,.22,.32,.41,.44,.51,.59,.97,1,.11,.16,.25,.31,.62,.7,.99,1
  18. 190 DATA .11,.26,.33,.38,.69,.76,.83,.93,.97,1,.17,.23,.28,.34,.48,.52
  19. 200 DATA .95,.98,1,.61,.95,1,.48,.79,1,.16,.29,.4,.63,.82,.89,.92,1
  20. 210 DATA .11,.25,.52,.67,.72,.84,.98,1,.08,.21,.31,.42,.48,.58,.65,.79
  21. 220 DATA .89,.97,1
  22. 230 Z$(14) = M$(Z5) : Z$(15) = "HELP" : Z$(T4) = "CQ" : Z$(17) = "WORKED" : Z$(18) = "DEBUG"
  23. 240 S$(Z0) = "CT" : S$(Z1) = "EMASS" : S$(Z2) = "ME" : S$(Z3) = "NH" : S$(Z4) = "RI"
  24. 250 S$(Z5) = "VT" : S$(Z6) = "WMASS" : S$(Z7) = "ENY" : S$(Z8) = "NY - LI" : S$(Z9) = "NNJ"
  25. 260 S$(10) = "SNJ" : S$(11) = "WNY" : S$(12) = "DE" : S$(13) = "E.PA" : S$(14) = "M.DC"
  26. 270 S$(15) = "W.PA" : S$(16) = "ALA" : S$(17) = "GA" : S$(18) = "KY" : S$(19) = "NC"
  27. 280 S$(20) = "NFLA" : S$(21) = "SC" : S$(22) = "SFLA" : S$(23) = "TN" : S$(24) = "VA"
  28. 290 S$(25) = "WI" : S$(26) = "AK" : S$(27) = "LA" : S$(28) = "MISS" : S$(29) = "NM"
  29. 300 S$(30) = "N.TEX" : S$(31) = "OK" : S$(32) = "S.TEX" : S$(33) = "CZ" : S$(34) = "E BAY"
  30. 310 S$(35) = "LA" : S$(36) = "ORG" : S$(37) = "SB" : S$(38) = "SCV" : S$(39) = "SD" : S$(40) = "SF"
  31. 320 S$(41) = "SJV" : S$(42) = "SV" : S$(43) = "PCF" : S$(44) = "AZ" : S$(45) = "ID" : S$(46) = "MT"
  32. 330 S$(47) = "NV" : S$(48) = "OR" : S$(49) = "UT" : S$(50) = "WA" : S$(51) = "AL" : S$(52) = "WY"
  33. 340 S$(53) = "MI" : S$(54) = "OH" : S$(55) = "W VA" : S$(56) = "IL" : S$(57) = "IN" : S$(58) = "WSC"
  34. 350 S$(59) = "CO" : S$(60) = "IA" : S$(61) = "KS" : S$(62) = "MN" : S$(63) = "MO" : S$(64) = "NB"
  35. 360 S$(65) = "ND" : S$(66) = "SD" : S$(67) = "MAR" : S$(68) = "QB" : S$(69) = "ONT" : S$(70) = "MAN"
  36. 370 S$(71) = "SK" : S$(72) = "AB" : S$(73) = "BC" : S$(74) = "NWT"
  37. 380 INPUT "ARE YOU A HAM RADIO OPERATOR" ; I$ : IF LEFT$(I$,Z1) <> "Y" THEN 420
  38. 390 INPUT "YOUR CALL" ; A$ : IF RIGHT$(A$,Z2) <> "/3" THEN A$ = A$ + "/3"
  39. 400 INPUT "YEAR FIRST LICENSED " ; N
  40. 410 IF N < 1900 THEN PRINT "YOU MUST HAVE BEEN LICENSED BEFORE 1900" : GOTO 400
  41. 420 F$ = STR$(N - 1900) : PRINT : PRINT "OK","THE STATION CALL IS",A$
  42. 430 PRINT ,"THE QTH IS SILVER SPRING, MARYLAND " : PRINT 
  43. 440 INPUT "DO YOU NEED INSTRUCTIONS " ; I$ : IF LEFT$(I$,Z1) = "Y" THEN GOSUB 3300
  44. 450 PRINT : PRINT "SETTING UP CALLS OF CONTESTANTS"
  45. 460 PRINT "THIS IS GOING  TO TAKE ABOUT" ; INT(K / (T7 * Z2)) + Z1 ; " MINUTES"
  46. 470 PRINT "WHY DON'T YOU GET A CUP OF COFFEE OR SOMETHING"
  47. 480 FOR I = Z0 TO K - Z1 : X = RND(Z1) : FOR J = 75 TO 86 : IF X > P(J) THEN NEXT J
  48. 490 X = RND(Z1) : N = J - K7 : ON J - 75 GOTO 510,520,530,540,550,560,570,580,590,600
  49. 500 Y = Z0 : Z = Z6 : GOTO 610
  50. 510 Y = Z7 : Z = 11 : GOTO 610
  51. 520 Y = T3 : Z = 15 : GOTO 610
  52. 530 Y = 16 : Z = 25 : GOTO 610
  53. 540 Y = 26 : Z = 33 : GOTO 610
  54. 550 Y = 34 : Z = 43 : GOTO 610
  55. 560 Y = 44 : Z = 52 : GOTO 610
  56. 570 Y = 53 : Z = 55 : GOTO 610
  57. 580 Y = 56 : Z = 58 : GOTO 610
  58. 590 Y = 59 : Z = K6 : GOTO 610
  59. 600 Y = 67 : Z = K7
  60. 610 FOR T = Y TO Z : IF X > P(T) THEN NEXT T
  61. 620 Y = INT(RND(Z1) * Z5) : J$ = P$(Y) : C(I) = T : IF T > K6 THEN J$ = "VE" : N = T - K6
  62. 630 IF T = 51 THEN J$ = "KL" : GOTO 670
  63. 640 IF T = 33 THEN J$ = "KZ" : GOTO 670
  64. 650 IF T = 43 THEN J$ = "KH" : IF RND(Z1) < P1 THEN J$ = "KG" : IF RND(Z1) > P5 THEN J$ = "KM"
  65. 660 IF T = 25 THEN J$ = "KP" : IF RND(Z1) > P5 THEN J$ = "KV" : IF RND(Z1) > P5 THEN J$ = "KC"
  66. 670 C$(I) = J$ + RIGHT$(STR$(N),Z1) : GOSUB 2920 : GOSUB 2920 : GOSUB 2920
  67. 680 PRINT K - I : NEXT I : N = Z1 : PRINT "IT IS 2100 HRS ON" ; D ; " " + D$
  68. 690 PRINT "THE CONTEST HAS STARTED" + X$ : GOTO 1050
  69. 700 PRINT : IF N >= K THEN 2010
  70. 710 IF Q1 = Z0 AND RND(Z1) < P1 THEN 2930
  71. 720 IF H1 > T6 OR D >= 21 AND H > T5 THEN PRINT "CONTEST IS OVER" : GOTO 1480
  72. 730 INPUT "QRU" ; I$ : IF LEN(I$) < Z2 THEN PRINT "WHAT" + X$ : GOTO 730
  73. 740 FOR I = Z0 TO Q4 : IF I$ = LEFT$(Z$(I),LEN(I$)) THEN 760
  74. 750 NEXT : FOR I = Z0 TO Q4 - Z1 : PRINT Z$(I), : NEXT : PRINT : GOTO 730
  75. 760 IF I > Z8 THEN ON I - Z8 GOTO 1480,1490,1420,1170,1980,3270,1340,930,1750,1730
  76. 770 ON I GOTO 840,1040,1090,1140,1240,1300,1350,1450
  77. 780 Q6 = Z0 : ON Q1 GOTO 800,1670,1700,1620
  78. 790 PRINT "CALL WHOM ?" + X$ : PRINT "TRY TUNING OR PUT OUT A CQ" : GOTO 700
  79. 800 IF L(Z7) = Z0 AND RND(Z1) > P5 THEN 1030
  80. 810 PRINT "TRY SEND OR REPEAT, DON'T WASTE TIME" ; X$ : GOTO 700
  81. 820 IF L(Z6) = Z0 AND RND(Z1) < P1 THEN PRINT "REPEAT PLEASE" : GOTO 700
  82. 830 Q1 = Z0 : GOTO 700
  83. 840 IF C(P) > K7 THEN PRINT "IN THE LOG ALREADY" : GOTO 700
  84. 850 IF Q5 = Z0 THEN PRINT X$ + "WHY DON'T YOU SEND HIM HIS REPORT FIRST" : GOTO 730
  85. 860 FOR I = Z0 TO Z7 : IF L(I) = Z0 THEN I = Z1 : GOSUB 1580 : GOTO 700
  86. 870 Q7 = Z0 : NEXT : Y = C(P) : N = N + Z1
  87. 880 IF Y > K7 THEN Y = Y - B : GOTO 880
  88. 890 S(Y) = Z1 : C(P) = C(P) + B : GOSUB 920 : Q1 = Z0 : PRINT "NEXT QSO = " ; N
  89. 900 IF Q6 = Z1 AND RND(Z1) > P5 OR RND(Z1) < P1 THEN 930
  90. 910 GOTO 700
  91. 920 Q5 = Z0 : FOR I = Z0 TO Z7 : L(I) = Z0 : NEXT : RETURN
  92. 930 Q6 = Z1 : Y = T6 : GOSUB 1770 : IF Y = Z0 THEN 700
  93. 940 IF RND(Z1) < P1 THEN PRINT "FREQUENCY IS IN USE OM" : GOTO 700
  94. 950 IF RND(Z1) < P1 OR B = B4 AND H >= T5 AND RND(Z1) > P5 THEN PRINT "QRM" : GOTO 700
  95. 960 IF Q7 = Z0 THEN GOSUB 1970
  96. 970 IF Q7 = Z1 AND Q1 = Z1 THEN N1 = N1 + Z1
  97. 980 GOSUB 1900 : Q1 = Z1 : PRINT A$ ; E$ ; C$(P) : L(Z2) = Z1
  98. 990 IF C(P) > K7 AND Q6 = Z1 AND RND(Z1) < Z2 * P1 THEN 700
  99. 1000 IF C(P) > K7 AND Q6 = Z1 THEN 1020
  100. 1010 IF C(P) > K7 AND RND(Z1) > P5 THEN PRINT "WE'VE WORKED OM !" : GOTO 700
  101. 1020 IF RND(Z1) > P5 THEN PRINT : GOTO 700
  102. 1030 J$ = A$ : GOSUB 1860 : PRINT : GOTO 700
  103. 1040 PRINT Z$(Z2) ; " = " ; B$(INT(B - Z1) / B1)
  104. 1050 INPUT "WHICH BAND " ; I$ : FOR I = Z0 TO Z4 : IF I$ = B$(I) THEN 1070
  105. 1060 NEXT : FOR I = Z0 TO Z4 : PRINT B$(I), : NEXT : PRINT : GOTO 1050
  106. 1070 IF B = (Z1 + I) * B1 THEN 700
  107. 1080 B = (Z1 + I) * B1 : GOSUB 920 : GOTO 700
  108. 1090 IF L(Z2) = Z0 AND L(Z5) = Z0 THEN PRINT "CHECK WHAT" : GOTO 700
  109. 1100 IF C(P) >= B1 THEN PRINT C$(P) ; " WORKED ON " ; B$(INT(C(P) / B1) - Z1) : GOTO 700
  110. 1110 Y = C(P) : IF Y >= B1 THEN Y = Y - B1 : GOTO 1110
  111. 1120 IF L(Z5) = Z1 THEN PRINT "SECTION " ; : IF S(Y) = Z1 THEN PRINT "WORKED" : GOTO 700
  112. 1130 PRINT "NOT WORKED YET" : GOTO 700
  113. 1140 GOSUB 1150 : GOTO 700
  114. 1150 PRINT Z$(Z4) ; : PRINT TAB(T6) ; D ; D$ : PRINT Z$(Z2) ; : PRINT TAB(T6) ; 
  115. 1160 PRINT B$(INT(B - Z1) / B1)
  116. 1170 PRINT "GMT. TIME" ; : PRINT TAB(T6) ; : PRINT H ; " HRS",M ; " MIN"
  117. 1180 PRINT "ELAPSED TIME" ; : PRINT TAB(T6) ; H1 ; " HRS",M1 ; " MIN" : IF I = T3 THEN 700
  118. 1190 PRINT "QSO'S" ; : PRINT TAB(T6) ; N - Z1 : PRINT M$(Z5) + "S WORKED" ; 
  119. 1200 PRINT TAB(T6) ; : Y = Z0 : FOR J = Z0 TO K7 : IF S(J) = Z1 THEN Y = Y + Z1
  120. 1210 NEXT : PRINT Y : PRINT "SCORE" ; : PRINT TAB(T6) ; Z2 * (N - Z1) * Y : PRINT "RATE" ; 
  121. 1220 IF H1 = Z0 AND M1 = Z0 THEN PRINT TAB(T6) ; " - - - " : RETURN
  122. 1230 PRINT TAB(T6) ; (N - Z1) * T7 / (H1 * T7 + M1) ; "QSO'S PER HOUR" : RETURN
  123. 1240 INPUT "HRS" ; X : INPUT "MIN" ; Y : IF X = Z0 AND Y < 15 THEN GOSUB 1580 : GOTO 1240
  124. 1250 IF X >= T6 OR Y >= T7 THEN GOSUB 1290 : IF LEFT$(I$,Z1) <> "Y" THEN 1240
  125. 1260 M = M + Y : IF M >= T7 THEN M = M - T7 : H = H + Z1
  126. 1270 H = H + X : IF H >= T6 THEN H = H - T6 : D = D + 1
  127. 1280 GOSUB 1150 : GOSUB 920 : Q1 = Z0 : GOTO 700
  128. 1290 INPUT "ARE YOU SURE YOU MEANT THAT" ; I$ : RETURN
  129. 1300 IF L(Z7) = Z1 THEN PRINT "73, SEE YOU LATER" : GOTO 700
  130. 1310 IF RND(Z1) > P1 THEN L(Z7) = Z1 : PRINT "ROGER" : GOTO 700
  131. 1320 IF RND(Z1) >= P1 THEN PRINT "DO YOU QSL ?"
  132. 1330 GOTO 700
  133. 1340 GOSUB 3300 : GOTO 700
  134. 1350 IF L(Z2) = Z0 OR Q1 = Z0 THEN PRINT X$ + "TO WHOM" : GOTO 700
  135. 1360 IF Q1 <> Z1 THEN PRINT "TUT TUT - CALL HIM FIRST" ; X$ : GOTO 700
  136. 1370 PRINT L$(Z2) ; " UR" ; N ; : PRINT "A" ; E$ ; A$ ; : PRINT " " ; K$ ; " " ; F$ ; " MD K"
  137. 1380 IF RND(Z1) < P1 THEN PRINT A$ ; " PLEASE REPEAT" ; E$ ; C$(P) : GOTO 700
  138. 1390 Q5 = Z1 : L(Z6) = Z1 : IF L(Z7) = Z1 THEN PRINT "QSL" : GOTO 700
  139. 1400 IF RND(Z1) > P5 THEN J$ = A$ : GOSUB 1860 : PRINT "DO YOU QSL ?"
  140. 1410 GOTO 700
  141. 1420 FOR I = Z0 TO Z5 : IF L(I) = Z1 THEN NEXT : PRINT " GOT IT ALL" : GOTO 700
  142. 1430 PRINT "STILL NEED", : FOR J = I TO Z5 : IF L(J) = Z0 THEN PRINT " " ; M$(J) ; 
  143. 1440 NEXT : PRINT : GOTO 700
  144. 1450 IF Q1 <> Z1 THEN PRINT "CALL HIM FIRST" + X$ : GOTO 700
  145. 1460 IF RND(Z1) > P1 THEN J$ = A$ : GOSUB 1860 : GOTO 700
  146. 1470 PRINT "SORRY OM, QRM ... TRY AGAIN" : GOTO 700
  147. 1480 PRINT "FINAL " ; : GOSUB 1150 : GOTO 3500
  148. 1490 IF B < 400 AND H > T4 AND RND(Z1) < P1 THEN GOSUB 3110 : GOTO 700
  149. 1500 IF RND(Z1) >= P5 + P1 AND B = B4 AND (H >= T5 OR H < Z6) THEN GOSUB 3170 : GOTO 700
  150. 1510 GOSUB 920 : Q1 = Z0 : Y = T7 : GOSUB 1770 : IF Y = Z0 THEN 700
  151. 1520 L(Z2) = Z1 : Q1 = INT(RND(Z1) * Z3) + Z2 : ON Q1 GOTO 1530,1540,1550
  152. 1530 PRINT "QRZ" ; E$ ; C$(P) : GOTO 700
  153. 1540 FOR T = 0 TO INT(RND(1) * 3) : PRINT "CQ CQ CQ" ; E$ ; C$(P) ; " " ; : NEXT : PRINT "K" : GOTO 700
  154. 1550 GOSUB 1810 : PRINT C$(K) ; E$ ; C$(P) : IF RND(Z1) > P5 THEN 700
  155. 1560 Q7 = Z1 : GOSUB 1970
  156. 1570 GOSUB 1900 : J$ = C$(K) : GOSUB 1860 : GOTO 700
  157. 1580 PRINT "THAT'S AGAINST THE RULES" : PRINT X$
  158. 1590 IF I = Z1 THEN PRINT "QSO NOT COMPLETED"
  159. 1600 IF I = Z5 THEN PRINT "15 MINUTE MINIMUM"
  160. 1610 RETURN
  161. 1620 IF RND(Z1) > P5 THEN 1850
  162. 1630 IF Q7 = Z1 AND RND(Z1) > P5 THEN 970
  163. 1640 IF RND(Z1) > P5 THEN Q1 = Z2 : GOTO 1530
  164. 1650 IF RND(Z1) < P5 THEN PRINT "PLEASE, I'M IN QSO" : GOTO 700
  165. 1660 PRINT C$(K) ; E$ ; C$(P) ; " SORRY QRM, REPEAT" : GOTO 700
  166. 1670 IF RND(Z1) > P5 THEN 1530
  167. 1680 IF RND(Z1) < P1 THEN Q1 = Z3 : GOTO 1540
  168. 1690 Q1 = Z1 : GOTO 960
  169. 1700 IF RND(Z1) > P5 THEN 1540
  170. 1710 IF RND(Z1) > P5 THEN Q1 = Z2 : GOTO 1530
  171. 1720 Q1 = Z1 : GOTO 960
  172. 1730 FOR J = Z0 TO K - Z1 : PRINT C$(J) ; : IF C(J) > K7 THEN PRINT " * " ; 
  173. 1740 PRINT , : NEXT : GOTO 700
  174. 1750 FOR J = Z0 TO K - Z1 : IF C(J) > K7 THEN PRINT C$(J),
  175. 1760 NEXT : GOTO 700
  176. 1770 Y = RND(Z1) * Y + Z4 : FOR T = Z0 TO Z2 : GOSUB 2860 : GOSUB 2820 : GOSUB 2030
  177. 1780 IF Y = Z0 OR RND(Z1) < P1 THEN NEXT : Y = Z0
  178. 1790 IF Y = Z1 THEN GOSUB 1900
  179. 1800 RETURN
  180. 1810 I = K : T = INT(RND(Z1) * Z3 + Z2) : J$ = P$(INT(RND(Z1) * Z3))
  181. 1820 C$(I) = J$ + RIGHT$(STR$(T),Z1) : GOSUB 2920 : GOSUB 2920 : GOSUB 2920
  182. 1830 IF C$(I) = A$ THEN 1810
  183. 1840 RETURN
  184. 1850 GOSUB 1810 : J$ = C$(K) : GOSUB 1860 : N1 = N1 + Z1 : Q7 = Z1 : GOTO 700
  185. 1860 L$(Z0) = STR$(N1) : L(Z7) = Z1 : PRINT J$ ; " UR" ; : 
  186. 1870 FOR J = Z0 TO Z5 : IF L(J) = Z1 OR RND(Z1) >= P1 THEN L(J) = Z1 : PRINT " " ; L$(J) ; : GOTO 1890
  187. 1880 PRINT R$ ; 
  188. 1890 NEXT : PRINT : RETURN
  189. 1900 FOR J = Z1 TO 26 : IF RIGHT$(C$(P),Z1) <> MID$(Q$,J,Z1) THEN NEXT 
  190. 1910 L$(Z1) = "A" : IF J >= T3 THEN L$(Z1) = "B"
  191. 1920 Y = Z0 : FOR J = Z1 TO Z3 : Y = Y + ASC(MID$(RIGHT$(C$(P),Z3),J,Z1)) : NEXT 
  192. 1930 L$(Z4) = STR$(INT(Y / Z2 - 57)) : L$(Z0) = STR$(N1)
  193. 1940 L$(Z2) = C$(P) : L$(Z3) = K$ : Y = C(P)
  194. 1950 IF Y > K7 THEN Y = Y - B1 : GOTO 1950
  195. 1960 L$(Z5) = S$(Y) : RETURN
  196. 1970 N1 = Z1 + INT(N * T3 * P1 * RND(Z1)) : RETURN
  197. 1980 IF RND(Z1) < P1 THEN 700
  198. 1990 IF RND(Z1) > P5 THEN PRINT "SORRY"
  199. 2000 Q1 = Z0 : GOTO 900
  200. 2010 PRINT "ANTENNA BLEW DOWN IN WIND"
  201. 2020 PRINT " NO WAY  TO FIX IT - QRT" : GOTO 1480
  202. 2030 IF C(P) < B1 THEN 2070
  203. 2040 X = C(P)
  204. 2050 C(P) = C(P) - B1 : IF C(P) > B1 THEN 2050
  205. 2060 GOSUB 2070 : C(P) = X : RETURN
  206. 2070 Y = 0 : IF C(P) = 14 OR C(P) = T6 THEN 2810
  207. 2080 IF C(P) < Z8 THEN 2230
  208. 2090 IF C(P) < T3 THEN 2280
  209. 2100 IF C(P) < T4 THEN 2310
  210. 2110 IF C(P) = 25 THEN 2710
  211. 2120 IF C(P) < 25 THEN 2340
  212. 2130 IF C(P) = 33 THEN 2750
  213. 2140 IF C(P) < 33 THEN 2380
  214. 2150 IF C(P) = 43 THEN 2640
  215. 2160 IF C(P) < 43 THEN 2420
  216. 2170 IF C(P) = 51 THEN 2640
  217. 2180 IF C(P) < 53 THEN 2480
  218. 2190 IF C(P) < 56 THEN 2530
  219. 2200 IF C(P) < 59 THEN 2550
  220. 2210 IF C(P) < 67 THEN 2580
  221. 2220 ON C(P) - 67 GOTO 2280,2530,2550,2580,2480,2480,2480
  222. 2230 IF B = B4 OR B = B5 AND H < T3 OR B = B3 AND H >= T5 AND RND(Z1) > P5 THEN 2810
  223. 2240 IF B = B3 AND (H < T5 AND H >= T3 OR RND(Z1) > P5 AND H >= Z8) THEN 2810
  224. 2250 IF B = B2 AND (H >= T5 OR H >= Z8 AND H < T3) AND RND(Z1) < P1 THEN 2810
  225. 2260 IF B = B1 AND (H >= T3 AND Q = Z2 AND H < T5 OR H >= T5 AND RND(Z1) > P5) THEN 2810
  226. 2270 RETURN
  227. 2280 IF B = B3 AND (H >= Z8 AND H < T3 OR H >= T5) AND RND(Z1) > P5 THEN 2810
  228. 2290 IF B >= B4 OR B = B1 AND Q = Z1 AND RND(Z1) < P5 AND H < T4 AND H >= T3 THEN 2810
  229. 2300 RETURN
  230. 2310 IF B = B5 OR B = B4 AND H < Z8 AND RND(Z1) > P5 THEN 2810
  231. 2320 IF B = B4 AND (H >= T5 OR H >= Z8 AND H < T3) THEN 2810
  232. 2330 RETURN
  233. 2340 IF B = B4 OR B = B3 AND H >= Z8 OR B = B1 AND Q = Z3 AND H >= T3 AND RND(Z1) > P5 THEN 2810
  234. 2350 IF B = B2 AND H < T5 AND H >= T3 AND RND(Z1) > P5 THEN 2810
  235. 2360 IF B = B5 AND H < T4 OR (H >= T5 OR H < T3) AND RND(Z1) > P5 THEN 2810
  236. 2370 RETURN
  237. 2380 IF B < B4 AND H >= T3 AND H < T5 OR B = B4 AND H < Z8 THEN 2810
  238. 2390 IF B = B5 AND (H < Z8 AND H >= Z4 OR H < Z4 AND RND(Z1) > P5) THEN 2810
  239. 2400 IF RND(Z1) > P5 AND (H >= T5 OR H >= Z8 AND H < T3) THEN 2810
  240. 2410 RETURN
  241. 2420 IF H < Z8 AND H >= T3 AND RND(Z1) < P1 THEN 2810
  242. 2430 IF B < B4 AND H >= T3 AND H < T5 OR B >= B3 AND H < Z8 AND H >= 4 THEN 2810
  243. 2440 IF H >= T5 AND B < B3 AND RND(Z1) > P5 THEN 2810
  244. 2450 IF H >= T5 AND (B = B3 OR B = B4 AND RND(Z1) < P1) THEN 2810
  245. 2460 IF H < Z4 AND (B = B4 OR B = B5 AND RND(Z1) > P5) THEN 2810
  246. 2470 RETURN
  247. 2480 IF B < B4 AND H < T5 AND H >= T3 THEN 2810
  248. 2490 IF H >= T5 AND B > B1 AND B < B5 AND RND(Z1) > P5 THEN 2810
  249. 2500 IF B = B4 AND (H < Z8 OR H >= T5 AND RND(Z1) > P5) THEN 2810
  250. 2510 IF B = B5 AND (H < Z8 AND H >= Z4 OR H < Z4 AND RND(Z1) > P5) THEN 2810
  251. 2520 RETURN
  252. 2530 IF B = B5 OR B = B4 AND (H >= Z8 OR RND(Z1) > P5) THEN 2810
  253. 2540 RETURN
  254. 2550 IF B = B4 OR B = B5 AND (H < Z8 OR RND(Z1) > P5 AND H < T3 OR H >= T5) THEN 2810
  255. 2560 IF B = B3 AND H >= T3 AND H < T5 THEN 2810
  256. 2570 RETURN
  257. 2580 IF B > B3 AND H < Z8 OR H < T3 AND RND(Z1) > P5 THEN 2810
  258. 2590 IF B = B1 AND Q = Z5 AND H >= T3 AND RND(Z1) > P5 THEN 2810
  259. 2600 IF B = B2 AND H < T5 AND H >= T3 AND RND(Z1) > P5 THEN 2810
  260. 2610 IF B = B3 AND (H < T5 AND H >= T3 OR H >= T5 AND RND(Z1) > P5) THEN 2810
  261. 2620 IF H >= T5 AND (B = B4 AND RND(Z1) > P5 OR B = B5 AND RND(Z1) < P1) THEN 2810
  262. 2630 RETURN
  263. 2640 IF B < B4 AND H < T5 AND H >= T4 THEN 2810
  264. 2650 IF B = B3 AND (H >= T3 AND RND(Z1) > P5 OR H >= Z8 AND H < T3 AND RND(Z1) < P1) THEN 2810
  265. 2660 IF B = B1 AND H >= T3 AND (H < T5 OR RND(Z1) > P5) THEN 2810
  266. 2670 IF B = B2 AND (H < T4 AND H >= T3 AND RND(Z1) > P5 OR H >= T5 AND RND(Z1) < P1) THEN 2810
  267. 2680 IF B = B4 AND H < Z8 AND (H >= Z4 OR RND(Z1) > P5) THEN 2810
  268. 2690 IF B = B5 AND H >= Z4 AND H < Z8 AND RND(Z1) > P5 THEN 2810
  269. 2700 RETURN
  270. 2710 IF B = B5 AND H < Z8 OR B < B4 AND H >= Z8 AND H < T5 THEN 2810
  271. 2720 IF H >= T5 AND (B = B1 AND RND(Z1) > P5 OR B = B2 OR B = B3) THEN 2810
  272. 2730 IF B = B4 AND (H >= Z4 AND H < Z8 OR H < Z4 AND RND(Z1) < P1) THEN 2810
  273. 2740 RETURN
  274. 2750 IF B < B3 AND H < T5 AND (H >= T3 AND H < T4 OR H >= Z8 AND RND(Z1) > P5) THEN 2810
  275. 2760 IF H >= T5 AND (B = B2 OR B = B4) AND RND(Z1) > P5 THEN 2810
  276. 2770 IF H >= T4 AND B = B3 OR B = B4 AND H < Z8 THEN 2810
  277. 2780 IF B = B4 AND RND(Z1) > P5 AND H < T3 THEN 2810
  278. 2790 IF B = B5 AND H < Z8 AND (H >= Z4 OR RND(Z1) > P5) THEN 2810
  279. 2800 RETURN
  280. 2810 Y = 1 : RETURN
  281. 2820 IF I = Z0 THEN P = INT(RND(Z1) * K)
  282. 2830 P = P + INT(RND(Z1) * Z9) : IF P >= K THEN P = P - K
  283. 2840 IF B = B1 AND RND(Z1) > P1 * P1 THEN Q = Q + INT(RND(Z1) + Z4) : IF Q > Z5 THEN Q = Q - Z5
  284. 2850 RETURN
  285. 2860 S1 = S1 + Y : IF S1 < T7 THEN RETURN
  286. 2870 S1 = S1 - T7 : M1 = M1 + Z1 : M = M + Z1 : IF S1 >= T7 THEN 2870
  287. 2880 IF M >= T7 THEN M = M - T7 : H = H + Z1 : GOTO 2880
  288. 2890 IF M1 >= T7 THEN M1 = M1 - T7 : H1 = H1 + Z1 : GOTO 2890
  289. 2900 IF H < T6 THEN RETURN
  290. 2910 H = H - T6 : D = D + Z1 : RETURN
  291. 2920 I$ = MID$(Q$,INT(RND(Z1) * 26) + Z1,Z1) : C$(I) = C$(I) + I$ : RETURN
  292. 2930 IF RND(Z1) > P1 * Z2 THEN 700
  293. 2940 X = INT(RND(Z1) * 10) + Z1
  294. 2950 ON X GOTO 2960,2970,2980,2960,2960,2960,2960,2960,3070,3020,2960
  295. 2960 PRINT "TIMEOUT IN THE BATHROOM" : Y = T5 : GOTO 2990
  296. 2970 PRINT "TIMEOUT  TO CLEAR UP SPILT COFFEE" : Y = Z5 : GOTO 2990
  297. 2980 PRINT "KIDS ARE FIGHTING..TIMEOUT" : Y = T4
  298. 2990 Y = INT(RND(Z1) * Y) + Z3 : PRINT "OFF THE AIR FOR " ; Y ; " MIN"
  299. 3000 IF Y > 14 THEN X = Z0 : GOTO 1260
  300. 3010 Y = Y * T7 : GOSUB 2860 : GOTO 700
  301. 3020 IF RND(Z1) * 10 < P5 THEN 2010
  302. 3030 PRINT "POWER LINE BLACKOUT" : X = INT(RND(Z1) * Z5) : Y = INT(RND(Z1) * T6) + Z8
  303. 3040 PRINT "POWER CAME BACK ON AFTER " ; X ; " HRS",Y," MIN"
  304. 3050 IF X = Z0 AND Y < 15 THEN Y =  Y * T7 : GOSUB 2860 : GOTO 700
  305. 3060 GOTO 1260
  306. 3070 PRINT "FINAL TUBES BLEW OUT"
  307. 3080 IF H < T3 THEN PRINT "WHERE ARE YOU GOING  TO GET SPARES AT THIS TIME"
  308. 3090 PRINT "LUCKY YOU, SPARES ARE  TO HAND "
  309. 3100 PRINT "REPLACING THEM NOW" : Y = T7 : GOTO 2990
  310. 3110 I$ = "YV4XYZ" : IF RND(Z1) > P5 THEN I$ = "HK3ZZZ"
  311. 3120 J$ = "MIAMI" : IF RND(Z1) > P5 THEN J$ = "LOS ANGELES"
  312. 3130 PRINT "CQ CQ CQ DE " ; I$
  313. 3140 PRINT "THIS IS " ; I$ ; " LOOKING FOR A PHONE PATCH IN TO " ; J$
  314. 3150 IF RND(Z1) < P5 - P1 THEN 3140
  315. 3160 RETURN
  316. 3170 X = INT(RND(Z1) * Z4) : IF RND(Z1) > P5 THEN 3190
  317. 3180 PRINT "YOU ARE LISTENING  TO " ; : ON X + Z1 GOTO 3200,3210,3220,3230
  318. 3190 PRINT "THIS IS " ; : ON X GOTO 3210,3220,3230
  319. 3200 PRINT "RADIO MOSCOW" : GOTO 3240
  320. 3210 PRINT "RADIO PEKING" : GOTO 3240
  321. 3220 PRINT "RADIO ALBANIA" : GOTO 3240
  322. 3230 PRINT "THE BBC" : IF RND(Z1) < P1 * Z2 THEN PRINT "THIS IS RADIO NEWSREEL" : RETURN
  323. 3240 IF RND(Z1) > P5 THEN PRINT "A NEWS BROADCAST FOLLOWS" : RETURN
  324. 3250 IF RND(Z1) > P5 THEN PRINT "YOU HAVE BEEN LISTENING  TO A COMMENTARY ON THE NEWS"
  325. 3260 RETURN
  326. 3270 PRINT Z$(14) + "S NEEDED" : J = K7 : FOR I = Z0 TO K7
  327. 3280 IF S(I) = Z0 THEN PRINT S$(I), : J = J - Z1
  328. 3290 NEXT : PRINT : PRINT J + Z1,Z$(14) + "S WORKED" : PRINT : GOTO 700
  329. 3300 PRINT Z$(Z0),"CALL OTHER STATION"
  330. 3310 PRINT Z$(Z1),"ENTER CONTACT IN LOG"
  331. 3320 PRINT Z$(Z2),"CHANGE BANDS"
  332. 3330 PRINT Z$(Z3),"CHECK  TO SEE IF WORKED"
  333. 3340 PRINT Z$(Z4),"SEE HOW WELL YOU ARE DOING"
  334. 3350 PRINT Z$(Z5),"TAKE A BREAK (TIMEOUT)"
  335. 3360 PRINT Z$(Z6),"CONFIRM RECEPTION OF CONTEST DATA "
  336. 3370 PRINT Z$(Z7),"SEND YOUR DATA  TO OTHER STATION"
  337. 3380 PRINT Z$(Z8),"REQUEST REPEAT OF OTHER STATION'S DATA "
  338. 3390 PRINT Z$(Z9),"GIVE UP AND SWITCH OFF EQUIPMENT"
  339. 3400 PRINT Z$(10),"TUNE ACROSS BAND "
  340. 3410 PRINT Z$(11),"DETERMINE WHICH DATA ARE MISSING FROM REPORT"
  341. 3420 PRINT Z$(T3),"LOOK AT TIME OF DAY"
  342. 3430 PRINT Z$(13),"TELL OTHER STATION THAT YOU HAVE WORKED BEFORE"
  343. 3440 PRINT Z$(14),"LIST SECTIONS STILL NEEDED"
  344. 3450 PRINT Z$(15),"RECEIVE SUMMARY OF INSTRUCTIONS"
  345. 3460 PRINT Z$(T4),"CALL " ; Z$(T4)
  346. 3470 PRINT Z$(17),"LIST OF STATIONS WORKED (UNSORTED)"
  347. 3480 PRINT "YOU MAY TYPE FIRST TWO LETTERS FOR ALL ENTRIES, EXCEPT",
  348. 3490 PRINT Z$(14) ; " (TYPE 3)" : RETURN
  349. 3500 PRINT "HOPE YOU ENJOYED THE CONTEST"
  350. ST TWO LETTERS FOR ALL ENTRIES, EXCEPT",
  351. 3490 PR