Source Code

This source code is very close to the Apollo Guidance Computer software for the Apollo 13 Lunar module. This revision of the Luminary 131 program is from December of 1969, whereas there was a later revision in January of 1970, and still another revision in February, which is the code that flew on the mission. As far as this transcription is concerned, it was originally from a copy made in 1991 of a printout from the collection of AGC developer Don Eyles for collector David Craig. It was subsequently scanned by Gary Neff, reprocessed for online presentation at the now-discontinued History of Recent Science and Technology (HRST) website of MIT's Dibner Institute (the full-quality scans being discarded in the process), and finally transcribed by Ron Burkey for the Virtual AGC Project. Although a high-quality replacement scan for a completely illegible page was later provided by Gary Neff, the reduced legibility of the reprocessed HRST posting nevertheless caused many errors to be introduced into the transcription. Accordingly, a second scan of the same physical printout was made in 2017 for the Virtual AGC Project's collection at the Internet Archive, and used to correct the transcription errors. All of the scanned materials mentioned, as well as other Luminary 131 related material, are available online. Don Eyles apprently made additional hand-written notes in printout between 1991 and 2017, so the two scans are not identical in that respect. The page-headings in the printout read, in part:
	GAP:  ASSEMBLE REVISION 131 OF AGC PROGRAM LUMINARY BY NASA 2021112-091
	17:53 DEC. 19, 1969
Note that the date is the date the printout was made, not the date on which the program revision was released, although these happen to be very close together.

052600,000002:                                                                                                  ## Copyright:   Public domain.
052601,000003:                                                                                                  ## Filename:    POWERED_FLIGHT_SUBROUTINES.agc
052602,000004:                                                                                                  ## Purpose:     A section of Luminary 1C, revision 131.
052603,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
052604,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 13.
052605,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
052606,000008:                                                                                                  ##              that the code format has been changed to conform to the
052607,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
052608,000010:                                                                                                  ##              original YUL assembler.
052609,000011:                                                                                                  ## Reference:   pp. 1251-1259
052610,000012:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
052611,000013:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
052612,000014:                                                                                                  ## Mod history: 06/03/03 RSB.   Began transcribing.
052613,000015:                                                                                                  ##              05/14/05 RSB    Corrected website reference above.
052614,000016:                                                                                                  ##              2010-10-25 JL   Indentation fixes.
052615,000017:                                                                                                  ##              2017-01-06 RSB  Page numbers now agree with those on the
052616,000018:                                                                                                  ##                              original hardcopy, as opposed to the PDF page
052617,000019:                                                                                                  ##                              numbers in 1701.pdf.
052618,000020:                                                                                                  ##              2017-02-27 RSB  Proofed comment text using octopus/ProoferComments.
052619,000021:                                                                                                  ##              2017-03-01 RSB  Fixed lingering comment-text typos.
052620,000022:                                                                                                  ##              2017-03-14 RSB  Comment-text fixes noted in proofing Luminary 116.
052621,000023:                                                                                                  ##              2017-03-16 RSB  Comment-text fixes identified in 5-way
052622,000024:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
052623,000025:                                                                                                  ##              2017-03-17 RSB  Comment-text fixes identified in diff'ing
052624,000026:                                                                                                  ##                              Luminary 99 vs Comanche 55.
052625,000027:                                                                                                  ##              2021-05-30 ABS  SINSLOC -> SINESLOC
052626,000028: 

Page 1251

