home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hacker Chronicles 2
/
HACKER2.BIN
/
728.CQSS.BAS
< prev
next >
Wrap
BASIC Source File
|
1985-09-22
|
20KB
|
351 lines
20 K = 1000 : REM number of stations in contest
30 PRINT "ARRL SWEEPSTAKES CONTEST SIMULATION VERSION 2.12"
40 Q4 = 18 : K7 = 74 : K6 = 66 : P1 = .1 : P5 = .5 : Z0 = 0 : Z1 = 1 : Z2 = 2 : Z3 = 3 : Q = (RND(Z1) * Z2)
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
60 DIM L(Z7),L$(Z5),C$(K),C(K),S(K7),S$(K7),P(85),P$(Z4),Z$(Q4),B$(Z4)
70 Z$(13) = "DUPLICATE" : B$(Z0) = "10" : B$(Z1) = "15" : B$(Z2) = "20" : B$(Z3) = "40"
80 P$(Z0) = "W" : P$(Z1) = "K" : P$(Z2) = "WA" : Q$ = "QWERTYUIOPASDFGHJKLZXCVBNM"
90 B$(Z4) = "80" : Z$(Z0) = "CALL" : Z$(Z1) = "LOG" : Z$(Z2) = "BAND " : Z$(Z3) = "CHECK" : X$ = ""
100 P$(Z3) = "WB" : Z$(Z4) = "STATUS" : Z$(Z5) = "BREAK" : Z$(Z6) = "QSL" : E$ = " DE "
110 B4 = 400 : B5 = 500 : T4 = 16 : T5 = 20 : T6 = 24 : T7 = 60 : Z$(Z8) = "REPEAT" : Z$(Z9) = "QRT"
120 DIM M$(Z5) : M$(Z0) = "NUMBER" : M$(Z1) = "POWER" : M$(Z4) = Z$(Z3) : M$(Z5) = "SECTION"
130 M$(Z2) = Z$(Z0) : A$ = "G3ZCZ/W3" : H = 21 : D = 19 : R$ = " !# * " : D$ = "NOVEMBER" : N = 1968
140 K$ = "CK" : Z$(7) = "SEND" : Z$(10) = "TUNE" : Z$(11) = "DATA " : Z$(T3) = "TIME" : M$(3) = Z$(3)
150 P$(Z4) = "N" : PRINT "COPYRIGHT (C) JOE KASSER [G3ZCZ] 1979 "
160 FOR I = Z0 TO 85 : READ P(I) : NEXT
170 DATA .3,.58,.66,.76,.84,.88,1,.17,.34,.53,.78,1,.04,.41,.85,1,.04
180 DATA .14,.22,.32,.41,.44,.51,.59,.97,1,.11,.16,.25,.31,.62,.7,.99,1
190 DATA .11,.26,.33,.38,.69,.76,.83,.93,.97,1,.17,.23,.28,.34,.48,.52
200 DATA .95,.98,1,.61,.95,1,.48,.79,1,.16,.29,.4,.63,.82,.89,.92,1
210 DATA .11,.25,.52,.67,.72,.84,.98,1,.08,.21,.31,.42,.48,.58,.65,.79
220 DATA .89,.97,1
230 Z$(14) = M$(Z5) : Z$(15) = "HELP" : Z$(T4) = "CQ" : Z$(17) = "WORKED" : Z$(18) = "DEBUG"
240 S$(Z0) = "CT" : S$(Z1) = "EMASS" : S$(Z2) = "ME" : S$(Z3) = "NH" : S$(Z4) = "RI"
250 S$(Z5) = "VT" : S$(Z6) = "WMASS" : S$(Z7) = "ENY" : S$(Z8) = "NY - LI" : S$(Z9) = "NNJ"
260 S$(10) = "SNJ" : S$(11) = "WNY" : S$(12) = "DE" : S$(13) = "E.PA" : S$(14) = "M.DC"
270 S$(15) = "W.PA" : S$(16) = "ALA" : S$(17) = "GA" : S$(18) = "KY" : S$(19) = "NC"
280 S$(20) = "NFLA" : S$(21) = "SC" : S$(22) = "SFLA" : S$(23) = "TN" : S$(24) = "VA"
290 S$(25) = "WI" : S$(26) = "AK" : S$(27) = "LA" : S$(28) = "MISS" : S$(29) = "NM"
300 S$(30) = "N.TEX" : S$(31) = "OK" : S$(32) = "S.TEX" : S$(33) = "CZ" : S$(34) = "E BAY"
310 S$(35) = "LA" : S$(36) = "ORG" : S$(37) = "SB" : S$(38) = "SCV" : S$(39) = "SD" : S$(40) = "SF"
320 S$(41) = "SJV" : S$(42) = "SV" : S$(43) = "PCF" : S$(44) = "AZ" : S$(45) = "ID" : S$(46) = "MT"
330 S$(47) = "NV" : S$(48) = "OR" : S$(49) = "UT" : S$(50) = "WA" : S$(51) = "AL" : S$(52) = "WY"
340 S$(53) = "MI" : S$(54) = "OH" : S$(55) = "W VA" : S$(56) = "IL" : S$(57) = "IN" : S$(58) = "WSC"
350 S$(59) = "CO" : S$(60) = "IA" : S$(61) = "KS" : S$(62) = "MN" : S$(63) = "MO" : S$(64) = "NB"
360 S$(65) = "ND" : S$(66) = "SD" : S$(67) = "MAR" : S$(68) = "QB" : S$(69) = "ONT" : S$(70) = "MAN"
370 S$(71) = "SK" : S$(72) = "AB" : S$(73) = "BC" : S$(74) = "NWT"
380 INPUT "ARE YOU A HAM RADIO OPERATOR" ; I$ : IF LEFT$(I$,Z1) <> "Y" THEN 420
390 INPUT "YOUR CALL" ; A$ : IF RIGHT$(A$,Z2) <> "/3" THEN A$ = A$ + "/3"
400 INPUT "YEAR FIRST LICENSED " ; N
410 IF N < 1900 THEN PRINT "YOU MUST HAVE BEEN LICENSED BEFORE 1900" : GOTO 400
420 F$ = STR$(N - 1900) : PRINT : PRINT "OK","THE STATION CALL IS",A$
430 PRINT ,"THE QTH IS SILVER SPRING, MARYLAND " : PRINT
440 INPUT "DO YOU NEED INSTRUCTIONS " ; I$ : IF LEFT$(I$,Z1) = "Y" THEN GOSUB 3300
450 PRINT : PRINT "SETTING UP CALLS OF CONTESTANTS"
460 PRINT "THIS IS GOING TO TAKE ABOUT" ; INT(K / (T7 * Z2)) + Z1 ; " MINUTES"
470 PRINT "WHY DON'T YOU GET A CUP OF COFFEE OR SOMETHING"
480 FOR I = Z0 TO K - Z1 : X = RND(Z1) : FOR J = 75 TO 86 : IF X > P(J) THEN NEXT J
490 X = RND(Z1) : N = J - K7 : ON J - 75 GOTO 510,520,530,540,550,560,570,580,590,600
500 Y = Z0 : Z = Z6 : GOTO 610
510 Y = Z7 : Z = 11 : GOTO 610
520 Y = T3 : Z = 15 : GOTO 610
530 Y = 16 : Z = 25 : GOTO 610
540 Y = 26 : Z = 33 : GOTO 610
550 Y = 34 : Z = 43 : GOTO 610
560 Y = 44 : Z = 52 : GOTO 610
570 Y = 53 : Z = 55 : GOTO 610
580 Y = 56 : Z = 58 : GOTO 610
590 Y = 59 : Z = K6 : GOTO 610
600 Y = 67 : Z = K7
610 FOR T = Y TO Z : IF X > P(T) THEN NEXT T
620 Y = INT(RND(Z1) * Z5) : J$ = P$(Y) : C(I) = T : IF T > K6 THEN J$ = "VE" : N = T - K6
630 IF T = 51 THEN J$ = "KL" : GOTO 670
640 IF T = 33 THEN J$ = "KZ" : GOTO 670
650 IF T = 43 THEN J$ = "KH" : IF RND(Z1) < P1 THEN J$ = "KG" : IF RND(Z1) > P5 THEN J$ = "KM"
660 IF T = 25 THEN J$ = "KP" : IF RND(Z1) > P5 THEN J$ = "KV" : IF RND(Z1) > P5 THEN J$ = "KC"
670 C$(I) = J$ + RIGHT$(STR$(N),Z1) : GOSUB 2920 : GOSUB 2920 : GOSUB 2920
680 PRINT K - I : NEXT I : N = Z1 : PRINT "IT IS 2100 HRS ON" ; D ; " " + D$
690 PRINT "THE CONTEST HAS STARTED" + X$ : GOTO 1050
700 PRINT : IF N >= K THEN 2010
710 IF Q1 = Z0 AND RND(Z1) < P1 THEN 2930
720 IF H1 > T6 OR D >= 21 AND H > T5 THEN PRINT "CONTEST IS OVER" : GOTO 1480
730 INPUT "QRU" ; I$ : IF LEN(I$) < Z2 THEN PRINT "WHAT" + X$ : GOTO 730
740 FOR I = Z0 TO Q4 : IF I$ = LEFT$(Z$(I),LEN(I$)) THEN 760
750 NEXT : FOR I = Z0 TO Q4 - Z1 : PRINT Z$(I), : NEXT : PRINT : GOTO 730
760 IF I > Z8 THEN ON I - Z8 GOTO 1480,1490,1420,1170,1980,3270,1340,930,1750,1730
770 ON I GOTO 840,1040,1090,1140,1240,1300,1350,1450
780 Q6 = Z0 : ON Q1 GOTO 800,1670,1700,1620
790 PRINT "CALL WHOM ?" + X$ : PRINT "TRY TUNING OR PUT OUT A CQ" : GOTO 700
800 IF L(Z7) = Z0 AND RND(Z1) > P5 THEN 1030
810 PRINT "TRY SEND OR REPEAT, DON'T WASTE TIME" ; X$ : GOTO 700
820 IF L(Z6) = Z0 AND RND(Z1) < P1 THEN PRINT "REPEAT PLEASE" : GOTO 700
830 Q1 = Z0 : GOTO 700
840 IF C(P) > K7 THEN PRINT "IN THE LOG ALREADY" : GOTO 700
850 IF Q5 = Z0 THEN PRINT X$ + "WHY DON'T YOU SEND HIM HIS REPORT FIRST" : GOTO 730
860 FOR I = Z0 TO Z7 : IF L(I) = Z0 THEN I = Z1 : GOSUB 1580 : GOTO 700
870 Q7 = Z0 : NEXT : Y = C(P) : N = N + Z1
880 IF Y > K7 THEN Y = Y - B : GOTO 880
890 S(Y) = Z1 : C(P) = C(P) + B : GOSUB 920 : Q1 = Z0 : PRINT "NEXT QSO = " ; N
900 IF Q6 = Z1 AND RND(Z1) > P5 OR RND(Z1) < P1 THEN 930
910 GOTO 700
920 Q5 = Z0 : FOR I = Z0 TO Z7 : L(I) = Z0 : NEXT : RETURN
930 Q6 = Z1 : Y = T6 : GOSUB 1770 : IF Y = Z0 THEN 700
940 IF RND(Z1) < P1 THEN PRINT "FREQUENCY IS IN USE OM" : GOTO 700
950 IF RND(Z1) < P1 OR B = B4 AND H >= T5 AND RND(Z1) > P5 THEN PRINT "QRM" : GOTO 700
960 IF Q7 = Z0 THEN GOSUB 1970
970 IF Q7 = Z1 AND Q1 = Z1 THEN N1 = N1 + Z1
980 GOSUB 1900 : Q1 = Z1 : PRINT A$ ; E$ ; C$(P) : L(Z2) = Z1
990 IF C(P) > K7 AND Q6 = Z1 AND RND(Z1) < Z2 * P1 THEN 700
1000 IF C(P) > K7 AND Q6 = Z1 THEN 1020
1010 IF C(P) > K7 AND RND(Z1) > P5 THEN PRINT "WE'VE WORKED OM !" : GOTO 700
1020 IF RND(Z1) > P5 THEN PRINT : GOTO 700
1030 J$ = A$ : GOSUB 1860 : PRINT : GOTO 700
1040 PRINT Z$(Z2) ; " = " ; B$(INT(B - Z1) / B1)
1050 INPUT "WHICH BAND " ; I$ : FOR I = Z0 TO Z4 : IF I$ = B$(I) THEN 1070
1060 NEXT : FOR I = Z0 TO Z4 : PRINT B$(I), : NEXT : PRINT : GOTO 1050
1070 IF B = (Z1 + I) * B1 THEN 700
1080 B = (Z1 + I) * B1 : GOSUB 920 : GOTO 700
1090 IF L(Z2) = Z0 AND L(Z5) = Z0 THEN PRINT "CHECK WHAT" : GOTO 700
1100 IF C(P) >= B1 THEN PRINT C$(P) ; " WORKED ON " ; B$(INT(C(P) / B1) - Z1) : GOTO 700
1110 Y = C(P) : IF Y >= B1 THEN Y = Y - B1 : GOTO 1110
1120 IF L(Z5) = Z1 THEN PRINT "SECTION " ; : IF S(Y) = Z1 THEN PRINT "WORKED" : GOTO 700
1130 PRINT "NOT WORKED YET" : GOTO 700
1140 GOSUB 1150 : GOTO 700
1150 PRINT Z$(Z4) ; : PRINT TAB(T6) ; D ; D$ : PRINT Z$(Z2) ; : PRINT TAB(T6) ;
1160 PRINT B$(INT(B - Z1) / B1)
1170 PRINT "GMT. TIME" ; : PRINT TAB(T6) ; : PRINT H ; " HRS",M ; " MIN"
1180 PRINT "ELAPSED TIME" ; : PRINT TAB(T6) ; H1 ; " HRS",M1 ; " MIN" : IF I = T3 THEN 700
1190 PRINT "QSO'S" ; : PRINT TAB(T6) ; N - Z1 : PRINT M$(Z5) + "S WORKED" ;
1200 PRINT TAB(T6) ; : Y = Z0 : FOR J = Z0 TO K7 : IF S(J) = Z1 THEN Y = Y + Z1
1210 NEXT : PRINT Y : PRINT "SCORE" ; : PRINT TAB(T6) ; Z2 * (N - Z1) * Y : PRINT "RATE" ;
1220 IF H1 = Z0 AND M1 = Z0 THEN PRINT TAB(T6) ; " - - - " : RETURN
1230 PRINT TAB(T6) ; (N - Z1) * T7 / (H1 * T7 + M1) ; "QSO'S PER HOUR" : RETURN
1240 INPUT "HRS" ; X : INPUT "MIN" ; Y : IF X = Z0 AND Y < 15 THEN GOSUB 1580 : GOTO 1240
1250 IF X >= T6 OR Y >= T7 THEN GOSUB 1290 : IF LEFT$(I$,Z1) <> "Y" THEN 1240
1260 M = M + Y : IF M >= T7 THEN M = M - T7 : H = H + Z1
1270 H = H + X : IF H >= T6 THEN H = H - T6 : D = D + 1
1280 GOSUB 1150 : GOSUB 920 : Q1 = Z0 : GOTO 700
1290 INPUT "ARE YOU SURE YOU MEANT THAT" ; I$ : RETURN
1300 IF L(Z7) = Z1 THEN PRINT "73, SEE YOU LATER" : GOTO 700
1310 IF RND(Z1) > P1 THEN L(Z7) = Z1 : PRINT "ROGER" : GOTO 700
1320 IF RND(Z1) >= P1 THEN PRINT "DO YOU QSL ?"
1330 GOTO 700
1340 GOSUB 3300 : GOTO 700
1350 IF L(Z2) = Z0 OR Q1 = Z0 THEN PRINT X$ + "TO WHOM" : GOTO 700
1360 IF Q1 <> Z1 THEN PRINT "TUT TUT - CALL HIM FIRST" ; X$ : GOTO 700
1370 PRINT L$(Z2) ; " UR" ; N ; : PRINT "A" ; E$ ; A$ ; : PRINT " " ; K$ ; " " ; F$ ; " MD K"
1380 IF RND(Z1) < P1 THEN PRINT A$ ; " PLEASE REPEAT" ; E$ ; C$(P) : GOTO 700
1390 Q5 = Z1 : L(Z6) = Z1 : IF L(Z7) = Z1 THEN PRINT "QSL" : GOTO 700
1400 IF RND(Z1) > P5 THEN J$ = A$ : GOSUB 1860 : PRINT "DO YOU QSL ?"
1410 GOTO 700
1420 FOR I = Z0 TO Z5 : IF L(I) = Z1 THEN NEXT : PRINT " GOT IT ALL" : GOTO 700
1430 PRINT "STILL NEED", : FOR J = I TO Z5 : IF L(J) = Z0 THEN PRINT " " ; M$(J) ;
1440 NEXT : PRINT : GOTO 700
1450 IF Q1 <> Z1 THEN PRINT "CALL HIM FIRST" + X$ : GOTO 700
1460 IF RND(Z1) > P1 THEN J$ = A$ : GOSUB 1860 : GOTO 700
1470 PRINT "SORRY OM, QRM ... TRY AGAIN" : GOTO 700
1480 PRINT "FINAL " ; : GOSUB 1150 : GOTO 3500
1490 IF B < 400 AND H > T4 AND RND(Z1) < P1 THEN GOSUB 3110 : GOTO 700
1500 IF RND(Z1) >= P5 + P1 AND B = B4 AND (H >= T5 OR H < Z6) THEN GOSUB 3170 : GOTO 700
1510 GOSUB 920 : Q1 = Z0 : Y = T7 : GOSUB 1770 : IF Y = Z0 THEN 700
1520 L(Z2) = Z1 : Q1 = INT(RND(Z1) * Z3) + Z2 : ON Q1 GOTO 1530,1540,1550
1530 PRINT "QRZ" ; E$ ; C$(P) : GOTO 700
1540 FOR T = 0 TO INT(RND(1) * 3) : PRINT "CQ CQ CQ" ; E$ ; C$(P) ; " " ; : NEXT : PRINT "K" : GOTO 700
1550 GOSUB 1810 : PRINT C$(K) ; E$ ; C$(P) : IF RND(Z1) > P5 THEN 700
1560 Q7 = Z1 : GOSUB 1970
1570 GOSUB 1900 : J$ = C$(K) : GOSUB 1860 : GOTO 700
1580 PRINT "THAT'S AGAINST THE RULES" : PRINT X$
1590 IF I = Z1 THEN PRINT "QSO NOT COMPLETED"
1600 IF I = Z5 THEN PRINT "15 MINUTE MINIMUM"
1610 RETURN
1620 IF RND(Z1) > P5 THEN 1850
1630 IF Q7 = Z1 AND RND(Z1) > P5 THEN 970
1640 IF RND(Z1) > P5 THEN Q1 = Z2 : GOTO 1530
1650 IF RND(Z1) < P5 THEN PRINT "PLEASE, I'M IN QSO" : GOTO 700
1660 PRINT C$(K) ; E$ ; C$(P) ; " SORRY QRM, REPEAT" : GOTO 700
1670 IF RND(Z1) > P5 THEN 1530
1680 IF RND(Z1) < P1 THEN Q1 = Z3 : GOTO 1540
1690 Q1 = Z1 : GOTO 960
1700 IF RND(Z1) > P5 THEN 1540
1710 IF RND(Z1) > P5 THEN Q1 = Z2 : GOTO 1530
1720 Q1 = Z1 : GOTO 960
1730 FOR J = Z0 TO K - Z1 : PRINT C$(J) ; : IF C(J) > K7 THEN PRINT " * " ;
1740 PRINT , : NEXT : GOTO 700
1750 FOR J = Z0 TO K - Z1 : IF C(J) > K7 THEN PRINT C$(J),
1760 NEXT : GOTO 700
1770 Y = RND(Z1) * Y + Z4 : FOR T = Z0 TO Z2 : GOSUB 2860 : GOSUB 2820 : GOSUB 2030
1780 IF Y = Z0 OR RND(Z1) < P1 THEN NEXT : Y = Z0
1790 IF Y = Z1 THEN GOSUB 1900
1800 RETURN
1810 I = K : T = INT(RND(Z1) * Z3 + Z2) : J$ = P$(INT(RND(Z1) * Z3))
1820 C$(I) = J$ + RIGHT$(STR$(T),Z1) : GOSUB 2920 : GOSUB 2920 : GOSUB 2920
1830 IF C$(I) = A$ THEN 1810
1840 RETURN
1850 GOSUB 1810 : J$ = C$(K) : GOSUB 1860 : N1 = N1 + Z1 : Q7 = Z1 : GOTO 700
1860 L$(Z0) = STR$(N1) : L(Z7) = Z1 : PRINT J$ ; " UR" ; :
1870 FOR J = Z0 TO Z5 : IF L(J) = Z1 OR RND(Z1) >= P1 THEN L(J) = Z1 : PRINT " " ; L$(J) ; : GOTO 1890
1880 PRINT R$ ;
1890 NEXT : PRINT : RETURN
1900 FOR J = Z1 TO 26 : IF RIGHT$(C$(P),Z1) <> MID$(Q$,J,Z1) THEN NEXT
1910 L$(Z1) = "A" : IF J >= T3 THEN L$(Z1) = "B"
1920 Y = Z0 : FOR J = Z1 TO Z3 : Y = Y + ASC(MID$(RIGHT$(C$(P),Z3),J,Z1)) : NEXT
1930 L$(Z4) = STR$(INT(Y / Z2 - 57)) : L$(Z0) = STR$(N1)
1940 L$(Z2) = C$(P) : L$(Z3) = K$ : Y = C(P)
1950 IF Y > K7 THEN Y = Y - B1 : GOTO 1950
1960 L$(Z5) = S$(Y) : RETURN
1970 N1 = Z1 + INT(N * T3 * P1 * RND(Z1)) : RETURN
1980 IF RND(Z1) < P1 THEN 700
1990 IF RND(Z1) > P5 THEN PRINT "SORRY"
2000 Q1 = Z0 : GOTO 900
2010 PRINT "ANTENNA BLEW DOWN IN WIND"
2020 PRINT " NO WAY TO FIX IT - QRT" : GOTO 1480
2030 IF C(P) < B1 THEN 2070
2040 X = C(P)
2050 C(P) = C(P) - B1 : IF C(P) > B1 THEN 2050
2060 GOSUB 2070 : C(P) = X : RETURN
2070 Y = 0 : IF C(P) = 14 OR C(P) = T6 THEN 2810
2080 IF C(P) < Z8 THEN 2230
2090 IF C(P) < T3 THEN 2280
2100 IF C(P) < T4 THEN 2310
2110 IF C(P) = 25 THEN 2710
2120 IF C(P) < 25 THEN 2340
2130 IF C(P) = 33 THEN 2750
2140 IF C(P) < 33 THEN 2380
2150 IF C(P) = 43 THEN 2640
2160 IF C(P) < 43 THEN 2420
2170 IF C(P) = 51 THEN 2640
2180 IF C(P) < 53 THEN 2480
2190 IF C(P) < 56 THEN 2530
2200 IF C(P) < 59 THEN 2550
2210 IF C(P) < 67 THEN 2580
2220 ON C(P) - 67 GOTO 2280,2530,2550,2580,2480,2480,2480
2230 IF B = B4 OR B = B5 AND H < T3 OR B = B3 AND H >= T5 AND RND(Z1) > P5 THEN 2810
2240 IF B = B3 AND (H < T5 AND H >= T3 OR RND(Z1) > P5 AND H >= Z8) THEN 2810
2250 IF B = B2 AND (H >= T5 OR H >= Z8 AND H < T3) AND RND(Z1) < P1 THEN 2810
2260 IF B = B1 AND (H >= T3 AND Q = Z2 AND H < T5 OR H >= T5 AND RND(Z1) > P5) THEN 2810
2270 RETURN
2280 IF B = B3 AND (H >= Z8 AND H < T3 OR H >= T5) AND RND(Z1) > P5 THEN 2810
2290 IF B >= B4 OR B = B1 AND Q = Z1 AND RND(Z1) < P5 AND H < T4 AND H >= T3 THEN 2810
2300 RETURN
2310 IF B = B5 OR B = B4 AND H < Z8 AND RND(Z1) > P5 THEN 2810
2320 IF B = B4 AND (H >= T5 OR H >= Z8 AND H < T3) THEN 2810
2330 RETURN
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
2350 IF B = B2 AND H < T5 AND H >= T3 AND RND(Z1) > P5 THEN 2810
2360 IF B = B5 AND H < T4 OR (H >= T5 OR H < T3) AND RND(Z1) > P5 THEN 2810
2370 RETURN
2380 IF B < B4 AND H >= T3 AND H < T5 OR B = B4 AND H < Z8 THEN 2810
2390 IF B = B5 AND (H < Z8 AND H >= Z4 OR H < Z4 AND RND(Z1) > P5) THEN 2810
2400 IF RND(Z1) > P5 AND (H >= T5 OR H >= Z8 AND H < T3) THEN 2810
2410 RETURN
2420 IF H < Z8 AND H >= T3 AND RND(Z1) < P1 THEN 2810
2430 IF B < B4 AND H >= T3 AND H < T5 OR B >= B3 AND H < Z8 AND H >= 4 THEN 2810
2440 IF H >= T5 AND B < B3 AND RND(Z1) > P5 THEN 2810
2450 IF H >= T5 AND (B = B3 OR B = B4 AND RND(Z1) < P1) THEN 2810
2460 IF H < Z4 AND (B = B4 OR B = B5 AND RND(Z1) > P5) THEN 2810
2470 RETURN
2480 IF B < B4 AND H < T5 AND H >= T3 THEN 2810
2490 IF H >= T5 AND B > B1 AND B < B5 AND RND(Z1) > P5 THEN 2810
2500 IF B = B4 AND (H < Z8 OR H >= T5 AND RND(Z1) > P5) THEN 2810
2510 IF B = B5 AND (H < Z8 AND H >= Z4 OR H < Z4 AND RND(Z1) > P5) THEN 2810
2520 RETURN
2530 IF B = B5 OR B = B4 AND (H >= Z8 OR RND(Z1) > P5) THEN 2810
2540 RETURN
2550 IF B = B4 OR B = B5 AND (H < Z8 OR RND(Z1) > P5 AND H < T3 OR H >= T5) THEN 2810
2560 IF B = B3 AND H >= T3 AND H < T5 THEN 2810
2570 RETURN
2580 IF B > B3 AND H < Z8 OR H < T3 AND RND(Z1) > P5 THEN 2810
2590 IF B = B1 AND Q = Z5 AND H >= T3 AND RND(Z1) > P5 THEN 2810
2600 IF B = B2 AND H < T5 AND H >= T3 AND RND(Z1) > P5 THEN 2810
2610 IF B = B3 AND (H < T5 AND H >= T3 OR H >= T5 AND RND(Z1) > P5) THEN 2810
2620 IF H >= T5 AND (B = B4 AND RND(Z1) > P5 OR B = B5 AND RND(Z1) < P1) THEN 2810
2630 RETURN
2640 IF B < B4 AND H < T5 AND H >= T4 THEN 2810
2650 IF B = B3 AND (H >= T3 AND RND(Z1) > P5 OR H >= Z8 AND H < T3 AND RND(Z1) < P1) THEN 2810
2660 IF B = B1 AND H >= T3 AND (H < T5 OR RND(Z1) > P5) THEN 2810
2670 IF B = B2 AND (H < T4 AND H >= T3 AND RND(Z1) > P5 OR H >= T5 AND RND(Z1) < P1) THEN 2810
2680 IF B = B4 AND H < Z8 AND (H >= Z4 OR RND(Z1) > P5) THEN 2810
2690 IF B = B5 AND H >= Z4 AND H < Z8 AND RND(Z1) > P5 THEN 2810
2700 RETURN
2710 IF B = B5 AND H < Z8 OR B < B4 AND H >= Z8 AND H < T5 THEN 2810
2720 IF H >= T5 AND (B = B1 AND RND(Z1) > P5 OR B = B2 OR B = B3) THEN 2810
2730 IF B = B4 AND (H >= Z4 AND H < Z8 OR H < Z4 AND RND(Z1) < P1) THEN 2810
2740 RETURN
2750 IF B < B3 AND H < T5 AND (H >= T3 AND H < T4 OR H >= Z8 AND RND(Z1) > P5) THEN 2810
2760 IF H >= T5 AND (B = B2 OR B = B4) AND RND(Z1) > P5 THEN 2810
2770 IF H >= T4 AND B = B3 OR B = B4 AND H < Z8 THEN 2810
2780 IF B = B4 AND RND(Z1) > P5 AND H < T3 THEN 2810
2790 IF B = B5 AND H < Z8 AND (H >= Z4 OR RND(Z1) > P5) THEN 2810
2800 RETURN
2810 Y = 1 : RETURN
2820 IF I = Z0 THEN P = INT(RND(Z1) * K)
2830 P = P + INT(RND(Z1) * Z9) : IF P >= K THEN P = P - K
2840 IF B = B1 AND RND(Z1) > P1 * P1 THEN Q = Q + INT(RND(Z1) + Z4) : IF Q > Z5 THEN Q = Q - Z5
2850 RETURN
2860 S1 = S1 + Y : IF S1 < T7 THEN RETURN
2870 S1 = S1 - T7 : M1 = M1 + Z1 : M = M + Z1 : IF S1 >= T7 THEN 2870
2880 IF M >= T7 THEN M = M - T7 : H = H + Z1 : GOTO 2880
2890 IF M1 >= T7 THEN M1 = M1 - T7 : H1 = H1 + Z1 : GOTO 2890
2900 IF H < T6 THEN RETURN
2910 H = H - T6 : D = D + Z1 : RETURN
2920 I$ = MID$(Q$,INT(RND(Z1) * 26) + Z1,Z1) : C$(I) = C$(I) + I$ : RETURN
2930 IF RND(Z1) > P1 * Z2 THEN 700
2940 X = INT(RND(Z1) * 10) + Z1
2950 ON X GOTO 2960,2970,2980,2960,2960,2960,2960,2960,3070,3020,2960
2960 PRINT "TIMEOUT IN THE BATHROOM" : Y = T5 : GOTO 2990
2970 PRINT "TIMEOUT TO CLEAR UP SPILT COFFEE" : Y = Z5 : GOTO 2990
2980 PRINT "KIDS ARE FIGHTING..TIMEOUT" : Y = T4
2990 Y = INT(RND(Z1) * Y) + Z3 : PRINT "OFF THE AIR FOR " ; Y ; " MIN"
3000 IF Y > 14 THEN X = Z0 : GOTO 1260
3010 Y = Y * T7 : GOSUB 2860 : GOTO 700
3020 IF RND(Z1) * 10 < P5 THEN 2010
3030 PRINT "POWER LINE BLACKOUT" : X = INT(RND(Z1) * Z5) : Y = INT(RND(Z1) * T6) + Z8
3040 PRINT "POWER CAME BACK ON AFTER " ; X ; " HRS",Y," MIN"
3050 IF X = Z0 AND Y < 15 THEN Y = Y * T7 : GOSUB 2860 : GOTO 700
3060 GOTO 1260
3070 PRINT "FINAL TUBES BLEW OUT"
3080 IF H < T3 THEN PRINT "WHERE ARE YOU GOING TO GET SPARES AT THIS TIME"
3090 PRINT "LUCKY YOU, SPARES ARE TO HAND "
3100 PRINT "REPLACING THEM NOW" : Y = T7 : GOTO 2990
3110 I$ = "YV4XYZ" : IF RND(Z1) > P5 THEN I$ = "HK3ZZZ"
3120 J$ = "MIAMI" : IF RND(Z1) > P5 THEN J$ = "LOS ANGELES"
3130 PRINT "CQ CQ CQ DE " ; I$
3140 PRINT "THIS IS " ; I$ ; " LOOKING FOR A PHONE PATCH IN TO " ; J$
3150 IF RND(Z1) < P5 - P1 THEN 3140
3160 RETURN
3170 X = INT(RND(Z1) * Z4) : IF RND(Z1) > P5 THEN 3190
3180 PRINT "YOU ARE LISTENING TO " ; : ON X + Z1 GOTO 3200,3210,3220,3230
3190 PRINT "THIS IS " ; : ON X GOTO 3210,3220,3230
3200 PRINT "RADIO MOSCOW" : GOTO 3240
3210 PRINT "RADIO PEKING" : GOTO 3240
3220 PRINT "RADIO ALBANIA" : GOTO 3240
3230 PRINT "THE BBC" : IF RND(Z1) < P1 * Z2 THEN PRINT "THIS IS RADIO NEWSREEL" : RETURN
3240 IF RND(Z1) > P5 THEN PRINT "A NEWS BROADCAST FOLLOWS" : RETURN
3250 IF RND(Z1) > P5 THEN PRINT "YOU HAVE BEEN LISTENING TO A COMMENTARY ON THE NEWS"
3260 RETURN
3270 PRINT Z$(14) + "S NEEDED" : J = K7 : FOR I = Z0 TO K7
3280 IF S(I) = Z0 THEN PRINT S$(I), : J = J - Z1
3290 NEXT : PRINT : PRINT J + Z1,Z$(14) + "S WORKED" : PRINT : GOTO 700
3300 PRINT Z$(Z0),"CALL OTHER STATION"
3310 PRINT Z$(Z1),"ENTER CONTACT IN LOG"
3320 PRINT Z$(Z2),"CHANGE BANDS"
3330 PRINT Z$(Z3),"CHECK TO SEE IF WORKED"
3340 PRINT Z$(Z4),"SEE HOW WELL YOU ARE DOING"
3350 PRINT Z$(Z5),"TAKE A BREAK (TIMEOUT)"
3360 PRINT Z$(Z6),"CONFIRM RECEPTION OF CONTEST DATA "
3370 PRINT Z$(Z7),"SEND YOUR DATA TO OTHER STATION"
3380 PRINT Z$(Z8),"REQUEST REPEAT OF OTHER STATION'S DATA "
3390 PRINT Z$(Z9),"GIVE UP AND SWITCH OFF EQUIPMENT"
3400 PRINT Z$(10),"TUNE ACROSS BAND "
3410 PRINT Z$(11),"DETERMINE WHICH DATA ARE MISSING FROM REPORT"
3420 PRINT Z$(T3),"LOOK AT TIME OF DAY"
3430 PRINT Z$(13),"TELL OTHER STATION THAT YOU HAVE WORKED BEFORE"
3440 PRINT Z$(14),"LIST SECTIONS STILL NEEDED"
3450 PRINT Z$(15),"RECEIVE SUMMARY OF INSTRUCTIONS"
3460 PRINT Z$(T4),"CALL " ; Z$(T4)
3470 PRINT Z$(17),"LIST OF STATIONS WORKED (UNSORTED)"
3480 PRINT "YOU MAY TYPE FIRST TWO LETTERS FOR ALL ENTRIES, EXCEPT",
3490 PRINT Z$(14) ; " (TYPE 3)" : RETURN
3500 PRINT "HOPE YOU ENJOYED THE CONTEST"
ST TWO LETTERS FOR ALL ENTRIES, EXCEPT",
3490 PR