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. |
058262,000002: ## Copyright: Public domain.
058263,000003: ## Filename: POWERED_FLIGHT_SUBROUTINES.agc
058264,000004: ## Purpose: Part of the source code for Colossus, build 249.
058265,000005: ## It is part of the source code for the Command Module's (CM)
058266,000006: ## Apollo Guidance Computer (AGC), for Apollo 9.
058267,000007: ## Assembler: yaYUL
058268,000008: ## Reference: Starts on p. 1333
058269,000009: ## Contact: Ron Burkey <info@sandroid.org>.
058270,000010: ## Website: www.ibiblio.org/apollo.
058271,000011: ## Mod history: 08/29/04 RSB. Began adapting from corresponding Luminary131 file.
058272,000012: ## 2010-10-24 JL Indentation fixes.
058273,000013: ## 2017-01-06 RSB Page numbers now agree with those on the
058274,000014: ## original harcopy, as opposed to the PDF page
058275,000015: ## numbers in 1701.pdf.
058276,000016: ## 2017-01-18 RSB Cross-diff'd comment text (not whitespace)
058277,000017: ## vs the already-proofed corresponding Colossus
058278,000018: ## 237 and Comanche 55 source-code files
058279,000019: ## and corrected errors found.
058280,000020: ## 2017-02-08 RSB Added a note about a curiously-misprinted line.
058281,000021: ## 2021-05-30 ABS SINSLOC -> SINESLOC
058282,000022: ##
058283,000023: ## The contents of the "Colossus249" files, in general, are transcribed
058284,000024: ## from a scanned copy of the program listing. Notations on this
058285,000025: ## document read, in part:
058286,000026: ##
058287,000027: ## Assemble revision 249 of AGC program Colossus by NASA
058288,000028: ## 2021111-041. October 28, 1968.
058289,000029: ##
058290,000030: ## This AGC program shall also be referred to as
058291,000031: ## Colossus 1A
058292,000032: ##
058293,000033: ## Prepared by
058294,000034: ## Massachusetts Institute of Technology
058295,000035: ## 75 Cambridge Parkway
058296,000036: ## Cambridge, Massachusetts
058297,000037: ## under NASA contract NAS 9-4065.
058298,000038: ##
058299,000039: ## Refer directly to the online document mentioned above for further information.
058300,000040: ## Please report any errors (relative to the scanned pages) to info@sandroid.org.
058301,000041: ##
058302,000042: ## In some cases, where the source code for Luminary 131 overlaps that of
058303,000043: ## Colossus 249, this code is instead copied from the corresponding Luminary 131
058304,000044: ## source file, and then is proofed to incorporate any changes.
058305,000045:
Page 1333 |
058307,000047: 14,3405 BANK 14 # SAME FBANK AS THE FINDCDUD SUB-PROGRAM
058308,000048: 23,2000 SETLOC POWFLITE
058309,000049: 23,2000 BANK
058310,000050:
058311,000051: 23,3432 0142 EBANK= DEXDEX
058312,000052: 23,3432 COUNT* $$/POWFL
058313,000053:
058314,000054: # CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*TR*GS ALL COMPUTE THE SINES AND
058315,000055: # COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE
058316,000056: # PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU. AN
058317,000057: # ADDITIONAL OUTPUT IS THE 1'S COMPLEMENT ANGLES AT CDUSPOT. THESE
058318,000058: # ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT,
058319,000059: # EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2. THEY DIFFER ONLY IN
058320,000060: # WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING.
058321,000061:
058322,000062: # CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE
058323,000063: # SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS.
058324,000064: # THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY
058325,000065: # CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS.
058326,000066:
058327,000067: # CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC.
058328,000068:
058329,000069: # CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP. THIS
058330,000070: # ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL
058331,000071: # ANGLES IN AN ORDER OTHER THAN X Y Z. A CALL TO THIS ROUTINE IS
058332,000072: # NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO
058333,000073: # MODES (SMNB OR NBSM). SINCE AX*SR*T EXPECTS TO FIND THE SINES AND
058334,000074: # COSINES IN THE ORDER Y Z X THE ANGLES MUST HAVE BEEN PLACED IN CDUSPOT
058335,000075: # IN THIS ORDER. CD*TR*GS NEED NOT BE REPEATED WHEN AX*SR*T IS CALLED
058336,000076: # MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED. NOTE THAT SINCE
058337,000077: # IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE
058338,000078: # CALLED USING BANKCALL. SORRY.
058339,000079:
058340,000080: # CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN
058341,000081: # INTERPRETIVE.
058342,000082:
058343,000083: 23,3432 77776 CDUTRIG EXIT
058344,000084: 23,3433 03442 TC CDUTRIGS
058345,000085: 23,3434 06006 TC INTPRET
058346,000086: 23,3435 77616 RVQ
058347,000087:
058348,000088: 23,3436 77776 CD*TR*G EXIT
058349,000089: 23,3437 03450 TC CD*TR*GS
058350,000090: 23,3440 06006 TC INTPRET
058351,000091: 23,3441 77616 RVQ
058352,000092:
058353,000093: 23,3442 30032 CDUTRIGS CA CDUX
058354,000094: 23,3443 54772 TS CDUSPOT +4
058355,000095: 23,3444 30033 CA CDUY
058356,000096: 23,3445 54766 TS CDUSPOT
Page 1334 |
058358,000098: 23,3446 30034 CA CDUZ
058359,000099: 23,3447 54770 TS CDUSPOT +2
058360,000100:
058361,000101: 23,3450 00006 CD*TR*GS EXTEND
058362,000102: 23,3451 22142 QXCH TEM2
058363,000103: 23,3452 34710 CAF FOUR
058364,000104: 23,3453 76211 TR*GL**P MASK SIX # MAKE IT EVEN AND SMALLER
058365,000105: 23,3454 54143 TS TEM3
058366,000106: 23,3455 50143 INDEX TEM3
058367,000107: 23,3456 30766 CA CDUSPOT
058368,000108: 23,3457 52155 DXCH MPAC # STORING 2'S COMP ANGLE, LOADING MPAC
058369,000109: 23,3460 52127 DXCH VBUF +4 # STORING MPAC FOR LATER RESTORATION
058370,000110: 23,3461 04652 TC USPRCADR
058371,000111: 23,3462 45510 CADR CDULOGIC
058372,000112: 23,3463 00006 EXTEND
058373,000113: 23,3464 30155 DCA MPAC
058374,000114: 23,3465 50143 INDEX TEM3
058375,000115: 23,3466 52767 DXCH CDUSPOT # STORING 1'S COMPLEMENT ANGLE
058376,000116: 23,3467 04652 TC USPRCADR
058377,000117: 23,3470 01516 CADR COSINE
058378,000118: 23,3471 52155 DXCH MPAC
058379,000119: 23,3472 50143 INDEX TEM3
058380,000120: 23,3473 52745 DXCH COSCDU # STORING COSINE
058381,000121: 23,3474 00006 EXTEND
058382,000122: 23,3475 50143 INDEX TEM3
058383,000123: 23,3476 30767 DCA CDUSPOT # LOADING 1'S COMPLEMENT ANGLE
058384,000124: 23,3477 04652 TC USPRCADR
058385,000125: 23,3500 01530 CADR SINE +1 # SINE +1 EXPECTS ARGUMENT IN A AND L
058386,000126: 23,3501 52127 DXCH VBUF +4 # BRINGING UP PRIOR MPAC TO BE RESTORED
058387,000127: 23,3502 52155 DXCH MPAC
058388,000128: 23,3503 50143 INDEX TEM3
058389,000129: 23,3504 52737 DXCH SINCDU
058390,000130: 23,3505 10143 CCS TEM3
058391,000131: 23,3506 13453 TCF TR*GL**P
058392,000132: 23,3507 00142 TC TEM2
Page 1335 |
058394,000134: # ****************************************************************************************************************
058395,000135: # QUICTRIG, INTENDED FOR GUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS.
058396,000136: # QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2,
058397,000137: # AND CDUSPOT +4. UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN
058398,000138: # CDUSPOT. QUICTRIG'S EXECUTION TIME IS 4.1 MS; THIS IS 10 TIMES AS FAST AS CD*TR*GS. QUICTRIG MAY BE
058399,000139:
058400,000140: # CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL.
058401,000141:
058402,000142: 23,3510 00004 QUICTRIG INHINT # INHINT SINCE DAP USES THE SAME TEMPS
058403,000143: 23,3511 00006 EXTEND
058404,000144: 23,3512 22061 QXCH ITEMP1
058405,000145: 23,3513 34710 CAF FOUR
058406,000146: 23,3514 76211 +4 MASK SIX
058407,000147: 23,3515 54062 TS ITEMP2
058408,000148: 23,3516 50062 INDEX ITEMP2
058409,000149: 23,3517 30766 CA CDUSPOT
058410,000150: 23,3520 04770 TC SPSIN
058411,000151: 23,3521 00006 EXTEND
058412,000152: 23,3522 74675 MP BIT14 # SCALE DOWN TO MATCH INTERPRETER OUTPUTS
058413,000153: 23,3523 50062 INDEX ITEMP2
058414,000154: 23,3524 52737 DXCH SINCDU
058415,000155: 23,3525 50062 INDEX ITEMP2
058416,000156: 23,3526 30766 CA CDUSPOT
058417,000157: 23,3527 04767 TC SPCOS
058418,000158: 23,3530 00006 EXTEND
058419,000159: 23,3531 74675 MP BIT14
058420,000160: 23,3532 50062 INDEX ITEMP2
058421,000161: 23,3533 52745 DXCH COSCDU
058422,000162: 23,3534 10062 CCS ITEMP2
058423,000163: 23,3535 13514 TCF QUICTRIG +4
058424,000164: 23,3536 30061 CA ITEMP1
058425,000165: 23,3537 00003 RELINT
058426,000166: 23,3540 00000 TC A
058427,000167:
Page 1336 |
058429,000169: # ****************************************************************************************************************
058430,000170: # THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
058431,000171: # INTERPRETIVE. LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
058432,000172:
058433,000173: # NBSM WILL BE THE FIRST TO GO. IT SHOULD NOT BE USED.
058434,000174:
058435,000175: 23,3541 77620 NBSM STQ
058436,000176: 23,3542 00047 X2
058437,000177: 23,3543 76740 LXC,1 VLOAD*
058438,000178: 23,3544 00050 S1 # BASE ADDRESS OF THE CDU ANGLES IS IN S1
058439,000179: 23,3545 00001 0,1
058440,000180: 23,3546 24767 STOVL CDUSPOT
058441,000181: 23,3547 00041 32D # VECTOR TO BE TRANSFORMED IS IN 32D
058442,000182: 23,3550 77624 CALL
058443,000183: 23,3551 47572 TRG*NBSM
058444,000184: 23,3552 34041 STCALL 32D # SINCE THERE'S NO STGOTO
058445,000185: 23,3553 00047 X2
058446,000186:
058447,000187: # THESE INTERFACE ROUTINES ARE PERMANENT. ALL RESTORE USER'S EBANK
058448,000188: # SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL",
058449,000189: # RETURNING VIA QPRET. ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR-
058450,000190: # MED INTERPRETER-STYLE IN MPAC
In every other Colossus (and Luminary) version preceding or following this
one, the line corresponding to the line above reads:MED INTERPRETER-STYLE IN MPAC; COMPONENTS AT MPAC, MPAC +3, AND MPAC +5.I assume that the truncated line is thus a printer error. — RSB 2017. |
058457,000197:
058458,000198: # TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES
058459,000199: # AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4; ODD
058460,000200: # LOCATIONS NEED NOT BE ZEROED). TRG*NBSM DOES THE NB TO SM TRANSFOR-
058461,000201: # MATION; TRG*SMNB, VICE VERSA.
058462,000202:
058463,000203: # CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF
058464,000204: # THE CDU COUNTERS. OTHERWISE IT IS LIKE TRG*NBSM.
058465,000205:
058466,000206: # CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM.
058467,000207:
058468,000208: 23,3554 77776 CDU*SMNB EXIT
058469,000209: 23,3555 03442 TC CDUTRIGS
058470,000210: 23,3556 13561 TCF C*MM*N1
058471,000211:
058472,000212: 23,3557 77776 TRG*SMNB EXIT
058473,000213: 23,3560 03450 TC CD*TR*GS
058474,000214: 23,3561 07501 C*MM*N1 TC MPACVBUF # AX*SR*T EXPECTS VECTOR IN VBUF
058475,000215: 23,3562 46214 CS THREE # SIGNAL FOR SM TO NB TRANSFORMATION
058476,000216: 23,3563 03603 C*MM*N2 TC AX*SR*T
058477,000217: 23,3564 06006 TC INTPRET
058478,000218: 23,3565 43575 VLOAD RVQ
058479,000219: 23,3566 00123 VBUF
058480,000220:
058481,000221: 23,3567 77776 CDU*NBSM EXIT
058482,000222: 23,3570 03442 TC CDUTRIGS
058483,000223:
Page 1337 |
058485,000225:
058486,000226: 23,3571 13574 TCF C*MM*N3
058487,000227:
058488,000228: 23,3572 77776 TRG*NBSM EXIT
058489,000229: 23,3573 03450 TC CD*TR*GS
058490,000230: 23,3574 07501 C*MM*N3 TC MPACVBUF # FOR AX*SR*T
058491,000231: 23,3575 36214 CA THREE # SIGNAL FOR NB TO SM TRANSFORMATION
058492,000232: 23,3576 13563 TCF C*MM*N2
058493,000233:
058494,000234: # *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU
058495,000235: # AND COSCDU) RATHER THAN THE ANGLES THEMSELVES. OTHERWISE THEY ARE
058496,000236: # LIKE TRG*NBSM AND TRG*SMNB.
058497,000237:
058498,000238: # NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES
058499,000239: # OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM
058500,000240: # AND TRG*SMNB NEED BE CALLED FOR EACH SERIES. FOR SUBSEQUENT TRANSFOR-
058501,000241: # MATIONS USE *NBSM* AND *SMNB*.
058502,000242:
058503,000243: 23,3577 77776 *SMNB* EXIT
058504,000244: 23,3600 13561 TCF C*MM*N1
058505,000245:
058506,000246: 23,3601 77776 *NBSM* EXIT
058507,000247: 23,3602 13574 TCF C*MM*N3
058508,000248:
058509,000249: # AX*SR*T COMBINES THE OLD SMNB AND NBSM. FOR THE NB TO SM
058510,000250: # TRANSFORMATION, ENTER WITH +3 IN A. FOR SM TO NB, ENTER WITH -3.
058511,000251: # THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF.
058512,000252: # AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION
058513,000253: # AT SINCDU AND COSCDU, IN THE ORDER Y Z X. A CALL TO CD*TR*GS, WITH
058514,000254: # THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF
058515,000255: # THIS. HERE IS A SAMPLE CALLING SEQUENCE:-
058516,000256: # TC CDUTRIGS
058517,000257: # CS THREE ("CA THREE" FOR NBSM)
058518,000258: # TC AX*SR*T
058519,000259: # THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE
058520,000260: # THAN ONCE, UNLESS THE ANGLES HAVE CHANGED.
058521,000261:
058522,000262: # AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN
058523,000263: # UNITY. A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE
058524,000264: # HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS-
058525,000265: # FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED.
058526,000266:
058527,000267: 23,3603 54142 AX*SR*T TS DEXDEX # WHERE IT BECOMES THE INDEX OF INDEXES
058528,000268: 23,3604 00006 EXTEND
058529,000269: 23,3605 22145 QXCH RTNSAVER
058530,000270:
058531,000271: 23,3606 10142 R*TL**P CCS DEXDEX # +3 --> 0 -3 --> 2
058532,000272: 23,3607 40142 CS DEXDEX # THUS: +2 --> 1 -2 --> 1
058533,000273: 23,3610 66214 AD THREE # +1 --> 2 -1 --> 0
Page 1338 |
058535,000275: 23,3611 00006 EXTEND
058536,000276: 23,3612 50000 INDEX A
058537,000277: 23,3613 33672 DCA INDEXI
058538,000278: 23,3614 52144 DXCH DEXI
058539,000279:
058540,000280: 23,3615 34712 CA ONE
058541,000281: 23,3616 54130 TS BUF
058542,000282: 23,3617 00006 EXTEND
058543,000283: 23,3620 50143 INDEX DEX1
058544,000284: 23,3621 40123 DCS VBUF
058545,000285: 23,3622 13624 TCF LOOP1 # REALLY BE A SUBTRACT, AND VICE VERSA
058546,000286:
058547,000287: 23,3623 52131 LOOP2 DXCH BUF # LOADING VECTOR COMPONENT, STORING INDEX
058548,000288:
058549,000289: 23,3624 52155 LOOP1 DXCH MPAC
058550,000290: 23,3625 33670 CA SINESLOC
058551,000291: 23,3626 60143 AD DEX1
058552,000292: 23,3627 54116 TS ADDRWD
058553,000293:
058554,000294: 23,3630 07056 TC DMPSUB # MULTIPLY BY SIN(CDUANGLE)
058555,000295: 23,3631 10142 CCS DEXDEX
058556,000296: 23,3632 52155 DXCH MPAC # NBSM CASE
058557,000297: 23,3633 13636 TCF +3
058558,000298: 23,3634 00006 EXTEND # SMNB CASE
058559,000299: 23,3635 40155 DCS MPAC
058560,000300: 23,3636 52134 DXCH TERM1TMP
058561,000301:
058562,000302: 23,3637 36211 CA SIX # SINCDU AND COSCDU (EACH 6 WORDS) MUST
058563,000303: 23,3640 26116 ADS ADDRWD # BE CONSECUTIVE AND IN THAT ORDER
058564,000304:
058565,000305: 23,3641 00006 EXTEND
058566,000306: 23,3642 50130 INDEX BUF
058567,000307: 23,3643 50143 INDEX DEX1
058568,000308: 23,3644 30123 DCA VBUF
058569,000309: 23,3645 52155 DXCH MPAC
058570,000310: 23,3646 07056 TC DMPSUB # MULTIPLY BY COS(CDUANGLE)
058571,000311: 23,3647 52155 DXCH MPAC
058572,000312: 23,3650 20134 DAS TERM1TMP
058573,000313: 23,3651 52134 DXCH TERM1TMP
058574,000314: 23,3652 20001 DDOUBL
058575,000315: 23,3653 50130 INDEX BUF
058576,000316: 23,3654 50143 INDEX DEX1
058577,000317: 23,3655 52123 DXCH VBUF
058578,000318: 23,3656 52131 DXCH BUF # LOADING INDEX, STORING VECTOR COMPONENT
058579,000319: 23,3657 10000 CCS A # 'CAUSE THAT'S WHERE THE INDEX NOW IS
058580,000320: 23,3660 13623 TCF LOOP2
058581,000321:
058582,000322: 23,3661 00006 EXTEND
058583,000323: 23,3662 26142 DIM DEXDEX # DECREMENT MAGNITUDE PRESERVING SIGN
058584,000324:
Page 1339 |
058586,000326: 23,3663 10142 TSTPOINT CCS DEXDEX # ONLY THE BRANCHING FUNCTION IS USED
058587,000327: 23,3664 13606 TCF R*TL**P
058588,000328: 23,3665 00145 TC RTNSAVER
058589,000329: 23,3666 13606 TCF R*TL**P
058590,000330: 23,3667 00145 TC RTNSAVER
058591,000331:
058592,000332: 23,3670 00736 SINESLOC ADRES SINCDU # FOR USE IN SETTING ADDRWD
058593,000333:
058594,000334: 23,3671 00004 INDEXI DEC 4 B-14 # ********** DON'T **********
058595,000335: 23,3672 00002 DEC 2 B-14 # ********** TOUCH **********
058596,000336: 23,3673 00000 DEC 0 B-14 # ********** THESE **********
058597,000337: 23,3674 00004 DEC 4 B-14 # ********** CONSTANTS **********
058598,000338:
058599,000339: # ****************************************************************************************************************
Page 1340 |
058601,000341: # THIS SUBROUTINE COMPUTES INCREMENTAL CHANGES IN CDU(GIMBAL) ANGLES FROM INCREMENTAL CHANGES ABOUT SM AXES. IT
058602,000342: # REQUIRES SM INCREMENTS AS A DP VECTOR SCALED AT ONE REVOLUTION(DTHETASM,+2,+4). SIN,COS(CDUY,Z,X) ARE IN
058603,000343: # SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY, SCALED TO ONE HALF. CDU INCREENTS ARE PLACED IN DCDU,+2,+4 SCALED TO
058604,000344: # ONE REVOLUTION.
058605,000345:
058606,000346: # * COS(IGA)SEC(MGA) 0 -SIN(IGA)SEC(MGA) *
058607,000347: # * *
058608,000348: # * -COS(IGA)TAN(MGA) 1 SIN(IGA)TAN(MGA) *
058609,000349: # * *
058610,000350: # * SIN(IGA) 0 COS(IGA) *
058611,000351:
058612,000352: 14,3405 BANK 14
058613,000353: 23,2000 SETLOC POWFLIT1
058614,000354: 23,2000 BANK
058615,000355:
058616,000356: 23,3675 41345 SMCDURES DLOAD DMP
058617,000357: 23,3676 03212 DTHETASM
058618,000358: 23,3677 00745 COSCDUY
058619,000359:
058620,000360: 23,3700 41325 PDDL DMP
058621,000361: 23,3701 03216 DTHETASM +4
058622,000362: 23,3702 00737 SINCDUY
058623,000363:
058624,000364: 23,3703 77621 BDSU
058625,000365: 23,3704 77671 DDV
058626,000366: 23,3705 00747 COSCDUZ
058627,000367: 23,3706 03204 STORE DCDU
058628,000368:
058629,000369: 23,3707 72405 DMP SL1 # SCALE
058630,000370: 23,3710 00741 SINCDUZ
058631,000371: 23,3711 77621 BDSU
058632,000372:
058633,000373: 23,3712 03214 DTHETASM +2
058634,000374: 23,3713 17206 STODL DCDU +2
058635,000375: 23,3714 03212 DTHETASM
058636,000376:
058637,000377: 23,3715 65205 DMP PDDL
058638,000378: 23,3716 00737 SINCDUY
058639,000379: 23,3717 03216 DTHETASM +4
058640,000380:
058641,000381: 23,3720 43205 DMP DAD
058642,000382: 23,3721 00745 COSCDUY
058643,000383: 23,3722 77752 SL1
058644,000384: 23,3723 03210 STORE DCDU +4
058645,000385: 23,3724 77616 RVQ
058646,000386:
End of include-file POWERED_FLIGHT_SUBROUTINES.agc. Parent file is MAIN.agc