BASIC code 在這裡
您若改成 Visual Basic 後可要免費提供給網友ㄡ
10 For I = 1 To 23: Print: Next I: ' clear screen
20 Print " ==========================================================================="
30 Print
40 Print " ASTROL7, The Public Domain Astrology Program"
50 Print
60 Print " Now includes aspects -"
70 Print " Natal aspects, transiting aspects and chart synastry for relationships."
80 Print
90 Print " Created by John A. Halloran, 10/16/85"
100 Print " Top-down structure by David C. Oshel, 12/27/85"
110 Print " Revision 7 by John A. Halloran, 01/12/86"
120 Print
130 Print " (C) Copyright 1986 John A. Halloran"
140 Print " May not be used for commercial purposes without written permission"
150 Print " from the author."
160 Print
170 Rem CP/M Version for Microsoft BASIC-80 ver. 5.21 (MBASIC)
180 Rem PC Version for IBM BASIC
190 Rem
200 Print " =========================================================================="
210 Print: Print: Print
220 Rem
230 '-------------------------------------
240 ' Static block (DIM, DEF, etc.)
250 '-------------------------------------
260 DefInt I
270 Dim H(12), H$(12), C$(12), F$(10), T(3), CH(12), CL(12), C(12), M(12), K(10), U(12), A$(9), ASPECT$(85), ASPDEG(85), ASPMIN(85), DDEG(85), DMIN(85), CHART1(12), XK(12), Dir$(85)
280 DEF FNR(X!) = PI# / 180 * X!: ' CONVERTS DEGREES TO RADIANS
290 DEF FND(X!) = 180 / PI# * X!: ' CONVERTS RADIANS TO DEGREES
300 DEF FNQ(X!) = Sgn(X!) * (Int(Abs(X!)) (Abs(X!) - Int(Abs(X!))) * 100 / 60): ' CONVERTS DEGREES/MINUTES TO DEGREES DECIMAL
310 DEF FNU(X!) = X! - (Int(X! / MO) * MO): MO = 360: ' MODULUS FUNCTION, RETURNS RESULT WITHIN CIRCLE
320 DEF FNW(X!) = (CInt(X! * 100)) / 100: ' ROUNDS OFF TO TWO DECIMAL PLACES
330 DEF FNX(X!) = Atn(X! / Sqr(1 - X! * X!)): ' ARCSINE FUNCTION
340 DEF FNY(X!) = Atn(Sqr(1 - X! * X!) / X!): ' ARCCOSINE FUNCTION
350 DEF FNS(X!) = Sin(PI# / 180 * X!): ' SINE FUNCTION WHEN WORKING WITH DEGREES
360 DEF FNC(X!) = Cos(PI# / 180 * X!): ' COSINE FUNCTION WHEN WORKING WITH DEGREES
370 DEF FNT(X!) = Tan(PI# / 180 * X!): ' TANGENT FUNCTION WHEN WORKING WITH DEGREES
380 DEF FNP(X!) = Sgn(X!) * ((Abs(X!) / M!) / 360 - Int((Abs(X!) / M!) / 360)) * 360
390 PI# = 3.14159265: ' DEFINE "PI"
400 ZA$ = "AriTauGemCanLeoVirLibScoSagCapAquPis": ' Aries, Taurus, Gemini, etc.
410 '-------------------------------------
420 ' Main Program Control Loop
430 '-------------------------------------
440 'FOR I=1 TO 23:PRINT:NEXT I 'clear screen
450 LOOPCOUNT% = 0: LOOPING% = 1
460 While LOOPING% = 1
470 RESTORE 'rewind data statement pointer
480 GoSub 610 'print title
490 GoSub 670 'assistance?
500 GoSub 920 'get inputs
510 GoSub 1200 'crunch numbers
520 GoSub 4600 'display results
530 GoSub 3180 'aspects
540 GoSub 3530 'transits/synastry
550 GoSub 740: LOOPING% = YES% 'shall we continue?
560 Wend
570 End ' the only program exit
580 '-------------------------------------
590 ' Title
600 '-------------------------------------
610 If LOOPCOUNT% = 0 Then GoTo 630 Else GoTo 620
620 Print: Print: Print: Print "ASTROL7, The Public Domain Astrology Program"
630 Return
640 '--------------------------------
650 ' Assistance?
660 '--------------------------------
670 Print: Print "Do you want assistance? Y/N ";: GoSub 860
680 If YES% = 1 Then Print: GoSub 4960
690 Print: Print
700 Return
710 '--------------------------------
720 ' Do another?
730 '--------------------------------
740 Print: Print "Calculate another birthdate? Y/N ";
750 GoSub 860
760 Return
770 '------------------------------
780 ' Get a key (uppercase)
790 '------------------------------
800 A$ = INKEY$: If Len(A$) = 0 Then GoTo 800
810 If A$ >= "a" And A$ <= "z" Then A$ = Chr$(Asc(A$) - 32): ' Uppercase
820 Return
830 '------------------------------
840 ' Get YES/NO answer
850 '------------------------------
860 GoSub 800: Print A$
870 If A$ = "Y" Then YES% = 1 Else YES% = 0
880 Return
890 '------------------------------
900 ' Get inputs
910 '------------------------------
920 OK% = 0
930 While OK% = 0
940 INPUT"DATE: MM.DDYYYY ";DA$
950 A$ = DA$
960 M = Val(Mid$(A$, 1, 2))
970 D = Val(Mid$(A$, 4, 2))
980 Y = Val(Mid$(A$, 6, 5))
990 INPUT"AM*PM ";TI$
1000 For I = 1 To Len(TI$) 'ensure AM/PM string is uppercase
1010 F$ = Mid$(TI$, I, 1): If F$ >= "a" And F$ <= "z" Then F$ = Chr$(Asc(F$) - 32)
1020 Mid$(TI$, I, 1) = F$
1030 Next I
1040 F$ = TI$
1050 INPUT"TIME: HH.MM ";TI
1060 F! = TI
1070 INPUT"TIME ZONE IN HOURS: HH.MM "; X!
1080 INPUT"LONGITUDE: DDD.MM ";LN!
1090 L5! = LN!: L5! = FNQ(L5!)
1100 F! = FNQ(F!) FNQ(X!)
1110 INPUT"LATITUDE: DD.MM ";LT#
1120 LA! = LT#: LA! = FNR(FNQ(LA!))
1130 Print: Print "All OK? Y/N ";: GoSub 860: OK% = YES%
1140 If YES% = 0 Then Print
1150 Wend
1160 Return
1170 '--------------------------------
1180 ' Crunch numbers
1190 '--------------------------------
1200 Print: Print "Calculating..."
1210 For I = 1 To 12: READ C$(I): Next I: '<--- FILL PLANET NAME ARRAY
1220 For I = 1 To 9: READ A$(I): Next I: '<--- FILL ASPECT NAME ARRAY
1230 If F$ = "PM" Then F! = F! 12
1240 '-------------------------------------------------------------
1250 ' Julian Day Number; Y,M,D in/out, JD# out
1260 '-------------------------------------------------------------
1270 Y1# = Y: M1# = M: D1# = D: If M1# = 1 Or M1# = 2 Then Y1# = Y1# - 1: M1# = M1# 12
1280 If Y1# < 1582 Then B1# = 0 Else If Y1# = 1582 And M1# < 10 Then B1# = 0 Else If Y1# = 1582 And M1# = 10 And D1# < 15 Then B1# = 0 Else A1# = Int(Y1# / 100): B1# = 2 - A1# Int(A1# / 4)
1290 C1# = Int(365.25 * Y1#): D2# = Int(30.6001 * (M1# 1)): JD# = B1# C1# D2# D1# 1720994.5
1300 T# = ((JD# - 2415020!) F! / 24) / 36525!
1310 OB! = FNR(23.4523 - 0.0130125 * T#): GoTo 1330
1330 RA! = FNR(FNU((6.64607 2400.05 * T# 0.0000258 * T# * T# F!) * 15 - L5!)): '<--- RAMC IN RADIANS
1340 '<------------------
1350 For I = 1 To 10: '<--- LOOP FOR PLANETS
1360 If I = 2 Then GoTo 1370 Else GoTo 1390
1370 GoSub 2440: '<--- calculate moon
1380 GoTo 1750
1390 MO = 2 * PI#: '<--- MOD FUNCTION IN RADIANS
1400 GoSub 1900: M! = FNU(S!): '<--- CALCULATE MEAN ANOMALY
1410 GoSub 1900: E! = FND(S!): '<--- CALCULATE ECCENTRICITY
1420 EA! = M!: For A = 1 To 5: EA! = M! E! * Sin(EA!): Next A: '<--- SOLVE KEPLER'S EQUATION
1430 READ AU!: '<--- SEMI-MAJOR AXIS
1440 E1! = 0.0172021 / (AU! ^ 1.5 * (1 - E! * Cos(EA!))): '<--- BEGIN VELOCITY COORDINATES
1450 XW! = -(AU! * E1!) * Sin(EA!): YW! = (AU! * E1!) * (1 - E! * E!) ^ 0.5 * Cos(EA!): '<--- PERIFOCAL COORD'S
1460 '<---- CALCULATE ARGUMENT OF PERIHELION AND ASCENDING NODE
1470 GoSub 1900: AP! = S!: GoSub 1900: AN! = S!
1480 GOSUB 1900:IN!=S!:'<--- CALCULATE INCLINATION
1490 X! = XW!: Y! = YW!: GoSub 2220: '<--- ROTATE VELOCITY COORDINATES
1500 XH! = X!: YH! = Y!: ZH! = G!: '<--- HELIO ECLIPTIC RECTANGULAR VELOCITY COORDINATES
1510 '<---- STORE SUN VELOCITY COORDINATES
1520 MO = 360: If I = 1 Then XA! = -XH!: YA! = -YH!: ZA! = -ZH!: AB = 0: GoTo 1560
1530 '<---- GEO COMPONENTS OF SOLAR VELOCITY
1540 XW! = XH! XA!: YW! = YH! YA!: ZW! = ZH! ZA!
1550 '<---- PERIFOCAL COORDINATES FOR RECTANGULAR POSITION COORDINATES
1560 X! = AU! * (Cos(EA!) - E!): Y! = AU! * Sin(EA!) * (1 - E! * E!) ^ 0.5
1570 GoSub 2220: XX! = X!: YY! = Y!: ZZ! = G!: '<--- ROTATE FOR RECTANGULAR POSITION COORD'S
1580 '<---- HARMONIC TERMS FOR OUTER PLANETS
1590 '<---- CORRECT RECTANGULAR COORDINATES
1600 If I > 5 Then GoSub 2060: XX! = XX! T(2): YY! = YY! T(1): ZZ! = ZZ! T(3)
1610 XK! = (XX! * YH! - YY! * XH!) / (XX! * XX! YY! * YY!): XK(I) = XK!: '<--- COMPUTE HELIO DAILY MOTION
1620 HDM! = FND(XK!): '<--- HELIO DAILY MOTION
1630 R$ = " ": '<--- SET RETROGRADE STRING TO BLANK
1640 '<---- CONVERT HELIO RECTANGULAR TO SPHERICAL COORDINATES
1650 AB = 0: BR! = 0: GoSub 1820: AB = 1
1660 CH(I) = SS!: CL(I) = C!: '<--- STORE HELIO LONGITUDE & LATITUDE
1670 '<---- STORE EARTH/SUN COORDINATES
1680 If I = 1 Then C$(1) = "SUN": X1! = XX!: Y1! = YY!: Z1! = ZZ!: GoTo 1710
1690 XX! = XX! - X1!: YY! = YY! - Y1!: ZZ! = ZZ! - Z1!: '<--- HELIO TO GEO RECTANGULAR
1700 XK! = (XX! * YW! - YY! * XW!) / (XX! * XX! YY! * YY!): XK(I) = XK!: '<--- GEO DAILY MOTION
1710 BR! = 0.0057683 * Sqr(XX! * XX! YY! * YY! ZZ! * ZZ!) * FND(XK!): '<--- ABERRATION
1720 If XK! < 0 Then R$ = " R": '<--- RETROGRADE CHECK
1730 '<---- CONVERT RECTANGULAR TO SPHERICAL
1740 GoSub 1820: C(I) = SS!: M(I) = P!: If XK! < 0 Then C(I) = -SS!
1750 Next I
1760 GoSub 2860 ' calculate cusps
1770 Return
1780 '--------------------------------------
1790 ' Various important subroutines
1800 '--------------------------------------
1810 '<--- RECTANGULAR TO SPHERICAL COORDINATES
1820 X! = XX!: Y! = YY!: GoSub 1990: K! = A!: C! = FND(A!) NU! BR!: If I = 1 And AB = 1 Then C! = FNU(C! 180)
1830 C! = FNU(C! SD!): SS! = C!: Y! = ZZ!: X! = R!: GoSub 1990: If A! > 0.35 Then A! = A! - 2 * PI#
1840 P! = FND(A!)
1850 ELC% = 0: '<--- COUNTER TO RESTRICT U(1-10) TO PLANETARY LONGITUDE
1860 GoSub 2270: P$ = Z$ R$: C! = P!: GoSub 2270: If AB = 1 Then F$(I) = P$ Else GoTo 1870
1870 Return
1880 '<---------------
1890 '<--- ASSEMBLE ORBITAL ELEMENTS
1900 READ S!, S1#, S2!: S! = S! S1# * T# S2! * T# ^ 2: S! = FNR(S!)
1910 Return
1920 '<------------------------------------------------------
1930 '<--- POLAR TO RECTANGULAR COORDINATES
1940 If A! = 0 Then A! = 0.0000000017
1950 X! = R! * Cos(A!): Y! = R! * Sin(A!)
1960 Return
1970 '<---------------------------------
1980 '<--- RECTANGULAR TO POLAR COORDINATES
1990 If Y! = 0 Then Y! = 0.0000000017
2000 R! = (X! * X! Y! * Y!) ^ 0.5
2010 A! = Atn(Y! / X!): If A! < 0 Then A! = A! PI#
2020 If Y! < 0 Then A! = A! PI#
2030 Return
2040 '<-----------------
2050 '<--- CALCULATE HARMONIC TERMS FOR OUTER PLANETS
2060 K(6) = 11: K(7) = 5: K(8) = 4: K(10) = 4: K(9) = 4: '<--- NUMBER OF HARMONIC TERMS FOR PLANET
2070 For IK = 1 To 3
2080 If I = 6 And IK = 3 Then T(3) = 0: GoTo 2190 'Return
2090 '.............................................
2100 If IK = 3 Then K(I) = K(I) - 1
2110 '<--- ASSEMBLE TERMS
2120 GoSub 1900: A! = 0
2130 For IJ = 1 To K(I)
2140 READ U!, V!, W!
2150 A! = A! FNR(U!) * Cos((V! * T# W!) * PI# / 180)
2160 Next IJ
2170 T(IK) = FND(S! A!)
2180 Next IK
2190 Return
2200 '<----------------------------------------------------------------
2210 '<--- ROTATE ROUTINE USED FOR POSITION AND VELOCITY COORDINATES
2220 GOSUB 1990:A!=A! AP!:GOSUB 1940:D!=X!:X!=Y!:Y!=0:GOSUB 1990:A!=A! IN!:GOSUB 1940:G!=Y!:Y!=X!:X!=D!
2230 GoSub 1990: A! = A! AN!: If A! < O Then A! = A! 2 * PI#
2240 GoSub 1940
2250 Return
2260 '<----------------
2270 U! = Abs(C!): '<--- REMOVE NEGATION IF PRESENT
2280 If ELC% < 1 Then U(I) = U!: '<--- STORE ECLIPTIC LONGITUDE FOR ASPECT CALCULATION
2290 If LOOPCOUNT% < 1 And ELC% < 1 Then CHART1(I) = U!: '<--- STORE LONGITUDE FOR TRANSIT/SYNASTRY CALCULATION
2300 ELC% = ELC% 1
2310 Z3 = Int(U!): Q = Int(Z3 / 30) 1: '<--- 'Q' IS ZODIAC SIGN NUMBER
2320 Z7 = Int(FNW((Z3 / 30 - Int(Z3 / 30)) * 30)): '<--- NUMBER OF DEGREES
2330 X$ = Right$(Str$(Z7), 2): If Z7 < 10 Then X$ = "0" Right$(X$, 1)
2340 ZZ$ = Str$(Int(((U! - Z3) * 60 0.5))): If Val(ZZ$) < 10 Then ZZ$ = "0" Right$(ZZ$, 1): '<--- STRING FOR MINUTES
2350 If Val(ZZ$) = 60 Then ZZ$ = "59"
2360 B$ = Mid$(ZA$, Q * 3 - 2, 3): '<--- SELECTS ZODIAC STRING FROM ZA$
2370 A$ = " ": If C! < 0 Then A$ = "-": '<--- SETS SIGN STRING FOR LATITUDE/DECLINATION
2380 D$ = A$ X$ " " Right$(ZZ$, 2): '<--- LATITUDE/DECLINATION STRING
2390 If EQ = 1 Then B$ = " ": X$ = Right$(" " Str$(Z3), 3): '<--- FLAG FOR 360-DEGREE NOTATION
2400 Z$ = Left$(C$(I), 2) " " X$ B$ Right$(ZZ$, 2): '<--- PLANET AND POSITION STRING
2410 A$ = Right$(Z$, 7): '<--- ZODIAC NOTATION STRING
2420 Return
2430 '<----------------------
2440 '<--- MOON & MOON'S NODE ROUTINE
2450 '<--- COMPUTE MEAN LUNAR LONGITUDE
2460 LL# = 973563! 1732564379# * T# - 4 * T# * T#
2470 '<--- COMPUTE SUN'S MEAN LONGITUDE OF PERIGEE
2480 G# = 1012400! 6189 * T#
2490 '<--- COMPUTE MEAN LUNAR NODE
2500 N# = 933060! - 6962910! * T# 7.5 * T# * T#
2510 MLN# = FNP(N#): '<--- MEAN LUNAR NODE
2520 '<--- COMPUTE MEAN LONGITUDE OF LUNAR PERIGEE
2530 G1# = 1203590! 14648523# * T# - 37 * T# * T#
2540 '<--- COMPUTE MEAN ELONGATION OF MOON FROM SUN
2550 D# = 1262660! 1602961611# * T# - 5 * T# * T#: M# = 3600
2560 '<--- COMPUTE AUXILIARY ANGLES
2570 L# = (LL# - G1#) / M#: L1# = ((LL# - D#) - G#) / M#: F# = (LL# - N#) / M#: D# = D# / M#: Y# = 2 * D#
2580 '<--- COMPUTE MOON'S PERTURBATIONS
2590 ML# = 22639.6 * FNS(L#) - 4586.4 * FNS(L# - Y#)
2600 ML# = ML# 2369.9 * FNS(Y#) 769 * FNS(2 * L#) - 669 * FNS(L1#)
2610 ML# = ML# - 411.6 * FNS(2 * F#) - 212 * FNS(2 * L# - Y#)
2620 ML# = ML# - 206 * FNS(L# L1# - Y#) 192 * FNS(L# Y#)
2630 ML# = ML# - 165 * FNS(L1# - Y#) 148 * FNS(L# - L1#) - 125 * FNS(D#)
2640 ML# = ML# - 110 * FNS(L# L1#) - 55 * FNS(2 * F# - Y#)
2650 ML# = ML# - 45 * FNS(L# 2 * F#) 40 * FNS(L# - 2 * F#)
2660 G# = FNU((LL# ML#) / M#): XK(I) = 13 * XK!: '<--- LUNAR LONGITUDE
2670 ELC% = 0: '<--- COUNTER TO CAUSE U(2) TO BE STORED
2680 C! = G#: GoSub 2270
2690 F$(I) = Z$
2700 '<--- COMPUTE LUNAR LATITUDE
2710 MB! = 18461.5 * FNS(F!) 1010 * FNS(L! F!) - 999 * FNS(F! - L!)
2720 MB! = MB! - 624 * FNS(F! - Y!) 199 * FNS(F! Y! - L!)
2730 MB! = MB! - 167 * FNS(L! F! - Y!) 117 * FNS(F! Y!)
2740 MB! = MB! 62 * FNS(2 * L! F!) - 33 * FNS(F! - Y! - L!)
2750 MB! = MB! - 32 * FNS(F! - 2 * L!) - 30 * FNS(L1! F! - Y!)
2760 MB! = FNP(MB!): '<--- LUNAR LATITUDE
2770 '<--- COMPUTE TRUE LUNAR NODE
2780 TN! = N! 5392 * FNS(2 * F! - Y!) - 541 * FNS(L1!) - 442 * FNS(Y!)
2790 TN! = TN! 423 * FNS(2 * F!) - 291 * FNS(2 * L! - 2 * F!)
2800 TN! = FNU(TN! / M!): '<--- TRUE LUNAR NODE
2810 Return
2820 '---------------------------------
2830 ' Compute Placidus Cusps
2840 '---------------------------------
2850 '<--- MIDHEAVEN
2860 X! = Atn(Tan(RA!) / Cos(OB!)): If X! < 0 Then X! = X! PI#
2870 If RA! > PI# Then X! = X! PI#
2880 MC! = FNU(FND(X!) SD!)
2890 U(12) = MC!: XK(12) = 360 * XK(1)
2900 If LOOPCOUNT% = 0 Then CHART1(12) = MC!
2910 '<--- ASCENDANT
2920 A1! = Atn(Cos(RA!) / (-Sin(RA!) * Cos(OB!) - Tan(LA!) * Sin(OB!))): If A1! < 0 Then A1! = A1! PI#
2930 If Cos(RA!) < 0 Then A1! = A1! PI#
2940 A1! = FNU(FND(A1!) SD!)
2950 U(11) = A1!: XK(11) = 360 * XK(1)
2960 If LOOPCOUNT% = 0 Then CHART1(11) = A1!
2970 '<--- PLACIDUS HOUSES
2980 Y! = 0: MO = 360: H(4) = FNU(MC! 180 - SD!): H(1) = FNU(A1! - SD!)
2990 R1! = RA! FNR(30): FF! = 3: GoSub 3090: H(5) = FNU(LO! 180)
3000 R1! = RA! FNR(60): FF! = 1.5: GoSub 3090: H(6) = FNU(LO! 180): R1! = RA! FNR(120): Y! = 1
3010 GoSub 3090: H(2) = LO!: R1! = RA! FNR(150): FF! = 3: GoSub 3090: H(3) = LO!
3020 ELC% = ELC% 1: '<--- COUNTER TO RESTRICT U(1-10) TO PLANETARY LONGITUDES
3030 For I = 1 To 12: H(I) = FNU(H(I) SD!): If I > 6 Then H(I) = FNU(H(I - 6) 180)
3040 C! = H(I): GoSub 2270: H$(I) = A$: Next I
3050 Return
3060 '----------------------------------
3070 ' A Placidus subroutine
3080 '----------------------------------
3090 X! = -1: If Y! = 1 Then X! = 1
3100 For I = 1 To 10: XX! = FNY(X! * Sin(R1!) * Tan(OB!) * Tan(LA!)): If XX! < 0 Then XX! = XX! PI#
3110 R2! = RA! (XX! / FF!): If Y! = 1 Then R2! = RA! PI# - (XX! / FF!)
3120 R1! = R2!: Next I: LO! = Atn(Tan(R1!) / Cos(OB!)): If LO! < 0 Then LO! = LO! PI#
3130 If Sin(R1!) < 0 Then LO! = LO! PI#
3140 LO! = FND(LO!)
3150 Return
3160 '----------------------------------
3170 ' Compute aspects
3180 '----------------------------------
3190 Print: Print "Display aspects? Y/N ";: GoSub 860: Print
3200 If YES% = 0 Then GoTo 3490
3210 CLS: LNE = 0: BRK = 18
3220 Print: Print " ASPECTS ANGLES ORBS"
3230 Print "------------- -------- ------"
3235 COMM2 = 0
3240 For I = 1 To 12: '<--- ASPECT LOOP
3250 For J = 1 To 12: '<--- PLANET LOOP #2
3260 If J <= I Then GoTo 3360
3270 ASP = Abs(U(I) - U(J)): If ASP > 180 Then ASP = 360 - ASP
3280 ASP$ = Str$(CInt(ASP * 100)): ASPDEG$ = Left$(ASP$, Len(ASP$) - 2): ASPDEG = Val(ASPDEG$): ASPMIN = CInt(60 * (ASP - ASPDEG)): If ASPMIN = 60 Then GoTo 3290 Else GoTo 3300
3290 ASPDEG = ASPDEG 1: ASPMIN = 0
3300 For K = 1 To 9: D = Abs(ASP - Val(Right$(A$(K), 3))): '<--- CHECK ANGLE AGAINST ASPECTS
3310 D$ = Str$(CInt(D * 100)): DDEG$ = Left$(D$, Len(D$) - 2): DDEG = Val(DDEG$): DMIN = CInt(60 * (D - DDEG)): If DMIN = 60 Then GoTo 3320 Else GoTo 3330
3320 DDEG = DDEG 1: DMIN = 0
3330 '<--- IF WITHIN ORB, PRINT ASPECT
3340 If D < Val(Mid$(A$(K), 4, 1)) Then Print C$(I); " "; Left$(A$(K), 3); " "; C$(J); " ";: Print USING; "###"; ASPDEG;: Print "d ";: Print USING; "##"; ASPMIN;: Print "m ";: Print USING; "#"; DDEG;: Print "d ";: Print USING; "##"; DMIN;: Print "m": LNE = LNE 1: GoSub 3380
3350 Next K
3360 Next J: Next I
3365 JCI$ = "Internal Communication Index: ": Print: Print JCI$; CInt(COMM2)
3370 GoTo 3430
3380 ASPECT$(LNE) = C$(I) " " Left$(A$(K), 3) " " C$(J) " ": '<--- STORE ASPECT FOR LINE PRINTER
3390 ASPDEG(LNE) = ASPDEG: ASPMIN(LNE) = ASPMIN: DDEG(LNE) = DDEG: DMIN(LNE) = DMIN
3395 STEP2 = (Val(Mid$(A$(K), 4, 1)) - D): COMM2 = COMM2 STEP2: K = 9
3400 If Int(LNE / BRK) = 1 Then GoTo 3410 Else GoTo 3420
3410 BRK = BRK 18: Print Tab(43); "For more, press Return...": GoSub 800
3420 Return
3430 Print: Print "Print hardcopy? Y/N ";: GoSub 860: Print
3440 If YES% = 0 Then GoTo 3490: ' No print request, so exit from subroutine
3450 GoSub 4880
3460 LPRINT " ASPECTS ANGLES ORBS"
3470 LPRINT "------------- -------- ------"
3480 FOR I=1 TO LNE:LPRINT ASPECT$(I);:LPRINT USING "###";ASPDEG(I);:LPRINT "d ";:LPRINT USING "##";ASPMIN(I);:LPRINT "m ";:LPRINT USING "#";DDEG(I);:LPRINT "d ";:LPRINT USING "##";DMIN(I);:LPRINT "m":NEXT I
3485 LPRINT:LPRINT JCI$;CINT(COMM2)
3490 Return
3500 '------------------------------
3510 ' Compute transits/synastry
3520 '------------------------------
3530 If LOOPCOUNT% = 0 Then GoTo 4560
3540 Print: Print "Display aspects between the first chart and this chart? Y/N ";: GoSub 860: Print
3550 If YES% = 0 Then GoTo 4560
3560 DIREC$ = "": DIRECT$ = "": Dir$ = ""
3570 TCS$="":TCS=0:INPUT "For which: Transits (T) or Chart Synastry (C) ";TCS$
3580 If TCS$ = "C" Or TCS$ = "c" Then TCS = 2: GoTo 3610
3590 If TCS$ = "T" Or TCS$ = "t" Then TCS = 1
3600 DIREC$ = " DIRECTION": DIRECT$ = " ---------"
3610 CLS: LNE = 0: BRK = 18: CI = 0: NCI = 0
3620 Print: Print USING; "_##_ "; LOOPCOUNT% 1;: Print "ASPECTS #1 ANGLES ORBS"; DIREC$
3630 Print "------------- -------- ------"; DIRECT$
3640 For I = 1 To 12: '<--- ASPECT LOOP
3650 For J = 1 To 12: '<--- PLANET LOOP #2
3652 If TI$ = "PM" And TI = 0 And I > 10 Then GoTo 3970
3660 ASP = Abs(U(I) - CHART1(J)): If ASP > 180 Then ASP = 360 - ASP: '<--- CHECK NEW PLANETARY LONGITUDES AGAINST VALUES STORED FOR 1ST CHART
3670 ASP$ = Str$(CInt(ASP * 100)): ASPDEG$ = Left$(ASP$, Len(ASP$) - 2): ASPDEG = Val(ASPDEG$): ASPMIN = CInt(60 * (ASP - ASPDEG)): If ASPMIN = 60 Then GoTo 3680 Else GoTo 3690
3680 ASPDEG = ASPDEG 1: ASPMIN = 0
3690 For K = 1 To 9: ANG = Val(Right$(A$(K), 3)): D = Abs(ASP - ANG): '<--- CHECK ANGLE AGAINST ASPECTS
3700 '<--- IF WITHIN ORB, PRINT ASPECT
3710 ORB = Val(Mid$(A$(K), 4, 1)): If D > ORB Then GoTo 3960
3720 D$ = Str$(CInt(D * 100)): DDEG$ = Left$(D$, Len(D$) - 2): DDEG = Val(DDEG$): DMIN = CInt(60 * (D - DDEG)): If DMIN = 60 Then GoTo 3730 Else GoTo 3740
3730 DDEG = DDEG 1: DMIN = 0
3740 If TCS = 1 Then GoTo 3750 Else GoTo 3950
3750 U = U(I): CH = CHART1(J): '<--- ROUTINE TO TEST WHETHER TRANSIT IS APPLYING OR SEPARATING
3760 If ANG <= 90 Then GoTo 3770 Else GoTo 3800
3770 If U < 90 And CH > 270 Then U = U 360: GoTo 3860
3780 If CH < 90 And U > 270 Then CH = CH 360: GoTo 3860
3790 GoTo 3860
3800 If ANG > 90 And ANG < 180 Then GoTo 3810 Else GoTo 3840
3810 If U > 180 And U - CH > 180 Then CH = CH 360: GoTo 3860
3820 If CH > 180 And CH - U > 180 Then U = U 360: GoTo 3860
3830 GoTo 3860
3840 If ANG = 180 And CH - U > 180 Then U = U 360: GoTo 3860
3850 If ANG = 180 And U - CH > 180 Then CH = CH 360
3860 If U < CH And ASP > ANG And XK(I) > 0 Then Dir$ = " Applying": GoTo 3940
3870 If U < CH And ASP < ANG And XK(I) > 0 Then Dir$ = " Separating": GoTo 3940
3880 If U < CH And ASP > ANG And XK(I) < 0 Then Dir$ = " Separating": GoTo 3940
3890 If U < CH And ASP < ANG And XK(I) < 0 Then Dir$ = " Applying": GoTo 3940
3900 If U > CH And ASP > ANG And XK(I) > 0 Then Dir$ = " Separating": GoTo 3940
3910 If U > CH And ASP < ANG And XK(I) > 0 Then Dir$ = " Applying": GoTo 3940
3920 If U > CH And ASP > ANG And XK(I) < 0 Then Dir$ = " Applying": GoTo 3940
3930 If U > CH And ASP < ANG And XK(I) < 0 Then Dir$ = " Separating"
3940 If DDEG = 0 And DMIN = 0 Then Dir$ = " Partile"
3950 Print C$(I); " "; Left$(A$(K), 3); " "; C$(J); " ";: Print USING; "###"; ASPDEG;: Print "d ";: Print USING; "##"; ASPMIN;: Print "m ";: Print USING; "#"; DDEG;: Print "d ";: Print USING; "##"; DMIN;: Print "m"; Dir$: LNE = LNE 1: GoSub 4010
3960 Next K
3970 Next J: Next I
3980 If TCS = 1 Then GoTo 4000
3990 Print: Print "Communication Index (Harmonious): ", CInt(CI): Print "Communication Index (Inharmonious): ", CInt(Abs(NCI)): Print "Total Communication Index: ", CInt(CI Abs(NCI)): Print
4000 GoTo 4450
4010 If TCS = 1 Then GoTo 4400
4020 CN = 1: OP = 1: If I = J Then OP = -1: '<--- ASSIGN COMMUNICATION INDEX FACTORS FOR ASPECTS AND PLANETS
4030 If I = J Then CN = 0.3
4040 If I = 3 Or I = 7 Or I = 8 Or J = 3 Or J = 7 Or J = 8 Then OP = -1: '<--- THE PLANETS AND ASPECTS REFERRED TO HERE CAN BE DETERMINED BY LOOKING AT THE FIRST TWO LINES OF THE DATA BLOCK
4050 If K = 1 Then FA1 = ((CN) * 7): GoTo 4130
4060 If K = 2 Then FA1 = ((OP) * 6): GoTo 4130
4070 If K = 3 Then FA1 = 3: GoTo 4130
4080 If K = 4 Then FA1 = -4: GoTo 4130
4090 If K = 5 Then FA1 = 2: GoTo 4130
4100 If K = 6 Or K = 7 Then FA1 = -1: GoTo 4130
4110 If K = 8 Then FA1 = -0.8: GoTo 4130
4120 If K = 9 Then FA1 = 1
4130 If I = 1 Then FA2 = 5: GoTo 4250
4140 If I = 2 Then FA2 = 5: GoTo 4250
4150 If I = 3 Then FA2 = 1: GoTo 4250
4160 If I = 4 Then FA2 = 4: GoTo 4250
4170 If I = 5 Then FA2 = 3: GoTo 4250
4180 If I = 6 Then FA2 = 2: GoTo 4250
4190 If I = 7 Then FA2 = 1.5: GoTo 4250
4200 If I = 8 Then FA2 = 1: GoTo 4250
4210 If I = 9 Then FA2 = 1.5: GoTo 4250
4220 If I = 10 Then FA2 = 1: GoTo 4250
4230 If I = 11 Then FA2 = 3: GoTo 4250
4240 If I = 12 Then FA2 = 1
4250 If J = 1 Then FA3 = 5: GoTo 4370
4260 If J = 2 Then FA3 = 5: GoTo 4370
4270 If J = 3 Then FA3 = 1: GoTo 4370
4280 If J = 4 Then FA3 = 4: GoTo 4370
4290 If J = 5 Then FA3 = 3: GoTo 4370
4300 If J = 6 Then FA3 = 2: GoTo 4370
4310 If J = 7 Then FA3 = 1.5: GoTo 4370
4320 If J = 8 Then FA3 = 1: GoTo 4370
4330 If J = 9 Then FA3 = 1.5: GoTo 4370
4340 If J = 10 Then FA3 = 1: GoTo 4370
4350 If J = 11 Then FA3 = 3: GoTo 4370
4360 If J = 12 Then FA3 = 1
4370 STEP1 = ((((ORB - D) * FA1) * FA2) * FA3): If STEP1 >= 0 Then GoTo 4380 Else GoTo 4390: '<--- INHARMONIOUS ASPECTS HAVE NEGATIVE VALUES
4380 CI = CI STEP1: GoTo 4400
4390 NCI = NCI STEP1
4400 ASPECT$(LNE) = C$(I) " " Left$(A$(K), 3) " " C$(J) " ": Dir$(LNE) = Dir$
4410 ASPDEG(LNE) = ASPDEG: ASPMIN(LNE) = ASPMIN: DDEG(LNE) = DDEG: DMIN(LNE) = DMIN: K = 9
4420 If Int(LNE / BRK) = 1 Then GoTo 4430 Else GoTo 4440
4430 BRK = BRK 18: Print Tab(43); "For more, press Return...": GoSub 800
4440 Return
4450 Print: Print "Print hardcopy? Y/N ";: GoSub 860: Print
4460 If YES% = 0 Then GoTo 4560: ' no print request, so exit from subroutine
4470 GoSub 4880
4480 LPRINT USING "_##_ ";LOOPCOUNT% 1;:LPRINT "ASPECTS #1 ANGLES ORBS";DIREC$
4490 LPRINT "------------- -------- ------";DIRECT$
4500 FOR I=1 TO LNE:LPRINT ASPECT$(I);:LPRINT USING "###";ASPDEG(I);:LPRINT "d ";:LPRINT USING "##";ASPMIN(I);:LPRINT "m ";:LPRINT USING "#";DDEG(I);:LPRINT "d ";:LPRINT USING "##";DMIN(I);:LPRINT "m";DIR$(I)
4510 If I = 40 Then GoTo 4520 Else GoTo 4530
4520 GoSub 4870
4530 Next I
4540 If TCS = 1 Then GoTo 4560
4550 LPRINT: LPRINT "Communication Index (Harmonious): ", CInt(CI): LPRINT "Communication Index (Inharmonious): ", CInt(Abs(NCI)): LPRINT "Total Communication Index: ", CInt(CI Abs(NCI)): LPRINT
4560 LOOPCOUNT% = LOOPCOUNT% 1: Return
4570 '------------------------------
4580 ' Display results
4590 '------------------------------
4600 GoSub 4760 ' print planets on console
4610 GoSub 4820 ' print houses on console
4620 Print: Print "Print hardcopy? Y/N ";: GoSub 860: Print
4630 If YES% = 0 Then GoTo 4720 'No print request, so exit from subroutine
4640 GoSub 4880
4650 LPRINT "DATE: "DA$;" ";"TIME: "TI;TI$;" ";"LONGITUDE: "LN!;" ";"LATITUDE: "LT#
4660 LPRINT
4670 LPRINT "POSITIONS OF SUN, MOON, AND PLANETS"
4680 LPRINT F$(1),F$(5),F$(8),CHR$(13);CHR$(10);F$(2),F$(6),F$(9),CHR$(13);CHR$(10);F$(3),F$(7),F$(10),CHR$(13);CHR$(10);F$(4)
4690 LPRINT: LPRINT "PLACIDUS HOUSE CUSPS"
4700 LPRINT "1 " H$(1),"2 " H$(2),"3 " H$(3),CHR$(13);CHR$(10);"4 " H$(4),"5 " H$(5),"6 " H$(6),CHR$(13);CHR$(10);"7 " H$(7),"8 " H$(8),"9 " H$(9),CHR$(13);CHR$(10);"10 " H$(10),"11 " H$(11),"12 " H$(12)
4710 LPRINT: LPRINT
4720 Return
4730 '--------------------------------
4740 ' Print planets subroutine
4750 '--------------------------------
4760 Print: Print "POSITIONS OF SUN, MOON, AND PLANETS"
4770 Print F$(1), F$(5), F$(8), Chr$(13); Chr$(10); F$(2), F$(6), F$(9), Chr$(13); Chr$(10); F$(3), F$(7), F$(10), Chr$(13); Chr$(10); F$(4)
4780 Return
4790 '--------------------------------
4800 ' Print houses subroutine
4810 '--------------------------------
4820 Print
4830 Print "PLACIDUS HOUSE CUSPS"
4840 Print "1 " H$(1), "2 " H$(2), "3 " H$(3), Chr$(13); Chr$(10); "4 " H$(4), "5 " H$(5), "6 " H$(6), Chr$(13); Chr$(10); "7 " H$(7), "8 " H$(8), "9 " H$(9), Chr$(13); Chr$(10); "10 " H$(10), "11 " H$(11), "12 " H$(12)
4850 Return
4860 '--------------------------------
4870 Print: Print "If you wish to change paper, do so when this batch (40 lines) finishes printing.": Print
4880 ' Print results to printer
4890 Print "IF PRINTER IS READY, PRESS THE SPACE BAR..."
4900 GoSub 800: If Asc(A$) <> 32 Then GoTo 4900
4910 WIDTH LPRINT 75
4920 Return
4930 '--------------------------------
4940 ' Explanatory Text
4950 '--------------------------------
4960 Print "This program calculates the zodiac sign positions of the ten"
4970 Print "planets, including the sun and moon, and the twelve house cusps."
4980 Print "These are the essential elements needed to draw up a"
4990 Print "horoscope. I chose the Placidus house system because I am"
5000 Print "familiar with it from Raphael's Table of Houses. With Revision"
5010 Print "7, the program can also calculate and display the aspects between"
5020 Print "the planets. Following this routine is one that enables"
5030 Print "comparison between two charts for analysis of transits or chart"
5040 Print "synastry. The accuracy of the planetary positions is generally"
5050 Print "exact, with deviations being no more than about 5 minutes of arc;"
5060 Print "deviations are likely to be due more to inaccuracy in"
5070 Print "entering the time of birth than to problems with the program."
5080 Print ""
5090 Print "Enter the date of birth as the prompt (MM.DDYYYY) shows, e.g.,"
5100 Print "you would enter October 16, 1985 as 10.161985. Leading zeroes"
5110 Print "are significant: you would enter June 9, 1961 as 06.091961."
5120 Print ""
5130 Print "Respond to the AM*PM birth time prompt by typing in either AM or"
5140 Print "PM."
5150 Print ""
5160 GoSub 800
5170 Print "The TIME prompt asks for the time as recorded on the birth"
5180 Print "certificate, which should be Standard Time. Astrologers who"
5190 Print Chr$(34) "know too much" Chr$(34) " should not enter Mean Local Time as the program"
5200 Print "automatically makes this adjustment. However, if Daylight"
5210 Print "Savings Time was in effect when the time was recorded it is"
5220 Print "important that an hour be subtracted from the birth time before"
5230 Print "entering the time. Also, if the birth occurred between either"
5240 Print "midnight or noon and 1 o'clock, do NOT enter the time as 12.xx,"
5250 Print "but as 00.xx, e.g., 12:42 at night would be AM and 00.42."
5260 Print ""
5270 Print "TIME ZONE IN HOURS refers to the distance in hours between"
5280 Print "Greenwich Time and the time zone in which the birth time was"
5290 Print "recorded. Hours for the U.S. Standard Time zones are as follows:"
5300 Print ""
5310 Print "Atlantic 4"
5320 Print "Eastern 5"
5330 Print "Central 6"
5340 Print "Mountain 7"
5350 Print "Pacific 8"
5360 Print "Yukon 9"
5370 Print "Alaska- Hawaii 10"
5380 Print "Bering 11"
5390 GoSub 800
5400 Print ""
5410 Print "Although zones sometimes have irregular boundaries, the general"
5420 Print "rule is that time changes by 1 hour every 15 degrees of"
5430 Print "geographical longitude. Zones east of Greenwich Time are entered"
5440 Print "as negative hours, e.g., the zone in Paris, France is -1."
5450 Print ""
5460 Print "Geographical LONGITUDE can be taken from any atlas. Longitudes"
5470 Print "west of Greenwich are positive. Longitudes east of Greenwich are"
5480 Print "negative. The longitude of Los Angeles, which is 118 degrees 15"
5490 Print "minutes West, is entered as 118.15. The longitude of Paris,"
5500 Print "France is -2.20"
5510 Print ""
5520 Print "Geographical LATITUDE is positive north of the equator, negative"
5530 Print "south of the equator. The latitude of Los Angeles is 34.03. The"
5540 Print "latitude of Rio de Janeiro, Brazil is -23.00."
5550 Print ""
5560 GoSub 800
5570 Print "That's it. Be patient while it says "; Chr$(34); "Calculating..."; Chr$(34); " On a 4"
5580 Print "MHz, 64K RAM machine the CP/M version takes about 1 minute to"
5590 Print "calculate and print both the planetary positions and house cusps"
5600 Print "to the screen. On a 640K RAM XT the compiled IBM compatible"
5610 Print "version takes less than 10 seconds. If you want to save a hard"
5620 Print "copy of your results, the program provides prompts for printing"
5630 Print "to your printer."
5640 Print ""
5650 GoSub 800
5660 Print "With Release 7, the program will calculate and print the aspects"
5670 Print "between the planets. The aspects, angles, and orbs which the"
5680 Print "program uses are as follows:"
5690 Print ""
5700 Print "Aspects Angles Orbs"
5710 Print "------- ------ ----"
5720 Print "CJN Conjunction 0 degrees 7 degrees"
5730 Print "OPP Opposition 180 degrees 7 degrees"
5740 Print "TRI Trine 120 degrees 7 degrees"
5750 Print "SQR Square 90 degrees 7 degrees"
5760 Print "SXT Sextile 60 degrees 5 degrees"
5770 Print "SSQ Semi-square 45 degrees 2 degrees"
5780 Print "SES Sesquiquadrate 135 degrees 2 degrees"
5790 Print "INC Inconjunct 150 degrees 2 degrees"
5800 Print "QTL Quintile 72 degrees 2 degrees"
5810 Print ""
5820 Print "Following the aspect routine, the program then permits an"
5830 Print "unlimited number of additional charts to be calculated, at the"
5840 Print "end of each of which the program will ask you if you want to"
5850 Print "compare that chart's positions to those of the first chart. This"
5860 Print "can be useful for two purposes: planetary transits and synastry."
5870 Print ""
5880 GoSub 800
5890 Print "To determine the transiting aspects influencing an individual on"
5900 Print "a particular date, you would enter the person's birth information"
5910 Print "for the first chart and then enter the transiting time"
5920 Print "information for the second chart."
5930 Print ""
5940 Print "This same routine permits a comparison between the birth charts"
5950 Print "of two people for relationship purposes. This procedure is known"
5960 Print "as synastry when it involves looking at the aspects between two"
5970 Print "persons' respective planets. Any of the major aspects will"
5980 Print "establish communication at a deeper than superficial level, but"
5990 Print "the primary aspects for relationships are the Conjunction and"
6000 Print "Opposition. Generally, one is looking for aspects between"
6010 Print "different planets, not between the same planets, in the two"
6020 Print "charts. For friendship, understanding, and help, the significant"
6030 Print "points are the sun, moon, ascendant, and Jupiter. For close"
6040 Print "friendship or romance, the significant points are Venus and Mars."
6050 Print ""
6060 Print "As a practical application of synastry, should any single women"
6070 Print "out there discover their own charts to be compatible with a chart"
6080 Print "for 01.111954; AM; 07.02; 8; 118; and 34, I would love to receive"
6090 Print "a letter from you."
6100 Print ""
6110 GoSub 800
6120 Print "The majority of this program was assembled and adapted from the"
6130 Print "numerous subprograms contained in the Manual of Computer"
6140 Print "Programming for Astrologers by Michael Erlewine with acknowledge-"
6150 Print "ment to James Neely for the planetary routines. This book was"
6160 Print "published without copyright in 1980 by The American Federation of"
6170 Print "Astrologers, Inc. The routines of this book are in Commodore PET"
6180 Print "and Apple II BASIC."
6190 Print ""
6200 Print "If you have printed out the horoscope positions of yourself or a"
6210 Print "friend and then want to know " Chr$(34) "But what does it mean?" Chr$(34) ", I think"
6220 Print "the best book for interpreting horoscopes and aspects is Heaven"
6230 Print "Knows What by Grant Lewi; its companion volume for transits and"
6240 Print "planetary sign positions is called Astrology for the Millions."
6250 Print ""
6260 Print ""
6270 Print " John Halloran"
6280 Print " P.O. Box 75713"
6290 Print " Los Angeles, CA 90075"
6300 Print ""
6310 Print ""
6320 Return
6330 '------------------------------
6340 ' Data block
6350 '------------------------------
6360 Data SUN, MOO, MER, VEN, MAR, JUP, SAT, URA, NEP, PLU, Asc, Mid
6370 Data CJN7000, OPP7180, TRI7120, SQR7090, SXT5060, SSQ2045, SES2135, INC2150, QTL2072
6380 ' Sun elements
6390 Data 358.4758, 35999#, -0.0002, 0.01675, -0.00004, 0, 1, 101.2208, 1.7192, 0.00045, 0, 0
6400 Data 0, 0, 0, 0
6410 ' Mercury elements
6420 Data 102.2794, 149472.515, 0, 0.205614, 0.00002, 0, 0.3871, 28.7538, 0.3703, 0.0001
6430 Data 47.1459, 1.1852, 0.0002, 7.009, 0.00186, 0
6440 ' Venus elements
6450 Data 212.6032, 58517.8039, 0.0013, 0.00682
6460 Data -0.00005, 0, 0.7233, 54.3842, 0.5082, -0.0014, 75.7796, 0.8999, 0.0004
6470 Data 3.3936, 0.001, 0
6480 ' Mars elements
6490 Data 319.5294, 19139.8585, 0.0002, 0.09331, 0.00009, 0, 1.5237, 285.4318
6500 Data 1.0698, 0.0001, 48.7864, 0.77099, 0, 1.8503, -0.0007, 0
6510 ' Jupiter elements
6520 Data 225.4928, 3033.6879, 0
6530 Data 0.04838, -0.00002, 0, 5.2029, 273.393, 1.3383, 0, 99.4198, 1.0583, 0, 1.3097
6540 Data -0.0052, 0
6550 ' Jupiter harmonic terms
6560 Data -0.001, -0.0005, 0.0045, 0.0051, 581.7, -9.7, -0.0005, 2510.7, -12.5
6570 Data -0.0026, 1313.7, -61.4, 0.0013, 2370.79, -24.6, -0.0013, 3599.3, 37.7, -0.001, 2574.7
6580 Data 31.4, -0.00096, 6708.2, -114.5, -0.0006, 5499.4, -74.97, -0.0013, 1419, 54.2, 0.0006
6590 Data 6339.3, -109, 0.0007, 4824.5, -50.9, 0.002, -0.0134, 0.0127, -0.0023, 676.2, 0.9, 0.00045
6600 Data 2361.4, 174.9, 0.0015, 1427.5, -188.8, 0.0006, 2110.1, 153.6, 0.0014, 3606.8, -57.7
6610 Data -0.0017, 2540.2, 121.7, -0.00099, 6704.8, -22.3, -0.0006, 5480.2, 24.5, 0.00096
6620 Data 1651.3, -118.3, 0.0006, 6310.8, -4.8, 0.0007, 4826.6, 36.2
6630 ' Saturn elements
6640 Data 174.2153, 1223.50796
6650 Data 0, 0.05423, -0.0002, 0, 9.5525, 338.9117, -0.3167, 0, 112.8261, 0.8259, 0, 2.4908
6660 Data -0.0047, 0
6670 ' Saturn harmonic terms
6680 Data -0.0009, 0.0037, 0, 0.0134, 1238.9, -16.4, -0.00426, 3040.9, -25.2, 0.0064
6690 Data 1835.3, 36.1, -0.0153, 610.8, -44.2, -0.0015, 2480.5, -69.4, -0.0014, 0.0026, 0, 0.0111
6700 Data 1242.2, 78.3, -0.0045, 3034.96, 62.8, -0.0066, 1829.2, -51.5, -0.0078, 640.6, 24.2
6710 Data -0.0016, 2363.4, -141.4, 0.0006, -0.0002, 0, -0.0005, 1251.1, 43.7, 0.0005, 622.8
6720 Data 13.7, 0.0003, 1824.7, -71.1, 0.0001, 2997.1, 78.2
6730 ' Uranus elements
6740 Data 74.1757, 427.2742, 0, 0.04682
6750 Data 0.00042, 0, 19.2215, 95.6863, 2.0508, 0, 73.5222, 0.5242, 0, 0.7726, 0.0001, 0
6760 ' Uranus harmonic terms
6770 Data -0.0021
6780 Data -0.0159, 0, 0.0299, 422.3, -17.7, -0.0049, 3035.1, -31.3, -0.0038, 945.3, 60.1
6790 Data -0.0023, 1227, -4.99, 0.0134, -0.02186, 0, 0.0317, 404.3, 81.9, -0.00495, 3037.9, 57.3
6800 Data 0.004, 993.5, -54.4, -0.0018, 1249.4, 79.2, -0.0003, 0.0005, 0, 0.0005, 352.5, -54.99
6810 Data 0.0001, 3027.5, 54.2, -0.0001, 1150.3, -88
6820 ' Neptune elements
6830 Data 30.13294, 240.45516, 0, 0.00913, -0.00127
6840 Data 0, 30.11375, 284.1683, -21.6329, 0, 130.68415, 1.1005, 0, 1.7794, -0.0098, 0
6850 ' Neptune harmonic terms
6860 Data 0.1832
6870 Data -0.6718, 0.2726, -0.1923, 175.7, 31.8, 0.0122, 542.1, 189.6, 0.0027, 1219.4, 178.1
6880 Data -0.00496, 3035.6, -31.3, -0.1122, 0.166, -0.0544, -0.00496, 3035.3, 58.7, 0.0961, 177.1
6890 Data -68.8, -0.0073, 630.9, 51, -0.0025, 1236.6, 78, 0.00196, -0.0119, 0.0111, 0.0001
6900 Data 3049.3, 44.2, -0.0002, 893.9, 48.5, 0.00007, 1416.5, -25.2
6910 ' Pluto elements
6920 Data 229.781, 145.1781, 0
6930 Data 0.24797, 0.002898, 0, 39.539, 113.5366, 0.2086, 0, 108.944, 1.3739, 0, 17.1514
6940 Data -0.0161, 0
6950 ' Pluto harmonic terms
6960 Data -0.0426, 0.073, -0.029, 0.0371, 372, -331.3, -0.0049, 3049.6, -39.2, -0.0108
6970 Data 566.2, 318.3, 0.0003, 1746.5, -238.3, -0.0603, 0.5002, -0.6126, 0.049, 273.97, 89.97
6980 Data -0.0049, 3030.6, 61.3, 0.0027, 1075.3, -28.1, -0.0007, 1402.3, 20.3, 0.0145, -0.0928
6990 Data 0.1195, 0.0117, 302.6, -77.3, 0.00198, 528.1, 48.6, -0.0002, 1000.4, -46.1
7000 ' ** EOF **
.1,-.0007,1402.3,20.3,.0145,-.0928
699
Edited by 何鼓 on 05/06/01 01:48 AM (server time).