052628,000030: 14,3775                                           BANK     14                                    #  SAME FBANK AS THE FINDCDUD SUB-PROGRAM
052629,000031: 23,2000                                           SETLOC   POWFLITE                              
052630,000032: 23,2000                                           BANK                                           
052631,000033: 
052632,000034: 23,3541     0142                                  EBANK=   DEXDEX                                
052633,000035: 23,3541                                           COUNT*   $$/POWFL                              
052634,000036: 
052635,000037:                                                                                                  #  CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*TR*GS ALL COMPUTE THE SINES AND
052636,000038:                                                                                                  #  COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE
052637,000039:                                                                                                  #  PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU.  AN
052638,000040:                                                                                                  #  ADDITIONAL OUTPUT IS THE 1'S COMPLEMENT ANGLES AT CDUSPOT.  THESE
052639,000041:                                                                                                  #  ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT,
052640,000042:                                                                                                  #  EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2.  THEY DIFFER ONLY IN
052641,000043:                                                                                                  #  WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING.
052642,000044: 
052643,000045:                                                                                                  #  CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE
052644,000046:                                                                                                  #  SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS.
052645,000047:                                                                                                  #  THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY
052646,000048:                                                                                                  #  CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS.
052647,000049: 
052648,000050:                                                                                                  #  CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC.
052649,000051: 
052650,000052:                                                                                                  #  CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP.  THIS
052651,000053:                                                                                                  #  ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL
052652,000054:                                                                                                  #  ANGLES IN AN ORDER OTHER THAN X Y Z.  A CALL TO THIS ROUTINE IS
052653,000055:                                                                                                  #  NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO
052654,000056:                                                                                                  #  MODES (SMNB OR NBSM).  SINCE AX*SR*T EXPECTS TO FIND THE SINES AND
052655,000057:                                                                                                  #  COSINES IN THE ORDER Y Z X THE ANGLES MUST HAVE BEEN PLACED IN CDUSPOT
052656,000058:                                                                                                  #  IN THIS ORDER.  CD*TR*GS NEED NOT BE REPEATED WHEN AX*SR*T IS CALLED
052657,000059:                                                                                                  #  MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED.  NOTE THAT SINCE
052658,000060:                                                                                                  #  IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE
052659,000061:                                                                                                  #  CALLED USING BANKCALL.  SORRY.
052660,000062: 
052661,000063:                                                                                                  #  CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN
052662,000064:                                                                                                  #  INTERPRETIVE.
052663,000065: 
052664,000066: 23,3541           77776        CDUTRIG            EXIT                                           
052665,000067: 23,3542           03551                           TC       CDUTRIGS                              
052666,000068: 23,3543           06042                           TC       INTPRET                               
052667,000069: 23,3544           77616                           RVQ                                            
052668,000070: 
052669,000071: 23,3545           77776        CD*TR*G            EXIT                                           
052670,000072: 23,3546           03557                           TC       CD*TR*GS                              
052671,000073: 23,3547           06042                           TC       INTPRET                               
052672,000074: 23,3550           77616                           RVQ                                            
052673,000075: 
052674,000076: 23,3551           30032        CDUTRIGS           CA       CDUX                                  
052675,000077: 23,3552           54771                           TS       CDUSPOT    +4                         
052676,000078: 23,3553           30033                           CA       CDUY                                  
052677,000079: 23,3554           54765                           TS       CDUSPOT                               

Page 1252

