1 REM Ins{nd av Allan Lindblom <5879> 1986-04-05 15.05.10 10 REM *-----------------------------------------------------------------* 20 REM * Program PLANET.xxx 840426 av Torbj|rn Alm * 40 REM * "\verf|rt" till ABC80 av Allan Lindblom <5879> * 44 REM * OBS! PROGRAMMET FUNGERAR D]LIGT! B\R JUSTERAS AV N]GON * 46 REM * ASTRONOMIKUNNIG! OBS! OBS! * 50 REM * Version 2.2 851103 * 60 REM *-----------------------------------------------------------------* 70 REM * Leap ---------------------------------------------------------- 80 DEFFNL1(Y%)=Y%/4%-INT(.75*(Y%/100%+1%)) 90 REM * Aco ----------------------------------------------------------- 100 DEFFNA1(X)=-ATN(X/SQR(-X*X+1%))+PI*.5 110 REM * Deg ----------------------------------------------------------- 120 DEFFND3(X)=X*180%/PI 130 REM * Dimensionering ------------------------------------------------- 140 DIM P1(8%,8%) : DIM P$(9%)=10% : DIM P1$(9%)=10% 150 P2=PI*2% : GOSUB 1340 : REM * L{s planet-data 160 REM * Indata --------------------------------------------------------- 170 ; CHR$(12%)SPACE$(28%)' P L A N E T . B A C' 180 ; SPACE$(28%)' ===================' 190 ; 'Ange datum (]]MMDD)'; : INPUT C$ : IF C$='' THEN C$='851103' : ; C$ 200 Y%=VAL(LEFT$(C$,2%)) : M%=VAL(MID$(C$,3%,2%)) : D%=VAL(RIGHT$(C$,5%)) 210 ONERRORGOTO 170 220 IF M%<1% OR M%>12% OR D%<1% OR D%>31% THEN 170 230 REM ; 'Ange tid i GMT'; : INPUT T 240 ; 'V{lj intervall - l{ngd och antal f|r plottning' 250 ; 'Ange 1 om endast 1 plot |nskas' 260 ; 'Tidsintervall i dagar:'; : INPUT T1% 280 ; 'Antal intervall'; : INPUT I1% : IF I1%<=0% THEN I1%=1% 290 ; 'Skall |vriga planeter i samma sektor plottas (J/N)'; : INPUT Y$ 300 IF INSTR(1%,'Jj',Y$) THEN Y1%=1% ELSE Y1%=0% 310 REM * Select --------------------------------------------------------- 320 ; CHR$(12%)SPACE$(28%)'PLANET.BAC' 330 ; SPACE$(28%)'==========' 340 ; 'Program f|r ber{kning av planetl{gen p} stj{rnhimlen' 350 ; : ; 'V{lj planet, som skall visas' : ; 360 ; 'Merkurius(m)..1' : ; 'Venus (V).....2' 370 ; ' 3 ..... Solen($)' 380 ; 'Mars(M).......4' : ; 'Jupiter(J)....5' 390 ; 'Saturnus(S)...6' : ; 'Uranus(U).....7' 400 ; 'Neptunus(N)...8' : ; 'Pluto(P)......9' 410 ; : ; 'Slut.........10' 420 ; : ; 'V{lj objekt (1-9)'; : INPUT Q$ 430 IF Q$='10' THEN END 440 P1%=INSTR(1%,'123456789',Q$) : IF P1%=0% THEN 320 450 ONERRORGOTO 320 460 REM * Epoch --------------------------------------------------------- 470 IF M%<3% THEN D1=365*Y%+((M%-1%)*31%)+FNL1(Y%-1%)+D% 480 IF M%>2% THEN D1=365*Y%+D%+((M%-1%)*31%)-INT(M%*.4+2.3)+FNL1(Y%) 490 N1=D1-7.15875E+5 500 REM * Nc ----------------------------------------------------------- 510 N2%=1% 520 REM * Pcomp --------------------------------------------------------- 530 FOR J%=0% TO 8% 540 A=N1*P1(J%,0%)+P1(J%,1%) : IF A>P2 THEN A=((A/P2)-INT(A/P2))*P2 550 IF A<0 THEN A=A+P2 : GOTO 550 560 A=A+(P1(J%,2%)*SIN(A-P1(J%,3%))) 570 IF A>P2 THEN A=A-P2 : GOTO 570 580 IF A<0 THEN A=A+P2 : GOTO 580 590 D(J%+1%)=P1(J%,4%)+P1(J%,5%)*SIN(A-P1(J%,6%)) 600 L(J%+1%)=P1(J%,7%)*SIN(A-P1(J%,8%)) 610 A(J%+1%)=A 620 NEXT J% 630 REM * Angdist ------------------------------------------------------- 640 FOR I%=1% TO 9% : FOR J1%=1% TO 2% 650 Z=A(3%)-A(I%) : IF ABS(Z)>PI AND Z<0% THEN Z=Z+P2 660 IF ABS(Z)>PI AND Z>0% THEN Z=Z-P2 670 Q(I%)=SQR(ABS(D(I%)^2%+D(3%)^2%-2%*D(I%)*D(3%)*COS(Z))) 680 P3=(D(I%)+D(3%)+Q(I%))*.5 690 X(I%)=2%*FNA1(SQR(((P3*(P3-D(I%)))/(D(3%)*Q(I%))))) 700 IF Z<0% THEN R(I%)=FND3(A(3%)+PI-X(I%))/15% ELSE R(I%)=FND3(A(3%)+PI+X(I%))/15% 710 IF R(I%)>24% THEN R(I%)=R(I%)-24% : GOTO 710 720 IF R(I%)<0% THEN R(I%)=R(I%)+24% : GOTO 720 730 IF Z<0% THEN V(I%)=SIN(A(3%)+PI-X(I%))*23.4419+FND3(L(I%)) ELSE V(I%)=SIN(A(3%)+PI+X(I%))*23.4419+FND3(L(I%)) 740 X(I%)=FND3(X(I%)) 750 NEXT J1% : NEXT I% 760 REM * Planet ------------------------------------------------------- 770 R(3%)=(FND3(A(3%))-180%)/15% 780 IF R(3%)<0% THEN R(3%)=R(3%)+24% : GOTO 780 790 V(3%)=(SIN(A(3%)-PI))*23.4419 : R1=R(P1%) : D3=V(P1%) 800 IF N2%=1% THEN GOSUB 880 810 K2%=P1% : GOSUB 1080 820 IF C6%<0% THEN N2%=I1%+1% 830 IF N2%<=I1% THEN IF Y1% THEN GOSUB 1730 840 N1=N1+T1% 850 N2%=N2%+1% : IF N2%<=I1% THEN 520 860 ; CUR(23%,70%)'Klart'; : GET A$ : IF ASC(A$)<>13% THEN 860 870 GOTO 170 880 REM * Chart --------------------------------------------------------- 890 K1%=0% : IF R1>12% THEN K1%=12% 900 R2%=INT(R1/4)*4% 910 ; CUR(20%,0%)'Timvinkel f|r 'P$(P1%)' {r '; 920 ; R1 : ; 'Declination {r '; : ; D3 930 ; 'Tryck RETURN f|r att visa planetens l{ge p} stj{rnhimlen' : GET A$ 940 C5%=1%+INT(R1/4%) 950 IF R1>=12% GOSUB 1120 ELSE GOSUB 1220 960 ON C5% RESTORE 1790,1880,1950,2020,2080,2140 970 READ N5% : REM Antal konstellationer i sektor 980 FOR I5%=1% TO N5% 990 READ N$,C1,C2 : C3%=(28%-C2-K1%)*.5 : C4%=79%-20%*(C1-R2%) 1000 ; CUR(C3%,C4%)N$; 1010 READ N6% : FOR I6%=1% TO N6% 1020 READ C1,C2 : C3%=(28%-C2-K1%)*.5 1030 C4%=79%-20%*(C1-R2%) : IF C4%<0% C4%=1% 1040 ; CUR(C3%,C4%)'*'; : NEXT I6% 1050 NEXT I5% 1060 RETURN 1070 REM * Putplan --------------------------------------------------------- 1080 C6%=1%+INT(R(K2%)/4%) : IF C5%<>C6% RETURN 1090 C7%=(28%-V(K2%)-K1%)*.5 : C8%=79%-20%*(R(K2%)-R2%) 1100 ; CUR(C7%,C8%)P1$(K2%); 1110 RETURN 1120 REM * Lowsc --------------------------------------------------------- 1130 R3%=0% : R4%=INT(R1/4%*4%) : ; CHR$(12%); 1140 N%=3% : GOSUB 1620 : A$='+10' : B$='--' : GOSUB 1670 1150 N%=4% : GOSUB 1620 : A$='0' : B$='- ' : GOSUB 1670 1160 GOSUB 1620 : A$='-10' : B$='--' : GOSUB 1670 1170 GOSUB 1620 : A$='-20' : GOSUB 1670 1180 GOSUB 1620 : A$='-30' : GOSUB 1670 1190 ; CUR(8%,0%)NUM$(R4%+4%)CUR(8%,18%)NUM$(R4%+3%)CUR(8%,38%)NUM$(R4%+2%) 1200 ; CUR(8%,58%)NUM$(R4%+1%)CUR(8%,78%)NUM$(R4%); 1210 RETURN 1220 REM * Hihsc ---------------------------------------------------------- 1230 R3%=0% : R4%=INT(R1/4*4%) : ; CHR$(12%); 1240 A$='+30' : B$='--' : GOSUB 1670 1250 N%=4% : GOSUB 1620 : A$='+20' : GOSUB 1670 1260 GOSUB 1620 : A$='+10' : GOSUB 1670 1270 GOSUB 1620 : A$='0' : B$='- ' : GOSUB 1670 1280 GOSUB 1620 : A$='-10' : B$='--' : GOSUB 1670 1290 N%=3% : GOSUB 1620 1300 ; CUR(15%,0%)NUM$(R4%+4%)CUR(15%,18%)NUM$(R4%+3%) 1310 ; CUR(15%,38%)NUM$(R4%+2%); 1320 ; CUR(15%,58%)NUM$(R4%+1%)CUR(15%,78%)NUM$(R4%); 1330 RETURN 1340 REM Plandata bandata f|r alla planeter ------------------------------- 1350 RESTORE 1390 1360 FOR Y2%=0% TO 8% : FOR X2%=0% TO 8% 1370 READ P1(Y2%,X2%) : NEXT X2% : NEXT Y2% 1380 REM Merkurius 1390 DATA .071422,3.8484,.388301,1.34041,.3871,.07974,2.73514,.122173,.836013 1400 REM Venus 1410 DATA .027962,3.02812,.013195,2.28638,.7233,.00506,3.85017,.059341,1.33168 1420 REM Jorden 1430 DATA .017202,1.74022,.032044,1.78547,1,.017,3.33929,0,0 1440 REM Mars 1450 DATA .009146,4.51234,.175301,5.85209,1.5237,.141704,1.04656,.03142,.858702 1460 REM Jupiter 1470 DATA .00145,4.53364,.090478,.23911,5.2028,.249374,1.76188,.01972,1.74533 1480 REM Saturnus 1490 DATA .000584,4.89884,.105558,1.61094,9.5385,.534156,3.1257,.043633,1.977458 1500 REM Uranus 1510 DATA .000205,2.46615,.088593,2.96706,19.182,.901554,4.49084,.01396,1.28805 1520 REM Neptunus 1530 DATA .000104,3.78556,.016965,.773181,30.06,.27054,2.33498,.031416,2.29162 1540 REM Pluto 1550 DATA .000069,3.16948,.471239,3.91303,39.44,9.86,5.23114,.300197,1.91812 1560 RESTORE 1580 1570 FOR I9%=1% TO 9% : READ P$(I9%) : NEXT I9% 1580 DATA Merkurius,Venus,Solen,Mars,Jupiter,Saturnus,Uranus,Neptunus,Pluto 1590 FOR I9%=1% TO 9% : READ P1$(I9%) : NEXT I9% 1600 DATA m,V,$,M,J,S,U,N,P 1610 RETURN 1620 REM Luft ------------------------------------------------------------ 1630 FOR I2%=1% TO N% 1640 ; CUR(R3%,0%)'.'TAB(20%)'.'TAB(40%)'.'TAB(60%)'.'TAB(80%)'.'; 1650 R3%=R3%+1% : NEXT I2% 1660 RETURN 1670 REM Linje ---------------------------------------------------------- 1680 ; CUR(R3%,0%); : FOR I3%=1% TO 40% : ; B$; : NEXT I3% 1690 R3%=R3%+1% : IF A$='0' RETURN 1700 ; CUR(R3%-1%,0%)A$CUR(R3%-1%,17%)A$CUR(R3%-1%,37%)A$; 1710 ; CUR(-R3%-1%,57%)A$CUR(R3%-1%,79%-LEN(A$))A$; 1720 RETURN 1730 REM * Putrest ------------------------------------------------------- 1740 FOR I4%=1% TO 9% 1750 IF I4%<>P1% THEN K2%=I4% : GOSUB 1080 1760 NEXT I4% 1770 RETURN 1780 REM -------- Ra 0 - Ra 4 --------------------- 1790 DATA 7 1800 DATA Pegasus,3,26,2,.1,29,.2,14 1810 DATA Plejaderna,3.5,22,2,3.6,24,3.2,24 1820 DATA V{duren,2,20,3,2.1,23,1.8,21,1.8,19 1830 DATA Oxen,3,5,2,3,4,2.7,3 1840 DATA Eridanus,4,-15,2,3.9,-13,3.3,-20 1850 DATA Fiskarna,1.4,-8,2,1.5,-9,1.2,-10 1860 DATA Valfisken,1,-16,1,0.7,-18 1870 REM ------- Ra 4 - Ra 8 --------------- 1880 DATA 5 1890 DATA Orion,6,6,8,5.9,8,5.4,8,5.7,-2,5.6,-1,5.5,0,5.8,-10,5.6,-6,5.2,-9 1900 DATA Sirius,6.5,-16,2,6.7,-17,6.3,-18 1910 DATA Oxen,4.5,23,3,4.5,17,5.4,29,5.6,21 1920 DATA Procryon,7.6,5,2,7.6,7,7.4,9 1930 DATA Tvillingarna,7.5,26,7,7.5,30,7.7,28,7.3,22,6.7,25,6.6,16,6.4,22,6.3,22 1940 REM ------- Ra 8 - Ra 12 ------------------ 1950 DATA 5 1960 DATA Lejonet,10,22,9,10.1,12,10.1,17,10.3,20,10.3,24,11.2,20,11.2,16,11.8,15,9.8,28,9.7,26 1970 DATA Kr{ftan,8.7,25,2,8.7,29,8.6,21 1980 DATA Vattenormen,9.5,5,5,9.5,-9,8.7,7,8.9,7,9.2,2,19.4,-17 1990 DATA Jungfrun,11.8,4,1,11.8,2 2000 DATA B{garen,10.8,-14,4,10.8,-16,10.9,-18,11.3,-15,11.4,-18 2010 REM ---------- Ra 12 - Ra 16 ------------------- 2020 DATA 4 2030 DATA Jungfrun,13.5,8,6,13.4,-11,13,11,12.9,3,12.7,-1,12.3,-1,13.1,-5 2040 DATA Korpen,12.5,-20,4,12.5,-16,12.2,-17,12.5,-23,12.2,-22 2050 DATA Ormen,15.8,14,5,15.8,17,15.5,10,15.7,7,15.8,5,15.8,-3 2060 DATA V}gen,15,-12,2,15.3,-9,14.8,-16 2070 REM ------------ Ra 16 - Ra 20 --------------- 2080 DATA 4 2090 DATA \rnen,19.5,12,5,19.7,10,19.8,9,19.9,8,19,13,18.9,14 2100 DATA Ormb{raren,17.5,16,3,17.5,12,17.6,5,17.7,3 2110 DATA Skytten,18.5,-24,7,18.3,-30,18,-30,18.4,-25,18.9,-26,19,-30,19.1,-21,18.3,-21 2120 DATA Skorpionen,16.5,-18,6,16.5,-26,16.6,-28,16.4,-24,16,-20,15.9,-22,15.9,-26 2130 REM --------- Ra 20 - Ra 24 ----------------- 2140 DATA 5 2150 DATA Formalhaut,22.9,-28,1,22.9,-30 2160 DATA Stenbocken,21.7,-20,7,21.7,-18,21.6,-18,21.4,-22,20.8,-28,20.7,-26,20.3,-14,20.2,-12 2170 DATA Delfinen,20.5,18,5,20.5,11,20.6,15,20.7,15,20.6,16,20.8,16 2180 DATA Pegasus,21.7,8,4,21.7,10,22.2,6,22.7,10,23,4 2190 DATA Vattumannen,22.6,4,6,22.6,0,22,5,0,22.4,1,22.3,-2,22,0,21.5,-6