AMS-81

Products: AMS-81
Developer(s): Courtney Duncan
Date: 1983
Type: Program
Platform(s): TS 1000

A Timex/Sinclair computer port of W3IWI’s BASIC TRACK program for earth satellite tracking.

Content

Appears On

Related Products

A Timex/Sinclair computer port of W3IWI’s BASIC TRACK program for earth satellite tracking.

Related Articles

Related Content

Image Gallery

AMS-81

Source Code

  10 LET GO=U
  20 LET FS=G
  30 CLS 
  40 SLOW 
  50 PRINT H$
  60 PRINT "    VERSION N5BF 1.4 01APR83"
  70 PRINT AT U8,U7;"%<%<%<% %A%C%T%I%V%I%T%I%E%S% %>%>%>";AT TEN,U7;;"1 = SCHEDULE";TAB U7;"2 = TRACK";TAB U7;"3 = KEPLERIAN FILE";TAB U7;"4 = QTH INFO";AT HEX,TEN;"\@@SELECT 1-4\@@"
  80 IF SV=1 THEN PRINT AT U14,U7;"5 = NEED TO RESAVE";AT HEX,U20;"5"
  90 LET A$=INKEY$
 100 IF A$="" THEN GOTO 90
 110 PRINT AT HEX,U22;A$
 120 IF A$<>"1" THEN GOTO 970
 130 GOSUB 4890
 140 IF GO=G THEN GOTO G
 150 GOSUB HD1
 160 GOSUB INK
 170 GOSUB CO3
 180 LET LOS=U
 190 GOSUB SCH
 200 IF GO=G THEN GOTO G
 210 LET A(U)=D
 220 LET A(U2)=R5
 230 LET LOS=-U
 240 LET QS=U
 250 GOSUB SCH
 260 IF GO=G THEN GOTO G
 270 LET A(U3)=D
 280 LET A(U4)=R5
 290 LET PHI=G
 300 IF E(I)<U01 AND N>TEN THEN GOTO 430
 310 LET D=D+(INT Q-Q+HA)/N
 320 LET T=G
 330 GOSUB CO1
 340 IF A(U)>D OR A(U3)<D OR E(I)<U01 THEN GOTO 370
 350 LET E9=R0*(COS (E9*P0)*ASN (R5/R)+ACS (R0/R))
 360 GOTO LP1
 370 LET D=A(U)
 380 IF A(U4)>A(U2) THEN LET D=A(U3)
 390 LET T=U
 400 GOSUB CO1
 410 LET E9=U2*R0*ACS (R0/R)
 420 GOTO LP1
 430 LET D=(A(U)+A(U3))/U2
 440 GOSUB CO1
 450 LET T=U2
 460 GOTO LP1
 470 CLS 
 480 GOSUB DAO
 490 PRINT AT G,G;H$;"ACCESS SKED FROM: ";D$;"  >>";C$;" VIA ";S$(I);"<<","% %D%A%Y% % % %A%O%S% % %L%O%S% % % %M%A%X% %D%X%/%E%L% % % %A%Z"
 500 LET LP=U4
 510 RETURN 
 520 IF GO=G THEN GOTO G
 530 LET A(U5)=D
 540 LET D=A(U)
 550 GOSUB DAO
 560 LET D$=D$( TO U5)+D$(U8 TO U12)+N$
 570 LET J=U12
 580 LET D=A(U3)
 590 GOSUB TIM
 600 LET D$(HEX TO 17)=" "
 610 LET D=A(U5)
 620 LET J=U18
 630 GOSUB TIM
 640 LET D$=D$( TO U21)+" "
 650 IF T=U2 THEN GOTO 720
 660 LET D$=D$+STR$ INT E9+"  "
 670 IF LEN D$>=29 THEN GOTO 700
 680 LET D$=D$( TO U22)+D$(U22 TO )
 690 GOTO 670
 700 IF T=U THEN LET D$(U28)="*"
 710 GOTO 740
 720 GOSUB LZ2
 730 LET D$=D$( TO 24)+" %E%L  "
 740 GOSUB LZ3
 750 PRINT AT LP,G;D$( TO U32)
 760 LET LP=LP+U
 770 IF A(U3)-A(U)<U THEN GOTO 840
 780 LET D=A(U3)
 790 LET D$=N$+"  "
 800 LET J=U9
 810 GOSUB DAO
 820 PRINT AT LP,U4;"(LOS DATE = ";D$( TO U7);")"
 830 LET LP=LP+U1
 840 IF LP<U20 THEN GOTO 930
 850 LET GO=U9
 860 PRINT "\## RETURN = 0, CONT = 1 \##"
 870 GOSUB KSC
 880 IF F$="Z" AND PRIN=U THEN COPY 
 890 IF GO=U9 THEN GOTO 870
 900 GOSUB CLB
 910 IF GO=G THEN GOTO G
 920 GOSUB HD1
 930 LET D=A(U3)
 940 GOSUB INK
 950 LET QS=-U
 960 GOTO 180
 970 IF A$<>"2" THEN GOTO 2300
 980 LET CT=1.2*CA
 990 LET CB=.8*CA