052679,000081: 23,3555           30034                           CA       CDUZ                                  
052680,000082: 23,3556           54767                           TS       CDUSPOT    +2                         
052681,000083: 
052682,000084: 23,3557           00006        CD*TR*GS           EXTEND                                         
052683,000085: 23,3560           22142                           QXCH     TEM2                                  
052684,000086: 23,3561           34751                           CAF      FOUR                                  
052685,000087: 23,3562           76245        TR*GL**P           MASK     SIX                                   #  MAKE IT EVEN AND SMALLER
052686,000088: 23,3563           54143                           TS       TEM3                                  
052687,000089: 23,3564           50143                           INDEX    TEM3                                  
052688,000090: 23,3565           30765                           CA       CDUSPOT                               
052689,000091: 23,3566           52155                           DXCH     MPAC                                  #  STORING 2'S COMP ANGLE, LOADING MPAC
052690,000092: 23,3567           52127                           DXCH     VBUF       +4                         #  STORING MPAC FOR LATER RESTORATION
052691,000093: 23,3570           04713                           TC       USPRCADR                              
052692,000094: 23,3571           21577                           CADR     CDULOGIC                              
052693,000095: 23,3572           00006                           EXTEND                                         
052694,000096: 23,3573           30155                           DCA      MPAC                                  
052695,000097: 23,3574           50143                           INDEX    TEM3                                  
052696,000098: 23,3575           52766                           DXCH     CDUSPOT                               #  STORING 1'S COMPLEMENT ANGLE
052697,000099: 23,3576           04713                           TC       USPRCADR                              
052698,000100: 23,3577           01517                           CADR     COSINE                                
052699,000101: 23,3600           52155                           DXCH     MPAC                                  
052700,000102: 23,3601           50143                           INDEX    TEM3                                  
052701,000103: 23,3602           52744                           DXCH     COSCDU                                #  STORING COSINE
052702,000104: 23,3603           00006                           EXTEND                                         
052703,000105: 23,3604           50143                           INDEX    TEM3                                  
052704,000106: 23,3605           30766                           DCA      CDUSPOT                               #  LOADING 1'S COMPLEMENT ANGLE
052705,000107: 23,3606           04713                           TC       USPRCADR                              
052706,000108: 23,3607           01531                           CADR     SINE       +1                         #  SINE +1 EXPECTS ARGUMENT IN A AND L
052707,000109: 23,3610           52127                           DXCH     VBUF       +4                         #  BRINGING UP PRIOR MPAC TO BE RESTORED
052708,000110: 23,3611           52155                           DXCH     MPAC                                  
052709,000111: 23,3612           50143                           INDEX    TEM3                                  
052710,000112: 23,3613           52736                           DXCH     SINCDU                                
052711,000113: 23,3614           10143                           CCS      TEM3                                  
052712,000114: 23,3615           13562                           TCF      TR*GL**P                              
052713,000115: 23,3616           00142                           TC       TEM2                                  

Page 1253

052715,000117:                                                                                                  #  ****************************************************************************************************************
052716,000118:                                                                                                  #  QUICTRIG, INTENDED FOR GUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS.
052717,000119:                                                                                                  #  QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2,
052718,000120:                                                                                                  #  AND CDUSPOT +4.  UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN
052719,000121:                                                                                                  #  CDUSPOT.  QUICTRIG'S EXECUTION TIME IS 4.1 MS;  THIS IS 10 TIMES AS FAST AS CD*TR*GS.  QUICTRIG MAY BE
052720,000122:                                                                                                  #  CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL.
052721,000123: 
052722,000124: 23,3617           00004        QUICTRIG           INHINT                                         #  INHINT SINCE DAP USES THE SAME TEMPS
052723,000125: 23,3620           00006                           EXTEND                                         
052724,000126: 23,3621           22061                           QXCH     ITEMP1                                
052725,000127: 23,3622           34751                           CAF      FOUR                                  
052726,000128: 23,3623           76245                 +4        MASK     SIX                                   
052727,000129: 23,3624           54062                           TS       ITEMP2                                
052728,000130: 23,3625           50062                           INDEX    ITEMP2                                
052729,000131: 23,3626           30765                           CA       CDUSPOT                               
052730,000132: 23,3627           05033                           TC       SPSIN                                 
052731,000133: 23,3630           00006                           EXTEND                                         
052732,000134: 23,3631           74736                           MP       BIT14                                 #  SCALE DOWN TO MATCH INTERPRETER OUTPUTS
052733,000135: 23,3632           50062                           INDEX    ITEMP2                                
052734,000136: 23,3633           52736                           DXCH     SINCDU                                
052735,000137: 23,3634           50062                           INDEX    ITEMP2                                
052736,000138: 23,3635           30765                           CA       CDUSPOT                               
052737,000139: 23,3636           05032                           TC       SPCOS                                 
052738,000140: 23,3637           00006                           EXTEND                                         
052739,000141: 23,3640           74736                           MP       BIT14                                 
052740,000142: 23,3641           50062                           INDEX    ITEMP2                                
052741,000143: 23,3642           52744                           DXCH     COSCDU                                
052742,000144: 23,3643           10062                           CCS      ITEMP2                                
052743,000145: 23,3644           13623                           TCF      QUICTRIG   +4                         
052744,000146: 23,3645           30061                           CA       ITEMP1                                
052745,000147: 23,3646           00003                           RELINT                                         
052746,000148: 23,3647           00000                           TC       A                                     
052747,000149: 

Page 1254

