home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG041.ARK / MOONLOC1.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  2KB  |  90 lines

  1. 10    DATA 37,23.5,122,10.5
  2. 20    DATA 5
  3. 100    REM THIS PROGRAM CALCULATES MOON AIMING DATA FROM A SPECIFIED
  4. 110    REM QTH AT SELECTED TIME INTERVALS DURING THE HOUR.
  5. 120    REM
  6. 130    REM DATA REQUIREMENTS ARE AS FOLLOWS:
  7. 140    REM
  8. 150    REM LINE 10 - LATITUDE DEGREES, LATITUDE MINUTES,
  9. 160    REM          LONGITUDE DEGREES, LONGITUDE MINUTES
  10. 170    REM
  11. 180    REM LINE 20 - TIME INTERVAL FOR CALCULATIONS IN MINUTES
  12. 190    REM
  13. 200    REM LINE 1050--ALMANAC DATA CONSISTING OF THE TIME, GHA DEGREES
  14. 210    REM           GHA MINUTES, DECLINATION DEGREES AND DECLINATION
  15. 220    REM           MINUTES
  16. 230    REM
  17. 240    REM        DATA MUST BE GIVEN FOR BOTH THE BEGINNING AND
  18. 250    REM        END OF THE HOUR.  THAT IS, IF AIMING DATA IS
  19. 260    REM        DESIRED FOR HOURS BEGINNING 0900,1000, AND 1100
  20. 270    REM        YOU MUST SHOW DATA FOR 0900,1000,1100 AND 1200
  21. 280    REM
  22. 290    REM TO INDICATE THE END OF THE HOURLY DATA INCLUDE A SINGLE
  23. 300    REM DATA LINE WITH A ONE, A TWO FOR FINISHED MONTH
  24. 305    REM WITH THIS METHOD A MONTH AT A TIME CAN BE DONE
  25. 310    REM
  26. 320    LET R=1.74533E-02
  27. 330    LET P1=180*R
  28. 340    LET P3=360*R
  29. 350    READ L3,L4
  30. 360    LET L1=(L3+L4/60)*R
  31. 370    READ L3,L4
  32. 380    LET L2=(L3+L4/60)*R
  33. 390    LET L3=SIN(L1)
  34. 400    LET L4=COS(L1)
  35. 405    READ J1
  36. 406    LET J=60/J1
  37. 410    PRINT
  38. 420    PRINT
  39. 430    PRINT
  40. 440    PRINT "MOON AIMING DATA SPECIFICALLY PREPARED FOR K6MYC"
  41. 450    PRINT
  42. 460    PRINT
  43. 470    PRINT "TIME","AZIMUTH","ELEVATION"
  44. 480    PRINT
  45. 510    READ B
  46. 530    READ B1,B2,B3,B4
  47. 540    LET G1=(B1+B2/60)*R
  48. 550    LET D1=(B3+B4/60)*R
  49. 560    READ B5
  50. 570    IF B5=1 THEN 450
  51. 576    IF B5=2 THEN 2000
  52. 577    IF B5=3 THEN 480
  53. 580    READ B1,B2,B3,B4
  54. 590    LET G2=(B1+B2/60)*R
  55. 600    LET D2=(B3+B4/60)*R
  56. 610    LET G0=(G2-G1)/J
  57. 620    IF G0>0 THEN 640
  58. 630    LET G0=(G2+P3-G1)/J
  59. 640    LET D0=(D2-D1)/J
  60. 650    LET G=G1
  61. 660    LET D=D1
  62. 670    FOR I=0 TO 59 STEP J1
  63. 680    LET D3=SIN(D)
  64. 690    LET D4=COS(D)
  65. 700    LET H=L2-G
  66. 710    IF H-P1<0 THEN 750
  67. 720    IF H-P1=0 THEN 770
  68. 730    LET H=P3-H
  69. 740    GOTO 770
  70. 750    IF H+P1 >= 0 THEN 770
  71. 760    LET H=P3+H
  72. 770    LET A=0
  73. 780    LET E=0
  74. 790    LET E3=L3*D3+L4*D4*COS(H)
  75. 800    IF E3<0 THEN 940
  76. 900    IF A >= 0 THEN 940
  77. 910    LET A=P3+A
  78. 920    GOTO 940
  79. 930    LET A=P1-A
  80. 940    LET A=INT(10*A/R+.5)/10
  81. 950    PRINT B+1,A,E
  82. 960    LET G=G+G0
  83. 970    LET D=D+D0
  84. 980    NEXT I
  85. 990    LET G1=G2
  86. 1000    LET D1=D2
  87. 1010    LET B=B5
  88. 1020    GOTO 560
  89. 2000    END
  90.