Source Code

These source-code files are part of a reconstructed copy of Luminary 69/2, the flown, final release of the Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.

The reconstruction is based on the source code of Luminary 69 — i.e., the initial, unflown version, "revision 0" — of which a contemporary listing was available. The code was then updated by incorporating the differences between Luminary 69 and Luminary 69/2, known from other contemporary documentation. The only such difference is the implementation in Luminary 69/2 of the "R-2 Lunar Potential Model", the source code for which was taken from program Luminary 99/1 (Apollo 11 LM), of which a contemporary listing was also available. Finally, the now-reconstructed Luminary 69/2 was then validated by assembling it to executable form and verifying that its memory banks had the correct checksums, known from still other contemporary documentation.

Note that page numbers in the reconstructed code match those in the original Luminary 69 program listing, or in the ORBITAL INTEGRATION log section, in Luminary 99/1. Page numbers would certainly differ somewhat in a contemporary Luminary 69/2 listing. Moreover, annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change in Luminary 69/2 relative to Luminary 69. Here's a guide to the Apollo documentation referenced in those annotations:
Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository.

060692,000002:                                                                                                  ## Copyright:   Public domain.
060693,000003:                                                                                                  ## Filename:    DAPIDLER_PROGRAM.agc
060694,000004:                                                                                                  ## Purpose:     A section of LUM69 revision 2.
060695,000005:                                                                                                  ##              It is part of the reconstructed source code for the flown
060696,000006:                                                                                                  ##              version of the flight software for the Lunar Module's (LM)
060697,000007:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 10. The code has
060698,000008:                                                                                                  ##              been recreated from a copy of Luminary revsion 069, using
060699,000009:                                                                                                  ##              changes present in Luminary 099 which were described in
060700,000010:                                                                                                  ##              Luminary memos 75 and 78. The code has been adapted such
060701,000011:                                                                                                  ##              that the resulting bugger words exactly match those specified
060702,000012:                                                                                                  ##              for LUM69 revision 2 in NASA drawing 2021152B, which gives
060703,000013:                                                                                                  ##              relatively high confidence that the reconstruction is correct.
060704,000014:                                                                                                  ## Reference:   pp. 1405-1415
060705,000015:                                                                                                  ## Assembler:   yaYUL
060706,000016:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
060707,000017:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
060708,000018:                                                                                                  ## Mod history: 2019-07-27 MAS  Created from Luminary 69.
060709,000019: 

Page 1405

060711,000021:                                                                                                  #  THE DAPIDLER PROGRAM IS STARTED BY FRESH START AND RESTART.  THE DAPIDLER PROGRAM IS DONE 10 TIMES
060712,000022:                                                                                                  #  PER SECOND UNTIL THE ASTRONAUT DESIRES THE DAP TO WAKE UP, AND THE IMU AND CDUS ARE READY FOR USE BY THE DAP.
060713,000023:                                                                                                  #  THE NECESSARY INITIALIZATION OF THE DAP IS DONE BY THE DAPIDLER PROGRAM.
060714,000024: 
060715,000025: 16,2000                                           BANK     16                                    
060716,000026: 16,2000                                           SETLOC   DAPS1                                 
060717,000027: 16,2000                                           BANK                                           
060718,000028: 
060719,000029: 16,2000  E6,1537                                  EBANK=   AOSQ                                  
060720,000030: 
060721,000031: 16,2000                                           COUNT*   $$/DAPID                              
060722,000032: 
060723,000033: 16,2000           00006        CHEKBITS           EXTEND                                         
060724,000034: 16,2001           00031                           READ     CHAN31                                #  IF BOTH BIT13 AND BIT14 ARE ONE, THEN
060725,000035: 16,2002           40000                           COM                                            #  THE MODE SELECT SWITCH IS IN THE OFF
060726,000036: 16,2003           74355                           MASK     BIT13-14                              #  POSITION, AND SO THE DAP SHOULD BE OFF,
060727,000037: 16,2004           00006                           EXTEND                                         #  WITH NO ATTITUDE ERROR DISPLAY.
060728,000038: 16,2005           12154                           BZF      MOREIDLE                              
060729,000039: 
060730,000040: 16,2006           41303                           CS       IMODES33                              
060731,000041: 16,2007           74746                           MASK     BIT6                                  
060732,000042: 16,2010           10000                           CCS      A                                     
060733,000043: 16,2011           12203                           TCF      JUMPDSP                               
060734,000044: 16,2012           41273                           CS       RCSFLAGS                              #  IMU NOT USABLE.  SET UP INITIALIZATION
060735,000045: 16,2013           74751                           MASK     BIT3                                  #  FLAG FOR ATT ERROR DISPLAY ROUTINE.
060736,000046: 16,2014           27273                           ADS      RCSFLAGS                              
060737,000047: 16,2015           12160                           TCF      SHUTDOWN                              
060738,000048: 
060739,000049: 16,2016           34742        CHEKMORE           CAF      BIT10                                 #  BIT 10 OF 30 IS PGNCS CONTROL OF S/C
060740,000050: 16,2017           00006                           EXTEND                                         
060741,000051: 16,2020           02030                           RAND     CHAN30                                #  BITS IN 30 ARE INVERTED
060742,000052: 16,2021           10000                           CCS      A                                     
060743,000053: 16,2022           12154                           TCF      MOREIDLE                              
060744,000054: 
060745,000055: 16,2023           00002                           RETURN                                         
060746,000056: 

