Source Code

These source-code files derive from a printout of Luminary 210 (Apollo 15-17 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Jim Lawton, and transcribed to source code by a team of volunteers. This colorized, syntax-highlighted form was created by assembling that transcribed source code. Note that the full page images are available on the Virtual AGC project page at archive.org, while reduced-size images are presented at the VirtualAGC project website. Report or fix any transcription errors at the Virtual AGC project code repository.

Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY 
	BY NASA 2021112-161 17:11 MAR. 19,1971
Note that the date is the date of the printout, not the date of the program revision.

021516,000002:                                                                                                  ## Copyright:   Public domain.
021517,000003:                                                                                                  ## Filename:    R60,R62.agc
021518,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
021519,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
021520,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
021521,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
021522,000008:                                                                                                  ##              that the code format has been changed to conform to the
021523,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
021524,000010:                                                                                                  ##              original YUL assembler.
021525,000011:                                                                                                  ## Reference:   pp. 487-500
021526,000012:                                                                                                  ## Assembler:   yaYUL
021527,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
021528,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
021529,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Luminary131 version.
021530,000016:                                                                                                  ##              2016-11-27 HG   Transcribed
021531,000017:                                                                                                  ##              2016-12-07 HG   Fix P00 -> POO
021532,000018:                                                                                                  ##                              Change POO -> P00 in some comments
021533,000019:                                                                                                  ##              2016-12-23 RSB  Proofed comment text with octopus/ProoferComments
021534,000020:                                                                                                  ##                              and fixed all errors found.
021535,000021:                                                                                                  ##              2017-03-09 RSB  Comment text fixes noted in proofing Luminary 116.
021536,000022:                                                                                                  ##              2017-03-16 RSB  Comment-text fixes identified in 5-way
021537,000023:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
021538,000024: 

Page 487

021540,000026:                                                                                                  #  MOD NO: 0                             DATE: 1 MAY 1968
021541,000027:                                                                                                  #  MOD BY: DIGITAL DEVEL GROUP           LOG SECTION R60,R62
021542,000028: 
021543,000029:                                                                                                  #  FUNCTIONAL DESCRIPTION:
021544,000030: 
021545,000031:                                                                                                  #  CALLED AS A GENERAL SUBROUTINE TO MANEUVER THE LM TO A SPECIFIED
021546,000032:                                                                                                  #  ATTITUDE.
021547,000033: 
021548,000034:                                                                                                  #  1. IF THE 3-AXIS FLAG IS NOT SET THE FINAL CDU ANGLES ARE
021549,000035:                                                                                                  #  CALCULATED (VECPOINT).
021550,000036: 
021551,000037:                                                                                                  #  2. THE FDAI BALL ANGLES (NOUN 18) ARE CALCULATED (BALLANGS).
021552,000038: 
021553,000039:                                                                                                  #  3. REQUEST FLASHING DISPLAY V50 N18 PLEASE PERFORM AUTO MANEUVER.
021554,000040: 
021555,000041:                                                                                                  #  4. IF PRIORITY DISPLAY FLAG IS SET DO A PHASECHANGE. THEN AWAIT
021556,000042:                                                                                                  #  ASTRONAUT RESPONSE.
021557,000043: 
021558,000044:                                                                                                  #  5. DISPLAY RESPONSE RETURNS:
021559,000045: 
021560,000046:                                                                                                  #      A. ENTER - RESET 3-AXIS FLAG AND RETURN TO CLIENT.
021561,000047: 
021562,000048:                                                                                                  #      B. TERMINATE - IF IN P00 GO TO STEP 5A. OTHERWISE CHECK IF R61 IS
021563,000049:                                                                                                  #         THE CALLING PROGRAM. IF IN R61 AN EXIT IS MADE TO GOTOV56. IF
021564,000050:                                                                                                  #         NOT IN R61 AN EXIT IS DONE VIA GOTOP00H.
021565,000051: 
021566,000052:                                                                                                  #      C. PROCEED - CONTINUE WITH PROGRAM AT STEP 6.
021567,000053: 
021568,000054:                                                                                                  #  6. IF THE 3-AXISFLAG IS NOT SET, THE FINAL CDU ANGLES ARE CALCULATED
021569,000055:                                                                                                  #     (VECPOINT).
021570,000056: 
021571,000057:                                                                                                  #  7. THE FDAI BALL ANGLES (NOUN 18) ARE CALCULATED (BALLANGS).
021572,000058: 
021573,000059:                                                                                                  #  8. IF THE G+N SWITCH IS NOT SET GO BACK TO STEP 3.
021574,000060: 
021575,000061:                                                                                                  #  9. IF THE AUTO SWITCH IS NOT SET GO BACK TO STEP 3.
021576,000062: 
021577,000063:                                                                                                  #  10. NONFLASHING DISPLAY V06N18 (FDAI ANGLES).
021578,000064: 
021579,000065:                                                                                                  #  11. DO A PHASECHANGE.
021580,000066: 
021581,000067:                                                                                                  #  12. DO A MANEUVER CALCULATION AND ICDU DRIVE ROUTINE TO ACHIEVE FINAL
021582,000068: 
021583,000069:                                                                                                  #      GIMBAL ANGLES (GOMANUR).
021584,000070:                                                                                                  #  13. AT END OF MANEUVER GO TO STEP 3.
021585,000071: 
021586,000072:                                                                                                  #           IF SATISFACTORY MANEUVER STEP 5A EXITS R60.
021587,000073:                                                                                                  #           FOR FURTHER ADJUSTMENT OF THE VEHICLE ATTITUDE ABOUT THE
021588,000074:                                                                                                  #           DESIRED VECTOR, THE ROUTINE MAY BE PERFORMED AGAIN STARTING AT
021589,000075: 

Page 488

021591,000077:                                                                                                  #           STEP 5C.
021592,000078: 
021593,000079:                                                                                                  #  CALLING SEQUENCE:  TC BANKCALL
021594,000080:                                                                                                  #                     CADR R60LEM
021595,000081: 
021596,000082:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED : SCAXIS, POINTVSM (FOR VECPOINT)
021597,000083:                                                                                                  #                                     3AXISFLG.
021598,000084: 
021599,000085:                                                                                                  #  SUBROUTINES CALLED: VECPOINT, BALLANGS, GOPERF2R, LINUS, GODSPER,
021600,000086:                                                                                                  #                     GOMANUR, DOWNFLAG, PHASCHNG, UPFLAG
021601,000087: 
021602,000088:                                                                                                  #  NORMAL EXIT MODES: CAE TEMPR60   (CALLERS RETURN ADDRESS)
021603,000089:                                                                                                  #                     TC  BANKJUMP
021604,000090: 
021605,000091:                                                                                                  #  ALARMS: NONE
021606,000092: 
021607,000093:                                                                                                  #  OUTPUT: NONE
021608,000094: 
021609,000095:                                                                                                  #  DEBRIS: CPHI, CTHETA, CPSI, 3AXISFLG, TBASE2
021610,000096: 
021611,000097: 
021612,000098: 34,2000                                           BANK     34                                    
021613,000099: 26,2000                                           SETLOC   MANUVER                               
021614,000100: 26,2000                                           BANK                                           
021615,000101: 
021616,000102: 26,2125     1163                                  EBANK=   TEMPR60                               
021617,000103: 
021618,000104: 26,2125                                           COUNT*   $$/R06                                
021619,000105: 26,2125           04636        R60LEM             TC       MAKECADR                              
021620,000106: 26,2126           55163                           TS       TEMPR60                               
021621,000107: 
021622,000108: 26,2127           34737        REDOMANN           CAF      3AXISBIT                              
021623,000109: 26,2130           70101                           MASK     FLAGWRD5                              #  IS 3-AXIS FLAG SET
021624,000110: 26,2131           10000                           CCS      A                                     
021625,000111: 26,2132           12140                           TCF      TOBALL                                #  YES
021626,000112: 26,2133           06060                           TC       INTPRET                               
021627,000113: 26,2134           77624                           CALL                                           
021628,000114: 26,2135           56040                                    VECPOINT                              #  TO COMPUTE FINAL ANGLES
021629,000115: 26,2136           00322                           STORE    CPHI                                  #  STORE FINAL ANGLES - CPHI,CTHETA,CPSI
021630,000116: 26,2137           77776                           EXIT                                           
021631,000117: 
021632,000118: 26,2140           05506        TOBALL             TC       UPFLAG                                #  INSURE THAT TOTAL ATTITUDE ERRORS ARE
021633,000119: 26,2141           00013                           ADRES    NEEDLFLG                              #  DISPLAYED ON FDAI ERROR NEEDLES
021634,000120: 26,2142           05520                           TC       DOWNFLAG                              
021635,000121: 26,2143           00000                           ADRES    NEED2FLG                              
021636,000122: 26,2144           04607                           TC       BANKCALL                              
021637,000123: 26,2145           54300                           CADR     BALLANGS                              #  TO CONVERT ANGLES TO FDAI
021638,000124: 26,2146           32266        TOBALLA            CAF      V06N18                                
021639,000125: 26,2147           04607                           TC       BANKCALL                              
021640,000126: 

Page 489

021642,000128: 26,2150           20722                           CADR     GOPERF2R                              #  DISPLAY PLEASE PERFORM AUTO MANEUVER
021643,000129: 26,2151           02254                           TC       R61TEST                               
021644,000130: 26,2152           02162                           TC       REDOMANC                              #  PROCEED
021645,000131: 26,2153           02207                           TC       ENDMANU1                              #  ENTER I.E. FINISHED WITH R60
021646,000132: 26,2154           02214                           TC       CHKLINUS                              #  TO CHECK FOR PRIORITY DISPLAYS
021647,000133: 26,2155           05146                           TC       ENDOFJOB                              
021648,000134: 
021649,000135: 26,2156           46266                           CS       THREE                                 #  SET UP RESTART POINT AT BEGINNING OF
021650,000136: 26,2157           60133                           AD       BUF2                                  #    DISPLAY IF PRIORITY DISP FLAG SET
021651,000137: 26,2160           02221                           TC       CHKLINS1                              
021652,000138: 26,2161           05146                           TC       ENDOFJOB                              
021653,000139: 
021654,000140: 26,2162           34737        REDOMANC           CAF      3AXISBIT                              
021655,000141: 26,2163           70101                           MASK     FLAGWRD5                              #  IS 3-AXIS FLAG SET
021656,000142: 26,2164           10000                           CCS      A                                     
021657,000143: 26,2165           12173                           TCF      TOBALLC                               #  YES
021658,000144: 26,2166           06060                           TC       INTPRET                               
021659,000145: 26,2167           77624                           CALL                                           
021660,000146: 26,2170           56040                                    VECPOINT                              #  TO COMPUTE FINAL ANGLES
021661,000147: 26,2171           00322                           STORE    CPHI                                  #  STORE ANGLES
021662,000148: 26,2172           77776                           EXIT                                           
021663,000149: 
021664,000150: 26,2173           04607        TOBALLC            TC       BANKCALL                              
021665,000151: 26,2174           54300                           CADR     BALLANGS                              #  TO CONVERT ANGLES TO FDAI
021666,000152: 26,2175           02267                           TC       G+N,AUTO                              #  CHECK AUTO MODE
021667,000153: 26,2176           10000                           CCS      A                                     
021668,000154: 26,2177           12146                           TCF      TOBALLA                               #  NOT AUTO, GO REREQUEST AUTO MANEUVER.
021669,000155: 
021670,000156: 26,2200           02214        AUTOMANV           TC       CHKLINUS                              
021671,000157: 26,2201           12204                           TCF      STARTMNV                              
021672,000158: 26,2202           32213                           CAF      STARTMNAD                             #  RESTART AT STARTMNV IF PRIORITY
021673,000159: 26,2203           55054                           TS       TBASE2                                #     DISPLAY FLAG SET
021674,000160: 
021675,000161: 26,2204           04607        STARTMNV           TC       BANKCALL                              #  PERFORM MANEUVER VIA KALCMANU
021676,000162: 26,2205           42764                           CADR     GOMANUR                               
021677,000163: 
021678,000164: 26,2206           12146        ENDMANUV           TCF      TOBALLA                               #  FINISHED MANEUVER.
021679,000165: 26,2207           05520        ENDMANU1           TC       DOWNFLAG                              #  RESET 3-AXIS FLAG
021680,000166: 26,2210           00124                           ADRES    3AXISFLG                              
021681,000167: 26,2211           31163                           CAE      TEMPR60                               #                                        -
021682,000168: 26,2212           04631                           TC       BANKJUMP                              #                                        -
021683,000169: 
021684,000170: 26,2213           02204        STARTMNAD           ADRES    STARTMNV                              
021685,000171: 
021686,000172: 26,2214           40101        CHKLINUS           CS       FLAGWRD5                              
021687,000173: 26,2215           74727                           MASK     PDSPFBIT                              #  IS PRIORITY DISPLAY FLAG SET?
021688,000174: 26,2216           10000                           CCS      A                                     #                                        -
021689,000175: 26,2217           00002                           TC       Q                                     #  NO - EXIT
021690,000176: 26,2220           16760                           TCF      Q+1                                   #  GO BACK AND SET UP CORRECT RESTART ADDR.
021691,000177: 

Page 490

021693,000179: 26,2221           55054        CHKLINS1           TS       TBASE2                                
021694,000180: 26,2222           30002                           CA       Q                                     
021695,000181: 26,2223           54156                           TS       MPAC       +2                         
021696,000182: 
021697,000183: 26,2224           05355                           TC       PHASCHNG                              
021698,000184: 26,2225           00132                           OCT      00132                                 
021699,000185: 
021700,000186: 26,2226           34736                           CAF      BIT7                                  
021701,000187: 26,2227           05466                           TC       LINUS                                 #  GO SET BITS FOR PRIORITY DISPLAY    -
021702,000188: 26,2230           00156                           TC       MPAC       +2                         
021703,000189: 
021704,000190: 26,2231           37735        RELINUS            CAF      PRIO26                                #  RESTORE ORIGINAL PRIORITY
021705,000191: 26,2232           05137                           TC       PRIOCHNG                              
021706,000192: 
021707,000193: 26,2233           34740                           CAF      TRACKBIT                              #  DON'T CONTINUE R60 UNLESS TRACKFLAG ON.
021708,000194: 26,2234           70075                           MASK     FLAGWRD1                              
021709,000195: 26,2235           10000                           CCS      A                                     
021710,000196: 26,2236           12251                           TCF      RER60                                 
021711,000197: 
021712,000198: 26,2237           34736                           CAF      RNDVZBIT                              #  IS IT P20?
021713,000199: 26,2240           70074                           MASK     FLAGWRD0                              
021714,000200: 26,2241           10000                           CCS      A                                     
021715,000201: 26,2242           02246                           TC       +4                                    #  YES
021716,000202: 26,2243           05355                           TC       PHASCHNG                              #  NO, MUST BE P25, SET 2.11 SPOT
021717,000203: 26,2244           40112                           OCT      40112                                 
021718,000204: 
021719,000205: 26,2245           05146                           TC       ENDOFJOB                              
021720,000206: 
021721,000207: 26,2246           05355                           TC       PHASCHNG                              #  SET 2.7 SPOT FOR P20
021722,000208: 26,2247           40072                           OCT      40072                                 
021723,000209: 
021724,000210: 26,2250           05146                           TC       ENDOFJOB                              
021725,000211: 
021726,000212: 26,2251           05506        RER60              TC       UPFLAG                                #  SET PRIO DISPLAY FLAG AFTER RESTART
021727,000213: 26,2252           00114                           ADRES    PDSPFLAG                              
021728,000214: 
021729,000215: 26,2253           01054                           TC       TBASE2                                
021730,000216: 
021731,000217: 26,2254           31010        R61TEST            CA       MODREG                                #  IF WE ARE IN P00 IT MUST BE V49 OR V89
021732,000218: 26,2255           00006                           EXTEND                                         
021733,000219: 26,2256           12207                           BZF      ENDMANU1                              #  THUS WE GO TO ENDEXT VIA USER
021734,000220: 
021735,000221: 26,2257           30101                           CA       FLAGWRD5                              
021736,000222: 26,2260           74727                           MASK     PDSPFBIT                              
021737,000223: 26,2261           00006                           EXTEND                                         
021738,000224: 26,2262           16001                           BZF      GOTOPOOH                              #  NO
021739,000225: 26,2263           06043                           TC       GOTOV56                               #  YES
021740,000226: 
021741,000227: 26,2264           20100        BIT14+7            OCT      20100                                 #                                        -
021742,000228: 26,2265           00203        OCT203             OCT      203                                   
021743,000229: 

Page 491

021745,000231: 26,2266           01422        V06N18             VN       0618                                  
021746,000232:                                                                                                  #           SUBROUTINE TO CHECK FOR G+N CONTROL, AUTO STABILIZATION
021747,000233: 
021748,000234:                                                                                                  #           RETURNS WITH C(A) = +  IF NOT SET FOR G+N, AUTO
021749,000235:                                                                                                  #           RETURNS WITH C(A) = +0 IF SWITCHES ARE SET
021750,000236: 
021751,000237: 26,2267           00006        G+N,AUTO           EXTEND                                         
021752,000238: 26,2270           00030                           READ     CHAN30                                
021753,000239: 26,2271           74733                           MASK     BIT10                                 
021754,000240: 26,2272           10000                           CCS      A                                     
021755,000241: 26,2273           00002                           TC       Q                                     #  NOT IN G+N  C(A) = +
021756,000242: 26,2274           00006        ISITAUTO           EXTEND                                         #  CHECK FOR AUTO MODE
021757,000243: 26,2275           00031                           READ     CHAN31                                
021758,000244: 26,2276           74727                           MASK     BIT14                                 
021759,000245: 26,2277           00002                           TC       Q                                     #  (+) = NOT IN AUTO, (+0) = AOK
021760,000246: 

Page 492

021762,000248:                                                                                                  #  PROGRAM DESCRIPTION BALLANGS
021763,000249:                                                                                                  #  MOD NO.         LOG SECTION R60,R62
021764,000250: 
021765,000251:                                                                                                  #  WRITTEN BY RAMA M.AIYAWAR
021766,000252:                                                                                                  #  FUNCTIONAL DESCRIPTION
021767,000253: 
021768,000254:                                                                                                  #  COMPUTES LM FDAI BALL DISPLAY ANGLES
021769,000255:                                                                                                  #  CALLING SEQUENCE
021770,000256: 
021771,000257:                                                                                                  #           TC      BALLANGS
021772,000258:                                                                                                  #  NORMAL EXIT MODE
021773,000259: 
021774,000260:                                                                                                  #           TC      BALLEXIT        (SAVED Q)
021775,000261: 
021776,000262:                                                                                                  #  ALARM OR EXIT MODE   NIL
021777,000263:                                                                                                  #  SUBROUTINES CALLED
021778,000264:                                                                                                  #           CD*TR*G
021779,000265:                                                                                                  #           ARCTAN
021780,000266: 
021781,000267:                                                                                                  #  INPUT
021782,000268: 
021783,000269:                                                                                                  #  CPHI,CTHETA,CPSI  ARE  THE ANGLES CORRESPONDING TO AOG,AIG,AMG.  THEY ARE
021784,000270:                                                                                                  #  SP,2S COMPLIMENT SCALED TO HALF REVOLUTION.
021785,000271:                                                                                                  #  OUTPUT
021786,000272: 
021787,000273:                                                                                                  #  FDAIX,FDAIY,FDAIZ ARE THE REQUIRED BALL ANGLES SCALED TO HALF REVOLUTION
021788,000274:                                                                                                  #  SP,2S COMPLIMENT.
021789,000275:                                                                                                  #  THESE ANGLES WILL BE DISPLAYED AS DEGREES AND HUNDREDTHS, IN THE ORDER ROLL, PITCH, YAW, USING NOUNS 18 & 19.
021790,000276: 
021791,000277:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED
021792,000278: 
021793,000279:                                                                                                  #  CPHI,CTHETA,CPSI EACH A SP REGISTER
021794,000280:                                                                                                  #  DEBRIS
021795,000281: 
021796,000282:                                                                                                  #  A,L,Q,MPAC,SINCDU,COSCDU,PUSHLIST,BALLEXIT
021797,000283: 
021798,000284: 
021799,000285:                                                                                                  #  NOMENCLATURE:  CPHI, CTHETA, & CPSI REPRESENT THE OUTER, INNER, & MIDDLE GIMBAL ANGLES, RESPECTIVELY; OR
021800,000286:                                                                                                  #  EQUIVALENTLY, CDUX, CDUY, & CDUZ.
021801,000287: 
021802,000288:                                                                                                  #  NOTE:  ARCTAN CHECKS FOR OVERFLOW AND SHOULD BE ABLE TO HANDLE ANY SINGULARITIES.
021803,000289: 
021804,000290: 26,2000                                           SETLOC   BAWLANGS                              
021805,000291: 26,2000                                           BANK                                           
021806,000292: 
021807,000293: 26,2300                                           COUNT*   $$/BALL                               
021808,000294: 26,2300           04636        BALLANGS           TC       MAKECADR                              
021809,000295: 26,2301           55337                           TS       BALLEXIT                              
021810,000296: 26,2302           30321                           CA       CPHI                                  
021811,000297: 

Page 493

021813,000299: 26,2303           54771                           TS       CDUSPOT    +4                         
021814,000300: 26,2304           30322                           CA       CTHETA                                
021815,000301: 26,2305           54765                           TS       CDUSPOT                               
021816,000302: 26,2306           30323                           CA       CPSI                                  
021817,000303: 26,2307           54767                           TS       CDUSPOT    +2                         
021818,000304: 
021819,000305: 26,2310           06060                           TC       INTPRET                               
021820,000306: 26,2311           45001                           SETPD    CALL                                  
021821,000307: 26,2312           00001                                    0D                                    
021822,000308: 26,2313           47526                                    CD*TR*G                               
021823,000309: 
021824,000310: 26,2314           41345                           DLOAD    DMP                                   
021825,000311: 26,2315           00742                                    SINCDUX                               #  SIN (OGA)
021826,000312: 26,2316           00746                                    COSCDUZ                               #  COS (MGA)
021827,000313: 
021828,000314: 26,2317           57552                           SL1      DCOMP                                 #  SCALE
021829,000315: 26,2320           65336                           ARCSIN   PDDL                                  #  YAW = ARCSIN(-SXCZ) INTO 0 PD
021830,000316: 26,2321           00740                                    SINCDUZ                               
021831,000317: 26,2322           14023                           STODL    SINTH                                 #  (SINTH = 18D IN PD)
021832,000318: 26,2323           00746                                    COSCDUZ                               
021833,000319: 26,2324           72405                           DMP      SL1                                   #  RESCALE
021834,000320: 26,2325           00750                                    COSCDUX                               
021835,000321: 26,2326           34021                           STCALL   COSTH                                 #  (COSTH = 16D IN PD)
021836,000322: 26,2327           26545                                    ARCTAN                                
021837,000323: 26,2330           41325                           PDDL     DMP                                   #  ROLL = ARCTAN(SZ/CZCX) INTO 2 PD
021838,000324: 26,2331           00740                                    SINCDUZ                               
021839,000325: 26,2332           00742                                    SINCDUX                               
021840,000326: 26,2333           41512                           SL2      PUSH                                  #  SXSZ INTO 4 PD
021841,000327: 26,2334           65205                           DMP      PDDL                                  #  SXSZCY INTO 4 PD
021842,000328: 26,2335           00744                                    COSCDUY                               
021843,000329: 26,2336           65205                           DMP      PDDL                                  #  SXSZSY INTO 6 PD
021844,000330: 26,2337           00736                                    SINCDUY                               
021845,000331: 26,2340           00750                                    COSCDUX                               
021846,000332: 26,2341           72405                           DMP      SL1                                   #  CXCY
021847,000333: 26,2342           00744                                    COSCDUY                               
021848,000334: 26,2343           45425                           DSU      STADR                                 #  PULL UP FROM 6 PD
021849,000335: 26,2344           63756                           STODL    COSTH                                 #  COSTH = CXCY - SXSZSY
021850,000336: 26,2345           00736                                    SINCDUY                               
021851,000337: 26,2346           72405                           DMP      SL1                                   
021852,000338: 26,2347           00750                                    COSCDUX                               #  CXSY
021853,000339: 26,2350           45415                           DAD      STADR                                 #  PULL UP FROM 4 PD
021854,000340: 26,2351           43754                           STCALL   SINTH                                 #  SINTH = CXSY + SXSZCY
021855,000341: 26,2352           26545                                    ARCTAN                                #  RETURNS WITH D(MPAC) = PITCH
021856,000342: 26,2353           55525                           PDDL     VDEF                                  #  PITCH INTO 2 PD, ROLL INTO MPAC FROM 2PD
021857,000343: 26,2354           77634                           RTB                                            #  VDEF MAKES V(MPAC) = ROLL, PITCH, YAW
021858,000344: 26,2355           21630                                    V1STO2S                               
021859,000345: 26,2356           02336                           STORE    FDAIX                                 #  MODE IS TP
021860,000346: 26,2357           77776                           EXIT                                           
021861,000347: 
021862,000348: 26,2360           31337        ENDBALL            CA       BALLEXIT                              
021863,000349: 

Page 494

021865,000351: 26,2361           04631                           TC       BANKJUMP                              
021866,000352: 

Page 495

021868,000354:                                                                                                  #  PROGRAM DESCRIPTION - VECPOINT
021869,000355: 
021870,000356: 
021871,000357:                                                                                                  #           THIS INTERPRETIVE SUBROUTINE MAY BE USED TO POINT A SPACECRAFT AXIS IN A DESIRED DIRECTION.  THE AXIS
021872,000358:                                                                                                  #  TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN SUCCESSIVE LOCATIONS OF ERASABLE MEMORY
021873,000359:                                                                                                  #  BEGINNING WITH THE LOCATION CALLED SCAXIS.  THE COMPONENTS OF THIS VECTOR ARE GIVEN IN SPACECRAFT COORDINATES.
021874,000360:                                                                                                  #  THE DIRECTION IN WHICH THIS AXIS IS TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN
021875,000361:                                                                                                  #  SUCCESSIVE LOCATIONS OF ERASABLE MEMORY BEGINNING WITH THE ADDRESS CALLED POINTVSM.  THE COMPONENTS OF THIS
021876,000362:                                                                                                  #  VECTOR ARE GIVEN IN STABLE MEMBER COORDINATES.  WITH THIS INFORMATION VECPOINT COMPUTES A SET OF THREE GIMBAL
021877,000363:                                                                                                  #  ANGLES (2S COMPLEMENT) CORESPONDING TO THE CROSS-PRODUCT ROTATION BETWE EN SCAXIS AND POINTVSM AND STORES THEM
021878,000364:                                                                                                  #  IN T(MPAC) BEFORE RETURNING TO THE CALLER.
021879,000365:                                                                                                  #           THIS ROTATION, HOWEVER, MAY BRING THE S/C INTO GIMBAL LOCK.  WHEN POINTING A VECTOR IN THE Y-Z PLANE,
021880,000366:                                                                                                  #  THE TRANSPONDER AXIS, OR THE AOT FOR THE LEM, THE PROGRAM WILL CORRECT THIS PROBLEM BY ROTATING THE CROSS-
021881,000367:                                                                                                  #  PRODUCT ATTITUDE ABOUT POINTVSM BY A FIXED AMOUNT SUFFICIENT TO ROTATE THE DESIRED S/C ATTITUDE OUT OF GIMBAL
021882,000368:                                                                                                  #  LOCK.  IF THE AXIS TO BE POINTED IS MORE THAN 40.6 DEGREES BUT LESS THAN 60.5 DEG FROM THE +X (OR-X) AXIS,
021883,000369:                                                                                                  #  THE ADDITIONAL ROTATION TO AVOID GIMAL LOCK IS 35 DEGREES.  IF THE AXIS IS MORE THAN 60.5 DEGEES FROM +X (OR -X)
021884,000370:                                                                                                  #  THE ADDITIONAL ROTATION IS 35 DEGREES.  THE GIMBAL ANGLES CORRESPONDING TO THIS ATTITUDE ARE THEN COMPUTED AND
021885,000371:                                                                                                  #  STORED AS 2S COMPLIMENT ANGLES IN T(MPAC) BEFORE RETURNING TO THE CALLER.
021886,000372:                                                                                                  #           WHEN POINTING THE X-AXIS, OR THE THRUST VECTOR, OR ANY VECTOR WITHIN 40.6 DEG OF THE X-AXIS, VECPOINT
021887,000373:                                                                                                  #  CANNOT CORRECT FOR A CROSS-PRODUCT ROTATION INTO GIMBAL LOCK.  IN THIS CASE A PLATFORM REALIGNMENT WOULD BE
021888,000374:                                                                                                  #  REQUIRED TO POINT THE VECTOR IN THE DESIRED DIRECTION.  AT PRESENT NO INDICATION IS GIVEN FOR THIS SITUATION
021889,000375:                                                                                                  #  EXCEPT THAT THE FINAL MIDDLE GIMBAL ANGLE IN MPAC +2 IS GREATER THAN 59 DEGREES.
021890,000376: 
021891,000377:                                                                                                  #           CALLING SEQUENCE -
021892,000378:                                                                                                  #               1) LOAD SCAXIS, POINTVSM
021893,000379:                                                                                                  #               2) CALL
021894,000380:                                                                                                  #                        VECPOINT
021895,000381: 
021896,000382:                                                                                                  #           RETURNS WITH
021897,000383: 
021898,000384:                                                                                                  #               1) DESIRED OUTER  GIMBAL ANGLE IN MPAC
021899,000385:                                                                                                  #               2) DESIRED INNER  GIMBAL ANGLE IN MPAC +1
021900,000386:                                                                                                  #               3) DESIRED MIDDLE GIMBAL ANGLE IN MPAC +2
021901,000387: 
021902,000388: 
021903,000389:                                                                                                  #           ERASABLES USED -
021904,000390: 
021905,000391:                                                                                                  #               1) SCAXIS           6
021906,000392:                                                                                                  #               2) POINTVSM         6
021907,000393:                                                                                                  #               3) MIS             18
021908,000394:                                                                                                  #               4) DEL             18
021909,000395:                                                                                                  #               5) COF              6
021910,000396:                                                                                                  #               6) VECQTEMP         1
021911,000397:                                                                                                  #               7) ALL OF VAC AREA 43
021912,000398: 
021913,000399:                                                                                                  #                        TOTAL     99
021914,000400: 
021915,000401: 27,2000                                           SETLOC   VECPT                                 
021916,000402: 27,2000                                           BANK                                           
021917,000403: 

Page 496

021919,000405: 27,2032                                           COUNT*   $$/VECPT                              
021920,000406: 
021921,000407: 27,2032  E6,1675                                  EBANK=   BCDU                                  
021922,000408: 
021923,000409: 27,2032           40020        VECPNT1            STQ      BOV                                   #  THIS ENTRY USES DESIRED CDUS
021924,000410: 27,2033           03324                                    VECQTEMP                              #  NOT PRESENT-ENTER WITH CDUD'S IN MPAC
021925,000411: 27,2034           56035                                    VECPNT2                               
021926,000412: 27,2035           52164        VECPNT2            AXC,2    GOTO                                  
021927,000413: 27,2036           03245                                    MIS                                   
021928,000414: 27,2037           56046                                    STORANG                               
021929,000415: 27,2040           40020        VECPOINT           STQ      BOV                                   #  SAVE RETURN ADDRESS
021930,000416: 27,2041           03324                                    VECQTEMP                              
021931,000417: 27,2042           56043                                    VECLEAR                               #  AND CLEAR OVFIND
021932,000418: 27,2043           47164        VECLEAR            AXC,2    RTB                                   
021933,000419: 27,2044           03245                                    MIS                                   #  READ THE PRESENT CDU ANGLES AND
021934,000420: 27,2045           44403                                    READCDUK                              #  STORE THEM IN PD25, 26, 27
021935,000421: 27,2046           34032        STORANG            STCALL   25D                                   
021936,000422: 27,2047           44410                                    CDUTODCM                              #  S/C AXES TO STABLE MEMBER AXES (MIS)
021937,000423: 27,2050           61375                           VLOAD    VXM                                   
021938,000424: 27,2051           03773                                    POINTVSM                              #  RESOLVE THE POINTING DIRECTION VF INTO
021939,000425: 27,2052           03246                                    MIS                                   #  INITIAL S/C AXES (VF = POINTVSM)
021940,000426: 27,2053           77656                           UNIT                                           
021941,000427: 27,2054           00035                           STORE    28D                                   
021942,000428:                                                                                                  #  PD 28 29 30 31 32 33
021943,000429: 27,2055           53435                           VXV      UNIT                                  #  TAKE THE CROSS PRODUCT VF X VI
021944,000430: 27,2056           03765                                    SCAXIS                                #  WHERE VI = SCAXIS
021945,000431: 27,2057           57400                           BOV      VCOMP                                 
021946,000432: 27,2060           56170                                    PICKAXIS                              
021947,000433: 27,2061           17270                           STODL    COF                                   #  CHECK MAGNITUDE
021948,000434: 27,2062           00045                                    36D                                   #  OF CROSS PRODUCT
021949,000435: 27,2063           50025                           DSU      BMN                                   #  VECTOR, IF LESS
021950,000436: 27,2064           14423                                    DPB-14                                #  THAN B-14 ASSUME
021951,000437: 27,2065           56170                                    PICKAXIS                              #  UNIT OPERATION
021952,000438: 27,2066           50375                           VLOAD    DOT                                   #           INVALID.
021953,000439: 27,2067           03765                                    SCAXIS                                
021954,000440: 27,2070           00035                                    28D                                   
021955,000441: 27,2071           65552                           SL1      ARCCOS                                
021956,000442: 27,2072           77624        COMPMATX           CALL                                           #  NOW COMPUTE THE TRANSFORMATION FROM
021957,000443: 27,2073           44527                                    DELCOMP                               #  FINAL S/C AXES TO INITIAL S/C AXES MFI
021958,000444: 27,2074           75160                           AXC,1    AXC,2                                 
021959,000445: 27,2075           03245                                    MIS                                   #  COMPUTE THE TRANSFORMATION FROM FINAL
021960,000446: 27,2076           02221                                    KEL                                   #  S/C AXES TO STABLE MEMBER AXES
021961,000447: 27,2077           77624                           CALL                                           #  MFS = MIS MFI
021962,000448: 27,2100           44312                                    MXM3                                  #  (IN PD LIST)
021963,000449: 
021964,000450: 27,2101           51545                           DLOAD    ABS                                   
021965,000451: 27,2102           00007                                    6                                     #  MFS6 = SIN(CPSI)                    $2
021966,000452: 27,2103           50025                           DSU      BMN                                   
021967,000453: 27,2104           14410                                    SINGIMLC                              #  = SIN(59 DEGS)                      $2
021968,000454: 27,2105           56160                                    FINDGIMB                              #  /CPSI/ LESS THAN 59 DEGS
021969,000455: 

Page 497

021971,000457:                                                                                                  #  I.E. DESIRED ATTITUDE NOT IN GIMBAL LOCK
021972,000458: 
021973,000459: 27,2106           51545                           DLOAD    ABS                                   #  CHECK TO SEE IF WE ARE POINTING
021974,000460: 27,2107           03765                                    SCAXIS                                #  THE THRUST AXIS
021975,000461: 27,2110           51025                           DSU      BPL                                   
021976,000462: 27,2111           14412                                    SINVEC1                               #  SIN 49.4 DEGS                        $2
021977,000463: 27,2112           56160                                    FINDGIMB                              #  IF SO, WE ARE TRYING TO POINT IT INTO
021978,000464: 27,2113           77775                           VLOAD                                          #  GIMBAL LOCK, ABORT COULD GO HERE
021979,000465: 27,2114           77626                           STADR                                          
021980,000466: 27,2115           50515                           STOVL    MIS        +12D                       
021981,000467: 27,2116           77626                           STADR                                          #  STORE MFS (IN PD LIST) IN MIS
021982,000468: 27,2117           50523                           STOVL    MIS        +6                         
021983,000469: 27,2120           77626                           STADR                                          
021984,000470: 27,2121           50531                           STOVL    MIS                                   
021985,000471: 27,2122           03254                                    MIS        +6                         #  INNER GIMBAL AXIS IN FINAL S/C AXES
021986,000472: 27,2123           57444                           BPL      VCOMP                                 #  LOCATE THE IG AXIS DIRECTION CLOSEST TO
021987,000473: 27,2124           56125                                    IGSAMEX                               #  FINAL X S/C AXIS
021988,000474: 
021989,000475: 27,2125           50035        IGSAMEX            VXV      BMN                                   #  FIND THE SHORTEST WAY OF ROTATING THE
021990,000476: 27,2126           03765                                    SCAXIS                                #  S/C OUT OF GIMBAL LOCK BY A ROTATION
021991,000477: 27,2127           56134                                    U=SCAXIS                              #  ABOUT +- SCAXIS, I.E. IF  (IG (SGN MFS3)
021992,000478:                                                                                                  #  X SCAXIS . XF) LESS THAN 0, U = SCAXIS
021993,000479:                                                                                                  #  OTHERWISE U = -SCAXIS
021994,000480: 
021995,000481: 27,2130           57575                           VLOAD    VCOMP                                 
021996,000482: 27,2131           03765                                    SCAXIS                                
021997,000483: 27,2132           37270                           STCALL   COF                                   #  ROTATE ABOUT -SCAXIS
021998,000484: 27,2133           56137                                    CHEKAXIS                              
021999,000485: 27,2134           77775        U=SCAXIS           VLOAD                                          
022000,000486: 27,2135           03765                                    SCAXIS                                
022001,000487: 27,2136           03270                           STORE    COF                                   #  ROTATE ABOUT + SCAXIS
022002,000488: 27,2137           51545        CHEKAXIS           DLOAD    ABS                                   
022003,000489: 27,2140           03765                                    SCAXIS                                #  SEE IF WE ARE POINTING THE AOT
022004,000490: 27,2141           51025                           DSU      BPL                                   
022005,000491: 27,2142           14414                                    SINVEC2                               #  SIN 29.5 DEGS                        $2
022006,000492: 27,2143           56147                                    PICKANG1                              #  IF SO, ROTATE 50 DEGS ABOUT +- SCAXIS
022007,000493: 27,2144           52145                           DLOAD    GOTO                                  #  IF NOT, MUST BE POINTING THE TRANSPONDER
022008,000494: 27,2145           14420                                    VECANG2                               #  OR SOME VECTOR IN THE Y, OR Z PLANE
022009,000495: 27,2146           56151                                    COMPMFSN                              #  IN THIS CASE ROTATE 35 DEGS TO GET OUT
022010,000496:                                                                                                  #  OF GIMBAL LOCK (VECANG2 $360)
022011,000497: 27,2147           77745        PICKANG1           DLOAD                                          
022012,000498: 27,2150           14416                                    VECANG1                               #  = 50 DEGS                          $ 360
022013,000499: 27,2151           77624        COMPMFSN           CALL                                           
022014,000500: 27,2152           44527                                    DELCOMP                               #  COMPUTE THE ROTATION ABOUT SCAXIS TO
022015,000501: 27,2153           75160                           AXC,1    AXC,2                                 #  BRING MFS OUT OF GIMBAL LOCK
022016,000502: 27,2154           03245                                    MIS                                   
022017,000503: 27,2155           02221                                    KEL                                   
022018,000504: 27,2156           77624                           CALL                                           #  COMPUTE THE NEW TRANSFORMATION FROM
022019,000505: 27,2157           44312                                    MXM3                                  #  DESIRED S/C AXES TO STABLE MEMBER AXES
022020,000506:                                                                                                  #  WHICH WILL ALIGN VI WITH VF AND AVOID
022021,000507: 

Page 498

022023,000509:                                                                                                  #  GIMBAL LOCK
022024,000510: 27,2160           45160        FINDGIMB           AXC,1    CALL                                  
022025,000511: 27,2161           00000                                    0                                     #  EXTRACT THE COMMANDED CDU ANGLES FROM
022026,000512: 27,2162           44654                                    DCMTOCDU                              #  THIS MATRIX
022027,000513: 27,2163           40234                           RTB      SETPD                                 
022028,000514: 27,2164           21630                                    V1STO2S                               #  CONVERT TO 2:S COMPLEMENT
022029,000515: 27,2165           00001                                    0                                     
022030,000516: 27,2166           77650                           GOTO                                           
022031,000517: 27,2167           03324                                    VECQTEMP                              #  RETURN TO CALLER
022032,000518: 
022033,000519: 27,2170           50375        PICKAXIS           VLOAD    DOT                                   #  IF VF X VI = 0, FIND VF . VI
022034,000520: 27,2171           00035                                    28D                                   
022035,000521: 27,2172           03765                                    SCAXIS                                
022036,000522: 27,2173           72240                           BMN      TLOAD                                 
022037,000523: 27,2174           54362                                    ROT180                                
022038,000524: 27,2175           00032                                    25D                                   
022039,000525: 27,2176           77650                           GOTO                                           #  IF VF = VI, CDU DESIRED = PRESENT CDU
022040,000526: 27,2177           03324                                    VECQTEMP                              #  PRESENT CDU ANGLES
022041,000527: 
022042,000528: 35,2000                                           BANK     35                                    
022043,000529: 26,2000                                           SETLOC   MANUVER1                              
022044,000530: 26,2000                                           BANK                                           
022045,000531: 26,2362           47375        ROT180             VLOAD    VXV                                   #  IF VF, VI ANTIPARALLEL, 108 DEG ROTATION
022046,000532: 26,2363           03254                                    MIS        +6                         #  IS REQUIRED. Y STABLE MEMBER AXIS IN
022047,000533: 26,2364           06503                                    HIDPHALF                              #  INITIAL S/C AXES.
022048,000534: 26,2365           47256                           UNIT     VXV                                   #  FIND Y(SM) X X(I)
022049,000535: 26,2366           03765                                    SCAXIS                                #  FIND UNIT(VI X UNIT(Y(SM) X X(I)))
022050,000536: 26,2367           40056                           UNIT     BOV                                   #  I.E. PICK A VECTOR IN THE PLANE OF X(I),
022051,000537: 26,2370           54404                                    PICKX                                 #  Y(SM) PERPENDICULAR TO VI
022052,000538: 26,2371           17270                           STODL    COF                                   
022053,000539: 26,2372           00045                                    36D                                   #  CHECK MAGNITUDE
022054,000540: 26,2373           50025                           DSU      BMN                                   #  OF THIS VECTOR.
022055,000541: 26,2374           14423                                    DPB-14                                #  IF LESS THAN B-14,
022056,000542: 26,2375           54404                                    PICKX                                 #  PICK X-AXIS.
022057,000543: 26,2376           77775                           VLOAD                                          
022058,000544: 26,2377           03270                                    COF                                   
022059,000545: 26,2400           17270        XROT               STODL    COF                                   
022060,000546: 26,2401           06503                                    HIDPHALF                              
022061,000547: 26,2402           77650                           GOTO                                           
022062,000548: 26,2403           56072                                    COMPMATX                              
022063,000549: 26,2404           52175        PICKX              VLOAD    GOTO                                  #  PICK THE XAXIS IN THIS CASE
022064,000550: 26,2405           06503                                    HIDPHALF                              
022065,000551: 26,2406           54400                                    XROT                                  
022066,000552: 26,2407           15555 35172  SINGIMLC           2DEC     .4285836003                            #  =SIN(59)                $2
022067,000553: 26,2411           14113 36326  SINVEC1            2DEC     .3796356537                            #  =SIN(49.4)              $2
022068,000554: 26,2413           07701 35703  SINVEC2            2DEC     .2462117800                            #  =SIN(29.5)              $2
022069,000555: 26,2415           04343 21616  VECANG1            2DEC     .1388888889                            #  = 50 DEGREES                       $360
022070,000556: 

Page 499

022072,000558: 26,2417           03070 34344  VECANG2            2DEC     .09722222222                            #  = 35 DEGREES                       $360
022073,000559: 26,2421           00000        1BITDP             OCT      0                                     #  KEEP THIS BEFORE DPB(-14)     *********
022074,000560: 26,2422           00001        DPB-14             OCT      00001                                 
022075,000561: 26,2423           00000                           OCT      00000                                 
022076,000562: 

Page 500

022078,000564:                                                                                                  #  ROUTINE FOR INITIATING AUTOMATIC MANEUVER VIA KEYBOARD (V49)
022079,000565: 
022080,000566: 
022081,000567: 34,2000                                           BANK     34                                    
022082,000568: 23,2000                                           SETLOC   R62                                   
022083,000569: 23,2000                                           BANK                                           
022084,000570: 23,2103  E6,1675                                  EBANK=   BCDU                                  
022085,000571: 
022086,000572: 23,2103                                           COUNT*   $$/R62                                
022087,000573: 
022088,000574: 23,2103  23,2103               R62DISP            EQUALS   R62FLASH                              
022089,000575: 
022090,000576: 23,2103           35001        R62FLASH           CAF      V06N22                                #  FLASH V06N22 AND
022091,000577: 23,2104           04607                           TC       BANKCALL                              #  ICDU ANGLES
022092,000578: 23,2105           20471                           CADR     GOFLASH                               
022093,000579: 23,2106           15474                           TCF      ENDEXT                                #  TERMINATE
022094,000580: 23,2107           12111                           TCF      GOMOVE                                #  PROCEED
022095,000581: 23,2110           12103                           TCF      R62FLASH                              #  ENTER
022096,000582: 
022097,000583:                                                                                                  #  ASTRONAUT MAY LOAD NEW ICDUS AT THIS
022098,000584:                                                                                                  #  POINT
022099,000585: 23,2111           05506        GOMOVE             TC       UPFLAG                                #  SET FOR 3-AXIS MANEUVER
022100,000586: 23,2112           00124                           ADRES    3AXISFLG                              
022101,000587: 
022102,000588: 23,2113           04607                           TC       BANKCALL                              
022103,000589: 23,2114           54125                           CADR     R60LEM                                
022104,000590: 23,2115           15474                           TCF      ENDEXT                                #  END R62
022105,000591: 

End of include-file R60,R62.agc.  Parent file is MAIN.agc