home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 775.PHASE2.2 < prev    next >
Text File  |  1985-09-28  |  7KB  |  161 lines

  1. 10 REM Circular orbit satellite tracking program
  2. 20 REM originally by W3IWI, modified by G3ZCZ
  3. 30 REM  Ver 810120.4
  4. 40 DIM I$(30) \P1=3.141592654\P2=2*P1\P8=P1/180 \ C=2.998E5
  5. 50 GOTO 420
  6. 60 REM -- FNZ$ FILLS IN LEADING ZEROES IN STRING OF LEN=2
  7. 70 DEF FNZ$(V)
  8. 80 V1=INT(V/10) \ V2=INT(V-10*V1+.5)
  9. 90 RETURN CHR$(48+V1)+CHR$(48+V2)
  10. 100 FNEND
  11. 110 REM -- FNT CONVERTS FROM DD.DDD TO HH,MM,SS
  12. 120 DEF FNT(D9)
  13. 130 T7=INT(D9) \ T9=D9-T7 \ H9=INT(24*T9)
  14. 140 M9=INT(1440*(T9-H9/24))
  15. 150 S9=INT((T9-H9/24-M9/1440)*86400+.5)
  16. 160 IF S9<60 THEN 170 ELSE S9=S9-60 \ M9=M9+1 \ GOTO 160
  17. 170 IF M9<60 THEN 180 ELSE M9=M9-60 \ H9=H9+1 \ GOTO 170
  18. 180 IF H9<24 THEN 190 ELSE H9=H9-24 \ T7=T7+1 \ GOTO 180
  19. 190 RETURN T7
  20. 200 FNEND
  21. 210 REM -- GET SATELLITE COORD,AZ,EL,RANGE AT T=DD.DDD
  22. 220 DEF FNS(T9)
  23. 230 A0=(T9-T0)+W0 \ A0=(A0-INT(A0))*P2
  24. 240 N9=(T9-T0)/P0 \ A1=(N9-INT(N9))*P2
  25. 250 S0=SIN(A0) \ C0=COS(A0) \ S1=SIN(A1) \ C1=COS(A1)
  26. 260 X=R3*(+C0*C1+S0*S1*C2) \ Y=R3*(-S0*C1+C0*S1*C2)
  27. 270 Z=R3*S1*S2 \ S8=(X-X0)^2+(Y-Y0)^2+(Z-Z0)^2 \ S7=SQRT(S8)
  28. 280 S3=(R4-S8)/(2*R0*S7) \ E=-99 \ F7=(S7-L7)/(T5*C) \ L7=S7
  29. 290 IF S3<E3 THEN RETURN E ELSE E=ATN(S3/SQRT(1-S3^2))/P8
  30. 300 A1=R1*(Y*X0-X*Y0) \ A2=R7*Z - Z0*(X*X0+Y*Y0+Z*Z0)
  31. 310 A=ATN(A1/A2)/P8 \ IF A2<0 THEN A=A+180
  32. 320 IF (A1<0 AND A2>0) THEN A=A+360
  33. 330 A=INT(A+.5) \ S7=INT(S7+.5) \ RETURN INT(E+.5)
  34. 340 FNEND
  35. 350 REM -- HEADER PRINT ROUTINE
  36. 360 T6=T0+(N-N0)*P0 \ W6=T6-T0+W0 \ W6=(W6-INT(W6))*360
  37. 370 D7=FNT(T6)+D \ T$="/"+FNZ$(H9)+":"+FNZ$(M9)+":"+FNZ$(S9)
  38. 380 PRINT#P5
  39. 390 PRINT#P5,"ORBIT# ",%5I,N," AT ",D7,T$," UTC  AT W.LONG=",%6F2,W6
  40. 400 PRINT#P5,"    UTC        AZ       EL    RANGE      "+M$ \ RETURN
  41. 410 REM ---- PROGRAM BEGINS
  42. 420 PRINTCHR$(12),"AMATEUR SATELLITE AZ-EL PROGRAM"
  43. 430 PRINT
  44. 440 PRINT "Satellite selection menu "
  45. 450 PRINT "AMSAT - OSCAR 7         0"
  46. 460 PRINT "AMSAT - OSCAR 8         1"
  47. 470 PRINT "UoSAT - OSCAR 9         2"
  48. 480 PRINT "RS 3                    3"
  49. 490 PRINT "RS 4                    4"
  50. 500 PRINT "RS 5                    5"
  51. 510 PRINT "RS 6                    6"
  52. 520 PRINT "RS 7                    7"
  53. 530 PRINT "RS 8                    8"
  54. 540 INPUT "Which satellite ? ", S \ IF S<0 OR S >8 THEN 440
  55. 550 ON S+1 GOTO 560,570,580,590,600,610,620,630,640è560 RESTORE 1100 \ GOTO 660
  56. 570 RESTORE 1170 \ GOTO 660
  57. 580 RESTORE 1230 \ GOTO 660
  58. 590 RESTORE 1280 \ GOTO 660
  59. 600 RESTORE 1320 \ GOTO 660
  60. 610 RESTORE 1360 \ GOTO 660
  61. 620 RESTORE 1410 \ GOTO 660
  62. 630 RESTORE 1460 \ GOTO 660
  63. 640 RESTORE 1510 \ GOTO 660
  64. 650 REM OTHER S/C CAN BE ADDED HERE
  65. 660 READ I$,N0,D,H9,M9,S9,W,P,I,H
  66. 670 PRINT\ PRINT I$," Reference orbit is",N0," on",D,
  67. 680 T$="   "+FNZ$(H9)+":"+FNZ$(M9)
  68. 690 PRINT " at",T$, " crossing at",W," W"
  69. 691 INPUT "Do you want to overide reference data ? ",A$ \ IF A$="" THEN 691
  70. 692 IF A$(1,1) = "N" THEN 700 ELSE IF A$(1,1) = "Y" THEN 693 ELSE 691
  71. 693 INPUT "Reference Orbit number ? ",N0 \ INPUT "Julian day number ? ",D
  72. 696 INPUT "Reference orbit crossing time hours ? ",H9
  73. 697 INPUT "Reference orbit crossing time minutes ? ",M9
  74. 698 INPUT "Reference orbit crossing time seconds ? ",S9
  75. 699 INPUT "Reference orbit crossing time location ( deg W ) ? ",W
  76. 700 INPUT"What Mode do you want ? ",M$
  77. 710 READ T$,F8,F9\IF T$=M$THEN720 ELSEIF T$="**"THEN740 ELSE710
  78. 720 IF F8=1 THEN M$="BEACON" ELSE M$="DOPPLER" \ F8=F8*F9
  79. 730 M$=T$(1,1)+"-"+M$ \ GOTO 760
  80. 740 PRINT "Mode "+M$+" does not compute"
  81. 750 M$="  VELOCITY" \ F8=0 \ F9=C
  82. 760 RESTORE 1030 \ READ E3,T5,S$,W1,L1
  83. 770 P0=P/1440 \ W0=W/360 \ T0=H9/24+M9/1440+S9/86400
  84. 780 S2=SIN(I*P8) \ E3=SIN(E3*P8) \ C2=COS(I*P8) \ R1=6378.14
  85. 790 R3=R1+H \ R7=R1^2 \ R5=R3^2
  86. 800 S0=SIN(L1*P8)\C0=COS(L1*P8)\S1=SIN(W1*P8)\C1=COS(W1*P8)
  87. 810 F=1-1/298.22 \ R=R1/SQRT(C0*C0+F*S0*S0)
  88. 820 X0=R*C0*C1 \ Y0=-R*C0*S1 \ Z0=R*S0*F*F
  89. 830 R0=SQRT(X0*X0+Y0*Y0+Z0*Z0) \ R4=R5-R0*R0
  90. 840 INPUT "What is the first orbit ? ",N1  \ IF N1 >= N0 THEN 860
  91. 850 PRINT" Reference orbit is",N0 \ GOTO 840
  92. 860 INPUT "What is the last orbit to be printed ? ",N2
  93. 870 IF N2<N1 THEN N2=N1 \ I$=I$+" ORBITS "
  94. 880 INPUT "Which output device (0-7) ? ",P5
  95. 890 PRINT#P5,CHR$(12),"AZ-EL POINTING FOR ",I$,N1," TO ",N2
  96. 900 I$="FOR "+S$+" AT W.LONG "
  97. 910 PRINT#P5,I$,W1," & LAT ",L1,
  98. 920 IFL1>=0 THEN X$=" N " ELSE X$=" S "\ PRINT#P5, X$ +"  MODE "+T$
  99. 930 PRINT#P5,"-------------------------------------------------------"
  100. 940 T1=T0+(N1-N0)*P0 \ T1=INT(T1*1440)/1440
  101. 950 T2=T1+(N2-N1+1)*P0
  102. 960 T3=T5/1440 \ T5=T5*60 \ L7=9E9 \ N7=-99
  103. 970 FOR T=T1 TO T2 STEP T3 \ E = FNS(T) \ IF E<-90 THEN 1010
  104. 980 N=INT(N0+N9+.1) \ IF N<>N7 THEN GOSUB 360
  105. 990 N7=N \ D7=FNT(T) \ T$="   "+FNZ$(H9)+":"+FNZ$(M9)
  106. 1000 PRINT#P5, T$,%9I,A,E,S7,%14F3,F8-F7*F9
  107. 1010 REM
  108. 1020 NEXT \ PRINT#P5,TAB(20),"END"
  109. 1030 DATA -3,2 \ REM-MIN EL,TIME INTERVALè1040 DATA "G3ZCZ/4X", -31.8,35.2 \ REM CALL,LONG,LAT
  110. 1050 REM FORMAT OF DATA = SPACECRAFT NAME
  111. 1060 REM ORBIT (#), DATE (YYDDD), EQR XSING TIME (HH,MM,SS), LONG ( DEG W)
  112. 1070 REM PERIOD (MIN), INCL (DEG), HEIGHT (KM)
  113. 1080 REM FORMAT="MODE",DOP=0/FREQ=1,EQUIV FREQ,KHZ
  114. 1090 REM "**",1,1 FOR END OF DATA FOR SATELLITE
  115. 1100 DATA "AMSAT OSCAR 7"
  116. 1110 DATA 16804,78200,00,36,52,67.5
  117. 1120 DATA 114.945199,101.7,1449.6
  118. 1130 DATA "A",0,175450.00,"AB",1,29502.00
  119. 1140 DATA "B",0,-286250.00,"BB",1,145972.00
  120. 1150 DATA "D",1,435100.00
  121. 1160 DATA "**",1,1
  122. 1170 DATA "AMSAT OSCAR 8"
  123. 1180 DATA 19370,81357,01,08,10,83.77
  124. 1190 DATA 103.179480,98.7987,905
  125. 1200 DATA "A",0,175450.00,"AB",1,29402.00
  126. 1210 DATA "J",0,+289100.00,"JB",1,435100.00
  127. 1220 DATA "**",1,1
  128. 1230 DATA "UoSAT OSCAR 9"
  129. 1240 DATA 01171,81357,00,16,58,138.2
  130. 1250 DATA 95.31353,97.462,536
  131. 1260 DATA "AB",1,29.500,"BB",1,145825.00
  132. 1270 DATA "**",1,1
  133. 1280 DATA " R S 3 "
  134. 1290 DATA 0   ,82018,01,05,50,231.9
  135. 1300 DATA 118.46293,82.9592,1632.7
  136. 1310 DATA "AB",1,29321,"**",1,1
  137. 1320 DATA " R S - 4"
  138. 1330 DATA 0   ,82018,00,43,23,225.9
  139. 1340 DATA 119.33912,82.9603,1666
  140. 1350 DATA "AB",1,29360,"**",1,1
  141. 1360 DATA "R S - 5 "
  142. 1370 DATA 0   ,82018,01,43,23,241.9
  143. 1380 DATA 119.49842,82.9629,1671.55
  144. 1390 DATA "A",0,175.450,"AB",1,29.330
  145. 1400 DATA "**",1,1
  146. 1410 DATA " R S - 6 "
  147. 1420 DATA 0  ,82018,00,23,17,221.2
  148. 1430 DATA 118.66154,82.9542,1641.7
  149. 1440 DATA "A",0,175.450,"AB",1,29.453
  150. 1450 DATA "**",1,1
  151. 1460 DATA " R S - 7 "
  152. 1470 DATA 0  ,82018,01,26,59,237.1
  153. 1480 DATA 119.14014,82.9629,1661.55
  154. 1490 DATA "A",0,175.450,"AB",1,29.501
  155. 1500 DATA "**",1,1
  156. 1510 DATA " R S - 8 "
  157. 1520 DATA 0  ,82018,01,04,18,231.1
  158. 1530 DATA 119.70890,82.9570,1675.25
  159. 1540 DATA "A",0,175.450,"AB",1,29.502
  160. 1550 DATA "**",1,1
  161.