Page 1406

060748,000058:                                                                                                  #  DAPIDLER ENTRY.
060749,000059: 
060750,000060: 16,2024           22016        DAPIDLER           LXCH     BANKRUPT                              #  INTERRUPT LEAD INS (CONTINUED)
060751,000061: 16,2025           00006                           EXTEND                                         
060752,000062: 16,2026           22012                           QXCH     QRUPT                                 
060753,000063: 
060754,000064: 16,2027           31273                           CA       RCSFLAGS                              
060755,000065: 16,2030           74737                           MASK     BIT13                                 
060756,000066: 16,2031           10000                           CCS      A                                     #  CHECK IF 1/ACCJOB HAS BEEN SET UP SINCE
060757,000067: 16,2032           12041                           TCF      CHECKUP                               #  THE LAST FRESH START OR RESTART.
060758,000068: 16,2033           34737                           CA       BIT13                                 
060759,000069: 16,2034           27273                           ADS      RCSFLAGS                              #  BIT 13 IS 1.
060760,000070: 16,2035           37714                           CAF      PRIO27                                
060761,000071: 16,2036           05072                           TC       NOVAC                                 #  SET UP JOB TO DO A LITTLE INITIALIZATION
060762,000072: 16,2037  E6,1537                                  EBANK=   AOSQ                                  #        AND EXECUTE 1/ACCS.
060763,000073: 16,2037           02447 40106                     2CADR    1/ACCSET                              #  (WILL BRANCH TO MOREIDLE ON ACCSOKAY)
060764,000074: 
060765,000075: 16,2041           02000        CHECKUP            TC       CHEKBITS                              #  CHECK TO SEE IF LM DAP IS TO GO ON AND
060766,000076:                                                                                                  #        DO ERROR DISPLAY.
060767,000077: 
060768,000078: 16,2042           30111                           CAE      DAPBOOLS                              #  IF 1/ACCS HAS NOT BEEN COMPLETED, IDLE.
060769,000079: 16,2043           74751                           MASK     ACCSOKAY                              #        NOTE:   ONLY FRESH START AND RESTART
060770,000080: 16,2044           00006                           EXTEND                                         #                KNOCK THIS BIT DOWN.
060771,000081: 16,2045           12154                           BZF      MOREIDLE                              
060772,000082: 
060773,000083: 16,2046           04674        STARTDAP           TC       IBNKCALL                              #  ZERO ATTITUDE ERROR AND DESIRED RATES.
060774,000084: 16,2047           40153                           FCADR    ZATTEROR                              
060775,000085: 16,2050           34755                           CAF      ZERO                                  #  ********** INITIALIZE: **********
060776,000086: 16,2051           55524                           TS       TJP                                   
060777,000087: 16,2052           55525                           TS       TJU                                   
060778,000088: 16,2053           55526                           TS       TJV                                   
060779,000089: 16,2054           55417                           TS       OMEGAP                                #  RATES IN BODY (PILOT) COORDINATES.
060780,000090: 16,2055           55420                           TS       OMEGAQ                                
060781,000091: 16,2056           55421                           TS       OMEGAR                                
060782,000092: 16,2057           55426                           TS       TRAPEDP                               
060783,000093: 16,2060           55427                           TS       TRAPEDQ                               
060784,000094: 16,2061           55430                           TS       TRAPEDR                               
060785,000095: 16,2062           55537                           TS       AOSQ                                  #  OFFSET ACCELERATION ESTIMATES.
060786,000096: 16,2063           55540                           TS       AOSQ       +1                         
060787,000097: 16,2064           55541                           TS       AOSR                                  
060788,000098: 16,2065           55542                           TS       AOSR       +1                         
060789,000099: 16,2066           55422                           TS       ALPHAQ                                #  COPIES OF OFFSET ESTIMATES FOR DOWNLIST.
060790,000100: 16,2067           55423                           TS       ALPHAR                                
060791,000101: 16,2070           55500                           TS       NEGUQ                                 
060792,000102: 16,2071           55502                           TS       NEGUR                                 
060793,000103: 16,2072           55545                           TS       AOSQTERM                              #  QRAXIS RATE DERIVATION TERMS AND KALMAN
060794,000104: 16,2073           55546                           TS       AOSRTERM                              #  FILTER INITIALIZATION TERMS.
060795,000105: 16,2074           55510                           TS       QACCDOT                               #  DESCENT ACCELERATION DERIVATIVE EST.
060796,000106: 16,2075           55512                           TS       RACCDOT                               

Page 1407