052749,000151:                                                                                                  #  ****************************************************************************************************************
052750,000152:                                                                                                  #  THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
052751,000153:                                                                                                  #  INTERPRETIVE.  LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
052752,000154: 
052753,000155:                                                                                                  #  THESE INTERFACE ROUTINES ARE PERMANENT.  ALL RESTORE USER'S EBANK
052754,000156:                                                                                                  #  SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL",
052755,000157:                                                                                                  #  RETURNING VIA QPRET.  ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR-
052756,000158:                                                                                                  #  MED INTERPRETER-STYLE IN MPAC; COMPONENTS AT MPAC, MPAC +3, AND MPAC +5.
052757,000159: 
052758,000160:                                                                                                  #  TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES
052759,000161:                                                                                                  #  AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4; ODD
052760,000162:                                                                                                  #  LOCATIONS NEED NOT BE ZEROED).  TRG*NBSM DOES THE NB TO SM TRANSFOR-
052761,000163:                                                                                                  #  MATION; TRG*SMNB, VICE VERSA.
052762,000164: 
052763,000165:                                                                                                  #  CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF
052764,000166:                                                                                                  #  THE CDU COUNTERS.  OTHERWISE IT IS LIKE TRG*NBSM.
052765,000167: 
052766,000168:                                                                                                  #  CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM.
052767,000169: 
052768,000170: 23,3650           77776        CDU*SMNB           EXIT                                           
052769,000171: 23,3651           03551                           TC       CDUTRIGS                              
052770,000172: 23,3652           13655                           TCF      C*MM*N1                               
052771,000173: 
052772,000174: 23,3653           77776        TRG*SMNB           EXIT                                           
052773,000175: 23,3654           03557                           TC       CD*TR*GS                              
052774,000176: 23,3655           07535        C*MM*N1            TC       MPACVBUF                              #  AX*SR*T EXPECTS VECTOR IN VBUF
052775,000177: 23,3656           46250                           CS       THREE                                 #  SIGNAL FOR SM TO NB TRANSFORMATION
052776,000178: 23,3657           03677        C*MM*N2            TC       AX*SR*T                               
052777,000179: 23,3660           06042                           TC       INTPRET                               
052778,000180: 23,3661           43575                           VLOAD    RVQ                                   
052779,000181: 23,3662           00123                                    VBUF                                  
052780,000182: 
052781,000183: 23,3663           77776        CDU*NBSM           EXIT                                           
052782,000184: 23,3664           03551                           TC       CDUTRIGS                              
052783,000185: 23,3665           13670                           TCF      C*MM*N3                               
052784,000186: 
052785,000187: 23,3666           77776        TRG*NBSM           EXIT                                           
052786,000188: 23,3667           03557                           TC       CD*TR*GS                              
052787,000189: 23,3670           07535        C*MM*N3            TC       MPACVBUF                              #  FOR AX*SR*T
052788,000190: 23,3671           36250                           CA       THREE                                 #  SIGNAL FOR NB TO SM TRANSFORMATION
052789,000191: 23,3672           13657                           TCF      C*MM*N2                               
052790,000192: 
052791,000193:                                                                                                  #  *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU
052792,000194:                                                                                                  #  AND COSCDU) RATHER THAN THE ANGLES THEMSELVES.  OTHERWISE THEY ARE
052793,000195:                                                                                                  #  LIKE TRG*NBSM AND TRG*SMNB.
052794,000196: 
052795,000197:                                                                                                  #  NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES
052796,000198:                                                                                                  #  OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM

Page 1255

