home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 174
/
174.d81
/
farsighted
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
5KB
|
168 lines
5 poke55,.:poke56,56:clr
10 dv=peek(186):ifdv<8thendv=8
15 poke53280,.:poke53281,.:print"[147]"
16 poke53371,0
20 ad=49152
22 sysad:sysad+12
25 poke53272,29
30 gosub400
40 poke53272,31:sysad+9,12
45 bx$="_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_[157]_"
50 print"[147][150]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
55 printbx$;""tab(38)bx$
60 print"[150]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
80 print"":printtab(6)"[150] [198] [193] [210] [211] [201] [199] [200] [212] [206] [197] [211] [211] "
85 printtab(7)"[153] [211][213][206]-[205][207][207][206] [211][197][212][213][208] "
90 printtab(2)"[156][205]oon [208]hase [159]([198]=0,[209]ts=90,[206]=180):";:l9%=3:gosub1355:am=q9
100 printtab(2)"[156][205]oon from [218]enith [159]([219]'s): ";:l9%=3:gosub1355:zm=q9
110 printtab(2)"[156][205]oon's [193]ngular distance [159]([219]'s)";:l9%=3:gosub1355:rm=q9
120 printtab(2)"[156][211]un from [218]enith [159]([219]'s): ";:l9%=3:gosub1355:zs=q9
130 printtab(2)"[156][211]un's angular distance [159]([219]'s): ";:gosub1355:rs=q9
140 printtab(7)"[153] [211][201][212][197] [197][206][214][201][210][207][206][205][197][206][212] "
150 printtab(2)"[156][210]elative [200]umidity: ";:l9%=6:gosub1355:rh=q9
160 printtab(2)"[156][212]emperature in [198]ahrenheit: ";:l9%=3:gosub1355:fh=q9
165 te=(fh-32)*5/9
170 printtab(2)"[156][217]our [204]atitude: ";:l9%=6:gosub1355:la=q9
180 printtab(2)"[156][193]ltitude in feet: ";:l9%=5:gosub1355:al=q9
185 al=al/3.3
188 printtab(7)"[153] [196][193][212][197] "
190 printtab(2)"[156][212]he [205]onth- [159](1-12):";:l9%=2:gosub1355:m=q9
200 printtab(2)"[156][212]he [217]ear: ";:l9%=4:gosub1355:y=q9
210 sn=1:rem snellen ratio (20/20=1, good 20/10=2
215 printtab(7)"[153] [207][194][202][197][195][212]'[211] [204][207][195][193][212][201][207][206] "
220 printtab(2)"[156][218]enith distance [159]([219]'s):";:l9%=4:gosub1355:z=q9
222 poke214,20:print:printtab(9)"[158][201]s this correct? [154][217][150]/[154][206]":poke198,0
223 geta$:ifa$<>"y"anda$<>"n"then223
225 ifa$="n"then40
229 print"[147]":sysad+9,14
230 print"[159]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
232 printbx$:print""tab(38)bx$
235 print"[159]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
248 gosub1000:rem extinction
249 gosub2000:rem sky
250 sysad+9,14:rem visual limiting magnitude
260 bl=b(3)/1.11e-15:rem in nanolamberts
270 ifbl>1500then300
280 c1=10^-9.8:c2=10^-1.9
290 goto310
300 c1=10^-8.350001:c2=10^-5.9
310 th=c1*((1+sqr(c2*bl))^2):rem in foot-candles
320 mn=-16.57-2.5*(log(th)/log(10))-dm(3)+5*(log(sn)/log(10))
340 print:printtab(2)"[150]-[153][211]ky [194]rightness ([155]n[204][153])[158]:";bl
350 printtab(2)"[150]-[153][204]imiting [205]agnitude[158]:";mn
360 gosub13000
365 restore:print"[147]":goto30
400 fori=1to5:readwa(i):nexti
410 data.365,.44,.55,.7,.9
420 fori=1to5:readmo(o):nexti
425 data-10.93,-10.45,-11.05,-11.9,-12.7
430 rd=(NULL)/180
435 return
1000 rem extinction subroutine
1010 fori=1to5:readoz(i):nexti
1020 data0,0,.031,.008,0
1030 fori=1to5:readwt(i):nexti
1040 data.074,.045,.031,.02,.015
1050 lt=la*rd
1060 ra=(m-3)*30*rd
1070 sl=la/abs(la)
1080 rem airmass for each component
1090 zz=z*rd
1100 xg=1/(cos(zz)+.0286*exp(-10.5*cos(zz)))
1110 xa=1/(cos(zz)+.0123*exp(-24.5*cos(zz)))
1120 xo=1/sqr(1-(sin(zz)/(1+(20/6378)))^2)
1130 rem ubvri extinction for each component
1140 fori=1to5
1150 kr=.1066*exp(-1*al/8200)*((wa(i)/.55)^-4)
1160 ka=.1*((wa(i)/.55)^-1.3)*exp(-1*al/1500)
1170 ka=ka*((1-.32/log(rh/100))^1.33)*(1+sl*sin(ra))
1180 ko=oz(i)*(3+.4*(lt*cos(ra)-cos(3*lt)))/3
1190 kw=wt(i)*.94*(rh/100)*exp(te/15)*exp(-1*al/8200)
1200 k(i)=kr+ka+ko+kw
1210 dm(i)=kr*xg+ka*xa+ko*xo+kw*xg
1220 nexti
1230 rem write results and return
1240 print"":printtab(2)"[153] [193][201][210][205][193][211][211] [146][159]-[199]as- [158]-[193]erosol- [154]-[207]zone-:"
1250 printtab(1)"[159]"xg,"[158]"xa
1255 printtab(1)"[154]"xo
1260 printtab(2)"[153] [197]xtinction [195]oefficients [146] [154][213]-[159][194]-[214]-[150][210]-[129][201]:"
1270 printtab(1)"[154]"k(1),"[159]"k(2)
1273 printtab(1)""k(3),"[150]"k(4)
1275 printtab(1)"[129]"k(5)
1280 printtab(2)"[153] [212]otal [197]xtinction [146] [154][213]-[159][194]-[214]-[150][210]-[129][201]:"
1290 printtab(1)"[154]"dm(1),"[159]"dm(2)
1292 printtab(1)""dm(3),"[150]"dm(4)
1294 printtab(1)"[129]"dm(5)
1295 sysad+9,4
1300 return
1355 q9$="":poke198,.
1360 geta$
1365 poke646,rnd(1)*15+1:print"*[157]";:ifa$=""then1360
1370 ifa$=chr$(13)thenprint" ":q9=val(q9$):return
1375 if(a$=chr$(20)andlen(q9$))thenq9$=left$(q9$,len(q9$)-1):goto1397
1380 iflen(q9$)>=l9%thensysad+9,6:goto1360
1385 if(a$>="0"anda$<="9")ora$="."ora$="-"then1390
1387 goto1360
1390 q9$=q9$+a$
1395 print"[158]"a$;:sysad+9,13:goto1360
1397 print" [157][157] [157]";:goto1360
2000 rem sky routine
2010 fori=1to5:readbo(i):nexti
2020 data8e-14,7e-14,1e-13,1e-13,3e-13
2030 fori=1to5:readcm(i):nexti
2040 data1.36,.91,0,-.76,-1.17
2050 fori=1to5:readms(i):nexti
2060 data-25.96,-26.09,-26.74,-27.26,-27.55
2070 x=1/(cos(zz)+.025*exp(-11*cos(zz))):rem air mass
2080 xm=1/(cos(zm*rd)+.025*exp(-11*cos(zm*rd))):rem air mass moon
2090 ifzm>90thenxm=40
2100 xs=1/(cos(zs*rd)+.025*exp(-11*cos(zs*rd))):rem air mass sun
2110 ifzs>90thenxs=40
2120 fori=1to5
2130 rem dark night sky brightness
2140 bn=bo(i)*(1+.3*cos(6.283*(y-1992)/11))
2150 bn=bn*(.4+.6/sqr(1-.96*((sin(zz))^2)))
2160 bn=bn*(10^(-.4*k(i)*x))
2170 rem moonlight brightness
2180 mm=-12.73+.026*abs(am)+4e-09*(am^4):rem moon mag in v
2190 mm=mm+cm(i):rem moon mag
2200 c3=10^(-.4*k(i)*xm)
2210 fm=6.2e+07*(rm^-2)+(10^(6.16-rm/40))
2220 fm=fm+(10^5.36)*(1.06+((cos(rm*rd))^2))
2230 bm=10^(-.4*(mm-mo(i)+43.27))
2240 bm=bm*(1-10^(-.4*k(i)*x))
2250 bm=bm*(fm*c3+440000*(1-c3))
2260 rem twight brightness
2270 hs=90-zs:rem height of sun
2280 bt=10^(-.4*(ms(i)-mo(i)+32.5-hs-(z/(360*k(i)))))
2290 bt=bt*(100/rs)*(1-10^(-.4*k(i)))
2300 rem daylight brightness
2310 c4=10^(-.4*k(i)*xs)
2320 fs=6.2e+07*(rs^-2)+(10^(6.15-rs/40))
2330 fs=fs+(10^5.36)*(1.06+((cos(rs*rd))^2))
2340 bd=10^(-.4*(ms(i)-mo(i)+43.27))
2350 bd=bd*(1-10^(-.4*k(i)*x))
2360 bd=bd*(fs*c4+440000*(1-c4))
2370 rem total sky brightness
2380 ifbd>btthen2410
2390 b(i)=bn+bd
2400 goto2420
2410 b(i)=bn+bt
2420 ifzm<90thenb(i)=b(i)+bm
2430 nexti
2440 printtab(2)"[153] [211]ky [194]rightness [146] [154][213]-[159][194]-[214]-[150][210]-[129][201]:"
2450 printtab(1)"[154]"b(1),"[159]"b(2)
2452 printtab(1)""b(3),"[150]"b(4)
2455 printtab(1)"[129]"b(5)
2460 return
10000 d=peek(186):n$="0:farsighted":open15,d,15,"s"+n$:close15:saven$,d:end
13000 poke214,20:print:printtab(8)"(1) [212]ry another one
13010 [153][163]8)"(2) (NULL)o (NULL)(NULL)right$(NULL)val(NULL)(NULL)val (NULL)enu
13020 poke198,0
13030 geta$:ifa$<"1"ora$>"2"then13030
13040 ifa$="1"thenreturn
13050 sysad+15
13060 print"[147][144]load"chr$(34)"b.universe iii"chr$(34)","dv
13070 print"run28"
13080 poke631,13:poke632,13:poke198,2:end