060798,000108: 16,2076           55501                           TS       ALLOWGTS                              #  AOSTASK FLAG FOR QRAXIS RCS CONTROL USE.
060799,000109: 16,2077           55627                           TS       COTROLER                              #  DO TRYGTS ON FIRST PASS (WILL GO TO RCS)
060800,000110: 16,2100           55631                           TS       INGTS                                 #  RECOGNIZE FIRST GTS PASS AS SUCH.
060801,000111: 16,2101           55630                           TS       QGIMTIMR                              #  STOP GIMBAL DRIVES.  (PROBABLY WOULD BE
060802,000112: 16,2102           55632                           TS       RGIMTIMR                              #        GOOD ENOUGH JUST TO INACTIVATE TIMERS)
060803,000113: 16,2103           55456                           TS       OLDPMIN                               #  MINIMUM IMPULSE MODE ERASABLES
060804,000114: 16,2104           55457                           TS       OLDQRMIN                              
060805,000115: 16,2105     4747               CALLGMBL           EQUALS   BIT5                                  #  RCSFLAGS INITIALIZATION.
060806,000116: 16,2105           42177                           CS       MANFLAG                               
060807,000117: 16,2106           71273                           MASK     RCSFLAGS                              #  NEGUQ(R) HAVE BEEN GENERATED.
060808,000118: 16,2107           55273                           TS       RCSFLAGS                              
060809,000119: 
060810,000120:                                                                                                  #  SET UP "OLD" MEASURED CDU ANGLES:
060811,000121: 
060812,000122: 16,2110           00006                           EXTEND                                         
060813,000123: 16,2111           30033                           DCA      CDUX                                  #  OLDXFORP AND OLDYFORP
060814,000124: 16,2112           53437                           DXCH     OLDXFORP                              
060815,000125: 16,2113           30034                           CA       CDUZ                                  
060816,000126: 16,2114           55440                           TS       OLDZFORQ                              
060817,000127: 16,2115           41273                           CS       RCSFLAGS                              
060818,000128: 16,2116           74740                           MASK     BIT12                                 
060819,000129: 16,2117           27273                           ADS      RCSFLAGS                              #  BIT 12 SET TO 1.
060820,000130: 16,2120           34751                           CA       FOUR                                  
060821,000131: 16,2121           55535                           TS       SKIPU                                 
060822,000132: 16,2122           55536                           TS       SKIPV                                 
060823,000133: 16,2123           34733                           CA       POSMAX                                
060824,000134: 16,2124           54031                           TS       TIME6                                 
060825,000135: 16,2125           55464                           TS       T6NEXT                                
060826,000136: 16,2126           55466                           TS       T6FURTHA                              
060827,000137: 16,2127           34755                           CA       ZERO                                  
060828,000138: 16,2130           55465                           TS       T6NEXT     +1                         
060829,000139: 16,2131           55467                           TS       T6FURTHA   +1                         
060830,000140: 16,2132           55463                           TS       NXT6ADR                               
060831,000141: 16,2133           55470                           TS       NEXTP                                 
060832,000142: 16,2134           55471                           TS       NEXTU                                 
060833,000143: 16,2135           55472                           TS       NEXTV                                 
060834,000144: 16,2136           44363                           CS       TEN                                   
060835,000145: 16,2137           55755                           TS       DAPZRUPT                              #  JASK NOT IN PROGRESS, INITIALIZE NEG.
060836,000146: 16,2140           34752                           CA       TWO                                   
060837,000147: 16,2141           55431                           TS       NPTRAPS                               
060838,000148: 16,2142           55432                           TS       NQTRAPS                               
060839,000149: 16,2143           55433                           TS       NRTRAPS                               
060840,000150: 16,2144           00006                           EXTEND                                         
060841,000151: 16,2145           32202                           DCA      PAXADIDL                              
060842,000152: 16,2146           53275                           DXCH     T5ADR                                 
060843,000153: 16,2147           37726        SETTIME5           CAF      MS100                                 
060844,000154: 16,2150           54030                           TS       TIME5                                 
060845,000155: 16,2151           15270                           TCF      RESUME                                
060846,000156: 16,2152  E6,1537                                  EBANK=   AOSQ                                  
060847,000157: 16,2152           02024 34106  IDLERADR           2CADR    DAPIDLER                              

Page 1408

