home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / misc / pc-hamd1 / satfind4.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-02-11  |  6.5 KB  |  178 lines

  1. 1000  REM   Program to locate television satellites for a given latitude
  2. 1010  REM   and longitude.  This program is useful for TVRO owners.
  3. 1020  REM   Additional satellites can be placed in the data table.
  4. 1030  REM
  5. 1040  REM        P.G. Wohlmut   Copyright 1983    July 8, 1983
  6. 1050  REM                        Updated  1985    July 9, 1985
  7. 1060  REM
  8. 1070  REM   Rev. 11. February 1987 by Andrew Poth - Program restructured for
  9. 1080  REM   clarity.  Eliminated degrees to deg-min-sec conversion in output,
  10. 1090  REM   which had an algorithm error for negative values.
  11. 1100  REM   Fixed program to work on equator and in southern hemisphere.
  12. 1110  REM   Reformatted output for 80 column, 25 row display.  Added KEY ON
  13. 1120  REM   upon program termination to restore soft keys.
  14. 1130  LET PI=3.14159
  15. 1140  DIM CITY$(20),CIT$(20),LAT(20,3),LONG(20,3)
  16. 1150  KEY OFF
  17. 1160  RESTORE 8000        'This is where Earth station data is listed.
  18. 1170  CLS                 'Top of Main Loop.
  19. 1180  LET ENDFLAG=0
  20. 1190    FOR I= 1 TO 20    'Read city names, lat. & long. into arrays.
  21. 1200    READ CITY$(I)
  22. 1210    IF CITY$(I)="end" THEN LET I=I-1: LET ENDFLAG=1: GOTO 1310
  23. 1220      PRINT USING "###";I,
  24. 1230      LET CT$=LEFT$(CITY$(I),LEN(CITY$(I))-2)
  25. 1240      LET ST$=RIGHT$(CITY$(I),2)
  26. 1250        IF ST$="\\" THEN LET ST$=""   'No state name; blank it out.
  27. 1260      LET CIT$(I)=CT$ + "  " +ST$
  28. 1270      PRINT "  ";CIT$(I)
  29. 1280      READ LAT(I,1),LAT(I,2),LAT(I,3)
  30. 1290      READ LONG(I,1),LONG(I,2),LONG(I,3)
  31. 1300    NEXT I
  32. 1310    IF I=0 THEN 1420
  33. 1320    PRINT
  34. 1330    LINE INPUT "         Which city # (press <Retrn> for more) ?";Z$
  35. 1340    IF Z$="" AND ENDFLAG=0 THEN 1170
  36. 1350    IF Z$="" AND ENDFLAG=1 THEN 1420
  37. 1360    LET Z=VAL(Z$)
  38. 1370    IF Z<1 OR Z>I THEN 1330
  39. 1380    LET DT=LAT(Z,1) : LET MT=LAT(Z,2) : LET ST=LAT(Z,3)
  40. 1390    LET DG=LONG(Z,1) : LET MG=LONG(Z,2) : LET SG=LONG(Z,3)
  41. 1400    LET CT$=CIT$(Z)
  42. 1410    GOTO 1550
  43. 1420  BEEP
  44. 1430  CLS
  45. 1440  PRINT "END OF DATABASE - Input data manually for locations not listed."
  46. 1450  PRINT
  47. 1460  LINE INPUT "Your city name ? ";CT$
  48. 1470  PRINT
  49. 1480  PRINT "Enter POSITIVE integers (+deg,+min,+sec) for NORTH LATITUDES and"
  50. 1490  PRINT "for WEST LONGITUDES."
  51. 1500  PRINT "Enter NEGATIVE integers (-deg,-min,-sec) for SOUTH LATITUDES and"
  52. 1510  PRINT "for EAST LONGITUDES."
  53. 1520  PRINT
  54. 1530  INPUT "Your Latitude (deg,min,sec) ";DT,MT,ST
  55. 1540  INPUT "Your Longitude (deg,min,sec) ";DG,MG,SG
  56. 1550  CLS
  57. 1560  PRINT "  Observer site:  ";CT$
  58. 1570  LET LT$="  Lat. "
  59. 1580  LET LN$="       Long. "
  60. 1590  IF DT<0 OR MT<0 OR ST<0 THEN LET LT$=LT$ + "-" ELSE LET LT$=LT$ + "+"
  61. 1600  IF DG<0 OR MG<0 OR ST<0 THEN LET LN$=LN$ + "-" ELSE LET LN$=LN$ + "+"
  62. 1610  PRINT USING "&## ##'##!";LT$,ABS(DT),ABS(MT),ABS(ST),CHR$(34);
  63. 1620  PRINT USING "&### ##'##!";LN$,ABS(DG),ABS(MG),ABS(SG),CHR$(34)
  64. 1630  PRINT
  65. 1640  PRINT "  :  SATELLITE  :  AZIMUTH  : ELEVATION :"
  66. 1650  PRINT "  ======================================="
  67. 1660  LET SITELONG=DG+MG/60+SG/3600 : LET SITELAT=DT+MT/60+ST/3600
  68. 1670  LET SITELONG = SITELONG*PI/180 : LET SITELAT=SITELAT*PI/180
  69. 1680  RESTORE 9000                  'This is where satellite data is listed.
  70. 1690  FOR I=1 TO 500
  71. 1700  READ SAT$
  72. 1710  IF SAT$="end" THEN 1880
  73. 1720  READ ANGLE
  74. 1730  LET SATLONG=ANGLE*PI/180
  75. 1740  REM *** Calculate azimuth & elevation of satellite at site.
  76. 1750  LET EL = ATN((COS(SATLONG-SITELONG)*COS(SITELAT)-0.15126)/SQR(1-(COS(SATLONG-SITELONG)*COS(SITELAT))^2))*180/PI
  77. 1760  LET A=TAN(SATLONG-SITELONG)
  78. 1770  LET B=SIN(SITELAT)
  79. 1780  IF B<>0 THEN GOTO 1820        'These lines handle cases for ground
  80. 1790  LET AZ=180+SGN(TAN(A))*90     'stations along the equator, i.e., the
  81. 1800  GOTO 1850                     'denominator of equation goes to 0.
  82. 1810  'The following azimuth equation handles all other ground station sites:
  83. 1820  LET AZ=180+ATN(TAN(SATLONG-SITELONG)/SIN(SITELAT))*180/PI
  84. 1830  IF SITELAT<0 THEN LET AZ=AZ-180
  85. 1840  IF AZ<0 THEN LET AZ=AZ+360
  86. 1850  REM *** End of azimuth and elevation calculation.
  87. 1860  PRINT USING "\\:_ \          \:  ####.#   :  ####.#   :";"  ",SAT$,AZ,EL
  88. 1870  NEXT I
  89. 1880  PRINT "  ======================================="
  90. 1890  LOCATE 25,10:PRINT "Another location? ";
  91. 1900  LET Z$=INKEY$
  92. 1910  IF Z$="" THEN 1900   'Loop until a key is pressed.
  93. 1920  IF Z$="Y" OR Z$="y" THEN 1160
  94. 1930  LOCATE 25,10:PRINT "Press <Esc> to terminate";
  95. 1940  LET Z$=INKEY$
  96. 1950  IF Z$<>CHR$(27) THEN 1940
  97. 1960  CLS
  98. 1970  KEY ON
  99. 1980  END
  100. 8000  REM *** CITY NAME[STATE], LATITUDE (dms), LONGITUDE (dms) DATA ***
  101. 8010  REM  Make last 2 characters of City Name = \\ to blank State field.
  102. 8020  DATA AlbuquerqueNM,35,0,0,106,40,0
  103. 8030  DATA AnchorageAK,61,10,0,150,0,0
  104. 8040  DATA AtlantaGA,33,30,0,84,20,0
  105. 8050  DATA BakersfieldCA,35,30,0,120,10,0
  106. 8060  DATA BaltimoreMD,39,15,0,76,40,0
  107. 8070  DATA BangorME,44,45,0,68,45,0
  108. 8080  DATA BirminghamAL,33,30,0,86,45,0
  109. 8090  DATA BismarckND,46,45,0,100,45,0
  110. 8100  DATA BostonMA,42,20,0,71,5,0
  111. 8110  DATA BuffaloNY,43,0,0,78,50,0
  112. 8120  DATA ButteMT,46,0,0,112,30,0
  113. 8130  DATA CharlestonSC,38,20,0,81,35,0
  114. 8140  DATA ChicagoIL,41,10,0,87,40,0
  115. 8150  DATA ClevelandOH,41,20,0,81,40,0
  116. 8160  DATA DallasTX,33,0,0,97,0,0
  117. 8170  DATA DenverCO,39,45,0,105,0,0
  118. 8180  DATA Des MoinesIA,41,30,0,93,40,0
  119. 8190  DATA DetroitMI,42,30,0,83,0,0
  120. 8200  DATA Earth Station WD-72\\,39,53,57,86,12,04
  121. 8210  DATA ElkoNV,40,50,0,115,40,0
  122. 8220  DATA EurekaCA,40,45,0,124,10,0
  123. 8230  DATA FairbanksAK,64,38,50,148,0,0
  124. 8240  DATA FlagstaffAZ,35,25,0,111,30,0
  125. 8250  DATA FresnoCA,36,55,0,119,45,0
  126. 8260  DATA HartfordCT,41,45,0,72,40,0
  127. 8270  DATA HonoluluHI,21,20,0,157,50,0
  128. 8280  DATA HoustonTX,29,50,0,95,10,0
  129. 8290  DATA IndianapolisIN,39,45,0,86,10,0
  130. 8300  DATA JacksonMS,32,15,0,90,10,0
  131. 8310  DATA JacksonvilleFL,30,15,0,81,40,0
  132. 8320  DATA Kansas CityMO,39,0,0,94,30,0
  133. 8330  DATA Las VegasNV,36,10,0,115,10,0
  134. 8340  DATA Little RockAR,34,45,0,92,15,0
  135. 8350  DATA Los AngelesCA,34,0,0,118,15,0
  136. 8360  DATA LouisvilleKY,38,10,0,85,45,0
  137. 8370  DATA MiamiFL,25,45,0,80,15,0
  138. 8380  DATA MilwaukeeWS,43,0,0,88,0,0
  139. 8390  DATA MinneapolisMN,45,0,0,93,15,0
  140. 8400  DATA NashvilleTN,36,15,0,86,45,0
  141. 8410  DATA New OrleansLA,30,0,0,90,0,0
  142. 8420  DATA New YorkNY,40,45,0,74,0,0
  143. 8430  DATA OmahaNE,41,15,0,96,0,0
  144. 8440  DATA OrlandoFL,28,35,0,81,30,0
  145. 8450  DATA PhiladelphiaPA,40,0,0,75,0,0
  146. 8460  DATA PhoenixAZ,33,30,0,112,5,0
  147. 8470  DATA PortlandOR,45,30,0,122,35,0
  148. 8480  DATA ProvidenceRI,41,45,0,71,15,0
  149. 8490  DATA RenoNV,39,30,0,119,45,0
  150. 8500  DATA SacramentoCA,38,40,0,121,30,0
  151. 8510  DATA Saint LouisMI,38,40,0,90,10,0
  152. 8520  DATA Salt Lake CityUT,40,50,0,112,0,0
  153. 8530  DATA San DiegoCA,33,0,0,117,10,0
  154. 8540  DATA SeattleWA,47,30,0,122,15,0
  155. 8550  DATA San FranciscoCA,37,40,0,122,30,0
  156. 8560  DATA San JoseCA,37,15,0,121,50,0
  157. 8570  DATA TampaFL,28,0,0,82,30,0
  158. 8580  DATA TucsonAZ,32,10,0,111,35,0
  159. 8590  DATA TulsaOK,36,10,0,96,0,0
  160. 8600  DATA WashingtonDC,38,55,0,77,5,0
  161. 8610  DATA Winston SalemNC,36,10,0,80,15,0
  162. 8620  DATA BogotaSA,4,36,0,74,5,0
  163. 8630  DATA Buenos AiresSA,-34,-36,0,58,26,0
  164. 8640  DATA OttawaCN,45,24,0,75,43,0
  165. 8650  DATA QuitoSA,0,-14,0,78,30,0
  166. 8660  DATA Rio de JaneiroSA,-22,-54,0,43,13,0
  167. 8670  DATA TacubayaMX,19,24,0,99,12,0
  168. 8680  DATA end
  169. 9000  REM *** GEOSYNCHRONOUS SATELLITE NAME & LONGITUDE DATA ***
  170. 9010  DATA Anik A3,114,Anik B,109,Anik D1,104.5,Aurora,143
  171. 9020  DATA Comstar D3,87,Comstar D4,127
  172. 9030  DATA Galaxy 1,134,Galaxy 3,93.5
  173. 9040  DATA Satcom F1R,139,Satcom F3,131,Satcom F4,83,Spacenet 1,120
  174. 9050  DATA Telstar 301,96
  175. 9060  DATA Westar 1/2,79,Westar 3,91,Westar 4,99,Westar 5,122.5
  176. 9070  DATA end
  177. 9999  END
  178.