Source Code

032952,000001: # Copyright: Public domain. 032953,000002: # Filename: Template.agc 032954,000003: # Purpose: Part of the source code for Colossus, build 249. 032955,000004: # It is part of the source code for the Command Module's (CM) 032956,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 032957,000006: # Assembler: yaYUL 032958,000007: # Reference: pp. 747-776 of 1701.pdf. 032959,000008: # Contact: Ron Burkey <info@sandroid.org>. 032960,000009: # Website: www.ibiblio.org/apollo. 032961,000010: # Mod history: 08/17/04 RSB. Began transcribing. 032962,000011: # 2010-10-24 JL Indentation fixes. 032963,000012: # 2010-10-24 JL Fixed a pseudo-label on p751. 032964,000013: # 2010-10-25 JL Fixed page number. 032965,000014: # 2011-05-07 JL Flagged SBANK= workarounds for future removal. 032966,000015: # Fixed garbled lines. 032967,000016: 032968,000017: # The contents of the "Colossus249" files, in general, are transcribed 032969,000018: # from a scanned document obtained from MIT's website, 032970,000019: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 032971,000020: # document read, in part: 032972,000021: 032973,000022: # Assemble revision 249 of AGC program Colossus by NASA 032974,000023: # 2021111-041. October 28, 1968. 032975,000024: 032976,000025: # This AGC program shall also be referred to as 032977,000026: # Colossus 1A 032978,000027: 032979,000028: # Prepared by 032980,000029: # Massachusetts Institute of Technology 032981,000030: # 75 Cambridge Parkway 032982,000031: # Cambridge, Massachusetts 032983,000032: # under NASA contract NAS 9-4065. 032984,000033: 032985,000034: # Refer directly to the online document mentioned above for further information. 032986,000035: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 032987,000036: 032988,000037: # In some cases, where the source code for Luminary 131 overlaps that of 032989,000038: # Colossus 249, this code is instead copied from the corresponding Luminary 131 032990,000039: # source file, and then is proofed to incorporate any changes. 032991,000040: 032992,000041: # Page 747 032993,000042: # PROGRAM: P61 032994,000043: # MOD NO.: 0 MAR. 13, 1967 032995,000044: # MOD BY: R. HIRSCHKOP 032996,000045: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 22 JUN 67 RESTARTS 032997,000046: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 17 JAN 68 COLOSSUS GSOP CHANGES 032998,000047: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 8 MAY 68 DELETE CMSM MANEUVER (PCR 50) 032999,000048: # FUNCTION: TO CALCULATE AND DISPLAY EMS INITIALIZATION DATA 033000,000049: # CALLING SEQUENCE: BY V37 033001,000050: # EXIT: TO P62 033002,000051: # SUBROUTINE CALLS: S61.1, S61.3, GOFLASH, FLAGUP, R02BOTH 033003,000052: # ERASABLE INITIALIZATION: 033004,000053: # EMSALT (-29) M .05G ALTITUDE ABOVE FISCHER ELLIPSOID PAD LOADED. 033005,000054: # ALFAPAD /180 HYPERSONIC CM TRIM ANGLE OF ATTACK PAD LOADED 033006,000055: # OUTPUT: THE FOLLOWING REGISTERS ARE WRITTEN IN FOR USE BY DISPLAYS 033007,000056: # GMAX 100 GMAX (-14) G,S MAXIMUM ACCELERATION 033008,000057: # VPRED (-7) M/CS PREDICTED VELOCITY AT 400K FT 033009,000058: # GAMMAEI (GAMMA/360 PREDICTED GAMMA AT 400K FT 033010,000059: # RTGO THETAH/360 RANGE ANGLE TO SPLASH FROM EMSALT EMSALT IS PAD LOADED 033011,000060: # VIO (-7) M/CS INERTIAL VELOCITY AT EMSALT EMSALT IS PAD LOADED 033012,000061: # TTE (-28) CS TIME TO EMSALT EMSALT IS PAD LOADED 033013,000062: # LAT(SPL) /360 TARGET LOCATION LEFT BY DSKY 033014,000063: # LNG(SPL) /360 TARGET LOCATION LEFT BY DSKY 033015,000064: # HEADSUP (0) +1 = LIFT DOWN, -1 = LIFT UP LEFT BY DSKY 033016,000065: # DEBRIS: SEE SUBROUTINES. 033017,000066: 033018,000067: 26,2217 BANK 26 033019,000068: 26,2000 SETLOC P60S 033020,000069: 26,2000 BANK 033021,000070: 033022,000071: 26,2217 E6,1661 EBANK= AOG 033023,000072: 033024,000073: 26,2217 COUNT* $$/P61 033025,000074: 033026,000075: 26,2217 34675 P61 CA BIT14 # EXTENDED VERB SHOULD BE FREE THIS CLOSE 033027,000076: 26,2220 55044 TS EXTVBACT # TO V37 033028,000077: # LOCK OUT EXTENDED VERBS SO CAN USE TFF 033029,000078: # ROUTINES. EXT VERB ERASE IS USED 033030,000079: 033031,000080: 26,2221 44712 CS ONE # REMOVE IF HEADSUP EVER ON UPLINK DATA 033032,000081: 26,2222 55726 TS HEADSUP # PRELOAD 033033,000082: 033034,000083: 26,2223 02543 TC S61.1 # CHECK STATE VECTOR AND IMU ORIENTATION 033035,000084: # RV 50GENRET. DOES PHASCHNG, GROUP 4. 033036,000085: 033037,000086: 26,2224 32424 CA V06N61 # LAT(SPL) LNG(SPL) HEADSUP 033038,000087: # XXX.XX DEG XXX.XX DEG XXXXX. 033039,000088: 26,2225 04555 TC BANKCALL 033040,000089: 26,2226 20763 CADR GOFLASHR 033041,000090: 26,2227 04106 TC GOTOP00H 033042,000091: # Page 748 033043,000092: 26,2230 02235 TC P61.4 033044,000093: 26,2231 02224 TC -5 033045,000094: 033046,000095: 26,2232 05301 P61.3 TC PHASCHNG 033047,000096: 26,2233 00014 OCT 00014 033048,000097: 033049,000098: 26,2234 05112 TC ENDOFJOB 033050,000099: 033051,000100: 26,2235 22007 P61.4 ZL 033052,000101: 26,2236 11726 CCS HEADSUP # C(HEADSUP)= +1/-1 033053,000102: 26,2237 34675 CA BIT14 # IF HEADSUP POS,ROLLC =180 DEG.(LIFT DWN) 033054,000103: 26,2240 12241 NOOP # IF HEADSUP NEG,ROLLC =0 (LIFT UP) 033055,000104: 26,2241 53716 DXCH ROLLC # ROLLC IS USED BY S62.3: GIM ANG AT .05G 033056,000105: 033057,000106: 26,2242 06006 TC INTPRET 033058,000107: 26,2243 77745 NEWRNVN DLOAD 033059,000108: 26,2244 01205 PIPTIME # SAVE TIME OF RN,VN TO DETERMINE IF AN 033060,000109: 26,2245 37651 STCALL MM # UPDATE HAS OCCURRED. 033061,000110: 26,2246 52063 STARTEN1 # INITIALIZE 033062,000111: 26,2247 77775 VLOAD 033063,000112: 26,2250 01171 RN 033064,000113: 26,2251 02327 STORE RONE 033065,000114: 26,2252 77656 UNIT 033066,000115: 26,2253 26343 STOVL URONE 033067,000116: 26,2254 01177 VN 033068,000117: 26,2255 02335 STORE VONE 033069,000118: 26,2256 53435 VXV UNIT 033070,000119: 26,2257 02343 URONE 033071,000120: 26,2260 03502 STORE UNI 033072,000121: 26,2261 45345 DUMPP61 DLOAD DSU 033073,000122: 26,2262 03651 MM # INITIAL VALUE OF PIPTIME 033074,000123: 26,2263 01205 PIPTIME 033075,000124: 26,2264 45040 BMN CALRB 033076,000125: 26,2265 54243 NEWRNVN # UPDATED... GO TRY AGAIN 033077,000126: 26,2266 54650 S61.2 # GET DISPLAY DATA FOR N60 AND N63 033078,000127: # AND RETURN IN BASIC, BELOW. 033079,000128: 26,2267 05425 P61.1 TC CLEARMRK 033080,000129: 26,2270 32423 CA V06N60 # GMAX VPRED GAMMAEI 033081,000130: # XXX.XX G XXXXX. FPS XXX.XX DEG 033082,000131: 26,2271 04555 TC BANKCALL 033083,000132: 26,2272 20624 CADR GOFLASH 033084,000133: 033085,000134: 26,2273 04106 TC GOTOP00H 033086,000135: 26,2274 02276 TC P61.2 # PROCEED 033087,000136: 26,2275 02270 TC -5 033088,000137: 033089,000138: 26,2276 06006 P61.2 TC INTPRET # CORRECT TTE FOR TIME LAPSE DURING 033090,000139: # ABOVE DISPLAY. 033091,000140: 26,2277 45234 RTB DSU 033092,000141: 26,2300 45505 LOADTIME # CURRENT TIME. 033093,000142: # Page 749 033094,000143: 26,2301 03651 MM # PIPTIME FOR RONE & VONE. 033095,000144: 26,2302 77615 DAD 033096,000145: 26,2303 03733 TTE1 # NEGATIVE OF FREE FALL TIME. 033097,000146: 26,2304 03727 STORE TTE # DECREMENTED 033098,000147: 033099,000148: 26,2305 77776 EXIT 033100,000149: 033101,000150: 26,2306 32425 CA V06N63 # RTGO VIO TTE 033102,000151: # XXXX.X NM XXXXX. FPS XXBXX M,S 033103,000152: 26,2307 04555 TC BANKCALL 033104,000153: 26,2310 20624 CADR GOFLASH 033105,000154: 26,2311 04106 TC GOTOP00H 033106,000155: 26,2312 02314 TC +2 033107,000156: 26,2313 02276 TC P61.2 # REDO 033108,000157: 033109,000158: # .... THEN FALL INTO P62 033110,000159: # Page 750 033111,000160: 033112,000161: # PROGRAM: P62 033113,000162: # MOD NO.: 0 MAR. 13, 1967 033114,000163: # MOD BY: R. HIRSCHKOP 033115,000164: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67 033116,000165: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 22 JUN 67 RESTARTS. 033117,000166: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 17 JAN 68 COLOSSUS GSOP CHANGES. 033118,000167: # MOD NO: 4 MOD BY: RR BAIRNSFATHER DATE: 8 MAY 68 MOVE START OF DESIRED GIMBAL CALC. 033119,000168: # FUNCTION: 1) TO NOTIFY CREW WHEN GNC SYSTEM IS PREPARED FOR CM/SM SEPARATION. 033120,000169: # 2) TO ORIENT THE CM TO THE CORRECT ATTITUDE FOR ATMOSPHERIC ENTRY. 033121,000170: # CALLING SEQUENCE: BY V37 OR DIRECTLY FROM P61 033122,000171: # EXIT: TO P63 033123,000172: # ERASABLE INITIALIZATION: 033124,000173: # ALFAPAD LEFT BY PAD LOAD 033125,000174: # LADPAD LEFT BY PAD LOAD 033126,000175: # (?) LEFT BY PAD LOAD 033127,000176: # LAT(SPL) (MAY BE CHANGED BELOW) LEFT BY DSKY, VIA P61 033128,000177: # LNG(SPL) (MAY BE CHANGED BELOW) LEFT BY DSKY, VIA P61 033129,000178: # HEADSUP (MAY BE CHANGED BELOW) LEFT BY DSKY, VIA P61 033130,000179: # SUBROUTINE CALLS: NEWMODEX, S61.1, CM/DAPIC, CM/DAPON, R02BOTH, GOPERF1, GOFLASH, GODSPR. 033131,000180: 033132,000181: 26,2314 COUNT* $$/P62 033133,000182: 033134,000183: 26,2314 05243 TC NEWMODEX # MODE CHANGE IF CAME FROM P61. 033135,000184: 26,2315 00076 MM 62 B-14 # MODE CHANGE AUTOMATIC VIA V 37. 033136,000185: 26,2316 34712 CA ONE 033137,000186: 26,2317 54332 TS DNLSTCOD 033138,000187: 033139,000188: 26,2320 02543 P62 TC S61.1 # CHECK STATE VECTOR AND IMU ORIENTATION. 033140,000189: 033141,000190: 26,2321 06006 TC INTPRET 033142,000191: 26,2322 47131 SSP RTB 033143,000192: 26,2323 03325 POSEXIT 033144,000193: 26,2324 54402 P62.3 # CALCULATE DESIRED .05G GIMBAL ANGLES. 033145,000194: # WITHOUT DISPLAY. 033146,000195: 26,2325 41645 CM/DAPIC # START CM/POSE AND BODY RATE CALC 033147,000196: 033148,000197: # DOES 2PHSCHNG, OCT 40116, OCT 05024, OCT 13000. 033149,000198: # CM/DAPIC SETS EBANK = EBAOG 033150,000199: # AND RETURNS IN BASIC TO P62.2. 033151,000200: 26,2326 00006 P62.2 EXTEND 033152,000201: 26,2327 32431 DCA POSECADR # CONTINUE WITH CM/POSE AFTER AV G. 033153,000202: 26,2330 53223 DXCH AVEGEXIT 033154,000203: 033155,000204: 26,2331 34270 CAF OCT41 # REQUEST SEPARATION 033156,000205: 26,2332 04555 TC BANKCALL 033157,000206: 26,2333 21031 CADR GOPERF1R 033158,000207: 26,2334 04106 TC GOTOP00H 033159,000208: 26,2335 02340 TC +3 # PROCEED 033160,000209: # Page 751 033161,000210: # NOTE: NODOFLAG WILL BE SET IN CM/DAPON. *** 033162,000211: 26,2336 02331 TC -5 # ENTER 033163,000212: 26,2337 02232 TC P61.3 # FOR PHASCHNG AND ENDOFJOB 033164,000213: 033165,000214: 26,2340 04574 +3 TC POSTJUMP 033166,000215: 26,2341 41565 CADR CM/DAPON # DISABLE RCS DAP, ENABLE ENTRY DAP AND 033167,000216: # DO ATTITUDE HOLD. 033168,000217: 033169,000218: # WILL IDLE UNTIL CM/POSE DOES ONE UPDATE. 033170,000219: # CM/DAPON DOES NO PHASCHNG. 033171,000220: 033172,000221: 26,2342 32424 P62.1 CA V06N61 # LAT(SPL) LNG(SPL) HEADSUP 033173,000222: # XXX.XX DEG XXX.XX DEG 0000X. 033174,000223: 033175,000224: # TERMINATE ATTITUDE HOLD. SET UP COMMANDS: 033176,000225: # ROLLC, ALFACOM, BETACOM. BEGIN MANEUVER TO 033177,000226: # ENTRY ATTITUDE. 033178,000227: 033179,000228: 26,2343 04555 TC BANKCALL 033180,000229: 26,2344 20624 CADR GOFLASH 033181,000230: 26,2345 02342 TC -3 033182,000231: 26,2346 02350 TC +2 033183,000232: 26,2347 02342 TC -5 033184,000233: 033185,000234: 26,2350 05301 TC PHASCHNG 033186,000235: 26,2351 04024 OCT 04024 # USE ENTRYVN FOR DISPLAY BELOW. 033187,000236: # EBANK WAS SET IN CM/DAPON TO EBAOG 033188,000237: 033189,000238: 26,2352 11726 CCS HEADSUP # C(HEADSUP) = +/- 1 033190,000239: 26,2353 34675 CA BIT14 # IF HEADSUP POS, ROLLC=180 DEG (LIFT DWN) 033191,000240: 26,2354 12355 NOOP # IF HEADSUP NEG, ROLLC=0 DEG (LIFT UP) 033192,000241: 26,2355 55715 TS ROLLC 033193,000242: 26,2356 31411 CA ALFAPAD # NOMINAL ALFATRIM PAD LOADED, NEG. NO. 033194,000243: 26,2357 22007 ZL 033195,000244: 26,2360 53604 DXCH ALFACOM # SET ALFACOM = ALFA TRIM, BETACOM=0 033196,000245: 033197,000246: 26,2361 34712 CA ONE # PERMITS EXDAP2 TO CHANGE FLAG TO +0 033198,000247: 26,2362 55727 TS P63FLAG # AS INDICATOR. STARTS UP P63. 033199,000248: 033200,000249: 26,2363 34745 CA V06N22 # SET UP DISPLAY FOR CDU DESIRED VALUES 033201,000250: 26,2364 55263 TS ENTRYVN # FROM ENTRY ATTITUDE CALC, THAT IS 033202,000251: # ALREADY GOING. 033203,000252: 26,2365 05435 TC UPFLAG # TURN ON ENTRY DISPLAY 033204,000253: 26,2366 00134 ADRES ENTRYDSP # ENTRYDSP = 92D BIT 13 FLAG 6 033205,000254: 26,2367 SKIP 033206,000255: # Page 752 033207,000256: 26,2367 41700 CS CMDAPMOD # GO DIRECTLY TO P63 IF BODY ATTITUDE 033208,000257: 26,2370 74712 MASK ONE # IS SUCH THAT THE DELAY TASK: WAKEP62 033209,000258: 26,2371 00006 EXTEND # WILL BE OMITTED. 033210,000259: 26,2372 12420 BZF P63.1 # DISABLE GRP 4, GO TO ENDOFJOB. 033211,000260: # (I.E., CONTINUE IF CMDAPMOD = -1, OR +0) 033212,000261: 26,2373 02406 TC P63 033213,000262: 033214,000263: # PUT JOB TO SLEEP UNTIL VEHICLE MANEUVER HAS 033215,000264: # REDUCED ALFA TO +/-45 DEG. CONSIDER REMAINING 033216,000265: # 65 DEG (25 DEG IF ALFA NEG) TO ALFA TRIM TO 033217,000266: # OCCUR AT 3 DEG/SEC, AND TERMINATE P62 AT THAT 033218,000267: # TIME. 033219,000268: 033220,000269: # TASK WAKEP62 IS CALLED FROM ENTRY DAP. 033221,000270: 26,2374 34760 WAKEP62 CA PRIO13 033222,000271: 26,2375 05027 TC NOVAC 033223,000272: 26,2376 E6,1661 EBANK= AOG 033224,000273: 26,2376 02406 54066 2CADR P63 033225,000274: 033226,000275: 26,2400 05213 TC TASKOVER 033227,000276: 033228,000277: 26,2401 54402 P62.3CAD CADR P62.3 033229,000278: 033230,000279: # EACH 2 SEC, CALCULATE GIMBAL ANGLES FOR ENTRY CON- 033231,000280: # DITIONS THAT WILL HOLD IF REORIENTATION WERE MADE 033232,000281: # AT PRESENT RN, VN. COME HERE FROM CM/POSE AND ALSO 033233,000282: # IN KEPLER PHASE OF ENTRY. 033234,000283: 033235,000284: 26,2402 52131 P62.3 SSP GOTO # SET RETURN ADDRESS SO THAT ROUTINE 033236,000285: 26,2403 00053 QPRET # GOES DIRECTLY TO ENTRY GUIDANCE EXIT 033237,000286: 26,2404 53570 ENDEXIT # THAT DOES ENTRY DISPLAY, GRP 5. 033238,000287: 26,2405 20302 S62.3 # PUT DESIRED CDU VALUES IN CPHI=5 FOR 033239,000288: # N22 DISPLAY. 033240,000289: 033241,000290: # Page 753 033242,000291: # PROGRAM: P63 033243,000292: # MOD NO: 0 MAR. 13, 1967 033244,000293: # MOD BY: R. HIRSCHKOP 033245,000294: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 22 JUN 67 RESTARTS 033246,000295: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 JUL 67 REVISED RESTARTS 033247,000296: # FUNCTION: 1) TO INITIALIZE THE ENTRY EQUATIONS. 033248,000297: # 2) TO CONTINUE TO HOLD THE CM TO THE CORRECT ATTITUDE WITH RESPECT TO THE ATMOSPHERE FOR 033249,000298: # THE ONSET OF ENTRY DECELERATION. ROLL ANGLE IS LIFT UP/DOWN AS SPECIFIED BY HEADSUP. 033250,000299: # 3) TO SENSE .05G. 033251,000300: # CALLING SEQUENCE: DIRECTLY FROM P62 033252,000301: # EXIT: TO ENDOFJOB 033253,000302: # SUBROUTINE CALLS: NEWMODEX, GODSPR 033254,000303: 033255,000304: 26,2406 COUNT* $$/P63 033256,000305: 033257,000306: 26,2406 05243 P63 TC NEWMODEX 033258,000307: 26,2407 00077 MM 63 B-14 033259,000308: 033260,000309: 26,2410 04555 TC BANKCALL # FLUSH N22 DISPLAY, IF ON. (ONIT DISP 033261,000310: 26,2411 20607 CADR CLEANDSP # DURING STATEMENT PASS.) 033262,000311: 033263,000312: # ARRIVE WITH EBANK = AOG. 033264,000313: 033265,000314: 26,2412 32427 CA ENTCADR # CONTINUE AT STARTENT AFTER CM/POSE. 033266,000315: 033267,000316: # AT END OF STATEMENT, CHANGE ADDRESS IN GOTOADDR 033268,000317: # TO CONTINUE AT SCALEPOP THEREAFTER. 033269,000318: 033270,000319: 26,2413 55724 TS POSEXIT 033271,000320: 033272,000321: 26,2414 32426 CA V06N64 # G VI R TO SPLSH 033273,000322: # XXX.XX G XXXX. FPS XXXX.X NM 033274,000323: 26,2415 55263 TS ENTRYVN # FOR DISPLAY CALL IN OVERNOUT 033275,000324: 033276,000325: 26,2416 44712 CS ONE # IN CASE FLAG IS LEFT AT +1 BY DAP. THE 033277,000326: 26,2417 55727 TS P63FLAG # -1 ASSURES THAT EXO-ATM DAP WILL NOT 033278,000327: # CALL P63 OUT OF SEQUENCE IN P66. 033279,000328: 033280,000329: 26,2420 05301 P63.1 TC PHASCHNG 033281,000330: 26,2421 00004 OCT 00004 # DISABLE. DISPLAY RESTARTED VIA ENTRY. 033282,000331: 033283,000332: 26,2422 05112 TC ENDOFJOB 033284,000333: 033285,000334: 26,2423 01474 V06N60 VN 0660 033286,000335: 26,2424 01475 V06N61 VN 0661 033287,000336: 26,2425 01477 V06N63 VN 0663 033288,000337: 26,2426 01500 V06N64 VN 0664 033289,000338: 26,2427 52000 ENTCADR CADR STARTENT 033290,000339: 033291,000340: # Page 754 033292,000341: 26,2430 E7,1451 EBANK= RTINIT # TO CARRY OVER INTO ENTRY STEERING. 033293,000342: 26,2430 03373 76067 POSECADR 2CADR CM/POSE 033294,000343: 033295,000344: # Page 755 033296,000345: # PROGRAM: P64 033297,000346: # MOD NO: 1 SEPT. 19, 1967 033298,000347: # MOD BY: R. HIRSCHKOP 033299,000348: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 8 MAY 68 REVISED COMMENTS FOR COLOSSUS 033300,000349: # FUNCTION: 1. TO START ENTRY GUIDANCE AT .05G SELECTING ROLL ATTITUDE, CONSTANT DRAG LEVEL, AND 033301,000350: # DRAG THRESHHOLD, KA, WHICH ARE KEYED TO THE .05G POINT. 033302,000351: # 2. SELECT FINAL PHASE P67 IF V < 27000 FPS WHEN .2G OCCURS. 033303,000352: # 3. ITERATE FOR UP-CONTROL SOLUTION P65 IF V < 27000 FPS AND IF ALTITUDE RATE AND DRAG 033304,000353: # LEVEL CONDITIONS ARE SATISFIED. ENTER P65 WHEN CONSTANT DRAG CONTROLLER HAS BROUGHT RANGE 033305,000354: # AS PREDICTED TO WITHIN 25 NM OF DESIRED RANGE. 033306,000355: # 4. SELECT FINAL PHASE P67(?) IF NO UP-CONTROL SOLUTION EXISTS WITH VL > 18000(?) FPS. 033307,000356: # CALLING SEQUENCE: BY RTB FROM REENTRY CONTROL 033308,000357: # EXIT: BACK TO REENTRY CONTROL. 033309,000358: # SUBROUTINE CALLS: NEWMODEX 033310,000359: 033311,000360: 25,2000 BANK 25 033312,000361: 26,2000 SETLOC P60S1 033313,000362: 26,2000 BANK 033314,000363: 033315,000364: # THIS DISPLAY IS CALLED EACH PASS THROUGH STEERING. RESTART PROTECTION IS VIA STEERING. 033316,000365: 26,2432 COUNT* $$/P64 033317,000366: 033318,000367: 26,2432 05243 P64 TC NEWMODEX # ENTER VIA RTB WHEN .05G IS EXCEEDED. 033319,000368: 26,2433 00100 MM 64 B-14 033320,000369: 26,2434 32437 CA V06N68 # ROLLC VI HDOT 033321,000370: # XXX.XX DEG XXXXX. FPS XXXXX. FPS 033322,000371: 26,2435 55263 TS ENTRYVN # DISPLAY VIA OVERNOUT. 033323,000372: 033324,000373: 26,2436 06030 TC DANZIG # ... AND CONTINUE IN INITROLL ... 033325,000374: 26,2437 01504 V06N68 VN 0668 033326,000375: 033327,000376: # Page 756 033328,000377: # PROGRAM: P65 033329,000378: # MOD NO: 0 MOD BY: RR BAIRNSFATHER DATE: 17 JAN 68 COLOSSUS GSOP ADDITION. 033330,000379: # FUNCTION: TO CONTINUE ENTRY GUIDANCE, USING THE UP-CONTROL PHASE TO STEER TO A CONTROLLED EXIT 033331,000380: # CONDITION. THIS PHASE TERMINATES A) IF D < Q7 FPSS, GOTO TO P66. 033332,000381: # B) IF RDOT NEG, AND IF V < VL +500 FPS, GO TO P67. 033333,000382: # CALLING SEQUENCE: BY RTB FROM REENTRY CONTROL 033334,000383: # EXIT: BACK TO REENTRY CONTROL, OR TO ENDOFJOB. 033335,000384: # SUBROUTINE CALLS: NEWMODEX 033336,000385: 033337,000386: 26,2440 COUNT* $$/P65 033338,000387: 033339,000388: 26,2440 05243 P65 TC NEWMODEX # ENTER VIA RTB WHEN RANGE < 25 N M OF 033340,000389: 26,2441 00101 MM 65 B-14 # TARGET. 033341,000390: 033342,000391: 26,2442 34760 CA PRIO13 033343,000392: 26,2443 05027 TC NOVAC 033344,000393: 26,2444 1263 EBANK= ENTRYVN 033345,000394: 26,2444 02456 54062 2CADR P65.1 033346,000395: 033347,000396: 26,2446 05261 TC 2PHSCHNG # 2 PHASE CHG REQUIRED TO PREVENT RE- 033348,000397: 26,2447 00554 OCT 00554 # STARTING FLASHING DISPLAY TWICE. 033349,000398: 26,2450 10035 OCT 10035 # 4.55 SPOT AND SERVICER, HERE. 033350,000399: 26,2451 06006 TC INTPRET 033351,000400: 26,2452 47131 SSP RTB 033352,000401: 26,2453 03646 GOTOADDR # CHANGE ENTRY MODE TO UPCONTRL. 033353,000402: 26,2454 53027 UPCONTRL 033354,000403: 26,2455 52120 REFAZE10 # GO HERE TO REESTABLISH ENTRY SEQUENCER. 033355,000404: # AND CONTINUE AT UPCONTRL... 033356,000405: 033357,000406: 26,2456 05447 P65.1 TC DOWNFLAG 033358,000407: 26,2457 00134 ADRES ENTRYDSP # ENTRYDSP = 92D BIT 13 FLAG 6 033359,000408: 033360,000409: 26,2460 32472 CA V16N69 # ROLLC DL (Q7) VL 033361,000410: 26,2461 04555 TC BANKCALL # XXX.XX DEG XXX.XX G XXXXX. FPS 033362,000411: 26,2462 20763 CADR GOFLASHR 033363,000412: 26,2463 02460 TC -3 # NODOFLAG IS SET ... 033364,000413: 26,2464 02467 TC +3 033365,000414: 26,2465 02460 TC -5 033366,000415: 26,2466 02232 TC P61.3 # EST. GRP 4 FOR DISPLAY AND DO ENDOFJOB 033367,000416: # IF PROCEED, CONTINUE 033368,000417: 26,2467 05435 TC UPFLAG 033369,000418: 26,2470 00134 ADRES ENTRYDSP # ENTRYDSP = 92D BIT 13 FLAG 6 033370,000419: 033371,000420: 26,2471 02420 TC P63.1 # DISABLE GRP 4, START UP ENTRY DISPLAY 033372,000421: # N06V68 VIA OVERNOUT, AS USED IN P64 033373,000422: 26,2472 04105 V16N69 VN 1669 033374,000423: 033375,000424: # Page 757 033376,000425: # PROGRAM: P66 033377,000426: # MOD NO: 0 MOD BY: RR BAIRNSFATHER DATE: 17 JAN 68 COLOSSUS GSOP ADDITIONS 033378,000427: # FUNCTION: KEEP CM ATTITUDE IN TRIM TO THE RELATIVE VELOCITY VECTOR. ENTRY GUIDANCE STOPS GENERATING 033379,000428: # ROLL COMMANDS UNTIL DRAG BUILDS UP TO Q7+0.5 FPSS. 033380,000429: # CALLING SEQUENCE: VIA RTB FROM REENTRY CONTROL. 033381,000430: # EXIT: BACK TO REENTRY CONTROL. 033382,000431: # SUBROUTINE CALLS: NEWMODEX 033383,000432: 033384,000433: 26,2473 COUNT* $$/P66 033385,000434: 033386,000435: 26,2473 05243 P66 TC NEWMODEX # ENTER VIA RTB WHEN D < Q7 FPSS 033387,000436: 26,2474 00102 MM 66 B-14 033388,000437: 033389,000438: 26,2475 34745 CA V06N22 # OGA IGA MGA 033390,000439: # XXX.XX DEG XXX.XX DEG XXX.XX DEG 033391,000440: 26,2476 02502 TC P66END # IN CASE CAME FROM P65, GO TO DISABLE GRP 4, 033392,000441: # AND SET ENTRYDSP TO DO DISPLAY VIA 033393,000442: # OVERNOUT. 033394,000443: 033395,000444: # ... AND CONTINUE AT KEP2 033396,000445: 033397,000446: # Page 758 033398,000447: # PROGRAM: P67 033399,000448: # MOD NO: 0 MAR. 16, 1967 033400,000449: # MOD BY: R. HIRSCHKOP 033401,000450: # FUNCTION: TO TERMINATE STEERING WHEN THE CM VELOCITY WRT EARTH = 1000 FT/SEC 033402,000451: # CALLING SEQUENCE: (Nothing here, sorry. --- RSB 2004) 033403,000452: # EXIT: TO POOH 033404,000453: # SUBROUTINE CALLS: GOFLASH 033405,000454: 033406,000455: # THIS DISPLAY IS CALLED EACH PASS THROUGH STEERING. RESTART PROTECTION IS VIA STEERING. 033407,000456: 033408,000457: 26,2477 COUNT* $$/P67 033409,000458: 033410,000459: 26,2477 05243 P67 TC NEWMODEX # ENTER VIA RTB 033411,000460: 26,2500 00103 MM 67 B-14 033412,000461: 26,2501 32510 CA V06N66 # ROLLC XRNGERR DNRNGERR 033413,000462: # XXX.XX DEG XXXX.X NM XXXX.X NM 033414,000463: 26,2502 55263 P66END TS ENTRYVN # DISPLAY VIA OVERNOUT. 033415,000464: 033416,000465: 26,2503 05435 TC UPFLAG # (IN CASE CAME FROM P65. ENTRY DISPLAY 033417,000466: 26,2504 00134 ADRES ENTRYDSP # WILL FLUSH FLASHING DISP. IF STILL ON) 033418,000467: # BIT 13 FLAG 6 033419,000468: 26,2505 05301 KILLGRP4 TC PHASCHNG # DISABLE GRP4, IN CASE CAME FROM HUNTEST. 033420,000469: 26,2506 00004 OCT 00004 # (COME TO KILLGRP4 VIA RTB, RET TO CALLER) 033421,000470: 033422,000471: 26,2507 06030 TC DANZIG # ... AND CONTINUE AT PREDICT3 ... 033423,000472: 033424,000473: 26,2510 01502 V06N66 VN 0666 033425,000474: 033426,000475: 26,2511 BANK 26 033427,000476: 26,2000 SETLOC P60S2 033428,000477: 26,2000 BANK 033429,000478: 033430,000479: 26,2511 32542 P67.1 CA V16N67 # RTOGO LAT LONG 033431,000480: # XXXX.X NM XXX.XX DEG XXX.XX DEG 033432,000481: 26,2512 04555 TC BANKCALL 033433,000482: 26,2513 20624 CADR GOFLASH 033434,000483: 26,2514 02517 TC +3 # EFFECTIVE GOTOP00H 033435,000484: 26,2515 02517 TC +2 033436,000485: 26,2516 02511 TC P67.1 # REDO 033437,000486: 033438,000487: 26,2517 46214 CS THREE # TURN OFF ENTRY DAP 033439,000488: 26,2520 00004 INHINT 033440,000489: 26,2521 70102 MASK CM/FLAGS # CM/DSTBY, GAMDIFSW 033441,000490: 26,2522 54102 TS CM/FLAGS 033442,000491: 26,2523 00003 RELINT 033443,000492: 26,2524 00006 EXTEND 033444,000493: 26,2525 32642 DCA SERVCAD2 033445,000494: 033446,000495: # Page 759 033447,000496: 26,2526 53223 DXCH AVEGEXIT 033448,000497: 26,2527 14106 TCF GOTOP00H 033449,000498: 033450,000499: # Page 760 033451,000500: 26,2530 43175 P67.2 VLOAD CLEAR # CALC PRESENT LAT, LONG, ALT. 033452,000501: 26,2531 01171 RN 033453,000502: 26,2532 00662 ERADFLAG # USE PAD RAD FOR ALT. (NOT SEEN ANYWAY) 033454,000503: 26,2533 16152 STODL ALPHAV 033455,000504: 26,2534 01205 PIPTIME # USE TIME OF RN 033456,000505: 26,2535 45014 CLEAR CALL 033457,000506: 26,2536 01663 LUNAFLAG 033458,000507: 26,2537 26322 LAT-LONG 033459,000508: 26,2540 77634 P67.3 RTB # ENTRY EXIT THAT OMITS DISPLAY. 033460,000509: 26,2541 53603 SERVNOUT 033461,000510: 033462,000511: 26,2542 04103 V16N67 VN 1667 033463,000512: 26,2543 4270 OCT41 = 33DEC 033464,000513: 26,2543 26,2641 SERVCAD2 = SERVCAD1 033465,000514: 033466,000515: # Page 761 033467,000516: # SUBROUTINE NAME: S61.1 033468,000517: # MOD NO: 0 DATE: 21 FEB 67 033469,000518: # MOD BY: RR BAIRNSFATHER LOG SECTION: P61-P67 033470,000519: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 22 JUN 67 RESTARTS. 033471,000520: 033472,000521: # FUNCTIONAL DESCRIPTION: 033473,000522: # FIRST, TEST TO SEE IF AVERAGEG IS ON. IF NOT, UPDATE THE STATE VECTOR TO PRESENT TIME + TOLERANCE 033474,000523: # AND TURN ON AVERAGEG AT THAT TIME, AND CONTINUE. OTHERWISE CONTINUE: SEE IF IMU Y AXIS IS 033475,000524: # WITHIN 30 DEG OF VAR. IF YES, EXIT SUBROUTINE S61.1. IF SO, SEE IF -Y AXIS OF IMU IS WITHIN 033476,000525: # 30 DEG OF VAR. IF YES, DISPLAY ALARM: 01427 IMU REVERSED. 033477,000526: # IF NO, DISPLAY ALARM: 01426 IMU UNSATISFACTORY. 033478,000527: # IN EITHER OF THESE LAST 2 CASES, WAIT 10 SEC AND THEN EXIT SUBROUTINE S61.1. 033479,000528: 033480,000529: # REMARK: THERE WILL BE A SHORT 10 SEC DELAY IF AN ALARM EXIT IS TAKEN. THE DELAY FOR INTEGRATION IS 033481,000530: # AS SHORT AS CAN BE MADE, BUT IS ARBITRARY SINCE IT DEPENDS ON THE AGE OF THE STATE VECTOR. 033482,000531: 033483,000532: # CALLING SEQUENCE: CALL 033484,000533: # S61.1 033485,000534: 033486,000535: # C(MPAC) UNSPECIFIED 033487,000536: # PUSHLOC UNSPECIFIED 033488,000537: 033489,000538: # SUBROUTINES CALLED: LOADTIME, CSMPREC, TPAGTREE, 033490,000539: # WAITLIST, JOBSLEEP, JOBWAKE, PREREAD, ALARM, GODSPR, BANKCALL, DELAYJOB 033491,000540: 033492,000541: # NORMAL EXIT MODES: RVQ 033493,000542: 033494,000543: # ALARMS: 01426 IMU UNSATISFACTORY 033495,000544: # 01427 IMU REVERSED 033496,000545: 033497,000546: # OUTPUT: POSSIBLE ALARMS 033498,000547: # POSSIBLY TDEC1, RATT, VATT, RN, VN 033499,000548: 033500,000549: # ERASABLE INITIALIZATION REQUIRED: 033501,000550: # AVEGFLAG AVERAGEG ON OR OFF LEFT BY SERVICER 033502,000551: # PIPTIME (-26) CS TIME OF PIPA UPDATE LEFT BY READACCS 033503,000552: # RN (-29) M STATE VECTOR LEFT BY AVERAGEG 033504,000553: # VN (-7) M/CS STATE VECTOR LEFT BY AVERAGEG 033505,000554: # REFSMMAT (-1) .5 REF TO SM MATRIX LEFT BY LAST IMU ALIGNMENT 033506,000555: 033507,000556: # DEBRIS: QPRET 033508,000557: # POSSIBLY PIPTIME1, RATT, VATT, TDEC1, RN1, VN1, QTEMP, X1 IF UPDATED 033509,000558: # PUSH LIST LOCS USED BY CSMPREC 033510,000559: 033511,000560: 26,2543 E6,1661 EBANK= AOG # FOR 60GENRET, S61DT 033512,000561: 26,2543 BANK 26 033513,000562: 26,2000 SETLOC P60S3 033514,000563: 26,2000 BANK 033515,000564: 033516,000565: 26,2543 COUNT* $$/S61.1 033517,000566: 033518,000567: 26,2543 00006 S61.1 EXTEND 033519,000568: 26,2544 23773 QXCH 60GENRET # SAVE RET ADDR IN EB 6 033520,000569: 26,2545 04555 TC BANKCALL 033521,000570: 26,2546 17573 CADR R02BOTH 033522,000571: 26,2547 06006 TC INTPRET 033523,000572: # Page 762 033524,000573: 26,2550 45014 BON CALRB 033525,000574: 26,2551 00716 AVEGFLAG # IS AVERAGEG ON 033526,000575: 26,2552 54603 S61.1A # YES 033527,000576: 26,2553 27573 MIDTOAV2 # GET FUTURE STATE VECTOR SOON AS CAN 033528,000577: 033529,000578: 26,2554 30155 CA MPAC +1 # RETURN INHINTED *** 033530,000579: 26,2555 55774 TS S61DT # FOR RESTART. 033531,000580: 26,2556 05140 TC WAITLIST 033532,000581: 26,2557 E7,1431 EBANK= DVCNTR 033533,000582: 26,2557 02564 54067 2CADR S61.1C 033534,000583: 033535,000584: 26,2561 05301 TC PHASCHNG 033536,000585: 26,2562 40434 OCT 40434 033537,000586: 26,2563 05112 TC ENDOFJOB 033538,000587: 033539,000588: 26,2564 34760 S61.1C CA PRIO13 033540,000589: 26,2565 05042 TC FINDVAC 033541,000590: 26,2566 E6,1661 EBANK= AOG 033542,000591: 26,2566 02602 54066 2CADR S61.1A -1 033543,000592: 033544,000593: 26,2570 00006 EXTEND 033545,000594: 26,2571 32642 DCA SERVCAD1 # HE WHO START AVERAGEG MUST SERVICE 033546,000595: 26,2572 53223 DXCH AVEGEXIT # THE EXIT. 033547,000596: 033548,000597: 26,2573 05261 TC 2PHSCHNG 033549,000598: 26,2574 00454 OCT 00454 033550,000599: 26,2575 00415 OCT 00415 033551,000600: 033552,000601: 26,2576 34753 CA EBENTRY # SET EB= 7 FOR PREREAD. 033553,000602: 26,2577 54003 TS EBANK 033554,000603: 033555,000604: 26,2600 04574 TC POSTJUMP 033556,000605: 26,2601 76604 CADR PREREAD # PREREAD DOES TC TASKOVER. 033557,000606: 033558,000607: 26,2602 06006 TC INTPRET 033559,000608: 26,2603 77204 S61.1A BOVB VLOAD 033560,000609: 26,2604 57343 TCDANZIG # TURN OFF OVFIND, IF ON 033561,000610: 26,2605 01177 VN # VN (-7) M/CS 033562,000611: 26,2606 64235 VXV MXV 033563,000612: 26,2607 01171 RN # RN (-29) M 033564,000613: 26,2610 01736 REFSMMAT # .5 UNIT MATRIX 033565,000614: 26,2611 71256 UNIT DLOAD 033566,000615: 26,2612 00160 MPAC +3 # GET COS(THETA)/2 033567,000616: 26,2613 43240 BMN DAD 033568,000617: 26,2614 54621 S61.1B # DO TEST ON -YSM 033569,000618: 26,2615 14644 C(30)LIM # = 1.0 -.5 COS(30) 033570,000619: 26,2616 47004 BOVB RTB 033571,000620: 26,2617 54640 RETRN1 033572,000621: 26,2620 54625 RETRN3 033573,000622: # Page 763 033574,000623: 26,2621 43276 S61.1B DCOMP DAD 033575,000624: 26,2622 14644 C(30)LIM # = 1.0 - .5 COS(30) 033576,000625: 26,2623 77404 BOVB EXIT 033577,000626: 26,2624 54630 RETRN2 033578,000627: 033579,000628: 26,2625 05537 RETRN3 TC ALARM 033580,000629: 26,2626 01426 OCT 01426 # IMU UNSATISFACTORY 033581,000630: 26,2627 02632 TC RETRN2 +2 033582,000631: 033583,000632: 26,2630 05537 RETRN2 TC ALARM 033584,000633: 26,2631 01427 OCT 01427 # IMU REVERSED 033585,000634: 033586,000635: 26,2632 34743 +2 CAF V05N09 033587,000636: 26,2633 04555 TC BANKCALL 033588,000637: 26,2634 20602 CADR GODSPR # DO DISPLAY 033589,000638: 26,2635 32645 CA 10SECS 033590,000639: 26,2636 04555 TC BANKCALL 033591,000640: 26,2637 01732 CADR DELAYJOB 033592,000641: 033593,000642: 26,2640 01773 RETRN1 TC 60GENRET 033594,000643: 033595,000644: 26,2641 E7,1431 EBANK= DVCNTR 033596,000645: 26,2641 03132 76067 SERVCAD1 2CADR SERVEXIT 033597,000646: 26,2643 22111 17335 C(30)LIM 2DEC .566985 # = 1.0 - .5 COS(30) 033598,000647: 26,2645 01750 10SECS DEC 1000 B-14 # 1000 CS 033599,000648: 26,2646 00000 13560 60SECDP 2DEC 6000 B-28 # 6000 CS 033600,000649: 033601,000650: # Page 764 033602,000651: # PROGRAM NAME: S61.2 DATE: 14 FEB 67 033603,000652: # MOD NO: 1 LOG SECTION: P61-P67 033604,000653: # MOD BY: NORTH / BAIRNSFATHER 033605,000654: # MOD NO: 2 MOD BY: NORTH/BAIRNSFATHER DATE: 11 MAY 67 ADD 2ND ITER FOR ERAD AT 400K FT. 033606,000655: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 VARIABLE MU ADDED. 033607,000656: # MOD NO: 4 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 DIFFERENT EARTH/MOON SCALES IN TFF'S 033608,000657: 033609,000658: # FUNCTIONAL DESCRIPTION: CALLED IN P61. PROVIDES DISPLAYS FOR NOUNS N60 AND N63. 033610,000659: # PROGRAM CALCULATES ENTRY DISPLAY OF MAXIMUM ACCELERATION EXPECTED (GMAX) AND ALSO THE EXPECTED 033611,000660: # INERTIAL VELOCITY (VPRED) AND ENTRY ANGLE (GAMMABI) THAT WILL OBTAIN AT 400K FT ABOVE THE FISCHER 033612,000661: # ELLIPSOID. PROGRAM ALSO CALCULATES A SECOND DISPLAY RELATIVE TO THE EMSALT ABOVE FISCHER ELLIPSOID 033613,000662: # AND CONSISTS OF RANGE TO SPLASH FOM NOW (RTGO), PREDICTED INERTIAL VELOCITY (VIO), AND THE TIME TO 033614,000663: # GO FROM NOW (TTE). 033615,000664: 033616,000665: # CALLING SEQUENCE: CALL 033617,000666: # S61.2 033618,000667: # C(MPAC) UNSPECIFIED 033619,000668: # PUSHLOC WILL BE SET TO ZERO. 033620,000669: 033621,000670: # SUBROUTINES CALLED: TFFCONIC, CALCTFF, TFF/TRIG, FISHCALC, GETERAD, VGAMCALC 033622,000671: 033623,000672: # NORMAL EXIT MODES: RTB, P61.1 033624,000673: 033625,000674: # ALARMS: NONE 033626,000675: 033627,000676: # OUTPUT: THE FOLLOWING REGISTERS ARE WRITTEN IN FOR USE BY DISPLAYS 033628,000677: # GMAX 100 GMAX (-14) G,S MAXIMUM ACCELERATION 033629,000678: # VPRED (-7) M/CS PREDICTED VELOCITY AT 400K FT 033630,000679: # GAMMAEI GAMMA/360 PREDICTED GAMMA AT 400K FT 033631,000680: # FOR TM, DP(GAMMAEI) = (GAMMAEI, RTGO) / 360 033632,000681: # RTGO THETAH/360 RANGE ANGLE TO SPLASH FROM EMSALT EMSALT IS PAD LOADED. 033633,000682: # VIO (-7) M/CS INTERTIAL VELOCITY AT EMSALT EMSALT IS PAD LOADED. 033634,000683: # TTE (-28) CS TIME TO EMSALT EMSALT IS PAD LOADED. 033635,000684: # PUSHLOC = 0 033636,000685: # CONIC PARAMETERS STORED IN VAC AREA (SEE TFF SUBROUTINES) 033637,000686: 033638,000687: # ERASABLE INITIALIZATION REQUIRED: 033639,000688: # RONE (-29) M STATE VECTOR LEFT BY USER 033640,000689: # VONE (-7) M/CS STATE VECTOR LEFT BY USER 033641,000690: # URONE UR/2 LEFT BY USER 033642,000691: # UNI (-1) UNIT NORMAL V*R LEFT BY ENTRY / P61 033643,000692: # THETAH THETAH/360 RANGE ANGLE LEFT BY ENTRY / P61 033644,000693: # UNITW (0) UNIT POLAR VECTOR LEFT BY PAD LOAD 033645,000694: # EMSALT (-29) M EMS INTERFACE ALTITUDE LEFT BY PAD LOAD 033646,000695: # ORBITAL REENTRY: 284843 FT., LUNAR REENTRY: 297431 FT. 033647,000696: 033648,000697: # DEBRIS: QPRET, 033649,000698: # ALL PDL LOCATIONS ABOVE 12D, INCLUDING X1,X2,S1,S2 033650,000699: # ALSO PDL+0 ... PDL+5, WHERE INITIAL PUSHLOC = PDL 033651,000700: 033652,000701: # Page 765 033653,000702: # THE FOLLOWING PUSH LIST LOCATIONS HAVE BEEN RESERVED FOR TFF ROUTINES AND ARE REPEATED HERE FOR CONVENIENCE. 033654,000703: # OF COURSE FOR S61.2 USAGE, EARTH ORIGIN SCALING IS USED. 033655,000704: 033656,000705: # BELOW E: IS USED FOR EARTH ORIGIN SCALE 033657,000706: # M: IS USED FOR MOON ORIGIN SCALE 033658,000707: 033659,000708: # RTERM = 18D TERMINAL RADIUS M E: (-29) M: (-27) 033660,000709: # NRTERM = 16D TERMINAL RADIUS M E: (-29+NR) 033661,000710: # M: (-27+NR) 033662,000711: # RMAG1 = 12D PRESENT RADIUS M E: (-29) M: (-27) 033663,000712: # NRMAG = 32D PRESENT RADIUS M E: (-29+NR) 033664,000713: # M: (-27+NR) 033665,000714: # SDELF/2 SIN(THETA) / 2 033666,000715: # CDELF/2 = 14D COS(THETA) / 2 033667,000716: # TFFX = 34D X, ARGUMENT OF SERIES T(X) 033668,000717: # TFFTEM = 36D ARG FOR TRANSFER ANGLE CALCULATION 033669,000718: # TFFNP = 28D LC P M E: (-38+2NR) M: (-36+2NR) 033670,000719: # TFF/RTMU= 30D 1/SQRT(MU) E: (17) M: (14) 033671,000720: # TFFVSQ = 20D -(VN.VN/MU) 1/M E: (20) M: (18) 033672,000721: 033673,000722: # Page 766 033674,000723: 34,3652 BANK 34 033675,000724: 26,2000 SETLOC P60S2 033676,000725: 26,2000 BANK 033677,000726: 033678,000727: 26,2650 COUNT* $$/S61.2 033679,000728: # PDL LEFT AT ZERO BY TARGETING 033680,000729: 033681,000730: 26,2650 45345 S61.2 DLOAD DSU 033682,000731: 26,2651 02020 EMSALT 033683,000732: 26,2652 15000 290KFT 033684,000733: 26,2653 71244 BPL DLOAD 033685,000734: 26,2654 54774 LUNENT 033686,000735: 26,2655 17345 1/RTMU # ESTABLISH MU FOR ORBITAL ENTRIES 033687,000736: 26,2656 77624 CALLCON CALL 033688,000737: 26,2657 56750 TFFCONIC # FILL VAC AREA WITH CONIC PARAMETERS 033689,000738: 033690,000739: 26,2660 45145 DLOAD CALL 033691,000740: 26,2661 15020 RTRIAL # 1ST GUESS AT TERMINAL RADIUS (-29) 033692,000741: 26,2662 57060 CALCTFF # SAVES MPAC IN RTERM (18D) 033693,000742: 033694,000743: 26,2663 77624 CALL # CALC SDELF/2, CDELF/2 033695,000744: 26,2664 56573 TFF/TRIG # RETURN WITH S(THETA) IN MPAC 033696,000745: 033697,000746: 26,2665 77624 CALL # GET FISCHER RADIUS (-29) M 033698,000747: 26,2666 55027 FISHCALC # ANS IN MPAC AND IN ERADM 033699,000748: 033700,000749: 26,2667 45015 DAD CALL 033701,000750: 26,2670 02020 EMSALT 033702,000751: 26,2671 57060 CALCTFF # SAVES MPAC IN RTERM (18D) 033703,000752: 033704,000753: 26,2672 77676 DCOMP # NEGATIVE AS IN COUNTDOWN 033705,000754: 26,2673 03733 STORE TTE1 # DECR TTE FROM BASB TTE1. (RESTART) 033706,000755: # DNLIST AND DSKY WILL USE TTE. 033707,000756: 26,2674 37727 STCALL TTE # LET MISS CONTRL DECR BY ELAPSED TIME 033708,000757: # TTE= TIME FROM NOW TO EMSALT +FISCHER 033709,000758: 033710,000759: 26,2675 56573 TFF/TRIG # S(THETA) IN MPAC ON RETURNING 033711,000760: # AND THETA= RANGE FROM NOW TO EMSALT 033712,000761: 033713,000762: 26,2676 77624 CALL 033714,000763: 26,2677 55027 FISHCALC 033715,000764: 26,2700 77624 CALL 033716,000765: 26,2701 56626 VRCALC 033717,000766: 26,2702 77624 CALL 033718,000767: 26,2703 56613 DISPTARG 033719,000768: 26,2704 77624 CALL 033720,000769: 26,2705 56613 DISPTARG 033721,000770: 26,2706 37714 STCALL RTGO 033722,000771: # Page 767 033723,000772: 26,2707 55050 VGAMCALC 033724,000773: 033725,000774: 26,2710 77605 DMP # MPAC = GAMMA 033726,000775: # PDL0 HAS VGAM. 033727,000776: 26,2711 43265 BDDV DAD 033728,000777: 26,2712 15026 VEMSCON # -HS D 180/PI (-14) 033729,000778: 26,2713 00001 0 # VGAM FROM PDL0 033730,000779: 26,2714 17725 STODL VIO # PREDICTED VELOCITY AT EMSALT. 033731,000780: # GAMMA AND VGAM AT 300K FT ARE REQUIRED BY GMAX 033732,000781: # ALGORITHM. 033733,000782: 26,2715 02241 ERADM # EARTH RADIUS FROM GETERAD (-29) M 033734,000783: # = FISCHER RADIUS (-29) 033735,000784: 033736,000785: 26,2716 77615 DAD 033737,000786: 26,2717 06462 300KFT # M (-29) 033738,000787: 26,2720 34023 STCALL RTERM # TERMINAL RADIUS M (-29) 033739,000788: 26,2721 55045 PREVGAM # VGAMCALC WITH NEW RTERM 033740,000789: # VBAR = (V(FPS) - 36KF/S) / 20 F/S 033741,000790: 033742,000791: # GMAX = (4/(1 + 4.8 VBARSQ))(GAM - 6.05 - 2.4 VBARSQ) - 10(L/D - .3) + 10 ASSUME L/D = 0.3, BANK =0. 033743,000792: # GMAXCALC 033744,000793: 033745,000794: 26,2722 45325 PDDL DSU # GAM TO PDL2 033746,000795: 26,2723 00001 0 # VGAM IS IN PDL0 (-7) 033747,000796: 26,2724 15004 36KFT/S # (-7) M/CS 033748,000797: 26,2725 63471 DDV DSQ 033749,000798: 26,2726 15006 20KFT/S # (-6) M/CS 033750,000799: 26,2727 00001 STORE 0 # VBARSQ (-2) TO PDL0 033751,000800: 033752,000801: 26,2730 43205 DMP DAD 033753,000802: 26,2731 15010 KR1 033754,000803: # GAM, POS DOWN, FROM PDL2 033755,000804: 26,2732 41215 DAD DMP 033756,000805: 26,2733 15012 -6.05DEG 033757,000806: 26,2734 15014 KR2 033758,000807: 26,2735 77725 PDDL # XCH PDL+0 FOR VBARSQ (-2) 033759,000808: 26,2736 43271 DDV DAD 033760,000809: 26,2737 15024 KR4 033761,000810: 26,2740 17357 DP2(-4) 033762,000811: 26,2741 77665 BDDV 033763,000812: # NUM FROM PDL+0 033764,000813: 26,2742 51015 DAD BPL 033765,000814: 26,2743 15016 KR3 033766,000815: 26,2744 54747 +3 033767,000816: 26,2745 77745 DLOAD 033768,000817: 26,2746 15332 HI6ZEROS 033769,000818: 26,2747 17722 STODL GMAX # 100 GMAX (-14) 033770,000819: # Page 768 033771,000820: # DISPLAY USES GMAX AS SP, SO LO WORD IS WRITTEN OVER BY VPRED. 033772,000821: 26,2750 02241 ERADM # = FISCHER RADIUS (-29) M 033773,000822: 26,2751 45015 DAD CALL # 2 ND ITERATION FOR FISCHER RADIUS 033774,000823: 26,2752 15022 400KFT 033775,000824: 26,2753 57060 CALCTFF # ESTABLISH TRANSFER ANGLE DATA. 033776,000825: 26,2754 77624 CALL 033777,000826: 26,2755 56573 TFF/TRIG # GET SIN, COS DELF 033778,000827: 26,2756 77624 CALL 033779,000828: 26,2757 55027 FISHCALC # GET CORRESPONDING FISCHER RADIUS. 033780,000829: 033781,000830: 26,2760 73015 DAD LXA,2 # SAVE HI-WORD FOR DOWNLIST. 033782,000831: 26,2761 15022 400KFT # M (-29) 033783,000832: 26,2762 03713 RTGO # (RANGE ANGLE FROM EMSALT) / 360 033784,000833: 26,2763 34023 STCALL RTERM 033785,000834: 26,2764 55045 PREVGAM # VGAMCALC WITH NEW RTERM 033786,000835: 033787,000836: 26,2765 67076 DCOMP SXA,2 # HI-WORD OF EACH ON DOWNLIST. 033788,000837: 26,2766 00155 MPAC +1 033789,000838: 26,2767 17771 STODL GAMMAEI # CONIC GAMMA/360 AT 400K FT. (HI-WORD) 033790,000839: # CONIC RTGO/360 FROM EMSALT (LOW-WORD) 033791,000840: # FOR TM, DP(GAMMAEI) = (GAMMA, RTGO) / 360 033792,000841: 033793,000842: # VGAM FROM PDL+0 (-7) 033794,000843: 26,2770 77626 STADR 033795,000844: 26,2771 74010 STORE VPRED # CONIC VELOCITY AT 400K FT 033796,000845: 033797,000846: 26,2772 77634 RTB 033798,000847: 26,2773 54267 P61.1 033799,000848: # PDL BACK TO ZERO. 033800,000849: 033801,000850: 26,2774 52145 LUNENT DLOAD GOTO 033802,000851: 26,2775 06456 1/RTMUE # ESTABLISH MU FOR LUNAR TYPE ENTRIES 033803,000852: 26,2776 54656 CALLCON 033804,000853: 033805,000854: 26,2777 00002 26244 290KFT 2DEC 88392 B-29 033806,000855: 26,3001 00052 05716 KTETA1 2DEC* .421844723 E2 B-14* # 110 2PI/16384(163.84) 033807,000856: 26,3003 33335 05707 36KFT/S 2DEC 109.728 B-7 # (-7) M/CS = 36 KFT/S (-7) 033808,000857: 26,3005 36365 30244 20KFT/S 2DEC 121.92 B-7 # (-6) M/CS = 2 20KFT/S (-7) 033809,000858: 26,3007 77113 42770 KR1 2DEC -.026666667 # = -2.4 4 / 360 033810,000859: 26,3011 77354 65030 -6.05DEG 2DEC -.016805556 # = -6.05 / 360 033811,000860: 26,3013 21450 00001 KR2 2DEC .54931641 # = (360/4) 100 (-14) = 9000 B-14 033812,000861: 26,3015 01750 00000 KR3 2DEC 1000 B-14 # = 100 (10.0) (-14) O,S 033813,000862: # Page 769 033814,000863: # ASSUMES L/D = 0.3, BANK =0. 033815,000864: 26,3017 00305 04541 RTRIAL 2DEC 6460097.16 B-29 # RPAD +264643 FT =21 194 545 FT 033816,000865: # RPAD DEFINED AS 20 909 901.57 FT =6 373 336 M 033817,000866: 26,3021 00003 27040 400KFT 2DEC 121920 B-29 # METERS 033818,000867: 033819,000868: # 300KFT 2DEC 91440 B-29 # (-29) M 033820,000869: # EMSALT 2DEC 86759.2 B-29 # 284643 FT (-29) M (ORBITAL REENTRY) 033821,000870: # EMSALT 2DEC 90657 B-29 # 297431 FT (-29) M (LUNAR REENTRY) 033822,000871: 033823,000872: 26,3023 32525 12525 KR4 2DEC .833333333 033824,000873: 26,3025 23,2461 300KFT EQUALS MINPERE 033825,000874: 26,3025 77777 76601 VEMSCON 2DEC -.0389676 B-14 # = -HS D / 2 PI (-14) M SQ / CS SQ 033826,000875: # = -16369 .05G 32.2 .3048 .3048/2 PI (-14) 033827,000876: 033828,000877: # Page 770 033829,000878: # SUBROUTINE NAME: FISHCALC (USED BY S61.2) DATE: 01.21.67 033830,000879: # MOD NO: 0 LOG SECTION: P61-P67 033831,000880: # MOD BY: NORTH / BAIRNSFATHER 033832,000881: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 MAY 67 INCLUDE GETERAD CALL 033833,000882: 033834,000883: # FUNCTIONAL DESCRIPTION: TIVEN TEH PRESENT POSITION, UNITR, CALCULATE A NEW UNITR THAT IS ROTATED THROUGH 033835,000884: # TRANSFER ANGLE, THETA, ALONG THE TRAJECTORY. THEN CALCULATE SIN(LAT) AND USE TO OBTAIN FISCHER RADIUS. 033836,000885: # SINCE FISHCALC USED UNIT (LEFT BY ENTRY) EARTH SCALING IS ASSUMED. (WILL IMPROVE FOR SUITABLE TENNANT) 033837,000886: 033838,000887: # CALLING SEQUENCE: CALL 033839,000888: # FISHCALC 033840,000889: # ENTER WITH .5 SIN(THETA) IN MPAC. 033841,000890: # PUSHLOC IS AT PDL+0, AN ARBITRARY BASE VALUE IF LEQ 8D 033842,000891: 033843,000892: # SUBROUTINES CALLED: GET ERAD 033844,000893: 033845,000894: # NORMAL EXIT MODE: RVQ 033846,000895: 033847,000896: # EXIT MODES: NONE 033848,000897: 033849,000898: # OUTPUT: ERADM (-29) M IN MPAC ON RETURNING 033850,000899: # NEW UNIT VECTOR NOT SAVED. 033851,000900: # SIN(LAT) NOT SAVED. 033852,000901: # PUSHLOC AT PDL+0 033853,000902: 033854,000903: # ERASABLE INITIALIZATION REQUIRED: 033855,000904: # SDELF/2 =SIN(THETA) / 2, IN MPAC LEFT BY TFF/TRIG(?) 033856,000905: # CDELF/2 =COS(THETA) / 2, STORED IN PDL 14D LEFT BY TFF/TRIG(?) 033857,000906: # RONE (-29) M LEFT BY USER(?) 033858,000907: # VONE (-7) M/CS LEFT BY USER(?) 033859,000908: # URONE UR/2 LEFT BY USER(?) 033860,000909: # UNI .5 UNIT(V*R) LEFT BY (?) / P61 033861,000910: # UNITW UNIT NORTH POLE LEFT BY (?) LOAD 033862,000911: 033863,000912: # DEBRIS: QPRET, PDL+0 ... PDL+5 033864,000913: # _ _ _ 033865,000914: 26,3027 47315 FISHCALC PDVL VXV # URPR = UR CDELF + UHOR SDELF 033866,000915: 26,3030 02343 URONE 033867,000916: 26,3031 03502 UNI 033868,000917: 26,3032 76561 VXSC VSL1 033869,000918: # SIN(THETA) / 2 FROM PDL+0 033870,000919: 26,3033 74315 PDVL VXSC # TO PDL+0, (garbled) 033871,000920: 26,3034 02343 URONE 033872,000921: 26,3035 00017 CDELF/2 # COS(THETA) / 2 033873,000922: 26,3036 45455 VAD STADR 033874,000923: 26,3037 74235 STORE URH # FOR USE IN (?) FROM EMS DISPLAY 033875,000924: 26,3040 72441 DOT SL1 033876,000925: 26,3041 01714 UNITW # PULL UNIT VECTOR UNIT NORTH 033877,000926: 26,3042 02156 STORE ALPHAV +4 # = .5 (garbled) 033878,000927: 26,3043 77650 DUMPFISH GOTO 033879,000928: 26,3044 26437 GETERAD # SAVES FISCHER RAD (-29) M IN ERADM AND 033880,000929: # IN MPAC. RETURNS TO CALLER VIO QPRET. 033881,000930: 033882,000931: # Page 771 033883,000932: # SUBROUTINE NAME: VGAMCALC (USED BY S61.2) DATE: 01.21.67 033884,000933: # MOD NO: 0 LOG SECTION: P61-P67 033885,000934: # MOD BY: NORTH / BAIRNSFATHER 033886,000935: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 033887,000936: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 VARIABLE MU ADDED. 033888,000937: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALE 033889,000938: 033890,000939: # FUNCTONAL DESCRIPTION: EARTH CENTERED VIS VIVA CALCULATION OF TERMINAL VELOCITY AND GAMMA (REL TO 033891,000940: # HORIZONTAL) GIVEN THE SCALAR QUANTITIES: PRESENT RADIUS AND VELOCITY AND THE TERMINAL RADIUS. 033892,000941: # THE USER MUST APPEND PROPER SIGN TO GAMMA, SINCE IT IS CALCULATED AS A POSITIVE NUMBER. 033893,000942: # THE EQUATIONS ARE 033894,000943: 033895,000944: # VGAM = SQRT(VN VN/MU + 2(RN-RTERM)/(RN RTERM) ) RTMU 033896,000945: 033897,000946: # COSGAM = H / RTERM VGAM = SQRT (LCP) / (RTERM VGAM/RTMU) 033898,000947: 033899,000948: # VGAMCALC ASSUMES THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT RADIUS. BOTH CALCTFF AND CALCTPER 033900,000949: # MAKE THIS ASSUMPTION. 033901,000950: 033902,000951: # CALLING SEQUENCE: CALL STCALL RTERM 033903,000952: # VGAMCALC PREVGAM 033904,000953: # PUSHLOC AT PDL+0, ARBITRARY IF LEQ 12D 033905,000954: # C(MPAC) UNSPECIFIED C(MPAC)=NEW RTERM 033906,000955: 033907,000956: # SUBROUTINES CALLED: NONE 033908,000957: 033909,000958: # NORMAL EXIT MODE: RVQ 033910,000959: 033911,000960: # ALARMS: NONE 033912,000961: # 033913,000962: # OUTPUT: GAMMA / 360 IN MPAC, POSITIVE NUMBER 033914,000963: # VGAM E: (-7) M: (-5) M/CS IN PDL+0 033915,000964: # PUSHLOC AT PDL+2 033916,000965: 033917,000966: # ERASABLE INITIALIZATION REQD: 033918,000967: # TFF/RTMU E: (17) M: (14) 1/SQRT(MU) LEFT BY TFFCONIC 033919,000968: # RMAG1 E: (-29) M: (-27) M PRESENT RADIUS LENGTH LEFT BY TFFCONIC 033920,000969: # NRMAG E: (-29+NR) M NORM LENGTH OF PRESENT POSITION LEFT BY TFFCONIC 033921,000970: # M: (-27+NR) 033922,000971: # RTERM E: (-29) M: (-27) M TERMINAL RADIUS LENGHT LEFT BY CALCTFF 033923,000972: # NRTERM E: (-29+NR) M NORM LENGTH OF TERMINAL RADIUS LEFT BY CALCTFF 033924,000973: # M: (-27+NR) 033925,000974: # TFFVSQ E: (20) M: (18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORM LEFT BY TFFCONIC 033926,000975: # TFFNP E: (-38+2NR) M LCP, SEMI-LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC 033927,000976: # M: (-36+2NR) 033928,000977: 033929,000978: # DEBRIS: QPRET, PDL+0 ... PDL+3 033930,000979: # RTERM, NRTERM IF PREVGAM ENTERED. 033931,000980: # Page 772 033932,000981: 033933,000982: 26,3045 77657 PREVGAM SL* # ENTER WITH NEW RTERM IN MPAC 033934,000983: # E: (-29) M: (-27) 033935,000984: 26,3046 20201 0,1 # X1 = -NR 033936,000985: 26,3047 00021 STORE NRTERM # RTERM M E: (-29+NR) M: (-27+NR) 033937,000986: 26,3050 41345 VGAMCALC DLOAD DMP 033938,000987: 26,3051 00041 NRMAG # RMAG M E: (-29+NR) M: (-27+NR) 033939,000988: 26,3052 00021 NRTERM # RTERM M E: (-29+NR) M: (-27+NR) 033940,000989: 26,3053 45325 PDDL DSU # RMAG RTERM M E: (-58+2NR) M: (-54+2NR) 033941,000990: 26,3054 00041 NRMAG # RMAG M E: (-29+NR) M: (-27+NR) 033942,000991: 26,3055 00021 NRTERM # RTERM M E: (-29+NR) M: (-27+NR) 033943,000992: 26,3056 56257 SL* DDV # 2(RN-RTERM) E: (-30+NR) M: (-28+NR) 033944,000993: 26,3057 20171 0 -8D,1 # (-8+NR) 033945,000994: # PUSH UP PRODUCT. 033946,000995: 033947,000996: 26,3060 77625 DSU 033948,000997: 26,3061 00025 TFFVSQ # -(V SQ/MU) E: (20) M: (18) 033949,000998: 26,3062 41566 SQRT PUSH # SAVE VGAM/RT(MU) FOR NOW. E: (10) M: (9) 033950,000999: 26,3063 65271 DDV PDDL # XCH PDL+0, LEAVING VGAM FOR OUTPUT. 033951,001000: # VGAM TO PDL M/CS E: (-7) M: (-2) 033952,001001: 26,3064 00037 TFF/RTMU # E: (17) M: (14) 033953,001002: 26,3065 65205 DMP PDDL # RTERM VGAM/RTMU E: (-19+NR) M: (-18+NR) 033954,001003: 26,3066 00021 NRTERM # RTERM M E: (-29+NR) M: (-27+NR) 033955,001004: 26,3067 00035 TFFNP # LC P =H.H/MU M E: (-38+2NR) M: (-36+2NR) 033956,001005: 26,3070 56366 SQRT DDV # E: (-19+NR) M: (-18+NR) 033957,001006: # PUSH UP DEN E: (-19+NR) M: (-18+NR) 033958,001007: # USE DDV OVFL AS LIMITER (|COS| <1.0) 033959,001008: 26,3071 65542 SR1 ACOS 033960,001009: 26,3072 77616 DUMPVGAM RVQ 033961,001010: # CALLER MUST SUPPLY OWN SIGN ... 033962,001011: # 22W 27MS 033963,001012: 033964,001013: # Page 773 033965,001014: # SUBROUTINE NAME: TFF/TRIG (USED BY S61.2) DATE: 01.17.67 033966,001015: # MOD NO: 0 LOG SECTION: P61-P67 033967,001016: # MOD BY: RR BAIRNSFATHER 033968,001017: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67 033969,001018: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALE 033970,001019: 033971,001020: # FUNCTIONAL DESCRIPTION: USED BY ENTRY DISPLAY TO CALCULATE SIN(THETA), COS(THETA) FROM DATA LEFT IN 033972,001021: # PDL BY TFF SUBROUTINES. THE EQNS ARE 033973,001022: 033974,001023: # COS(THETA) = 1-2 ABS(ARG) / (RN RTERM (1+X) ) 033975,001024: # 2 033976,001025: # SIN(THETA) = SGN(ARG) SQRT(1-COS (THETA) ) 033977,001026: 033978,001027: # WHERE THETA = TRANSFER ANGLE 033979,001028: # AND ARG = P Z ABS(Z) IF ALFA ZZ LEQ 1 033980,001029: # ARG = (P / ALFA) SGN(Q1 + R 1/Z) IF ALFA Z Z G 1 033981,001030: # AND ARG HAS BEEN AFFIXED WITH THE SIGN OF SIN(THETA) 033982,001031: 033983,001032: # CALLING SEQUENCE: CALL 033984,001033: # TFF/TRIG 033985,001034: # PUSHLOC AT PDL+0, ARBITRARY IF NOT EQ 14D 033986,001035: # C(MPAC) UNSPECIFIED 033987,001036: 033988,001037: # SUBROUTINES CALLED: NONE 033989,001038: 033990,001039: # NORMAL EXIT MODES: RVQ 033991,001040: 033992,001041: # ALARMS: NONE 033993,001042: 033994,001043: # OUTPUT: C(MPAC) = .5 SIN(THETA) 033995,001044: # CDELF/2 = .5 COS(THETA) (IN PDL 14D) 033996,001045: # PUSHLOC AT PDL+0 033997,001046: 033998,001047: # ERASABLE INITIALIZATION REQUIRED: 033999,001048: # TFFX X LEFT BY CALCTFF OR CALCTPER 034000,001049: # TFFTEM E: (-59+2NR) ARG LEFT BY CALCTFF OR CALCTPER 034001,001050: # M: (-55+2NR) WHERE ARG = LCF ZZ SGN(DELF) OR ARG = LCP/ALFA SGN(DELF) 034002,001051: # NRTERM E: (-29+NR) M NORM LENGTH OF TERMINAL RADIUS LEFT BY CALCTFF OR CALCTPER 034003,001052: # M: (-27+NR) 034004,001053: # NRMAG E: (-29+NR) M NORM LENGTH OF PRESENT POSITION LEFT BY TFFCONIC 034005,001054: # M: (-27+NR) 034006,001055: 034007,001056: # DEBRIS: QPRET, CDELF/2 034008,001057: 034009,001058: 27,2573 BANK 27 034010,001059: 27,2000 SETLOC P60S5 034011,001060: 27,2000 BANK 034012,001061: 27,2573 70545 TFF/TRIG DLOAD SR1 034013,001062: 27,2574 00043 TFFX 034014,001063: 27,2575 41215 DAD DMP 034015,001064: 27,2576 15330 HIDPHALF 034016,001065: 27,2577 00041 NRMAG # RMAG M E: (-29+NR) M: (-27+NR) 034017,001066: 27,2600 55205 DMP BDDV 034018,001067: 27,2601 00021 NRTERM # RTERM M E: (-29+NR) M: (-27+NR) 034019,001068: 27,2602 00045 TFFTEM # P ZSQ OR P/ALFA E: (-59+2NR) M: (-55+2NR) 034020,001069: 27,2603 44246 ABS BDSU # THE SIGN IS FOR SDELF. 034021,001070: 27,2604 15330 HIDPHALF 034022,001071: 27,2605 00017 STORE CDELF/2 # .5 COS(THETA) 034023,001072: 27,2606 57516 DSQ DCOMP # KEEP HONEST FOR SQRT. 034024,001073: # Page 774 034025,001074: 27,2607 75415 DAD SQRT 034026,001075: 27,2610 15322 HIDP1/4 034027,001076: 27,2611 43565 DUMPTRIG SIGN RVQ 034028,001077: 27,2612 00045 TFFTEM # AFFIX SIGN(DELE/2) 034029,001078: # RETURN WITH .5 SIN(THETA) IN MPAC 034030,001079: # 16W 15MS 034031,001080: 034032,001081: 27,2613 77620 DISPTARG STQ # C(MPAC = TRGO ESTIMATE 034033,001082: 27,2614 03373 60GENRET 034034,001083: 27,2615 45205 DMP DSU 034035,001084: 27,2616 15002 KTETA1 034036,001085: 27,2617 03733 TTE1 034037,001086: 27,2620 37606 STCALL DTEAROT 034038,001087: 27,2621 46225 EARROT2 034039,001088: 27,2622 77624 CALL 034040,001089: 27,2623 56626 VRCALC 034041,001090: 27,2624 77650 GOTO 034042,001091: 27,2625 03373 60GENRET 034043,001092: 27,2626 50375 VRCALC VLOAD DOT 034044,001093: 27,2627 03542 URH 034045,001094: 27,2630 03474 RT 034046,001095: 27,2631 65512 SL2 ACOS 034047,001096: 27,2632 77616 RVQ 034048,001097: 034049,001098: # END OF PROGRAM S61.2 034050,001099: # PROGRAM DESCRIPTION S62.3 DATE 10JAN67 034051,001100: # MOD NO 1: LOG SECTION P60-P67 034052,001101: # MOD BY ZELDIN 034053,001102: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 15 MAY 67 CHANGED TO REF COORDS. 034054,001103: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 17 JAN 68 ALFAPAD CHANGES MADE. 034055,001104: 034056,001105: # FUNCTIONAL DESCRIPTION 034057,001106: 034058,001107: # COMPUTE DESIRED GIMBAL ANGLES FOR ENTRY ATTITUDE 034059,001108: # THE FOLLOWING TRAJECTORY TRIAD IS AVAILABLE IN MEMORY AND IS COMPUTED EACH 2 SECONDS BY CM/POSE IN 034060,001109: # REFERENCE COORDINATES (V = VELOCITY RELATIVE TO EARTH): 034061,001110: 034062,001111: # UXA = -UNIT(V) 034063,001112: # UYA = UNIT(V*R) 034064,001113: # UZA = UXA*UYA 034065,001114: 034066,001115: # GENERATE A DESIRED BODY TRIAD FOR TRIMMED FLIGHT WITH RESPECT TO THE RELATIVE VELOCITY VECTOR, USING 034067,001116: # ROLL COMMAND AND TRIM ANGLE OF ATTACK: 034068,001117: 034069,001118: # UXD = UNIT(UYD*UXA) SIN(ALFATRIM) + UXA COS(ALFATRIM) 034070,001119: # UYD = UYA COS(ROLLC) + UZA SIN(ROLLC) 034071,001120: # UZD = UXD * UYD 034072,001121: 034073,001122: # USE THE DESIRED SET (IN REFERENCE COORDS) AND REFSMMAT TO CALL CALCGA AND OBTAIN GIMBAL ANGLES 034074,001123: # IN 2S, C IN MPAC, +2 AND THETAD, +2. 034075,001124: 034076,001125: # CALLING SEQUENCE 034077,001126: 034078,001127: # L CALL 034079,001128: # L+1 S62.3 034080,001129: 034081,001130: # NORMAL EXIT MODE 034082,001131: 034083,001132: # RETURN VIA QPRET DIRECTLY FROM CALCGA. 034084,001133: 034085,001134: # SUBROUTINES CALLED 034086,001135: 034087,001136: # CALCGA 034088,001137: 034089,001138: # ALARM OR ABORT MODES 034090,001139: 034091,001140: # NONE 034092,001141: 034093,001142: # ERASABLE INITIALIZATION REQUIRED 034094,001143: 034095,001144: # ROLLC ROLL COMMAND DP 1'S COMP AT 1REV 034096,001145: # ALFAPAD SP 1'S C / 180 LEFT BY PAD LOAD ALFATRIM IS NEGATIVE. 034097,001146: # UXA/2 REF COORDS LEFT BY CM/POSE 034098,001147: # UYA/2 REF COORDS LEFT BY CM/POSE 034099,001148: # UZA/2 REF COORDS LEFT BY CM/POSE 034100,001149: 034101,001150: # OUTPUT 034102,001151: # 034103,001152: # CPHI GIMBAL ANGLES (O,I.M) 2'S COMP TP (O,I.M)/180 034104,001153: 034105,001154: # DEBRIS 034106,001155: 034107,001156: # QTEMP, QPRET, PUSHLIST 034108,001157: 034109,001158: 10,2302 BANK 10 034110,001159: 10,2000 SETLOC P60S4 034111,001160: 10,2000 BANK 034112,001161: # Page 775 034113,001162: 10,2302 COUNT* $$/S62.3 034114,001163: 034115,001164: 10,2302 67201 S62.3 SETPD SLOAD 034116,001165: 10,2303 00001 0 034117,001166: 10,2304 03012 ALFAPAD # ALFATRIM / 180, ALFA IS NEG. 034118,001167: 10,2305 41542 SR1 PUSH 034119,001168: 10,2306 65346 COS PDDL # XCH PDL, COS TO PDL0 034120,001169: 10,2307 65356 SIN PDDL # SIN TO PDL2 034121,001170: 10,2310 03316 ROLLC 034122,001171: 10,2311 74346 COS VXSC 034123,001172: 10,2312 03550 UYA/2 # REF COORDS 034124,001173: 10,2313 73525 PDDL SIN # PUSH VECTOR INTO PDL4...9 034125,001174: 10,2314 03316 ROLLC 034126,001175: 10,2315 53361 VXSC VAD 034127,001176: 10,2316 03556 UZA/2 # REF COORDS 034128,001177: # VECTOR FROM PDL4...9 034129,001178: 10,2317 77772 VSL1 034130,001179: 10,2320 02722 STORE YNB # = UYD REF COORDS 034131,001180: 034132,001181: 10,2321 76435 VXV VSL1 034133,001182: 10,2322 03542 UXA/2 # REF COORDS 034134,001183: 10,2323 65361 VXSC PDDL 034135,001184: # SIN TRIM FROM PDL2 034136,001185: # XCH PDL0 FOR COS TRIM 034137,001186: 10,2324 53361 VXSC VAD 034138,001187: 10,2325 03542 UXA/2 # REF COORDS 034139,001188: # FROM PDL0 034140,001189: 10,2326 77772 VSL1 034141,001190: 10,2327 02714 STORE XNB # X SC AXIS (.5 UNIT) REF COORDS 034142,001191: 034143,001192: 10,2330 76435 VXV VSL1 034144,001193: 10,2331 02722 YNB 034145,001194: 10,2332 26730 STOVL ZNB # Z SC IN REF COOR. SCALED AT 2 034146,001195: 10,2333 01736 REFSMMAT 034147,001196: 10,2334 26672 STOVL XSM 034148,001197: 10,2335 01744 REFSMMAT +6 034149,001198: 10,2336 26700 STOVL YSM 034150,001199: 10,2337 01752 REFSMMAT +12D 034151,001200: 10,2340 02706 STORE ZSM 034152,001201: 034153,001202: 10,2341 52014 CLEAR GOTO 034154,001203: 10,2342 00260 CPHIFLAG # CAUSE CALCGA TO STORE ANS IN TP CPHI 034155,001204: 10,2343 47244 CALCGA 034156,001205: # CALCGA WILL RETURN TO ORIGINAL CALLER 034157,001206: # VIA QPRET WITH 2'S COMP. ANGLES IN CPHI 034158,001207: 034159,001208: 034160,001209: End of include-file P61-P67.agc. Parent file is MAIN.agc