060849,000159: 16,2154           04674        MOREIDLE           TC       IBNKCALL                              #  CALCULATE Q,R-AXES ATTITUDE ERRORS.
060850,000160: 16,2155           36563                           CADR     QERRCALC                              
060851,000161: 
060852,000162: 16,2156           04674                           TC       IBNKCALL                              
060853,000163: 16,2157           35425                           CADR     CALCPERR                              #  CALCULATE P AXIS ATTITUDE ERRORS.
060854,000164: 
060855,000165: 16,2160           00006        SHUTDOWN           EXTEND                                         
060856,000166: 16,2161           32153                           DCA      IDLERADR                              
060857,000167: 16,2162           53275                           DXCH     T5ADR                                 
060858,000168: 
060859,000169: 16,2163           34755                           CAF      ZERO                                  #  KILL ANY POSSIBLE JET REQUESTS
060860,000170: 16,2164           55470                           TS       NEXTP                                 
060861,000171: 16,2165           55471                           TS       NEXTU                                 
060862,000172: 16,2166           55472                           TS       NEXTV                                 
060863,000173: 16,2167           00006                           EXTEND                                         #  COMMAND JETS OFF.
060864,000174: 16,2170           01005                           WRITE    CHAN5                                 
060865,000175: 16,2171           00006                           EXTEND                                         
060866,000176: 16,2172           01006                           WRITE    CHAN6                                 
060867,000177: 16,2173           42200                           CS       BGIM23                                #  TURN TRIM GIMBAL OFF
060868,000178: 16,2174           00006                           EXTEND                                         
060869,000179: 16,2175           03012                           WAND     CHAN12                                
060870,000180: 16,2176           12147                           TCF      SETTIME5                              #  RETURN IN 100 MSEC.
060871,000181: 
060872,000182: 16,2177           03021        MANFLAG            OCT      03021                                 
060873,000183: 16,2200           07400        BGIM23             OCTAL    07400                                 
060874,000184: 16,2201  E6,1417                                  EBANK=   OMEGAP                                
060875,000185: 16,2201           02210 34106  PAXADIDL           2CADR    PAXIS                                 
060876,000186: 
060877,000187: 16,2203     7726               MS100              =        OCT37766                              
060878,000188: 16,2203     0061               COSMG              =        ITEMP1                                
060879,000189: 16,2203           00006        JUMPDSP            EXTEND                                         #  TRANSFER TO BANK 20
060880,000190: 16,2204           32207                           DCA      DSPCADR                               #  FOR ATTITUDE ERROR DISPLAYS
060881,000191: 16,2205           52006                           DTCB                                           
060882,000192: 
060883,000193: 16,2206  E6,1757                                  EBANK=   AK                                    
060884,000194: 16,2206           02226 40106  DSPCADR            2CADR    ALTDSPLY                              
060885,000195: 

Page 1409

060887,000197: 20,2226                                           BANK     20                                    
060888,000198: 20,2000                                           SETLOC   DAPS3                                 
060889,000199: 20,2000                                           BANK                                           
060890,000200: 20,2226                                           COUNT*   $$/NEEDL                              
060891,000201: 
060892,000202:                                                                                                  #  PROGRAM:      ALTDSPLY
060893,000203:                                                                                                  #  MOD 0.        6 DEC 1967
060894,000204:                                                                                                  #  AUTHOR:       CRAIG WORK, DON KEENE, MIT IL
060895,000205:                                                                                                  #  MOD 3 BY DON KEENE AUG 1, 1968 MOVED PROGRAM TO BANK 20
060896,000206: 
060897,000207:                                                                                                  #  PROGRAM DESCRIPTION:
060898,000208:                                                                                                  #        ALTDSPLY REVERSES THE DSPLYALT BIT OF RCSFLAGS EACH TIME IT IS CALLED, WHICH IS PRESUMABLY EVERY 100 MS.
060899,000209:                                                                                                  #        IF THE REVERSED BIT IS ONE, NEEDLER IS CALLED TO DISPLAY ATTITUDE ERRORS.  IF THE BIT IS ZERO, THE ATTITUDE ERR-
060900,000210:                                                                                                  #        ORS ARE CALCULATED AS 1) DAP FOLLOWING ERRORS, IF NEEDLFLG = 0, AND 2) TOTAL ATTITUDE ERRORS FOR NEEDLFLG = 1.
060901,000211: 
060902,000212: 
060903,000213:                                                                                                  #  WARNING:      ALTDSPLY MAY ONLY BE CALLED WITH INTERRUPT INHIBITED.
060904,000214: 
060905,000215:                                                                                                  #  WARNING:      EBANK MUST BE SET TO 6 WHEN USING THIS ROUTINE.
060906,000216: 
060907,000217:                                                                                                  #  INPUT:        RCSFLAGS AND    1) IF NEEDLFLG = 0, INPUT PERROR, QERROR, RERROR.
060908,000218:                                                                                                  #                                2) IF NEEDLFLG = 1, INPUT CPHI,CTHETA,CPSI,CDUX,CDUY,CDUZ,M11,M21,M31,M22,M32.  (GPMATRIX)
060909,000219: 
060910,000220: 
060911,000221:                                                                                                  #  OUTPUTS:      RCSFLAGS WITH DSPLYALT REVERSED, AK, AK1, AK2, + NEEDLER OUTPUTS.
060912,000222: 
060913,000223:                                                                                                  #  ENTRY:        TCF     ALTDSPLY
060914,000224: 
060915,000225:                                                                                                  #  EXIT:         TCF     CHEKMORE
060916,000226: 
060917,000227:                                                                                                  #  ALARM OR ABORT EXITS: NONE
060918,000228: 
060919,000229:                                                                                                  #  SUBPROGRAMS CALLED:  NEEDLER, OVERSUB2
060920,000230: 
060921,000231:                                                                                                  #  DEBRIS:       A, L, AND NEEDLER DEBRIS.
060922,000232: 
060923,000233: 20,2226           31273        ALTDSPLY           CA       RCSFLAGS                              #  INVERT THE DISPLAY ALTERNATION BIT.
060924,000234: 20,2227           54001                           TS       L                                     
060925,000235: 20,2230           34750                           CA       DSPLYALT                              
060926,000236: 20,2231           00006                           EXTEND                                         
060927,000237: 20,2232           06001                           RXOR     LCHAN                                 
060928,000238: 20,2233           55273                           TS       RCSFLAGS                              
060929,000239: 
060930,000240: 20,2234           74750                           MASK     DSPLYALT                              
060931,000241: 20,2235           10000                           CCS      A                                     #  IS ALTERNATION FLAG ZERO?
060932,000242: 20,2236           12322                           TCF      NEEDLER                               
060933,000243: 
060934,000244: 20,2237           30074                           CAE      FLAGWRD0                              #  NEEDLFLG WILL INDICATE TOTAL OR DAP AT-

