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