052798,000200:                                                                                                  #  AND TRG*SMNB NEED BE CALLED FOR EACH SERIES.  FOR SUBSEQUENT TRANSFOR-
052799,000201:                                                                                                  #  MATIONS USE *NBSM* AND *SMNB*.
052800,000202: 
052801,000203: 23,3673           77776        *SMNB*             EXIT                                           
052802,000204: 23,3674           13655                           TCF      C*MM*N1                               
052803,000205: 
052804,000206: 23,3675           77776        *NBSM*             EXIT                                           
052805,000207: 23,3676           13670                           TCF      C*MM*N3                               
052806,000208: 
052807,000209:                                                                                                  #  AX*SR*T COMBINES THE OLD SMNB AND NBSM.  FOR THE NB TO SM
052808,000210:                                                                                                  #  TRANSFORMATION, ENTER WITH +3 IN A.  FOR SM TO NB, ENTER WITH -3.
052809,000211:                                                                                                  #  THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF.
052810,000212:                                                                                                  #  AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION
052811,000213:                                                                                                  #  AT SINCDU AND COSCDU, IN THE ORDER Y Z X.  A CALL TO CD*TR*GS, WITH
052812,000214:                                                                                                  #  THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF
052813,000215:                                                                                                  #  THIS.  HERE IS A SAMPLE CALLING SEQUENCE:-
052814,000216:                                                                                                  #                TC      CDUTRIGS
052815,000217:                                                                                                  #                CS      THREE           ("CA THREE" FOR NBSM)
052816,000218:                                                                                                  #                TC      AX*SR*T
052817,000219:                                                                                                  #  THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE
052818,000220:                                                                                                  #  THAN ONCE, UNLESS THE ANGLES HAVE CHANGED.
052819,000221: 
052820,000222:                                                                                                  #  AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN
052821,000223:                                                                                                  #  UNITY.  A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE
052822,000224:                                                                                                  #  HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS-
052823,000225:                                                                                                  #  FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED.
052824,000226: 
052825,000227: 23,3677           54142        AX*SR*T            TS       DEXDEX                                #  WHERE IT BECOMES THE INDEX OF INDEXES
052826,000228: 23,3700           00006                           EXTEND                                         
052827,000229: 23,3701           22145                           QXCH     RTNSAVER                              
052828,000230: 
052829,000231: 23,3702           10142        R*TL**P            CCS      DEXDEX                                #                +3 --> 0        -3 --> 2
052830,000232: 23,3703           40142                           CS       DEXDEX                                #  THUS:         +2 --> 1        -2 --> 1
052831,000233: 23,3704           66250                           AD       THREE                                 #                +1 --> 2        -1 --> 0
052832,000234: 23,3705           00006                           EXTEND                                         
052833,000235: 23,3706           50000                           INDEX    A                                     
052834,000236: 23,3707           33766                           DCA      INDEXI                                
052835,000237: 23,3710           52144                           DXCH     DEXI                                  
052836,000238: 
052837,000239: 23,3711           34753                           CA       ONE                                   
052838,000240: 23,3712           54130                           TS       BUF                                   
052839,000241: 23,3713           00006                           EXTEND                                         
052840,000242: 23,3714           50143                           INDEX    DEX1                                  
052841,000243: 23,3715           40123                           DCS      VBUF                                  
052842,000244: 23,3716           13720                           TCF      LOOP1                                 #  REALLY BE A SUBTRACT, AND VICE VERSA
052843,000245: 
052844,000246: 23,3717           52131        LOOP2              DXCH     BUF                                   #  LOADING VECTOR COMPONENT, STORING INDEX

Page 1256