Page 1410

060936,000246: 20,2240           74750                           MASK     NEEDLBIT                              #  TITUDE ERROR DISPLAY REQUEST.
060937,000247: 20,2241           10000                           CCS      A                                     
060938,000248: 20,2242           12252                           TCF      DSPLYTOT                              #  TOTAL ERROR IS NEEDED IN AK, AK +1, AK +2
060939,000249: 
060940,000250: 20,2243           41446                           CS       QERROR                                #  YES.  DISPLAY ATT ERRORS ON THE ,-BALL.
060941,000251: 20,2244           55760                           TS       AK         +1                         #  ERROR COMPLEMENTS ARE INPUT TO NEEDLER.
060942,000252: 20,2245           41450                           CS       RERROR                                
060943,000253: 20,2246           55761                           TS       AK         +2                         
060944,000254: 20,2247           41462                           CS       PERROR                                
060945,000255: 20,2250           57757                           XCH      AK                                    
060946,000256: 
060947,000257: 20,2251           12442                           TCF      RETNMORE                              #  DISPLAY THESE THE NEXT TIME THROUGH
060948,000258: 
060949,000259:                                                                                                  #  CALCULATE GIMBAL ANGLE TOTAL ERRORS, RESOLVE INTO PILOT AXES, STORE TOTAL ERRORS FOR NEEDLER.  Q-AXIS FIRST.
060950,000260: 
060951,000261: 20,2252           00006        DSPLYTOT           EXTEND                                         
060952,000262: 20,2253           22061                           QXCH     ITEMP1                                #  SAVE Q FOR CHEKBITS RETURN.
060953,000263: 
060954,000264: 20,2254           30322                           CA       CTHETA                                #  DESIRED ATTITUDE, Y-AXIS, 2'S COMP.
060955,000265: 20,2255           00006                           EXTEND                                         #  SUBTRACT CURRENT ATTITUDE.
060956,000266: 20,2256           20033                           MSU      CDUY                                  #  DIFFERENCE SCALED AT PI, 1'S COMP.
060957,000267: 20,2257           55757                           TS       AK                                    #  SAVE FOR R-ERROR CALCULATION.
060958,000268: 20,2260           00006                           EXTEND                                         
060959,000269: 20,2261           71413                           MP       M21                                   #  (CHTETA-CDUY)*M21 SCALED AT PI RADIANS.
060960,000270: 20,2262           57760                           XCH      AK         +1                         #  STORE FIRST TERM OF Q ERROR.
060961,000271: 20,2263           30323                           CA       CPSI                                  #  DESIRED ATTITUDE, Z-AXIS, 2'S COMP.
060962,000272: 20,2264           00006                           EXTEND                                         #  SUBTRACT CURRENT ATTITUDE.
060963,000273: 20,2265           20034                           MSU      CDUZ                                  #  DIFFERENCE SCALED AT PI, 1'S COMP.
060964,000274: 20,2266           55761                           TS       AK         +2                         #  SAVE Z-AXIS TERM FOR R ERROR CALCULATION
060965,000275: 20,2267           00006                           EXTEND                                         
060966,000276: 20,2270           71415                           MP       M22                                   #  (CPSI-CDUZ)*M22, SCALED AT PI RADIANS.
060967,000277: 20,2271           61760                           AD       AK         +1                         #  Q ERROR COMPLETE         , AT PI RAD.
060968,000278: 20,2272           02435                           TC       OVERSUB2                              #  PIN NEEDLES IN CASE OF OVERFLOW.
060969,000279: 20,2273           55760                           TS       AK         +1                         
060970,000280: 
060971,000281:                                                                                                  #  R ERROR CALCULATION NEXT.
060972,000282: 
060973,000283: 20,2274           31757                           CA       AK                                    #  Y-AXIS DIFFERENCE STORED BY Q-AXIS CALC.
060974,000284: 20,2275           00006                           EXTEND                                         
060975,000285: 20,2276           71414                           MP       M31                                   #  (CTHETA-CDUY)*M31, SCALED AT PI RADIANS.
060976,000286: 20,2277           57761                           XCH      AK         +2                         #  FIRST TERM OF R ERROR.
060977,000287:                                                                                                  #  Z-AXIS DIFFERENCE, STORED BY A CALC. IS
060978,000288: 20,2300           00006                           EXTEND                                         #  RECOVERED BY THE EXCHANGE.
060979,000289: 20,2301           71416                           MP       M32                                   #  (CPSI-CDUZ)*M32, SCALED AT PI RADIANS.
060980,000290: 20,2302           61761                           AD       AK         +2                         #  R ERROR COMPLETE         , AT PI RAD.
060981,000291: 20,2303           02435                           TC       OVERSUB2                              #  PIN NEEDLES IN CASE OF OVERFLOW.
060982,000292: 20,2304           55761                           TS       AK         +2                         
060983,000293: 
060984,000294:                                                                                                  #  NOW CALCULATE P ERROR.  (NOTE THAT M13 = 1, SCALED AT 1, SO THE MULTIPLICATION IS BY-PASSED.)

