home *** CD-ROM | disk | FTP | other *** search
/ World of Ham Radio 1997 / WOHR97_AmSoft_(1997-02-01).iso / basic / satfind4.bas < prev    next >
BASIC Source File  |  1997-02-01  |  8KB  |  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.141592654#
  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)-.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.