052846,000248: 23,3720           52155        LOOP1              DXCH     MPAC                                  
052847,000249: 23,3721           33764                           CA       SINESLOC                              
052848,000250: 23,3722           60143                           AD       DEX1                                  
052849,000251: 23,3723           54116                           TS       ADDRWD                                
052850,000252: 
052851,000253: 23,3724           07112                           TC       DMPSUB                                #  MULTIPLY BY SIN(CDUANGLE)
052852,000254: 23,3725           10142                           CCS      DEXDEX                                
052853,000255: 23,3726           52155                           DXCH     MPAC                                  #  NBSM CASE
052854,000256: 23,3727           13732                           TCF      +3                                    
052855,000257: 23,3730           00006                           EXTEND                                         #  SMNB CASE
052856,000258: 23,3731           40155                           DCS      MPAC                                  
052857,000259: 23,3732           52160                           DXCH     TERM1TMP                              
052858,000260: 
052859,000261: 23,3733           36245                           CA       SIX                                   #  SINCDU AND COSCDU (EACH 6 WORDS) MUST
052860,000262: 23,3734           26116                           ADS      ADDRWD                                #        BE CONSECUTIVE AND IN THAT ORDER
052861,000263: 
052862,000264: 23,3735           00006                           EXTEND                                         
052863,000265: 23,3736           50130                           INDEX    BUF                                   
052864,000266: 23,3737           50143                           INDEX    DEX1                                  
052865,000267: 23,3740           30123                           DCA      VBUF                                  
052866,000268: 23,3741           52155                           DXCH     MPAC                                  
052867,000269: 23,3742           07112                           TC       DMPSUB                                #  MULTIPLY BY COS(CDUANGLE)
052868,000270: 23,3743           52155                           DXCH     MPAC                                  
052869,000271: 23,3744           20160                           DAS      TERM1TMP                              
052870,000272: 23,3745           52160                           DXCH     TERM1TMP                              
052871,000273: 23,3746           20001                           DDOUBL                                         
052872,000274: 23,3747           50130                           INDEX    BUF                                   
052873,000275: 23,3750           50143                           INDEX    DEX1                                  
052874,000276: 23,3751           52123                           DXCH     VBUF                                  
052875,000277: 23,3752           52131                           DXCH     BUF                                   #  LOADING INDEX, STORING VECTOR COMPONENT
052876,000278: 23,3753           10000                           CCS      A                                     #  'CAUSE THAT'S WHERE THE INDEX NOW IS
052877,000279: 23,3754           13717                           TCF      LOOP2                                 
052878,000280: 
052879,000281: 23,3755           00006                           EXTEND                                         
052880,000282: 23,3756           26142                           DIM      DEXDEX                                #  DECREMENT MAGNITUDE PRESERVING SIGN
052881,000283: 
052882,000284: 23,3757           10142        TSTPOINT           CCS      DEXDEX                                #  ONLY THE BRANCHING FUNCTION IS USED
052883,000285: 23,3760           13702                           TCF      R*TL**P                               
052884,000286: 23,3761           00145                           TC       RTNSAVER                              
052885,000287: 23,3762           13702                           TCF      R*TL**P                               
052886,000288: 23,3763           00145                           TC       RTNSAVER                              
052887,000289: 
052888,000290: 23,3764           00735        SINESLOC           ADRES    SINCDU                                #  FOR USE IN SETTING ADDRWD
052889,000291: 
052890,000292: 23,3765           00004        INDEXI             DEC      4          B-14                       #  **********   DON'T   **********
052891,000293: 23,3766           00002                           DEC      2          B-14                       #  **********   TOUCH   **********
052892,000294: 23,3767           00000                           DEC      0          B-14                       #  **********   THESE   **********

Page 1257