Page 1411

060986,000296: 20,2305           31757                           CA       AK                                    #  Y-AXIS DIFFERENCE STORED BY Q AXIS CALC.
060987,000297: 20,2306           00006                           EXTEND                                         
060988,000298: 20,2307           71412                           MP       M11                                   #  (CTHETA-CDUY)*M11 SCALED AT PI RADIANS.
060989,000299: 20,2310           57757                           XCH      AK                                    #  FIRST TERM OF P ERROR IN AK, AT PI RAD.
060990,000300: 20,2311           30321                           CAE      CPHI                                  #  DESIRED ATTITUDE, X-AXIS, 2'S COMP.
060991,000301: 20,2312           00006                           EXTEND                                         #  SUBTRACT CURRENT X ATTITUDE.
060992,000302: 20,2313           20032                           MSU      CDUX                                  #  X-AXIS DIFFERENCE, 1'S COMP, AT PI RAD.
060993,000303: 
060994,000304:                                                                                                  #  M13 = 1, SO BYPASS THE MULTIPLICATION.
060995,000305:                                                                                                  #                EXTEND
060996,000306:                                                                                                  #                MP      M13             (CPHI-CDUX)*M13 SCALED AT PI RADIANS.
060997,000307: 
060998,000308: 20,2314           61757                           AD       AK                                    #  P ERROR COMPLETE      , SCALED AT PI RAD
060999,000309: 20,2315           02435                           TC       OVERSUB2                              #  PIN NEEDLES IN CASE OF OVERFLOW.
061000,000310: 20,2316           55757                           TS       AK                                    
061001,000311: 
061002,000312: 20,2317           00006                           EXTEND                                         
061003,000313: 20,2320           22061                           QXCH     ITEMP1                                #  RESTORE Q FOR CHEKBITS RETURN.
061004,000314: 
061005,000315: 20,2321           12442                           TCF      RETNMORE                              #  DISPLAY THESE THE NEXT TIME THROUGH
061006,000316: 

Page 1412

061008,000318:                                                                                                  #  FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
061009,000319: 
061010,000320:                                                                                                  #  PROGRAM DESCRIPTION:          D. KEENE        5/24/67
061011,000321:                                                                                                  #  MOD 1 BY CRAIG WORK, 12 DEC 67
061012,000322:                                                                                                  #  MOD 2 BY CRAIG WORK, 6 APRIL 68 CONVERTS ATTITUDE ERROR DISPLAY SCALING FROM 16 7/8 DEG. TO 42 3/16 DEGREES.
061013,000323: 
061014,000324:                                                                                                  #  THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
061015,000325:                                                                                                  #  IN THE CDUS.  CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
061016,000326:                                                                                                  #  OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
061017,000327:                                                                                                  #  THE DACS.
061018,000328: 
061019,000329:                                                                                                  #  CALLING SEQUENCE:
061020,000330:                                                                                                  #        DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
061021,000331:                                                                                                  #        TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
061022,000332:                                                                                                  #                CS      RCSFLAGS        IN EBANK6
061023,000333:                                                                                                  #                MASK    BIT3
061024,000334:                                                                                                  #                ADS     RCSFLAGS
061025,000335:                                                                                                  #        THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:
061026,000336:                                                                                                  #                AK      SCALED 180 DEGREES      NOTE:   THESE LOCATIONS ARE SUBJECT
061027,000337:                                                                                                  #                AK1     SCALED 180 DEGREES              TO CHANGE
061028,000338:                                                                                                  #                AK2     SCALED 180 DEGREES
061029,000339:                                                                                                  #        FULL SCALED DEFLECTION OF THE NEEDLES CORRESPONDS TO 5 1/16 DEGREES, WHILE 384 BITS IN THE IMU ERROR COUNTER
061030,000340:                                                                                                  #        CORRESPONDS TO 42 3/16 DEGREES.  (DAC MAXIMUM CAPACITY IS 384 BITS.)  46 BITS EFFECTIVELY PIN THE NEEDLES.
061031,000341: 
061032,000342:                                                                                                  #        A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
061033,000343:                                                                                                  #                INHINT
061034,000344:                                                                                                  #                TC      IBNKCALL        NOTE:  EBANK SHOULD BE SET TO E6
061035,000345:                                                                                                  #                CADR    NEEDLER
061036,000346:                                                                                                  #                RELINT
061037,000347:                                                                                                  #        THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED.  AT LEAST 3 PASSES THRU THE PROGRAM ARE
061038,000348:                                                                                                  #        REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
061039,000349:                                                                                                  #        NOTE:  EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50 MS TO ASSURE PROPER RELAY SEQUENCING.
061040,000350: 
061041,000351:                                                                                                  #  ERASABLE USED:
061042,000352:                                                                                                  #        AK              CDUXCMD
061043,000353:                                                                                                  #        AK1             CDUYCMD
061044,000354:                                                                                                  #        AK2             CDUZCMD
061045,000355:                                                                                                  #        EDRIVEX         A,L,Q
061046,000356:                                                                                                  #        EDRIVEY         T5TEMP
061047,000357:                                                                                                  #        EDRIVEZ         DINDX

