Home » Archimedes archive » Archimedes World » AW-1992-03.adf » AWMar92 » !AWMar92/Goodies/StarGazer/!stargazer/stargazer
!AWMar92/Goodies/StarGazer/!stargazer/stargazer
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1992-03.adf » AWMar92 |
Filename: | !AWMar92/Goodies/StarGazer/!stargazer/stargazer |
Read OK: | ✔ |
File size: | 53B3 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM > Stargazer - wimp version with Sprites 20REM > Version 6.00 - Special release for Archimedes World 13/01/92 30REM > Version 5.40 - Misc minor enhancements 40REM > Version 5.00 - Added planet data 50REM > Version 4.00 - Includes basic compiler code changes 60REM > Version 3.00 - includes auto update algorithm 70REM > Version 2.00 - Constellation plotter added 80ONERROR PROCerror 90LIBRARY"<Star$DIR>.WindMan" 100LIBRARY"<Star$DIR>.SpriteMan" 110 120bx%=0:by%=0:sc%=1146:gd%=20:scs%=2:RAHE=12/PI:SIDE=PI/12 130PROCwimp_init("TASK","StarGazer") 140PROCsprite_init("<Star$DIR>.sprites","sun") 150PROCget_info_box("<Star$Dir>.Templates") 160DIM hw_title% 41:$hw_title%="Horizontal" 170main%=FNnew_window(hw_title%,800,600,gd%*360,gd%*66) 180icstar%=FNiconbar("icon",64,64) 190state%=0 200PROCsetup 210REPEAT 220 REM Standard functionalilty from FNwimp_poll hooks 230 a%=FNwimp_poll(0,pb%) 240 IF a%=0 PROCbackground 250UNTIL FALSE 260END 270 280DEFPROCerror 290 *CLOSE 300 PROCerrorbox(ERR,REPORT$+" at line "+STR$ERL) 310 PROCfinish 320END 330ENDPROC 340 350REM / These functions Tailor responce to wimp_polls to provide stargazer functionality 360 370DEFPROCmenu(msx%,msy%,handle%) 380 CASE handle% OF 390 WHEN main%: PROCnew_menu(wind_menu%,msx%-32,msy%+16) 400 WHEN -2 : PROCnew_menu(icon_menu%,msx%-200,240) 410 ENDCASE 420ENDPROC 430 440DEFPROCmake_menus 450 LOCALm%,i% 460 m%=0 470 REM space for variable menu items 480 DIM const_ptr% 16,star_ptr% 16,long_ptr% 16,lat_ptr% 16,int_ptr% 16,span_ptr% 16 490 lat_menu% =FNtext_menu("Latitude",lat_ptr%,16,"A0-9dmNS") 500 long_menu% =FNtext_menu("Longitude",long_ptr%,16,"A0-9dmEW") 510 const_menu%=FNtext_menu("Const",const_ptr%,16,"Aa-z") 520 star_menu% =FNtext_menu("Star",star_ptr%,16,"Aa-z") 530 int_menu% =FNtext_menu("time step(m)",int_ptr%,16,"A0-9") 540 span_menu% =FNtext_menu("time span(h)",span_ptr%,16,"A0-9") 550 $int_ptr%="6" 560 $span_ptr%="8" 570 580 plan_menu%=FNbas_menu(m%,"Planet",192,8) 590 FORi%=1TO8 600 PROCadd_item(m%,(i%=8),-1,Planet$(i%)) 610 NEXT 620 630 find_menu%=FNbas_menu(m%,"find object",192,5) 640 PROCadd_item(m%,FALSE,-1,"Sun") 650 PROCadd_item(m%,FALSE,-1,"Moon") 660 PROCadd_item(m%,FALSE,plan_menu%,"Planet") 670 PROCadd_item(m%,FALSE,star_menu%,"Star") 680 PROCadd_item(m%,TRUE,const_menu%,"Const") 690 700 obs_menu%=FNbas_menu(m%,"Observer",192,2) 710 PROCadd_item(m%,FALSE,long_menu%,"Longitude") 720 PROCadd_item(m%,TRUE,lat_menu%,"Latitude") 730 740 icon_menu%=FNbas_menu(m%,"Star Menu",192,5) 750 PROCadd_info(m%) 760 PROCadd_item(m%,FALSE,obs_menu%,"new place") 770 PROCadd_item(m%,FALSE,-1,"new time") 780 PROCadd_item(m%,FALSE,-1,"show_sky") 790 PROCadd_item(m%,TRUE,-1,"quit") 800 810 sim_menu%=FNbas_menu(m%,"Simulation",192,2) 820 PROCadd_item(m%,FALSE,int_menu%,"time step") 830 PROCadd_item(m%,TRUE,span_menu%,"time span") 840 850 wind_menu%=FNbas_menu(m%,"Options",192,6) 860 PROCadd_item(m%,FALSE,find_menu%,"find object") 870 PROCadd_item(m%,FALSE,-1,"show consts") 880 PROCadd_item(m%,FALSE,-1,"zoom in") 890 PROCadd_item(m%,FALSE,-1,"zoom out") 900 PROCadd_item(m%,TRUE,sim_menu%,"simulate") 910 const_draw%=FALSE 920ENDPROC 930 940DEFPROCaction(msx%,msy%,handle%) 950 CASE handle% OF 960 WHEN main% : PROCunque(msx%,msy%) 970 WHEN -2 : PROCactivate 980 ENDCASE 990ENDPROC 1000 1010DEFPROCadjust(msx%,msy%,handle%) 1020 CASE handle% OF 1030 WHEN main% : PROCunque(msx%,msy%) 1040 WHEN -2 : PROCactivate 1050 ENDCASE 1060ENDPROC 1070 1080DEFFNhelp(q%) 1090LOCALm$ 1100 CASE TRUE OF 1110 WHEN q%!32=-2 AND q%!36=icstar%:m$="This is the Stargazer icon.|MClick on here to display stars" 1120 WHEN q%!32=main%:m$="This is the horizontal star display window|MClick on here to idenfify stars" 1130 OTHERWISE :m$="" 1140 ENDCASE 1150=m$ 1160 1170 1180DEFPROCbackground 1190 CASE state% OF 1200 WHEN 0 : PROCget_stars 1210 PROCinfobox("Star Data "+copyright$,"Last data update "+update$) 1220 PROCscansky 1230 state%=4 1240 WHEN 1 : IF open% PROCredraw_window(main%) 1250 PROCsettime 1260 PROCcalc_earth_pos 1270 state%=2 1280 obj%=1 1290 WHEN 2 : IF FNten_stars(obj%) state%=3 1300 WHEN 3 : PROCcalc_our_galaxy 1310 state%=4 1320 WHEN 4 : IF FNlook_next state%=1 1330 WHEN 5 : PROCscan 1340 ENDCASE 1350ENDPROC 1360 1370DEFPROCfastscan:LOCALendmin%,endhour% 1380LOCALstep%,end%,i% 1390step%=VAL(FNsget(int_ptr%)) 1400end%=VAL(FNsget(span_ptr%)) 1410 IFstep%=0 OR end%=0 THEN 1420 PROCerrorbox(240,"Bad time parameters") 1430 ELSE 1440 num_periods%=60*end%/step% 1450 obj%=0 1460 state%=5 1470 ENDIF 1480ENDPROC 1490 1500DEFPROCscan 1510 obj%+=1 1520 IFobj%<num_periods% ANDopen% THEN 1530 PROCinctime(step%) 1540 PROCscansky 1550 PROCredraw_window(main%) 1560 ELSE 1570 state%=1 1580 ENDIF 1590ENDPROC 1600 1610DEFPROCactivate 1620 PROCpopup(main%,0,1023) 1630ENDPROC 1640 1650 1660DEFPROCmenuselect(m%,menu%) 1670 CASE menu% OF 1680 WHEN wind_menu% :PROCwindm(m%) 1690 WHEN icon_menu% :PROCiconm(m%) 1700 ENDCASE 1710ENDPROC 1720 1730DEFPROCwindm(m%) 1740 CASE !m% OF 1750 WHEN0 : PROCfind_obj(m%+4) 1760 WHEN1 : PROCshow_const(const_draw% EOR TRUE):PROCredraw_window(main%) 1770 WHEN2 : PROCzoom(1) 1780 WHEN3 : PROCzoom(-1) 1790 WHEN4 : PROCfastscan 1800 ENDCASE 1810ENDPROC 1820 1830 1840DEFPROCiconm(m%) 1850 CASE !m% OF 1860 WHEN1 : PROCnew_place 1870 WHEN2 : PROCsettime:PROCscansky:PROCredraw_window(main%):state%=4 1880 WHEN3 : PROCpopup(main%,bx%,by%) 1890 WHEN4 : PROCfinish:END 1900 ENDCASE 1910ENDPROC 1920 1930DEFPROCfind_obj(m%) 1940 CASE !m% OF 1950 WHEN0 : PROCget_obj(9,Xs%,Ys%,"Sun") 1960 WHEN1 : PROCget_obj(10,Xm%,Ym%,"Moon") 1970 WHEN2 : p%=1+(m%!4):PROCget_obj(p%,Xp%(p%),Yp%(p%),Planet$(p%)) 1980 WHEN3 : PROCdec_star 1990 WHEN4 : PROCdec_const 2000 ENDCASE 2010ENDPROC 2020 2030DEFPROCshow_const(v%) 2040 const_draw%=v% 2050 IFconst_draw% PROCtick_item(wind_menu%,1) ELSEPROCuntick_item(wind_menu%,1) 2060ENDPROC 2070 2080DEFPROCdec_star 2090LOCALi%,s$ 2100 ?star_ptr%-=32 2110 s$=FNsget(star_ptr%) 2120 i%=0 2130 REPEAT 2140 i%+=1 2150 UNTIL i%=Named_stars% OR Star$(i%)=s$ 2160 IFStar$(i%)=s$ THEN 2170 i%=star%(i%) 2180 PROCget_obj(i%+10,X%(i%),Y%(i%),s$) 2190 ELSE 2200 PROCerrorbox(240,"No star named "+s$+" Known") 2210 ENDIF 2220 $star_ptr%="" 2230ENDPROC 2240 2250DEFPROCdec_const 2260LOCALi%,s%,f%,s$ 2270 PROCshow_const(TRUE) 2280 ?const_ptr%-=32 2290 s$=FNsget(const_ptr%) 2300 i%=0 2310 REPEAT 2320 i%+=1 2330 UNTIL i%=num_const OR CN$(i%)=s$ 2340 IFCN$(i%)=s$ THEN 2350 s%=const%(i%) 2360 f%=const%(i%+1) 2370 REPEAT:s%+=1:UNTILY%(s%)>0 ORs%=f% 2380 PROCget_obj(s%+10,X%(s%),Y%(s%),s$) 2390 ELSE 2400 PROCerrorbox(240,"No Constelation named "+s$+" Known") 2410 ENDIF 2420 $const_ptr%="" 2430ENDPROC 2440 2450DEFPROCget_obj(i%,x%,y%,n$) 2460 CASE TRUE OF 2470 WHEN (y%<0) :PROCinfobox(n$,"Object is below the Horizon") 2480 WHEN (y%>gd%*66) :PROCvert_object(i%,x%,y%,n$) 2490 OTHERWISE :PROChoriz_object(i%,x%,y%,n$) 2500 ENDCASE 2510ENDPROC 2520 2530DEFPROCvert_object(i%,x%,y%,n$) 2540 PROCinfobox(n$,"Object is above 66 degrees") 2550ENDPROC 2560 2570DEFPROChoriz_object(i%,x%,y%,n$) 2580 PROCscroll_wind(main%,x%,y%,360*gd%,gd%*66) 2590 MOUSE TO bx%+x%,by%+y% 2600ENDPROC 2610 2620DEFPROCnew_place 2630 Long=FNget_angle(long_ptr%,"EW",Viewer_Rah*15,"Longitude") 2640 Lat=FNget_angle(lat_ptr%,"NS",DEG(Viewer_Lat),"Latitude") 2650 PROCsetpos(Lat,Long) 2660 PROCcalc_earth_pos 2670 PROCscansky 2680 PROCredraw_window(main%) 2690ENDPROC 2700 2710DEFFNget_angle(a%,d$,def,e$) 2720LOCALd%,m%,s%,s$ 2730 s$=FNsget(a%) 2740 CASE RIGHT$(s$,1) OF 2750 WHEN LEFT$(d$,1) :s%=1 2760 WHEN RIGHT$(d$,1):s%=-1 2770 OTHERWISE :s%=0 2780 ENDCASE 2790 d%=INSTR(s$,"d") 2800 m%=INSTR(s$,"m") 2810 IFs%=0 ORINSTR(s$,"d",d%+1)>0 ORd%<2 OR(m%>0 AND(m%<d%+2 ORm%<LEN(s$)-1)) OR(m%=0 ANDd%<LEN(s$)-1) THEN 2820 PROCerrorbox(240,e$+" "+s$+" ill formatted"+STR$(d%)+STR$(m%)+STR$(LEN(s$))) 2830 ELSE 2840 def=s%*(VAL(LEFT$(s$,d%-1))+VAL(MID$(s$,d%+1,m%-d%-1))/60) 2850 ENDIF 2860=def 2870 2880DEFPROCzoom(s%) 2890 sc%=sc%*(2^s%) 2900 gd%=gd%*(2^s%) 2910 scs%-=s% 2920 PROCresize_window(main%,360*gd%,gd%*66) 2930 PROCscansky 2940 IFscs%<=0 PROCshade_item(wind_menu%,2) ELSEPROCenable_item(wind_menu%,2) 2950 IFscs%>=4 PROCshade_item(wind_menu%,3) ELSEPROCenable_item(wind_menu%,3) 2960 state%=1 2970ENDPROC 2980 2990 3000 3010DEFPROCredraw_window(handle%) 3020LOCALmore% 3030 $hw_title%="Horizontal View at "+FNstring_time 3040 IF handle%=main% THEN 3050 more% = FNget_window(main%,x0%,x1%,y0%,y1%) 3060 WHILE more% 3070 PROCupdate_window(x0%,x1%,y0%,y1%) 3080 more%=FNget_rectangle(main%,x0%,x1%,y0%,y1%) 3090 ENDWHILE 3100 ENDIF 3110ENDPROC 3120 3130 3140REM / Window redrawing routines / 3150REM / Version 5.2 - Optimised for speed on basic/compiled basic 3160 3170DEFPROCupdate_window(x0%,x1%,y0%,y1%) 3180LOCALi%,f%,a%,b%,t% 3190REM #register a% 3200REM #register b% 3210REM #register i% 3220REM #register t% 3230 x0%-=16 3240 x1%+=16 3250 y0%-=16 3260 y1%+=16 3270 PROChoriz_window 3280 3290 IFconst_draw% THEN 3300 SYS Col%,15 3310 f%=gd%*90 3320 FORi%=1TOmax_line% 3330 a%=ls%(i%) 3340 b%=lf%(i%) 3350 IFABS(X%(a%)-X%(b%))<f% MOVEX%(a%)+bx%,Y%(a%)+by%:PLOT&15,X%(b%)+bx%,Y%(b%)+by% 3360 NEXT 3370 ENDIF 3380 3390 FORi%=1TO sds% 3400 IFX%(i%)>x0% AND X%(i%)<x1% THEN 3410 IF Y%(i%)>y0% ANDY%(i%)<y1% THEN 3420 t%=Mag(i%)+scs%:IFt%<0 t%=0 3430 IFt%<9 SYSspop%,&234,sprites%,sm%(t%),X%(i%)-o%(t%)+bx%,Y%(i%)-o%(t%)+by%,8,factors%,pixtrans% 3440 ENDIF 3450 ENDIF 3460 NEXT 3470 3480 x0%-=20:x1%+=20:y0%-=20:y1%+=20 3490 FORi%=1TO8 3500 PROCscale_plot(Xp%(i%),Yp%(i%),Planet$(i%)) 3510 NEXT 3520 PROCscale_plot(Xm%,Ym%,"moon"+moon_phase$) 3530 PROCscale_plot(Xs%,Ys%,"sun") 3540ENDPROC 3550 3560DEFPROCscale_plot(x%,y%,s$) 3570 IFx%>x0% ANDx%<x1% ANDy%>y0% ANDy%<y1% SYS spop%,&134,sprites%,s$,x%+bx%,y%+by%,8,factors%,pixtrans% 3580ENDPROC 3590 3600 3610DEFPROChoriz_window 3620LOCALi%,t%,v%,c% 3630 VDU23,6,1,1,1,1,1,1,1,1 3640 v%=by%+gd%*72 3650 c%=gd%*45 3660 SYS Col%,14 3670 FORi%=1TO8 3680 MOVEbx%-8*LENCP$(i%)+c%*(i%),by%+32 3690 PRINTCP$(i%) 3700 t%=bx%+c%*i% 3710 MOVEt%,by% 3720 PLOT&15,t%,v% 3730 REPEAT 3740 t%-=450 3750 MOVEt%,by% 3760 PLOT&15,t%,v% 3770 UNTILt%<=bx%+c%*(i%-1)+450 3780 NEXT 3790 t%=bx%+gd%*360 3800 FORi%=0 TO 60 STEP 400/gd% 3810 v%=by%+gd%*i% 3820 MOVEbx%,v%+32 3830 PRINT;i% 3840 MOVEbx%,v% 3850 PLOT&15,t%,v% 3860 NEXT 3870ENDPROC 3880 3890REM / Routines for calculating star positions / 3900 3910 3920DEFPROCscansky:LOCALi%,T1,alt,azm 3930 PROChourglass_on 3940 PROCcalc_earth_pos 3950 FORi%=1TO sds% 3960 PROCcalc_pos(Rah(i%),Dec(i%),alt,azm) 3970 Y%(i%)=sc%*alt 3980 X%(i%)=sc%*azm 3990 NEXT 4000 PROCcalc_our_galaxy 4010 PROChourglass_off 4020ENDPROC 4030 4040 4050DEFFNten_stars(RETURN i%) 4060LOCALn%,T1, alt, azm 4070 n%=0 4080 REPEAT 4090 PROCcalc_pos(Rah(i%),Dec(i%),alt,azm) 4100 Y%(i%)=sc%*alt 4110 X%(i%)=sc%*azm 4120 i%+=1 4130 n%+=1 4140 UNTIL i%=sds% OR n%=10 4150=(i%=sds%) 4160 4170DEFPROCcalc_our_galaxy:LOCALi%,T1, alt, azm 4180 FORi%=1TO8 4190 PROCplanet(i%,alt,azm) 4200 Yp%(i%)=sc%*alt 4210 Xp%(i%)=sc%*azm 4220 NEXT 4230 PROCmoon(alt,azm) 4240 Ym%=sc%*alt 4250 Xm%=sc%*azm 4260 PROCsun(alt,azm) 4270 Ys%=sc%*alt 4280 Xs%=sc%*azm 4290ENDPROC 4300 4310 4320REM / Object descriptions / 4330 4340DEFPROCunque(X%,Y%) 4350LOCALf%,i%,r%,nr% 4360 r%=4096 4370 f%=0 4380 FORi%=1TO8 4390 nr%=((X%-Xp%(i%))^2 +(Y%-Yp%(i%))^2) 4400 IF nr%<r% THEN f%=i%:r%=nr% 4410 NEXT 4420 IFf% THEN 4430 PROCinfobox("Info on Planet "+Planet$(f%),FNplanet_data(f%)) 4440 ELSE 4450 i%=0 4460 f%=0 4470 REPEAT 4480 i%+=1 4490 nr%=((X%-X%(i%))^2 +(Y%-Y%(i%))^2) 4500 IF nr%<r% THEN f%=i%:r%=nr% 4510 UNTILr%<16 ORi%=sds% 4520 IFf% THEN 4530 LOCAL alt, azm, dat$ 4540 PROCcalc_pos(Rah(f%),Dec(f%),alt,azm) 4550 dat$=FNpos_string(alt,azm) 4560 @%=&1020208 4570 dat$+=" Magnitude="+STR$(Mag(f%))+"(var?)(double?) "+FNorbit_data(f%) 4580 @%=10 4590 PROCinfobox("Info on "+FNname(group%(f%))+" "+FNconstname(f%)+FNstarname(f%),dat$) 4600 ENDIF 4610 ENDIF 4620ENDPROC 4630 4640 4650DEFFNplanet_data(p%) 4660 LOCAL alt,azm,S$ 4670 alt=0:azm=0 4680 PROCplanet(p%,alt,azm) 4690 S$=FNpos_string(alt,azm) 4700=S$ 4710 4720DEFFNpos_string(alt,azm) 4730LOCALd$ 4740 IFazm>PI THEN 4750 d$="W" 4760 azm=2*PI-azm 4770 ELSE 4780 d$="E" 4790 ENDIF 4800=" Azimuth="+FNdang(azm)+d$+" Alt="+FNdang(alt) 4810 4820DEFFNdang(a) 4830 LOCALa% 4840 a=DEG(a) 4850 a%=a 4860 @%=10 4870=STR$(a%)+"�"+STR$(INT(60*(a-a%)))+"'" 4880 4890DEFFNname(p%) 4900 IFp%<=32 THEN=CEN$(p%) 4910LOCALt$ 4920 t$=$p% 4930 IFLEFT$(t$)="'" THEN=MID$(t$,2,1) 4940=t$ 4950 4960DEFFNorbit_data(s%) 4970LOCALc,tt,tr,hah,st,d$ 4980 c=PI/2-ABS(Viewer_Lat-Dec(s%)) 4990 st=hour+min/60-stardate+Rah(s%) 5000 d$="Culminates "+FNdec_time(st)+" at "+FNdang(c) 5010 IFc<0 THEN 5020 d$+=" -Never rises- " 5030 ELSE 5040 tt=-TAN(Dec(s%))*Vls/Vlc 5050 IFABS(tt)>=1 THEN 5060 d$+=" -Never sets- " 5070 ELSE 5080 hah=12*ACS(tt)/PI 5090 d$+=" Rises "+FNdec_time(st-hah)+", Sets "+FNdec_time(st+hah) 5100 ENDIF 5110 ENDIF 5120=d$ 5130 5140DEFFNstarname(n%) 5150LOCALi% 5160 i%=0 5170 REPEAT 5180 i%+=1 5190 UNTILi%=Named_stars% OR star%(i%)=n% 5200 IFstar%(i%)=n% THEN=" - "+Star$(i%) 5210="" 5220 5230DEFFNconstname(n%) 5240LOCALi% 5250 i%=0 5260 REPEAT 5270 i%+=1 5280 UNTILconst%(i%)>=n% ORi%=num_const 5290=CN$(i%+(i%<num_const)) 5300 5310 5320REM / Initialisation Routines / 5330 5340 5350DEFPROCsetup 5360LOCALi% 5370 DIM CP$(8) 5380 RESTORE+0 5390 DATA "N", "NE", "E", "SE", "S", "SW", "W", "NW" 5400 FORi%=0 TO7 5410 READ CP$(i%) 5420 NEXT 5430 DIMsm%(8),o%(8) 5440 RESTORE+0 5450 DATA8,6,6,4,4,4,2,0,0 5460 FORi%=0TO8 5470 READo%(i%) 5480 SYS &2e,&118,sprites%,"mag"+STR$(i%-2) TO,,sm%(i%) 5490 NEXT 5500 PROCget_planets 5510 PROCmake_menus 5520 PROCread_const_parts 5530 mon$=" JanFebMarAprMayJunJulAugSepOctNovDec" 5540 PROCsettime 5550 PROCsetpos(52,0):REM Cambridge 5560ENDPROC 5570 5580DEFPROCget_planets 5590LOCAL P, i% 5600 DIM Pdat(8,10), Planet$(8) 5610 RESTORE+0 5620 DATA "Earth" , 1 , 0.016664, 0.00366, 53.1919 ,287.67672, 174.48174 5630 DATA "Mercury", 0.387098, 0.205638, 7.00219, 226.30777, 29.01747, 47.70447 5640 DATA "Venus" , 0.723332, 0.006817, 3.39389, 1.4518 , 54.69863, 76.15263 5650 DATA "Mars" , 1.523673, 0.09327 , 1.84778, 326.72296,286.13461, 49.0962 5660 DATA "Jupiter", 5.20167 , 0.04799 , 1.3065 , 46.8294 ,273.6191 , 99.9806 5670 DATA "Saturn" , 9.57157 , 0.05762 , 2.4887 , 36.8602 ,339.7222 , 113.1709 5680 DATA "Uranus" ,19.13902 , 0.04633 , 0.7711 , 47.433 , 93.2332 , 73.8595 5690 DATA "Neptune",29.93503 , 0.01277 , 1.7739 , 204.3292 ,278.6735 , 131.2755 5700 DATA "Pluto" ,39.36753 , 0.24629 ,17.1389 , 341.722 ,113.6122 , 109.5233 5710 FORi%=0TO8 5720 READPlanet$(i%) 5730 READ P:REM Param 1 5740 Pdat(i%, 0)=0.0172024 * SQR(P^3) 5750 Pdat(i%, 1)=P 5760 READ P:REM Param 2 5770 Pdat(i%, 2)=P 5780 Pdat(i%, 3)=Pdat(i%,1)*SQR(1-P*P) 5790 READ P:REM Param 3 5800 Pdat(i%, 4)=COSRAD(P) 5810 Pdat(i%, 5)=SINRAD(P) 5820 READ P:REM Param 4 5830 Pdat(i%, 6)=RAD(P) 5840 READ P:REM Param 5 5850 Pdat(i%, 7)=COSRAD(P) 5860 Pdat(i%, 8)=SINRAD(P) 5870 READ P:REM Param 6 5880 Pdat(i%, 9)=COSRAD(P) 5890 Pdat(i%,10)=SINRAD(P) 5900 NEXT 5910 Earth_X=0 5920 Earth_Y=0 5930 Earth_Z=0 5940ENDPROC 5950 5960 5970DEFPROCread_const_parts 5980LOCALi% 5990 DIM CEN$(24) 6000 RESTORE+0 6010 DATA Object in,Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa 6020 DATA Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi 6030 DATA Psi,Omega 6040 DATA "abgdezh0iklmnxoprstvqfcw" 6050 FORi%=0TO24 6060 READCEN$(i%) 6070 NEXT 6080 READ Clookup$ 6090ENDPROC 6100 6110DEFPROCget_stars 6120REM Version 5.2 - optimised for loading speed 6130LOCALD,f%,s%,i%,l%,p%,a%,b%,cn%,t$ 6140 PROChourglass_on 6150 f%=OPENIN("<Star$Dir>.Star_map") 6160 IFf%=0 PROCbadfile("Star_Map not Found") 6170 copyright$=FNreadstr(f%) 6180 t$=FNreadstr(f%) 6190 IF FNleftpar(t$,"=")<>"Update" PROCbadfile("No update") 6200 update$=FNrightpar(t$,"=") 6210 num_const=88 6220 DIM CN$(88),const%(88),Star$(404),star%(404),ls%(1000),lf%(1000) 6230 6240 sds%=VAL(FNrightpar(FNreadstr(f%),"=")) 6250 str_len%=2000 6260 DIM Rah(sds%), Dec(sds%), group%(sds%), Mag(sds%),str_space% str_len% 6270 str_len%+=str_space%-2 6280 DIM Xp%(8), Yp%(8), X%(sds%), Y%(sds%) 6290 Named_stars%=0 6300 6310 IFFNreadstr(f%)<>"Stardata" PROCbadfile("Bad Header") 6320 p%=BGET#f%:REM lf 6330 s%=0 6340 max_line%=0 6350 str_ptr%=str_space% 6360 FORcn%=1 TO 88 6370 t$=FNreadstr(f%) 6380 IF VAL(FNrightpar(t$,"="))<>cn% PROCbadfile("Const ["+t$+"] out of step, should be "+STR$(cn%)) 6390 CN$(cn%)=FNleftpar(t$,"=") 6400 const%(cn%)=s% 6410 6420 REM get lines 6430 p%=BGET#f% 6440 WHILEp%<>10 AND p%<>ASC";" 6450 t%=BGET#f% 6460 IFt%=ASC"-" a%=(p%-48) ELSEa%=(p%-48)*10 + t%-48:t%=BGET#f% 6470 t%=BGET#f% 6480 p%=BGET#f% 6490 IFp%>47 ANDp%<58 b%=(t%-48)*10 + p%-48:p%=BGET#f% ELSEb%=(t%-48) 6500 max_line%+=1 6510 ls%(max_line%)=a%+s% 6520 lf%(max_line%)=b%+s% 6530 IFp%<>10 ANDp%<>ASC"," ANDp%<>ASC";" PROCbadfile("overrun on const "+STR$(cn%)+"'"+STR$(max_line%)) 6540 IFp%=ASC"," p%=BGET#f% 6550 ENDWHILE 6560 WHILEp%<>10:p%=BGET#f%:ENDWHILE:REM skip to end of line 6570 6580 p%=BGET#f% 6590 WHILEp%<>10 6600 s%+=1 6610 IFs%>sds% PROCbadfile("Too many stars "+STR$(s%)+"/"+STR$(sds%)) 6620 group%(s%)=INSTR(Clookup$,CHR$(p%)) 6630 IFgroup%(s%)=0 THEN 6640 group%(s%)=str_ptr% 6650 REPEAT 6660 IF str_ptr%>=str_len% PROCbadfile("Run out of string space") 6670 ?str_ptr%=p% 6680 str_ptr%+=1 6690 p%=BGET#f% 6700 UNTILp%=32 ORp%=ASC"@" 6710 ?str_ptr%=13 6720 str_ptr%+=1 6730 ENDIF 6740 WHILEp%<>ASC"@":p%=BGET#f%:ENDWHILE 6750 6760 a%=BGET#f% 6770 b%=BGET#f% 6780 t% = a%*36000+b%*3600 6790 a%=BGET#f% 6800 IFa%<>ASC"h" PROCbadfile("h expected") 6810 a%=BGET#f% 6820 b%=BGET#f% 6830 t%+= a%*600+b%*60 6840 a%=BGET#f% 6850 IFa%<>ASC"m" PROCbadfile("m expected") 6860 a%=BGET#f% 6870 b%=BGET#f% 6880 t%+=a%*10+b%-1933008 6890 Rah(s%)=t%/3600 6900 a%=BGET#f% 6910 IFa%<>ASC"s" PROCbadfile("s expected ") 6920 a%=BGET#f% 6930 IFa%<>ASC"," PROCbadfile(", expected") 6940 p%=BGET#f%:REM sign 6950 a%=BGET#f% 6960 b%=BGET#f% 6970 t% =a%*36000+b%*3600 6980 a%=BGET#f% 6990 IFa%<>ASC"d" PROCbadfile("d expected") 7000 a%=BGET#f% 7010 b%=BGET#f% 7020 t%+=a%*600+b%*60 7030 a%=BGET#f% 7040 IFa%<>ASC"'" PROCbadfile("' expected") 7050 a%=BGET#f% 7060 b%=BGET#f% 7070 t%+=a%*10+b%-1933008 7080 IFp%=ASC"-" t%=-t% 7090 Dec(s%)=RAD(t%/3600) 7100 a%=BGET#f% 7110 IFa%<>ASC"s" PROCbadfile("s expected") 7120 a%=BGET#f% 7130 IFa%<>ASC"^" PROCbadfile("^ expected") 7140 p%=BGET#f% 7150 IFp%=ASC"-" t%=BGET#f% ELSEt%=p% 7160 a%=BGET#f% 7170 IFa%<>ASC"." PROCbadfile(". expected") 7180 a%=BGET#f% 7190 b%=BGET#f% 7200 t%=t%*100+a%*10+b%-5328 7210 IFp%=ASC"-" THENt%=-t% 7220 Mag(s%)=t%/100 7230 IFBGET#f%=ASC"=" THEN 7240 Named_stars%+=1 7250 Star$(Named_stars%)=FNreadstr(f%) 7260 star%(Named_stars%)=s% 7270 ENDIF 7280 p%=BGET#f% 7290 ENDWHILE 7300 NEXT 7310 IFs% < sds% PROCbadfile("Stars accounted for ="+STR$(s%)) 7320 CLOSE#f% 7330 PROChourglass_off 7340ENDPROC 7350 7360DEFFNnext_param(s$,RETURN p%,d$) 7370LOCALn% 7380 n%=INSTR(s$,d$,p%) 7390 IFn%=0 n%=LEN(s$)+1 7400 s$=MID$(s$,p%,n%-p%) 7410 p%=n%+1 7420=s$ 7430 7440DEFFNrightpar(t$,d$) 7450LOCAL p% 7460 p% = INSTR(t$,d$) 7470 IFp%=0 THEN="" 7480=RIGHT$(t$,LEN(t$)-p%) 7490 7500 7510DEFFNleftpar(t$,d$) 7520LOCAL p% 7530 p% = INSTR(t$,d$) 7540 IFp%=0 THEN="" 7550=LEFT$(t$,p%-1) 7560 7570DEFFNreadstr(f%) 7580LOCAL g%,t$ 7590 t$="" 7600 g%=BGET#f% 7610 WHILE g%<>10 7620 REMANDg%<>ASC";" 7630 t$+=CHR$(g%) 7640 g%=BGET#f% 7650 ENDWHILE 7660 WHILEg%<>10:g%=BGET#f%:ENDWHILE 7670=t$ 7680 7690DEFPROCbadfile(t$) 7700 CLOSE#f% 7710 ERROR 257,"Bad star file ("+t$+") at const"+STR$(cn%) 7720ENDPROC 7730 7740REM / Low level starmap calculations / 7750 7760DEFPROCcalc_earth_pos 7770LOCALB%,V%,e 7780 B%=(month-14)/12 7790 V%=367*(month-2-12*B%)/12-3*INT((year+6800+B%)/100)/4 7800 real_time_day=day-2447095.5 +1461*(year+6700+B%)/4 +V% +(hour+min/60)/24 7810 e=RAD(23.452 -0.013*real_time_day/36525) 7820 Earth_Cos=COS(e) 7830 Earth_Sin=SIN(e) 7840 stardate = FNrmod(6.646 + 24*real_time_day/365.25 + hour + min/60, 24)-Viewer_Rah 7850 PROCplan_pos(0,Earth_X,Earth_Y,Earth_Z) 7860ENDPROC 7870 7880 7890DEFPROCsun(RETURN alt,RETURN azm) 7900LOCALT, M 7910 T=real_time_day/36525 7920 M=RAD(358.476+36000*T) 7930 PROCcalc_equiv(RAD(279.697+36000*T)+RAD((1.919-.005*T)*SIN(M)+.02*SIN(2*M)),0,alt,azm) 7940ENDPROC 7950 7960 7970DEFPROCmoon(RETURN alt,RETURN azm) 7980LOCALY, BET, LAM 7990 Y=0.7*SINRAD(341.5+24.3815*real_time_day)+6.3*SINRAD(296.1+13.065*real_time_day) 8000 Y-=1.3*SINRAD(314.6-11.31651*real_time_day) 8010 BET=RAD(5.2*SINRAD(Y+11.2+13.22935*real_time_day)) 8020 Y+=270.4+13.1764*real_time_day+.2*SINRAD(232.2+26.13*real_time_day) 8030 LAM=RAD(Y-.1*SINRAD(22.5+26.4587*real_time_day)-.2*SINRAD(358.5+.9856*real_time_day)) 8040 moon_age%=.082*FNrmod(350.74+445267.14*(real_time_day/36525), 360) 8050 moon_phase$=STR$(1+INT(moon_age%/7.5)) 8060 PROCcalc_equiv(LAM,BET,alt,azm) 8070ENDPROC 8080 8090 8100DEFPROCplan_pos(N%,RETURN x,RETURN y,RETURN z) 8110LOCALm, c, e, n%, xl, yl 8120 m = Pdat(N%, 6)+Pdat(N%, 0)*(real_time_day-28180.5) 8130 c = m + Pdat(N%,2)*SIN(M) 8140 n%=1 8150 REPEAT 8160 e=c+(m + Pdat(N%,2)*SIN(c) - c)/( 1 - Pdat(N%,2)*COS(c) ) 8170 SWAP c, e 8180 n%+=1 8190 UNTILABS(e-c)<1E-6 OR n%>100 8200 x=Pdat(N%,1)*(COS(e)-Pdat(N%, 2)) 8210 y=Pdat(N%,3)*SIN(e) 8220 xl=x*Pdat(N%,7) - y*Pdat(N%,8) 8230 yl=x*Pdat(N%,8) + y*Pdat(N%,7) 8240 x=xl*Pdat(N%,9) - yl*Pdat(N%,10)*Pdat(N%,4) 8250 y=xl*Pdat(N%,10)+ yl*Pdat(N%,9)*Pdat(N%,4) 8260 z=yl*Pdat(N%,5) 8270ENDPROC 8280 8290DEFPROCplanet(N%,RETURN alt,RETURN azm) 8300LOCAL x,y,z 8310x=0:y=0:z=0 8320 PROCplan_pos(N%,x,y,z) 8330 x-=Earth_X 8340 y-=Earth_Y 8350 z-=Earth_Z 8360 PROCcalc_equiv(ATN(y/x)+PI*(3+SGN(x))/2,ASN(z/SQR(x*x+y*y+z*z)),alt,azm) 8370ENDPROC 8380 8390 8400DEFPROCcalc_equiv(LAM,BET,RETURN alt,RETURN azm) 8410LOCALc, s, X 8420 LAM=FNrmod(LAM, 2*PI) 8430 c=COS(BET) 8440 s=SIN(BET) 8450 X=c*SIN(LAM) 8460 PROCcalc_pos(RAHE*FNang(X*Earth_Cos-s*Earth_Sin,c*COS(LAM)),ASN(s*Earth_Cos+X*Earth_Sin),alt,azm) 8470ENDPROC 8480 8490 8500DEFPROCcalc_pos(RAH,DEC, RETURN alt,RETURN azm) 8510LOCAL H, X, s, c 8520 c=-COS(DEC) 8530 s= SIN(DEC) 8540 H=SIDE*(stardate-RAH) 8550 X=c*COS(H) 8560 alt=ASN(s*Vls-X*Vlc) 8570 azm=FNang(c*SIN(H), s*Vlc+X*Vls) 8580ENDPROC 8590 8600DEFPROCsetpos(Lat,Long) 8610 Viewer_Lat=RAD(Lat) 8620 Vlc=COS(Viewer_Lat) 8630 Vls=SIN(Viewer_Lat) 8640 Viewer_Rah=Long/15 8650 $long_ptr%=FNmake_ang(Long,"EW") 8660 $lat_ptr% =FNmake_ang(Lat,"NS") 8670ENDPROC 8680 8690DEFFNmake_ang(a,d$) 8700LOCALd%, m% 8710 d%=ABS(INT(a)) 8720 m%=ABS(INT(a*60))-d%*60 8730=STR$(d%)+"d"+STR$(m%)+"m"+MID$(d$,1-(a<0),1) 8740 8750DEFFNang(Y, X) 8760 IFX=0 THEN=PI*SGN(Y) 8770=PI+ATN(Y/X)+(X>0)*SGN(Y)*PI 8780 8790 8800DEFFNrmod(A, M) 8810 IFA<0 REPEATA+=M:UNTILA>0 ELSEA-=M*INT(A/M) 8820=A 8830 8840DEFFNdec_time(A) 8850LOCALh%,m% 8860 h%=A 8870 m%=60*(A-h%)+0.5 8880 A=FNrmod(A,24) 8890 @%=10 8900=STRING$(2-LENSTR$h%, " ")+STR$h%+":"+STRING$(2-LENSTR$m%,"0")+STR$m% 8910 8920DEFFNlook_next 8930=(FNdecode_time(20)<>min) 8940 8950DEFPROCsettime 8960 min =FNdecode_time(20) 8970 hour =FNdecode_time(17) 8980 day =FNdecode_time(5) 8990 month=FNdecode_month 9000 year =FNdecode_time(14) 9010ENDPROC 9020 9030DEFFNstring_time 9040=STR$(hour)+":"+STR$(min)+" on "+STR$(day)+" "+MID$(mon$,month*3,3)+" "+STR$(year) 9050 9060 9070DEFPROCinctime(s%) 9080 min+=s% 9090 IF min>=60 THEN 9100 hour+=min DIV 60 9110 min=min MOD 60 9120 IF hour>=24 THEN 9130 hour=hour MOD 24 9140 day+=1 9150 ENDIF 9160 ENDIF 9170ENDPROC 9180 9190DEFFNdecode_time(i%) 9200=VALMID$(TIME$, i%, 2) 9210 9220DEFFNdecode_month 9230=INSTR(mon$, MID$(TIME$, 8, 3))/3 9240 9250DEFFNbcd(c%)=(c% AND 15)+10*(c%>>4) 9260 9270DEFPROCload_mess(q%):ENDPROC:REM dummy 9280 9290REM / End of !Stargazer 9300
-� > Stargazer - wimp version with Sprites D� > Version 6.00 - Special release for Archimedes World 13/01/92 .� > Version 5.40 - Misc minor enhancements ((� > Version 5.00 - Added planet data 2;� > Version 4.00 - Includes basic compiler code changes <5� > Version 3.00 - includes auto update algorithm F2� > Version 2.00 - Constellation plotter added P � �error Zț"<Star$DIR>.WindMan" dț"<Star$DIR>.SpriteMan" n x:bx%=0:by%=0:sc%=1146:gd%=20:scs%=2:RAHE=12/�:SIDE=�/12 �"�wimp_init("TASK","StarGazer") �,�sprite_init("<Star$DIR>.sprites","sun") �)�get_info_box("<Star$Dir>.Templates") �*� hw_title% 41:$hw_title%="Horizontal" �7main%=�new_window(hw_title%,800,600,gd%*360,gd%*66) �"icstar%=�iconbar("icon",64,64) �state%=0 � �setup �� �6 � Standard functionalilty from FNwimp_poll hooks � a%=�wimp_poll(0,pb%) � � a%=0 �background �� � � ��error " *CLOSE ,$ �errorbox(�,�$+" at line "+Þ) 6 �finish @� J� T ^X� / These functions Tailor responce to wimp_polls to provide stargazer functionality h r��menu(msx%,msy%,handle%) | Ȏ handle% � �6 � main%: �new_menu(wind_menu%,msx%-32,msy%+16) �3 � -2 : �new_menu(icon_menu%,msx%-200,240) � � �� � ���make_menus � �m%,i% � m%=0 �% � space for variable menu items �T � const_ptr% 16,star_ptr% 16,long_ptr% 16,lat_ptr% 16,int_ptr% 16,span_ptr% 16 �? lat_menu% =�text_menu("Latitude",lat_ptr%,16,"A0-9dmNS") �A long_menu% =�text_menu("Longitude",long_ptr%,16,"A0-9dmEW") �: const_menu%=�text_menu("Const",const_ptr%,16,"Aa-z") 8 star_menu% =�text_menu("Star",star_ptr%,16,"Aa-z") ? int_menu% =�text_menu("time step(m)",int_ptr%,16,"A0-9") @ span_menu% =�text_menu("time span(h)",span_ptr%,16,"A0-9") & $int_ptr%="6" 0 $span_ptr%="8" : D- plan_menu%=�bas_menu(m%,"Planet",192,8) N �i%=1�8 X+ �add_item(m%,(i%=8),-1,Planet$(i%)) b � l v2 find_menu%=�bas_menu(m%,"find object",192,5) � �add_item(m%,�,-1,"Sun") � �add_item(m%,�,-1,"Moon") �) �add_item(m%,�,plan_menu%,"Planet") �' �add_item(m%,�,star_menu%,"Star") �) �add_item(m%,�,const_menu%,"Const") � �. obs_menu%=�bas_menu(m%,"Observer",192,2) �, �add_item(m%,�,long_menu%,"Longitude") �* �add_item(m%,�,lat_menu%,"Latitude") � �0 icon_menu%=�bas_menu(m%,"Star Menu",192,5) � �add_info(m%) �+ �add_item(m%,�,obs_menu%,"new place") # �add_item(m%,�,-1,"new time") # �add_item(m%,�,-1,"show_sky") �add_item(m%,�,-1,"quit") *0 sim_menu%=�bas_menu(m%,"Simulation",192,2) 4+ �add_item(m%,�,int_menu%,"time step") >, �add_item(m%,�,span_menu%,"time span") H R. wind_menu%=�bas_menu(m%,"Options",192,6) \. �add_item(m%,�,find_menu%,"find object") f& �add_item(m%,�,-1,"show consts") p" �add_item(m%,�,-1,"zoom in") z# �add_item(m%,�,-1,"zoom out") �* �add_item(m%,�,sim_menu%,"simulate") � const_draw%=� �� � ���action(msx%,msy%,handle%) � Ȏ handle% � �# � main% : �unque(msx%,msy%) � � -2 : �activate � � �� � ���adjust(msx%,msy%,handle%) � Ȏ handle% � # � main% : �unque(msx%,msy%) � -2 : �activate � $� . 8ݤhelp(q%) B�m$ L Ȏ � � Vc � q%!32=-2 � q%!36=icstar%:m$="This is the Stargazer icon.|MClick on here to display stars" `f � q%!32=main%:m$="This is the horizontal star display window|MClick on here to idenfify stars" j :m$="" t � ~=m$ � � ���background � Ȏ state% � � � 0 : �get_stars �N �infobox("Star Data "+copyright$,"Last data update "+update$) � �scansky � state%=4 �+ � 1 : � open% �redraw_window(main%) � �settime � �calc_earth_pos � state%=2 obj%=1 ) � 2 : � �ten_stars(obj%) state%=3 � 3 : �calc_our_galaxy state%=4 (# � 4 : � �look_next state%=1 2 � 5 : �scan < � F� P Z ��fastscan:�endmin%,endhour% d�step%,end%,i% nstep%=�(�sget(int_ptr%)) xend%=�(�sget(span_ptr%)) � �step%=0 � end%=0 � �, �errorbox(240,"Bad time parameters") � � �" num_periods%=60*end%/step% � obj%=0 � state%=5 � � �� � � ��scan � obj%+=1 �! �obj%<num_periods% �open% � � �inctime(step%) �scansky �redraw_window(main%) � " state%=1 , � 6� @ J��activate T �popup(main%,0,1023) ^� h r |��menuselect(m%,menu%) � Ȏ menu% � � � wind_menu% :�windm(m%) � � icon_menu% :�iconm(m%) � � �� � ���windm(m%) � Ȏ !m% � � �0 : �find_obj(m%+4) �? �1 : �show_const(const_draw% � �):�redraw_window(main%) � �2 : �zoom(1) � �3 : �zoom(-1) � �4 : �fastscan � � & 0��iconm(m%) : Ȏ !m% � D �1 : �new_place N= �2 : �settime:�scansky:�redraw_window(main%):state%=4 X" �3 : �popup(main%,bx%,by%) b �4 : �finish:� l � v� � ���find_obj(m%) � Ȏ !m% � �& �0 : �get_obj(9,Xs%,Ys%,"Sun") �( �1 : �get_obj(10,Xm%,Ym%,"Moon") �A �2 : p%=1+(m%!4):�get_obj(p%,Xp%(p%),Yp%(p%),Planet$(p%)) � �3 : �dec_star � �4 : �dec_const � � �� � ���show_const(v%) � const_draw%=v% G �const_draw% �tick_item(wind_menu%,1) ��untick_item(wind_menu%,1) � ��dec_star * �i%,s$ 4 ?star_ptr%-=32 > s$=�sget(star_ptr%) H i%=0 R � \ i%+=1 f& � i%=Named_stars% � Star$(i%)=s$ p �Star$(i%)=s$ � z i%=star%(i%) �( �get_obj(i%+10,X%(i%),Y%(i%),s$) � � �3 �errorbox(240,"No star named "+s$+" Known") � � � $star_ptr%="" �� � ���dec_const ��i%,s%,f%,s$ � �show_const(�) � ?const_ptr%-=32 � s$=�sget(const_ptr%) � i%=0 � i%+=1 ! � i%=num_const � CN$(i%)=s$ $ �CN$(i%)=s$ � . s%=const%(i%) 8 f%=const%(i%+1) B �:s%+=1:�Y%(s%)>0 �s%=f% L( �get_obj(s%+10,X%(s%),Y%(s%),s$) V � `; �errorbox(240,"No Constelation named "+s$+" Known") j � t $const_ptr%="" ~� � ���get_obj(i%,x%,y%,n$) � Ȏ � � �A � (y%<0) :�infobox(n$,"Object is below the Horizon") �0 � (y%>gd%*66) :�vert_object(i%,x%,y%,n$) �, :�horiz_object(i%,x%,y%,n$) � � �� � ���vert_object(i%,x%,y%,n$) �/ �infobox(n$,"Object is above 66 degrees") �� ��horiz_object(i%,x%,y%,n$) . �scroll_wind(main%,x%,y%,360*gd%,gd%*66) ȗ � bx%+x%,by%+y% (� 2 <��new_place F? Long=�get_angle(long_ptr%,"EW",Viewer_Rah*15,"Longitude") P< Lat=�get_angle(lat_ptr%,"NS",�(Viewer_Lat),"Latitude") Z �setpos(Lat,Long) d �calc_earth_pos n �scansky x �redraw_window(main%) �� � �ݤget_angle(a%,d$,def,e$) ��d%,m%,s%,s$ � s$=�sget(a%) � Ȏ �s$,1) � � � �d$,1) :s%=1 � � �d$,1):s%=-1 � :s%=0 � � � d%=�s$,"d") � m%=�s$,"m") �W �s%=0 ��s$,"d",d%+1)>0 �d%<2 �(m%>0 �(m%<d%+2 �m%<�(s$)-1)) �(m%=0 �d%<�(s$)-1) � F �errorbox(240,e$+" "+s$+" ill formatted"+�(d%)+�(m%)+�(�(s$))) � 5 def=s%*(�(�s$,d%-1))+�(�s$,d%+1,m%-d%-1))/60) " � ,=def 6 @��zoom(s%) J sc%=sc%*(2^s%) T gd%=gd%*(2^s%) ^ scs%-=s% h* �resize_window(main%,360*gd%,gd%*66) r �scansky |D �scs%<=0 �shade_item(wind_menu%,2) ��enable_item(wind_menu%,2) �D �scs%>=4 �shade_item(wind_menu%,3) ��enable_item(wind_menu%,3) � state%=1 �� � � � ���redraw_window(handle%) � �more% �2 $hw_title%="Horizontal View at "+�string_time � � handle%=main% � �2 more% = �get_window(main%,x0%,x1%,y0%,y1%) � ȕ more% �) �update_window(x0%,x1%,y0%,y1%) 5 more%=�get_rectangle(main%,x0%,x1%,y0%,y1%) � � &� 0 : D#� / Window redrawing routines / NA� / Version 5.2 - Optimised for speed on basic/compiled basic X b$��update_window(x0%,x1%,y0%,y1%) l�i%,f%,a%,b%,t% v� #register a% �� #register b% �� #register i% �� #register t% � x0%-=16 � x1%+=16 � y0%-=16 � y1%+=16 � �horiz_window � � �const_draw% � � ș Col%,15 � f%=gd%*90 � �i%=1�max_line% a%=ls%(i%) b%=lf%(i%) P �(X%(a%)-X%(b%))<f% �X%(a%)+bx%,Y%(a%)+by%:�&15,X%(b%)+bx%,Y%(b%)+by% � * � 4 > �i%=1� sds% H" �X%(i%)>x0% � X%(i%)<x1% � R$ � Y%(i%)>y0% �Y%(i%)<y1% � \& t%=Mag(i%)+scs%:�t%<0 t%=0 fh �t%<9 șspop%,&234,sprites%,sm%(t%),X%(i%)-o%(t%)+bx%,Y%(i%)-o%(t%)+by%,8,factors%,pixtrans% p � z � � � � �% x0%-=20:x1%+=20:y0%-=20:y1%+=20 � �i%=1�8 �0 �scale_plot(Xp%(i%),Yp%(i%),Planet$(i%)) � � �- �scale_plot(Xm%,Ym%,"moon"+moon_phase$) � �scale_plot(Xs%,Ys%,"sun") �� � ���scale_plot(x%,y%,s$) �b �x%>x0% �x%<x1% �y%>y0% �y%<y1% ș spop%,&134,sprites%,s$,x%+bx%,y%+by%,8,factors%,pixtrans% �� ��horiz_window $�i%,t%,v%,c% . �23,6,1,1,1,1,1,1,1,1 8 v%=by%+gd%*72 B c%=gd%*45 L ș Col%,14 V �i%=1�8 `& �bx%-8*�CP$(i%)+c%*(i%),by%+32 j �CP$(i%) t t%=bx%+c%*i% ~ �t%,by% � �&15,t%,v% � � � t%-=450 � �t%,by% � �&15,t%,v% � �t%<=bx%+c%*(i%-1)+450 � � � t%=bx%+gd%*360 � �i%=0 � 60 � 400/gd% � v%=by%+gd%*i% � �bx%,v%+32 � �;i% �bx%,v% �&15,t%,v% � � ( 21� / Routines for calculating star positions / < F P��scansky:�i%,T1,alt,azm Z �hourglass_on d �calc_earth_pos n �i%=1� sds% x* �calc_pos(Rah(i%),Dec(i%),alt,azm) � Y%(i%)=sc%*alt � X%(i%)=sc%*azm � � � �calc_our_galaxy � �hourglass_off �� � � �ݤten_stars(� i%) ��n%,T1, alt, azm � n%=0 � � �* �calc_pos(Rah(i%),Dec(i%),alt,azm) Y%(i%)=sc%*alt X%(i%)=sc%*azm i%+=1 " n%+=1 , � i%=sds% � n%=10 6=(i%=sds%) @ J&��calc_our_galaxy:�i%,T1, alt, azm T �i%=1�8 ^ �planet(i%,alt,azm) h Yp%(i%)=sc%*alt r Xp%(i%)=sc%*azm | � � �moon(alt,azm) � Ym%=sc%*alt � Xm%=sc%*azm � �sun(alt,azm) � Ys%=sc%*alt � Xs%=sc%*azm �� � � �� / Object descriptions / � ���unque(X%,Y%) ��f%,i%,r%,nr% r%=4096 f%=0 �i%=1�8 &, nr%=((X%-Xp%(i%))^2 +(Y%-Yp%(i%))^2) 0 � nr%<r% � f%=i%:r%=nr% : � D �f% � N@ �infobox("Info on Planet "+Planet$(f%),�planet_data(f%)) X � b i%=0 l f%=0 v � � i%+=1 �, nr%=((X%-X%(i%))^2 +(Y%-Y%(i%))^2) �! � nr%<r% � f%=i%:r%=nr% � �r%<16 �i%=sds% � �f% � � � alt, azm, dat$ �, �calc_pos(Rah(f%),Dec(f%),alt,azm) �# dat$=�pos_string(alt,azm) � @%=&1020208 �K dat$+=" Magnitude="+�(Mag(f%))+"(var?)(double?) "+�orbit_data(f%) � @%=10 �V �infobox("Info on "+�name(group%(f%))+" "+�constname(f%)+�starname(f%),dat$) � � � � *ݤplanet_data(p%) 4 � alt,azm,S$ > alt=0:azm=0 H �planet(p%,alt,azm) R S$=�pos_string(alt,azm) \=S$ f pݤpos_string(alt,azm) z�d$ � �azm>� � � d$="W" � azm=2*�-azm � � � d$="E" � � �3=" Azimuth="+�dang(azm)+d$+" Alt="+�dang(alt) � � ݤdang(a) � �a% � a=�(a) � a%=a � @%=10 "=�(a%)+"�"+�(�(60*(a-a%)))+"'" ݤname(p%) $ �p%<=32 �=CEN$(p%) .�t$ 8 t$=$p% B �t$)="'" �=�t$,2,1) L=t$ V `ݤorbit_data(s%) j�c,tt,tr,hah,st,d$ t! c=�/2-�(Viewer_Lat-Dec(s%)) ~% st=hour+min/60-stardate+Rah(s%) �4 d$="Culminates "+�dec_time(st)+" at "+�dang(c) � �c<0 � � d$+=" -Never rises- " � � � tt=-�(Dec(s%))*Vls/Vlc � �(tt)>=1 � � d$+=" -Never sets- " � � � hah=12*�(tt)/� �F d$+=" Rises "+�dec_time(st-hah)+", Sets "+�dec_time(st+hah) � � � � =d$ ݤstarname(n%) �i% ( i%=0 2 � < i%+=1 F% �i%=Named_stars% � star%(i%)=n% P% �star%(i%)=n% �=" - "+Star$(i%) Z="" d nݤconstname(n%) x�i% � i%=0 � � � i%+=1 �# �const%(i%)>=n% �i%=num_const �=CN$(i%+(i%<num_const)) � � �!� / Initialisation Routines / � � ���setup ��i% � � CP$(8) �+0 2 � "N", "NE", "E", "SE", "S", "SW", "W", "NW" �i%=0 �7 " � CP$(i%) , � 6 �sm%(8),o%(8) @ �+0 J �8,6,6,4,4,4,2,0,0 T �i%=0�8 ^ �o%(i%) h5 ș &2e,&118,sprites%,"mag"+�(i%-2) �,,sm%(i%) r � | �get_planets � �make_menus � �read_const_parts �3 mon$=" JanFebMarAprMayJunJulAugSepOctNovDec" � �settime � �setpos(52,0):� Cambridge �� � ���get_planets �� P, i% � � Pdat(8,10), Planet$(8) � �+0 �N � "Earth" , 1 , 0.016664, 0.00366, 53.1919 ,287.67672, 174.48174 �M � "Mercury", 0.387098, 0.205638, 7.00219, 226.30777, 29.01747, 47.70447 M � "Venus" , 0.723332, 0.006817, 3.39389, 1.4518 , 54.69863, 76.15263 L � "Mars" , 1.523673, 0.09327 , 1.84778, 326.72296,286.13461, 49.0962 L � "Jupiter", 5.20167 , 0.04799 , 1.3065 , 46.8294 ,273.6191 , 99.9806 &M � "Saturn" , 9.57157 , 0.05762 , 2.4887 , 36.8602 ,339.7222 , 113.1709 0L � "Uranus" ,19.13902 , 0.04633 , 0.7711 , 47.433 , 93.2332 , 73.8595 :M � "Neptune",29.93503 , 0.01277 , 1.7739 , 204.3292 ,278.6735 , 131.2755 DM � "Pluto" ,39.36753 , 0.24629 ,17.1389 , 341.722 ,113.6122 , 109.5233 N �i%=0�8 X �Planet$(i%) b � P:� Param 1 l& Pdat(i%, 0)=0.0172024 * �(P^3) v Pdat(i%, 1)=P � � P:� Param 2 � Pdat(i%, 2)=P �' Pdat(i%, 3)=Pdat(i%,1)*�(1-P*P) � � P:� Param 3 � Pdat(i%, 4)=��(P) � Pdat(i%, 5)=��(P) � � P:� Param 4 � Pdat(i%, 6)=�(P) � � P:� Param 5 � Pdat(i%, 7)=��(P) � Pdat(i%, 8)=��(P) � � P:� Param 6 � Pdat(i%, 9)=��(P) Pdat(i%,10)=��(P) � Earth_X=0 Earth_Y=0 * Earth_Z=0 4� > H R��read_const_parts \�i% f � CEN$(24) p �+0 zJ � Object in,Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa �@ � Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi � � Psi,Omega �" � "abgdezh0iklmnxoprstvqfcw" � �i%=0�24 � �CEN$(i%) � � � � Clookup$ �� � ���get_stars �/� Version 5.2 - optimised for loading speed �"�D,f%,s%,i%,l%,p%,a%,b%,cn%,t$ � �hourglass_on ! f%=�("<Star$Dir>.Star_map") * �f%=0 �badfile("Star_Map not Found") copyright$=�readstr(f%) $ t$=�readstr(f%) .8 � �leftpar(t$,"=")<>"Update" �badfile("No update") 8 update$=�rightpar(t$,"=") B num_const=88 LD � CN$(88),const%(88),Star$(404),star%(404),ls%(1000),lf%(1000) V `) sds%=�(�rightpar(�readstr(f%),"=")) j str_len%=2000 tI � Rah(sds%), Dec(sds%), group%(sds%), Mag(sds%),str_space% str_len% ~ str_len%+=str_space%-2 �* � Xp%(8), Yp%(8), X%(sds%), Y%(sds%) � Named_stars%=0 � �6 �readstr(f%)<>"Stardata" �badfile("Bad Header") � p%=�#f%:� lf � s%=0 � max_line%=0 � str_ptr%=str_space% � �cn%=1 � 88 � t$=�readstr(f%) �] � �(�rightpar(t$,"="))<>cn% �badfile("Const ["+t$+"] out of step, should be "+�(cn%)) �! CN$(cn%)=�leftpar(t$,"=") const%(cn%)=s% � get lines p%=�#f% ( ȕp%<>10 � p%<>�";" 2 t%=�#f% << �t%=�"-" a%=(p%-48) �a%=(p%-48)*10 + t%-48:t%=�#f% F t%=�#f% P p%=�#f% ZA �p%>47 �p%<58 b%=(t%-48)*10 + p%-48:p%=�#f% �b%=(t%-48) d max_line%+=1 n ls%(max_line%)=a%+s% x lf%(max_line%)=b%+s% �[ �p%<>10 �p%<>�"," �p%<>�";" �badfile("overrun on const "+�(cn%)+"'"+�(max_line%)) � �p%=�"," p%=�#f% � � �0 ȕp%<>10:p%=�#f%:�:� skip to end of line � � p%=�#f% � ȕp%<>10 � s%+=1 �@ �s%>sds% �badfile("Too many stars "+�(s%)+"/"+�(sds%)) �% group%(s%)=�Clookup$,�(p%)) � �group%(s%)=0 � � group%(s%)=str_ptr% � � F � str_ptr%>=str_len% �badfile("Run out of string space") ?str_ptr%=p% str_ptr%+=1 " p%=�#f% , �p%=32 �p%=�"@" 6 ?str_ptr%=13 @ str_ptr%+=1 J � T ȕp%<>�"@":p%=�#f%:� ^ h a%=�#f% r b%=�#f% | t% = a%*36000+b%*3600 � a%=�#f% �* �a%<>�"h" �badfile("h expected") � a%=�#f% � b%=�#f% � t%+= a%*600+b%*60 � a%=�#f% �* �a%<>�"m" �badfile("m expected") � a%=�#f% � b%=�#f% � t%+=a%*10+b%-1933008 � Rah(s%)=t%/3600 � a%=�#f% �+ �a%<>�"s" �badfile("s expected ") a%=�#f% * �a%<>�"," �badfile(", expected") p%=�#f%:� sign & a%=�#f% 0 b%=�#f% : t% =a%*36000+b%*3600 D a%=�#f% N* �a%<>�"d" �badfile("d expected") X a%=�#f% b b%=�#f% l t%+=a%*600+b%*60 v a%=�#f% �* �a%<>�"'" �badfile("' expected") � a%=�#f% � b%=�#f% � t%+=a%*10+b%-1933008 � �p%=�"-" t%=-t% � Dec(s%)=�(t%/3600) � a%=�#f% �* �a%<>�"s" �badfile("s expected") � a%=�#f% �* �a%<>�"^" �badfile("^ expected") � p%=�#f% �! �p%=�"-" t%=�#f% �t%=p% � a%=�#f% * �a%<>�"." �badfile(". expected") a%=�#f% b%=�#f% ! t%=t%*100+a%*10+b%-5328 * �p%=�"-" �t%=-t% 4 Mag(s%)=t%/100 > �#f%=�"=" � H Named_stars%+=1 R, Star$(Named_stars%)=�readstr(f%) \" star%(Named_stars%)=s% f � p p%=�#f% z � � � �8 �s% < sds% �badfile("Stars accounted for ="+�(s%)) � �#f% � �hourglass_off �� � �ݤnext_param(s$,� p%,d$) ��n% � n%=�s$,d$,p%) � �n%=0 n%=�(s$)+1 � s$=�s$,p%,n%-p%) � p%=n%+1 �=s$ ݤrightpar(t$,d$) � p% $ p% = �t$,d$) . �p%=0 �="" 8=�t$,�(t$)-p%) B L Vݤleftpar(t$,d$) `� p% j p% = �t$,d$) t �p%=0 �="" ~=�t$,p%-1) � �ݤreadstr(f%) �� g%,t$ � t$="" � g%=�#f% � ȕ g%<>10 � �ANDg%<>ASC";" � t$+=�(g%) � g%=�#f% � � � ȕg%<>10:g%=�#f%:� �=t$ ��badfile(t$) �#f% 4 � 257,"Bad star file ("+t$+") at const"+�(cn%) (� 2 <(� / Low level starmap calculations / F P��calc_earth_pos Z�B%,V%,e d B%=(month-14)/12 n9 V%=367*(month-2-12*B%)/12-3*�((year+6800+B%)/100)/4 xN real_time_day=day-2447095.5 +1461*(year+6700+B%)/4 +V% +(hour+min/60)/24 �, e=�(23.452 -0.013*real_time_day/36525) � Earth_Cos=�(e) � Earth_Sin=�(e) �V stardate = �rmod(6.646 + 24*real_time_day/365.25 + hour + min/60, 24)-Viewer_Rah �* �plan_pos(0,Earth_X,Earth_Y,Earth_Z) �� � � ���sun(� alt,� azm) � �T, M � T=real_time_day/36525 � M=�(358.476+36000*T) �Q �calc_equiv(�(279.697+36000*T)+�((1.919-.005*T)*�(M)+.02*�(2*M)),0,alt,azm) � "��moon(� alt,� azm) ,�Y, BET, LAM 6N Y=0.7*��(341.5+24.3815*real_time_day)+6.3*��(296.1+13.065*real_time_day) @- Y-=1.3*��(314.6-11.31651*real_time_day) J2 BET=�(5.2*��(Y+11.2+13.22935*real_time_day)) TE Y+=270.4+13.1764*real_time_day+.2*��(232.2+26.13*real_time_day) ^Q LAM=�(Y-.1*��(22.5+26.4587*real_time_day)-.2*��(358.5+.9856*real_time_day)) hG moon_age%=.082*�rmod(350.74+445267.14*(real_time_day/36525), 360) r' moon_phase$=�(1+�(moon_age%/7.5)) |" �calc_equiv(LAM,BET,alt,azm) �� � � ���plan_pos(N%,� x,� y,� z) ��m, c, e, n%, xl, yl �9 m = Pdat(N%, 6)+Pdat(N%, 0)*(real_time_day-28180.5) � c = m + Pdat(N%,2)*�(M) � n%=1 � � �= e=c+(m + Pdat(N%,2)*�(c) - c)/( 1 - Pdat(N%,2)*�(c) ) � Ȕ c, e � n%+=1 � ��(e-c)<1E-6 � n%>100 % x=Pdat(N%,1)*(�(e)-Pdat(N%, 2)) y=Pdat(N%,3)*�(e) $ xl=x*Pdat(N%,7) - y*Pdat(N%,8) &$ yl=x*Pdat(N%,8) + y*Pdat(N%,7) 01 x=xl*Pdat(N%,9) - yl*Pdat(N%,10)*Pdat(N%,4) :0 y=xl*Pdat(N%,10)+ yl*Pdat(N%,9)*Pdat(N%,4) D z=yl*Pdat(N%,5) N� X b��planet(N%,� alt,� azm) l� x,y,z vx=0:y=0:z=0 � �plan_pos(N%,x,y,z) � x-=Earth_X � y-=Earth_Y � z-=Earth_Z �B �calc_equiv(�(y/x)+�*(3+�(x))/2,�(z/�(x*x+y*y+z*z)),alt,azm) �� � � �%��calc_equiv(LAM,BET,� alt,� azm) ��c, s, X � LAM=�rmod(LAM, 2*�) � c=�(BET) � s=�(BET) ! X=c*�(LAM) !_ �calc_pos(RAHE*�ang(X*Earth_Cos-s*Earth_Sin,c*�(LAM)),�(s*Earth_Cos+X*Earth_Sin),alt,azm) !� ! !* !4$��calc_pos(RAH,DEC, � alt,� azm) !>� H, X, s, c !H c=-�(DEC) !R s= �(DEC) !\ H=SIDE*(stardate-RAH) !f X=c*�(H) !p alt=�(s*Vls-X*Vlc) !z# azm=�ang(c*�(H), s*Vlc+X*Vls) !�� !� !���setpos(Lat,Long) !� Viewer_Lat=�(Lat) !� Vlc=�(Viewer_Lat) !� Vls=�(Viewer_Lat) !� Viewer_Rah=Long/15 !�% $long_ptr%=�make_ang(Long,"EW") !�$ $lat_ptr% =�make_ang(Lat,"NS") !�� !� !�ݤmake_ang(a,d$) !��d%, m% " d%=�(�(a)) " m%=�(�(a*60))-d%*60 "'=�(d%)+"d"+�(m%)+"m"+�d$,1-(a<0),1) "$ ".ݤang(Y, X) "8 �X=0 �=�*�(Y) "B=�+�(Y/X)+(X>0)*�(Y)*� "L "V "`ݤrmod(A, M) "j" �A<0 �A+=M:�A>0 �A-=M*�(A/M) "t=A "~ "�ݤdec_time(A) "� �h%,m% "� h%=A "� m%=60*(A-h%)+0.5 "� A=�rmod(A,24) "� @%=10 "�+=�2-��h%, " ")+�h%+":"+�2-��m%,"0")+�m% "� "�ݤlook_next "�=(�decode_time(20)<>min) "� "� ��settime # min =�decode_time(20) # hour =�decode_time(17) # day =�decode_time(5) # month=�decode_month #( year =�decode_time(14) #2� #< #Fݤstring_time #PF=�(hour)+":"+�(min)+" on "+�(day)+" "+�mon$,month*3,3)+" "+�(year) #Z #d #n��inctime(s%) #x min+=s% #� � min>=60 � #� hour+=min � 60 #� min=min � 60 #� � hour>=24 � #� hour=hour � 24 #� day+=1 #� � #� � #�� #� #�ݤdecode_time(i%) #�=���$, i%, 2) #� $ݤdecode_month $=�mon$, ��$, 8, 3))/3 $ $""ݤbcd(c%)=(c% � 15)+10*(c%>>4) $, $6��load_mess(q%):�:� dummy $@ $J� / End of !Stargazer $T �
00000000 0d 00 0a 2d f4 20 3e 20 53 74 61 72 67 61 7a 65 |...-. > Stargaze| 00000010 72 20 2d 20 77 69 6d 70 20 76 65 72 73 69 6f 6e |r - wimp version| 00000020 20 77 69 74 68 20 53 70 72 69 74 65 73 0d 00 14 | with Sprites...| 00000030 44 f4 20 3e 20 56 65 72 73 69 6f 6e 20 36 2e 30 |D. > Version 6.0| 00000040 30 20 2d 20 53 70 65 63 69 61 6c 20 72 65 6c 65 |0 - Special rele| 00000050 61 73 65 20 66 6f 72 20 41 72 63 68 69 6d 65 64 |ase for Archimed| 00000060 65 73 20 57 6f 72 6c 64 20 31 33 2f 30 31 2f 39 |es World 13/01/9| 00000070 32 0d 00 1e 2e f4 20 3e 20 56 65 72 73 69 6f 6e |2..... > Version| 00000080 20 35 2e 34 30 20 2d 20 4d 69 73 63 20 6d 69 6e | 5.40 - Misc min| 00000090 6f 72 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 0d |or enhancements.| 000000a0 00 28 28 f4 20 3e 20 56 65 72 73 69 6f 6e 20 35 |.((. > Version 5| 000000b0 2e 30 30 20 2d 20 41 64 64 65 64 20 70 6c 61 6e |.00 - Added plan| 000000c0 65 74 20 64 61 74 61 0d 00 32 3b f4 20 3e 20 56 |et data..2;. > V| 000000d0 65 72 73 69 6f 6e 20 34 2e 30 30 20 2d 20 49 6e |ersion 4.00 - In| 000000e0 63 6c 75 64 65 73 20 62 61 73 69 63 20 63 6f 6d |cludes basic com| 000000f0 70 69 6c 65 72 20 63 6f 64 65 20 63 68 61 6e 67 |piler code chang| 00000100 65 73 0d 00 3c 35 f4 20 3e 20 56 65 72 73 69 6f |es..<5. > Versio| 00000110 6e 20 33 2e 30 30 20 2d 20 69 6e 63 6c 75 64 65 |n 3.00 - include| 00000120 73 20 61 75 74 6f 20 75 70 64 61 74 65 20 61 6c |s auto update al| 00000130 67 6f 72 69 74 68 6d 0d 00 46 32 f4 20 3e 20 56 |gorithm..F2. > V| 00000140 65 72 73 69 6f 6e 20 32 2e 30 30 20 2d 20 43 6f |ersion 2.00 - Co| 00000150 6e 73 74 65 6c 6c 61 74 69 6f 6e 20 70 6c 6f 74 |nstellation plot| 00000160 74 65 72 20 61 64 64 65 64 0d 00 50 0d ee 85 20 |ter added..P... | 00000170 f2 65 72 72 6f 72 0d 00 5a 1a c8 9b 22 3c 53 74 |.error..Z..."<St| 00000180 61 72 24 44 49 52 3e 2e 57 69 6e 64 4d 61 6e 22 |ar$DIR>.WindMan"| 00000190 0d 00 64 1c c8 9b 22 3c 53 74 61 72 24 44 49 52 |..d..."<Star$DIR| 000001a0 3e 2e 53 70 72 69 74 65 4d 61 6e 22 0d 00 6e 04 |>.SpriteMan"..n.| 000001b0 0d 00 78 3a 62 78 25 3d 30 3a 62 79 25 3d 30 3a |..x:bx%=0:by%=0:| 000001c0 73 63 25 3d 31 31 34 36 3a 67 64 25 3d 32 30 3a |sc%=1146:gd%=20:| 000001d0 73 63 73 25 3d 32 3a 52 41 48 45 3d 31 32 2f af |scs%=2:RAHE=12/.| 000001e0 3a 53 49 44 45 3d af 2f 31 32 0d 00 82 22 f2 77 |:SIDE=./12...".w| 000001f0 69 6d 70 5f 69 6e 69 74 28 22 54 41 53 4b 22 2c |imp_init("TASK",| 00000200 22 53 74 61 72 47 61 7a 65 72 22 29 0d 00 8c 2c |"StarGazer")...,| 00000210 f2 73 70 72 69 74 65 5f 69 6e 69 74 28 22 3c 53 |.sprite_init("<S| 00000220 74 61 72 24 44 49 52 3e 2e 73 70 72 69 74 65 73 |tar$DIR>.sprites| 00000230 22 2c 22 73 75 6e 22 29 0d 00 96 29 f2 67 65 74 |","sun")...).get| 00000240 5f 69 6e 66 6f 5f 62 6f 78 28 22 3c 53 74 61 72 |_info_box("<Star| 00000250 24 44 69 72 3e 2e 54 65 6d 70 6c 61 74 65 73 22 |$Dir>.Templates"| 00000260 29 0d 00 a0 2a de 20 68 77 5f 74 69 74 6c 65 25 |)...*. hw_title%| 00000270 20 34 31 3a 24 68 77 5f 74 69 74 6c 65 25 3d 22 | 41:$hw_title%="| 00000280 48 6f 72 69 7a 6f 6e 74 61 6c 22 0d 00 aa 37 6d |Horizontal"...7m| 00000290 61 69 6e 25 3d a4 6e 65 77 5f 77 69 6e 64 6f 77 |ain%=.new_window| 000002a0 28 68 77 5f 74 69 74 6c 65 25 2c 38 30 30 2c 36 |(hw_title%,800,6| 000002b0 30 30 2c 67 64 25 2a 33 36 30 2c 67 64 25 2a 36 |00,gd%*360,gd%*6| 000002c0 36 29 0d 00 b4 22 69 63 73 74 61 72 25 3d a4 69 |6)..."icstar%=.i| 000002d0 63 6f 6e 62 61 72 28 22 69 63 6f 6e 22 2c 36 34 |conbar("icon",64| 000002e0 2c 36 34 29 0d 00 be 0c 73 74 61 74 65 25 3d 30 |,64)....state%=0| 000002f0 0d 00 c8 0a f2 73 65 74 75 70 0d 00 d2 05 f5 0d |.....setup......| 00000300 00 dc 36 20 20 f4 20 53 74 61 6e 64 61 72 64 20 |..6 . Standard | 00000310 66 75 6e 63 74 69 6f 6e 61 6c 69 6c 74 79 20 66 |functionalilty f| 00000320 72 6f 6d 20 46 4e 77 69 6d 70 5f 70 6f 6c 6c 20 |rom FNwimp_poll | 00000330 68 6f 6f 6b 73 0d 00 e6 1a 20 20 61 25 3d a4 77 |hooks.... a%=.w| 00000340 69 6d 70 5f 70 6f 6c 6c 28 30 2c 70 62 25 29 0d |imp_poll(0,pb%).| 00000350 00 f0 18 20 20 e7 20 61 25 3d 30 20 f2 62 61 63 |... . a%=0 .bac| 00000360 6b 67 72 6f 75 6e 64 0d 00 fa 07 fd 20 a3 0d 01 |kground..... ...| 00000370 04 05 e0 0d 01 0e 04 0d 01 18 0b dd f2 65 72 72 |.............err| 00000380 6f 72 0d 01 22 0c 20 20 2a 43 4c 4f 53 45 0d 01 |or..". *CLOSE..| 00000390 2c 24 20 20 f2 65 72 72 6f 72 62 6f 78 28 9f 2c |,$ .errorbox(.,| 000003a0 f6 24 2b 22 20 61 74 20 6c 69 6e 65 20 22 2b c3 |.$+" at line "+.| 000003b0 9e 29 0d 01 36 0d 20 20 f2 66 69 6e 69 73 68 0d |.)..6. .finish.| 000003c0 01 40 05 e0 0d 01 4a 05 e1 0d 01 54 04 0d 01 5e |.@....J....T...^| 000003d0 58 f4 20 2f 20 54 68 65 73 65 20 66 75 6e 63 74 |X. / These funct| 000003e0 69 6f 6e 73 20 54 61 69 6c 6f 72 20 72 65 73 70 |ions Tailor resp| 000003f0 6f 6e 63 65 20 74 6f 20 77 69 6d 70 5f 70 6f 6c |once to wimp_pol| 00000400 6c 73 20 74 6f 20 70 72 6f 76 69 64 65 20 73 74 |ls to provide st| 00000410 61 72 67 61 7a 65 72 20 66 75 6e 63 74 69 6f 6e |argazer function| 00000420 61 6c 69 74 79 0d 01 68 04 0d 01 72 1d dd f2 6d |ality..h...r...m| 00000430 65 6e 75 28 6d 73 78 25 2c 6d 73 79 25 2c 68 61 |enu(msx%,msy%,ha| 00000440 6e 64 6c 65 25 29 0d 01 7c 12 20 20 c8 8e 20 68 |ndle%)..|. .. h| 00000450 61 6e 64 6c 65 25 20 ca 0d 01 86 36 20 20 20 20 |andle% ....6 | 00000460 c9 20 6d 61 69 6e 25 3a 20 f2 6e 65 77 5f 6d 65 |. main%: .new_me| 00000470 6e 75 28 77 69 6e 64 5f 6d 65 6e 75 25 2c 6d 73 |nu(wind_menu%,ms| 00000480 78 25 2d 33 32 2c 6d 73 79 25 2b 31 36 29 0d 01 |x%-32,msy%+16)..| 00000490 90 33 20 20 20 20 c9 20 2d 32 20 20 20 3a 20 f2 |.3 . -2 : .| 000004a0 6e 65 77 5f 6d 65 6e 75 28 69 63 6f 6e 5f 6d 65 |new_menu(icon_me| 000004b0 6e 75 25 2c 6d 73 78 25 2d 32 30 30 2c 32 34 30 |nu%,msx%-200,240| 000004c0 29 0d 01 9a 07 20 20 cb 0d 01 a4 05 e1 0d 01 ae |).... .........| 000004d0 04 0d 01 b8 10 dd f2 6d 61 6b 65 5f 6d 65 6e 75 |.......make_menu| 000004e0 73 0d 01 c2 0c 20 20 ea 6d 25 2c 69 25 0d 01 cc |s.... .m%,i%...| 000004f0 0a 20 20 6d 25 3d 30 0d 01 d6 25 20 20 f4 20 73 |. m%=0...% . s| 00000500 70 61 63 65 20 66 6f 72 20 76 61 72 69 61 62 6c |pace for variabl| 00000510 65 20 6d 65 6e 75 20 69 74 65 6d 73 0d 01 e0 54 |e menu items...T| 00000520 20 20 de 20 63 6f 6e 73 74 5f 70 74 72 25 20 31 | . const_ptr% 1| 00000530 36 2c 73 74 61 72 5f 70 74 72 25 20 31 36 2c 6c |6,star_ptr% 16,l| 00000540 6f 6e 67 5f 70 74 72 25 20 31 36 2c 6c 61 74 5f |ong_ptr% 16,lat_| 00000550 70 74 72 25 20 31 36 2c 69 6e 74 5f 70 74 72 25 |ptr% 16,int_ptr%| 00000560 20 31 36 2c 73 70 61 6e 5f 70 74 72 25 20 31 36 | 16,span_ptr% 16| 00000570 0d 01 ea 3f 20 20 6c 61 74 5f 6d 65 6e 75 25 20 |...? lat_menu% | 00000580 20 3d a4 74 65 78 74 5f 6d 65 6e 75 28 22 4c 61 | =.text_menu("La| 00000590 74 69 74 75 64 65 22 2c 6c 61 74 5f 70 74 72 25 |titude",lat_ptr%| 000005a0 2c 31 36 2c 22 41 30 2d 39 64 6d 4e 53 22 29 0d |,16,"A0-9dmNS").| 000005b0 01 f4 41 20 20 6c 6f 6e 67 5f 6d 65 6e 75 25 20 |..A long_menu% | 000005c0 3d a4 74 65 78 74 5f 6d 65 6e 75 28 22 4c 6f 6e |=.text_menu("Lon| 000005d0 67 69 74 75 64 65 22 2c 6c 6f 6e 67 5f 70 74 72 |gitude",long_ptr| 000005e0 25 2c 31 36 2c 22 41 30 2d 39 64 6d 45 57 22 29 |%,16,"A0-9dmEW")| 000005f0 0d 01 fe 3a 20 20 63 6f 6e 73 74 5f 6d 65 6e 75 |...: const_menu| 00000600 25 3d a4 74 65 78 74 5f 6d 65 6e 75 28 22 43 6f |%=.text_menu("Co| 00000610 6e 73 74 22 2c 63 6f 6e 73 74 5f 70 74 72 25 2c |nst",const_ptr%,| 00000620 31 36 2c 22 41 61 2d 7a 22 29 0d 02 08 38 20 20 |16,"Aa-z")...8 | 00000630 73 74 61 72 5f 6d 65 6e 75 25 20 3d a4 74 65 78 |star_menu% =.tex| 00000640 74 5f 6d 65 6e 75 28 22 53 74 61 72 22 2c 73 74 |t_menu("Star",st| 00000650 61 72 5f 70 74 72 25 2c 31 36 2c 22 41 61 2d 7a |ar_ptr%,16,"Aa-z| 00000660 22 29 0d 02 12 3f 20 20 69 6e 74 5f 6d 65 6e 75 |")...? int_menu| 00000670 25 20 20 3d a4 74 65 78 74 5f 6d 65 6e 75 28 22 |% =.text_menu("| 00000680 74 69 6d 65 20 73 74 65 70 28 6d 29 22 2c 69 6e |time step(m)",in| 00000690 74 5f 70 74 72 25 2c 31 36 2c 22 41 30 2d 39 22 |t_ptr%,16,"A0-9"| 000006a0 29 0d 02 1c 40 20 20 73 70 61 6e 5f 6d 65 6e 75 |)...@ span_menu| 000006b0 25 20 3d a4 74 65 78 74 5f 6d 65 6e 75 28 22 74 |% =.text_menu("t| 000006c0 69 6d 65 20 73 70 61 6e 28 68 29 22 2c 73 70 61 |ime span(h)",spa| 000006d0 6e 5f 70 74 72 25 2c 31 36 2c 22 41 30 2d 39 22 |n_ptr%,16,"A0-9"| 000006e0 29 0d 02 26 13 20 20 24 69 6e 74 5f 70 74 72 25 |)..&. $int_ptr%| 000006f0 3d 22 36 22 0d 02 30 14 20 20 24 73 70 61 6e 5f |="6"..0. $span_| 00000700 70 74 72 25 3d 22 38 22 0d 02 3a 04 0d 02 44 2d |ptr%="8"..:...D-| 00000710 20 20 70 6c 61 6e 5f 6d 65 6e 75 25 3d a4 62 61 | plan_menu%=.ba| 00000720 73 5f 6d 65 6e 75 28 6d 25 2c 22 50 6c 61 6e 65 |s_menu(m%,"Plane| 00000730 74 22 2c 31 39 32 2c 38 29 0d 02 4e 0d 20 20 e3 |t",192,8)..N. .| 00000740 69 25 3d 31 b8 38 0d 02 58 2b 20 20 20 20 f2 61 |i%=1.8..X+ .a| 00000750 64 64 5f 69 74 65 6d 28 6d 25 2c 28 69 25 3d 38 |dd_item(m%,(i%=8| 00000760 29 2c 2d 31 2c 50 6c 61 6e 65 74 24 28 69 25 29 |),-1,Planet$(i%)| 00000770 29 0d 02 62 07 20 20 ed 0d 02 6c 04 0d 02 76 32 |)..b. ...l...v2| 00000780 20 20 66 69 6e 64 5f 6d 65 6e 75 25 3d a4 62 61 | find_menu%=.ba| 00000790 73 5f 6d 65 6e 75 28 6d 25 2c 22 66 69 6e 64 20 |s_menu(m%,"find | 000007a0 6f 62 6a 65 63 74 22 2c 31 39 32 2c 35 29 0d 02 |object",192,5)..| 000007b0 80 1e 20 20 f2 61 64 64 5f 69 74 65 6d 28 6d 25 |.. .add_item(m%| 000007c0 2c a3 2c 2d 31 2c 22 53 75 6e 22 29 0d 02 8a 1f |,.,-1,"Sun")....| 000007d0 20 20 f2 61 64 64 5f 69 74 65 6d 28 6d 25 2c a3 | .add_item(m%,.| 000007e0 2c 2d 31 2c 22 4d 6f 6f 6e 22 29 0d 02 94 29 20 |,-1,"Moon")...) | 000007f0 20 f2 61 64 64 5f 69 74 65 6d 28 6d 25 2c a3 2c | .add_item(m%,.,| 00000800 70 6c 61 6e 5f 6d 65 6e 75 25 2c 22 50 6c 61 6e |plan_menu%,"Plan| 00000810 65 74 22 29 0d 02 9e 27 20 20 f2 61 64 64 5f 69 |et")...' .add_i| 00000820 74 65 6d 28 6d 25 2c a3 2c 73 74 61 72 5f 6d 65 |tem(m%,.,star_me| 00000830 6e 75 25 2c 22 53 74 61 72 22 29 0d 02 a8 29 20 |nu%,"Star")...) | 00000840 20 f2 61 64 64 5f 69 74 65 6d 28 6d 25 2c b9 2c | .add_item(m%,.,| 00000850 63 6f 6e 73 74 5f 6d 65 6e 75 25 2c 22 43 6f 6e |const_menu%,"Con| 00000860 73 74 22 29 0d 02 b2 04 0d 02 bc 2e 20 20 6f 62 |st")........ ob| 00000870 73 5f 6d 65 6e 75 25 3d a4 62 61 73 5f 6d 65 6e |s_menu%=.bas_men| 00000880 75 28 6d 25 2c 22 4f 62 73 65 72 76 65 72 22 2c |u(m%,"Observer",| 00000890 31 39 32 2c 32 29 0d 02 c6 2c 20 20 f2 61 64 64 |192,2)..., .add| 000008a0 5f 69 74 65 6d 28 6d 25 2c a3 2c 6c 6f 6e 67 5f |_item(m%,.,long_| 000008b0 6d 65 6e 75 25 2c 22 4c 6f 6e 67 69 74 75 64 65 |menu%,"Longitude| 000008c0 22 29 0d 02 d0 2a 20 20 f2 61 64 64 5f 69 74 65 |")...* .add_ite| 000008d0 6d 28 6d 25 2c b9 2c 6c 61 74 5f 6d 65 6e 75 25 |m(m%,.,lat_menu%| 000008e0 2c 22 4c 61 74 69 74 75 64 65 22 29 0d 02 da 04 |,"Latitude")....| 000008f0 0d 02 e4 30 20 20 69 63 6f 6e 5f 6d 65 6e 75 25 |...0 icon_menu%| 00000900 3d a4 62 61 73 5f 6d 65 6e 75 28 6d 25 2c 22 53 |=.bas_menu(m%,"S| 00000910 74 61 72 20 4d 65 6e 75 22 2c 31 39 32 2c 35 29 |tar Menu",192,5)| 00000920 0d 02 ee 13 20 20 f2 61 64 64 5f 69 6e 66 6f 28 |.... .add_info(| 00000930 6d 25 29 0d 02 f8 2b 20 20 f2 61 64 64 5f 69 74 |m%)...+ .add_it| 00000940 65 6d 28 6d 25 2c a3 2c 6f 62 73 5f 6d 65 6e 75 |em(m%,.,obs_menu| 00000950 25 2c 22 6e 65 77 20 70 6c 61 63 65 22 29 0d 03 |%,"new place")..| 00000960 02 23 20 20 f2 61 64 64 5f 69 74 65 6d 28 6d 25 |.# .add_item(m%| 00000970 2c a3 2c 2d 31 2c 22 6e 65 77 20 74 69 6d 65 22 |,.,-1,"new time"| 00000980 29 0d 03 0c 23 20 20 f2 61 64 64 5f 69 74 65 6d |)...# .add_item| 00000990 28 6d 25 2c a3 2c 2d 31 2c 22 73 68 6f 77 5f 73 |(m%,.,-1,"show_s| 000009a0 6b 79 22 29 0d 03 16 1f 20 20 f2 61 64 64 5f 69 |ky").... .add_i| 000009b0 74 65 6d 28 6d 25 2c b9 2c 2d 31 2c 22 71 75 69 |tem(m%,.,-1,"qui| 000009c0 74 22 29 0d 03 20 04 0d 03 2a 30 20 20 73 69 6d |t").. ...*0 sim| 000009d0 5f 6d 65 6e 75 25 3d a4 62 61 73 5f 6d 65 6e 75 |_menu%=.bas_menu| 000009e0 28 6d 25 2c 22 53 69 6d 75 6c 61 74 69 6f 6e 22 |(m%,"Simulation"| 000009f0 2c 31 39 32 2c 32 29 0d 03 34 2b 20 20 f2 61 64 |,192,2)..4+ .ad| 00000a00 64 5f 69 74 65 6d 28 6d 25 2c a3 2c 69 6e 74 5f |d_item(m%,.,int_| 00000a10 6d 65 6e 75 25 2c 22 74 69 6d 65 20 73 74 65 70 |menu%,"time step| 00000a20 22 29 0d 03 3e 2c 20 20 f2 61 64 64 5f 69 74 65 |")..>, .add_ite| 00000a30 6d 28 6d 25 2c b9 2c 73 70 61 6e 5f 6d 65 6e 75 |m(m%,.,span_menu| 00000a40 25 2c 22 74 69 6d 65 20 73 70 61 6e 22 29 0d 03 |%,"time span")..| 00000a50 48 04 0d 03 52 2e 20 20 77 69 6e 64 5f 6d 65 6e |H...R. wind_men| 00000a60 75 25 3d a4 62 61 73 5f 6d 65 6e 75 28 6d 25 2c |u%=.bas_menu(m%,| 00000a70 22 4f 70 74 69 6f 6e 73 22 2c 31 39 32 2c 36 29 |"Options",192,6)| 00000a80 0d 03 5c 2e 20 20 f2 61 64 64 5f 69 74 65 6d 28 |..\. .add_item(| 00000a90 6d 25 2c a3 2c 66 69 6e 64 5f 6d 65 6e 75 25 2c |m%,.,find_menu%,| 00000aa0 22 66 69 6e 64 20 6f 62 6a 65 63 74 22 29 0d 03 |"find object")..| 00000ab0 66 26 20 20 f2 61 64 64 5f 69 74 65 6d 28 6d 25 |f& .add_item(m%| 00000ac0 2c a3 2c 2d 31 2c 22 73 68 6f 77 20 63 6f 6e 73 |,.,-1,"show cons| 00000ad0 74 73 22 29 0d 03 70 22 20 20 f2 61 64 64 5f 69 |ts")..p" .add_i| 00000ae0 74 65 6d 28 6d 25 2c a3 2c 2d 31 2c 22 7a 6f 6f |tem(m%,.,-1,"zoo| 00000af0 6d 20 69 6e 22 29 0d 03 7a 23 20 20 f2 61 64 64 |m in")..z# .add| 00000b00 5f 69 74 65 6d 28 6d 25 2c a3 2c 2d 31 2c 22 7a |_item(m%,.,-1,"z| 00000b10 6f 6f 6d 20 6f 75 74 22 29 0d 03 84 2a 20 20 f2 |oom out")...* .| 00000b20 61 64 64 5f 69 74 65 6d 28 6d 25 2c b9 2c 73 69 |add_item(m%,.,si| 00000b30 6d 5f 6d 65 6e 75 25 2c 22 73 69 6d 75 6c 61 74 |m_menu%,"simulat| 00000b40 65 22 29 0d 03 8e 13 20 20 63 6f 6e 73 74 5f 64 |e").... const_d| 00000b50 72 61 77 25 3d a3 0d 03 98 05 e1 0d 03 a2 04 0d |raw%=...........| 00000b60 03 ac 1f dd f2 61 63 74 69 6f 6e 28 6d 73 78 25 |.....action(msx%| 00000b70 2c 6d 73 79 25 2c 68 61 6e 64 6c 65 25 29 0d 03 |,msy%,handle%)..| 00000b80 b6 12 20 20 c8 8e 20 68 61 6e 64 6c 65 25 20 ca |.. .. handle% .| 00000b90 0d 03 c0 23 20 20 20 20 c9 20 6d 61 69 6e 25 20 |...# . main% | 00000ba0 3a 20 f2 75 6e 71 75 65 28 6d 73 78 25 2c 6d 73 |: .unque(msx%,ms| 00000bb0 79 25 29 0d 03 ca 1b 20 20 20 20 c9 20 2d 32 20 |y%).... . -2 | 00000bc0 20 20 20 3a 20 f2 61 63 74 69 76 61 74 65 0d 03 | : .activate..| 00000bd0 d4 07 20 20 cb 0d 03 de 05 e1 0d 03 e8 04 0d 03 |.. ............| 00000be0 f2 1f dd f2 61 64 6a 75 73 74 28 6d 73 78 25 2c |....adjust(msx%,| 00000bf0 6d 73 79 25 2c 68 61 6e 64 6c 65 25 29 0d 03 fc |msy%,handle%)...| 00000c00 12 20 20 c8 8e 20 68 61 6e 64 6c 65 25 20 ca 0d |. .. handle% ..| 00000c10 04 06 23 20 20 20 20 c9 20 6d 61 69 6e 25 20 3a |..# . main% :| 00000c20 20 f2 75 6e 71 75 65 28 6d 73 78 25 2c 6d 73 79 | .unque(msx%,msy| 00000c30 25 29 0d 04 10 1b 20 20 20 20 c9 20 2d 32 20 20 |%).... . -2 | 00000c40 20 20 3a 20 f2 61 63 74 69 76 61 74 65 0d 04 1a | : .activate...| 00000c50 07 20 20 cb 0d 04 24 05 e1 0d 04 2e 04 0d 04 38 |. ...$........8| 00000c60 0e dd a4 68 65 6c 70 28 71 25 29 0d 04 42 07 ea |...help(q%)..B..| 00000c70 6d 24 0d 04 4c 0c 20 20 c8 8e 20 b9 20 ca 0d 04 |m$..L. .. . ...| 00000c80 56 63 20 20 20 20 c9 20 71 25 21 33 32 3d 2d 32 |Vc . q%!32=-2| 00000c90 20 80 20 71 25 21 33 36 3d 69 63 73 74 61 72 25 | . q%!36=icstar%| 00000ca0 3a 6d 24 3d 22 54 68 69 73 20 69 73 20 74 68 65 |:m$="This is the| 00000cb0 20 53 74 61 72 67 61 7a 65 72 20 69 63 6f 6e 2e | Stargazer icon.| 00000cc0 7c 4d 43 6c 69 63 6b 20 6f 6e 20 68 65 72 65 20 ||MClick on here | 00000cd0 74 6f 20 64 69 73 70 6c 61 79 20 73 74 61 72 73 |to display stars| 00000ce0 22 0d 04 60 66 20 20 20 20 c9 20 71 25 21 33 32 |"..`f . q%!32| 00000cf0 3d 6d 61 69 6e 25 3a 6d 24 3d 22 54 68 69 73 20 |=main%:m$="This | 00000d00 69 73 20 74 68 65 20 68 6f 72 69 7a 6f 6e 74 61 |is the horizonta| 00000d10 6c 20 73 74 61 72 20 64 69 73 70 6c 61 79 20 77 |l star display w| 00000d20 69 6e 64 6f 77 7c 4d 43 6c 69 63 6b 20 6f 6e 20 |indow|MClick on | 00000d30 68 65 72 65 20 74 6f 20 69 64 65 6e 66 69 66 79 |here to idenfify| 00000d40 20 73 74 61 72 73 22 0d 04 6a 10 20 20 20 20 7f | stars"..j. .| 00000d50 20 3a 6d 24 3d 22 22 0d 04 74 07 20 20 cb 0d 04 | :m$=""..t. ...| 00000d60 7e 07 3d 6d 24 0d 04 88 04 0d 04 92 04 0d 04 9c |~.=m$...........| 00000d70 10 dd f2 62 61 63 6b 67 72 6f 75 6e 64 0d 04 a6 |...background...| 00000d80 11 20 20 c8 8e 20 73 74 61 74 65 25 20 ca 0d 04 |. .. state% ...| 00000d90 b0 18 20 20 20 20 c9 20 30 20 3a 20 f2 67 65 74 |.. . 0 : .get| 00000da0 5f 73 74 61 72 73 0d 04 ba 4e 20 20 20 20 20 20 |_stars...N | 00000db0 20 20 20 20 20 20 20 f2 69 6e 66 6f 62 6f 78 28 | .infobox(| 00000dc0 22 53 74 61 72 20 44 61 74 61 20 22 2b 63 6f 70 |"Star Data "+cop| 00000dd0 79 72 69 67 68 74 24 2c 22 4c 61 73 74 20 64 61 |yright$,"Last da| 00000de0 74 61 20 75 70 64 61 74 65 20 22 2b 75 70 64 61 |ta update "+upda| 00000df0 74 65 24 29 0d 04 c4 19 20 20 20 20 20 20 20 20 |te$).... | 00000e00 20 20 20 20 20 f2 73 63 61 6e 73 6b 79 0d 04 ce | .scansky...| 00000e10 19 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 |. st| 00000e20 61 74 65 25 3d 34 0d 04 d8 2b 20 20 20 20 c9 20 |ate%=4...+ . | 00000e30 31 20 3a 20 e7 20 6f 70 65 6e 25 20 f2 72 65 64 |1 : . open% .red| 00000e40 72 61 77 5f 77 69 6e 64 6f 77 28 6d 61 69 6e 25 |raw_window(main%| 00000e50 29 0d 04 e2 19 20 20 20 20 20 20 20 20 20 20 20 |).... | 00000e60 20 20 f2 73 65 74 74 69 6d 65 0d 04 ec 20 20 20 | .settime... | 00000e70 20 20 20 20 20 20 20 20 20 20 20 f2 63 61 6c 63 | .calc| 00000e80 5f 65 61 72 74 68 5f 70 6f 73 0d 04 f6 19 20 20 |_earth_pos.... | 00000e90 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 | state| 00000ea0 25 3d 32 0d 05 00 17 20 20 20 20 20 20 20 20 20 |%=2.... | 00000eb0 20 20 20 20 6f 62 6a 25 3d 31 0d 05 0a 29 20 20 | obj%=1...) | 00000ec0 20 20 c9 20 32 20 3a 20 e7 20 a4 74 65 6e 5f 73 | . 2 : . .ten_s| 00000ed0 74 61 72 73 28 6f 62 6a 25 29 20 73 74 61 74 65 |tars(obj%) state| 00000ee0 25 3d 33 0d 05 14 1e 20 20 20 20 c9 20 33 20 3a |%=3.... . 3 :| 00000ef0 20 f2 63 61 6c 63 5f 6f 75 72 5f 67 61 6c 61 78 | .calc_our_galax| 00000f00 79 0d 05 1e 19 20 20 20 20 20 20 20 20 20 20 20 |y.... | 00000f10 20 20 73 74 61 74 65 25 3d 34 0d 05 28 23 20 20 | state%=4..(# | 00000f20 20 20 c9 20 34 20 3a 20 e7 20 a4 6c 6f 6f 6b 5f | . 4 : . .look_| 00000f30 6e 65 78 74 20 73 74 61 74 65 25 3d 31 0d 05 32 |next state%=1..2| 00000f40 13 20 20 20 20 c9 20 35 20 3a 20 f2 73 63 61 6e |. . 5 : .scan| 00000f50 0d 05 3c 07 20 20 cb 0d 05 46 05 e1 0d 05 50 04 |..<. ...F....P.| 00000f60 0d 05 5a 20 dd f2 66 61 73 74 73 63 61 6e 3a ea |..Z ..fastscan:.| 00000f70 65 6e 64 6d 69 6e 25 2c 65 6e 64 68 6f 75 72 25 |endmin%,endhour%| 00000f80 0d 05 64 12 ea 73 74 65 70 25 2c 65 6e 64 25 2c |..d..step%,end%,| 00000f90 69 25 0d 05 6e 1c 73 74 65 70 25 3d bb 28 a4 73 |i%..n.step%=.(.s| 00000fa0 67 65 74 28 69 6e 74 5f 70 74 72 25 29 29 0d 05 |get(int_ptr%))..| 00000fb0 78 1c 65 6e 64 25 3d bb 28 a4 73 67 65 74 28 73 |x.end%=.(.sget(s| 00000fc0 70 61 6e 5f 70 74 72 25 29 29 0d 05 82 19 20 20 |pan_ptr%)).... | 00000fd0 e7 73 74 65 70 25 3d 30 20 84 20 65 6e 64 25 3d |.step%=0 . end%=| 00000fe0 30 20 8c 0d 05 8c 2c 20 20 20 20 f2 65 72 72 6f |0 ...., .erro| 00000ff0 72 62 6f 78 28 32 34 30 2c 22 42 61 64 20 74 69 |rbox(240,"Bad ti| 00001000 6d 65 20 70 61 72 61 6d 65 74 65 72 73 22 29 0d |me parameters").| 00001010 05 96 07 20 20 cc 0d 05 a0 22 20 20 20 20 6e 75 |... ...." nu| 00001020 6d 5f 70 65 72 69 6f 64 73 25 3d 36 30 2a 65 6e |m_periods%=60*en| 00001030 64 25 2f 73 74 65 70 25 0d 05 aa 0e 20 20 20 20 |d%/step%.... | 00001040 6f 62 6a 25 3d 30 0d 05 b4 10 20 20 20 20 73 74 |obj%=0.... st| 00001050 61 74 65 25 3d 35 0d 05 be 07 20 20 cd 0d 05 c8 |ate%=5.... ....| 00001060 05 e1 0d 05 d2 04 0d 05 dc 0a dd f2 73 63 61 6e |............scan| 00001070 0d 05 e6 0d 20 20 6f 62 6a 25 2b 3d 31 0d 05 f0 |.... obj%+=1...| 00001080 21 20 20 e7 6f 62 6a 25 3c 6e 75 6d 5f 70 65 72 |! .obj%<num_per| 00001090 69 6f 64 73 25 20 80 6f 70 65 6e 25 20 8c 0d 05 |iods% .open% ...| 000010a0 fa 17 20 20 20 20 f2 69 6e 63 74 69 6d 65 28 73 |.. .inctime(s| 000010b0 74 65 70 25 29 0d 06 04 10 20 20 20 20 f2 73 63 |tep%).... .sc| 000010c0 61 6e 73 6b 79 0d 06 0e 1d 20 20 20 20 f2 72 65 |ansky.... .re| 000010d0 64 72 61 77 5f 77 69 6e 64 6f 77 28 6d 61 69 6e |draw_window(main| 000010e0 25 29 0d 06 18 07 20 20 cc 0d 06 22 10 20 20 20 |%).... ...". | 000010f0 20 73 74 61 74 65 25 3d 31 0d 06 2c 07 20 20 cd | state%=1..,. .| 00001100 0d 06 36 05 e1 0d 06 40 04 0d 06 4a 0e dd f2 61 |..6....@...J...a| 00001110 63 74 69 76 61 74 65 0d 06 54 1a 20 20 f2 70 6f |ctivate..T. .po| 00001120 70 75 70 28 6d 61 69 6e 25 2c 30 2c 31 30 32 33 |pup(main%,0,1023| 00001130 29 0d 06 5e 05 e1 0d 06 68 04 0d 06 72 04 0d 06 |)..^....h...r...| 00001140 7c 1a dd f2 6d 65 6e 75 73 65 6c 65 63 74 28 6d ||...menuselect(m| 00001150 25 2c 6d 65 6e 75 25 29 0d 06 86 10 20 20 c8 8e |%,menu%).... ..| 00001160 20 6d 65 6e 75 25 20 ca 0d 06 90 20 20 20 20 20 | menu% .... | 00001170 c9 20 77 69 6e 64 5f 6d 65 6e 75 25 20 3a f2 77 |. wind_menu% :.w| 00001180 69 6e 64 6d 28 6d 25 29 0d 06 9a 20 20 20 20 20 |indm(m%)... | 00001190 c9 20 69 63 6f 6e 5f 6d 65 6e 75 25 20 3a f2 69 |. icon_menu% :.i| 000011a0 63 6f 6e 6d 28 6d 25 29 0d 06 a4 07 20 20 cb 0d |conm(m%).... ..| 000011b0 06 ae 05 e1 0d 06 b8 04 0d 06 c2 0f dd f2 77 69 |..............wi| 000011c0 6e 64 6d 28 6d 25 29 0d 06 cc 0e 20 20 c8 8e 20 |ndm(m%).... .. | 000011d0 21 6d 25 20 ca 0d 06 d6 1c 20 20 20 20 c9 30 20 |!m% ..... .0 | 000011e0 3a 20 f2 66 69 6e 64 5f 6f 62 6a 28 6d 25 2b 34 |: .find_obj(m%+4| 000011f0 29 0d 06 e0 3f 20 20 20 20 c9 31 20 3a 20 f2 73 |)...? .1 : .s| 00001200 68 6f 77 5f 63 6f 6e 73 74 28 63 6f 6e 73 74 5f |how_const(const_| 00001210 64 72 61 77 25 20 82 20 b9 29 3a f2 72 65 64 72 |draw% . .):.redr| 00001220 61 77 5f 77 69 6e 64 6f 77 28 6d 61 69 6e 25 29 |aw_window(main%)| 00001230 0d 06 ea 15 20 20 20 20 c9 32 20 3a 20 f2 7a 6f |.... .2 : .zo| 00001240 6f 6d 28 31 29 0d 06 f4 16 20 20 20 20 c9 33 20 |om(1).... .3 | 00001250 3a 20 f2 7a 6f 6f 6d 28 2d 31 29 0d 06 fe 16 20 |: .zoom(-1).... | 00001260 20 20 20 c9 34 20 3a 20 f2 66 61 73 74 73 63 61 | .4 : .fastsca| 00001270 6e 0d 07 08 07 20 20 cb 0d 07 12 05 e1 0d 07 1c |n.... .........| 00001280 04 0d 07 26 04 0d 07 30 0f dd f2 69 63 6f 6e 6d |...&...0...iconm| 00001290 28 6d 25 29 0d 07 3a 0e 20 20 c8 8e 20 21 6d 25 |(m%)..:. .. !m%| 000012a0 20 ca 0d 07 44 17 20 20 20 20 c9 31 20 3a 20 f2 | ...D. .1 : .| 000012b0 6e 65 77 5f 70 6c 61 63 65 0d 07 4e 3d 20 20 20 |new_place..N= | 000012c0 20 c9 32 20 3a 20 f2 73 65 74 74 69 6d 65 3a f2 | .2 : .settime:.| 000012d0 73 63 61 6e 73 6b 79 3a f2 72 65 64 72 61 77 5f |scansky:.redraw_| 000012e0 77 69 6e 64 6f 77 28 6d 61 69 6e 25 29 3a 73 74 |window(main%):st| 000012f0 61 74 65 25 3d 34 0d 07 58 22 20 20 20 20 c9 33 |ate%=4..X" .3| 00001300 20 3a 20 f2 70 6f 70 75 70 28 6d 61 69 6e 25 2c | : .popup(main%,| 00001310 62 78 25 2c 62 79 25 29 0d 07 62 16 20 20 20 20 |bx%,by%)..b. | 00001320 c9 34 20 3a 20 f2 66 69 6e 69 73 68 3a e0 0d 07 |.4 : .finish:...| 00001330 6c 07 20 20 cb 0d 07 76 05 e1 0d 07 80 04 0d 07 |l. ...v........| 00001340 8a 12 dd f2 66 69 6e 64 5f 6f 62 6a 28 6d 25 29 |....find_obj(m%)| 00001350 0d 07 94 0e 20 20 c8 8e 20 21 6d 25 20 ca 0d 07 |.... .. !m% ...| 00001360 9e 26 20 20 20 20 c9 30 20 3a 20 f2 67 65 74 5f |.& .0 : .get_| 00001370 6f 62 6a 28 39 2c 58 73 25 2c 59 73 25 2c 22 53 |obj(9,Xs%,Ys%,"S| 00001380 75 6e 22 29 0d 07 a8 28 20 20 20 20 c9 31 20 3a |un")...( .1 :| 00001390 20 f2 67 65 74 5f 6f 62 6a 28 31 30 2c 58 6d 25 | .get_obj(10,Xm%| 000013a0 2c 59 6d 25 2c 22 4d 6f 6f 6e 22 29 0d 07 b2 41 |,Ym%,"Moon")...A| 000013b0 20 20 20 20 c9 32 20 3a 20 70 25 3d 31 2b 28 6d | .2 : p%=1+(m| 000013c0 25 21 34 29 3a f2 67 65 74 5f 6f 62 6a 28 70 25 |%!4):.get_obj(p%| 000013d0 2c 58 70 25 28 70 25 29 2c 59 70 25 28 70 25 29 |,Xp%(p%),Yp%(p%)| 000013e0 2c 50 6c 61 6e 65 74 24 28 70 25 29 29 0d 07 bc |,Planet$(p%))...| 000013f0 16 20 20 20 20 c9 33 20 3a 20 f2 64 65 63 5f 73 |. .3 : .dec_s| 00001400 74 61 72 0d 07 c6 17 20 20 20 20 c9 34 20 3a 20 |tar.... .4 : | 00001410 f2 64 65 63 5f 63 6f 6e 73 74 0d 07 d0 07 20 20 |.dec_const.... | 00001420 cb 0d 07 da 05 e1 0d 07 e4 04 0d 07 ee 14 dd f2 |................| 00001430 73 68 6f 77 5f 63 6f 6e 73 74 28 76 25 29 0d 07 |show_const(v%)..| 00001440 f8 14 20 20 63 6f 6e 73 74 5f 64 72 61 77 25 3d |.. const_draw%=| 00001450 76 25 0d 08 02 47 20 20 e7 63 6f 6e 73 74 5f 64 |v%...G .const_d| 00001460 72 61 77 25 20 f2 74 69 63 6b 5f 69 74 65 6d 28 |raw% .tick_item(| 00001470 77 69 6e 64 5f 6d 65 6e 75 25 2c 31 29 20 8b f2 |wind_menu%,1) ..| 00001480 75 6e 74 69 63 6b 5f 69 74 65 6d 28 77 69 6e 64 |untick_item(wind| 00001490 5f 6d 65 6e 75 25 2c 31 29 0d 08 0c 05 e1 0d 08 |_menu%,1).......| 000014a0 16 04 0d 08 20 0e dd f2 64 65 63 5f 73 74 61 72 |.... ...dec_star| 000014b0 0d 08 2a 0a ea 69 25 2c 73 24 0d 08 34 14 20 20 |..*..i%,s$..4. | 000014c0 3f 73 74 61 72 5f 70 74 72 25 2d 3d 33 32 0d 08 |?star_ptr%-=32..| 000014d0 3e 19 20 20 73 24 3d a4 73 67 65 74 28 73 74 61 |>. s$=.sget(sta| 000014e0 72 5f 70 74 72 25 29 0d 08 48 0a 20 20 69 25 3d |r_ptr%)..H. i%=| 000014f0 30 0d 08 52 07 20 20 f5 0d 08 5c 0d 20 20 20 20 |0..R. ...\. | 00001500 69 25 2b 3d 31 0d 08 66 26 20 20 fd 20 69 25 3d |i%+=1..f& . i%=| 00001510 4e 61 6d 65 64 5f 73 74 61 72 73 25 20 84 20 53 |Named_stars% . S| 00001520 74 61 72 24 28 69 25 29 3d 73 24 0d 08 70 15 20 |tar$(i%)=s$..p. | 00001530 20 e7 53 74 61 72 24 28 69 25 29 3d 73 24 20 8c | .Star$(i%)=s$ .| 00001540 0d 08 7a 14 20 20 20 20 69 25 3d 73 74 61 72 25 |..z. i%=star%| 00001550 28 69 25 29 0d 08 84 28 20 20 20 20 f2 67 65 74 |(i%)...( .get| 00001560 5f 6f 62 6a 28 69 25 2b 31 30 2c 58 25 28 69 25 |_obj(i%+10,X%(i%| 00001570 29 2c 59 25 28 69 25 29 2c 73 24 29 0d 08 8e 07 |),Y%(i%),s$)....| 00001580 20 20 cc 0d 08 98 33 20 20 20 20 f2 65 72 72 6f | ....3 .erro| 00001590 72 62 6f 78 28 32 34 30 2c 22 4e 6f 20 73 74 61 |rbox(240,"No sta| 000015a0 72 20 6e 61 6d 65 64 20 22 2b 73 24 2b 22 20 4b |r named "+s$+" K| 000015b0 6e 6f 77 6e 22 29 0d 08 a2 07 20 20 cd 0d 08 ac |nown").... ....| 000015c0 13 20 20 24 73 74 61 72 5f 70 74 72 25 3d 22 22 |. $star_ptr%=""| 000015d0 0d 08 b6 05 e1 0d 08 c0 04 0d 08 ca 0f dd f2 64 |...............d| 000015e0 65 63 5f 63 6f 6e 73 74 0d 08 d4 10 ea 69 25 2c |ec_const.....i%,| 000015f0 73 25 2c 66 25 2c 73 24 0d 08 de 14 20 20 f2 73 |s%,f%,s$.... .s| 00001600 68 6f 77 5f 63 6f 6e 73 74 28 b9 29 0d 08 e8 15 |how_const(.)....| 00001610 20 20 3f 63 6f 6e 73 74 5f 70 74 72 25 2d 3d 33 | ?const_ptr%-=3| 00001620 32 0d 08 f2 1a 20 20 73 24 3d a4 73 67 65 74 28 |2.... s$=.sget(| 00001630 63 6f 6e 73 74 5f 70 74 72 25 29 0d 08 fc 0a 20 |const_ptr%).... | 00001640 20 69 25 3d 30 0d 09 06 07 20 20 f5 0d 09 10 0d | i%=0.... .....| 00001650 20 20 20 20 69 25 2b 3d 31 0d 09 1a 21 20 20 fd | i%+=1...! .| 00001660 20 69 25 3d 6e 75 6d 5f 63 6f 6e 73 74 20 84 20 | i%=num_const . | 00001670 43 4e 24 28 69 25 29 3d 73 24 0d 09 24 13 20 20 |CN$(i%)=s$..$. | 00001680 e7 43 4e 24 28 69 25 29 3d 73 24 20 8c 0d 09 2e |.CN$(i%)=s$ ....| 00001690 15 20 20 20 20 73 25 3d 63 6f 6e 73 74 25 28 69 |. s%=const%(i| 000016a0 25 29 0d 09 38 17 20 20 20 20 66 25 3d 63 6f 6e |%)..8. f%=con| 000016b0 73 74 25 28 69 25 2b 31 29 0d 09 42 20 20 20 20 |st%(i%+1)..B | 000016c0 20 f5 3a 73 25 2b 3d 31 3a fd 59 25 28 73 25 29 | .:s%+=1:.Y%(s%)| 000016d0 3e 30 20 84 73 25 3d 66 25 0d 09 4c 28 20 20 20 |>0 .s%=f%..L( | 000016e0 20 f2 67 65 74 5f 6f 62 6a 28 73 25 2b 31 30 2c | .get_obj(s%+10,| 000016f0 58 25 28 73 25 29 2c 59 25 28 73 25 29 2c 73 24 |X%(s%),Y%(s%),s$| 00001700 29 0d 09 56 07 20 20 cc 0d 09 60 3b 20 20 20 20 |)..V. ...`; | 00001710 f2 65 72 72 6f 72 62 6f 78 28 32 34 30 2c 22 4e |.errorbox(240,"N| 00001720 6f 20 43 6f 6e 73 74 65 6c 61 74 69 6f 6e 20 6e |o Constelation n| 00001730 61 6d 65 64 20 22 2b 73 24 2b 22 20 4b 6e 6f 77 |amed "+s$+" Know| 00001740 6e 22 29 0d 09 6a 07 20 20 cd 0d 09 74 14 20 20 |n")..j. ...t. | 00001750 24 63 6f 6e 73 74 5f 70 74 72 25 3d 22 22 0d 09 |$const_ptr%=""..| 00001760 7e 05 e1 0d 09 88 04 0d 09 92 1a dd f2 67 65 74 |~............get| 00001770 5f 6f 62 6a 28 69 25 2c 78 25 2c 79 25 2c 6e 24 |_obj(i%,x%,y%,n$| 00001780 29 0d 09 9c 0c 20 20 c8 8e 20 b9 20 ca 0d 09 a6 |).... .. . ....| 00001790 41 20 20 20 20 c9 20 28 79 25 3c 30 29 20 20 20 |A . (y%<0) | 000017a0 20 20 20 3a f2 69 6e 66 6f 62 6f 78 28 6e 24 2c | :.infobox(n$,| 000017b0 22 4f 62 6a 65 63 74 20 69 73 20 62 65 6c 6f 77 |"Object is below| 000017c0 20 74 68 65 20 48 6f 72 69 7a 6f 6e 22 29 0d 09 | the Horizon")..| 000017d0 b0 30 20 20 20 20 c9 20 28 79 25 3e 67 64 25 2a |.0 . (y%>gd%*| 000017e0 36 36 29 20 3a f2 76 65 72 74 5f 6f 62 6a 65 63 |66) :.vert_objec| 000017f0 74 28 69 25 2c 78 25 2c 79 25 2c 6e 24 29 0d 09 |t(i%,x%,y%,n$)..| 00001800 ba 2c 20 20 20 20 7f 20 20 20 20 20 20 20 20 3a |., . :| 00001810 f2 68 6f 72 69 7a 5f 6f 62 6a 65 63 74 28 69 25 |.horiz_object(i%| 00001820 2c 78 25 2c 79 25 2c 6e 24 29 0d 09 c4 07 20 20 |,x%,y%,n$).... | 00001830 cb 0d 09 ce 05 e1 0d 09 d8 04 0d 09 e2 1e dd f2 |................| 00001840 76 65 72 74 5f 6f 62 6a 65 63 74 28 69 25 2c 78 |vert_object(i%,x| 00001850 25 2c 79 25 2c 6e 24 29 0d 09 ec 2f 20 20 f2 69 |%,y%,n$).../ .i| 00001860 6e 66 6f 62 6f 78 28 6e 24 2c 22 4f 62 6a 65 63 |nfobox(n$,"Objec| 00001870 74 20 69 73 20 61 62 6f 76 65 20 36 36 20 64 65 |t is above 66 de| 00001880 67 72 65 65 73 22 29 0d 09 f6 05 e1 0d 0a 00 04 |grees").........| 00001890 0d 0a 0a 1f dd f2 68 6f 72 69 7a 5f 6f 62 6a 65 |......horiz_obje| 000018a0 63 74 28 69 25 2c 78 25 2c 79 25 2c 6e 24 29 0d |ct(i%,x%,y%,n$).| 000018b0 0a 14 2e 20 20 f2 73 63 72 6f 6c 6c 5f 77 69 6e |... .scroll_win| 000018c0 64 28 6d 61 69 6e 25 2c 78 25 2c 79 25 2c 33 36 |d(main%,x%,y%,36| 000018d0 30 2a 67 64 25 2c 67 64 25 2a 36 36 29 0d 0a 1e |0*gd%,gd%*66)...| 000018e0 18 20 20 c8 97 20 b8 20 62 78 25 2b 78 25 2c 62 |. .. . bx%+x%,b| 000018f0 79 25 2b 79 25 0d 0a 28 05 e1 0d 0a 32 04 0d 0a |y%+y%..(....2...| 00001900 3c 0f dd f2 6e 65 77 5f 70 6c 61 63 65 0d 0a 46 |<...new_place..F| 00001910 3f 20 20 4c 6f 6e 67 3d a4 67 65 74 5f 61 6e 67 |? Long=.get_ang| 00001920 6c 65 28 6c 6f 6e 67 5f 70 74 72 25 2c 22 45 57 |le(long_ptr%,"EW| 00001930 22 2c 56 69 65 77 65 72 5f 52 61 68 2a 31 35 2c |",Viewer_Rah*15,| 00001940 22 4c 6f 6e 67 69 74 75 64 65 22 29 0d 0a 50 3c |"Longitude")..P<| 00001950 20 20 4c 61 74 3d a4 67 65 74 5f 61 6e 67 6c 65 | Lat=.get_angle| 00001960 28 6c 61 74 5f 70 74 72 25 2c 22 4e 53 22 2c 9d |(lat_ptr%,"NS",.| 00001970 28 56 69 65 77 65 72 5f 4c 61 74 29 2c 22 4c 61 |(Viewer_Lat),"La| 00001980 74 69 74 75 64 65 22 29 0d 0a 5a 17 20 20 f2 73 |titude")..Z. .s| 00001990 65 74 70 6f 73 28 4c 61 74 2c 4c 6f 6e 67 29 0d |etpos(Lat,Long).| 000019a0 0a 64 15 20 20 f2 63 61 6c 63 5f 65 61 72 74 68 |.d. .calc_earth| 000019b0 5f 70 6f 73 0d 0a 6e 0e 20 20 f2 73 63 61 6e 73 |_pos..n. .scans| 000019c0 6b 79 0d 0a 78 1b 20 20 f2 72 65 64 72 61 77 5f |ky..x. .redraw_| 000019d0 77 69 6e 64 6f 77 28 6d 61 69 6e 25 29 0d 0a 82 |window(main%)...| 000019e0 05 e1 0d 0a 8c 04 0d 0a 96 1d dd a4 67 65 74 5f |............get_| 000019f0 61 6e 67 6c 65 28 61 25 2c 64 24 2c 64 65 66 2c |angle(a%,d$,def,| 00001a00 65 24 29 0d 0a a0 10 ea 64 25 2c 6d 25 2c 73 25 |e$).....d%,m%,s%| 00001a10 2c 73 24 0d 0a aa 12 20 20 73 24 3d a4 73 67 65 |,s$.... s$=.sge| 00001a20 74 28 61 25 29 0d 0a b4 11 20 20 c8 8e 20 c2 73 |t(a%).... .. .s| 00001a30 24 2c 31 29 20 ca 0d 0a be 16 20 20 20 20 c9 20 |$,1) ..... . | 00001a40 c0 64 24 2c 31 29 20 3a 73 25 3d 31 0d 0a c8 16 |.d$,1) :s%=1....| 00001a50 20 20 20 20 c9 20 c2 64 24 2c 31 29 3a 73 25 3d | . .d$,1):s%=| 00001a60 2d 31 0d 0a d2 16 20 20 20 20 7f 20 20 20 20 20 |-1.... . | 00001a70 20 20 20 3a 73 25 3d 30 0d 0a dc 07 20 20 cb 0d | :s%=0.... ..| 00001a80 0a e6 11 20 20 64 25 3d a7 73 24 2c 22 64 22 29 |... d%=.s$,"d")| 00001a90 0d 0a f0 11 20 20 6d 25 3d a7 73 24 2c 22 6d 22 |.... m%=.s$,"m"| 00001aa0 29 0d 0a fa 57 20 20 e7 73 25 3d 30 20 84 a7 73 |)...W .s%=0 ..s| 00001ab0 24 2c 22 64 22 2c 64 25 2b 31 29 3e 30 20 84 64 |$,"d",d%+1)>0 .d| 00001ac0 25 3c 32 20 84 28 6d 25 3e 30 20 80 28 6d 25 3c |%<2 .(m%>0 .(m%<| 00001ad0 64 25 2b 32 20 84 6d 25 3c a9 28 73 24 29 2d 31 |d%+2 .m%<.(s$)-1| 00001ae0 29 29 20 84 28 6d 25 3d 30 20 80 64 25 3c a9 28 |)) .(m%=0 .d%<.(| 00001af0 73 24 29 2d 31 29 20 8c 0d 0b 04 46 20 20 20 20 |s$)-1) ....F | 00001b00 f2 65 72 72 6f 72 62 6f 78 28 32 34 30 2c 65 24 |.errorbox(240,e$| 00001b10 2b 22 20 22 2b 73 24 2b 22 20 69 6c 6c 20 66 6f |+" "+s$+" ill fo| 00001b20 72 6d 61 74 74 65 64 22 2b c3 28 64 25 29 2b c3 |rmatted"+.(d%)+.| 00001b30 28 6d 25 29 2b c3 28 a9 28 73 24 29 29 29 0d 0b |(m%)+.(.(s$)))..| 00001b40 0e 07 20 20 cc 0d 0b 18 35 20 20 20 20 64 65 66 |.. ....5 def| 00001b50 3d 73 25 2a 28 bb 28 c0 73 24 2c 64 25 2d 31 29 |=s%*(.(.s$,d%-1)| 00001b60 29 2b bb 28 c1 73 24 2c 64 25 2b 31 2c 6d 25 2d |)+.(.s$,d%+1,m%-| 00001b70 64 25 2d 31 29 29 2f 36 30 29 0d 0b 22 07 20 20 |d%-1))/60)..". | 00001b80 cd 0d 0b 2c 08 3d 64 65 66 0d 0b 36 04 0d 0b 40 |...,.=def..6...@| 00001b90 0e dd f2 7a 6f 6f 6d 28 73 25 29 0d 0b 4a 14 20 |...zoom(s%)..J. | 00001ba0 20 73 63 25 3d 73 63 25 2a 28 32 5e 73 25 29 0d | sc%=sc%*(2^s%).| 00001bb0 0b 54 14 20 20 67 64 25 3d 67 64 25 2a 28 32 5e |.T. gd%=gd%*(2^| 00001bc0 73 25 29 0d 0b 5e 0e 20 20 73 63 73 25 2d 3d 73 |s%)..^. scs%-=s| 00001bd0 25 0d 0b 68 2a 20 20 f2 72 65 73 69 7a 65 5f 77 |%..h* .resize_w| 00001be0 69 6e 64 6f 77 28 6d 61 69 6e 25 2c 33 36 30 2a |indow(main%,360*| 00001bf0 67 64 25 2c 67 64 25 2a 36 36 29 0d 0b 72 0e 20 |gd%,gd%*66)..r. | 00001c00 20 f2 73 63 61 6e 73 6b 79 0d 0b 7c 44 20 20 e7 | .scansky..|D .| 00001c10 73 63 73 25 3c 3d 30 20 f2 73 68 61 64 65 5f 69 |scs%<=0 .shade_i| 00001c20 74 65 6d 28 77 69 6e 64 5f 6d 65 6e 75 25 2c 32 |tem(wind_menu%,2| 00001c30 29 20 8b f2 65 6e 61 62 6c 65 5f 69 74 65 6d 28 |) ..enable_item(| 00001c40 77 69 6e 64 5f 6d 65 6e 75 25 2c 32 29 0d 0b 86 |wind_menu%,2)...| 00001c50 44 20 20 e7 73 63 73 25 3e 3d 34 20 f2 73 68 61 |D .scs%>=4 .sha| 00001c60 64 65 5f 69 74 65 6d 28 77 69 6e 64 5f 6d 65 6e |de_item(wind_men| 00001c70 75 25 2c 33 29 20 8b f2 65 6e 61 62 6c 65 5f 69 |u%,3) ..enable_i| 00001c80 74 65 6d 28 77 69 6e 64 5f 6d 65 6e 75 25 2c 33 |tem(wind_menu%,3| 00001c90 29 0d 0b 90 0e 20 20 73 74 61 74 65 25 3d 31 0d |).... state%=1.| 00001ca0 0b 9a 05 e1 0d 0b a4 04 0d 0b ae 04 0d 0b b8 04 |................| 00001cb0 0d 0b c2 1c dd f2 72 65 64 72 61 77 5f 77 69 6e |......redraw_win| 00001cc0 64 6f 77 28 68 61 6e 64 6c 65 25 29 0d 0b cc 0a |dow(handle%)....| 00001cd0 ea 6d 6f 72 65 25 0d 0b d6 32 20 24 68 77 5f 74 |.more%...2 $hw_t| 00001ce0 69 74 6c 65 25 3d 22 48 6f 72 69 7a 6f 6e 74 61 |itle%="Horizonta| 00001cf0 6c 20 56 69 65 77 20 61 74 20 22 2b a4 73 74 72 |l View at "+.str| 00001d00 69 6e 67 5f 74 69 6d 65 0d 0b e0 16 20 e7 20 68 |ing_time.... . h| 00001d10 61 6e 64 6c 65 25 3d 6d 61 69 6e 25 20 8c 0d 0b |andle%=main% ...| 00001d20 ea 32 20 20 20 20 6d 6f 72 65 25 20 3d 20 a4 67 |.2 more% = .g| 00001d30 65 74 5f 77 69 6e 64 6f 77 28 6d 61 69 6e 25 2c |et_window(main%,| 00001d40 78 30 25 2c 78 31 25 2c 79 30 25 2c 79 31 25 29 |x0%,x1%,y0%,y1%)| 00001d50 0d 0b f4 10 20 20 20 20 c8 95 20 6d 6f 72 65 25 |.... .. more%| 00001d60 0d 0b fe 29 20 20 20 20 20 20 f2 75 70 64 61 74 |...) .updat| 00001d70 65 5f 77 69 6e 64 6f 77 28 78 30 25 2c 78 31 25 |e_window(x0%,x1%| 00001d80 2c 79 30 25 2c 79 31 25 29 0d 0c 08 35 20 20 20 |,y0%,y1%)...5 | 00001d90 20 20 20 6d 6f 72 65 25 3d a4 67 65 74 5f 72 65 | more%=.get_re| 00001da0 63 74 61 6e 67 6c 65 28 6d 61 69 6e 25 2c 78 30 |ctangle(main%,x0| 00001db0 25 2c 78 31 25 2c 79 30 25 2c 79 31 25 29 0d 0c |%,x1%,y0%,y1%)..| 00001dc0 12 09 20 20 20 20 ce 0d 0c 1c 07 20 20 cd 0d 0c |.. ..... ...| 00001dd0 26 05 e1 0d 0c 30 04 0d 0c 3a 04 0d 0c 44 23 f4 |&....0...:...D#.| 00001de0 20 2f 20 57 69 6e 64 6f 77 20 72 65 64 72 61 77 | / Window redraw| 00001df0 69 6e 67 20 72 6f 75 74 69 6e 65 73 20 2f 0d 0c |ing routines /..| 00001e00 4e 41 f4 20 2f 20 56 65 72 73 69 6f 6e 20 35 2e |NA. / Version 5.| 00001e10 32 20 2d 20 4f 70 74 69 6d 69 73 65 64 20 66 6f |2 - Optimised fo| 00001e20 72 20 73 70 65 65 64 20 6f 6e 20 62 61 73 69 63 |r speed on basic| 00001e30 2f 63 6f 6d 70 69 6c 65 64 20 62 61 73 69 63 0d |/compiled basic.| 00001e40 0c 58 04 0d 0c 62 24 dd f2 75 70 64 61 74 65 5f |.X...b$..update_| 00001e50 77 69 6e 64 6f 77 28 78 30 25 2c 78 31 25 2c 79 |window(x0%,x1%,y| 00001e60 30 25 2c 79 31 25 29 0d 0c 6c 13 ea 69 25 2c 66 |0%,y1%)..l..i%,f| 00001e70 25 2c 61 25 2c 62 25 2c 74 25 0d 0c 76 12 f4 20 |%,a%,b%,t%..v.. | 00001e80 23 72 65 67 69 73 74 65 72 20 61 25 0d 0c 80 12 |#register a%....| 00001e90 f4 20 23 72 65 67 69 73 74 65 72 20 62 25 0d 0c |. #register b%..| 00001ea0 8a 12 f4 20 23 72 65 67 69 73 74 65 72 20 69 25 |... #register i%| 00001eb0 0d 0c 94 12 f4 20 23 72 65 67 69 73 74 65 72 20 |..... #register | 00001ec0 74 25 0d 0c 9e 0d 20 20 78 30 25 2d 3d 31 36 0d |t%.... x0%-=16.| 00001ed0 0c a8 0d 20 20 78 31 25 2b 3d 31 36 0d 0c b2 0d |... x1%+=16....| 00001ee0 20 20 79 30 25 2d 3d 31 36 0d 0c bc 0d 20 20 79 | y0%-=16.... y| 00001ef0 31 25 2b 3d 31 36 0d 0c c6 13 20 20 f2 68 6f 72 |1%+=16.... .hor| 00001f00 69 7a 5f 77 69 6e 64 6f 77 0d 0c d0 04 0d 0c da |iz_window.......| 00001f10 14 20 20 e7 63 6f 6e 73 74 5f 64 72 61 77 25 20 |. .const_draw% | 00001f20 8c 0d 0c e4 12 20 20 20 20 c8 99 20 43 6f 6c 25 |..... .. Col%| 00001f30 2c 31 35 0d 0c ee 11 20 20 20 20 66 25 3d 67 64 |,15.... f%=gd| 00001f40 25 2a 39 30 0d 0c f8 17 20 20 20 20 e3 69 25 3d |%*90.... .i%=| 00001f50 31 b8 6d 61 78 5f 6c 69 6e 65 25 0d 0d 02 14 20 |1.max_line%.... | 00001f60 20 20 20 20 20 61 25 3d 6c 73 25 28 69 25 29 0d | a%=ls%(i%).| 00001f70 0d 0c 14 20 20 20 20 20 20 62 25 3d 6c 66 25 28 |... b%=lf%(| 00001f80 69 25 29 0d 0d 16 50 20 20 20 20 20 20 e7 94 28 |i%)...P ..(| 00001f90 58 25 28 61 25 29 2d 58 25 28 62 25 29 29 3c 66 |X%(a%)-X%(b%))<f| 00001fa0 25 20 ec 58 25 28 61 25 29 2b 62 78 25 2c 59 25 |% .X%(a%)+bx%,Y%| 00001fb0 28 61 25 29 2b 62 79 25 3a f0 26 31 35 2c 58 25 |(a%)+by%:.&15,X%| 00001fc0 28 62 25 29 2b 62 78 25 2c 59 25 28 62 25 29 2b |(b%)+bx%,Y%(b%)+| 00001fd0 62 79 25 0d 0d 20 09 20 20 20 20 ed 0d 0d 2a 07 |by%.. . ...*.| 00001fe0 20 20 cd 0d 0d 34 04 0d 0d 3e 11 20 20 e3 69 25 | ...4...>. .i%| 00001ff0 3d 31 b8 20 73 64 73 25 0d 0d 48 22 20 20 20 20 |=1. sds%..H" | 00002000 e7 58 25 28 69 25 29 3e 78 30 25 20 80 20 58 25 |.X%(i%)>x0% . X%| 00002010 28 69 25 29 3c 78 31 25 20 8c 0d 0d 52 24 20 20 |(i%)<x1% ...R$ | 00002020 20 20 20 20 e7 20 59 25 28 69 25 29 3e 79 30 25 | . Y%(i%)>y0%| 00002030 20 80 59 25 28 69 25 29 3c 79 31 25 20 8c 0d 0d | .Y%(i%)<y1% ...| 00002040 5c 26 20 20 20 20 20 20 20 20 74 25 3d 4d 61 67 |\& t%=Mag| 00002050 28 69 25 29 2b 73 63 73 25 3a e7 74 25 3c 30 20 |(i%)+scs%:.t%<0 | 00002060 74 25 3d 30 0d 0d 66 68 20 20 20 20 20 20 20 20 |t%=0..fh | 00002070 e7 74 25 3c 39 20 c8 99 73 70 6f 70 25 2c 26 32 |.t%<9 ..spop%,&2| 00002080 33 34 2c 73 70 72 69 74 65 73 25 2c 73 6d 25 28 |34,sprites%,sm%(| 00002090 74 25 29 2c 58 25 28 69 25 29 2d 6f 25 28 74 25 |t%),X%(i%)-o%(t%| 000020a0 29 2b 62 78 25 2c 59 25 28 69 25 29 2d 6f 25 28 |)+bx%,Y%(i%)-o%(| 000020b0 74 25 29 2b 62 79 25 2c 38 2c 66 61 63 74 6f 72 |t%)+by%,8,factor| 000020c0 73 25 2c 70 69 78 74 72 61 6e 73 25 0d 0d 70 0b |s%,pixtrans%..p.| 000020d0 20 20 20 20 20 20 cd 0d 0d 7a 09 20 20 20 20 cd | ...z. .| 000020e0 0d 0d 84 07 20 20 ed 0d 0d 8e 04 0d 0d 98 25 20 |.... ........% | 000020f0 20 78 30 25 2d 3d 32 30 3a 78 31 25 2b 3d 32 30 | x0%-=20:x1%+=20| 00002100 3a 79 30 25 2d 3d 32 30 3a 79 31 25 2b 3d 32 30 |:y0%-=20:y1%+=20| 00002110 0d 0d a2 0d 20 20 e3 69 25 3d 31 b8 38 0d 0d ac |.... .i%=1.8...| 00002120 30 20 20 20 20 f2 73 63 61 6c 65 5f 70 6c 6f 74 |0 .scale_plot| 00002130 28 58 70 25 28 69 25 29 2c 59 70 25 28 69 25 29 |(Xp%(i%),Yp%(i%)| 00002140 2c 50 6c 61 6e 65 74 24 28 69 25 29 29 0d 0d b6 |,Planet$(i%))...| 00002150 07 20 20 ed 0d 0d c0 2d 20 20 f2 73 63 61 6c 65 |. ....- .scale| 00002160 5f 70 6c 6f 74 28 58 6d 25 2c 59 6d 25 2c 22 6d |_plot(Xm%,Ym%,"m| 00002170 6f 6f 6e 22 2b 6d 6f 6f 6e 5f 70 68 61 73 65 24 |oon"+moon_phase$| 00002180 29 0d 0d ca 20 20 20 f2 73 63 61 6c 65 5f 70 6c |)... .scale_pl| 00002190 6f 74 28 58 73 25 2c 59 73 25 2c 22 73 75 6e 22 |ot(Xs%,Ys%,"sun"| 000021a0 29 0d 0d d4 05 e1 0d 0d de 04 0d 0d e8 1a dd f2 |)...............| 000021b0 73 63 61 6c 65 5f 70 6c 6f 74 28 78 25 2c 79 25 |scale_plot(x%,y%| 000021c0 2c 73 24 29 0d 0d f2 62 20 20 e7 78 25 3e 78 30 |,s$)...b .x%>x0| 000021d0 25 20 80 78 25 3c 78 31 25 20 80 79 25 3e 79 30 |% .x%<x1% .y%>y0| 000021e0 25 20 80 79 25 3c 79 31 25 20 c8 99 20 73 70 6f |% .y%<y1% .. spo| 000021f0 70 25 2c 26 31 33 34 2c 73 70 72 69 74 65 73 25 |p%,&134,sprites%| 00002200 2c 73 24 2c 78 25 2b 62 78 25 2c 79 25 2b 62 79 |,s$,x%+bx%,y%+by| 00002210 25 2c 38 2c 66 61 63 74 6f 72 73 25 2c 70 69 78 |%,8,factors%,pix| 00002220 74 72 61 6e 73 25 0d 0d fc 05 e1 0d 0e 06 04 0d |trans%..........| 00002230 0e 10 04 0d 0e 1a 12 dd f2 68 6f 72 69 7a 5f 77 |.........horiz_w| 00002240 69 6e 64 6f 77 0d 0e 24 10 ea 69 25 2c 74 25 2c |indow..$..i%,t%,| 00002250 76 25 2c 63 25 0d 0e 2e 1b 20 20 ef 32 33 2c 36 |v%,c%.... .23,6| 00002260 2c 31 2c 31 2c 31 2c 31 2c 31 2c 31 2c 31 2c 31 |,1,1,1,1,1,1,1,1| 00002270 0d 0e 38 13 20 20 76 25 3d 62 79 25 2b 67 64 25 |..8. v%=by%+gd%| 00002280 2a 37 32 0d 0e 42 0f 20 20 63 25 3d 67 64 25 2a |*72..B. c%=gd%*| 00002290 34 35 0d 0e 4c 10 20 20 c8 99 20 43 6f 6c 25 2c |45..L. .. Col%,| 000022a0 31 34 0d 0e 56 0d 20 20 e3 69 25 3d 31 b8 38 0d |14..V. .i%=1.8.| 000022b0 0e 60 26 20 20 20 20 ec 62 78 25 2d 38 2a a9 43 |.`& .bx%-8*.C| 000022c0 50 24 28 69 25 29 2b 63 25 2a 28 69 25 29 2c 62 |P$(i%)+c%*(i%),b| 000022d0 79 25 2b 33 32 0d 0e 6a 10 20 20 20 20 f1 43 50 |y%+32..j. .CP| 000022e0 24 28 69 25 29 0d 0e 74 14 20 20 20 20 74 25 3d |$(i%)..t. t%=| 000022f0 62 78 25 2b 63 25 2a 69 25 0d 0e 7e 0f 20 20 20 |bx%+c%*i%..~. | 00002300 20 ec 74 25 2c 62 79 25 0d 0e 88 12 20 20 20 20 | .t%,by%.... | 00002310 f0 26 31 35 2c 74 25 2c 76 25 0d 0e 92 09 20 20 |.&15,t%,v%.... | 00002320 20 20 f5 0d 0e 9c 11 20 20 20 20 20 20 74 25 2d | ..... t%-| 00002330 3d 34 35 30 0d 0e a6 11 20 20 20 20 20 20 ec 74 |=450.... .t| 00002340 25 2c 62 79 25 0d 0e b0 14 20 20 20 20 20 20 f0 |%,by%.... .| 00002350 26 31 35 2c 74 25 2c 76 25 0d 0e ba 1e 20 20 20 |&15,t%,v%.... | 00002360 20 fd 74 25 3c 3d 62 78 25 2b 63 25 2a 28 69 25 | .t%<=bx%+c%*(i%| 00002370 2d 31 29 2b 34 35 30 0d 0e c4 07 20 20 ed 0d 0e |-1)+450.... ...| 00002380 ce 14 20 20 74 25 3d 62 78 25 2b 67 64 25 2a 33 |.. t%=bx%+gd%*3| 00002390 36 30 0d 0e d8 1a 20 20 e3 69 25 3d 30 20 b8 20 |60.... .i%=0 . | 000023a0 36 30 20 88 20 34 30 30 2f 67 64 25 0d 0e e2 15 |60 . 400/gd%....| 000023b0 20 20 20 20 76 25 3d 62 79 25 2b 67 64 25 2a 69 | v%=by%+gd%*i| 000023c0 25 0d 0e ec 12 20 20 20 20 ec 62 78 25 2c 76 25 |%.... .bx%,v%| 000023d0 2b 33 32 0d 0e f6 0c 20 20 20 20 f1 3b 69 25 0d |+32.... .;i%.| 000023e0 0f 00 0f 20 20 20 20 ec 62 78 25 2c 76 25 0d 0f |... .bx%,v%..| 000023f0 0a 12 20 20 20 20 f0 26 31 35 2c 74 25 2c 76 25 |.. .&15,t%,v%| 00002400 0d 0f 14 07 20 20 ed 0d 0f 1e 05 e1 0d 0f 28 04 |.... ........(.| 00002410 0d 0f 32 31 f4 20 2f 20 52 6f 75 74 69 6e 65 73 |..21. / Routines| 00002420 20 66 6f 72 20 63 61 6c 63 75 6c 61 74 69 6e 67 | for calculating| 00002430 20 73 74 61 72 20 70 6f 73 69 74 69 6f 6e 73 20 | star positions | 00002440 2f 0d 0f 3c 04 0d 0f 46 04 0d 0f 50 1c dd f2 73 |/..<...F...P...s| 00002450 63 61 6e 73 6b 79 3a ea 69 25 2c 54 31 2c 61 6c |cansky:.i%,T1,al| 00002460 74 2c 61 7a 6d 0d 0f 5a 13 20 20 f2 68 6f 75 72 |t,azm..Z. .hour| 00002470 67 6c 61 73 73 5f 6f 6e 0d 0f 64 15 20 20 f2 63 |glass_on..d. .c| 00002480 61 6c 63 5f 65 61 72 74 68 5f 70 6f 73 0d 0f 6e |alc_earth_pos..n| 00002490 11 20 20 e3 69 25 3d 31 b8 20 73 64 73 25 0d 0f |. .i%=1. sds%..| 000024a0 78 2a 20 20 20 20 f2 63 61 6c 63 5f 70 6f 73 28 |x* .calc_pos(| 000024b0 52 61 68 28 69 25 29 2c 44 65 63 28 69 25 29 2c |Rah(i%),Dec(i%),| 000024c0 61 6c 74 2c 61 7a 6d 29 0d 0f 82 16 20 20 20 20 |alt,azm).... | 000024d0 59 25 28 69 25 29 3d 73 63 25 2a 61 6c 74 0d 0f |Y%(i%)=sc%*alt..| 000024e0 8c 16 20 20 20 20 58 25 28 69 25 29 3d 73 63 25 |.. X%(i%)=sc%| 000024f0 2a 61 7a 6d 0d 0f 96 07 20 20 ed 0d 0f a0 16 20 |*azm.... ..... | 00002500 20 f2 63 61 6c 63 5f 6f 75 72 5f 67 61 6c 61 78 | .calc_our_galax| 00002510 79 0d 0f aa 14 20 20 f2 68 6f 75 72 67 6c 61 73 |y.... .hourglas| 00002520 73 5f 6f 66 66 0d 0f b4 05 e1 0d 0f be 04 0d 0f |s_off...........| 00002530 c8 04 0d 0f d2 15 dd a4 74 65 6e 5f 73 74 61 72 |........ten_star| 00002540 73 28 f8 20 69 25 29 0d 0f dc 14 ea 6e 25 2c 54 |s(. i%).....n%,T| 00002550 31 2c 20 61 6c 74 2c 20 61 7a 6d 0d 0f e6 0a 20 |1, alt, azm.... | 00002560 20 6e 25 3d 30 0d 0f f0 07 20 20 f5 0d 0f fa 2a | n%=0.... ....*| 00002570 20 20 20 20 f2 63 61 6c 63 5f 70 6f 73 28 52 61 | .calc_pos(Ra| 00002580 68 28 69 25 29 2c 44 65 63 28 69 25 29 2c 61 6c |h(i%),Dec(i%),al| 00002590 74 2c 61 7a 6d 29 0d 10 04 16 20 20 20 20 59 25 |t,azm).... Y%| 000025a0 28 69 25 29 3d 73 63 25 2a 61 6c 74 0d 10 0e 16 |(i%)=sc%*alt....| 000025b0 20 20 20 20 58 25 28 69 25 29 3d 73 63 25 2a 61 | X%(i%)=sc%*a| 000025c0 7a 6d 0d 10 18 0d 20 20 20 20 69 25 2b 3d 31 0d |zm.... i%+=1.| 000025d0 10 22 0d 20 20 20 20 6e 25 2b 3d 31 0d 10 2c 17 |.". n%+=1..,.| 000025e0 20 20 fd 20 69 25 3d 73 64 73 25 20 84 20 6e 25 | . i%=sds% . n%| 000025f0 3d 31 30 0d 10 36 0e 3d 28 69 25 3d 73 64 73 25 |=10..6.=(i%=sds%| 00002600 29 0d 10 40 04 0d 10 4a 26 dd f2 63 61 6c 63 5f |)..@...J&..calc_| 00002610 6f 75 72 5f 67 61 6c 61 78 79 3a ea 69 25 2c 54 |our_galaxy:.i%,T| 00002620 31 2c 20 61 6c 74 2c 20 61 7a 6d 0d 10 54 0d 20 |1, alt, azm..T. | 00002630 20 e3 69 25 3d 31 b8 38 0d 10 5e 1b 20 20 20 20 | .i%=1.8..^. | 00002640 f2 70 6c 61 6e 65 74 28 69 25 2c 61 6c 74 2c 61 |.planet(i%,alt,a| 00002650 7a 6d 29 0d 10 68 17 20 20 20 20 59 70 25 28 69 |zm)..h. Yp%(i| 00002660 25 29 3d 73 63 25 2a 61 6c 74 0d 10 72 17 20 20 |%)=sc%*alt..r. | 00002670 20 20 58 70 25 28 69 25 29 3d 73 63 25 2a 61 7a | Xp%(i%)=sc%*az| 00002680 6d 0d 10 7c 07 20 20 ed 0d 10 86 14 20 20 f2 6d |m..|. ..... .m| 00002690 6f 6f 6e 28 61 6c 74 2c 61 7a 6d 29 0d 10 90 11 |oon(alt,azm)....| 000026a0 20 20 59 6d 25 3d 73 63 25 2a 61 6c 74 0d 10 9a | Ym%=sc%*alt...| 000026b0 11 20 20 58 6d 25 3d 73 63 25 2a 61 7a 6d 0d 10 |. Xm%=sc%*azm..| 000026c0 a4 13 20 20 f2 73 75 6e 28 61 6c 74 2c 61 7a 6d |.. .sun(alt,azm| 000026d0 29 0d 10 ae 11 20 20 59 73 25 3d 73 63 25 2a 61 |).... Ys%=sc%*a| 000026e0 6c 74 0d 10 b8 11 20 20 58 73 25 3d 73 63 25 2a |lt.... Xs%=sc%*| 000026f0 61 7a 6d 0d 10 c2 05 e1 0d 10 cc 04 0d 10 d6 04 |azm.............| 00002700 0d 10 e0 1d f4 20 2f 20 4f 62 6a 65 63 74 20 64 |..... / Object d| 00002710 65 73 63 72 69 70 74 69 6f 6e 73 20 2f 0d 10 ea |escriptions /...| 00002720 04 0d 10 f4 12 dd f2 75 6e 71 75 65 28 58 25 2c |.......unque(X%,| 00002730 59 25 29 0d 10 fe 11 ea 66 25 2c 69 25 2c 72 25 |Y%).....f%,i%,r%| 00002740 2c 6e 72 25 0d 11 08 0d 20 20 72 25 3d 34 30 39 |,nr%.... r%=409| 00002750 36 0d 11 12 0a 20 20 66 25 3d 30 0d 11 1c 0d 20 |6.... f%=0.... | 00002760 20 e3 69 25 3d 31 b8 38 0d 11 26 2c 20 20 20 20 | .i%=1.8..&, | 00002770 6e 72 25 3d 28 28 58 25 2d 58 70 25 28 69 25 29 |nr%=((X%-Xp%(i%)| 00002780 29 5e 32 20 2b 28 59 25 2d 59 70 25 28 69 25 29 |)^2 +(Y%-Yp%(i%)| 00002790 29 5e 32 29 0d 11 30 1f 20 20 20 20 e7 20 6e 72 |)^2)..0. . nr| 000027a0 25 3c 72 25 20 8c 20 66 25 3d 69 25 3a 72 25 3d |%<r% . f%=i%:r%=| 000027b0 6e 72 25 0d 11 3a 07 20 20 ed 0d 11 44 0b 20 20 |nr%..:. ...D. | 000027c0 e7 66 25 20 8c 0d 11 4e 40 20 20 20 20 f2 69 6e |.f% ...N@ .in| 000027d0 66 6f 62 6f 78 28 22 49 6e 66 6f 20 6f 6e 20 50 |fobox("Info on P| 000027e0 6c 61 6e 65 74 20 22 2b 50 6c 61 6e 65 74 24 28 |lanet "+Planet$(| 000027f0 66 25 29 2c a4 70 6c 61 6e 65 74 5f 64 61 74 61 |f%),.planet_data| 00002800 28 66 25 29 29 0d 11 58 07 20 20 cc 0d 11 62 0c |(f%))..X. ...b.| 00002810 20 20 20 20 69 25 3d 30 0d 11 6c 0c 20 20 20 20 | i%=0..l. | 00002820 66 25 3d 30 0d 11 76 09 20 20 20 20 f5 0d 11 80 |f%=0..v. ....| 00002830 0f 20 20 20 20 20 20 69 25 2b 3d 31 0d 11 8a 2c |. i%+=1...,| 00002840 20 20 20 20 20 20 6e 72 25 3d 28 28 58 25 2d 58 | nr%=((X%-X| 00002850 25 28 69 25 29 29 5e 32 20 2b 28 59 25 2d 59 25 |%(i%))^2 +(Y%-Y%| 00002860 28 69 25 29 29 5e 32 29 0d 11 94 21 20 20 20 20 |(i%))^2)...! | 00002870 20 20 e7 20 6e 72 25 3c 72 25 20 8c 20 66 25 3d | . nr%<r% . f%=| 00002880 69 25 3a 72 25 3d 6e 72 25 0d 11 9e 17 20 20 20 |i%:r%=nr%.... | 00002890 20 fd 72 25 3c 31 36 20 84 69 25 3d 73 64 73 25 | .r%<16 .i%=sds%| 000028a0 0d 11 a8 0d 20 20 20 20 e7 66 25 20 8c 0d 11 b2 |.... .f% ....| 000028b0 1a 20 20 20 20 20 20 ea 20 61 6c 74 2c 20 61 7a |. . alt, az| 000028c0 6d 2c 20 64 61 74 24 0d 11 bc 2c 20 20 20 20 20 |m, dat$..., | 000028d0 20 f2 63 61 6c 63 5f 70 6f 73 28 52 61 68 28 66 | .calc_pos(Rah(f| 000028e0 25 29 2c 44 65 63 28 66 25 29 2c 61 6c 74 2c 61 |%),Dec(f%),alt,a| 000028f0 7a 6d 29 0d 11 c6 23 20 20 20 20 20 20 64 61 74 |zm)...# dat| 00002900 24 3d a4 70 6f 73 5f 73 74 72 69 6e 67 28 61 6c |$=.pos_string(al| 00002910 74 2c 61 7a 6d 29 0d 11 d0 15 20 20 20 20 20 20 |t,azm).... | 00002920 40 25 3d 26 31 30 32 30 32 30 38 0d 11 da 4b 20 |@%=&1020208...K | 00002930 20 20 20 20 20 64 61 74 24 2b 3d 22 20 4d 61 67 | dat$+=" Mag| 00002940 6e 69 74 75 64 65 3d 22 2b c3 28 4d 61 67 28 66 |nitude="+.(Mag(f| 00002950 25 29 29 2b 22 28 76 61 72 3f 29 28 64 6f 75 62 |%))+"(var?)(doub| 00002960 6c 65 3f 29 20 22 2b a4 6f 72 62 69 74 5f 64 61 |le?) "+.orbit_da| 00002970 74 61 28 66 25 29 0d 11 e4 0f 20 20 20 20 20 20 |ta(f%).... | 00002980 40 25 3d 31 30 0d 11 ee 56 20 20 20 20 20 20 f2 |@%=10...V .| 00002990 69 6e 66 6f 62 6f 78 28 22 49 6e 66 6f 20 6f 6e |infobox("Info on| 000029a0 20 22 2b a4 6e 61 6d 65 28 67 72 6f 75 70 25 28 | "+.name(group%(| 000029b0 66 25 29 29 2b 22 20 22 2b a4 63 6f 6e 73 74 6e |f%))+" "+.constn| 000029c0 61 6d 65 28 66 25 29 2b a4 73 74 61 72 6e 61 6d |ame(f%)+.starnam| 000029d0 65 28 66 25 29 2c 64 61 74 24 29 0d 11 f8 09 20 |e(f%),dat$).... | 000029e0 20 20 20 cd 0d 12 02 07 20 20 cd 0d 12 0c 05 e1 | ..... ......| 000029f0 0d 12 16 04 0d 12 20 04 0d 12 2a 15 dd a4 70 6c |...... ...*...pl| 00002a00 61 6e 65 74 5f 64 61 74 61 28 70 25 29 0d 12 34 |anet_data(p%)..4| 00002a10 12 20 20 ea 20 61 6c 74 2c 61 7a 6d 2c 53 24 0d |. . alt,azm,S$.| 00002a20 12 3e 11 20 20 61 6c 74 3d 30 3a 61 7a 6d 3d 30 |.>. alt=0:azm=0| 00002a30 0d 12 48 19 20 20 f2 70 6c 61 6e 65 74 28 70 25 |..H. .planet(p%| 00002a40 2c 61 6c 74 2c 61 7a 6d 29 0d 12 52 1d 20 20 53 |,alt,azm)..R. S| 00002a50 24 3d a4 70 6f 73 5f 73 74 72 69 6e 67 28 61 6c |$=.pos_string(al| 00002a60 74 2c 61 7a 6d 29 0d 12 5c 07 3d 53 24 0d 12 66 |t,azm)..\.=S$..f| 00002a70 04 0d 12 70 19 dd a4 70 6f 73 5f 73 74 72 69 6e |...p...pos_strin| 00002a80 67 28 61 6c 74 2c 61 7a 6d 29 0d 12 7a 07 ea 64 |g(alt,azm)..z..d| 00002a90 24 0d 12 84 0e 20 20 e7 61 7a 6d 3e af 20 8c 0d |$.... .azm>. ..| 00002aa0 12 8e 0e 20 20 20 20 64 24 3d 22 57 22 0d 12 98 |... d$="W"...| 00002ab0 13 20 20 20 20 61 7a 6d 3d 32 2a af 2d 61 7a 6d |. azm=2*.-azm| 00002ac0 0d 12 a2 07 20 20 cc 0d 12 ac 0e 20 20 20 20 64 |.... ..... d| 00002ad0 24 3d 22 45 22 0d 12 b6 07 20 20 cd 0d 12 c0 33 |$="E".... ....3| 00002ae0 3d 22 20 20 41 7a 69 6d 75 74 68 3d 22 2b a4 64 |=" Azimuth="+.d| 00002af0 61 6e 67 28 61 7a 6d 29 2b 64 24 2b 22 20 20 41 |ang(azm)+d$+" A| 00002b00 6c 74 3d 22 2b a4 64 61 6e 67 28 61 6c 74 29 0d |lt="+.dang(alt).| 00002b10 12 ca 04 0d 12 d4 0d dd a4 64 61 6e 67 28 61 29 |.........dang(a)| 00002b20 0d 12 de 09 20 20 ea 61 25 0d 12 e8 0c 20 20 61 |.... .a%.... a| 00002b30 3d 9d 28 61 29 0d 12 f2 0a 20 20 61 25 3d 61 0d |=.(a).... a%=a.| 00002b40 12 fc 0b 20 20 40 25 3d 31 30 0d 13 06 22 3d c3 |... @%=10..."=.| 00002b50 28 61 25 29 2b 22 b0 22 2b c3 28 a8 28 36 30 2a |(a%)+"."+.(.(60*| 00002b60 28 61 2d 61 25 29 29 29 2b 22 27 22 0d 13 10 04 |(a-a%)))+"'"....| 00002b70 0d 13 1a 0e dd a4 6e 61 6d 65 28 70 25 29 0d 13 |......name(p%)..| 00002b80 24 18 20 20 e7 70 25 3c 3d 33 32 20 8c 3d 43 45 |$. .p%<=32 .=CE| 00002b90 4e 24 28 70 25 29 0d 13 2e 07 ea 74 24 0d 13 38 |N$(p%).....t$..8| 00002ba0 0c 20 20 74 24 3d 24 70 25 0d 13 42 1a 20 20 e7 |. t$=$p%..B. .| 00002bb0 c0 74 24 29 3d 22 27 22 20 8c 3d c1 74 24 2c 32 |.t$)="'" .=.t$,2| 00002bc0 2c 31 29 0d 13 4c 07 3d 74 24 0d 13 56 04 0d 13 |,1)..L.=t$..V...| 00002bd0 60 14 dd a4 6f 72 62 69 74 5f 64 61 74 61 28 73 |`...orbit_data(s| 00002be0 25 29 0d 13 6a 16 ea 63 2c 74 74 2c 74 72 2c 68 |%)..j..c,tt,tr,h| 00002bf0 61 68 2c 73 74 2c 64 24 0d 13 74 21 20 20 63 3d |ah,st,d$..t! c=| 00002c00 af 2f 32 2d 94 28 56 69 65 77 65 72 5f 4c 61 74 |./2-.(Viewer_Lat| 00002c10 2d 44 65 63 28 73 25 29 29 0d 13 7e 25 20 20 73 |-Dec(s%))..~% s| 00002c20 74 3d 68 6f 75 72 2b 6d 69 6e 2f 36 30 2d 73 74 |t=hour+min/60-st| 00002c30 61 72 64 61 74 65 2b 52 61 68 28 73 25 29 0d 13 |ardate+Rah(s%)..| 00002c40 88 34 20 20 64 24 3d 22 43 75 6c 6d 69 6e 61 74 |.4 d$="Culminat| 00002c50 65 73 20 22 2b a4 64 65 63 5f 74 69 6d 65 28 73 |es "+.dec_time(s| 00002c60 74 29 2b 22 20 61 74 20 22 2b a4 64 61 6e 67 28 |t)+" at "+.dang(| 00002c70 63 29 0d 13 92 0c 20 20 e7 63 3c 30 20 8c 0d 13 |c).... .c<0 ...| 00002c80 9c 1d 20 20 20 20 64 24 2b 3d 22 20 2d 4e 65 76 |.. d$+=" -Nev| 00002c90 65 72 20 72 69 73 65 73 2d 20 22 0d 13 a6 07 20 |er rises- ".... | 00002ca0 20 cc 0d 13 b0 1e 20 20 20 20 74 74 3d 2d b7 28 | ..... tt=-.(| 00002cb0 44 65 63 28 73 25 29 29 2a 56 6c 73 2f 56 6c 63 |Dec(s%))*Vls/Vlc| 00002cc0 0d 13 ba 13 20 20 20 20 e7 94 28 74 74 29 3e 3d |.... ..(tt)>=| 00002cd0 31 20 8c 0d 13 c4 1e 20 20 20 20 20 20 64 24 2b |1 ..... d$+| 00002ce0 3d 22 20 2d 4e 65 76 65 72 20 73 65 74 73 2d 20 |=" -Never sets- | 00002cf0 22 0d 13 ce 09 20 20 20 20 cc 0d 13 d8 18 20 20 |".... ..... | 00002d00 20 20 20 20 68 61 68 3d 31 32 2a 95 28 74 74 29 | hah=12*.(tt)| 00002d10 2f af 0d 13 e2 46 20 20 20 20 20 20 64 24 2b 3d |/....F d$+=| 00002d20 22 20 20 52 69 73 65 73 20 22 2b a4 64 65 63 5f |" Rises "+.dec_| 00002d30 74 69 6d 65 28 73 74 2d 68 61 68 29 2b 22 2c 20 |time(st-hah)+", | 00002d40 53 65 74 73 20 22 2b a4 64 65 63 5f 74 69 6d 65 |Sets "+.dec_time| 00002d50 28 73 74 2b 68 61 68 29 0d 13 ec 09 20 20 20 20 |(st+hah).... | 00002d60 cd 0d 13 f6 07 20 20 cd 0d 14 00 07 3d 64 24 0d |..... .....=d$.| 00002d70 14 0a 04 0d 14 14 12 dd a4 73 74 61 72 6e 61 6d |.........starnam| 00002d80 65 28 6e 25 29 0d 14 1e 07 ea 69 25 0d 14 28 0a |e(n%).....i%..(.| 00002d90 20 20 69 25 3d 30 0d 14 32 07 20 20 f5 0d 14 3c | i%=0..2. ...<| 00002da0 0d 20 20 20 20 69 25 2b 3d 31 0d 14 46 25 20 20 |. i%+=1..F% | 00002db0 fd 69 25 3d 4e 61 6d 65 64 5f 73 74 61 72 73 25 |.i%=Named_stars%| 00002dc0 20 84 20 73 74 61 72 25 28 69 25 29 3d 6e 25 0d | . star%(i%)=n%.| 00002dd0 14 50 25 20 20 e7 73 74 61 72 25 28 69 25 29 3d |.P% .star%(i%)=| 00002de0 6e 25 20 8c 3d 22 20 2d 20 22 2b 53 74 61 72 24 |n% .=" - "+Star$| 00002df0 28 69 25 29 0d 14 5a 07 3d 22 22 0d 14 64 04 0d |(i%)..Z.=""..d..| 00002e00 14 6e 13 dd a4 63 6f 6e 73 74 6e 61 6d 65 28 6e |.n...constname(n| 00002e10 25 29 0d 14 78 07 ea 69 25 0d 14 82 0a 20 20 69 |%)..x..i%.... i| 00002e20 25 3d 30 0d 14 8c 07 20 20 f5 0d 14 96 0d 20 20 |%=0.... ..... | 00002e30 20 20 69 25 2b 3d 31 0d 14 a0 23 20 20 fd 63 6f | i%+=1...# .co| 00002e40 6e 73 74 25 28 69 25 29 3e 3d 6e 25 20 84 69 25 |nst%(i%)>=n% .i%| 00002e50 3d 6e 75 6d 5f 63 6f 6e 73 74 0d 14 aa 1b 3d 43 |=num_const....=C| 00002e60 4e 24 28 69 25 2b 28 69 25 3c 6e 75 6d 5f 63 6f |N$(i%+(i%<num_co| 00002e70 6e 73 74 29 29 0d 14 b4 04 0d 14 be 04 0d 14 c8 |nst))...........| 00002e80 21 f4 20 2f 20 49 6e 69 74 69 61 6c 69 73 61 74 |!. / Initialisat| 00002e90 69 6f 6e 20 52 6f 75 74 69 6e 65 73 20 2f 0d 14 |ion Routines /..| 00002ea0 d2 04 0d 14 dc 04 0d 14 e6 0b dd f2 73 65 74 75 |............setu| 00002eb0 70 0d 14 f0 07 ea 69 25 0d 14 fa 0e 20 20 de 20 |p.....i%.... . | 00002ec0 43 50 24 28 38 29 0d 15 04 09 20 20 f7 2b 30 0d |CP$(8).... .+0.| 00002ed0 15 0e 32 20 20 dc 20 22 4e 22 2c 20 22 4e 45 22 |..2 . "N", "NE"| 00002ee0 2c 20 22 45 22 2c 20 22 53 45 22 2c 20 22 53 22 |, "E", "SE", "S"| 00002ef0 2c 20 22 53 57 22 2c 20 22 57 22 2c 20 22 4e 57 |, "SW", "W", "NW| 00002f00 22 0d 15 18 0e 20 20 e3 69 25 3d 30 20 b8 37 0d |".... .i%=0 .7.| 00002f10 15 22 11 20 20 20 20 f3 20 43 50 24 28 69 25 29 |.". . CP$(i%)| 00002f20 0d 15 2c 07 20 20 ed 0d 15 36 13 20 20 de 73 6d |..,. ...6. .sm| 00002f30 25 28 38 29 2c 6f 25 28 38 29 0d 15 40 09 20 20 |%(8),o%(8)..@. | 00002f40 f7 2b 30 0d 15 4a 18 20 20 dc 38 2c 36 2c 36 2c |.+0..J. .8,6,6,| 00002f50 34 2c 34 2c 34 2c 32 2c 30 2c 30 0d 15 54 0d 20 |4,4,4,2,0,0..T. | 00002f60 20 e3 69 25 3d 30 b8 38 0d 15 5e 0f 20 20 20 20 | .i%=0.8..^. | 00002f70 f3 6f 25 28 69 25 29 0d 15 68 35 20 20 20 20 c8 |.o%(i%)..h5 .| 00002f80 99 20 26 32 65 2c 26 31 31 38 2c 73 70 72 69 74 |. &2e,&118,sprit| 00002f90 65 73 25 2c 22 6d 61 67 22 2b c3 28 69 25 2d 32 |es%,"mag"+.(i%-2| 00002fa0 29 20 b8 2c 2c 73 6d 25 28 69 25 29 0d 15 72 07 |) .,,sm%(i%)..r.| 00002fb0 20 20 ed 0d 15 7c 12 20 20 f2 67 65 74 5f 70 6c | ...|. .get_pl| 00002fc0 61 6e 65 74 73 0d 15 86 11 20 20 f2 6d 61 6b 65 |anets.... .make| 00002fd0 5f 6d 65 6e 75 73 0d 15 90 17 20 20 f2 72 65 61 |_menus.... .rea| 00002fe0 64 5f 63 6f 6e 73 74 5f 70 61 72 74 73 0d 15 9a |d_const_parts...| 00002ff0 33 20 20 6d 6f 6e 24 3d 22 20 20 4a 61 6e 46 65 |3 mon$=" JanFe| 00003000 62 4d 61 72 41 70 72 4d 61 79 4a 75 6e 4a 75 6c |bMarAprMayJunJul| 00003010 41 75 67 53 65 70 4f 63 74 4e 6f 76 44 65 63 22 |AugSepOctNovDec"| 00003020 0d 15 a4 0e 20 20 f2 73 65 74 74 69 6d 65 0d 15 |.... .settime..| 00003030 ae 1f 20 20 f2 73 65 74 70 6f 73 28 35 32 2c 30 |.. .setpos(52,0| 00003040 29 3a f4 20 43 61 6d 62 72 69 64 67 65 0d 15 b8 |):. Cambridge...| 00003050 05 e1 0d 15 c2 04 0d 15 cc 11 dd f2 67 65 74 5f |............get_| 00003060 70 6c 61 6e 65 74 73 0d 15 d6 0b ea 20 50 2c 20 |planets..... P, | 00003070 69 25 0d 15 e0 1e 20 20 de 20 50 64 61 74 28 38 |i%.... . Pdat(8| 00003080 2c 31 30 29 2c 20 50 6c 61 6e 65 74 24 28 38 29 |,10), Planet$(8)| 00003090 0d 15 ea 09 20 20 f7 2b 30 0d 15 f4 4e 20 20 dc |.... .+0...N .| 000030a0 20 22 45 61 72 74 68 22 20 20 2c 20 31 20 20 20 | "Earth" , 1 | 000030b0 20 20 20 20 2c 20 30 2e 30 31 36 36 36 34 2c 20 | , 0.016664, | 000030c0 30 2e 30 30 33 36 36 2c 20 20 35 33 2e 31 39 31 |0.00366, 53.191| 000030d0 39 20 2c 32 38 37 2e 36 37 36 37 32 2c 20 31 37 |9 ,287.67672, 17| 000030e0 34 2e 34 38 31 37 34 0d 15 fe 4d 20 20 dc 20 22 |4.48174...M . "| 000030f0 4d 65 72 63 75 72 79 22 2c 20 30 2e 33 38 37 30 |Mercury", 0.3870| 00003100 39 38 2c 20 30 2e 32 30 35 36 33 38 2c 20 37 2e |98, 0.205638, 7.| 00003110 30 30 32 31 39 2c 20 32 32 36 2e 33 30 37 37 37 |00219, 226.30777| 00003120 2c 20 32 39 2e 30 31 37 34 37 2c 20 34 37 2e 37 |, 29.01747, 47.7| 00003130 30 34 34 37 0d 16 08 4d 20 20 dc 20 22 56 65 6e |0447...M . "Ven| 00003140 75 73 22 20 20 2c 20 30 2e 37 32 33 33 33 32 2c |us" , 0.723332,| 00003150 20 30 2e 30 30 36 38 31 37 2c 20 33 2e 33 39 33 | 0.006817, 3.393| 00003160 38 39 2c 20 20 20 31 2e 34 35 31 38 20 2c 20 35 |89, 1.4518 , 5| 00003170 34 2e 36 39 38 36 33 2c 20 37 36 2e 31 35 32 36 |4.69863, 76.1526| 00003180 33 0d 16 12 4c 20 20 dc 20 22 4d 61 72 73 22 20 |3...L . "Mars" | 00003190 20 20 2c 20 31 2e 35 32 33 36 37 33 2c 20 30 2e | , 1.523673, 0.| 000031a0 30 39 33 32 37 20 2c 20 31 2e 38 34 37 37 38 2c |09327 , 1.84778,| 000031b0 20 33 32 36 2e 37 32 32 39 36 2c 32 38 36 2e 31 | 326.72296,286.1| 000031c0 33 34 36 31 2c 20 34 39 2e 30 39 36 32 0d 16 1c |3461, 49.0962...| 000031d0 4c 20 20 dc 20 22 4a 75 70 69 74 65 72 22 2c 20 |L . "Jupiter", | 000031e0 35 2e 32 30 31 36 37 20 2c 20 30 2e 30 34 37 39 |5.20167 , 0.0479| 000031f0 39 20 2c 20 31 2e 33 30 36 35 20 2c 20 20 34 36 |9 , 1.3065 , 46| 00003200 2e 38 32 39 34 20 2c 32 37 33 2e 36 31 39 31 20 |.8294 ,273.6191 | 00003210 2c 20 39 39 2e 39 38 30 36 0d 16 26 4d 20 20 dc |, 99.9806..&M .| 00003220 20 22 53 61 74 75 72 6e 22 20 2c 20 39 2e 35 37 | "Saturn" , 9.57| 00003230 31 35 37 20 2c 20 30 2e 30 35 37 36 32 20 2c 20 |157 , 0.05762 , | 00003240 32 2e 34 38 38 37 20 2c 20 20 33 36 2e 38 36 30 |2.4887 , 36.860| 00003250 32 20 2c 33 33 39 2e 37 32 32 32 20 2c 20 31 31 |2 ,339.7222 , 11| 00003260 33 2e 31 37 30 39 0d 16 30 4c 20 20 dc 20 22 55 |3.1709..0L . "U| 00003270 72 61 6e 75 73 22 20 2c 31 39 2e 31 33 39 30 32 |ranus" ,19.13902| 00003280 20 2c 20 30 2e 30 34 36 33 33 20 2c 20 30 2e 37 | , 0.04633 , 0.7| 00003290 37 31 31 20 2c 20 20 34 37 2e 34 33 33 20 20 2c |711 , 47.433 ,| 000032a0 20 39 33 2e 32 33 33 32 20 2c 20 37 33 2e 38 35 | 93.2332 , 73.85| 000032b0 39 35 0d 16 3a 4d 20 20 dc 20 22 4e 65 70 74 75 |95..:M . "Neptu| 000032c0 6e 65 22 2c 32 39 2e 39 33 35 30 33 20 2c 20 30 |ne",29.93503 , 0| 000032d0 2e 30 31 32 37 37 20 2c 20 31 2e 37 37 33 39 20 |.01277 , 1.7739 | 000032e0 2c 20 32 30 34 2e 33 32 39 32 20 2c 32 37 38 2e |, 204.3292 ,278.| 000032f0 36 37 33 35 20 2c 20 31 33 31 2e 32 37 35 35 0d |6735 , 131.2755.| 00003300 16 44 4d 20 20 dc 20 22 50 6c 75 74 6f 22 20 20 |.DM . "Pluto" | 00003310 2c 33 39 2e 33 36 37 35 33 20 2c 20 30 2e 32 34 |,39.36753 , 0.24| 00003320 36 32 39 20 2c 31 37 2e 31 33 38 39 20 2c 20 33 |629 ,17.1389 , 3| 00003330 34 31 2e 37 32 32 20 20 2c 31 31 33 2e 36 31 32 |41.722 ,113.612| 00003340 32 20 2c 20 31 30 39 2e 35 32 33 33 0d 16 4e 0d |2 , 109.5233..N.| 00003350 20 20 e3 69 25 3d 30 b8 38 0d 16 58 14 20 20 20 | .i%=0.8..X. | 00003360 20 f3 50 6c 61 6e 65 74 24 28 69 25 29 0d 16 62 | .Planet$(i%)..b| 00003370 15 20 20 20 20 f3 20 50 3a f4 20 50 61 72 61 6d |. . P:. Param| 00003380 20 31 0d 16 6c 26 20 20 20 20 50 64 61 74 28 69 | 1..l& Pdat(i| 00003390 25 2c 20 30 29 3d 30 2e 30 31 37 32 30 32 34 20 |%, 0)=0.0172024 | 000033a0 2a 20 b6 28 50 5e 33 29 0d 16 76 15 20 20 20 20 |* .(P^3)..v. | 000033b0 50 64 61 74 28 69 25 2c 20 31 29 3d 50 0d 16 80 |Pdat(i%, 1)=P...| 000033c0 15 20 20 20 20 f3 20 50 3a f4 20 50 61 72 61 6d |. . P:. Param| 000033d0 20 32 0d 16 8a 15 20 20 20 20 50 64 61 74 28 69 | 2.... Pdat(i| 000033e0 25 2c 20 32 29 3d 50 0d 16 94 27 20 20 20 20 50 |%, 2)=P...' P| 000033f0 64 61 74 28 69 25 2c 20 33 29 3d 50 64 61 74 28 |dat(i%, 3)=Pdat(| 00003400 69 25 2c 31 29 2a b6 28 31 2d 50 2a 50 29 0d 16 |i%,1)*.(1-P*P)..| 00003410 9e 15 20 20 20 20 f3 20 50 3a f4 20 50 61 72 61 |.. . P:. Para| 00003420 6d 20 33 0d 16 a8 19 20 20 20 20 50 64 61 74 28 |m 3.... Pdat(| 00003430 69 25 2c 20 34 29 3d 9b b2 28 50 29 0d 16 b2 19 |i%, 4)=..(P)....| 00003440 20 20 20 20 50 64 61 74 28 69 25 2c 20 35 29 3d | Pdat(i%, 5)=| 00003450 b5 b2 28 50 29 0d 16 bc 15 20 20 20 20 f3 20 50 |..(P).... . P| 00003460 3a f4 20 50 61 72 61 6d 20 34 0d 16 c6 18 20 20 |:. Param 4.... | 00003470 20 20 50 64 61 74 28 69 25 2c 20 36 29 3d b2 28 | Pdat(i%, 6)=.(| 00003480 50 29 0d 16 d0 15 20 20 20 20 f3 20 50 3a f4 20 |P).... . P:. | 00003490 50 61 72 61 6d 20 35 0d 16 da 19 20 20 20 20 50 |Param 5.... P| 000034a0 64 61 74 28 69 25 2c 20 37 29 3d 9b b2 28 50 29 |dat(i%, 7)=..(P)| 000034b0 0d 16 e4 19 20 20 20 20 50 64 61 74 28 69 25 2c |.... Pdat(i%,| 000034c0 20 38 29 3d b5 b2 28 50 29 0d 16 ee 15 20 20 20 | 8)=..(P).... | 000034d0 20 f3 20 50 3a f4 20 50 61 72 61 6d 20 36 0d 16 | . P:. Param 6..| 000034e0 f8 19 20 20 20 20 50 64 61 74 28 69 25 2c 20 39 |.. Pdat(i%, 9| 000034f0 29 3d 9b b2 28 50 29 0d 17 02 19 20 20 20 20 50 |)=..(P).... P| 00003500 64 61 74 28 69 25 2c 31 30 29 3d b5 b2 28 50 29 |dat(i%,10)=..(P)| 00003510 0d 17 0c 07 20 20 ed 0d 17 16 0f 20 20 45 61 72 |.... ..... Ear| 00003520 74 68 5f 58 3d 30 0d 17 20 0f 20 20 45 61 72 74 |th_X=0.. . Eart| 00003530 68 5f 59 3d 30 0d 17 2a 0f 20 20 45 61 72 74 68 |h_Y=0..*. Earth| 00003540 5f 5a 3d 30 0d 17 34 05 e1 0d 17 3e 04 0d 17 48 |_Z=0..4....>...H| 00003550 04 0d 17 52 16 dd f2 72 65 61 64 5f 63 6f 6e 73 |...R...read_cons| 00003560 74 5f 70 61 72 74 73 0d 17 5c 07 ea 69 25 0d 17 |t_parts..\..i%..| 00003570 66 10 20 20 de 20 43 45 4e 24 28 32 34 29 0d 17 |f. . CEN$(24)..| 00003580 70 09 20 20 f7 2b 30 0d 17 7a 4a 20 20 dc 20 4f |p. .+0..zJ . O| 00003590 62 6a 65 63 74 20 69 6e 2c 41 6c 70 68 61 2c 42 |bject in,Alpha,B| 000035a0 65 74 61 2c 47 61 6d 6d 61 2c 44 65 6c 74 61 2c |eta,Gamma,Delta,| 000035b0 45 70 73 69 6c 6f 6e 2c 5a 65 74 61 2c 45 74 61 |Epsilon,Zeta,Eta| 000035c0 2c 54 68 65 74 61 2c 49 6f 74 61 2c 4b 61 70 70 |,Theta,Iota,Kapp| 000035d0 61 0d 17 84 40 20 20 dc 20 4c 61 6d 62 64 61 2c |a...@ . Lambda,| 000035e0 4d 75 2c 4e 75 2c 58 69 2c 4f 6d 69 63 72 6f 6e |Mu,Nu,Xi,Omicron| 000035f0 2c 50 69 2c 52 68 6f 2c 53 69 67 6d 61 2c 54 61 |,Pi,Rho,Sigma,Ta| 00003600 75 2c 55 70 73 69 6c 6f 6e 2c 50 68 69 2c 43 68 |u,Upsilon,Phi,Ch| 00003610 69 0d 17 8e 11 20 20 dc 20 50 73 69 2c 4f 6d 65 |i.... . Psi,Ome| 00003620 67 61 0d 17 98 22 20 20 dc 20 22 61 62 67 64 65 |ga..." . "abgde| 00003630 7a 68 30 69 6b 6c 6d 6e 78 6f 70 72 73 74 76 71 |zh0iklmnxoprstvq| 00003640 66 63 77 22 0d 17 a2 0e 20 20 e3 69 25 3d 30 b8 |fcw".... .i%=0.| 00003650 32 34 0d 17 ac 11 20 20 20 20 f3 43 45 4e 24 28 |24.... .CEN$(| 00003660 69 25 29 0d 17 b6 07 20 20 ed 0d 17 c0 10 20 20 |i%).... ..... | 00003670 f3 20 43 6c 6f 6f 6b 75 70 24 0d 17 ca 05 e1 0d |. Clookup$......| 00003680 17 d4 04 0d 17 de 0f dd f2 67 65 74 5f 73 74 61 |.........get_sta| 00003690 72 73 0d 17 e8 2f f4 20 56 65 72 73 69 6f 6e 20 |rs.../. Version | 000036a0 35 2e 32 20 2d 20 6f 70 74 69 6d 69 73 65 64 20 |5.2 - optimised | 000036b0 66 6f 72 20 6c 6f 61 64 69 6e 67 20 73 70 65 65 |for loading spee| 000036c0 64 0d 17 f2 22 ea 44 2c 66 25 2c 73 25 2c 69 25 |d...".D,f%,s%,i%| 000036d0 2c 6c 25 2c 70 25 2c 61 25 2c 62 25 2c 63 6e 25 |,l%,p%,a%,b%,cn%| 000036e0 2c 74 24 0d 17 fc 13 20 20 f2 68 6f 75 72 67 6c |,t$.... .hourgl| 000036f0 61 73 73 5f 6f 6e 0d 18 06 21 20 20 66 25 3d 8e |ass_on...! f%=.| 00003700 28 22 3c 53 74 61 72 24 44 69 72 3e 2e 53 74 61 |("<Star$Dir>.Sta| 00003710 72 5f 6d 61 70 22 29 0d 18 10 2a 20 20 e7 66 25 |r_map")...* .f%| 00003720 3d 30 20 f2 62 61 64 66 69 6c 65 28 22 53 74 61 |=0 .badfile("Sta| 00003730 72 5f 4d 61 70 20 6e 6f 74 20 46 6f 75 6e 64 22 |r_Map not Found"| 00003740 29 0d 18 1a 1d 20 20 63 6f 70 79 72 69 67 68 74 |).... copyright| 00003750 24 3d a4 72 65 61 64 73 74 72 28 66 25 29 0d 18 |$=.readstr(f%)..| 00003760 24 15 20 20 74 24 3d a4 72 65 61 64 73 74 72 28 |$. t$=.readstr(| 00003770 66 25 29 0d 18 2e 38 20 20 e7 20 a4 6c 65 66 74 |f%)...8 . .left| 00003780 70 61 72 28 74 24 2c 22 3d 22 29 3c 3e 22 55 70 |par(t$,"=")<>"Up| 00003790 64 61 74 65 22 20 f2 62 61 64 66 69 6c 65 28 22 |date" .badfile("| 000037a0 4e 6f 20 75 70 64 61 74 65 22 29 0d 18 38 1f 20 |No update")..8. | 000037b0 20 75 70 64 61 74 65 24 3d a4 72 69 67 68 74 70 | update$=.rightp| 000037c0 61 72 28 74 24 2c 22 3d 22 29 0d 18 42 12 20 20 |ar(t$,"=")..B. | 000037d0 6e 75 6d 5f 63 6f 6e 73 74 3d 38 38 0d 18 4c 44 |num_const=88..LD| 000037e0 20 20 de 20 43 4e 24 28 38 38 29 2c 63 6f 6e 73 | . CN$(88),cons| 000037f0 74 25 28 38 38 29 2c 53 74 61 72 24 28 34 30 34 |t%(88),Star$(404| 00003800 29 2c 73 74 61 72 25 28 34 30 34 29 2c 6c 73 25 |),star%(404),ls%| 00003810 28 31 30 30 30 29 2c 6c 66 25 28 31 30 30 30 29 |(1000),lf%(1000)| 00003820 0d 18 56 04 0d 18 60 29 20 20 73 64 73 25 3d bb |..V...`) sds%=.| 00003830 28 a4 72 69 67 68 74 70 61 72 28 a4 72 65 61 64 |(.rightpar(.read| 00003840 73 74 72 28 66 25 29 2c 22 3d 22 29 29 0d 18 6a |str(f%),"="))..j| 00003850 13 20 20 73 74 72 5f 6c 65 6e 25 3d 32 30 30 30 |. str_len%=2000| 00003860 0d 18 74 49 20 20 de 20 52 61 68 28 73 64 73 25 |..tI . Rah(sds%| 00003870 29 2c 20 44 65 63 28 73 64 73 25 29 2c 20 67 72 |), Dec(sds%), gr| 00003880 6f 75 70 25 28 73 64 73 25 29 2c 20 4d 61 67 28 |oup%(sds%), Mag(| 00003890 73 64 73 25 29 2c 73 74 72 5f 73 70 61 63 65 25 |sds%),str_space%| 000038a0 20 73 74 72 5f 6c 65 6e 25 0d 18 7e 1c 20 20 73 | str_len%..~. s| 000038b0 74 72 5f 6c 65 6e 25 2b 3d 73 74 72 5f 73 70 61 |tr_len%+=str_spa| 000038c0 63 65 25 2d 32 0d 18 88 2a 20 20 de 20 58 70 25 |ce%-2...* . Xp%| 000038d0 28 38 29 2c 20 59 70 25 28 38 29 2c 20 58 25 28 |(8), Yp%(8), X%(| 000038e0 73 64 73 25 29 2c 20 59 25 28 73 64 73 25 29 0d |sds%), Y%(sds%).| 000038f0 18 92 14 20 20 4e 61 6d 65 64 5f 73 74 61 72 73 |... Named_stars| 00003900 25 3d 30 0d 18 9c 04 0d 18 a6 36 20 20 e7 a4 72 |%=0.......6 ..r| 00003910 65 61 64 73 74 72 28 66 25 29 3c 3e 22 53 74 61 |eadstr(f%)<>"Sta| 00003920 72 64 61 74 61 22 20 f2 62 61 64 66 69 6c 65 28 |rdata" .badfile(| 00003930 22 42 61 64 20 48 65 61 64 65 72 22 29 0d 18 b0 |"Bad Header")...| 00003940 12 20 20 70 25 3d 9a 23 66 25 3a f4 20 6c 66 0d |. p%=.#f%:. lf.| 00003950 18 ba 0a 20 20 73 25 3d 30 0d 18 c4 11 20 20 6d |... s%=0.... m| 00003960 61 78 5f 6c 69 6e 65 25 3d 30 0d 18 ce 19 20 20 |ax_line%=0.... | 00003970 73 74 72 5f 70 74 72 25 3d 73 74 72 5f 73 70 61 |str_ptr%=str_spa| 00003980 63 65 25 0d 18 d8 11 20 20 e3 63 6e 25 3d 31 20 |ce%.... .cn%=1 | 00003990 b8 20 38 38 0d 18 e2 17 20 20 20 20 74 24 3d a4 |. 88.... t$=.| 000039a0 72 65 61 64 73 74 72 28 66 25 29 0d 18 ec 5d 20 |readstr(f%)...] | 000039b0 20 20 20 e7 20 bb 28 a4 72 69 67 68 74 70 61 72 | . .(.rightpar| 000039c0 28 74 24 2c 22 3d 22 29 29 3c 3e 63 6e 25 20 f2 |(t$,"="))<>cn% .| 000039d0 62 61 64 66 69 6c 65 28 22 43 6f 6e 73 74 20 5b |badfile("Const [| 000039e0 22 2b 74 24 2b 22 5d 20 6f 75 74 20 6f 66 20 73 |"+t$+"] out of s| 000039f0 74 65 70 2c 20 73 68 6f 75 6c 64 20 62 65 20 22 |tep, should be "| 00003a00 2b c3 28 63 6e 25 29 29 0d 18 f6 21 20 20 20 20 |+.(cn%))...! | 00003a10 43 4e 24 28 63 6e 25 29 3d a4 6c 65 66 74 70 61 |CN$(cn%)=.leftpa| 00003a20 72 28 74 24 2c 22 3d 22 29 0d 19 00 16 20 20 20 |r(t$,"=").... | 00003a30 20 63 6f 6e 73 74 25 28 63 6e 25 29 3d 73 25 0d | const%(cn%)=s%.| 00003a40 19 0a 04 0d 19 14 13 20 20 20 20 f4 20 67 65 74 |....... . get| 00003a50 20 6c 69 6e 65 73 0d 19 1e 0f 20 20 20 20 70 25 | lines.... p%| 00003a60 3d 9a 23 66 25 0d 19 28 1b 20 20 20 20 c8 95 70 |=.#f%..(. ..p| 00003a70 25 3c 3e 31 30 20 80 20 70 25 3c 3e 97 22 3b 22 |%<>10 . p%<>.";"| 00003a80 0d 19 32 11 20 20 20 20 20 20 74 25 3d 9a 23 66 |..2. t%=.#f| 00003a90 25 0d 19 3c 3c 20 20 20 20 20 20 e7 74 25 3d 97 |%..<< .t%=.| 00003aa0 22 2d 22 20 61 25 3d 28 70 25 2d 34 38 29 20 8b |"-" a%=(p%-48) .| 00003ab0 61 25 3d 28 70 25 2d 34 38 29 2a 31 30 20 2b 20 |a%=(p%-48)*10 + | 00003ac0 74 25 2d 34 38 3a 74 25 3d 9a 23 66 25 0d 19 46 |t%-48:t%=.#f%..F| 00003ad0 11 20 20 20 20 20 20 74 25 3d 9a 23 66 25 0d 19 |. t%=.#f%..| 00003ae0 50 11 20 20 20 20 20 20 70 25 3d 9a 23 66 25 0d |P. p%=.#f%.| 00003af0 19 5a 41 20 20 20 20 20 20 e7 70 25 3e 34 37 20 |.ZA .p%>47 | 00003b00 80 70 25 3c 35 38 20 62 25 3d 28 74 25 2d 34 38 |.p%<58 b%=(t%-48| 00003b10 29 2a 31 30 20 2b 20 70 25 2d 34 38 3a 70 25 3d |)*10 + p%-48:p%=| 00003b20 9a 23 66 25 20 8b 62 25 3d 28 74 25 2d 34 38 29 |.#f% .b%=(t%-48)| 00003b30 0d 19 64 16 20 20 20 20 20 20 6d 61 78 5f 6c 69 |..d. max_li| 00003b40 6e 65 25 2b 3d 31 0d 19 6e 1e 20 20 20 20 20 20 |ne%+=1..n. | 00003b50 6c 73 25 28 6d 61 78 5f 6c 69 6e 65 25 29 3d 61 |ls%(max_line%)=a| 00003b60 25 2b 73 25 0d 19 78 1e 20 20 20 20 20 20 6c 66 |%+s%..x. lf| 00003b70 25 28 6d 61 78 5f 6c 69 6e 65 25 29 3d 62 25 2b |%(max_line%)=b%+| 00003b80 73 25 0d 19 82 5b 20 20 20 20 20 20 e7 70 25 3c |s%...[ .p%<| 00003b90 3e 31 30 20 80 70 25 3c 3e 97 22 2c 22 20 80 70 |>10 .p%<>."," .p| 00003ba0 25 3c 3e 97 22 3b 22 20 f2 62 61 64 66 69 6c 65 |%<>.";" .badfile| 00003bb0 28 22 6f 76 65 72 72 75 6e 20 6f 6e 20 63 6f 6e |("overrun on con| 00003bc0 73 74 20 22 2b c3 28 63 6e 25 29 2b 22 27 22 2b |st "+.(cn%)+"'"+| 00003bd0 c3 28 6d 61 78 5f 6c 69 6e 65 25 29 29 0d 19 8c |.(max_line%))...| 00003be0 1a 20 20 20 20 20 20 e7 70 25 3d 97 22 2c 22 20 |. .p%=."," | 00003bf0 70 25 3d 9a 23 66 25 0d 19 96 09 20 20 20 20 ce |p%=.#f%.... .| 00003c00 0d 19 a0 30 20 20 20 20 c8 95 70 25 3c 3e 31 30 |...0 ..p%<>10| 00003c10 3a 70 25 3d 9a 23 66 25 3a ce 3a f4 20 73 6b 69 |:p%=.#f%:.:. ski| 00003c20 70 20 74 6f 20 65 6e 64 20 6f 66 20 6c 69 6e 65 |p to end of line| 00003c30 0d 19 aa 04 0d 19 b4 0f 20 20 20 20 70 25 3d 9a |........ p%=.| 00003c40 23 66 25 0d 19 be 10 20 20 20 20 c8 95 70 25 3c |#f%.... ..p%<| 00003c50 3e 31 30 0d 19 c8 0f 20 20 20 20 20 20 73 25 2b |>10.... s%+| 00003c60 3d 31 0d 19 d2 40 20 20 20 20 20 20 e7 73 25 3e |=1...@ .s%>| 00003c70 73 64 73 25 20 f2 62 61 64 66 69 6c 65 28 22 54 |sds% .badfile("T| 00003c80 6f 6f 20 6d 61 6e 79 20 73 74 61 72 73 20 22 2b |oo many stars "+| 00003c90 c3 28 73 25 29 2b 22 2f 22 2b c3 28 73 64 73 25 |.(s%)+"/"+.(sds%| 00003ca0 29 29 0d 19 dc 25 20 20 20 20 20 20 67 72 6f 75 |))...% grou| 00003cb0 70 25 28 73 25 29 3d a7 43 6c 6f 6f 6b 75 70 24 |p%(s%)=.Clookup$| 00003cc0 2c bd 28 70 25 29 29 0d 19 e6 19 20 20 20 20 20 |,.(p%)).... | 00003cd0 20 e7 67 72 6f 75 70 25 28 73 25 29 3d 30 20 8c | .group%(s%)=0 .| 00003ce0 0d 19 f0 1f 20 20 20 20 20 20 20 20 67 72 6f 75 |.... grou| 00003cf0 70 25 28 73 25 29 3d 73 74 72 5f 70 74 72 25 0d |p%(s%)=str_ptr%.| 00003d00 19 fa 0d 20 20 20 20 20 20 20 20 f5 0d 1a 04 46 |... ....F| 00003d10 20 20 20 20 20 20 20 20 20 20 e7 20 73 74 72 5f | . str_| 00003d20 70 74 72 25 3e 3d 73 74 72 5f 6c 65 6e 25 20 f2 |ptr%>=str_len% .| 00003d30 62 61 64 66 69 6c 65 28 22 52 75 6e 20 6f 75 74 |badfile("Run out| 00003d40 20 6f 66 20 73 74 72 69 6e 67 20 73 70 61 63 65 | of string space| 00003d50 22 29 0d 1a 0e 1a 20 20 20 20 20 20 20 20 20 20 |").... | 00003d60 3f 73 74 72 5f 70 74 72 25 3d 70 25 0d 1a 18 19 |?str_ptr%=p%....| 00003d70 20 20 20 20 20 20 20 20 20 20 73 74 72 5f 70 74 | str_pt| 00003d80 72 25 2b 3d 31 0d 1a 22 15 20 20 20 20 20 20 20 |r%+=1..". | 00003d90 20 20 20 70 25 3d 9a 23 66 25 0d 1a 2c 1b 20 20 | p%=.#f%..,. | 00003da0 20 20 20 20 20 20 fd 70 25 3d 33 32 20 84 70 25 | .p%=32 .p%| 00003db0 3d 97 22 40 22 0d 1a 36 18 20 20 20 20 20 20 20 |=."@"..6. | 00003dc0 20 3f 73 74 72 5f 70 74 72 25 3d 31 33 0d 1a 40 | ?str_ptr%=13..@| 00003dd0 17 20 20 20 20 20 20 20 20 73 74 72 5f 70 74 72 |. str_ptr| 00003de0 25 2b 3d 31 0d 1a 4a 0b 20 20 20 20 20 20 cd 0d |%+=1..J. ..| 00003df0 1a 54 1e 20 20 20 20 20 20 c8 95 70 25 3c 3e 97 |.T. ..p%<>.| 00003e00 22 40 22 3a 70 25 3d 9a 23 66 25 3a ce 0d 1a 5e |"@":p%=.#f%:...^| 00003e10 04 0d 1a 68 11 20 20 20 20 20 20 61 25 3d 9a 23 |...h. a%=.#| 00003e20 66 25 0d 1a 72 11 20 20 20 20 20 20 62 25 3d 9a |f%..r. b%=.| 00003e30 23 66 25 0d 1a 7c 1f 20 20 20 20 20 20 74 25 20 |#f%..|. t% | 00003e40 3d 20 61 25 2a 33 36 30 30 30 2b 62 25 2a 33 36 |= a%*36000+b%*36| 00003e50 30 30 0d 1a 86 11 20 20 20 20 20 20 61 25 3d 9a |00.... a%=.| 00003e60 23 66 25 0d 1a 90 2a 20 20 20 20 20 20 e7 61 25 |#f%...* .a%| 00003e70 3c 3e 97 22 68 22 20 f2 62 61 64 66 69 6c 65 28 |<>."h" .badfile(| 00003e80 22 68 20 65 78 70 65 63 74 65 64 22 29 0d 1a 9a |"h expected")...| 00003e90 11 20 20 20 20 20 20 61 25 3d 9a 23 66 25 0d 1a |. a%=.#f%..| 00003ea0 a4 11 20 20 20 20 20 20 62 25 3d 9a 23 66 25 0d |.. b%=.#f%.| 00003eb0 1a ae 1b 20 20 20 20 20 20 74 25 2b 3d 20 61 25 |... t%+= a%| 00003ec0 2a 36 30 30 2b 62 25 2a 36 30 0d 1a b8 11 20 20 |*600+b%*60.... | 00003ed0 20 20 20 20 61 25 3d 9a 23 66 25 0d 1a c2 2a 20 | a%=.#f%...* | 00003ee0 20 20 20 20 20 e7 61 25 3c 3e 97 22 6d 22 20 f2 | .a%<>."m" .| 00003ef0 62 61 64 66 69 6c 65 28 22 6d 20 65 78 70 65 63 |badfile("m expec| 00003f00 74 65 64 22 29 0d 1a cc 11 20 20 20 20 20 20 61 |ted").... a| 00003f10 25 3d 9a 23 66 25 0d 1a d6 11 20 20 20 20 20 20 |%=.#f%.... | 00003f20 62 25 3d 9a 23 66 25 0d 1a e0 1e 20 20 20 20 20 |b%=.#f%.... | 00003f30 20 74 25 2b 3d 61 25 2a 31 30 2b 62 25 2d 31 39 | t%+=a%*10+b%-19| 00003f40 33 33 30 30 38 0d 1a ea 19 20 20 20 20 20 20 52 |33008.... R| 00003f50 61 68 28 73 25 29 3d 74 25 2f 33 36 30 30 0d 1a |ah(s%)=t%/3600..| 00003f60 f4 11 20 20 20 20 20 20 61 25 3d 9a 23 66 25 0d |.. a%=.#f%.| 00003f70 1a fe 2b 20 20 20 20 20 20 e7 61 25 3c 3e 97 22 |..+ .a%<>."| 00003f80 73 22 20 f2 62 61 64 66 69 6c 65 28 22 73 20 65 |s" .badfile("s e| 00003f90 78 70 65 63 74 65 64 20 22 29 0d 1b 08 11 20 20 |xpected ").... | 00003fa0 20 20 20 20 61 25 3d 9a 23 66 25 0d 1b 12 2a 20 | a%=.#f%...* | 00003fb0 20 20 20 20 20 e7 61 25 3c 3e 97 22 2c 22 20 f2 | .a%<>."," .| 00003fc0 62 61 64 66 69 6c 65 28 22 2c 20 65 78 70 65 63 |badfile(", expec| 00003fd0 74 65 64 22 29 0d 1b 1c 18 20 20 20 20 20 20 70 |ted").... p| 00003fe0 25 3d 9a 23 66 25 3a f4 20 73 69 67 6e 0d 1b 26 |%=.#f%:. sign..&| 00003ff0 11 20 20 20 20 20 20 61 25 3d 9a 23 66 25 0d 1b |. a%=.#f%..| 00004000 30 11 20 20 20 20 20 20 62 25 3d 9a 23 66 25 0d |0. b%=.#f%.| 00004010 1b 3a 1e 20 20 20 20 20 20 74 25 20 3d 61 25 2a |.:. t% =a%*| 00004020 33 36 30 30 30 2b 62 25 2a 33 36 30 30 0d 1b 44 |36000+b%*3600..D| 00004030 11 20 20 20 20 20 20 61 25 3d 9a 23 66 25 0d 1b |. a%=.#f%..| 00004040 4e 2a 20 20 20 20 20 20 e7 61 25 3c 3e 97 22 64 |N* .a%<>."d| 00004050 22 20 f2 62 61 64 66 69 6c 65 28 22 64 20 65 78 |" .badfile("d ex| 00004060 70 65 63 74 65 64 22 29 0d 1b 58 11 20 20 20 20 |pected")..X. | 00004070 20 20 61 25 3d 9a 23 66 25 0d 1b 62 11 20 20 20 | a%=.#f%..b. | 00004080 20 20 20 62 25 3d 9a 23 66 25 0d 1b 6c 1a 20 20 | b%=.#f%..l. | 00004090 20 20 20 20 74 25 2b 3d 61 25 2a 36 30 30 2b 62 | t%+=a%*600+b| 000040a0 25 2a 36 30 0d 1b 76 11 20 20 20 20 20 20 61 25 |%*60..v. a%| 000040b0 3d 9a 23 66 25 0d 1b 80 2a 20 20 20 20 20 20 e7 |=.#f%...* .| 000040c0 61 25 3c 3e 97 22 27 22 20 f2 62 61 64 66 69 6c |a%<>."'" .badfil| 000040d0 65 28 22 27 20 65 78 70 65 63 74 65 64 22 29 0d |e("' expected").| 000040e0 1b 8a 11 20 20 20 20 20 20 61 25 3d 9a 23 66 25 |... a%=.#f%| 000040f0 0d 1b 94 11 20 20 20 20 20 20 62 25 3d 9a 23 66 |.... b%=.#f| 00004100 25 0d 1b 9e 1e 20 20 20 20 20 20 74 25 2b 3d 61 |%.... t%+=a| 00004110 25 2a 31 30 2b 62 25 2d 31 39 33 33 30 30 38 0d |%*10+b%-1933008.| 00004120 1b a8 19 20 20 20 20 20 20 e7 70 25 3d 97 22 2d |... .p%=."-| 00004130 22 20 74 25 3d 2d 74 25 0d 1b b2 1c 20 20 20 20 |" t%=-t%.... | 00004140 20 20 44 65 63 28 73 25 29 3d b2 28 74 25 2f 33 | Dec(s%)=.(t%/3| 00004150 36 30 30 29 0d 1b bc 11 20 20 20 20 20 20 61 25 |600).... a%| 00004160 3d 9a 23 66 25 0d 1b c6 2a 20 20 20 20 20 20 e7 |=.#f%...* .| 00004170 61 25 3c 3e 97 22 73 22 20 f2 62 61 64 66 69 6c |a%<>."s" .badfil| 00004180 65 28 22 73 20 65 78 70 65 63 74 65 64 22 29 0d |e("s expected").| 00004190 1b d0 11 20 20 20 20 20 20 61 25 3d 9a 23 66 25 |... a%=.#f%| 000041a0 0d 1b da 2a 20 20 20 20 20 20 e7 61 25 3c 3e 97 |...* .a%<>.| 000041b0 22 5e 22 20 f2 62 61 64 66 69 6c 65 28 22 5e 20 |"^" .badfile("^ | 000041c0 65 78 70 65 63 74 65 64 22 29 0d 1b e4 11 20 20 |expected").... | 000041d0 20 20 20 20 70 25 3d 9a 23 66 25 0d 1b ee 21 20 | p%=.#f%...! | 000041e0 20 20 20 20 20 e7 70 25 3d 97 22 2d 22 20 74 25 | .p%=."-" t%| 000041f0 3d 9a 23 66 25 20 8b 74 25 3d 70 25 0d 1b f8 11 |=.#f% .t%=p%....| 00004200 20 20 20 20 20 20 61 25 3d 9a 23 66 25 0d 1c 02 | a%=.#f%...| 00004210 2a 20 20 20 20 20 20 e7 61 25 3c 3e 97 22 2e 22 |* .a%<>."."| 00004220 20 f2 62 61 64 66 69 6c 65 28 22 2e 20 65 78 70 | .badfile(". exp| 00004230 65 63 74 65 64 22 29 0d 1c 0c 11 20 20 20 20 20 |ected").... | 00004240 20 61 25 3d 9a 23 66 25 0d 1c 16 11 20 20 20 20 | a%=.#f%.... | 00004250 20 20 62 25 3d 9a 23 66 25 0d 1c 20 21 20 20 20 | b%=.#f%.. ! | 00004260 20 20 20 74 25 3d 74 25 2a 31 30 30 2b 61 25 2a | t%=t%*100+a%*| 00004270 31 30 2b 62 25 2d 35 33 32 38 0d 1c 2a 1a 20 20 |10+b%-5328..*. | 00004280 20 20 20 20 e7 70 25 3d 97 22 2d 22 20 8c 74 25 | .p%=."-" .t%| 00004290 3d 2d 74 25 0d 1c 34 18 20 20 20 20 20 20 4d 61 |=-t%..4. Ma| 000042a0 67 28 73 25 29 3d 74 25 2f 31 30 30 0d 1c 3e 16 |g(s%)=t%/100..>.| 000042b0 20 20 20 20 20 20 e7 9a 23 66 25 3d 97 22 3d 22 | ..#f%=."="| 000042c0 20 8c 0d 1c 48 1b 20 20 20 20 20 20 20 20 4e 61 | ...H. Na| 000042d0 6d 65 64 5f 73 74 61 72 73 25 2b 3d 31 0d 1c 52 |med_stars%+=1..R| 000042e0 2c 20 20 20 20 20 20 20 20 53 74 61 72 24 28 4e |, Star$(N| 000042f0 61 6d 65 64 5f 73 74 61 72 73 25 29 3d a4 72 65 |amed_stars%)=.re| 00004300 61 64 73 74 72 28 66 25 29 0d 1c 5c 22 20 20 20 |adstr(f%)..\" | 00004310 20 20 20 20 20 73 74 61 72 25 28 4e 61 6d 65 64 | star%(Named| 00004320 5f 73 74 61 72 73 25 29 3d 73 25 0d 1c 66 0b 20 |_stars%)=s%..f. | 00004330 20 20 20 20 20 cd 0d 1c 70 11 20 20 20 20 20 20 | ...p. | 00004340 70 25 3d 9a 23 66 25 0d 1c 7a 09 20 20 20 20 ce |p%=.#f%..z. .| 00004350 0d 1c 84 07 20 20 ed 0d 1c 8e 38 20 20 e7 73 25 |.... ....8 .s%| 00004360 20 3c 20 73 64 73 25 20 f2 62 61 64 66 69 6c 65 | < sds% .badfile| 00004370 28 22 53 74 61 72 73 20 61 63 63 6f 75 6e 74 65 |("Stars accounte| 00004380 64 20 66 6f 72 20 3d 22 2b c3 28 73 25 29 29 0d |d for ="+.(s%)).| 00004390 1c 98 0a 20 20 d9 23 66 25 0d 1c a2 14 20 20 f2 |... .#f%.... .| 000043a0 68 6f 75 72 67 6c 61 73 73 5f 6f 66 66 0d 1c ac |hourglass_off...| 000043b0 05 e1 0d 1c b6 04 0d 1c c0 1c dd a4 6e 65 78 74 |............next| 000043c0 5f 70 61 72 61 6d 28 73 24 2c f8 20 70 25 2c 64 |_param(s$,. p%,d| 000043d0 24 29 0d 1c ca 07 ea 6e 25 0d 1c d4 13 20 20 6e |$).....n%.... n| 000043e0 25 3d a7 73 24 2c 64 24 2c 70 25 29 0d 1c de 16 |%=.s$,d$,p%)....| 000043f0 20 20 e7 6e 25 3d 30 20 6e 25 3d a9 28 73 24 29 | .n%=0 n%=.(s$)| 00004400 2b 31 0d 1c e8 16 20 20 73 24 3d c1 73 24 2c 70 |+1.... s$=.s$,p| 00004410 25 2c 6e 25 2d 70 25 29 0d 1c f2 0d 20 20 70 25 |%,n%-p%).... p%| 00004420 3d 6e 25 2b 31 0d 1c fc 07 3d 73 24 0d 1d 06 04 |=n%+1....=s$....| 00004430 0d 1d 10 15 dd a4 72 69 67 68 74 70 61 72 28 74 |......rightpar(t| 00004440 24 2c 64 24 29 0d 1d 1a 08 ea 20 70 25 0d 1d 24 |$,d$)..... p%..$| 00004450 12 20 20 70 25 20 3d 20 a7 74 24 2c 64 24 29 0d |. p% = .t$,d$).| 00004460 1d 2e 10 20 20 e7 70 25 3d 30 20 8c 3d 22 22 0d |... .p%=0 .="".| 00004470 1d 38 12 3d c2 74 24 2c a9 28 74 24 29 2d 70 25 |.8.=.t$,.(t$)-p%| 00004480 29 0d 1d 42 04 0d 1d 4c 04 0d 1d 56 14 dd a4 6c |)..B...L...V...l| 00004490 65 66 74 70 61 72 28 74 24 2c 64 24 29 0d 1d 60 |eftpar(t$,d$)..`| 000044a0 08 ea 20 70 25 0d 1d 6a 12 20 20 70 25 20 3d 20 |.. p%..j. p% = | 000044b0 a7 74 24 2c 64 24 29 0d 1d 74 10 20 20 e7 70 25 |.t$,d$)..t. .p%| 000044c0 3d 30 20 8c 3d 22 22 0d 1d 7e 0e 3d c0 74 24 2c |=0 .=""..~.=.t$,| 000044d0 70 25 2d 31 29 0d 1d 88 04 0d 1d 92 11 dd a4 72 |p%-1)..........r| 000044e0 65 61 64 73 74 72 28 66 25 29 0d 1d 9c 0b ea 20 |eadstr(f%)..... | 000044f0 67 25 2c 74 24 0d 1d a6 0b 20 20 74 24 3d 22 22 |g%,t$.... t$=""| 00004500 0d 1d b0 0d 20 20 67 25 3d 9a 23 66 25 0d 1d ba |.... g%=.#f%...| 00004510 0f 20 20 c8 95 20 67 25 3c 3e 31 30 0d 1d c4 14 |. .. g%<>10....| 00004520 20 20 f4 41 4e 44 67 25 3c 3e 41 53 43 22 3b 22 | .ANDg%<>ASC";"| 00004530 0d 1d ce 11 20 20 20 20 74 24 2b 3d bd 28 67 25 |.... t$+=.(g%| 00004540 29 0d 1d d8 0f 20 20 20 20 67 25 3d 9a 23 66 25 |).... g%=.#f%| 00004550 0d 1d e2 07 20 20 ce 0d 1d ec 18 20 20 c8 95 67 |.... ..... ..g| 00004560 25 3c 3e 31 30 3a 67 25 3d 9a 23 66 25 3a ce 0d |%<>10:g%=.#f%:..| 00004570 1d f6 07 3d 74 24 0d 1e 00 04 0d 1e 0a 11 dd f2 |...=t$..........| 00004580 62 61 64 66 69 6c 65 28 74 24 29 0d 1e 14 0a 20 |badfile(t$).... | 00004590 20 d9 23 66 25 0d 1e 1e 34 20 20 85 20 32 35 37 | .#f%...4 . 257| 000045a0 2c 22 42 61 64 20 73 74 61 72 20 66 69 6c 65 20 |,"Bad star file | 000045b0 28 22 2b 74 24 2b 22 29 20 61 74 20 63 6f 6e 73 |("+t$+") at cons| 000045c0 74 22 2b c3 28 63 6e 25 29 0d 1e 28 05 e1 0d 1e |t"+.(cn%)..(....| 000045d0 32 04 0d 1e 3c 28 f4 20 2f 20 4c 6f 77 20 6c 65 |2...<(. / Low le| 000045e0 76 65 6c 20 73 74 61 72 6d 61 70 20 63 61 6c 63 |vel starmap calc| 000045f0 75 6c 61 74 69 6f 6e 73 20 2f 0d 1e 46 04 0d 1e |ulations /..F...| 00004600 50 14 dd f2 63 61 6c 63 5f 65 61 72 74 68 5f 70 |P...calc_earth_p| 00004610 6f 73 0d 1e 5a 0c ea 42 25 2c 56 25 2c 65 0d 1e |os..Z..B%,V%,e..| 00004620 64 16 20 20 42 25 3d 28 6d 6f 6e 74 68 2d 31 34 |d. B%=(month-14| 00004630 29 2f 31 32 0d 1e 6e 39 20 20 56 25 3d 33 36 37 |)/12..n9 V%=367| 00004640 2a 28 6d 6f 6e 74 68 2d 32 2d 31 32 2a 42 25 29 |*(month-2-12*B%)| 00004650 2f 31 32 2d 33 2a a8 28 28 79 65 61 72 2b 36 38 |/12-3*.((year+68| 00004660 30 30 2b 42 25 29 2f 31 30 30 29 2f 34 0d 1e 78 |00+B%)/100)/4..x| 00004670 4e 20 20 72 65 61 6c 5f 74 69 6d 65 5f 64 61 79 |N real_time_day| 00004680 3d 64 61 79 2d 32 34 34 37 30 39 35 2e 35 20 2b |=day-2447095.5 +| 00004690 31 34 36 31 2a 28 79 65 61 72 2b 36 37 30 30 2b |1461*(year+6700+| 000046a0 42 25 29 2f 34 20 2b 56 25 20 2b 28 68 6f 75 72 |B%)/4 +V% +(hour| 000046b0 2b 6d 69 6e 2f 36 30 29 2f 32 34 0d 1e 82 2c 20 |+min/60)/24..., | 000046c0 20 65 3d b2 28 32 33 2e 34 35 32 20 2d 30 2e 30 | e=.(23.452 -0.0| 000046d0 31 33 2a 72 65 61 6c 5f 74 69 6d 65 5f 64 61 79 |13*real_time_day| 000046e0 2f 33 36 35 32 35 29 0d 1e 8c 14 20 20 45 61 72 |/36525).... Ear| 000046f0 74 68 5f 43 6f 73 3d 9b 28 65 29 0d 1e 96 14 20 |th_Cos=.(e).... | 00004700 20 45 61 72 74 68 5f 53 69 6e 3d b5 28 65 29 0d | Earth_Sin=.(e).| 00004710 1e a0 56 20 20 73 74 61 72 64 61 74 65 20 3d 20 |..V stardate = | 00004720 a4 72 6d 6f 64 28 36 2e 36 34 36 20 2b 20 32 34 |.rmod(6.646 + 24| 00004730 2a 72 65 61 6c 5f 74 69 6d 65 5f 64 61 79 2f 33 |*real_time_day/3| 00004740 36 35 2e 32 35 20 2b 20 68 6f 75 72 20 2b 20 6d |65.25 + hour + m| 00004750 69 6e 2f 36 30 2c 20 32 34 29 2d 56 69 65 77 65 |in/60, 24)-Viewe| 00004760 72 5f 52 61 68 0d 1e aa 2a 20 20 f2 70 6c 61 6e |r_Rah...* .plan| 00004770 5f 70 6f 73 28 30 2c 45 61 72 74 68 5f 58 2c 45 |_pos(0,Earth_X,E| 00004780 61 72 74 68 5f 59 2c 45 61 72 74 68 5f 5a 29 0d |arth_Y,Earth_Z).| 00004790 1e b4 05 e1 0d 1e be 04 0d 1e c8 04 0d 1e d2 16 |................| 000047a0 dd f2 73 75 6e 28 f8 20 61 6c 74 2c f8 20 61 7a |..sun(. alt,. az| 000047b0 6d 29 0d 1e dc 09 ea 54 2c 20 4d 0d 1e e6 1b 20 |m).....T, M.... | 000047c0 20 54 3d 72 65 61 6c 5f 74 69 6d 65 5f 64 61 79 | T=real_time_day| 000047d0 2f 33 36 35 32 35 0d 1e f0 1a 20 20 4d 3d b2 28 |/36525.... M=.(| 000047e0 33 35 38 2e 34 37 36 2b 33 36 30 30 30 2a 54 29 |358.476+36000*T)| 000047f0 0d 1e fa 51 20 20 f2 63 61 6c 63 5f 65 71 75 69 |...Q .calc_equi| 00004800 76 28 b2 28 32 37 39 2e 36 39 37 2b 33 36 30 30 |v(.(279.697+3600| 00004810 30 2a 54 29 2b b2 28 28 31 2e 39 31 39 2d 2e 30 |0*T)+.((1.919-.0| 00004820 30 35 2a 54 29 2a b5 28 4d 29 2b 2e 30 32 2a b5 |05*T)*.(M)+.02*.| 00004830 28 32 2a 4d 29 29 2c 30 2c 61 6c 74 2c 61 7a 6d |(2*M)),0,alt,azm| 00004840 29 0d 1f 04 05 e1 0d 1f 0e 04 0d 1f 18 04 0d 1f |)...............| 00004850 22 17 dd f2 6d 6f 6f 6e 28 f8 20 61 6c 74 2c f8 |"...moon(. alt,.| 00004860 20 61 7a 6d 29 0d 1f 2c 10 ea 59 2c 20 42 45 54 | azm)..,..Y, BET| 00004870 2c 20 4c 41 4d 0d 1f 36 4e 20 20 59 3d 30 2e 37 |, LAM..6N Y=0.7| 00004880 2a b5 b2 28 33 34 31 2e 35 2b 32 34 2e 33 38 31 |*..(341.5+24.381| 00004890 35 2a 72 65 61 6c 5f 74 69 6d 65 5f 64 61 79 29 |5*real_time_day)| 000048a0 2b 36 2e 33 2a b5 b2 28 32 39 36 2e 31 2b 31 33 |+6.3*..(296.1+13| 000048b0 2e 30 36 35 2a 72 65 61 6c 5f 74 69 6d 65 5f 64 |.065*real_time_d| 000048c0 61 79 29 0d 1f 40 2d 20 20 59 2d 3d 31 2e 33 2a |ay)..@- Y-=1.3*| 000048d0 b5 b2 28 33 31 34 2e 36 2d 31 31 2e 33 31 36 35 |..(314.6-11.3165| 000048e0 31 2a 72 65 61 6c 5f 74 69 6d 65 5f 64 61 79 29 |1*real_time_day)| 000048f0 0d 1f 4a 32 20 20 42 45 54 3d b2 28 35 2e 32 2a |..J2 BET=.(5.2*| 00004900 b5 b2 28 59 2b 31 31 2e 32 2b 31 33 2e 32 32 39 |..(Y+11.2+13.229| 00004910 33 35 2a 72 65 61 6c 5f 74 69 6d 65 5f 64 61 79 |35*real_time_day| 00004920 29 29 0d 1f 54 45 20 20 59 2b 3d 32 37 30 2e 34 |))..TE Y+=270.4| 00004930 2b 31 33 2e 31 37 36 34 2a 72 65 61 6c 5f 74 69 |+13.1764*real_ti| 00004940 6d 65 5f 64 61 79 2b 2e 32 2a b5 b2 28 32 33 32 |me_day+.2*..(232| 00004950 2e 32 2b 32 36 2e 31 33 2a 72 65 61 6c 5f 74 69 |.2+26.13*real_ti| 00004960 6d 65 5f 64 61 79 29 0d 1f 5e 51 20 20 4c 41 4d |me_day)..^Q LAM| 00004970 3d b2 28 59 2d 2e 31 2a b5 b2 28 32 32 2e 35 2b |=.(Y-.1*..(22.5+| 00004980 32 36 2e 34 35 38 37 2a 72 65 61 6c 5f 74 69 6d |26.4587*real_tim| 00004990 65 5f 64 61 79 29 2d 2e 32 2a b5 b2 28 33 35 38 |e_day)-.2*..(358| 000049a0 2e 35 2b 2e 39 38 35 36 2a 72 65 61 6c 5f 74 69 |.5+.9856*real_ti| 000049b0 6d 65 5f 64 61 79 29 29 0d 1f 68 47 20 20 6d 6f |me_day))..hG mo| 000049c0 6f 6e 5f 61 67 65 25 3d 2e 30 38 32 2a a4 72 6d |on_age%=.082*.rm| 000049d0 6f 64 28 33 35 30 2e 37 34 2b 34 34 35 32 36 37 |od(350.74+445267| 000049e0 2e 31 34 2a 28 72 65 61 6c 5f 74 69 6d 65 5f 64 |.14*(real_time_d| 000049f0 61 79 2f 33 36 35 32 35 29 2c 20 33 36 30 29 0d |ay/36525), 360).| 00004a00 1f 72 27 20 20 6d 6f 6f 6e 5f 70 68 61 73 65 24 |.r' moon_phase$| 00004a10 3d c3 28 31 2b a8 28 6d 6f 6f 6e 5f 61 67 65 25 |=.(1+.(moon_age%| 00004a20 2f 37 2e 35 29 29 0d 1f 7c 22 20 20 f2 63 61 6c |/7.5))..|" .cal| 00004a30 63 5f 65 71 75 69 76 28 4c 41 4d 2c 42 45 54 2c |c_equiv(LAM,BET,| 00004a40 61 6c 74 2c 61 7a 6d 29 0d 1f 86 05 e1 0d 1f 90 |alt,azm)........| 00004a50 04 0d 1f 9a 04 0d 1f a4 1e dd f2 70 6c 61 6e 5f |...........plan_| 00004a60 70 6f 73 28 4e 25 2c f8 20 78 2c f8 20 79 2c f8 |pos(N%,. x,. y,.| 00004a70 20 7a 29 0d 1f ae 18 ea 6d 2c 20 63 2c 20 65 2c | z).....m, c, e,| 00004a80 20 6e 25 2c 20 78 6c 2c 20 79 6c 0d 1f b8 39 20 | n%, xl, yl...9 | 00004a90 20 6d 20 3d 20 50 64 61 74 28 4e 25 2c 20 36 29 | m = Pdat(N%, 6)| 00004aa0 2b 50 64 61 74 28 4e 25 2c 20 30 29 2a 28 72 65 |+Pdat(N%, 0)*(re| 00004ab0 61 6c 5f 74 69 6d 65 5f 64 61 79 2d 32 38 31 38 |al_time_day-2818| 00004ac0 30 2e 35 29 0d 1f c2 1d 20 20 63 20 3d 20 6d 20 |0.5).... c = m | 00004ad0 2b 20 50 64 61 74 28 4e 25 2c 32 29 2a b5 28 4d |+ Pdat(N%,2)*.(M| 00004ae0 29 0d 1f cc 0a 20 20 6e 25 3d 31 0d 1f d6 07 20 |).... n%=1.... | 00004af0 20 f5 0d 1f e0 3d 20 20 20 20 65 3d 63 2b 28 6d | ....= e=c+(m| 00004b00 20 2b 20 50 64 61 74 28 4e 25 2c 32 29 2a b5 28 | + Pdat(N%,2)*.(| 00004b10 63 29 20 2d 20 63 29 2f 28 20 31 20 2d 20 50 64 |c) - c)/( 1 - Pd| 00004b20 61 74 28 4e 25 2c 32 29 2a 9b 28 63 29 20 29 0d |at(N%,2)*.(c) ).| 00004b30 1f ea 0f 20 20 20 20 c8 94 20 63 2c 20 65 0d 1f |... .. c, e..| 00004b40 f4 0d 20 20 20 20 6e 25 2b 3d 31 0d 1f fe 1b 20 |.. n%+=1.... | 00004b50 20 fd 94 28 65 2d 63 29 3c 31 45 2d 36 20 84 20 | ..(e-c)<1E-6 . | 00004b60 6e 25 3e 31 30 30 0d 20 08 25 20 20 78 3d 50 64 |n%>100. .% x=Pd| 00004b70 61 74 28 4e 25 2c 31 29 2a 28 9b 28 65 29 2d 50 |at(N%,1)*(.(e)-P| 00004b80 64 61 74 28 4e 25 2c 20 32 29 29 0d 20 12 17 20 |dat(N%, 2)). .. | 00004b90 20 79 3d 50 64 61 74 28 4e 25 2c 33 29 2a b5 28 | y=Pdat(N%,3)*.(| 00004ba0 65 29 0d 20 1c 24 20 20 78 6c 3d 78 2a 50 64 61 |e). .$ xl=x*Pda| 00004bb0 74 28 4e 25 2c 37 29 20 2d 20 79 2a 50 64 61 74 |t(N%,7) - y*Pdat| 00004bc0 28 4e 25 2c 38 29 0d 20 26 24 20 20 79 6c 3d 78 |(N%,8). &$ yl=x| 00004bd0 2a 50 64 61 74 28 4e 25 2c 38 29 20 2b 20 79 2a |*Pdat(N%,8) + y*| 00004be0 50 64 61 74 28 4e 25 2c 37 29 0d 20 30 31 20 20 |Pdat(N%,7). 01 | 00004bf0 78 3d 78 6c 2a 50 64 61 74 28 4e 25 2c 39 29 20 |x=xl*Pdat(N%,9) | 00004c00 2d 20 79 6c 2a 50 64 61 74 28 4e 25 2c 31 30 29 |- yl*Pdat(N%,10)| 00004c10 2a 50 64 61 74 28 4e 25 2c 34 29 0d 20 3a 30 20 |*Pdat(N%,4). :0 | 00004c20 20 79 3d 78 6c 2a 50 64 61 74 28 4e 25 2c 31 30 | y=xl*Pdat(N%,10| 00004c30 29 2b 20 79 6c 2a 50 64 61 74 28 4e 25 2c 39 29 |)+ yl*Pdat(N%,9)| 00004c40 2a 50 64 61 74 28 4e 25 2c 34 29 0d 20 44 15 20 |*Pdat(N%,4). D. | 00004c50 20 7a 3d 79 6c 2a 50 64 61 74 28 4e 25 2c 35 29 | z=yl*Pdat(N%,5)| 00004c60 0d 20 4e 05 e1 0d 20 58 04 0d 20 62 1c dd f2 70 |. N... X.. b...p| 00004c70 6c 61 6e 65 74 28 4e 25 2c f8 20 61 6c 74 2c f8 |lanet(N%,. alt,.| 00004c80 20 61 7a 6d 29 0d 20 6c 0b ea 20 78 2c 79 2c 7a | azm). l.. x,y,z| 00004c90 0d 20 76 0f 78 3d 30 3a 79 3d 30 3a 7a 3d 30 0d |. v.x=0:y=0:z=0.| 00004ca0 20 80 19 20 20 f2 70 6c 61 6e 5f 70 6f 73 28 4e | .. .plan_pos(N| 00004cb0 25 2c 78 2c 79 2c 7a 29 0d 20 8a 10 20 20 78 2d |%,x,y,z). .. x-| 00004cc0 3d 45 61 72 74 68 5f 58 0d 20 94 10 20 20 79 2d |=Earth_X. .. y-| 00004cd0 3d 45 61 72 74 68 5f 59 0d 20 9e 10 20 20 7a 2d |=Earth_Y. .. z-| 00004ce0 3d 45 61 72 74 68 5f 5a 0d 20 a8 42 20 20 f2 63 |=Earth_Z. .B .c| 00004cf0 61 6c 63 5f 65 71 75 69 76 28 99 28 79 2f 78 29 |alc_equiv(.(y/x)| 00004d00 2b af 2a 28 33 2b b4 28 78 29 29 2f 32 2c 98 28 |+.*(3+.(x))/2,.(| 00004d10 7a 2f b6 28 78 2a 78 2b 79 2a 79 2b 7a 2a 7a 29 |z/.(x*x+y*y+z*z)| 00004d20 29 2c 61 6c 74 2c 61 7a 6d 29 0d 20 b2 05 e1 0d |),alt,azm). ....| 00004d30 20 bc 04 0d 20 c6 04 0d 20 d0 25 dd f2 63 61 6c | ... ... .%..cal| 00004d40 63 5f 65 71 75 69 76 28 4c 41 4d 2c 42 45 54 2c |c_equiv(LAM,BET,| 00004d50 f8 20 61 6c 74 2c f8 20 61 7a 6d 29 0d 20 da 0c |. alt,. azm). ..| 00004d60 ea 63 2c 20 73 2c 20 58 0d 20 e4 19 20 20 4c 41 |.c, s, X. .. LA| 00004d70 4d 3d a4 72 6d 6f 64 28 4c 41 4d 2c 20 32 2a af |M=.rmod(LAM, 2*.| 00004d80 29 0d 20 ee 0e 20 20 63 3d 9b 28 42 45 54 29 0d |). .. c=.(BET).| 00004d90 20 f8 0e 20 20 73 3d b5 28 42 45 54 29 0d 21 02 | .. s=.(BET).!.| 00004da0 10 20 20 58 3d 63 2a b5 28 4c 41 4d 29 0d 21 0c |. X=c*.(LAM).!.| 00004db0 5f 20 20 f2 63 61 6c 63 5f 70 6f 73 28 52 41 48 |_ .calc_pos(RAH| 00004dc0 45 2a a4 61 6e 67 28 58 2a 45 61 72 74 68 5f 43 |E*.ang(X*Earth_C| 00004dd0 6f 73 2d 73 2a 45 61 72 74 68 5f 53 69 6e 2c 63 |os-s*Earth_Sin,c| 00004de0 2a 9b 28 4c 41 4d 29 29 2c 98 28 73 2a 45 61 72 |*.(LAM)),.(s*Ear| 00004df0 74 68 5f 43 6f 73 2b 58 2a 45 61 72 74 68 5f 53 |th_Cos+X*Earth_S| 00004e00 69 6e 29 2c 61 6c 74 2c 61 7a 6d 29 0d 21 16 05 |in),alt,azm).!..| 00004e10 e1 0d 21 20 04 0d 21 2a 04 0d 21 34 24 dd f2 63 |..! ..!*..!4$..c| 00004e20 61 6c 63 5f 70 6f 73 28 52 41 48 2c 44 45 43 2c |alc_pos(RAH,DEC,| 00004e30 20 f8 20 61 6c 74 2c f8 20 61 7a 6d 29 0d 21 3e | . alt,. azm).!>| 00004e40 10 ea 20 48 2c 20 58 2c 20 73 2c 20 63 0d 21 48 |.. H, X, s, c.!H| 00004e50 0f 20 20 63 3d 2d 9b 28 44 45 43 29 0d 21 52 0f |. c=-.(DEC).!R.| 00004e60 20 20 73 3d 20 b5 28 44 45 43 29 0d 21 5c 1b 20 | s= .(DEC).!\. | 00004e70 20 48 3d 53 49 44 45 2a 28 73 74 61 72 64 61 74 | H=SIDE*(stardat| 00004e80 65 2d 52 41 48 29 0d 21 66 0e 20 20 58 3d 63 2a |e-RAH).!f. X=c*| 00004e90 9b 28 48 29 0d 21 70 18 20 20 61 6c 74 3d 98 28 |.(H).!p. alt=.(| 00004ea0 73 2a 56 6c 73 2d 58 2a 56 6c 63 29 0d 21 7a 23 |s*Vls-X*Vlc).!z#| 00004eb0 20 20 61 7a 6d 3d a4 61 6e 67 28 63 2a b5 28 48 | azm=.ang(c*.(H| 00004ec0 29 2c 20 73 2a 56 6c 63 2b 58 2a 56 6c 73 29 0d |), s*Vlc+X*Vls).| 00004ed0 21 84 05 e1 0d 21 8e 04 0d 21 98 16 dd f2 73 65 |!....!...!....se| 00004ee0 74 70 6f 73 28 4c 61 74 2c 4c 6f 6e 67 29 0d 21 |tpos(Lat,Long).!| 00004ef0 a2 17 20 20 56 69 65 77 65 72 5f 4c 61 74 3d b2 |.. Viewer_Lat=.| 00004f00 28 4c 61 74 29 0d 21 ac 17 20 20 56 6c 63 3d 9b |(Lat).!.. Vlc=.| 00004f10 28 56 69 65 77 65 72 5f 4c 61 74 29 0d 21 b6 17 |(Viewer_Lat).!..| 00004f20 20 20 56 6c 73 3d b5 28 56 69 65 77 65 72 5f 4c | Vls=.(Viewer_L| 00004f30 61 74 29 0d 21 c0 18 20 20 56 69 65 77 65 72 5f |at).!.. Viewer_| 00004f40 52 61 68 3d 4c 6f 6e 67 2f 31 35 0d 21 ca 25 20 |Rah=Long/15.!.% | 00004f50 20 24 6c 6f 6e 67 5f 70 74 72 25 3d a4 6d 61 6b | $long_ptr%=.mak| 00004f60 65 5f 61 6e 67 28 4c 6f 6e 67 2c 22 45 57 22 29 |e_ang(Long,"EW")| 00004f70 0d 21 d4 24 20 20 24 6c 61 74 5f 70 74 72 25 20 |.!.$ $lat_ptr% | 00004f80 3d a4 6d 61 6b 65 5f 61 6e 67 28 4c 61 74 2c 22 |=.make_ang(Lat,"| 00004f90 4e 53 22 29 0d 21 de 05 e1 0d 21 e8 04 0d 21 f2 |NS").!....!...!.| 00004fa0 14 dd a4 6d 61 6b 65 5f 61 6e 67 28 61 2c 64 24 |...make_ang(a,d$| 00004fb0 29 0d 21 fc 0b ea 64 25 2c 20 6d 25 0d 22 06 10 |).!...d%, m%."..| 00004fc0 20 20 64 25 3d 94 28 a8 28 61 29 29 0d 22 10 19 | d%=.(.(a))."..| 00004fd0 20 20 6d 25 3d 94 28 a8 28 61 2a 36 30 29 29 2d | m%=.(.(a*60))-| 00004fe0 64 25 2a 36 30 0d 22 1a 27 3d c3 28 64 25 29 2b |d%*60.".'=.(d%)+| 00004ff0 22 64 22 2b c3 28 6d 25 29 2b 22 6d 22 2b c1 64 |"d"+.(m%)+"m"+.d| 00005000 24 2c 31 2d 28 61 3c 30 29 2c 31 29 0d 22 24 04 |$,1-(a<0),1)."$.| 00005010 0d 22 2e 0f dd a4 61 6e 67 28 59 2c 20 58 29 0d |."....ang(Y, X).| 00005020 22 38 13 20 20 e7 58 3d 30 20 8c 3d af 2a b4 28 |"8. .X=0 .=.*.(| 00005030 59 29 0d 22 42 1a 3d af 2b 99 28 59 2f 58 29 2b |Y)."B.=.+.(Y/X)+| 00005040 28 58 3e 30 29 2a b4 28 59 29 2a af 0d 22 4c 04 |(X>0)*.(Y)*.."L.| 00005050 0d 22 56 04 0d 22 60 10 dd a4 72 6d 6f 64 28 41 |."V.."`...rmod(A| 00005060 2c 20 4d 29 0d 22 6a 22 20 20 e7 41 3c 30 20 f5 |, M)."j" .A<0 .| 00005070 41 2b 3d 4d 3a fd 41 3e 30 20 8b 41 2d 3d 4d 2a |A+=M:.A>0 .A-=M*| 00005080 a8 28 41 2f 4d 29 0d 22 74 06 3d 41 0d 22 7e 04 |.(A/M)."t.=A."~.| 00005090 0d 22 88 11 dd a4 64 65 63 5f 74 69 6d 65 28 41 |."....dec_time(A| 000050a0 29 0d 22 92 0a ea 68 25 2c 6d 25 0d 22 9c 0a 20 |)."...h%,m%.".. | 000050b0 20 68 25 3d 41 0d 22 a6 16 20 20 6d 25 3d 36 30 | h%=A.".. m%=60| 000050c0 2a 28 41 2d 68 25 29 2b 30 2e 35 0d 22 b0 13 20 |*(A-h%)+0.5.".. | 000050d0 20 41 3d a4 72 6d 6f 64 28 41 2c 32 34 29 0d 22 | A=.rmod(A,24)."| 000050e0 ba 0b 20 20 40 25 3d 31 30 0d 22 c4 2b 3d c4 32 |.. @%=10.".+=.2| 000050f0 2d a9 c3 68 25 2c 20 22 20 22 29 2b c3 68 25 2b |-..h%, " ")+.h%+| 00005100 22 3a 22 2b c4 32 2d a9 c3 6d 25 2c 22 30 22 29 |":"+.2-..m%,"0")| 00005110 2b c3 6d 25 0d 22 ce 04 0d 22 d8 0f dd a4 6c 6f |+.m%."..."....lo| 00005120 6f 6b 5f 6e 65 78 74 0d 22 e2 1c 3d 28 a4 64 65 |ok_next."..=(.de| 00005130 63 6f 64 65 5f 74 69 6d 65 28 32 30 29 3c 3e 6d |code_time(20)<>m| 00005140 69 6e 29 0d 22 ec 04 0d 22 f6 0d dd f2 73 65 74 |in)."..."....set| 00005150 74 69 6d 65 0d 23 00 1c 20 20 6d 69 6e 20 20 3d |time.#.. min =| 00005160 a4 64 65 63 6f 64 65 5f 74 69 6d 65 28 32 30 29 |.decode_time(20)| 00005170 0d 23 0a 1c 20 20 68 6f 75 72 20 3d a4 64 65 63 |.#.. hour =.dec| 00005180 6f 64 65 5f 74 69 6d 65 28 31 37 29 0d 23 14 1b |ode_time(17).#..| 00005190 20 20 64 61 79 20 20 3d a4 64 65 63 6f 64 65 5f | day =.decode_| 000051a0 74 69 6d 65 28 35 29 0d 23 1e 19 20 20 6d 6f 6e |time(5).#.. mon| 000051b0 74 68 3d a4 64 65 63 6f 64 65 5f 6d 6f 6e 74 68 |th=.decode_month| 000051c0 0d 23 28 1c 20 20 79 65 61 72 20 3d a4 64 65 63 |.#(. year =.dec| 000051d0 6f 64 65 5f 74 69 6d 65 28 31 34 29 0d 23 32 05 |ode_time(14).#2.| 000051e0 e1 0d 23 3c 04 0d 23 46 11 dd a4 73 74 72 69 6e |..#<..#F...strin| 000051f0 67 5f 74 69 6d 65 0d 23 50 46 3d c3 28 68 6f 75 |g_time.#PF=.(hou| 00005200 72 29 2b 22 3a 22 2b c3 28 6d 69 6e 29 2b 22 20 |r)+":"+.(min)+" | 00005210 6f 6e 20 22 2b c3 28 64 61 79 29 2b 22 20 22 2b |on "+.(day)+" "+| 00005220 c1 6d 6f 6e 24 2c 6d 6f 6e 74 68 2a 33 2c 33 29 |.mon$,month*3,3)| 00005230 2b 22 20 22 2b c3 28 79 65 61 72 29 0d 23 5a 04 |+" "+.(year).#Z.| 00005240 0d 23 64 04 0d 23 6e 11 dd f2 69 6e 63 74 69 6d |.#d..#n...inctim| 00005250 65 28 73 25 29 0d 23 78 0d 20 20 6d 69 6e 2b 3d |e(s%).#x. min+=| 00005260 73 25 0d 23 82 11 20 20 e7 20 6d 69 6e 3e 3d 36 |s%.#.. . min>=6| 00005270 30 20 8c 0d 23 8c 16 20 20 20 20 68 6f 75 72 2b |0 ..#.. hour+| 00005280 3d 6d 69 6e 20 81 20 36 30 0d 23 96 14 20 20 20 |=min . 60.#.. | 00005290 20 6d 69 6e 3d 6d 69 6e 20 83 20 36 30 0d 23 a0 | min=min . 60.#.| 000052a0 14 20 20 20 20 e7 20 68 6f 75 72 3e 3d 32 34 20 |. . hour>=24 | 000052b0 8c 0d 23 aa 19 20 20 20 20 20 20 20 68 6f 75 72 |..#.. hour| 000052c0 3d 68 6f 75 72 20 83 20 32 34 0d 23 b4 11 20 20 |=hour . 24.#.. | 000052d0 20 20 20 20 20 64 61 79 2b 3d 31 0d 23 be 09 20 | day+=1.#.. | 000052e0 20 20 20 cd 0d 23 c8 07 20 20 cd 0d 23 d2 05 e1 | ..#.. ..#...| 000052f0 0d 23 dc 04 0d 23 e6 15 dd a4 64 65 63 6f 64 65 |.#...#....decode| 00005300 5f 74 69 6d 65 28 69 25 29 0d 23 f0 11 3d bb c1 |_time(i%).#..=..| 00005310 91 24 2c 20 69 25 2c 20 32 29 0d 23 fa 04 0d 24 |.$, i%, 2).#...$| 00005320 04 12 dd a4 64 65 63 6f 64 65 5f 6d 6f 6e 74 68 |....decode_month| 00005330 0d 24 0e 19 3d a7 6d 6f 6e 24 2c 20 c1 91 24 2c |.$..=.mon$, ..$,| 00005340 20 38 2c 20 33 29 29 2f 33 0d 24 18 04 0d 24 22 | 8, 3))/3.$...$"| 00005350 22 dd a4 62 63 64 28 63 25 29 3d 28 63 25 20 80 |"..bcd(c%)=(c% .| 00005360 20 31 35 29 2b 31 30 2a 28 63 25 3e 3e 34 29 0d | 15)+10*(c%>>4).| 00005370 24 2c 04 0d 24 36 1d dd f2 6c 6f 61 64 5f 6d 65 |$,..$6...load_me| 00005380 73 73 28 71 25 29 3a e1 3a f4 20 64 75 6d 6d 79 |ss(q%):.:. dummy| 00005390 0d 24 40 04 0d 24 4a 19 f4 20 2f 20 45 6e 64 20 |.$@..$J.. / End | 000053a0 6f 66 20 21 53 74 61 72 67 61 7a 65 72 0d 24 54 |of !Stargazer.$T| 000053b0 04 0d ff |...| 000053b3