Those days! I wrote a planet finder - put in date, time, latitude, longitude and it says where to look. In 4kbyte
'
' Program to calculate position of planets
' ========================================
'
' The position of the planets are calculated in 3 dimensions, initially
' in a coordinate system using the orbit of the earth as the XY plane,
' the sun as origin (0,0,0), the mean radius of the orbit of the earth as
' 1 unit, the X+ axis passing through the earth's position at the vernal
' equinox. Most planet data is made available in this reference system.
'
' These coordinates are then recalculated with the same origin and X axis
' but with the XY plane parallel to the earth's equator. By knowing the
' earth's position and the planet's position, the direction of the planet
' is given in R.A. (right ascension) and declination.
'
' Given the latitude and longitude of the observer, it is possible to
' recalculate to azimuth and altitude.
'
' ========================================
'
' Latitude and Longitude of observer expressed as radians
' J = Longitude -- E of Greenwich is +
' K = Latitude -- N of equator is +
' N = Local time offset in hours [Local - GMT]
'
10 J = 2.641265: K = -.532325: N = 10!
'
' P = Pi; FNA - reduce radians to 0 -> 2Pi
'
20 P = 3.1415926#: DEF FNA (X) = X - INT(X / (P * 2)) * P * 2
'
' Get date, reduce to number of days in G [1/1/1900 = 1]
'
100 INPUT "Date D,M,Y"; B, C, D: IF C < 3 THEN C = C + 12: D = D - 1
110 C = C + 1: G = B + INT(C * 153 / 5) + INT(D * 1461 / 4) - 63
'
' Get time, reduce to minutes since midnight in H
'
120 INPUT "TIME (24HR CLOCK) H,M"; B, C: H = B * 60 + C
'
130 INPUT "NO. OF PREDICTIONS"; S: IF S = 1 GOTO 150
'
' TI - Time Interval in minutes
'
140 INPUT "INTERVAL H,M"; B, C: TI = B * 60 + C
'
150 INPUT "PLANET NO."; V
'
' T = time in days and a fraction used to calculate positions etc. The base
' date for calculation was midday 31/12/1899 GMT [hence the -.5]
' When calculating using the earth's rotation, it is convenient to keep
' time as whole days (G) and hours (H) also.
' O = Angle between earth's axis and earth's orbit (changes with time)
'
160 FOR TC = 1 TO S: T = G + H / 1440 - .5 - N / 24: O = .40932 - T * 6.212E-09
'
' A$ - name of planet
' A - mean distance from sun (earth = 1)
' E - eccentricity, B - time correction for E
' I - angle of planet orbit, C - time correction for I
' U - angle from X axis to where orbital plane crosses, D - time correction
' W - angle between U and perihelion, F - time correction
' L - mean longitude of planet at reference [31/12/1899]
' X - whole days + 1 to orbit the sun
' Y - radians in excess of one orbit completed in X days
' Z - angular velocity radians/day
'
170 RESTORE: FOR Q = 0 TO 8: READ A$, A, E, B, I, C, U, D, W, F, L, X, Y, Z
180 IF Q = 0 THEN GOSUB 600: EX = X: EY = Y: EZ = Z: EL = L: ER = R: GOTO 470
190 IF V > 0 AND V <> Q GOTO 470
200 GOSUB 600
210 C = G - 60: D = INT(C / 1461): C = C - D * 1461: B = INT(C / 365): IF B = 4 THEN B = 3
220 C = C - B * 365 + 31: D = D * 4 + B: B = C * 5: C = INT(B / 153): B = INT((B - C * 153) / 5) + 1: C = C + 2
230 IF C > 12! THEN C = C - 12: D = D + 1
240 PRINT : PRINT : PRINT " DATE TIME": PRINT
250 F = B: GOSUB 580: F = C: GOSUB 570: F = D: GOSUB 570
260 PRINT " "; : F = INT(H / 60): GOSUB 580: PRINT ":"; : F = H - F * 60: GOSUB 580
270 I = FNA((H / 60 - N) * P / 12 + EL - .000099): F = I: PRINT : PRINT
280 PRINT "G.M.S.T. "; : GOSUB 530
290 I = FNA(I + J): F = I: PRINT "LOCAL S.T. "; : GOSUB 530
300 PRINT : PRINT "DATA FOR "; A$: PRINT
310 B = X - EX: GOSUB 750: A = ATN((Y - EY) / B): IF B < 0 THEN A = A + P
330 PRINT "R.A. "; : F = A: GOSUB 530
340 W = (X - EX) ^ 2 + (Y - EY) ^ 2: B = SQR(W): GOSUB 750
350 E = ATN((Z - EZ) / B): F = E: PRINT "DECLINATION "; : GOSUB 500
360 C = W + (Z - EZ) ^ 2: B = (C + ER ^ 2 - R ^ 2) / (2 * ER * SQR(C)): GOSUB 750
380 F = ATN(SQR(1 - B ^ 2) / B): IF B < 0 THEN F = F + P
390 PRINT "ELONGATION "; : GOSUB 500
400 U = FNA(A - I): F = U: PRINT : PRINT "HOUR ANGLE "; : GOSUB 530
410 C = SIN(K) * SIN(E) + COS(K) * COS(E) * COS(U): B = SQR(1 - C ^ 2): GOSUB 750
420 F = ATN(C / B): PRINT : PRINT "ALTITUDE "; : GOSUB 500
430 B = COS(K) * SIN(E) - SIN(K) * COS(E) * COS(U): C = COS(E) * SIN(U)
435 GOSUB 750: F = ATN(C / B): IF B < 0 THEN F = F + P
440 F = FNA(F): PRINT "AZIMUTH "; : GOSUB 500
450 PRINT : PRINT "PRESS ANY KEY FOR MORE"
460 DO
LOOP UNTIL LEN(INKEY$) > 0
'
'
470 NEXT Q: H = H + TI: B = INT(H / 1440): G = G + B: H = H - B * 1440: NEXT TC: END
'
500 B = F * 180 / P: F = SGN(B) * INT(ABS(B)): B$ = STR$(F): C = LEN(B$)
510 FOR D = 1 TO C: C$ = MID$(B$, D, 1): IF C$ <> " " THEN PRINT C$;
520 NEXT D: PRINT CHR$(248); : GOTO 550
530 B = F * 12 / P: IF B < 0 THEN B = B + 24
540 F = INT(B): GOSUB 580: PRINT "HR";
550 B = ABS(B - F) * 60: F = INT(B): GOSUB 580: PRINT "'";
560 F = INT((B - F) * 60 + .5): GOSUB 580: PRINT CHR$(34): RETURN
570 PRINT "/";
580 PRINT MID$(STR$(F + 100), 3, 2); : RETURN
'
'
' time adjust E, I, U, W
'
600 E = E + B * T: I = I + C * T: U = U + D * T: W = W + F * T
' Calculate mean position of planet at time T, relative to its perihelion
' To avoid rounding errors, we remove most or all the whole orbits of the
' sun, by removing from the time component a multiple of the number of days
' in which a whole orbit and a bit was completed (X), but generating an
' an angle which is the residuals of the orbits (residual is Y). The mean
' position at time T relative to perihelion is in M
610 B = INT(T / X): C = T - B * X: L = B * Y + C * Z + L: M = FNA(L - U - W): X = M
' successively approximate X the difference between M and the actual position
620 Y = (M - X + E * SIN(X)) / (1 - E * COS(X)): X = X + Y: IF ABS(Y) > .0000005 GOTO 620
'
630 B = COS(X / 2): GOSUB 750: F = 2 * ATN((SQR((1 + E) / (1 - E)) * SIN(X / 2)) / B)
650 R = A * (1 - E * COS(X)): Y = W + F
660 B = R * (COS(U) * COS(Y) - SIN(U) * SIN(Y) * COS(I))
670 C = R * (SIN(U) * COS(Y) + COS(U) * SIN(Y) * COS(I))
680 D = R * SIN(Y) * SIN(I)
690 X = B: Y = C * COS(O) - D * SIN(O): Z = C * SIN(O) + D * COS(O)
700 RETURN
750 IF B = 0 THEN B = 1E-10
760 RETURN
800 DATA EARTH,1,.016751,-.114E-8,0,0,0,0,1.766637,.8215E-6,1.740035,366,.0130363,.01720279
810 DATA MERCURY,.3870986,.205614,.56E-9 ,.122223,.889E-9,.822915,.5663E-6,.501785,.177E-6,3.109812,88,.00225458,.07142545
820 DATA VENUS,.7233316,.006821,-.131E-8,.05923,.481E-9,1.322602,.43E-6,.949185,.2428E-6,5.982413,225,.00851648,.02796311
830 DATA MARS,1.523692,.093313,.282E-8,.032294,.323E-9,.851484,.3684E-6,4.981723,.5112E-6,5.126863,687,.6438E-3,.009146767
840 DATA JUPITER,5.2028,.048332,.449E-8,.022842,-.272E-8,1.735536,.4823E-6,4.77105,.2171E-6,4.16936,4333,.5989E-3,.00145022
850 DATA SATURN,9.538843,.05589,-.945E-8,.04350,-.186E-8,1.968489,.4152E-6,5.9044,.5254E-6,4.666956,10760,.5051E-3,.5839825E-3
860 DATA URANUS,19.18195,.0471,0,.013483,.398E-9,1.282478,.2515E-6,1.668002,.5137E-6,4.26205,30686,.1616E-3,.2047626E-3
870 DATA NEPTUNE,30.0578,.0085,0,.031052,-.451E-8,2.280806,.525E-6,4.767997,-.2006E-6,1.498626,1,.10439E-3,.1E-3
880 DATA PLUTO,39.4387,.2494,0,.29915,0,1.902409,.7053E-6,2.009925,0,1.648242,1,.69454E-4,.7E-4