Page 1413

061049,000359: 
061050,000360:                                                                                                  #  SWITCHES:             RCSFLAGS  BITS 3,2
061051,000361: 
061052,000362:                                                                                                  #  I/O CHANNELS:         CHAN12  BIT 4 (COARSE ALIGN - READ ONLY)
061053,000363:                                                                                                  #                        CHAN12  BIT 6 (IMU ERROR COUNTER ENABLE)
061054,000364:                                                                                                  #                        CHAN14  BIT 13,14,15 (DAC ACTIVITY)
061055,000365: 
061056,000366:                                                                                                  #  SIGN CONVENTION<      AK = THETAC - THETA
061057,000367:                                                                                                  #                        WHERE   THETAC = COMMAND ANGLE
061058,000368:                                                                                                  #                                THETA = PRESENT ANGLE
061059,000369: 
061060,000370: 20,2322           31273        NEEDLER            CA       RCSFLAGS                              
061061,000371: 20,2323           76241                           MASK     SIX                                   
061062,000372: 20,2324           00006                           EXTEND                                         
061063,000373: 20,2325           12362                           BZF      NEEDLES3                              
061064,000374: 20,2326           74751                           MASK     BIT3                                  
061065,000375: 20,2327           00006                           EXTEND                                         
061066,000376: 20,2330           12353                           BZF      NEEDLER2                              #  BIT3 = 0, BIT2 = 1
061067,000377: 
061068,000378: 20,2331           44746                           CS       BIT6                                  #  FIRST PASS BIT3 = 1
061069,000379: 20,2332           00006                           EXTEND                                         #  DISABLE IMU ERROR COUNTER TO ZERO DACS
061070,000380: 20,2333           03012                           WAND     CHAN12                                #  MUST WAIT AT LEAST 60 MS BEFORE
061071,000381: 20,2334           44755        NEEDLE11           CS       ZERO                                  #  ENABLING COUNTERS.
061072,000382: 20,2335           55757                           TS       AK                                    #  ZERO THE INPUTS ON FIRST PASS
061073,000383: 20,2336           55760                           TS       AK1                                   
061074,000384: 20,2337           55761                           TS       AK2                                   
061075,000385: 20,2340           55762                           TS       EDRIVEX                               #  ZERO THE DISPLAY REGISTERS
061076,000386: 20,2341           55763                           TS       EDRIVEY                               
061077,000387: 20,2342           55764                           TS       EDRIVEZ                               
061078,000388: 20,2343           54050                           TS       CDUXCMD                               #  ZERO THE OUT COUNTERS
061079,000389: 20,2344           54051                           TS       CDUYCMD                               
061080,000390: 20,2345           54052                           TS       CDUZCMD                               
061081,000391: 20,2346           46241                           CS       SIX                                   #  RESET RCSFLAGS FOR PASS2
061082,000392: 20,2347           71273                           MASK     RCSFLAGS                              
061083,000393: 20,2350           64752                           AD       BIT2                                  
061084,000394: 20,2351           55273                           TS       RCSFLAGS                              
061085,000395: 20,2352           12442                           TCF      RETNMORE                              
061086,000396: 
061087,000397: 20,2353           34746        NEEDLER2           CAF      BIT6                                  #  ENABLE IMU ERROR COUNTERS
061088,000398: 20,2354           00006                           EXTEND                                         
061089,000399: 20,2355           05012                           WOR      CHAN12                                
061090,000400: 20,2356           46241                           CS       SIX                                   #  RESET RCSFLAGS TO DISPLAY ATTITUDE
061091,000401: 20,2357           71273                           MASK     RCSFLAGS                              #  ERRORS    WAIT AT LEAST 4 MS FOR
061092,000402: 20,2360           55273                           TS       RCSFLAGS                              #  RELAY CLOSURE
061093,000403: 20,2361           12442                           TCF      RETNMORE                              
061094,000404: 
061095,000405: 20,2362           34746        NEEDLES3           CAF      BIT6                                  #  CHECK TO SEE IF IMU ERROR COUNTER
061096,000406: 20,2363           00006                           EXTEND                                         #  IS ENABLED
061097,000407: 20,2364           02012                           RAND     CHAN12                                

