home *** CD-ROM | disk | FTP | other *** search
/ The Starbase One Astronomy & Space Collection / STARBASE_ONE.ISO / a94 / disk16 / exposure.exe / EXPOSSRC.BAS next >
BASIC Source File  |  1989-11-09  |  3KB  |  125 lines

  1. 10 cls
  2. 20 print "Astrophotographic Exposure Program."
  3. 30 print "-----------------------------------"
  4. 40 print
  5. 50 dim s(12),s$(12),p(3)
  6. 60 REM - Standard Shutter Speeds
  7. 70 data 0.0005,"1/2000",0.001,"1/1000",0.002,"1/500"
  8. 80 data 0.004,"1/250",0.008, "1/125"
  9. 90 data 0.016667,"1/60", 0.0333333,"1/30",0.0666667,"1/15"
  10. 100 data 0.125,"1/8",0.25,"1/4"
  11. 110 data 0.5,"1/2",1,"1"
  12. 120 rem shutter speeds are compared logarithmmically.
  13. 130 rem Base 10 or Base e equally OK.
  14. 160 for i=1 to 12
  15. 170 read s(i),s$(i)
  16. 180 let s(i)=log(s(i))
  17. 190 next i
  18. 200 rem List of objects and B values:
  19. 210 data "Moon (Thin Crescent)...",10
  20. 220 data "Moon (Wide Crescent)...",20
  21. 230 data "Moon (Quarter).........",40
  22. 240 data "Moon (Gibbous).........",80
  23. 250 data "Moon (Full)............",200
  24. 260 data "Mercury................",60
  25. 270 data "Venus..................",400
  26. 280 data "Mars...................",60
  27. 290 data "Jupiter................",30
  28. 300 data "Saturn.................",10
  29. 310 data "END"
  30. 320 rem You may add more objects, but the word 'END' must be last
  31. 325 rem and in CAPITAL letters.
  32. 330 rem - Obtain Parameters for this run:
  33. 340 print
  34. 350 print "System F-Ratio?"
  35. 360 input f
  36. 370 print
  37. 380 print "What is the speed of your film (ISO/ASA)?"
  38. 390 input a
  39. 400 print
  40. 410 print "What type of reciprocity correction is required?"
  41. 420 print
  42. 430 print "1. Typical fast film (eg Tri-X)"
  43. 440 print "2. Typical slow film (eg 2415)"
  44. 450 print "3. No correction (eg Hypersensitised or spectroscopic film)"
  45. 460 print
  46. 470 print "Please enter 1,2 or 3."
  47. 490 print
  48. 500 input c
  49. 510 if c>3 then 420
  50. 520 if c<1 then 420
  51. 525 rem p(c) is the schwartzchild exponent
  52. 530 let p(1)=.65
  53. 540 let p(2)=.8
  54. 550 let p(3)=1
  55. 560 print
  56. 570 print "Will you be using a filter? (Y/N)"
  57. 580 input r$
  58. 585 if len(r$)=0 then 570
  59. 588 let f1=1
  60. 590 if r$="n" then 670
  61. 600 if r$="N" then 670
  62. 610 if r$="no" then 670
  63. 620 if r$="NO" then 670
  64. 640 print
  65. 650 print "What is the filter factor?"
  66. 660 input f1
  67. 670 rem set up exposure table:
  68. 680 cls
  69. 883 print "Calculated exposure table for the following setup:"
  70. 887 print "--------------------------------------------------"
  71. 888 print
  72. 690 print "Film Speed is: ";a;" ISO."
  73. 700 print "F-Ratio is: ";F
  74. 710 print "Filter Factor is: ";f1
  75. 720 print
  76. 730 rem apply filter factor:
  77. 740 let a=a/f1
  78. 750 rem Main Loop
  79. 760 read n$
  80. 770 if n$="END" then 1060
  81. 780 print n$;
  82. 790 read b
  83. 800 rem exposure formula
  84. 810 let t=(f*f)/(a*b)
  85. 820 REM reciprocity correction
  86. 830 let t=(t+1)^(1/p(c))-1
  87. 840 rem Warn if estimated exposure is over 5 minutes
  88. 850 if t<300 then 890
  89. 860 Print "Over 5 minutes."
  90. 870 goto 750
  91. 880 rem if over 1.4 seconds then round and print it.
  92. 890 if t<1.4 then 930
  93. 900 print int (t+.5);" seconds."
  94. 910 goto 750
  95. 920 REM If under 1/2000 second then give a warning.
  96. 930 if t> 0.0005 then 960
  97. 940 Print "Under 1/2000 of a second."
  98. 950 goto 750
  99. 960 rem Find nearest standard shutter speed.
  100. 970 rem (on a logarithmic scale)
  101. 980 let l=log(t)
  102. 990 let s7=1
  103. 1000 for s9=2 to 12
  104. 1010 if abs(s(s9)-l)>abs(s(s7)-l) then 1030
  105. 1020 let s7=s9
  106. 1030 next s9
  107. 1040 print s$(s7);" second."
  108. 1050 goto 750
  109. 1060 rem termination:
  110. 1070 print
  111. 1080 print "Do you wish to run this program again? (Y/N)"
  112. 1090 input r$
  113. 1100 if r$="Y" then 1160
  114. 1110 if r$="y" then 1160
  115. 1140 end
  116. 1150 goto 1190
  117. 1160 cls
  118. 1170 restore
  119. 1180 goto 60
  120. 1190 end
  121.  
  122.  
  123.  
  124.  
  125.