home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / propdata / minimuf / minimuf.bas < prev    next >
BASIC Source File  |  1996-06-30  |  14KB  |  339 lines

  1. 5 GOTO 140
  2. 10 REM MINIMUF.BAS   VERSION 3.5
  3. 15 REM change lines 300 and 2680 for your station
  4. 20 REM SOURCE: QEX 21 NOVEMBER 1983
  5. 30 REM ADAPTATION BY JOHN E. ANDERSON,   WD4MUO
  6. 40 REM   ***Banner subroutine at 4000 - 4490***
  7. 45 CLS : PRINT "Please WAIT": FOR T = 0 TO 8000: NEXT
  8. 50 GOSUB 4000
  9. 140 REM ***SAMPLE DRIVER FOR MINIMUF 3.5***
  10. 150 REM ***INITIAL DATA***
  11. 160 CLS : KEY OFF
  12. 170 DIM M$(37), A$(4), M(12)
  13. 180 FOR I = 1 TO 12
  14. 190 READ M(I)
  15. 200 NEXT
  16. 210 DATA 31,28,31,30,31,30,31,31,30,31,30,31
  17. 220 M$ = "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
  18. 230 PI = 3.141593
  19. 240 R0 = PI / 180
  20. 250 P1 = 2 * PI
  21. 260 R1 = 180 / PI
  22. 270 P0 = PI / 2
  23. 280 DEF FNACS (X) = -ATN(X / SQR(-X * X + 1 + 1 / 2 ^ 50)) + 1.5708
  24. 290 X$ = STRING$(79, 61)
  25. 300 INPUT "ENTER YOUR CALLSIGN "; CS$
  26. 310 GOSUB 2380: REM ***TO PRINT SCREEN HEADER***
  27. 320 REM ***OPTION MENU***
  28. 330 PRINT : PRINT "PATH OPTIONS"
  29. 340 PRINT
  30. 350 PRINT 1, CS$; " to San Francisco"
  31. 360 PRINT 2, CS$; " to Rio de Janeiro"
  32. 370 PRINT 3, CS$; " to Buenos Aires"
  33. 380 PRINT 4, CS$; " to Lima, Peru"
  34. 390 PRINT 5, CS$; " to Hawaii"
  35. 400 PRINT 6, CS$; " to Japan"
  36. 410 PRINT 7, CS$; " to Sydney, Australia"
  37. 420 PRINT 8, CS$; " to Calcutta, India"
  38. 430 PRINT 9, CS$; " to Paris"
  39. 440 PRINT 10, CS$; " to Warsaw"
  40. 450 PRINT 11, CS$; " to Moscow"
  41. 460 PRINT 12, CS$; " to Tunis"
  42. 470 PRINT 13, CS$; " to Liberia"
  43. 480 PRINT 14, CS$; " to Kenya"
  44. 490 PRINT 15, CS$; " to Pretoria, U of SA"
  45. 500 PRINT 16, CS$; " to a Specified Point"
  46. 510 PRINT 17, "Between Specified Points": PRINT
  47. 520 INPUT "CHOICE?  Select by path number"; CH
  48. 530 IF CH < 1 OR CH > 17 THEN CLS : LOCATE 12, 30: PRINT "BAD CHOICE NUMBER": FOR X = 1 TO 5000: NEXT: CLS : GOTO 310
  49. 540 GOSUB 2380: REM  ***TO PRINT SCREEN HEADER***
  50. 550 IF CH = 17 GOTO 560 ELSE 2670
  51. 560 REM   ***DATA INPUTS***
  52. 570 T$ = "Transmitter": R$ = "Receiver"
  53. 580 PRINT : INPUT "Transmitter Lat, Lon (`-' for East and South)"; L1, W1
  54. 590 IF L1 >= -90 AND L1 <= 90 THEN 620
  55. 600 PRINT "INVALID Latitude.  Must be in range (-90 to +90)"
  56. 610 GOTO 580
  57. 620 IF -360 <= W1 AND W1 <= 360 THEN 650
  58. 630 PRINT "INVALID Longitude.  Must be in range (-360 to +360)"
  59. 640 GOTO 580
  60. 650 PRINT : INPUT "Receiver Lat, Lon (`-' for East and South)"; L2, W2
  61. 660 IF -90 <= L2 AND L2 <= 90 THEN 690
  62. 670 PRINT "INVALID Latitude.  Must be in range (-90 to +90)"
  63. 680 GOTO 650
  64. 690 IF -360 <= W2 AND W2 <= 360 THEN 720
  65. 700 PRINT "INVALID Longitude.  Must be in range (-360 to +360)"
  66. 710 GOTO 650
  67. 720 PRINT : INPUT "DATE (Day, Month),Example 15,3 "; D6, MO
  68. 730 IF 1 <= MO AND MO <= 12 THEN 760
  69. 740 PRINT "INVALID Month.  Must be in range (1 to 12)"
  70. 750 GOTO 720
  71. 760 IF 1 <= D6 AND D6 <= M(MO) THEN 800
  72. 770 PRINT "INVALID Day.  Must be in range (1 to"; M(MO); ")"
  73. 780 GOTO 720
  74. 790 REM   ***SUNSPOT DATA***
  75. 800 PRINT : INPUT "STATE SOURCE OF SOLAR ACTIVITY - S = sunspot #, F = solar flux ", AN1$
  76. 810 IF AN1$ = "S" OR AN1$ = "s" THEN 880 ELSE IF AN1$ = "F" OR AN1$ = "f" THEN 820 ELSE 800
  77. 820 INPUT "SMOOTHED MEAN 10.7-cm SOLAR FLUX  "; SF
  78. 830 IF SF < 65 THEN PRINT "INVALID flux number.  Must be greater than 65.": GOTO 820
  79. 840 IF SF > 245 THEN PRINT "RESULTS MAY BE INACCURATE FOR FLUX GREATER THAN 245."
  80. 850 GOSUB 2630: REM ***TO ROUTINE FOR FLUX TO SUNSPOT NUMBER CONVERSION***
  81. 860 PRINT "A FLUX OF"; SF; "EQUATES TO A SUNSPOT NUMBER OF"; S9
  82. 870 GOTO 930
  83. 880 PRINT : INPUT "SMOOTHED INTERNATIONAL SUNSPOT NUMBER = "; S9
  84. 890 IF S9 >= 0 THEN 930
  85. 900 PRINT "INVALID sunspot number.  Must be non-negative."
  86. 910 GOTO 880
  87. 920 REM  ***HARDCOPY FLAG***
  88. 930 PRINT : PRINT : INPUT "Want HARDCOPY printout?  Y/N "; AN$
  89. 940 IF AN$ = "Y" OR AN$ = "y" THEN LP = 1 ELSE IF AN$ = "N" OR AN$ = "n" THEN LP = 0 ELSE GOTO 930
  90. 950 REM  ***THRESHOLD FLAG***
  91. 960 PRINT : PRINT : INPUT "Want FLAG on MUF above given frequency?  Y/N "; TA$
  92. 970 IF TA$ = "Y" OR TA$ = "y" THEN TA = 1 ELSE IF TA$ = "N" OR TA$ = "n" THEN TA = 0 ELSE GOTO 960
  93. 980 IF TA = 1 THEN INPUT "SPECIFY frequency, in MHz "; TAM
  94. 990 CLS
  95. 1000 A$ = MID$(M$, 3 * MO - 2, 3)
  96. 1010 GOSUB 2380: REM  ***TO PRINT SCREEN HEADER***
  97. 1020 PRINT : PRINT "DATE:"; D6; A$
  98. 1030 PRINT : PRINT T$; " Location"; TAB(43); R$; " Location"
  99. 1040 PRINT " LATITUDE:"; L1; "  LONGITUDE:"; W1; TAB(43); " LATITUDE:"; L2; "  LONGITUDE:"; W2
  100. 1050 PRINT : PRINT "SUNSPOT NUMBER = "; S9
  101. 1060 PRINT
  102. 1070 COLOR 10
  103. 1080 PRINT "  MUF(MHz)    UTC";
  104. 1090 FOR I = 0 TO 55 STEP 5
  105. 1100 COLOR 7: LOCATE , 19 + I: PRINT I;
  106. 1110 NEXT
  107. 1120 COLOR 10
  108. 1130 PRINT "  ========    ===";
  109. 1140 COLOR 7
  110. 1150 LOCATE , 20: PRINT "|====|====|====|====|====|====|====|====|====|====|====|="
  111. 1160 IF LP = 1 THEN GOSUB 2450: REM ***TO PRINT HARDCOPY HEADER***
  112. 1170 L1 = L1 * R0
  113. 1180 W1 = W1 * R0
  114. 1190 L2 = L2 * R0
  115. 1200 W2 = W2 * R0
  116. 1210 FOR T5 = 0 TO 23
  117. 1220 GOSUB 1460: REM  ***TO MAIN CALCULATION LOOP***
  118. 1230 REM  ***SCREEN AND PRINTER DATA PRINT***
  119. 1240 IF TA = 0 THEN D$ = "*"
  120. 1250 IF TA = 1 THEN IF J9 >= TAM THEN D$ = "*" ELSE D$ = "."
  121. 1260 PRINT USING "    ##.#"; J9; : PRINT TAB(15); T5; TAB(20); "|";
  122. 1270 LOCATE , 20 + CINT(J9): COLOR 10: PRINT D$: COLOR 7
  123. 1280 IF LP = 1 THEN LPRINT USING "    ##.#"; J9; : LPRINT TAB(15); T5; TAB(20); "|"; TAB(20 + CINT(J9)); D$
  124. 1290 NEXT
  125. 1300 REM  ***SCREEN AND PRINTER ENDING***
  126. 1310 LOCATE , 20: PRINT "|====|====|====|====|====|====|====|====|====|====|====|="
  127. 1320 FOR I = 0 TO 55 STEP 5
  128. 1330 LOCATE , 19 + I: PRINT I;
  129. 1340 NEXT
  130. 1350 IF LP = 1 THEN 1360 ELSE 1400
  131. 1360 LPRINT TAB(20); "|====|====|====|====|====|====|====|====|====|====|====|="
  132. 1370 FOR I = 0 TO 55 STEP 5
  133. 1380 LPRINT TAB(19 + I); I;
  134. 1390 NEXT
  135. 1400 FL1 = 0: GOSUB 3000: REM  ***Calc. of Bearing and Distance***
  136. 1410 GOSUB 3200:   REM    ***Print Bearing and Distance***
  137. 1420 BEEP: BEEP: BEEP: BEEP: IF LP = 1 THEN LPRINT CHR$(12)
  138. 1430 GOTO 3300: REM  ***Choice of continuing program***
  139. 1460 REM  ***MINIMUF 3.5 CALCULATION LOOP***
  140. 1470 K7 = SIN(L1) * SIN(L2) + COS(L1) * COS(L2) * COS(W2 - W1)
  141. 1480 IF K7 >= -1 THEN 1510
  142. 1490 K7 = -1
  143. 1500 GOTO 1530
  144. 1510 IF K7 <= 1 THEN 1530
  145. 1520 K7 = 1
  146. 1530 G1 = FNACS(K7)
  147. 1540 K6 = 1.59 * G1
  148. 1550 IF K6 >= 1 THEN 1570
  149. 1560 K6 = 1
  150. 1570 K5 = 1 / K6
  151. 1580 J9 = 100
  152. 1590 FOR K1 = 1 / (2 * K6) TO 1 - 1 / (2 * K6) STEP .9999 - 1 / K6
  153. 1600 IF K5 = 1 THEN 1620
  154. 1610 K5 = .5
  155. 1620 P = SIN(L2)
  156. 1630 Q = COS(L2)
  157. 1640 A = (SIN(L1) - P * COS(G1)) / (Q * SIN(G1))
  158. 1650 B = G1 * K1
  159. 1660 C = P * COS(B) + Q * SIN(B) * A
  160. 1670 D = (COS(B) - C * P) / (Q * SQR(1 - C ^ 2))
  161. 1680 IF D >= -1 THEN 1710
  162. 1690 D = -1
  163. 1700 GOTO 1730
  164. 1710 IF D <= 1 THEN 1730
  165. 1720 D = 1
  166. 1730 D = FNACS(D)
  167. 1740 W0 = W2 + SGN(SIN(W1 - W2)) * D
  168. 1750 IF W0 >= 0 THEN 1770
  169. 1760 W0 = W0 + P1
  170. 1770 IF W0 < P1 THEN 1790
  171. 1780 W0 = W0 - P1
  172. 1790 IF C >= -1 THEN 1820
  173. 1800 C = -1
  174. 1810 GOTO 1840
  175. 1820 IF C <= 1 THEN 1840
  176. 1830 C = 1
  177. 1840 L0 = P0 - FNACS(C)
  178. 1850 Y1 = .0172 * (10 + (MO - 1) * 30.4 + D6)
  179. 1860 Y2 = .409 * COS(Y1)
  180. 1870 K8 = 3.82 * W0 + 12 + .13 * (SIN(Y1) + 1.2 * SIN(2 * Y1))
  181. 1880 K8 = K8 - 12 * (1 + SGN(K8 - 24)) * SGN(ABS(K8 - 24))
  182. 1890 IF COS(L0 + Y2) > -.26 THEN 1980
  183. 1900 K9 = 0
  184. 1910 G0 = 0
  185. 1920 M9 = 2.5 * G1 * K5
  186. 1930 IF M9 <= P0 THEN 1950
  187. 1940 M9 = P0
  188. 1950 M9 = SIN(M9)
  189. 1960 M9 = 1 + 2.5 * M9 * SQR(M9)
  190. 1970 GOTO 2230
  191. 1980 K9 = (-.26 + SIN(Y2) * SIN(L0)) / (COS(Y2) * COS(L0) + 9.999999E-04)
  192. 1990 K9 = 12 - ATN(K9 / SQR(ABS(1 - K9 * K9))) * 7.639437
  193. 2000 T = K8 - K9 / 2 + 12 * (1 - SGN(K8 - K9 / 2)) * SGN(ABS(K8 - K9 / 2))
  194. 2010 T4 = K8 + K9 / 2 - 12 * (1 + SGN(K8 + K9 / 2 - 24)) * SGN(ABS(K8 + K9 / 2 - 24))
  195. 2020 C0 = ABS(COS(L0 + Y2))
  196. 2030 T9 = 9.7 * C0 ^ 9.600001
  197. 2040 IF T9 > .1 THEN 2060
  198. 2050 T9 = .1
  199. 2060 M9 = 2.5 * G1 * K5
  200. 2070 IF M9 <= P0 THEN 2090
  201. 2080 M9 = P0
  202. 2090 M9 = SIN(M9)
  203. 2100 M9 = 1 + 2.5 * M9 * SQR(M9)
  204. 2110 IF T4 < T THEN 2140
  205. 2120 IF (T5 - T) * (T4 - T5) > 0 THEN 2150
  206. 2130 GOTO 2280
  207. 2140 IF (T5 - T4) * (T - T5) > 0 THEN 2280
  208. 2150 T6 = T5 + 12 * (1 + SGN(T - T5)) * SGN(ABS(T - T5))
  209. 2160 G9 = PI * (T6 - T) / K9
  210. 2170 G8 = PI * T9 / K9
  211. 2180 U = (T - T6) / T9
  212. 2190 G0 = C0 * (SIN(G9) + G8 * (EXP(U) - COS(G9))) / (1 + G8 * G8)
  213. 2200 G7 = C0 * (G8 * (EXP(-K9 / T9) + 1)) * EXP((K9 - 24) / 2) / (1 + G8 * G8)
  214. 2210 IF G0 >= G7 THEN 2230
  215. 2220 G0 = G7
  216. 2230 G2 = (1 + S9 / 250) * M9 * SQR(6 + 58 * SQR(G0))
  217. 2240 G2 = G2 * (1 - .1 * EXP((K9 - 24) / 3))
  218. 2250 G2 = G2 * (1 + (1 - SGN(L1) * SGN(L2)) * .1)
  219. 2260 G2 = G2 * (1 - .1 * (1 + SGN(ABS(SIN(L0)) - COS(LO))))
  220. 2270 GOTO 2340
  221. 2280 T6 = T5 + 12 * (1 + SGN(T4 - T5)) * SGN(ABS(T4 - T5))
  222. 2290 G8 = PI * T9 / K9
  223. 2300 U = (T4 - T6) / 2
  224. 2310 U1 = -K9 / T9
  225. 2320 G0 = C0 * (G8 * (EXP(U1) + 1)) * EXP(U) / (1 + G8 * G8)
  226. 2330 GOTO 2230
  227. 2340 IF G2 > J9 THEN 2360
  228. 2350 J9 = G2
  229. 2360 NEXT K1
  230. 2370 RETURN
  231. 2380 REM   ***SCREEN HEADER***
  232. 2390 CLS : COLOR 0, 7
  233. 2400 PRINT X$
  234. 2410 PRINT TAB(37); "MINIMUF"; STRING$(36, 32)
  235. 2420 PRINT X$
  236. 2430 COLOR 7, 0
  237. 2440 RETURN
  238. 2450 REM   ***HEADER FOR PRINTER***
  239. 2460 LPRINT CHR$(27); "E"; :
  240. 2470 LPRINT X$
  241. 2480 LPRINT TAB(37); "MINIMUF"
  242. 2490 LPRINT X$
  243. 2500 LPRINT CHR$(27); "F";
  244. 2510 LPRINT : LPRINT "DATE:"; D6; A$
  245. 2520 LPRINT : LPRINT T$; " LOCATION"; TAB(43); R$; " LOCATION"
  246. 2530 LPRINT " LATITUDE:"; L1; "  LONGITUDE:"; W1; TAB(43); " LATITUDE:"; L2; "  LONGITUDE:"; W2
  247. 2540 LPRINT : LPRINT "SUNSPOT NUMBER ="; S9
  248. 2550 LPRINT
  249. 2560 LPRINT "  MUF(MHz)    UTC";
  250. 2570 FOR I = 0 TO 55 STEP 5
  251. 2580 LPRINT TAB(19 + I); I;
  252. 2590 NEXT
  253. 2600 LPRINT "  ========    ===";
  254. 2610 LPRINT TAB(20); "|====|====|====|====|====|====|====|====|====|====|====|="
  255. 2620 RETURN
  256. 2630 REM ***CALCULATION OF SUNSPOT NUMBER FROM SOLAR FLUX***
  257. 2640 S9 = -103.7767 + 1.797429 * SF - (3.384356E-03) * SF ^ 2 + (4.525515E-06) * SF ^ 3
  258. 2650 S9 = INT(100 * S9 + .5) / 100
  259. 2660 RETURN
  260. 2670 REM   ***PATH OPTION LAT/LON***
  261. 2680 INPUT " ENTER LAT AND LONG OF YOUR STATION "; L1, W1: T$ = CS$
  262. 2690 IF CH = 1 THEN L2 = 38: W2 = 122: R$ = "to San Francisco": GOTO 720
  263. 2700 IF CH = 2 THEN L2 = -23: W2 = 44: R$ = "to Rio de Janeiro": GOTO 720
  264. 2710 IF CH = 3 THEN L2 = -35: W2 = 58: R$ = "to Buenos Aires": GOTO 720
  265. 2720 IF CH = 4 THEN L2 = -12: W2 = 77: R$ = "to Lima, Peru": GOTO 720
  266. 2730 IF CH = 5 THEN L2 = 22: W2 = 158: R$ = "to Hawaii": GOTO 720
  267. 2740 IF CH = 6 THEN L2 = 36: W2 = -140: R$ = "to Japan": GOTO 720
  268. 2750 IF CH = 7 THEN L2 = -34: W2 = -151: R$ = "to Sydney, Australia": GOTO 720
  269. 2760 IF CH = 8 THEN L2 = 22: W2 = -88: R$ = "to Calcutta, India": GOTO 720
  270. 2770 IF CH = 9 THEN L2 = 49: W2 = -2: R$ = "to Paris": GOTO 720
  271. 2780 IF CH = 10 THEN L2 = 52: W2 = -21: R$ = "to Warsaw": GOTO 720
  272. 2790 IF CH = 11 THEN L2 = 56: W2 = -38: R$ = "to Moscow": GOTO 720
  273. 2800 IF CH = 12 THEN L2 = 37: W2 = -10: R$ = "to Tunis": GOTO 720
  274. 2810 IF CH = 13 THEN L2 = 6: W2 = 8: R$ = "to Liberia": GOTO 720
  275. 2820 IF CH = 14 THEN L2 = -2: W2 = -37: R$ = "to Kenya": GOTO 720
  276. 2830 IF CH = 15 THEN L2 = -26: W2 = -28: R$ = "to Pretoria": GOTO 720
  277. 2840 IF CH = 16 THEN R$ = "Receiver": GOTO 650
  278. 3000 IF W1 = W2 GOTO 3100: REM ***Special geographic cases***
  279. 3010 JJ = 1 / TAN((W1 - W2) / 2)
  280. 3020 KK = (L2 - L1) / 2: LL = (L2 + L1 + 1 / 2 ^ 50) / 2
  281. 3030 PP = ATN(JJ * COS(KK) / SIN(LL)): QQ = ATN(JJ * SIN(KK) / COS(LL)): IF (L1 + L2) < 0 THEN PP = PP - PI
  282. 3040 XX = CINT((PP - QQ) / R0)
  283. 3050 IF XX < 0 THEN 3090
  284. 3060 W$ = "east of true north."
  285. 3070 DIS = CINT((138 / R0) * ABS(ATN(TAN(KK) * SIN(PP) / SIN(QQ + 1 / 2 ^ 50))))
  286. 3080 RETURN
  287. 3090 W$ = "west of true north.": XX = -XX: GOTO 3070
  288. 3100 IF L1 = L2 THEN FL1 = 1: GOTO 3080
  289. 3110 IF L1 > L2 THEN FL1 = 2 ELSE FL1 = 3
  290. 3120 DIS = CINT((ABS(L1 - L2)) * 138 / (2 * R0)): GOTO 3080
  291. 3200 IF FL1 = 1 THEN PRINT "Transmitter and receiver at same location."
  292. 3210 IF FL1 = 1 AND LP = 1 THEN LPRINT "Transmitter and receiver at same location."
  293. 3220 IF FL1 = 2 THEN PRINT "BEARING: Due South"; TAB(40); "DISTANCE: "; DIS; " miles."
  294. 3230 IF FL1 = 2 AND LP = 1 THEN LPRINT "BEARING: Due South"; TAB(40); "DISTANCE: "; DIS; " miles."
  295. 3240 IF FL1 = 3 THEN PRINT "BEARING: Due North"; TAB(40); "DISTANCE: "; DIS; " miles."
  296. 3250 IF FL1 = 3 AND LP = 1 THEN LPRINT "BEARING: Due North"; TAB(40); "DISTANCE: "; DIS; " miles."
  297. 3260 IF FL1 = 0 THEN PRINT "BEARING: "; XX; " degrees "; W$: PRINT "DISTANCE: "; DIS; " miles."
  298. 3270 IF FL1 = 0 AND LP = 1 THEN LPRINT "BEARING: "; XX; " degrees "; W$: LPRINT "DISTANCE: "; DIS; " miles."
  299. 3280 RETURN
  300. 3300 PRINT : PRINT "Your choice: (N)ext case, Quit to (B)ASIC or (D)OS?   HIT N, B, or D."
  301. 3310 NK$ = INKEY$
  302. 3320 IF NK$ = "" GOTO 3310
  303. 3330 IF NK$ = "N" OR NK$ = "n" THEN CLS : GOTO 310
  304. 3340 IF NK$ = "B" OR NK$ = "b" THEN CLS : END
  305. 3350 IF NK$ = "D" OR NK$ = "d" THEN CLS : SYSTEM
  306. 3360 PRINT : PRINT "Try again.": PRINT : GOTO 3300
  307. 4000 REM  ***Banner subroutine***
  308. 4001 SCREEN 100: COLOR 0: CLS : KEY OFF
  309. 4002 XS = 6: YS = 6: DIM P(640, 16)
  310. 4004 LOCATE 1, 1: PRINT "MUF & BEARING"
  311. 4006 P = 640 / XS
  312. 4008 FOR X = 0 TO P: FOR Y = 0 TO 15
  313. 4010 P(X, Y) = POINT(X, Y): NEXT: NEXT
  314. 4012 CLS : COLOR 15: FOR X = 0 TO P: FOR Y = 0 TO 15
  315. 4014 IF P(X, Y) = 0 THEN C = 0 ELSE C = 1
  316. 4016 LINE (X * XS, Y * YS)-(X * XS + XS, Y * YS + YS), C, BF
  317. 4018 NEXT: NEXT
  318. 4020 PI = 3.14159: X = 1: Y = .9
  319. 4022 CIRCLE (320, 800), 600, 1, X, PI - X: LINE (0, 393)-(639, 393): PAINT (320, 370)
  320. 4024 CIRCLE (320, 250), 100, 1, Y, PI - Y
  321. 4026 LINE (39, 335)-(256, 189)
  322. 4028 LINE (601, 335)-(384, 189)
  323. 4030 LINE (39, 335)-(60, 365): LINE (39, 335)-(47, 372): LINE (50, 350)-(47, 372): LINE (43, 353)-(60, 365)
  324. 4032 LINE (601, 335)-(580, 365): LINE (601, 335)-(593, 372): LINE (590, 350)-(593, 372): LINE (597, 353)-(580, 365)
  325. 4040 CIRCLE (320, 800), 760: CIRCLE (320, 800), 810
  326. 4042 LOCATE 13, 8: PRINT "F LAYER": LOCATE 13, 64: PRINT "IONOSPHERE"
  327. 4043 LOCATE 24, 9: PRINT " KE1D "; : LOCATE 24, 66: PRINT " CQ DX ";
  328. 4045 FOR N = 1 TO 3
  329. 4050 FOR X = 20 TO 280 STEP 20: CIRCLE (39, 335), X, 1, .58, .82: NEXT
  330. 4051 CIRCLE (-170, 300), 480, 1, .25, .4: LINE (320, 140)-(320, 200), 1: CIRCLE (-220, 50), 592, 1, 5.97, 6.07
  331. 4052 FOR X = 0 TO 280 STEP 20: CIRCLE (0, -50), 480 + X, 1, 5.56, 5.67: NEXT
  332. 4055 FOR X = 20 TO 280 STEP 20: CIRCLE (39, 335), X, 0, .58, .82: NEXT
  333. 4056 CIRCLE (-170, 300), 480, 0, .25, .4: LINE (320, 140)-(320, 200), 0: CIRCLE (-220, 50), 592, 0, 5.97, 6.07
  334. 4057 FOR X = 0 TO 280 STEP 20: CIRCLE (0, -50), 480 + X, 0, 5.56, 5.67: NEXT
  335. 4060 NEXT
  336. 4090 RETURN
  337. 4490 RETURN
  338.  
  339.