home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 121.SEM.BAS < prev    next >
BASIC Source File  |  1986-03-26  |  19KB  |  270 lines

  1. 36 '**********************************************************
  2. 37 '*                  SORT ROUTINE                          *
  3. 38 '**********************************************************
  4. 39 'SORT ROUTINE GOES HERE.
  5. 69 '**********************************************************
  6. 70 '*           ELEMENT SETS AVAILABLE ROUTINE               *
  7. 71 '**********************************************************
  8. 72 CLS:LOCATE 2,25:PRINT"* * * ELEMENT SETS AVAILABLE * * *":PRINT:OPEN "R",#1,"B:ELSET.FIL",119:ZN$=""
  9. 73 FOR I=1 TO LOF(1)/119:FIELD #1,8 AS Z1$,15 AS NA$,56 AS Z2$,8 AS I$,32 AS Z3$:GET #1,I:PRINT CVD(I$);"-";CVD(Z1$);"/";NA$:Y1=CSRLIN
  10. 74 IF Y1=>18 THEN GOSUB 76:LOCATE 4,1
  11. 75 NEXT I:CLOSE:GOTO 78
  12. 76 LOCATE 20,25:INPUT"<ENTER> TO CONTINUE";ZN$
  13. 77 ZN$=INKEY$:IF ZN$="" THEN RETURN ELSE 77
  14. 78 LOCATE 20,20:INPUT"<ENTER> TO RETURN TO MAIN MENU";ZN$
  15. 79 ZN$=INKEY$:IF ZN$="" THEN 15 ELSE 79
  16. 80 '**********************************************************
  17. 81 '*               ADD ELSET ROUTINE                        *
  18. 82 '**********************************************************
  19. 83 OPEN "R",#1,"B:ELSET.FIL",119:IF LOF(1)/119<1 THEN I=1 ELSE I=LOF(1)/119+1
  20. 84 CLS:PRINT"FILE NUMBER ";I:INPUT"OBJECT NUMBER (NNNNNN)";MES(1)
  21. 85 INPUT"SATELLITE NAME (15 CHAR)";NA1$:IF LEN(NA1$)>15 THEN BEEP:GOTO 85
  22. 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)
  23. 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)
  24. 88 INPUT"MEAN ANOMALY(NNN.NNNN)";MES(10):INPUT"MEAN MOTION(N.NNNNNNNNN)";MES(11):INPUT"REV NUMBER(NNNNNNNN)";MES(12)
  25. 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
  26. 90 LSET A$=MKD$(MES(1)): LSET NA$=NA1$: LSET B$=MKD$(MES(2)): LSET C$=MKD$(MES(3)): LSET D$=MKD$(MES(4)): LSET E$=MKD$(MES(5)): LSET F$=MKD$(MES(6)): LSET G$=MKD$(MES(7)): LSET H$=MKD$(MES(8)): LSET I$=MKD$(I): LSET J$=MKD$(MES(9))
  27. 91 LSET K$=MKD$(MES(10)): LSET L$=MKD$(MES(11)): LSET M$=MKD$(MES(12))
  28. 92 PUT #1,I:PRINT: PRINT"ANOTHER ? <Y OR N>"
  29. 93 AN$=INKEY$: IF AN$="N" THEN 95
  30. 94 IF AN$="Y" THEN 84 ELSE 93
  31. 95 CLOSE: GOTO 23
  32. 96 '**********************************************************
  33. 97 '*              DISPLAY ELSET ROUTINE                     *
  34. 98 '**********************************************************
  35. 99 OPEN "R",#1,"B:ELSET.FIL",119
  36. 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
  37. 101 I=VAL(Y$)
  38. 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
  39. 103 IF CVD(I$)=VAL(Y$) THEN 105
  40. 104 PRINT"ITEM NOT FOUND":GOTO 109
  41. 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$)
  42. 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$)
  43. 107 PRINT"ECCENTRICITLY: ";CVD(H$):MES(8)=CVD(H$):PRINT"ARGUMENT OF PERIGEE: ";CVD(J$):MES(9)=CVD(J$):PRINT"MEAN ANOMALY: ";CVD(K$):MES(10)=CVD(K$):PRINT"MEAN MOTION: ";CVD(L$):MES(11)=CVD(L$):PRINT"REV NUMBER: ";CVD(M$):MES(12)=CVD(M$)
  44. 108 Q$="":IF ZM$="5" THEN PRINT:PRINT"IF CORRECT ELSET PRESS <C>ONTINUE"
  45. 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
  46. 110 Q$=INKEY$
  47. 111 IF Q$="C" THEN ZM$="":CLOSE:GOTO 390
  48. 112 IF Q$="F" THEN GOSUB 370:GOTO 101
  49. 113 IF Q$="B" THEN GOSUB 375:GOTO 101
  50. 114 IF Q$="R" THEN 118
  51. 115 IF Q$="S" THEN CLOSE:GOTO 192
  52. 116 IF Q$="J" THEN CLOSE:GOTO 15
  53. 117 IF Q$="M" THEN 125 ELSE 110
  54. 118 CLOSE:GOTO 23
  55. 119 '*********************************************************
  56. 120 '*             CHANGE ELSET ROUTINE                      *
  57. 121 '*********************************************************
  58. 122 OPEN "R",#1,"B:ELSET.FIL",119
  59. 123 CLS:LOCATE 12,25:INPUT"FILE NUMBER ";Y$:IF VAL(Y$)<1 OR VAL(Y$)>LOF(1)/119 THEN BEEP:GOTO 123
  60. 124 I=VAL(Y$)
  61. 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
  62. 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
  63. 127 PRINT"FILE NUMBER: ";CVD(I$):A1=CVD(A$):PRINT"OBJECT NUMBER (NNNNNN): ";A1;:INPUT A1$
  64. 128 IF A1$="D" THEN GOSUB 388:GOTO 167
  65. 129 IF A1$="" THEN A1=CVD(A$):GOTO 131
  66. 130 A1=VAL(A1$)
  67. 131 NA1$=NA$:PRINT"SATELLITE NAME (15 CHAR): ";NA1$;:INPUT NA1$
  68. 132 IF NA1$="" THEN NA1$=NA$:GOTO 134
  69. 133 IF LEN(NA1$)>15 THEN BEEP:GOTO 131
  70. 134 B1=CVD(B$):PRINT"DATE OF ELSET (YYDDDD): ";B1;:INPUT B1$
  71. 135 IF B1$="" THEN B1=CVD(B$):GOTO 137
  72. 136 B1=VAL(B1$)
  73. 137 C1=CVD(C$):PRINT"FRACTIONAL PART OF DAY (.NNNNNNNN): ";C1;:INPUT C1$
  74. 138 IF C1$="" THEN C1=CVD(C$):GOTO 140
  75. 139 C1=VAL(C1$)
  76. 140 D1=CVD(D$):PRINT"1ST DERIVATIVE OF MEAN MOTION (.NNNNNNNN): ";D1;:INPUT D1$
  77. 141 IF D1$="" THEN D1=CVD(D$):GOTO 143
  78. 142 D1=VAL(D1$)
  79. 143 E1=CVD(E$):PRINT"2ND DERIVATIVE OF MEAN MOTION (.NNNNNNNN): ";E1;:INPUT E1$
  80. 144 IF E1$="" THEN E1=CVD(E$):GOTO 146
  81. 145 E1=VAL(E1$)
  82. 146 F1=CVD(F$):PRINT"INCLINATION ANGLE (NNN.NNN): ";F1;:INPUT F1$
  83. 147 IF F1$="" THEN F1=CVD(F$):GOTO 149
  84. 148 F1=VAL(F1$)
  85. 149 G1=CVD(G$):PRINT"LONGITUDE OF ASCENDING NODE (NNN.NNNNN): ";G1;:INPUT G1$
  86. 150 IF G1$="" THEN G1=CVD(G$):GOTO 152
  87. 151 G1=VAL(G1$)
  88. 152 H1=CVD(H$):PRINT"ECCENTRICITY (.NNNNNNNN): ";H1;:INPUT H1$
  89. 153 IF H1$="" THEN H1=CVD(H$):GOTO 155
  90. 154 H1=VAL(H1$)
  91. 155 J1=CVD(J$):PRINT"ARGUMENT OF PERIGEE (NNN.NNNN): ";J1;:INPUT J1$
  92. 156 IF J1$="" THEN J1=CVD(J$):GOTO 158
  93. 157 J1=VAL(J1$)
  94. 158 K1=CVD(K$):PRINT"MEAN ANOMALY (NNN.NNNN): ";K1;:INPUT K1$
  95. 159 IF K1$="" THEN K1=CVD(K$):GOTO 161
  96. 160 K1=VAL(K1$)
  97. 161 L1=CVD(L$):PRINT"MEAN MOTION (N.NNNNNNNN): ";L1;:INPUT L1$
  98. 162 IF L1$="" THEN L1=CVD(L$):GOTO 164
  99. 163 L1=VAL(L1$)
  100. 164 M1=CVD(M$):PRINT"REV NUMBER (NNNNNNNN): ";M1;:INPUT M1$
  101. 165 IF M1$="" THEN M1=CVD(M$):GOTO 167
  102. 166 M1=VAL(M1$)
  103. 167 LSET A$=MKD$(A1): LSET NA$=NA1$: LSET B$=MKD$(B1): LSET C$=MKD$(C1): LSET D$=MKD$(D1): LSET E$=MKD$(E1): LSET F$=MKD$(F1): LSET G$=MKD$(G1): LSET H$=MKD$(H1): LSET I$=MKD$(I): LSET J$=MKD$(J1)
  104. 168 LSET K$=MKD$(K1):LSET L$=MKD$(L1): LSET M$=MKD$(M1):PUT #1,I:GOTO 102
  105. 169 '*********************************************************
  106. 170 '*                 PRINT ROUTINE                         *
  107. 171 '*********************************************************
  108. 172 CLS:PN=0:H=0 'H=1 CAUSES PAGE HEADER TO BE PRINTED
  109. 173 LC=13:PN=PN+1:LPRINT:LPRINT:LPRINT:LPRINT:LPRINT TAB(51)"PAGE "PN:PRINT TAB(51)"PAGE "PN:LPRINT TAB(51)"DATE ";DATE$:LPRINT TAB(51)"TIME ";TIME$:LPRINT:LPRINT:PRINT TAB(51)"DATE ";DATE$:PRINT TAB(51)"TIME ";TIME$:PRINT:PRINT
  110. 174 LPRINT TAB(30)"ELEMENT SET DATA FILE":PRINT TAB(30)"ELEMENT SET DATA FILE":LPRINT TAB(30)"******* *** **** ****":LPRINT:LPRINT:PRINT TAB(30)"******* *** **** ****"
  111. 175 IF H=1 THEN H=0:GOTO 188
  112. 176 OPEN "R",#1,"B:ELSET.FIL",119
  113. 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
  114. 178 LPRINT TAB(12)"FILE NUMBER: ";CVD(I$):LOCATE 10,12:PRINT"FILE NUMBER: ";CVD(I$):LPRINT TAB(12)"OBJECT NUMBER/NAME: ";CVD(A$);"/";NA$:LOCATE 11,12:PRINT"OBJECT NUMBER/NAME: ";CVD(A$);"/";NA$
  115. 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$)
  116. 180 LPRINT TAB(12)"1ST DERIVATIVE OF MEAN MOTION: ";CVD(D$):LOCATE 14,12:PRINT"1ST DERIVATIVE OF MEAN MOTION: ";CVD(D$)
  117. 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$)
  118. 182 LPRINT TAB(12)"LONGITUDE OF ASCENDING NODE(RAN): ";CVD(G$):LOCATE 17,12:PRINT"LONGITUDE OF ASCENDING NODE(RAN): ";CVD(G$)
  119. 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$)
  120. 184 LPRINT TAB(12)"MEAN ANOMALY: ";CVD(K$):LOCATE 20,12:PRINT"MEAN ANOMALY: ";CVD(K$)
  121. 185 LPRINT TAB(12)"MEAN MOTION: ";CVD(L$):LOCATE 21,12:PRINT"MEAN MOTION: ";CVD(L$):LPRINT TAB(12)"REV NUMBER: ";CVD(M$):LOCATE 22,12:PRINT"REV NUMBER: ";CVD(M$):LPRINT:LPRINT:LC=LC+15
  122. 186 IF LC=>56 THEN LPRINT CHR$(12):H=1:CLS:GOTO 173
  123. 187 CLS
  124. 188 NEXT I:LPRINT CHR$(12):CLOSE:GOTO 23
  125. 189 '*********************************************************
  126. 190 '*              ELSET SEARCH ROUTINE                     *
  127. 191 '*********************************************************
  128. 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$
  129. 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
  130. 194 OPEN "R",#1,"B:ELSET.FIL",119
  131. 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
  132. 196 LOCATE 12,25:PRINT"SEARCHING FILE: ";I:GOSUB 201:NEXT I:CLOSE
  133. 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
  134. 198 QQ$=INKEY$
  135. 199 IF QQ$="A" THEN CLOSE:GOTO 192
  136. 200 IF QQ$="R" THEN 23 ELSE 198
  137. 201 IF A1$="" THEN 204
  138. 202 IF CVD(A$)=VAL(A1$) THEN Y$=STR$(I):GOTO 101
  139. 203 IF SN$="" THEN RETURN
  140. 204 IF INSTR(NA$,SN$)>0 THEN Y$=STR$(I):GOTO 101
  141. 205 RETURN
  142. 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"
  143. 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 *"
  144. 208 LOCATE 18,28:PRINT"8: TERMINATE PROGRAM":LOCATE 20,28:PRINT"INPUT CHOICE BY NUMBER":LOCATE 20,51
  145. 209 ZZ$=INKEY$: IF ZZ$="1" THEN 258
  146. 210 IF ZZ$="2" THEN 271
  147. 211 IF ZZ$="3" THEN 293
  148. 212 IF ZZ$="4" THEN 331
  149. 213 IF ZZ$="5" THEN 206 'CHANGE WHEN ROUTINE DEBUGGED
  150. 214 IF ZZ$="6" THEN 349
  151. 215 IF ZZ$="7" THEN 15
  152. 216 IF ZZ$="8" THEN 380 ELSE 209
  153. 217 '********************************************************
  154. 218 '*                 SORT ROUTINE                         *
  155. 219 '********************************************************
  156. 220 'SORT ROUTINE GOES HERE.
  157. 244 '********************************************************
  158. 245 '*           STATIONS AVAILABLE ROUTINE                 *
  159. 246 '********************************************************
  160. 247 CLS:LOCATE 2,25:PRINT"* * * STATIONS AVAILABLE * * *":PRINT:OPEN "R",#1,"B:STATION.FIL",88
  161. 248 FOR I=1 TO LOF(1)/88:FIELD #1,8 AS Z1$,56 AS Z2$,8 AS I$,16 AS Z3$:GET #1,I:PRINT CVD(I$);"-";Z1$,:Y1=CSRLIN
  162. 249 IF Y1=>18 THEN GOSUB 251:LOCATE 4,1
  163. 250 NEXT I:CLOSE:GOTO 253
  164. 251 LOCATE 20,25:INPUT"<ENTER> TO CONTINUE";ZN$
  165. 252 ZN$=INKEY$:IF ZN$="" THEN RETURN ELSE 252
  166. 253 LOCATE 20,20:INPUT"<ENTER> TO RETURN TO MAIN MENU";ZN$
  167. 254 ZN$=INKEY$:IF ZN$="" THEN 15 ELSE 254
  168. 255 '********************************************************
  169. 256 '*              ADD STATION ROUTINE                     *
  170. 257 '********************************************************
  171. 258 OPEN "R",#1,"B:STATION.FIL",88
  172. 259 IF LOF(1)/88<1 THEN I=1 ELSE I=LOF(1)/88+1
  173. 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)
  174. 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)
  175. 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
  176. 263 LSET A$=A1$: LSET B$=MKD$(SC(1)): LSET C$=MKD$(SC(2)): LSET D$=MKD$(SC(3)): LSET E$=MKD$(SC(4)): LSET F$=MKD$(SC(5)): LSET G$=MKD$(SC(6)): LSET H$=MKD$(SC(7)): LSET I$=MKD$(I): LSET J$=MKD$(SC(8)): LSET K$=MKD$(SC(9))
  177. 264 PUT #1,I:PRINT: PRINT"ANOTHER ? <Y OR N>"
  178. 265 AN$=INKEY$: IF AN$="N" THEN 267
  179. 266 IF AN$="Y" THEN 259 ELSE 265
  180. 267 CLOSE: GOTO 15
  181. 268 '********************************************************
  182. 269 '*            DISPLAY STATION ROUTINE                   *
  183. 270 '********************************************************
  184. 271 OPEN "R",#1,"B:STATION.FIL",88
  185. 272 CLS:LOCATE 12,25:INPUT "FILE NUMBER <NNN>";Y$:CLS
  186. 273 IF VAL(Y$)<1 OR VAL(Y$)>LOF(1)/88 THEN BEEP:GOTO 272
  187. 274 I=VAL(Y$)
  188. 275 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
  189. 276 IF CVD(I$)=VAL(Y$) THEN 278
  190. 277 PRINT"ITEM NOT FOUND":GOTO 281
  191. 278 PRINT"FILE NUMBER: ";CVD(I$):PRINT"STATION: ";A$:B$(AQ!)=A$:PRINT"LATITUDE: ";CVD(B$);CVD(C$);CVD(D$):SC(1)=CVD(B$):SC(2)=CVD(C$):SC(3)=CVD(D$):PRINT"LONGITUDE: ";CVD(E$);CVD(F$);CVD(G$):SC(4)=CVD(E$):SC(5)=CVD(F$):SC(6)=CVD(G$)
  192. 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$)
  193. 280 Q$="":IF ZM$="5" THEN PRINT:PRINT"IF CORRECT STATION PRESS <C>ONTINUE"
  194. 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
  195. 282 Q$=INKEY$:IF Q$="C" THEN CLOSE:GOTO 192
  196. 283 IF Q$="F" THEN GOSUB 360:GOTO 274
  197. 284 IF Q$="B" THEN GOSUB 365:GOTO 274
  198. 285 IF Q$="R" THEN 289
  199. 286 IF Q$="S" THEN CLOSE:GOTO 349
  200. 287 IF Q$="J" THEN CLOSE:GOTO 15
  201. 288 IF Q$="M" THEN 297 ELSE 282
  202. 289 CLOSE:GOTO 206
  203. 290 '********************************************************
  204. 291 '*            CHANGE STATION ROUTINE                    *
  205. 292 '********************************************************
  206. 293 OPEN "R",#1,"B:STATION.FIL",88
  207. 294 CLS:LOCATE 12,25:INPUT"FILE NUMBER ";Y$
  208. 295 IF VAL(Y$)<1 OR VAL(Y$)>LOF(1)/88 THEN BEEP:GOTO 294
  209. 296 I=VAL(Y$)
  210. 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
  211. 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
  212. 299 PRINT"FILE NUMBER: ";CVD(I$):A1$=A$:PRINT"STATION (XXXXXXXX): ";A1$;:INPUT A1$
  213. 300 IF A1$="D" THEN GOSUB 388:GOTO 326
  214. 301 IF A1$="" THEN A1$=A$:GOTO 303
  215. 302 A1=VAL(A1$)
  216. 303 B1=CVD(B$):C1=CVD(C$):D1=CVD(D$):PRINT"LATITUDE (DD,MM,SS.SSSSS): ";B1;C1;D1:INPUT "DEG ";B1$:INPUT "MIN ";C1$:INPUT "SEC ";D1$
  217. 304 IF B1$="" THEN B1=CVD(B$):GOTO 306
  218. 305 B1=VAL(B1$)
  219. 306 IF C1$="" THEN C1=CVD(C$):GOTO 308
  220. 307 C1=VAL(C1$)
  221. 308 IF D1$="" THEN D1=CVD(D$):GOTO 310
  222. 309 D1=VAL(D1$)
  223. 310 E1=CVD(E$):F1=CVD(F$):G1=CVD(G$):PRINT"LONGITUDE (DD,MM,SS.SSSSS): ";E1;F1;G1:INPUT "DEG ";E1$:INPUT "MIN ";F1$:INPUT "SEC ";G1$
  224. 311 IF E1$="" THEN E1=CVD(E$):GOTO 313
  225. 312 E1=VAL(E1$)
  226. 313 IF F1$="" THEN F1=CVD(F$):GOTO 315
  227. 314 F1=VAL(F1$)
  228. 315 IF G1$="" THEN G1=CVD(G$):GOTO 317
  229. 316 G1=VAL(G1$)
  230. 317 H1=CVD(H$):PRINT"HEIGHT ABOVE SPHERIOD (METERS): ";H1;:INPUT H1$
  231. 318 IF H1$="" THEN H1=CVD(H$):GOTO 320
  232. 319 H1=VAL(H1$)
  233. 320 J1=CVD(J$):PRINT"DEFLECTION OF VERTICAL IN MERIDAN (DEG): ";J1;:INPUT J1$
  234. 321 IF J1$="" THEN J1=CVD(J$):GOTO 323
  235. 322 J1=VAL(J1$)
  236. 323 K1=CVD(K$):PRINT"DEFLECTION OF VERTICAL IN PRIME (DEG): ";K1;:INPUT K1$
  237. 324 IF K1$="" THEN K1=CVD(K$):GOTO 326
  238. 325 K1=VAL(K1$)
  239. 326 LSET A$=A1$:LSET B$=MKD$(B1):LSET C$=MKD$(C1):LSET D$=MKD$(D1):LSET E$=MKD$(E1):LSET F$=MKD$(F1):LSET G$=MKD$(G1):LSET H$=MKD$(H1):LSET I$=MKD$(I):LSET J$=MKD$(J1):LSET K$=MKD$(K1)
  240. 327 PUT #1,I:GOTO 275
  241. 328 '********************************************************
  242. 329 '*                PRINT ROUTINE                         *
  243. 330 '********************************************************
  244. 331 CLS:PN=0:H=0 'H=1 CAUSES PAGE HEADER TO BE PRINTED
  245. 332 LC=13:PN=PN+1:LPRINT:LPRINT:LPRINT:LPRINT:LPRINT TAB(51)"PAGE "PN:PRINT TAB(51)"PAGE "PN:LPRINT TAB(51)"DATE ";DATE$:LPRINT TAB(51)"TIME ";TIME$:LPRINT:LPRINT:PRINT TAB(51)"DATE ";DATE$:PRINT TAB(51)"TIME ";TIME$:PRINT:PRINT
  246. 333 LPRINT TAB(30)"STATION CONSTANT DATA FILE":PRINT TAB(30)"STATION CONSTANT DATA FILE":LPRINT TAB(30)"******* ******** **** ****":LPRINT:LPRINT:PRINT TAB(30)"******* ******** **** ****"
  247. 334 IF H=1 THEN H=0:GOTO 345
  248. 335 OPEN "R",#1,"B:STATION.FIL",88
  249. 336 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
  250. 337 LPRINT TAB(12)"FILE NUMBER: ";CVD(I$):LOCATE 10,12:PRINT"FILE NUMBER: ";CVD(I$):LPRINT TAB(12)"STATION: ";A$:LOCATE 11,12:PRINT"STATION: ";A$
  251. 338 LPRINT TAB(12)"LATITUDE :";CVD(B$);"DEG";CVD(C$);"MIN";CVD(D$);"SEC  ":LOCATE 12,12:PRINT"LATITUDE: ";CVD(B$);"DEG";CVD(C$);"MIN";CVD(D$);"SEC  "
  252. 339 LPRINT TAB(12)"LONGITUDE: ";CVD(E$);"DEG";CVD(F$);"MIN";CVD(G$);"SEC  ":LOCATE 13,12:PRINT"LONGITUDE: ";CVD(E$);"DEG";CVD(F$);"MIN";CVD(G$);"SEC  "
  253. 340 LPRINT TAB(12)"HEIGHT ABOVE SPHERIOD: ";CVD(H$);" METERS":LOCATE 14,12:PRINT"HEIGHT ABOVE SPHERIOD: ";CVD(H$);" METERS"
  254. 341 LPRINT TAB(12)"DEFLECTION OF VERTICAL IN MERIDAN: ";CVD(J$);" DEG":LOCATE 15,12:PRINT"DEFLECTION OF VERTICAL IN MERIDAN: ";CVD(J$);" DEG"
  255. 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
  256. 343 IF LC=>56 THEN LPRINT CHR$(12):H=1:CLS:GOTO 332
  257. 344 CLS
  258. 345 NEXT I:LPRINT CHR$(12):CLOSE:GOTO 206
  259. 346 '********************************************************
  260. 347 '*            STATION SEARCH ROUTINE                    *
  261. 348 '********************************************************
  262. 349 GOSUB 384:LOCATE 4,25:PRINT"* * * * STATION SEARCH * * * *":LOCATE 6,25:INPUT "STATION: ";A1$:IF A1$="" THEN 206
  263. 350 OPEN "R",#1,"B:STATION.FIL",88
  264. 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
  265. 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
  266. 353 QQ$=INKEY$:IF QQ$="A" THEN CLOSE:GOTO 349
  267. 354 IF QQ$="R" THEN 206 ELSE 353
  268. 355 IF INSTR(A$,A1$)>0 THEN Y$=STR$(I):GOTO 274
  269. 356 RETURN
  270.