Planet Ephemeris 2068

Developer(s): Imre Auersbacher
Date: 1985
Type: Program
Platform(s): TS 2068

Appears on

Source Code

    1 REM  Planet Ephemeris 2068 
    2 REM  \* 1985 I. Auersbacher 
    3 DEF FN C(X)=SGN (X)*360*(ABS X/K-INT (ABS X/K))
    4 DEF FN A(X)=SGN (X)*K*(ABS X/K-INT (ABS X/K))
    5 DEF FN A$(L)=("N" AND L>0)+("S" AND L<0)+(" " AND L=0)
    8 BEEP .05,25: BEEP .05,25
    9 POKE 23658,8: GO TO 4100
  120 LET S$="ArTaGeCaLeViLiScSaCpAqPi  "
  130 LET M$="JAN.FEB.MAR.APR.MAY JUN.JUL.AUG.SEP.OCT.NOV.DEC."
  140 LET D$="SUNDAY   MONDAY   TUESDAY  WEDNESDAYTHURSDAY FRIDAY   SATURDAY "
  150 LET N$="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960"
  160 DIM Z$(9,40): POKE 23658,8
  170 PRINT PAPER 7;AT 7,1;"DATE (MM.DD.YYYY):";
  180 BEEP 0.04,15: INPUT PAPER 7;"DATE:"; LINE Q$
  190 IF Q$="" THEN GO TO 180
  200 LET Z$(1)=Q$
  220 GO SUB 800
  222 IF M<1 OR M>12 THEN BEEP 0.5,-15: BEEP 0.6,-20: GO TO 180
  224 IF D<1 OR D>31 THEN BEEP 0.5,-15: BEEP 0.6,-20: GO TO 180
  226 IF Y<1700 OR Y>2201 THEN BEEP 1.0,-20: GO TO 180
  230 GO SUB 920
  235 PRINT PAPER 6;Q$
  240 LET S=F-(7*INT (F/7))+1
  245 PRINT PAPER 7;AT 8,1;"DATE: ";M$(4*M-3 TO 4*M);D;",";Y;"  ";D$(9*S-8 TO 9*S)
  250 LET Z$(2)="DATE: "+M$(4*M-3 TO 4*M)+STR$ D+","+STR$ Y+"  "+D$(9*S-8 TO 9*S)
  260 PRINT PAPER 7;AT 9,1;"TIME (HH.MM): ";
  270 BEEP 0.04,15: INPUT PAPER 7;"TIME: "; LINE Q$
  275 IF Q$="" THEN GO TO 270
  280 PRINT PAPER 6;" ";Q$;" "
  300 LET Z$(3)="TIME:"+Q$
  310 GO SUB 990
  320 PRINT PAPER 7;AT 10,1;"TIME ZONE = ";
  330 BEEP 0.04,15: INPUT PAPER 7;"ZONE: "; LINE D$
  340 PRINT PAPER 6;" ";D$;" "
  360 LET Z$(4)="ZONE:"+D$
  370 IF D$(1)="+" THEN LET D$=D$(2 TO )
  372 LET Q$=Q$(LEN Q$-1 TO LEN Q$)
  374 IF Q$="PM" THEN LET H=H+12
  376 IF Q$="PM" AND H=24 THEN LET H=12
  378 IF Q$="AM" AND H=12 THEN LET H=0
  380 LET H=H+M/60+VAL D$
  400 LET D=H-12
  410 LET JD=F+2342031+(H-12)/24
  420 PRINT PAPER 7;AT 11,1;"LONGITUDE = ";
  430 BEEP 0.04,15: INPUT PAPER 7;"LONG: "; LINE Q$
  435 IF Q$="" THEN GO TO 430
  440 PRINT PAPER 6;Q$
  460 LET Z$(5)="LONG:"+Q$
  470 GO SUB 990
  480 LET LN=H+M/60
  490 IF Q$(LEN Q$)="E" THEN LET LN=-LN
  500 PRINT PAPER 6;AT 13,4;"Output to which device? "
  505 PRINT PAPER 7;AT 15,9;"1-TV Screen ";AT 16,9;"2-TS Printer"
  510 PAUSE 30: PRINT PAPER 6;AT 18,4;"Please pick option (1-2)"
  515 BEEP 0.04,15
  520 LET q$=INKEY$: IF q$="" THEN GO TO 520
  530 LET C=CODE q$-48: IF (C<1)+(C>2) THEN BEEP 0.5,-15: BEEP 0.6,-20: GO TO 520
  540 BEEP .05,22: PRINT INK 0;AT 14+C,6;CHR$ 144; INK 6;CHR$ 145
  590 LET Z$(6)="Julian Day Number  ="+STR$ JD
  600 LET S=(F*6.57098350E-2+22.55066429)/24
  610 GO SUB 640
  620 LET Z$(7)="GNST="+N$(2*H+1 TO 2*H+2)+":"+N$(2*MN+1 TO 2*MN+2)+":"+N$(2*SC+1 TO 2*SC+2)
  630 GO TO 700
  640 LET S=24*(S-INT S)
  650 LET H=INT S
  660 LET M=60*(S-H)
  670 LET MN=INT M
  680 LET SC=INT (60*(M-MN))
  690 RETURN 
  700 LET S=S+D+2.74E-3*D-4*LN/60
  710 IF S<0 THEN LET S=S+24
  720 IF S<=24 THEN GO TO 750
  730 LET S=S-24
  740 GO TO 720
  750 GO SUB 650
  760 LET Q$=N$(2*H+1 TO 2*H+2)+"h"+N$(2*MN+1 TO 2*MN+2)+"m"+N$(2*SC+1 TO 2*SC+2)
  780 LET Z$(8)="Local Sidereal Time="+Q$+"s"
  790 GO TO 1100
  800 DIM L(10)
  810 LET L=1
  820 FOR Z=1 TO LEN Q$
  830 IF Q$(Z)<>"." THEN GO TO 860
  840 LET L(L)=Z
  850 LET L=L+1
  860 NEXT Z
  870 LET M=VAL Q$( TO L(1)-1)
  880 LET D=VAL Q$(L(1)+1 TO L(2)-1)
  890 LET Y=VAL Q$(L(2)+1 TO )
  900 IF Y<100 THEN LET Y=Y+1900
  910 RETURN 
  920 IF M>2 THEN GO TO 950
  930 LET F=INT (30.6*(M+13))+INT (365.25*(Y-1))+D-621049
  940 GO TO 960
  950 LET F=INT (30.6*(M+1))+INT (365.25*Y)+D-621049
  960 IF F>146097 THEN LET F=F-1
  970 IF F<=73047 THEN LET F=F+(F<=73047)+(F<=36522)
  980 RETURN 
  990 LET L=0
  995 FOR Z=1 TO LEN Q$
 1000 IF Q$(Z)<>"." THEN GO TO 1030
 1010 LET L=Z
 1020 LET Z=LEN Q$
 1030 NEXT Z
 1040 LET Z=Z-1
 1050 IF Q$(Z-1 TO Z)="AM" OR Q$(Z-1 TO Z)="PM" THEN LET Z=Z-2
 1060 IF Q$(Z)="E" OR Q$(Z)="W" OR Q$(Z)="N" OR Q$(Z)="S" THEN LET Z=Z-1
 1065 IF L=0 THEN GO TO 1092
 1070 LET H=VAL Q$( TO L-1)
 1080 LET M=VAL Q$(L+1 TO Z)
 1090 RETURN 
 1092 LET H=VAL Q$( TO Z)
 1094 LET M=0
 1096 RETURN 
 1100 LET T=(JD-2415020)/36525
 1110 LET L=1.740035281+628.3319508*T+5.279620987E-6*T*T
 1120 LET K=2*PI
 1130 LET L=K*(L/K-INT (L/K))
 1140 LET W=1.766636813+3.000526417E-2*T+7.902463002E-6*T*T
 1150 LET E=0.01675104-0.0000418*T-0.000000126*T*T
 1160 LET M=L-W
 1170 GO SUB 2700
 1180 LET L=L+(V-M)+PI
 1190 GO SUB 2640
 1200 LET L(1)=L
 1210 LET P$="SuMoMeVeMaJuSaUrNePl  ": LET P=1
 1260 LET R=1.00000013*(1-E*E)/(1+E*COS V)
 1270 LET XE=R*COS (W+V)
 1280 LET YE=R*SIN (W+V)
 1290 LET B=.40931975-.00022711*T
 1400 IF C=1 THEN OPEN #4,"s": PAPER 7: CLS : GO TO 1450
 1410 OPEN #4,"p": PRINT FLASH 1; PAPER 7;AT 20,4;" See printer for output "
 1450 PRINT #4;" SUN, MOON & PLANET COORDINATES ": PRINT #4
 1455 PRINT #4;Z$(2, TO 38)
 1458 PRINT #4;Z$(3, TO 22);TAB 15;Z$(4, TO 20)
 1460 PRINT #4;Z$(5, TO 22);TAB 15;z$(7, TO 22): PRINT #4
 1465 PRINT #4;Z$(6)( TO 40)
 1470 PRINT #4;Z$(8)( TO 40)
 1480 PRINT #4: PRINT #4;" LONG.     LAT.    R.A.    DECL."
 1490 PRINT #4;"\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''"
 1495 LET P=0: DIM T(10): DIM R(10): DIM D(10): LET L=L(1)
 1500 GO SUB 2650: LET LAT=0: LET X=-XE: LET Y=-YE: LET Z=0
 1505 GO SUB 2593: LET T(1)=LAT: LET R(1)=RA: LET D(1)=DEC
 1510 LET P=1
 1540 DIM E$(10,6): GO SUB 2940
 1550 LET L=4.719966570+8399.709144*T-1.978039819E-5*T*T
 1560 LET L=K*(L/K-INT (L/K))
 1570 LET W=4.908229466+3.000526417E-2*T+7.902463002E-6*T*T
 1580 LET O=5.835151532+71.01804125*T-1.802052453E-4*T*T
 1590 LET O=K*(O/K-INT (O/K))
 1600 LET E=4.523601515-33.75714624*T+3.626406335E-5*T*T
 1610 LET E=K*(E/K-INT (E/K))
 1620 LET I=6.121523943+7771.377194*T-2.506486731E-5*T*T
 1630 LET I=K*(I/K-INT (I/K))
 1640 LET Z=L+1.097597812E-1*SIN (L-O)-2.22356789E-2*SIN (L-O-2*I)+1.148959458E-2*SIN (2*I)+3.728319019E-3*SIN (2*L-2*O)-3.243132031E-3*SIN (L-I-W)-1.995560985E-3*SIN (2*L-2*E)-1.026146941E-3*SIN (2*(L-O-I))-9.997779E-4*SIN (2*L-O-W-3*I)+9.3061925E-4*SIN (L-O+2*I)
 1642 LET Z=Z-8.016442699E-4*SIN (L-W-3*I)+7.169327754E-4*SIN (I+W-O)-6.04974752E-4*SIN I-5.323448144E-4*SIN (2*L-O-I-W)-2.674911004E-4*SIN (2*(L-E-O))-2.186509702E-4*SIN (3*L-2*E-O)+1.916565444E-4*SIN (2*E-L-O)-1.863042014E-4*SIN (L-O-4*I)+1.751340942E-4*SIN (3*L-3*O)-1.491917141E-4*SIN (2*(L-O-2*I))-1.382252286E-4*SIN (W-O-I)-1.185417932E-4*SIN (L-W+I)
 1646 LET LAT=8.950378078E-2*SIN (L-E)+4.897490844E-3*SIN (2*L-O-E)-4.846658129E-3*SIN (O-E)-3.023579307E-3*SIN (L-E-2*I)+9.671305718E-4*SIN (2*I+O-E)-8.075880856E-4*SIN (2*L-O-E-2*I)+5.685022187E-4*SIN (L-E+2*I)+3.001626944E-4*SIN (3*L-2*O-E)-1.617289959E-4*SIN (O-E-2*I)-1.539913695E-4*SIN (2*O-L-E)-1.439363338E-4*SIN (2*L-3*I-W-E)
 1650 LET L=FN A(Z): LET X=COS LAT*COS L: LET Y=COS LAT*SIN L
 1660 LET Z=SIN LAT: GO SUB 2640
 1665 LET L(2)=L: GO SUB 2593: LET T(2)=LAT: LET R(2)=RA: LET P=2
 1670 LET D(2)=DEC: GO SUB 2940
 1690 LET L=3.109811566+2608.814681*T
 1700 LET W=1.324699618+2.714840259E-2*T
 1710 LET O=0.8228519594+2.068578774E-2*T
 1720 LET E=0.20561421+2.046E-5*T
 1730 LET I=0.1222233228+3.24776685E-5*T
 1740 LET A=0.3870984
 1750 GO SUB 2500
 1760 LET L(3)=L: LET T(3)=LAT: LET R(3)=RA: LET D(3)=DEC:
 1770 LET P=3: GO SUB 2940
 1790 LET L=5.982413639+1021.352923*T
 1800 LET W=2.271787458+2.457486613E-2*T
 1810 LET O=1.32260435+1.570534527E-2*T
 1820 LET E=0.00682069-4.774E-5*T
 1830 LET I=0.0592300268+1.755510339E-5*T
 1840 LET A=0.72333015
 1850 GO SUB 2500
 1860 LET L(4)=L: LET T(4)=LAT: LET R(4)=RA: LET D(4)=DEC
 1870 LET P=4: GO SUB 2940
 1890 LET L=5.126863275+334.0856765*T
 1900 LET W=5.833208059+3.212729365E-2*T
 1910 LET O=0.8514840375+1.345634309E-2*T
 1920 LET E=0.09331290+9.206E-5*T
 1930 LET I=0.03229440892-1.178097245E-5*T
 1940 LET A=1.52368839
 1950 GO SUB 2500
 1960 LET L(5)=L: LET T(5)=LAT: LET R(5)=RA: LET D(5)=DEC
 1980 LET P=5: GO SUB 2940
 1990 LET L=4.156824261+52.99346669*T
 2000 LET W=.2220220737+0.02809913191*T
 2010 LET O=1.735614507+0.01763707569*T
 2020 LET E=0.04833475+1.642E-4*T
 2030 LET I=2.284175418E-2-9.941589345E-5*T
 2040 LET A=5.202561
 2050 GO SUB 2500
 2060 LET L(6)=L: LET T(6)=LAT: LET R(6)=RA: LET D(6)=DEC
 2080 LET P=6: GO SUB 2940
 2090 LET L=4.643990303+21.3542759*T
 2100 LET W=1.589962854+0.03418080441*T
 2110 LET O=1.968563651+0.01524013019*T
 2120 LET E=0.05589232-3.455E-4*T
 2130 LET I=.04350267097-6.839751413E-5*T
 2140 LET A=9.554747
 2150 GO SUB 2500
 2160 LET L(7)=L: LET T(7)=LAT: LET R(7)=RA: LET D(7)=DEC
 2180 LET P=7: GO SUB 2940
 2190 LET L=4.246476159+7.502534209*T
 2200 LET W=2.99408877+2.59082395E-2*T
 2210 LET O=1.282417271+8.703394596E-3*T
 2220 LET E=0.0463444-2.658E-5*T
 2230 LET I=0.01348203821+1.091315596E-5*T
 2240 LET A=19.21814
 2250 GO SUB 2500
 2260 LET L(8)=L: LET T(8)=LAT: LET R(8)=RA: LET D(8)=DEC
 2280 LET P=8: GO SUB 2940
 2290 LET L=1.482505841+3.837733181*T
 2300 LET W=0.8155456719+2.48635145E-2*T
 2310 LET O=2.280819973+1.918003402E-2*T
 2320 LET E=0.00899704+6.330E-6*T
 2330 LET I=3.105362528E-2-1.665674364E-4*T
 2340 LET A=30.10957
 2350 GO SUB 2500
 2360 LET L(9)=L: LET T(9)=LAT: LET R(9)=RA: LET D(9)=DEC
 2380 LET P=9: GO SUB 2940
 2390 LET L=7.89626153+2.557238*T
 2400 LET W=3.882990161+2.762099317E-2*T
 2410 LET O=1.901399262+0.0239794161*T
 2420 LET E=0.248003807+0.0028868311*T
 2430 LET I=0.299267728-2.22206250E-4*T
 2440 LET A=39.517738
 2450 GO SUB 2500
 2460 LET L(10)=L: LET T(10)=LAT: LET R(10)=RA: LET D(10)=DEC
 2480 LET P=10: GO SUB 2940
 2485 IF C=2 THEN LPRINT : LPRINT : LPRINT : LPRINT 
 2490 GO TO 4350
 2500 LET L=K*(L/K-INT (L/K))
 2510 LET W=K*(W/K-INT (W/K))
 2520 LET M=L-W
 2530 GO SUB 2700
 2540 LET R=A*(1-E*E)/(1+E*COS V)
 2550 LET C1=COS O
 2560 LET C2=COS (W-O+V)
 2570 LET C3=SIN O
 2580 LET C4=SIN (W-O+V)
 2590 LET X=R*(C1*C2-C3*C4*COS I)-XE
 2591 LET Y=R*(C2*C3+C1*C4*COS I)-YE
 2592 LET Z=R*C4*SIN I: LET LAT=ATN (Z/SQR (X*X+Y*Y))
 2593 LET LAT=FN C(LAT): LET LD=INT ABS (LAT): LET LM=INT (60*(ABS LAT-LD))
 2594 LET Y1=Y*COS B-Z*SIN B
 2595 LET Z1=Y*SIN B+Z*COS B
 2596 LET RA=ATN (Y1/X): IF X<0 THEN LET RA=RA+PI
 2597 IF (X>0)*(Y1<0) THEN LET RA=RA+2*PI
 2598 LET RA=FN C(RA): LET RD=INT RA: LET RM=INT (60*(RA-RD))
 2600 LET DEC=ATN (Z1/SQR (X*X+Y1*Y1)): LET DEC=FN C(DEC)
 2602 LET DD=INT ABS (DEC): LET DM=INT (60*(ABS DEC-DD))
 2604 IF P<2 THEN RETURN 
 2610 LET L=ATN (Y/X)
 2620 IF (X<0) THEN LET L=L+PI
 2630 IF (X>0)*(Y<0) THEN LET L=L+2*PI
 2640 LET L=360*(L/K-INT (L/K))
 2650 LET D=L/30
 2660 LET SI=INT D+1
 2670 LET D=INT (30*(D-INT D))
 2680 LET MN=INT (60*(L-INT L))
 2690 RETURN 
 2700 IF E>0.1 THEN GO TO 2770
 2710 LET C1=2*E-E*E*E/4
 2720 LET C2=E*E*(5/4-11*E*E/24)
 2730 LET C3=13*E*E*E/12
 2740 LET C4=103*E*E*E*E/96
 2750 LET V=M+C1*SIN M+C2*SIN (2*M)+C3*SIN (3*M)+C4*SIN (4*M)
 2760 RETURN 
 2770 LET Q$="M-X+E*SIN X"
 2780 LET Y=PI/2
 2790 LET V=Y/1E5: LET X=Y: LET U=X: LET F=VAL Q$: LET Z=F
 2800 LET X=Y+V: LET F=VAL Q$
 2860 LET Q=F
 2870 IF Z=0 THEN GO TO 2920
 2890 LET Y=Y-V/(Q/Z-1): IF ABS (Y-U)<0.00001 THEN GO TO 2920
 2900 GO TO 2790
 2920 LET V=2*ATN (SQR ((1+E)/(1-E))*TAN (X/2))
 2930 RETURN 
 2940 LET Q$=""+P$(2*P-1 TO 2*P)+""
 2950 LET D$=N$(2*D+1 TO 2*D+2)
 2960 LET A$=""+S$(2*SI-1 TO 2*SI)+""
 2970 PRINT #4;Q$;D$;A$;N$(2*MN+1 TO 2*MN+2);"  ";N$(2*LD+1 TO 2*LD+2);"\' ";N$(2*LM+1 TO 2*LM+2);FN A$(LAT);"  ";"   "( TO 3-LEN STR$ RD);STR$ RD;"\' ";N$(2*RM+1 TO 2*RM+2);"  ";N$(2*DD+1 TO 2*DD+2);"\' ";N$(2*DM+1 TO 2*DM+2);FN A$(DEC): LET E$(P)=Q$+D$+A$
 3000 RETURN 
 4100 BORDER 5: PAPER 3: CLS 
 4150 PRINT PAPER 6;AT 1,3;"\:'\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\':";AT 2,3;"\:  Planetary - Ephemeris  \ :";AT 3,3;"\:                         \ :";AT 4,3;"\:  \* 1985 I. Auersbacher  \ :";AT 5,3;"\:.\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.:"
 4155 PLOT 0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0
 4200 GO TO 120
 4350 BEEP 0.05,22: BEEP 0.05,22
 4500 PRINT #0; PAPER 7;" Another chart?  (Y/N):"
 4550 LET Q$=INKEY$
 4560 IF Q$="" THEN GO TO 4550
 4570 IF Q$="Y" THEN GO TO 8
 4600 PAPER 7: CLS : BORDER 7: PRINT FLASH 1;AT 10,6;" PROGRAM TERMINATED ": GO TO 9900
 4700 BEEP 0.05,22: BEEP 0.05,20
 4800 RESTORE 4900: FOR T=0 TO 7: READ K,L: POKE USR "A"+T,K: POKE USR "B"+T,L: NEXT T: POKE 23609,10: GO TO 4100
 4900 DATA 0,24,0,48,127,96,127,255,127,255,115,248,115,248,127,240
 5000 SAVE "ephemeris" LINE 4700
 9900 STOP 
Scroll to Top