\n1000 GOSUB 4890
\n1010 LET LOS=U
\n1020 IF GO=G THEN GOTO G
\n1030 GOSUB HD2
\n1040 GOSUB INK
\n1050 GOSUB CO1
\n1060 IF GO=G THEN GOTO G
\n1070 IF E9>G THEN GOTO 1140
\n1080 LET QS=-U
\n1090 LET LOS=U
\n1100 GOSUB SCH
\n1110 LET PHI=G
\n1120 GOSUB CO1
\n1130 IF GO=G THEN GOTO G
\n1140 LET FS=G
\n1150 LET F8=G
\n1160 LET T6=D
\n1170 LET R6=R5
\n1180 LET PHI=CA*R*AF
\n1190 GOSUB LP2
\n1200 IF GO=G THEN GOTO G
\n1210 IF LP=U4 THEN GOSUB LP2
\n1220 IF LOS=-U THEN GOTO 1080
\n1230 GOSUB INK
\n1240 LET D2=D
\n1250 LET E8=E9
\n1260 LET A8=A9
\n1270 LET PH2=PHI
\n1280 FOR L=U TO U5
\n1290 GOSUB CO1
\n1300 IF GO=G THEN GOTO G
\n1310 GOSUB DD
\n1320 IF DAZ>CT OR DEL>CT THEN GOTO 1340
\n1330 IF (DAZ>CB OR DEL>CB) AND INT Q=INT Q1 THEN GOTO 1540
\n1340 LET D1=DAZ
\n1350 IF DEL>DAZ THEN LET D1=DEL
\n1360 LET PHI=CA*PHI/D1
\n1370 LET D=D2
\n1380 IF INT Q=INT Q1 AND PHI>1E-5 THEN NEXT L
\n1390 LET PHI=PH2
\n1400 LET ER=G
\n1410 GOSUB CO1
\n1420 IF GO=G THEN GOTO G
\n1430 GOSUB DD
\n1440 IF DAZ>CT OR DEL>CT THEN GOTO 1470
\n1450 IF DAZ>CB OR DEL>CB THEN GOTO 1530
\n1460 IF ER=G THEN GOTO LSC
\n1470 LET ER=U
\n1480 LET D1=DAZ
\n1490 IF DEL>DAZ THEN LET D1=DEL
\n1500 LET D1=SGN (D1-CA)
\n1510 LET PHI=-HA*ABS PHI*D1
\n1520 GOTO LSC
\n1530 LET PHI=PH2
\n1540 IF E9>HA THEN GOTO 1580
\n1550 LET LOS=-U
\n1560 GOSUB SCH
\n1570 IF GO=G THEN GOTO G
\n1580 IF T6<>D THEN LET F8=F(I)*(R6-R5)/(D-T6)/CL
\n1590 LET R6=R5
\n1600 LET T6=D
\n1610 GOTO 1190
\n1620 LET DAZ=ABS (A9-A8)
\n1630 IF DAZ>180 THEN LET DAZ=360-DAZ
\n1640 LET DAZ=ABS (DAZ*(COS (E9*P0)))
\n1650 LET DEL=ABS (E9-E8)
\n1660 RETURN 
\n1670 IF INT D=D0 THEN GOTO 1760
\n1680 LET D$=N$
\n1690 LET J=U9
\n1700 GOSUB DAO
\n1710 IF GO=U2 OR GO=U7 THEN GOSUB SS
\n1720 PRINT AT LP,G;"       ----";D$( TO U7);"----          "
\n1730 LET D0=INT D
\n1740 LET LP=LP+U
\n1750 IF LP>U20 AND GO<>U2 AND GO<>U7 THEN GOTO HD2
\n1760 LET D$="       "
\n1770 LET J=U
\n1780 GOSUB TIM
\n1790 IF GO=G THEN RETURN 
\n1800 GOSUB LZ3
\n1810 GOSUB LZ2
\n1820 LET D$=D$( TO U4)+":"+D$(U5 TO )+STR$ INT R5+" "
\n1830 IF LEN D$>=U21 THEN GOTO 1860
\n1840 LET D$=D$( TO U15)+D$(U15 TO )
\n1850 GOTO 1830
\n1860 IF E(I)>=U01 THEN LET D$=D$+STR$ INT (M/P2*256)+" "
\n1870 IF E(I)<U01 THEN LET D$=D$+"--- "
\n1880 IF LEN D$>=U25 THEN GOTO 1910
\n1890 LET D$=D$( TO U21)+D$(U21 TO )
\n1900 GOTO 1880
\n1910 LET A$=STR$ (INT (F8/HUN+HA)/TEN)
\n1920 IF INT VAL A$=VAL A$ THEN LET A$=A$+".0"
\n1930 IF F8=G THEN LET A$=STR$ F(I)
\n1940 LET D$=D$+A$+" "
\n1950 IF LEN D$>=U32 THEN GOTO 1980
\n1960 LET D$=D$( TO U25)+D$(U25 TO )
\n1970 GOTO 1950
\n1980 IF GO=U2 OR GO=U7 THEN GOSUB SS
\n1990 IF GO=G THEN RETURN 
\n2000 PRINT AT LP,G;D$( TO U32)
\n2010 LET LP=LP+U
\n2020 IF LP<U21 OR GO=U2 OR GO=U7 THEN RETURN 
\n2030 IF GO=U3 THEN GOTO HD2
\n2040 LET GO=U9
\n2050 PRINT J$
\n2060 GOSUB KSC
\n2070 IF GO=U9 THEN GOTO 2060
\n2080 GOSUB CLB
\n2090 IF GO=G OR GO=U2 OR GO=U7 THEN RETURN 
\n2100 CLS 
\n2110 LET D0=INT D
\n2120 GOSUB DAO
\n2130 PRINT AT G,G;H$;"  TRACKING FROM ";D$,"  >>";C$;" VIA ";S$(I);"<<","% % %U%T%C% % % % %A%Z% %E%L% %R%A%N%G%E% %P%H%S% %D%O%P%P%L%E%R"
\n2140 LET LP=U4
\n2150 LET GO=U
\n2160 RETURN 
\n2170 IF GO=U2 AND ST=U9 THEN GOTO 2240
\n2180 PRINT AT U21,G;J$
\n2190 LET GO=U9
\n2200 GOSUB KSC
\n2210 IF GO=U9 THEN GOTO 2200
\n2220 GOSUB CLB
\n2230 IF GO<>U2 AND GO<>U7 AND GO<>G THEN LET GO=U3
\n2240 SCROLL 
\n2250 LET LP=U20
\n2260 PRINT AT U21,U31;
\n2270 RETURN 
\n2280 PRINT AT U21,G;N$;N$;" "
\n2290 RETURN 
\n2300 IF A$<>"3" THEN GOTO 2820
\n2310 GOSUB SAT
\n2320 IF GO=G THEN GOTO G
\n2330 CLS 
\n2340 PRINT H$;AT U2,G;"%N%A%M%E% ";AT U2,U7;S$(I)
\n2350 PRINT AT U18,G;L$;K$
\n2360 INPUT A$
\n2370 IF A$="" THEN GOTO 2410
\n2380 LET SV=U
\n2390 LET S$(I)=A$
\n2400 PRINT AT U2,U7;S$(I);N$
\n2410 PRINT AT U3,G;"%I%D% % % ";AT U3,U7;I$(I)
\n2420 INPUT A$
\n2430 IF A$="" THEN GOTO 2470
\n2440 LET SV=U
\n2450 LET I$(I)=A$
\n2460 PRINT AT U3,U7;I$(I);N$
\n2470 LET D=T(I)
\n2480 GOSUB DAO
\n2485 IF GO=G THEN GOTO G
\n2490 PRINT AT U4,G;"%E%P%O%C%H";AT U4,U7;D$
\n2500 INPUT D$
\n2510 IF D$="" THEN GOTO 2610
\n2520 PRINT AT U4,U7;D$;X$
\n2530 GOSUB DAY
\n2540 IF ER=G THEN GOTO 2570
\n2550 GOSUB 3250
\n2560 GOTO 2500
\n2570 LET T(I)=D
\n2580 LET SV=U
\n2590 GOSUB DAO
\n2600 PRINT AT U4,U7;D$;N$
\n2610 FOR J=U TO U8
\n2620 LET A(J)=VAL E$(J,U5 TO TEN)
\n2630 PRINT AT J+U4,G;E$(J, TO U4);"%   ";A(J);X$
\n2640 INPUT A$
\n2650 IF A$="" THEN GOTO 2690
\n2660 LET A(J)=VAL A$
\n2670 PRINT AT J+U4,U7;A(J);X$
\n2680 LET SV=U
\n2690 NEXT J
\n2700 LET N(U2,I)=A(U7)
\n2710 LET I(I)=A(U)
\n2720 LET O(I)=A(U2)
\n2730 LET E(I)=A(U3)
\n2740 LET W(I)=A(U4)
\n2750 LET M(I)=A(U5)
\n2760 LET N(U,I)=A(U6)
\n2770 LET F(I)=A(U8)
\n2780 IF A$="" THEN GOTO G
\n2790 PRINT AT U18,G;"\##";K$;N$
\n2800 INPUT A$
\n2810 GOTO G
\n2820 IF A$<>"4" THEN GOTO 3130
\n2830 CLS 
\n2840 PRINT H$,,"%C%A%L%L%   ";C$;AT U18,G;L$;K$
\n2850 INPUT A$
\n2860 IF A$="" THEN GOTO 2900
\n2870 LET C$=A$
\n2880 PRINT AT U2,U7;C$;N$
\n2890 LET SV=U
\n2900 FOR J=U9 TO 11
\n2910 LET A(J-U8)=VAL E$(J,U6 TO U9)
\n2920 PRINT AT J-U6,G;E$(J, TO U5);TAB U7;A(J-U8)
\n2930 INPUT A$
\n2940 IF A$="" THEN GOTO 2980
\n2950 LET A(J-U8)=VAL A$
\n2960 PRINT AT J-U6,U7;A(J-U8);N$
\n2970 LET SV=U
\n2980 NEXT J
\n2990 LET L9=A(U)
\n3000 LET W9=A(U2)
\n3010 LET H9=A(U3)
\n3020 LET L8=L9*P0
\n3030 LET S9=SIN L8
\n3040 LET C9=COS L8
\n3050 LET S8=SIN (-W9*P0)
\n3060 LET C8=COS (W9*P0)
\n3070 LET R9=R0*(U-F/U2+F/U2*COS (U2*L8))+H9/THO
\n3080 LET L8=ATN ((U-F)**U2*S9/C9)
\n3090 LET Z9=R9*SIN L8
\n3100 LET X9=R9*COS L8*C8
\n3110 LET Y9=R9*COS L8*S8
\n3120 GOTO 2780
\n3130 IF A$<>"5" OR SV=G THEN GOTO G
\n3140 CLS 
\n3150 PRINT H$,TAB U2;"\@@START RECORDER.....";K$
\n3160 LET A$=INKEY$
\n3170 IF A$="" THEN GOTO 3160
\n3180 IF A$="0" THEN GOTO G
\n3190 PRINT ,,TAB U3;" SAVE BEGINS IN 20 SECONDS"
\n3200 PAUSE THO
\n3210 LET SV=G
\n3220 SAVE "AMS8%1"
\n3230 GOTO G
\n3240 CLS 
\n3250 PRINT AT U6,G;D$;AT U7,G;"EPOCH INPUT ERROR. USE FORMAT:","83 105.46677538",,"   > OR <",,"15APR83 111209"
\n3260 RETURN 
\n3270 IF GO=U9 AND ST=U9 OR FS=G THEN SLOW 
\n3280 LET F$=INKEY$
\n3290 IF F$="" THEN GOTO 3410
\n3300 PRINT AT U21,U31;F$
\n3310 IF F$<>"0" THEN GOTO 3350
\n3320 LET GO=G
\n3330 LET ST=U9
\n3340 RETURN 
\n3350 IF CODE F$<38 AND CODE F$>27 THEN GOTO 3400
\n3360 IF F$="F" THEN LET FS=U
\n3370 IF F$="D" THEN LET FS=G
\n3380 IF F$="T" THEN LET D0=INF
\n3390 GOTO KSE
\n3400 LET ST=VAL F$
\n3410 IF GO<>U9 THEN GOTO KSE
\n3420 LET GO=ST
\n3430 LET ST=U9
\n3440 IF FS=U AND GO<>U9 THEN FAST 
\n3450 RETURN 
\n3460 GOSUB KSC
\n3470 IF GO=G OR K=K9 THEN RETURN 
\n3480 IF N(U,I)=G THEN LET N(U,I)=HUN
\n3490 IF N(U,I)>HUN THEN GOTO 3530
\n3500 LET N0=N(U,I)
\n3510 LET A0=(G0/N0/N0)**(U/U3)
\n3520 GOTO 3550
\n3530 LET A0=N(U,I)
\n3540 LET N0=SQR (G0/N(U,I)**U3)
\n3550 LET N=N0+U2*(D-T(I))*N(U2,I)
\n3560 LET A=(G0/N/N)**(U/U3)
\n3570 IF N<G OR A<R0 THEN GOTO 3930
\n3580 IF E(I)>=0 AND E(I)<1 THEN GOTO 3610
\n3590 PRINT "BAD ECCENTRICITY"
\n3600 GOTO 3940
\n3610 LET E2=U-E(I)**U2
\n3620 LET E1=SQR E2
\n3630 LET Q0=M(I)/360
\n3640 LET AF=U/ABS (U-SQR ABS (COS (I(I)*P0)*COS (L9*P0))/N)/A/N/360
\n3650 LET K2=9.95*(R0/A)**3.5/E2**U2
\n3660 LET S1=SIN (I(I)*P0)
\n3670 LET C1=COS (I(I)*P0)
\n3680 LET O=O(I)-(D-T(I))*K2*C1
\n3690 LET S0=SIN (O*P0)
\n3700 LET C0=COS (O*P0)
\n3710 LET W=W(I)+(D-T(I))*K2*(2.5*C1*C1-HA)
\n3720 LET S2=SIN (W*P0)
\n3730 LET C2=COS (W*P0)
\n3740 LET C(U,U)=C2*C0-S2*S0*C1
\n3750 LET C(U2,U)=C2*S0+S2*C0*C1
\n3760 LET C(U3,U)=S2*S1
\n3770 LET C(U,U2)=-S2*C0-C2*S0*C1
\n3780 LET C(U2,U2)=-S2*S0+C2*C0*C1
\n3790 LET C(U3,U2)=C2*S1
\n3800 LET G2=G(INT (T(I)/DYR)+U3)
\n3810 LET D1=D
\n3820 LET D=INT (T(I)/DYR)+U81
\n3830 LET D$=STR$ D+" 000."
\n3840 GOSUB DAY
\n3850 LET Y0=D
\n3860 LET K9=K
\n3870 LET D=D1
\n3880 LET D1=P2/U4
\n3890 IF L9<G THEN LET D1=D1*U3
\n3900 LET J=I(I)*P0
\n3910 IF J>PI/U2 THEN LET J=PI-J
\n3920 IF ACS (R0*(U+E(I)*COS (D1-W*P0))/A/(U-E(I)**U2))+J>ABS L9*P0 THEN RETURN 
\n3930 PRINT "\##PASSES CANNOT OCCUR ";K$
\n3940 SLOW 
\n3950 LET GO=G
\n3960 IF INKEY$="" THEN GOTO 3960
\n3970 RETURN 
\n3980 LET D2=D
\n3990 LET D=D+PHI
\n4000 LET Q1=Q
\n4010 LET Q=Q0+(D-T(I))*(N0+N(U2,I)*(D-T(I)))
\n4020 LET K=INT Q
\n4030 LET M=(Q-K)*P2
\n4040 RETURN 
\n4050 GOSUB KSC
\n4060 IF GO=G THEN RETURN 
\n4070 LET ER=U
\n4080 IF LEN D$<U7 THEN RETURN 
\n4090 IF CODE D$(U3)>37 THEN GOTO 4220
\n4100 FOR L=U TO LEN D$
\n4110 IF L=U3 OR L=U7 THEN GOTO 4130
\n4120 IF CODE D$(L)>U37 OR CODE D$(L)<U28 THEN RETURN 
\n4130 NEXT L
\n4140 IF D$(U7)<>"." AND D$(U7)<>" " THEN RETURN 
\n4150 LET D=INT (VAL D$(U4 TO U6)+DYR*(VAL D$(U TO U2)-U81))
\n4160 IF D$(U7)="." THEN LET D=D+VAL D$(U7 TO LEN D$)
\n4170 IF LEN D$>=U13 THEN GOTO 4190
\n4180 LET D$=D$+"000000"
\n4190 IF D$(U7)<>"." THEN LET D=D+((VAL D$(U12 TO U13)/U60+VAL D$(TEN TO 11))/U60+VAL D$(U8 TO U9))/U24
\n4200 LET ER=G
\n4210 RETURN 
\n4220 IF LEN D$<U8 THEN RETURN 
\n4230 FOR L=U TO U12
\n4240 IF D$(U3 TO U5)=M$(L,U TO U3) THEN GOTO 4270
\n4250 NEXT L
\n4260 RETURN 
\n4270 LET D$(U3 TO U5)=M$(L,U4 TO U6)
\n4280 FOR L=U TO LEN D$
\n4290 IF L=U8 THEN GOTO 4310
\n4300 IF CODE D$(L)>U37 OR CODE D$(L)<U28 THEN RETURN 
\n4310 NEXT L
\n4320 LET Y3=VAL D$(U6 TO U7)
\n4330 IF Y3<TEN THEN RETURN 
\n4340 LET F9=G
\n4350 IF Y3/U4=INT (Y3/U4) AND VAL D$(U3 TO U5)>58 THEN LET F9=U
\n4360 LET D=INT ((Y3-U81)*DYR)
\n4370 LET D=D+VAL D$(U3 TO U5)+VAL D$(U TO U2)+F9
\n4380 LET D$=D$(U2 TO LEN D$)
\n4390 GOTO 4160
\n4400 LET ER=G
\n4410 LET Y3=U81+(INT D-U01)/DYR
\n4420 LET D1=INT (DYR*(Y3-INT Y3))
\n4430 LET Y3=INT Y3
\n4440 LET F9=G
\n4450 IF Y3/U4=INT (Y3/U4) AND D1>=59 THEN LET F9=U
\n4460 LET D1=D1-F9
\n4470 FOR L=U TO U12
\n4480 IF D1>=VAL M$(L,U4 TO U6) THEN NEXT L
\n4490 LET D$=M$(L-U,U TO U3)
\n4500 IF F9=U AND D1=58 THEN LET D1=59
\n4510 LET D1=D1+U-VAL M$(L-U,U4 TO U6)
\n4520 LET D$=STR$ INT D1+D$+STR$ Y3
\n4530 IF D1<TEN THEN LET D$="0"+D$
\n4540 LET J=U9
\n4550 LET D$=D$+"       "
\n4560 LET D1=(D-INT D+5E-6)*24
\n4570 GOSUB KSC
\n4580 FOR L=J TO J+U4 STEP U2
\n4590 LET D$(L TO L+U)=STR$ INT D1
\n4600 IF D1<TEN THEN LET D$(L TO L+U)="0"+STR$ INT D1
\n4610 LET D1=(D1-INT D1)*U60
\n4620 NEXT L
\n4630 RETURN 
\n4640 CLS 
\n4650 PRINT H$,
\n4660 IF A$="1" THEN PRINT TAB U2;"%<%<%<% %S%C%H%E%D%U%L%I%N%G% % %A%C%T%I%V%I%T%Y% %>%>%>"
\n4670 IF A$="2" THEN PRINT TAB U3;"%<%<%<% %T%R%A%C%K%I%N%G% % %A%C%T%I%V%I%T%Y% %>%>%>"
\n4680 IF A$="3" THEN PRINT TAB U2;"%<%<% %K%E%P%L%E%R%I%A%N% %F%I%L%E% %U%P%D%A%T%E% %>%>%>"
\n4690 PRINT 
\n4700 FOR I=U TO U14
\n4710 PRINT CHR$ (I+U37);" = ";S$(I)
\n4720 LET A$=INKEY$
\n4730 IF A$<>"" THEN GOTO 4780
\n4740 NEXT I
\n4750 PRINT ,,"\##SELECT A-N (RETURN=0)\##";
\n4760 LET A$=INKEY$
\n4770 IF A$="" THEN GOTO 4760
\n4780 PRINT AT U19,U24;A$
\n4790 LET I=CODE A$-U37
\n4800 IF I>U14 OR I<U THEN LET GO=G
\n4810 RETURN 
\n4820 IF E9<U9H THEN LET D$=D$+"0"
\n4830 LET D$=D$+STR$ INT (E9+HA)+" "
\n4840 RETURN 
\n4850 IF A9<99.5 THEN LET D$=D$+"0"
\n4860 IF A9<U9H THEN LET D$=D$+"0"
\n4870 LET D$=D$+STR$ INT (A9+HA)+" "
\n4880 RETURN 
\n4890 LET K9=INF
\n4900 LET PHI=G
\n4910 GOSUB SAT
\n4920 IF GO=G THEN RETURN 
\n4930 PRINT ,,S$(I, TO U9);" EPOCH: ";AT U19,G;"\@@ENTER EPOCH DATE+TIME ";K$
\n4940 INPUT D$
\n4950 LET FS=U
\n4960 PRINT AT U21,17;D$
\n4970 IF D$<>"S" THEN GOTO 5000
\n4980 LET D=D3
\n4990 RETURN 
\n5000 IF D$<>"0" THEN GOTO 5030
\n5010 LET GO=G
\n5020 RETURN 
\n5030 GOSUB DAY
\n5040 IF ER<>G THEN GOTO 5070
\n5050 LET D3=D
\n5060 RETURN 
\n5070 GOSUB 3240
\n5080 SLOW 
\n5090 GOTO 4940
\n5100 LET E=M+E(I)*SIN M+HA*E(I)**U2*SIN (U2*M)
\n5110 LET M5=E-E(I)*SIN E-M
\n5120 LET R3=U-E(I)*COS E
\n5130 IF ABS M5<1E-6 THEN GOTO 5160
\n5140 LET E=E-M5/R3
\n5150 GOTO 5110
\n5160 LET X=A*(COS E-E(I))
\n5170 LET Y=A*E1*SIN E
\n5180 LET R=A*R3
\n5190 LET Z=X*C(U3,U)+Y*C(U3,U2)
\n5200 LET X0=X*C(U,U)+Y*C(U,U2)
\n5210 LET Y=X*C(U2,U)+Y*C(U2,U2)
\n5220 LET G7=(D-Y0)*G1+G2
\n5230 LET G7=(G7-INT G7)*P2
\n5240 LET X=X0*COS G7+Y*SIN G7
\n5250 LET Y=-X0*SIN G7+Y*COS G7
\n5260 RETURN 
\n5270 GOSUB CO4
\n5280 IF GO=G THEN RETURN 
\n5290 LET X8=-X5*C8*S9-Y5*S8*S9+Z5*C9
\n5300 LET Y8=Y5*C8-X5*S8
\n5310 GOSUB KSC
\n5320 IF X8<>G THEN GOTO 5360
\n5330 LET A9=90
\n5340 IF Y8<G THEN LET A9=270
\n5350 RETURN 
\n5360 LET A9=ATN (Y8/X8)/P0
\n5370 IF X8<G THEN LET A9=A9+180
\n5380 IF A9<G THEN LET A9=A9+360
\n5390 RETURN 
\n5400 GOSUB 3980
\n5410 GOSUB KSC
\n5420 IF GO=G THEN RETURN 
\n5430 GOSUB 5100
\n5440 LET X5=X-X9
\n5450 LET Y5=Y-Y9
\n5460 LET Z5=Z-Z9
\n5470 LET QS=X5*X9+Y5*Y9+Z5*Z9
\n5480 GOSUB KSC
\n5490 RETURN 
\n5500 GOSUB CO3
\n5510 IF GO=G THEN RETURN 
\n5520 LET R5=SQR (X5*X5+Y5*Y5+Z5*Z5)
\n5530 LET E9=ASN ((X5*C8*C9+Y5*S8*C9+Z5*S9)/R5)/P0
\n5540 RETURN 
\n5550 LET E8=SGN QS
\n5560 LET PHI=-SGN QS*IN*R*AF*LOS
\n5570 GOSUB INK
\n5580 GOSUB CO3
\n5590 IF GO=G THEN RETURN 
\n5600 IF SGN QS=E8 THEN GOTO 5560
\n5610 LET PHI=-HA*ABS PHI*SGN QS*LOS
\n5620 GOSUB CO4
\n5630 IF GO=G THEN RETURN 
\n5640 IF ABS E9<HA THEN RETURN 
\n5650 GOTO 5610
Scroll to Top