Page 1414

061099,000409: 20,2365           10000                           CCS      A                                     #  IF NOT, RE-INITIALIZE NEEDLER.
061100,000410: 20,2366           12373                           TCF      NEEDLES                               
061101,000411: 
061102,000412: 20,2367           41273                           CS       RCSFLAGS                              #  SET UP INITIALIZATION FLAG IN RCSFLAGS.
061103,000413: 20,2370           74751                           MASK     BIT3                                  
061104,000414: 20,2371           27273                           ADS      RCSFLAGS                              
061105,000415: 20,2372           12442                           TCF      RETNMORE                              
061106,000416: 
061107,000417: 20,2373           34752        NEEDLES            CAF      TWO                                   
061108,000418: 20,2374           54063        DACLOOP            TS       DINDX                                 
061109,000419: 20,2375           42434                           CS       ONETENTH                              #  RESCALE INPUTS TO + OR - 1800 DEGREES.
061110,000420: 20,2376           00006                           EXTEND                                         
061111,000421: 20,2377           50063                           INDEX    DINDX                                 
061112,000422: 20,2400           71757                           MP       AK                                    
061113,000423: 20,2401           54001                           TS       L                                     
061114,000424: 20,2402           10000                           CCS      A                                     
061115,000425: 20,2403           32432                           CA       DACLIMIT                              
061116,000426: 20,2404           12406                           TCF      +2                                    
061117,000427: 20,2405           42432                           CS       DACLIMIT                              
061118,000428: 20,2406           60001                           AD       L                                     
061119,000429: 20,2407           54061                           TS       T5TEMP                                #  OVFLO CHK
061120,000430: 20,2410           12414                           TCF      +4                                    
061121,000431: 20,2411           50000                           INDEX    A                                     #  ON OVERFLOW LIMIT OUTPUT TO +-384
061122,000432: 20,2412           32432                           CAF      DACLIMIT                              
061123,000433: 20,2413           54001                           TS       L                                     
061124,000434: 20,2414           50063                           INDEX    DINDX                                 
061125,000435: 20,2415           41762                           CS       EDRIVEX                               #  CURRENT VALUE OF DAC
061126,000436: 20,2416           60001                           AD       L                                     
061127,000437: 20,2417           50063                           INDEX    DINDX                                 
061128,000438: 20,2420           26050                           ADS      CDUXCMD                               
061129,000439: 20,2421           50063                           INDEX    DINDX                                 
061130,000440: 20,2422           23762                           LXCH     EDRIVEX                               
061131,000441: 20,2423           10063                           CCS      DINDX                                 
061132,000442: 20,2424           12374                           TCF      DACLOOP                               
061133,000443: 20,2425           37737                           CAF      13,14,15                              
061134,000444: 20,2426           00006                           EXTEND                                         
061135,000445: 20,2427           05014                           WOR      CHAN14                                #  SET DAC ACTIVITY BITS
061136,000446: 20,2430           12442                           TCF      RETNMORE                              
061137,000447: 
061138,000448: 20,2431           77177                           DEC      -384       B-14                       
061139,000449: 20,2432           37200        DACLIMIT           DEC      16000      B-14                       
061140,000450: 20,2433           00600                           DEC      384        B-14                       
061141,000451: 
061142,000452: 20,2434           03146        ONETENTH           OCT      03146                                 #  DECIMAL +0.1, SCALED AT 1.
061143,000453: 20,2435     4750               DSPLYALT           EQUALS   BIT4                                  #  100 MS ALTERNATION BIT IN RCSFLAGS
061144,000454: 
061145,000455: 20,2435           54007        OVERSUB2           TS       7                                     #  RETURNS A UNCHANGED OR LIMITED TO
061146,000456: 20,2436           00002                           TC       Q                                     #  POSMAX OR NEGMAX IF A HAS OVERFLOW
061147,000457: 20,2437           50000                           INDEX    A                                     

Page 1415

061149,000459: 20,2440           44734                           CS       LIMITS                                #  DUPLICATE CODING IN BANK 16
061150,000460: 20,2441           00002                           TC       Q                                     
061151,000461: 
061152,000462: 20,2442           00006        RETNMORE           EXTEND                                         #  RETURN TO CHEKMORE
061153,000463: 20,2443           32446                           DCA      MORECADR                              
061154,000464: 20,2444           52006                           DTCB                                           
061155,000465: 
061156,000466: 20,2445  E6,1537                                  EBANK=   AOSQ                                  
061157,000467: 20,2445           02016 34106  MORECADR           2CADR    CHEKMORE                              
061158,000468: 

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