home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3 / hamradioversion3.0examsandprograms1992.iso / satel / satcom / satcom.bas
BASIC Source File  |  1988-05-01  |  5KB  |  169 lines

  1. 10 ON ERROR GOTO 1600
  2. 20 COLOR 5,7 : GOTO 1050'   * Satellite data calculations *
  3. 30 ' Written by: Fred W. Wise P.E. - Windsor, Pa.
  4. 40 'Modified by Bruce Goldman (L/C, N.Y. default
  5. 50 '   & Satellite update of July, 1987
  6. 60 ' Ver 1.2 Placed in the public domain may 7, 1982
  7. 70 ' Provided via BB's BBB (212) 933-9459 in the Bronx, NYC.
  8. 80 ' Sat data in arrays  ns()= name, st()= long. Deg.
  9. 90 ' Sd= claculated distance to sat. In km.
  10. 100 ' Rt= receiver long.  Rl=receiver latitude, both are deg.
  11. 110 ' Se= calc. Elev.  Sb=calc. Bng. To sat, both in deg.
  12. 120 ' Se & sb start here
  13. 130 T = ST(I) - RT
  14. 140 IF ABS(T) < 180 THEN 160
  15. 150 IF T > 0 THEN T = T - 360 ELSE T = T + 360
  16. 160 T = T / RD
  17. 170 V = COS(RL / RD) * COS(T)
  18. 180 GOSUB 430
  19. 190 S = U
  20. 200 V = SIN(T) / COS(S)
  21. 210 IF V >= 1 THEN U = 90 / RD: GOTO 240
  22. 220 IF V <= -1 THEN U = -90 / RD: GOTO 240
  23. 230 GOSUB 430
  24. 240 Z = INT(ABS(U * RD) * 10 + .5) / 10
  25. 250 U = 0
  26. 260 IF RL <> 0 THEN 280
  27. 270 U = -90 / RD
  28. 280 IF T < 0 THEN Z = -Z
  29. 290 IF S > U THEN 330
  30. 300 IF RL >= 0 THEN 340
  31. 310 SB = Z + 180
  32. 320 GOTO 360
  33. 330 IF RL > 0 THEN 310
  34. 340 SB = 360 - Z
  35. 350 IF SB >= 360 THEN SB = SB - 360
  36. 360 IF S < .115 THEN SE = 0: RETURN
  37. 370 U = RE / TAN(S)
  38. 380 V = RS - RE / SIN(S)
  39. 390 SD = SQR(U ^ 2 + V ^ 2 - 2 * U * V * COS(180 / RD - S))
  40. 400 X = (U ^ 2 + SD ^ 2 - V ^ 2) / (2 * U * SD)
  41. 410 SE = (-ATN(X / SQR(-X * X + 1)) + 1.5708) * RD
  42. 420 RETURN
  43. 430 IF V = 1 THEN U = 90 / RD: RETURN
  44. 440 U = ATN(V / SQR(-V * V + 1))
  45. 450 RETURN' Arc sin
  46. 460 CLS
  47. 470 PRINT STRING$(79, 42)
  48. 480 PRINT TAB(17); "* Geostationary Communications Satellite Data *"
  49. 490 PRINT STRING$(79, 42)
  50. 500 RETURN
  51. 510 ' General subroutines
  52. 520 GOSUB 460
  53. 530 PRINT
  54. 540 PRINT TAB(9); "SATELLITE"; TAB(28); "BNG."; TAB(41); "ELEV."; TAB(52); "DIST. KM"; TAB(64); "DEGREES"
  55. 550 PRINT TAB(9); STRING$(62, 45)
  56. 560 RETURN
  57. 570 ' **** Main program start ****
  58. 580 GOSUB 460
  59. 590 PRINT
  60. 600 PRINT "Written by: Fred W. Wise P.E. - Windsor, Pa."
  61. 610 PRINT "Ver 1.2 - Placed in the public domain - May 7, 1982"
  62. 620 PRINT "Modified by Bruce Goldman"
  63. 630 PRINT "Satellite update - July, 1987": PRINT
  64. 640 PRINT , "Enter receiver latitude and longitude"
  65. 650 PRINT , "In degrees (with decimal part..."
  66. 660 PRINT
  67. 670 PRINT , ;
  68. 680 INPUT "Longitude (N.Y. 74.00 is default): "; RT
  69. 690 IF RT = 0 THEN RT = 74
  70. 700 PRINT , ;
  71. 710 INPUT "Latitude (N.Y. 40.45 is default):  "; RL
  72. 720 IF RL = 0 THEN RL = 40.45
  73. 730 GOSUB 520
  74. 740 FOR I = 1 TO 12
  75. 750 GOSUB 980
  76. 760 NEXT
  77. 770 PRINT
  78. 780 INPUT "<Enter> to continue --> "; K
  79. 790 GOSUB 520
  80. 800 FOR I = 13 TO 24
  81. 810 GOSUB 980
  82. 820 NEXT
  83. 830 PRINT
  84. 840 INPUT "<Enter> to continue --> "; K
  85. 850 GOSUB 520
  86. 860 FOR I = 25 TO 36
  87. 870 GOSUB 980
  88. 880 NEXT
  89. 890 PRINT
  90. 900 INPUT "<Enter> to continue --> "; K
  91. 910 GOSUB 520
  92. 920 FOR I = 37 TO IM
  93. 930 GOSUB 980
  94. 940 NEXT
  95. 950 PRINT
  96. 960 INPUT "<Enter> to run again --> "; K
  97. 970 GOTO 580
  98. 980 GOSUB 130
  99. 990 PRINT TAB(9); NS(I); TAB(28); USING P1$; SB;
  100. 1000 PRINT TAB(40); USING P1$; SE;
  101. 1010 PRINT TAB(52); USING P2$; SD;
  102. 1015 PRINT TAB(63); ST(I); "°"
  103. 1020 RETURN
  104. 1030 '
  105. 1040 ' * *  Initialization * *
  106. 1050 CLEAR 500
  107. 1060 DEFINT I
  108. 1070 DEFSTR K,P,N
  109. 1080 IM=40' Number of birds in data statements
  110. 1090 DIM NS(IM),ST(IM)
  111. 1100 P1="###.#"
  112. 1110 P2="#####"
  113. 1120 RD=57.29578
  114. 1130 RS=42157!' Km to satelite
  115. 1140 RE=6371' Km to earth rad.
  116. 1150 FOR I=1 TO IM
  117. 1160 READ NS(I),ST(I)
  118. 1170 NEXT
  119. 1180 GOTO 580
  120. 1190 '
  121. 1200 ' *** Satelite data ***
  122. 1210 '
  123. 1220 DATA "Anik 1, D & D1", 104.5
  124. 1230 DATA Anik 2 & 3, 114
  125. 1240 DATA Anik B, 109
  126. 1260 DATA Anik C2 & D2, 110.5
  127. 1270 DATA Anik C1, 107.5
  128. 1290 DATA Anik C3, 117.5
  129. 1300 DATA ASC-1, 128
  130. 1310 DATA Aurora F5, 143
  131. 1320 DATA Comstar 2, 95
  132. 1330 DATA Comstar 3, 87
  133. 1340 DATA Comstar D3/D4, 76
  134. 1350 DATA Comstar D4, 127
  135. 1360 DATA Galaxy 1, 134
  136. 1370 DATA Galaxy 2, 74
  137. 1380 DATA Galaxy 3, 93.5
  138. 1390 DATA Gstar 1, 103
  139. 1400 DATA Gstar 2, 105
  140. 1410 DATA Morelos 1, 113.5
  141. 1420 DATA Morelos 2, 116.5
  142. 1430 DATA Satcom 1, 135
  143. 1440 DATA Satcom 2, 119
  144. 1445 DATA Satcom F2R, 72
  145. 1450 DATA Satcom 3R & F3R, 131
  146. 1460 DATA Satcom 4 & F4, 83
  147. 1470 DATA Satcom 5 & F1R, 139
  148. 1520 DATA Satcom K1, 85
  149. 1530 DATA Satcom K2, 81
  150. 1540 DATA SBS 1, 99
  151. 1550 DATA SBS 2, 97
  152. 1560 DATA SBS 3, 95
  153. 1570 DATA SBS 4, 91
  154. 1580 DATA Spacenet 1, 120
  155. 1590 DATA Spacenet 2, 69
  156. 1600 DATA Telestar 301, 96
  157. 1610 DATA Telestar 302, 86
  158. 1620 DATA Telestar 303, 125
  159. 1630 DATA Westar 1 & 2, 79
  160. 1640 DATA Westar 3, 91
  161. 1650 DATA Westar 4, 99
  162. 1660 DATA Westar 5, 122.5
  163. 1670 ' To add or change data format is as follows:
  164. 1680 '       Name,longitude,
  165. 1690 '
  166. 1700 ' Set im=# birds in data statements
  167. 1710 END'Of satellite program****
  168. 1720 RESUME
  169.