7 'THIS PROGRAM WILL ACCEPT TWO CARD MEAN ELEMENT SETS AND COMPUTE LOOK ANGLES FOR A WGS-72 LOCATION. INPUTS ARE(FMU,AE,FI,WE,XJ(2),XJ(3),PI,STA(1-9),MES(1-12))
8 'FMU IS EARTH CENTRAL GRAVITY CONSTANT (KM3/SEC2). AE IS EARTH EQUATORIAL RADIUS (KM)
9 'FI IS EARTH INVERSE FLATTENING. WE IS EARTH ROTATIONAL RATE (RAD/SEC)
10 'XJ(2) IS EARTH GRAVITY SECOND HARMONIC COEFFICIENT
11 'XJ(3) IS EARTH GRAVITY THIRD HARMONIC COEFFICIENT
12 'OUTPUT IS TIME (GMT),AZIMUTH(DEG),ELEVATION (DEG),RANGE (KM OR NM)
15 GOSUB 384:LOCATE 2,25:PRINT"* * * * M A I N M E N U * * * *":LOCATE 4,25:PRINT"1: DISPLAY ELEMENTS AVAILABLE":LOCATE 6,25:PRINT"2: ELEMENT SET MAINTENANCE MENU":LOCATE 8,25:PRINT"3: DISPLAY STATIONS AVAILABLE"
16 LOCATE 10,25:PRINT"4: STATION CONSTANT MAINTENANCE MENU":LOCATE 12,25:PRINT"5: COMPUTE LOOK ANGLES":LOCATE 14,25:PRINT"6: TERMINATE PROGRAM":LOCATE 20,25:PRINT"INPUT CHOICE BY NUMBER":LOCATE 20,48
17 ZM$=INKEY$: IF ZM$="1" THEN 72
18 IF ZM$="2" THEN 23
19 IF ZM$="3" THEN 247
20 IF ZM$="4" THEN 206
21 IF ZM$="5" THEN 349
22 IF ZM$="6" THEN 380 ELSE 17
23 GOSUB 384:LOCATE 2,25:PRINT"* * * * E L S E T M E N U * * * *":LOCATE 4,28:PRINT"1: ADD ELSET":LOCATE 6,28:PRINT"2: DISPLAY ELSET":LOCATE 8,28:PRINT"3: CHANGE ELSET":LOCATE 10,28:PRINT"4: PRINT DATA FILE"
24 LOCATE 12,28:PRINT"5: SORT DATA FILE (ROUTINE NOT AVAILABLE)":LOCATE 14,28:PRINT"6: SEARCH DATA FILE":LOCATE 16,28:PRINT"7: RETURN TO * MAIN MENU *":LOCATE 18,28:PRINT"8: TERMINATE PROGRAM"
25 LOCATE 20,28:PRINT"INPUT CHOICE BY NUMBER":LOCATE 20,51
83 OPEN "R",#1,"B:ELSET.FIL",119:IF LOF(1)/119<1 THEN I=1 ELSE I=LOF(1)/119+1
84 CLS:PRINT"FILE NUMBER ";I:INPUT"OBJECT NUMBER (NNNNNN)";MES(1)
85 INPUT"SATELLITE NAME (15 CHAR)";NA1$:IF LEN(NA1$)>15 THEN BEEP:GOTO 85
86 INPUT"DATE OF ELSET (YYDDD)";MES(2):INPUT"FRACTIONAL PART OF DAY (.NNNNNNNN)";MES(3):INPUT"1ST DERIVATIVE OF MEAN MOTION (.NNNNNNNN)";MES(4):INPUT"2D DERIVATIVE OF MEAN MOTION (.NNNNNNN)";MES(5)
87 INPUT"INCLINATION ANGLE (NNN.NNN)";MES(6):INPUT"LONGITUDE OF ASCENDING NODE(NNN.NNNNN)";MES(7):INPUT"ECCENTRICITY(.NNNNNNNN)";MES(8):INPUT"ARGUMENT OF PERIGEE(NNN.NNNN)";MES(9)
89 I=(LOF(1)/119)+1:FIELD #1,8 AS A$,15 AS NA$,8 AS B$,8 AS C$,8 AS D$,8 AS E$,8 AS F$,8 AS G$,8 AS H$,8 AS I$,8 AS J$,8 AS K$,8 AS L$,8 AS M$:GET #1,I
100 CLS:LOCATE 12,25:INPUT "FILE NUMBER <NNN>";Y$:CLS:IF VAL(Y$)<1 OR VAL(Y$)>LOF(1)/119 THEN BEEP:GOTO 100
101 I=VAL(Y$)
102 CLS:FIELD #1,8 AS A$,15 AS NA$,8 AS B$,8 AS C$,8 AS D$,8 AS E$,8 AS F$,8 AS G$,8 AS H$,8 AS I$,8 AS J$,8 AS K$,8 AS L$,8 AS M$:GET #1,I
103 IF CVD(I$)=VAL(Y$) THEN 105
104 PRINT"ITEM NOT FOUND":GOTO 109
105 PRINT"FILE NUMBER: ";CVD(I$):PRINT"OBJECT NUMBER/NAME: ";CVD(A$);"/";NA$:MES(1)=CVD(A$):PRINT"DATE OF ELSET: ";CVD(B$):MES(2)=CVD(B$):PRINT"FRACTIONAL PART OF DAY: ";CVD(C$):MES(3)=CVD(C$)
106 PRINT"1ST DERIVATIVE OF MEAN MOTION: ";CVD(D$):MES(4)=CVD(D$):PRINT"2ND DERIVATIVE OF MEAN MOTION: ";CVD(E$):MES(5)=CVD(E$):PRINT"INCLINATION ANGLE: ";CVD(F$):MES(6)=CVD(F$):PRINT"LONGITUDE OF ASCENDING NODE: ";CVD(G$):MES(7)=CVD(G$)
108 Q$="":IF ZM$="5" THEN PRINT:PRINT"IF CORRECT ELSET PRESS <C>ONTINUE"
109 PRINT:PRINT "<F>ORWARD THRU DATA BASE---<B>ACKWARD THRU DATA BASE---<M>ODIFY CURRENT FILE <S>EARCH DATA BASE---------<R>ETURN TO ELSET MENU------<J>UMP TO MAIN MENU
123 CLS:LOCATE 12,25:INPUT"FILE NUMBER ";Y$:IF VAL(Y$)<1 OR VAL(Y$)>LOF(1)/119 THEN BEEP:GOTO 123
124 I=VAL(Y$)
125 CLS:FIELD #1,8 AS A$,15 AS NA$,8 AS B$,8 AS C$,8 AS D$,8 AS E$,8 AS F$,8 AS G$,8 AS H$,8 AS I$,8 AS J$,8 AS K$,8 AS L$,8 AS M$:GET #1,I
126 CLS:LOCATE 7,12:PRINT"REPLY WITH <ENTER> IF YOU DO NOT WISH TO CHANGE AN ITEM.":LOCATE 9,20:PRINT"REPLY WITH <D> IF ITEM IS TO BE DELETED.":PRINT:LOCATE 11,26:PRINT"OTHERWISE ENTER THE NEW DATA.":FOR II=1 TO 3500:NEXT II:CLS
127 PRINT"FILE NUMBER: ";CVD(I$):A1=CVD(A$):PRINT"OBJECT NUMBER (NNNNNN): ";A1;:INPUT A1$
128 IF A1$="D" THEN GOSUB 388:GOTO 167
129 IF A1$="" THEN A1=CVD(A$):GOTO 131
130 A1=VAL(A1$)
131 NA1$=NA$:PRINT"SATELLITE NAME (15 CHAR): ";NA1$;:INPUT NA1$
132 IF NA1$="" THEN NA1$=NA$:GOTO 134
133 IF LEN(NA1$)>15 THEN BEEP:GOTO 131
134 B1=CVD(B$):PRINT"DATE OF ELSET (YYDDDD): ";B1;:INPUT B1$
135 IF B1$="" THEN B1=CVD(B$):GOTO 137
136 B1=VAL(B1$)
137 C1=CVD(C$):PRINT"FRACTIONAL PART OF DAY (.NNNNNNNN): ";C1;:INPUT C1$
138 IF C1$="" THEN C1=CVD(C$):GOTO 140
139 C1=VAL(C1$)
140 D1=CVD(D$):PRINT"1ST DERIVATIVE OF MEAN MOTION (.NNNNNNNN): ";D1;:INPUT D1$
141 IF D1$="" THEN D1=CVD(D$):GOTO 143
142 D1=VAL(D1$)
143 E1=CVD(E$):PRINT"2ND DERIVATIVE OF MEAN MOTION (.NNNNNNNN): ";E1;:INPUT E1$
174 LPRINT TAB(30)"ELEMENT SET DATA FILE":PRINT TAB(30)"ELEMENT SET DATA FILE":LPRINT TAB(30)"******* *** **** ****":LPRINT:LPRINT:PRINT TAB(30)"******* *** **** ****"
175 IF H=1 THEN H=0:GOTO 188
176 OPEN "R",#1,"B:ELSET.FIL",119
177 FOR I=1 TO LOF(1)/119:FIELD #1,8 AS A$,15 AS NA$,8 AS B$,8 AS C$,8 AS D$,8 AS E$,8 AS F$,8 AS G$,8 AS H$,8 AS I$,8 AS J$,8 AS K$,8 AS L$,8 AS M$:GET #1,I
179 LPRINT TAB(12)"DATE OF ELSET: ";CVD(B$):LOCATE 12,12:PRINT"DATE OF ELSET: ";CVD(B$):LPRINT TAB(12)"FRACTIONAL PART OF DAY: ";CVD(C$):LOCATE 13,12:PRINT"FRACTIONAL PART OF DAY: ";CVD(C$)
180 LPRINT TAB(12)"1ST DERIVATIVE OF MEAN MOTION: ";CVD(D$):LOCATE 14,12:PRINT"1ST DERIVATIVE OF MEAN MOTION: ";CVD(D$)
181 LPRINT TAB(12)"2ND DERIVATIVE OF MEAN MOTION: ";CVD(E$):LOCATE 15,12:PRINT"2ND DERIVATIVE OF MEAN MOTION: ";CVD(E$):LPRINT TAB(12)"INCLINATION ANGLE: ";CVD(F$):LOCATE 16,12:PRINT"INCLINATION ANGLE: ";CVD(F$)
182 LPRINT TAB(12)"LONGITUDE OF ASCENDING NODE(RAN): ";CVD(G$):LOCATE 17,12:PRINT"LONGITUDE OF ASCENDING NODE(RAN): ";CVD(G$)
183 LPRINT TAB(12)"ECCENTRICITY: ";CVD(H$):LOCATE 18,12:PRINT"ECCENTRICITY: ";CVD(H$):LPRINT TAB(12)"ARGUMENT OF PERIGEE: ";CVD(J$):LOCATE 19,12:PRINT"ARGUMENT OF PERIGEE: ";CVD(J$)
192 GOSUB 384:LOCATE 4,25:PRINT"* * * * ELSET SEARCH * * * *":LOCATE 6,25:PRINT"BY OBJECT NUMBER OR SATELLITE NAME":LOCATE 8,25:INPUT "OBJECT NUMBER (NNNNNN): ";A1$
193 LOCATE 10,25:INPUT"SATELLITE NAME (MAX 15 CHAR): ";SN$:IF A1$ ="" AND SN$="" THEN CLOSE:GOTO 23:IF LEN(SN$)>15 THEN BEEP:GOTO 193
194 OPEN "R",#1,"B:ELSET.FIL",119
195 FOR I=1 TO LOF(1)/119:FIELD #1,8 AS A$,15 AS NA$,8 AS B$,8 AS C$,8 AS D$,8 AS E$,8 AS F$,8 AS G$,8 AS H$,8 AS I$,8 AS J$,8 AS K$,8 AS L$,8 AS M$:GET #1,I
197 LOCATE 14,25:PRINT"OBJECT ";A1$;" ";SN$" NOT FOUND!":BEEP:LOCATE 16,28:PRINT"<R>ETURN TO MENU":LOCATE 18,28:PRINT"<A>NOTHER":LOCATE 18,38
198 QQ$=INKEY$
199 IF QQ$="A" THEN CLOSE:GOTO 192
200 IF QQ$="R" THEN 23 ELSE 198
201 IF A1$="" THEN 204
202 IF CVD(A$)=VAL(A1$) THEN Y$=STR$(I):GOTO 101
203 IF SN$="" THEN RETURN
204 IF INSTR(NA$,SN$)>0 THEN Y$=STR$(I):GOTO 101
205 RETURN
206 GOSUB 384:LOCATE 2,13:PRINT"* * * * S T A T I O N C O N S T A N T M E N U * * * *":LOCATE 4,28:PRINT"1: ADD STATION":LOCATE 6,28:PRINT"2: DISPLAY STATION":LOCATE 8,28:PRINT"3: CHANGE STATION"
207 LOCATE 10,28:PRINT"4: PRINT DATA FILE":LOCATE 12,28:PRINT"5: SORT DATA FILE (ROUTINE NOT AVAILABLE)":LOCATE 14,28:PRINT"6: SEARCH DATA FILE":LOCATE 16,28:PRINT"7: RETURN TO * MAIN MENU *"
208 LOCATE 18,28:PRINT"8: TERMINATE PROGRAM":LOCATE 20,28:PRINT"INPUT CHOICE BY NUMBER":LOCATE 20,51
209 ZZ$=INKEY$: IF ZZ$="1" THEN 258
210 IF ZZ$="2" THEN 271
211 IF ZZ$="3" THEN 293
212 IF ZZ$="4" THEN 331
213 IF ZZ$="5" THEN 206 'CHANGE WHEN ROUTINE DEBUGGED
260 CLS:PRINT"FILE NUMBER ";I:INPUT"STATION (XXXXXXXX)";A1$:INPUT"LATITUDE (DD,MM,SS.SSSSS)";SC(1),SC(2),SC(3):INPUT"LONGITUDE (DD,MM,SS.SSSSS)";SC(4),SC(5),SC(6)
261 INPUT"HEIGHT ABOVE SPHERIOD (METERS)";SC(7):INPUT"DEFLECTION OF VERTICAL IN MERIDAN (DEG)";SC(8):INPUT"DEFLECTION OF VERTICAL IN PRIME (DEG)";SC(9)
262 I=(LOF(1)/88)+1:FIELD #1,8 AS A$,8 AS B$,8 AS C$,8 AS D$,8 AS E$,8 AS F$,8 AS G$,8 AS H$,8 AS I$,8 AS J$,8 AS K$:GET #1,I
279 PRINT"HEIGHT ABOVE SPHERIOD: ";CVD(H$);" METERS":SC(7)=CVD(H$):PRINT"DEFLECTION OF VERTICAL IN MERIDAN: ";CVD(J$);" DEG.":SC(8)=CVD(J$):PRINT"DEFLECTION OF VERTICAL IN PRIME: ";CVD(K$);" DEG.":SC(9)=CVD(K$)
280 Q$="":IF ZM$="5" THEN PRINT:PRINT"IF CORRECT STATION PRESS <C>ONTINUE"
281 PRINT:PRINT "<F>ORWARD THRU DATA BASE---<B>ACKWARD THRU DATA BASE---<M>ODIFY CURRENT FILE <S>EARCH DATA BASE---------<R>ETURN TO STATION MENU----<J>UMP TO MAIN MENU
295 IF VAL(Y$)<1 OR VAL(Y$)>LOF(1)/88 THEN BEEP:GOTO 294
296 I=VAL(Y$)
297 CLS:FIELD #1,8 AS A$,8 AS B$,8 AS C$,8 AS D$,8 AS E$,8 AS F$,8 AS G$,8 AS H$,8 AS I$,8 AS J$,8 AS K$:GET #1,I
298 CLS:LOCATE 7,12:PRINT"REPLY WITH <ENTER> IF YOU DO NOT WISH TO CHANGE AN ITEM.":LOCATE 9,20:PRINT"REPLY WITH <D> IF ITEM IS TO BE DELETED.":PRINT:LOCATE 11,26:PRINT"OTHERWISE ENTER THE NEW DATA.":FOR II=1 TO 3500:NEXT II:CLS
341 LPRINT TAB(12)"DEFLECTION OF VERTICAL IN MERIDAN: ";CVD(J$);" DEG":LOCATE 15,12:PRINT"DEFLECTION OF VERTICAL IN MERIDAN: ";CVD(J$);" DEG"
342 LPRINT TAB(12)"DEFLECTION OF VERTICAL IN PRIME: ";CVD(K$);" DEG":LOCATE 16,12:PRINT"DEFLECTION OF VERTICAL IN PRIME: ";CVD(K$);" DEG":LPRINT:LPRINT:LC=LC+9
343 IF LC=>56 THEN LPRINT CHR$(12):H=1:CLS:GOTO 332
349 GOSUB 384:LOCATE 4,25:PRINT"* * * * STATION SEARCH * * * *":LOCATE 6,25:INPUT "STATION: ";A1$:IF A1$="" THEN 206
350 OPEN "R",#1,"B:STATION.FIL",88
351 FOR I=1 TO LOF(1)/88:FIELD #1,8 AS A$,8 AS B$,8 AS C$,8 AS D$,8 AS E$,8 AS F$,8 AS G$,8 AS H$,8 AS I$,8 AS J$,8 AS K$:GET #1,I:LOCATE 8,25:PRINT"SEARCHING FILE: ";I:GOSUB 355:NEXT I:CLOSE
352 LOCATE 10,25:PRINT"STATION ";A1$;" NOT FOUND!":BEEP:LOCATE 16,28:PRINT"<R>ETURN TO MENU":LOCATE 18,28:PRINT"<A>NOTHER":LOCATE 18,38
380 CLOSE:CLS:LOCATE 9,24:PRINT"ALL FILES CLOSED, PROGRAM TERMINATED.":LOCATE 11,20:PRINT"REMOVE DISKETTES BEFORE POWERING DOWN SYSTEM!!!!":LOCATE 1,1:SYSTEM