052894,000296: 23,3770           00004                           DEC      4          B-14                       #  ********** CONSTANTS **********
052895,000297: 
052896,000298:                                                                                                  #  ****************************************************************************************************************
052897,000299: 
052898,000300: 10,2030                                           BANK     10                                    
052899,000301: 10,2000                                           SETLOC   FLESHLOC                              
052900,000302: 10,2000                                           BANK                                           
052901,000303: 10,2030                                           COUNT*   $$/POWFL                              
052902,000304: 
052903,000305:                                                                                                  #  ROUTINE FLESHPOT COMPUTES THE BODY-STABLE MEMBER TRANSFORMATION MATRIX (COMMONLY CALLED XNB) AND STORES
052904,000306:                                                                                                  #  IT IN THE LOCATIONS SPECIFIED BY THE ECADR ENTERING IN A.
052905,000307: 
052906,000308: 10,2030           77776        CALCSMSC           EXIT                                           
052907,000309: 10,2031           04616                           TC       BANKCALL                              
052908,000310: 10,2032           20036                           CADR     FLESHPOT   -1                         
052909,000311: 10,2033           06042                           TC       INTPRET                               
052910,000312: 10,2034           77616                           RVQ                                            
052911,000313: 
052912,000314: 10,2035           02664        XNBECADR           ECADR    XNB                                   
052913,000315: 
052914,000316: 10,2036           32035                 -1        CAF      XNBECADR                              
052915,000317: 
052916,000318: 10,2037           54142        FLESHPOT           TS       TEM2                                  
052917,000319: 10,2040           56003                           XCH      EBANK                                 
052918,000320: 10,2041           56142                           XCH      TEM2                                  
052919,000321: 10,2042           74357                           MASK     LOW8                                  
052920,000322: 10,2043           65007                           AD       OCT1400                               
052921,000323: 10,2044           54141                           TS       TEM1                                  
052922,000324: 
052923,000325: 10,2045           00006                           EXTEND                                         
052924,000326: 10,2046           30744                           DCA      COSCDUY                               
052925,000327: 10,2047           52155                           DXCH     MPAC                                  
052926,000328: 10,2050           07106                           TC       DMP                                   
052927,000329: 10,2051           00745                           ADRES    COSCDUZ                               
052928,000330: 10,2052           52155                           DXCH     MPAC                                  
052929,000331: 10,2053           20001                           DDOUBL                                         
052930,000332: 10,2054           50141                           INDEX    TEM1                                  
052931,000333: 10,2055           52001                           DXCH     0                                     #  = COSY COSZ
052932,000334: 
052933,000335: 10,2056           00006                           EXTEND                                         
052934,000336: 10,2057           30740                           DCA      SINCDUZ                               
052935,000337: 10,2060           50141                           INDEX    TEM1                                  
052936,000338: 10,2061           52003                           DXCH     2                                     #  = SINZ
052937,000339: 
052938,000340: 10,2062           00006                           EXTEND                                         
052939,000341: 10,2063           40736                           DCS      SINCDUY                               
052940,000342: 10,2064           52155                           DXCH     MPAC                                  
052941,000343: 10,2065           07112                           TC       DMPSUB                                #  ADDRWD SET TO COSCDUZ

Page 1258

052943,000345: 10,2066           52155                           DXCH     MPAC                                  
052944,000346: 10,2067           20001                           DDOUBL                                         
052945,000347: 10,2070           50141                           INDEX    TEM1                                  
052946,000348: 10,2071           52005                           DXCH     4                                     #  = - SINY COSZ
052947,000349: 
052948,000350: 10,2072           00006                           EXTEND                                         
052949,000351: 10,2073           40742                           DCS      SINCDUX                               
052950,000352: 10,2074           52155                           DXCH     MPAC                                  
052951,000353: 10,2075           07112                           TC       DMPSUB                                #  ADDRWD SET TO COSCDUZ STILL
052952,000354: 10,2076           52155                           DXCH     MPAC                                  
052953,000355: 10,2077           20001                           DDOUBL                                         
052954,000356: 10,2100           52160                           DXCH     MPAC       +3                         
052955,000357: 
052956,000358: 10,2101           00006                           EXTEND                                         
052957,000359: 10,2102           40742                           DCS      SINCDUX                               
052958,000360: 10,2103           52155                           DXCH     MPAC                                  
052959,000361: 10,2104           07106                           TC       DMP                                   
052960,000362: 10,2105           00737                           ADRES    SINCDUZ                               
052961,000363: 10,2106           00006                           EXTEND                                         
052962,000364: 10,2107           40155                           DCS      MPAC                                  
052963,000365: 10,2110           52162                           DXCH     MPAC       +5                         
052964,000366: 10,2111           07106                           TC       DMP                                   
052965,000367: 10,2112           00735                           ADRES    SINCDUY                               
052966,000368: 10,2113           52155                           DXCH     MPAC                                  
052967,000369: 10,2114           20001                           DDOUBL                                         
052968,000370: 10,2115           20001                           DDOUBL                                         
052969,000371: 10,2116           52162                           DXCH     MPAC       +5                         
052970,000372: 
052971,000373: 10,2117           52155                           DXCH     MPAC                                  
052972,000374: 10,2120           07106                           TC       DMP                                   
052973,000375: 10,2121           00743                           ADRES    COSCDUY                               
052974,000376: 10,2122           52155                           DXCH     MPAC                                  
052975,000377: 10,2123           20001                           DDOUBL                                         
052976,000378: 10,2124           20001                           DDOUBL                                         
052977,000379: 10,2125           52131                           DXCH     BUF                                   
052978,000380: 
052979,000381: 10,2126           00006                           EXTEND                                         
052980,000382: 10,2127           30744                           DCA      COSCDUY                               
052981,000383: 10,2130           52155                           DXCH     MPAC                                  
052982,000384: 10,2131           07106                           TC       DMP                                   
052983,000385: 10,2132           00747                           ADRES    COSCDUX                               
052984,000386: 10,2133           52155                           DXCH     MPAC                                  
052985,000387: 10,2134           20001                           DDOUBL                                         
052986,000388: 10,2135           20162                           DAS      MPAC       +5                         
052987,000389: 
052988,000390: 10,2136           00006                           EXTEND                                         
052989,000391: 10,2137           30736                           DCA      SINCDUY                               
052990,000392: 10,2140           52155                           DXCH     MPAC                                  
052991,000393: 10,2141           07112                           TC       DMPSUB                                #  ADDRWD SET TO COSCDUX
052992,000394: 10,2142           52155                           DXCH     MPAC                                  
052993,000395: 

