start tok64 d64-pCN58s 90 REM xxxxxxxxxx and more 100 POKE56,56:POKE55,0:CLR:FORi=828TO909:READa:x=x+a:POKEi,a:NEXTi:PRINTCHR$(8) 110 IFx<>9923THENPRINT"error in data statements.":STOP 120 DATA 173,14,220,41,254,141,14,220,173,24 130 DATA 208,41,14,10,10,133,167,169,208,133 140 DATA 252,173,0,221,41,3,73,3,10,10,10,10 150 DATA 10,10,5,167,133,254,165,1,41,251 160 DATA 133,1,169,0,133,251,133,253,168,162 170 DATA 8,177,251,145,253,200,208,249,230 180 DATA 252,230,254,202,208,242,165,1,9 190 DATA 4,133,1,173,14,220,9,1,141,14,220,96 200 POKE53281,1:POKE646,0:GOSUB2210 210 d$="{0*4}31059090120151181212243273304334":k1=1440:DIMhc(22):mm$="041081040" 220 m$="286317345011041072102133164194225255":d$(1)="s":d$(2)="n":es=93 230 a$="janfebmaraprmayjunjulaugsepoctnovdec":oo$="{down}out of range!!{down}" 240 md$="312831303130313130313031":d9={pi}/180:READee:READm9:DIMp(6,6) 250 DEFFNr(x)=INT(x*100+.5)/100 260 DEFFNs(x)=INT(x*10+.5)/10 270 FORy=1TO2:FORx=1TO6:READp(x,y):NEXT:NEXT:y=0 280 FORx=1TO6:READp$(x),p(x,3):NEXT:FORx=1TO8:READa:POKE14335+x,a:NEXT 290 FORx=15024TO15079:READa:POKEx,a:NEXT:FORx=1TO7:pp(x)=x+85:NEXT 300 j$="satsunmontuewedthufri":FORx=1TO12:READf$ 310 cc$=cc$+"{space*5}"+f$:NEXT:cc$=cc$+cc$:f$=RIGHT$(c c$,9):cc$=f$+cc$ 320 FORx=1TO8:READph$(x):NEXT 330 FORx=1TO22:READhc(x):NEXT:POKE53281,7:GOTO920 340 cc=mt-720:IFcc<0THENcc=cc+k1 350 cc=cc/120:cd=cc-INT(cc):cc=INT(cc):cd=INT(cd*7+.2):cc=81-(cc*7+cd) 360 GOSUB2000:PRINTCHR$(18);cd$;CHR$(146);:IFll<0THENGOSUB2590 370 FORx=55976TO56015:POKEx,2:GOTO2620 380 PRINT"{clear}{down}"TAB(10)"**days sky**":GOSUB1770:PRINT 390 PRINT:PRINT"input the time:":PRINT"{cm y*15}":t1=0:t2=0 400 PRINT:INPUT"{space*5}hour(0-23) ";t1:IFt1<0ORt1>23THENPRINToo$:GOTO400 410 PRINT:INPUT"{space*3}minute (0-59) ";t2:IFt2<0ORt2>59THENPRINToo$:GOTO410 420 r$=STR$(t1):t$=STR$(t2):t$=RIGHT$(t$,LEN(t$)-1):IFLEN(t$)=1THENt$="0"+t$ 430 PRINT"{down*2}time-- "r$":"t$ 440 PRINT:GOSUB2230:IFz$="n"THEN380 450 PRINT"{clear}":t3=t1*60+t2+aa-720:IFt3<0THENt3=t3+k1 460 IFt3>k1THENt3=t3-k1 470 mt=t3-360:IFmt<0THENmt=mt+k1 480 pt=t3+360:IFpt>k1THENpt=pt-k1 490 GOSUB1770:PRINTTAB(27)r$":"t$ 500 c9$="{blue}":tm=VAL(r$+"."+t$):IFtm<6ORtm>18THENc9$="{black}" 510 xx=7+lc:FORx=1TO14:IFx=xxTHEN530 520 PRINTc9$+"{reverse on}{space*41}";"{black}";:GOTO 540 530 PRINTc9$+"{reverse on}{-*23}{space*4}";"{black}"; 540 NEXTx:GOSUB340:IFll<0THEN570 550 IFll>24THENPRINT"{blue}e"SPC(18)"s"SPC(19)"w{black}":GOTO 590 560 PRINT"{blue}up-{black}north{space*5}{blue}{-*4}{black}overhead{space*5}{blue}down-{black}south":GOTO 590 570 IFABS(ll)>24THENPRINT"{blue}w"SPC(18)"n"SPC(19)"e{black}":GOTO590 580 PRINT"{blue}up-{black}south{space*5}{blue}{-*4}{black}overhead{space*5}{blue}down-{black}north" 590 t4=aa:GOSUB800:y8=888:IFy9=999THEN630 600 y8=y9:GOSUB2450:IFa1<0THEN630 610 IFpk>1703ORpk<1144THEN630 620 POKEpk,170 630 t4=aa+m2*k1:IFt4>k1THENt4=t4-k1 640 GOSUB800:IFy9=999THEN680 650 mm=INT(m1/9.83333)+1:GOSUB900:IFy9=999THEN680 660 GOSUB2450:IFpk>1703ORpk<1144THEN680 670 POKEpk,mm+128:PRINTCHR$(146):IFABS(y8-y9)<=.5THENPOKEpk,81 680 FORx=1TO7:IFx=7THEN2350 690 t4=p(x,6):GOSUB800:IFy9=999THEN750 700 u9=SIN(p(x,6)*d9/4):u9=-3*u9+.5:u9=INT(u9):u(x)=u9*40 710 pk=1423-y9+u(x)+lb:GOSUB2460 720 IFpk>1703ORpk<1144THEN750 730 z=PEEK(pk):IFz<>160ANDz<>173THENpk=pk+SGN(ll)*40+(ll=0)*40:GOTO730 740 POKEpk,pp(x) 750 NEXTx:PRINT"{home}{down*19}" 760 PRINT"{up}Vmercury{space*2}Wvenus{space*2}Xmars{space*4}Yjupiter" 770 PRINT"Zsaturn{space*4}{sh +}uranus{space*3}{reverse on}*{reverse off}sun{space*6}{reverse on})Q({reverse off}moon" 780 PRINT"{space*2}Qnew moon + sun{space*2}"b$ 790 PRINT:PRINT"t- new time,p-p.table,d- date,l- lat":GOTO1920 800 y9=999:IFmt=mt ORt4<=ptTHEN830 820 RETURN 830 IFt4>=mt AND t4<=k1THEN870 840 t4=t4+k1:GOTO 870 850 IFt4>=mt AND t4<=pt THEN 870 860 RETURN 870 y9=INT((t4-mt)/18+.5):IFy9=40THENy9=39 880 RETURN 890 u9=SIN(t4/4*d9):u9=-3*u9+.5:u9=INT(u9):u9=u9*40:RETURN 900 mm=VAL(MID$(mm$,3*mm-2,3)):IFll<0ANDmm<>81THENmm=ABS(mm-81) 910 RETURN 920 PRINT"{clear}{down}{space*4}**********skyscape**********":PRINT"{down}date input":s1=0 930 PRINT"{cm y*10}":IFy<>0THENGOSUB1770:PRINT:PRINT 940 INPUT"year{space*2}";y:IFy<1977THENPRINT"must be greater than 1977":GOTO 940 950 GOSUB1820:PRINT:INPUT"month (1-12) ";m:IFm<1ORm>12THENPRINToo$:GOTO950 960 di=VAL(MID$(md$,2*m-1,2)):di=di-(m=2)*ly:di$=STR$(di):di$=RIGHT$(di$,2) 970 PRINT"{down}day (1-"di$") ";:INPUTd:IFd<1ORd>diTHENPRINToo$:GOTO970 980 h$=MID$(a$,m*3-2,3):PRINT:PRINT"latitude (-90 to 90)";:INPUTll 990 GOSUB 2480 1000 IFABS(ll)>90THENPRINToo$:GOTO980 1010 PRINT:PRINT"{down*2}{right*4}"h$;d"{left},"y:PRINT:GOSUB2230:IF z$="n"THEN920 1020 d2=VAL(MID$(m$,m*3-2,3))+d:GOSUB1860:IFm>2THENd1=d1+ly:y1=y1+ly 1030 d3=d2-185:IFm=3ANDd<20THENd2=d2+ly:d3=d3+ly 1040 s=0:IFd3<=0THENa=180*d2/185:GOTO 1060 1050 a=180*d3/(180+zy)+180 1060 IFa<>180THENs=23.43333333*SIN(d9*d2*180/185) 1070 IFa >180THENs=-23.43333333*SIN(d9*d3) 1080 IFa>=360THENa=a-360 1090 a=FNr(a) 1100 s=FNr(s):a1=(SGN(ll)-(ll=0))*s+90-ABS(ll):a1=FNr(a1):GOSUB1470:GOSUB1420 1110 w=1-(SGN(ll)<0):IFa1>90THENa1=180-a1:w=ABS(w-3) 1120 PRINT"{clear}{down}":GOSUB1770:PRINT:PRINT"{cm y*32}":i$="{left}@" 1130 PRINT:PRINT"day of the year{-*11}",d1 1140 PRINT"sun's geocentric angle{-*4}",a;i$ 1150 PRINT"sun's declination{-*9}",s;i$ 1160 PRINT"sun's altitude at noon{-*4}",a1;i$;d$(w) 1170 PRINT"sun's right ascension{-*5}",a3$ 1180 PRINT"r.a. at 9:00pm{-*12}",a5$ 1190 PRINT"moon's age{-*16}",m1;"dy" 1200 PRINT"moon's elongation{-*9}",m8;"{left}@";l$:i$="" 1210 PRINT"moon's phase- "ph$(m3) 1220 PRINT"{down*2}-p- planet table, -d- new date":GOTO 1920 1230 PRINT"{clear}{down}":PRINTTAB(7)"**planet table**":GOSUB1770:PRINT:PRINT:s1=1 1240 PRINT"planet{space*3}dist.{space*2}ang. w/sun{space*4}r.a" 1250 PRINT"{cm y*38}":PRINT 1260 FORx=1TO6:a2=y1/p(x,2)-INT(y1/p(x,2)):q3=1 1270 a2=a2*360+p(x,1):IFa2>360THENa2=a2-360 1280 e=180+a:IFe>360THENe=e-360 1290 e1=ABS(e-a2):IFe1>180THENe1=360-e1 1300 GOSUB1530:e1=e1*d9:p5=p(x,3):IFx=3THENGOSUB1980 1310 p(x,4)=SQR(1+p5^2-2*p5*COS(e1)):xx=(p5^2-1-p(x,4)^2)/(-2*p(x,4)) 1320 p(x,5)=-ATN(xx/SQR(-xx*xx+1))+{pi}/2:p(x,4)=INT(p(x,4)*es+.5) 1330 p(x,5)=p(x,5)/d9:p(x,5)=FNs(p(x,5)):q1$=STR$(p(x,4)):q2$=STR$(p(x,5)) 1340 q1=LEN(q1$):q2=LEN(q2$):GOSUB1630 1350 PRINTp$(x);TAB(14-q1);q1$;TAB(22-q2);q2$;:IFq3=-1THENPRINT"@w"; 1360 IFq3=1THENPRINT"@e"; 1370 GOSUB1680:q4$=STR$(q4):q5$=STR$(q5):IFq5<10THENq5$="0"+RIGHT$(q5$,1) 1380 q5$=RIGHT$(q5$,2):q4$=q4$+":"+q5$:z=LEN(q4$) 1390 PRINTTAB(26)qq$TAB(34-z)q4$:NEXT:PRINT"{down*2}*-visible at 9 p.m." 1400 PRINT"{down*2} sun's r.a. {-*7}"SPC(q8)a3$:PRINT"r.a. at 9:00pm{-*3}"SPC(q9)a5$ 1410 PRINT"{down}-s- for days sky -d- for new date":GOTO1920 1420 a2=k1*a/360:IFa2>k1THENa2=a2-k1 1430 a3=INT(a2/60):a4=a2-a3*60:a5=a3+9:IFa5>23THENa5=a5-24 1440 a4=INT(a2-a3*60+.5):IFa4=60THENa4=0:a3=a3+1 1450 IFa3=24THENa3=0 1460 aa=a3*60+a4:GOTO1780 1470 m1=(y1/m9-INT(y1/m9))*m9+10:IFm1>m9THENm1=m1-m9 1480 GOSUB2260:m8=360*m2:IFm8>180THENl$="w" 1490 IFm8<=180THENl$="e" 1500 IFm8>180THENm8=360-m8 1510 m1=FNr(m1):m8=FNr(m8):yy=INT(7*(y1/7-INT(y1/7))+.2):IFyy=0THENyy=7 1520 k$=MID$(j$,yy*3-2,3):RETURN 1530 q3=0:q1=e+180:IFq1>360THEN1570 1540 IFa2>eANDa2eTHEN1560 1580 IFq3<>0THENRETURN 1590 IFa2>0ANDa2<=q1THEN1560 1600 IFq3<>0THENRETURN 1610 IFa2>q1THEN1550 1620 RETURN 1630 q5=q3*p(x,5)*4+aa:IFq5<0THENq5=q5+k1 1640 IFq5>k1THENq5=q5-k1 1650 p(x,6)=q5:q4=INT(q5/60):q5=INT(q5-q4*60+.5):IFq5=60THENq5=0:q4=q4+1 1660 IFq4=24THENq4=0 1670 RETURN 1680 su=a5*60+a4:ps=su+360:ms=su-360:IFps>k1THENps=ps-k1 1690 IFms<0THENms=ms+k1 1700 IF ms>psTHEN1730 1710 IFp(x,6)msTHEN1760 1720 qq$=" ":RETURN 1730 IF p(x,6)msTHEN1760 1740 IFp(x,6)INT(y/400)THENly=0 1840 IFy/1000=INT(y/1000)ANDy/4000=INT(y/4000)THENly=0 1850 RETURN 1860 y9=y+1:IFy9/4=INT(y9/4)THENzy=1 1870 IFy9/100=INT(y9/100)ANDy9/400<>INT(y9/400)THENzy=0 1880 IFy9/1000=INT(y9/1000)ANDy9/4000=INT(y9/4000)THENzy=0 1890 y1=y-1977:y1=y1*365+INT(y1/4)+d1:IFy<2000THEN1910 1900 y1=y1-INT((y-2001)/100)+INT((y-2001)/400)-INT((y-1)/4000) 1910 RETURN 1920 GETi$:IFi$=""THEN1920 1930 IFi$="d"THEN920 1940 IF(i$="s"ORi$="t")ANDs1=1THEN380 1950 IFi$="p"THEN1230 1960 IFi$="l"ANDs1=1THEN2530 1970 GOTO1920 1980 p5=1.37634408 :k5=a2*4 1990 k5=ABS(k5-1233.73)*90/k1:k5=k5*d9:k5=SIN(k5)*.322581224:p5=p5+k5:RETURN 2000 IFcc<=1THENcc=cc+84 2010 cd$=MID$(cc$,cc-1,42) 2020 IFMID$(cd$,2,1)<>" "ANDMID$(cd$,3,1)=" "THENcd$=MID$(cd$,1,40):GOTO2050 2030 IFMID$(cd$,41,1)<>" "ANDMID$(cd$,40,1)=" "THENcd$=MID$(cd$,3,42):GOTO2050 2040 cd$=MID$(cd$,2,40) 2050 cd$="{yellow}"+cd$+"{black}":RETURN 2060 DATA365.26,29.53059,59.818184,42.719626,262.364294,52.916763 2070 DATA134.69697,218.79464,87.97,224.7,686.98 2080 DATA4332.79813,10759.7195,30686.5884 2090 DATA"mercury",.3871,"venus",.7233,"mars",1.5237,"jupiter",5.2028 2100 DATA"saturn",9.5308,"uranus",19.182 2110 DATA56,68,68,68,56,0,0,0,255,239,199,131,131,199,239,255 2120 DATA195,129,153,153,195,231,129,231,252,249,195,153,153,153,199,255 2130 DATA255,195,189,129,129,189,195,255,252,193,145,137,153,131,63,127 2140 DATA255,153,153,153,219,231,255,255 2150 DATA245,234,213,202,213,139,7,31 2160 DATA"sa","sc","li","vi","le","ca","ge","ta","ar","pi","aq","cp" 2170 DATA"new","waxing crescent","1st quarter","waxing gibbous","full" 2180 DATA"waning gibbous","3rd quarter","waning crescent" 2190 DATA1770,1719,1620,1500,1418,1365,1335,1310,1290,1275,1260 2200 DATA1238,1220,1200,1178,1115,915,720,660,640,625,610 2210 PRINT"{clear}{down*11}"SPC(11)"****skyscape****" 2220 POKE53272,(PEEK(53272)AND240)OR14:SYS828:POKE53280,7:RETURN 2230 PRINT"-n- to re-input or return to continue" 2240 GETz$:IFz$=""THEN2240 2250 RETURN 2260 m2=m1/m9:IFm1<1ORm1>28.5THENm3=1 2270 IFm1>=1ANDm1<6.9THENm3=2 2280 IFm1<=8.0ANDm1>=6.9THENm3=3 2290 IFm1>8.0ANDm1<14.2THENm3=4 2300 IFm1>=14.2ANDm1<=15.2THENm3=5 2310 IFm1>15.2ANDm1<21.6THENm3=6 2320 IFm1=>21.6ANDm1<=22.6THENm3=7 2330 IFm1>22.6ANDm1<=28.5THENm3=8 2340 RETURN 2350 b$="":IFy<>1985ANDy<>1986THEN750 2360 IF(y=1985ANDd1<305)OR(y=1986ANDd1>149)THEN750 2370 hd=d1+365:IFhd>516THENhd=hd-365 2380 h1=(hd-295)/10:hd=INT(h1):h1=h1-hd 2390 t4=hc(hd)-hc(hd+1):t4=hc(hd)-h1*t4:IFt4>k1THENt4=t4-k1 2400 GOSUB800:IFy9=999THEN750 2410 GOSUB890:IFt4>1115ANDt4<1200THENu9=u9+40 2420 IFt4>1290THENu9=u9-40 2430 IFt4>615ANDt4<=1115THENu9=u9+80 2440 u(7)=u9:b$="{cm -}halley's comet":GOTO710 2450 GOSUB890:pk=1423-y9+u9+lb 2460 IFll<0THENpk=2247+80*xx-pk 2470 RETURN 2480 ll$="{left}@n":IFll<0THENll$="{left}@s" 2490 l1=ABS(ll):IFABS(ll)<24THENl1=40 2500 lc=INT((l1-40)/7+.5):lb=lc*40:d1=VAL(MID$(d$,m*3-2,3))+d 2510 IFABS(ll)<24THENlb=40*INT(ABS(ll)/7+.5) 2520 RETURN 2530 PRINT"{clear}{down}{space*6}**********skyscape**********":PRINT"{down}latitude change" 2540 PRINT"{cm y*15}":GOSUB1770 2550 PRINT"{down*3}":INPUT"input new latitude";ll:PRINT:PRINT 2560 IF ABS(ll)>90 THEN PRINT oo$:GOTO2550 2570 GOSUB2230:IFz$="n"THEN2480 2580 GOSUB2480:i$="s":GOTO1940 2590 FORx=1704TO1723:u1=PEEK(x):u2=PEEK(3447-x):POKEx,u2:POKE(3447-x),u1:NEXT 2600 FORx=1704TO1742:IFPEEK(x)=160THEN2620 2610 u1=PEEK(x):u2=PEEK(x+1):POKEx,u2:POKEx+1,u1:x=x+1 2620 NEXT:RETURN stop tok64 (bastext 1.0)