Page 1259

052995,000397: 10,2143           20001                           DDOUBL                                         
052996,000398: 10,2144           20131                           DAS      BUF                                   
052997,000399: 
052998,000400: 10,2145           52131                           DXCH     BUF                                   
052999,000401: 10,2146           52155                           DXCH     MPAC                                  
053000,000402: 
053001,000403: 10,2147           00006                           EXTEND                                         
053002,000404: 10,2150           30155                           DCA      MPAC                                  
053003,000405: 10,2151           50141                           INDEX    TEM1                                  
053004,000406: 10,2152           52015                           DXCH     14                                    #  = SINY COSX + SINX SINZ COSY
053005,000407: 
053006,000408: 10,2153           00006                           EXTEND                                         
053007,000409: 10,2154           30160                           DCA      MPAC       +3                         
053008,000410: 10,2155           50141                           INDEX    TEM1                                  
053009,000411: 10,2156           52017                           DXCH     16                                    #  = - SINX COSZ
053010,000412: 
053011,000413: 10,2157           00006                           EXTEND                                         
053012,000414: 10,2160           30162                           DCA      MPAC       +5                         
053013,000415: 10,2161           50141                           INDEX    TEM1                                  
053014,000416: 10,2162           52021                           DXCH     20                                    #  = COSX COSY - SINX SINY SINZ
053015,000417: 
053016,000418: 10,2163           30141                           CA       TEM1                                  
053017,000419: 10,2164           54116                           TS       ADDRWD                                
053018,000420: 10,2165           00006                           EXTEND                                         
053019,000421: 10,2166           30006                           DCA      Z                                     
053020,000422: 10,2167           64751                           AD       FOUR                                  
053021,000423: 10,2170           52165                           DXCH     LOC                                   
053022,000424: 10,2171           34744                           CAF      BIT8                                  
053023,000425: 10,2172           54023                           TS       EDOP                                  
053024,000426: 10,2173           17463                           TCF      VXV                                   
053025,000427: 10,2174           52155                           DXCH     MPAC                                  
053026,000428: 10,2175           20001                           DDOUBL                                         
053027,000429: 10,2176           50141                           INDEX    TEM1                                  
053028,000430: 10,2177           52007                           DXCH     6                                     
053029,000431: 
053030,000432: 10,2200           52160                           DXCH     MPAC       +3                         
053031,000433: 10,2201           20001                           DDOUBL                                         
053032,000434: 10,2202           50141                           INDEX    TEM1                                  
053033,000435: 10,2203           52011                           DXCH     10                                    
053034,000436: 
053035,000437: 10,2204           52162                           DXCH     MPAC       +5                         
053036,000438: 10,2205           20001                           DDOUBL                                         
053037,000439: 10,2206           50141                           INDEX    TEM1                                  
053038,000440: 10,2207           52013                           DXCH     12                                    
053039,000441: 
053040,000442: 10,2210           30142                           CA       TEM2                                  
053041,000443: 10,2211           54003                           TS       EBANK                                 
053042,000444: 10,2212           14631                           TCF      SWRETURN                              
053043,000445: 

End of include-file POWERED_FLIGHT_SUBROUTINES.agc.  Parent file is MAIN.agc