Source Code

These source code files are an attempted reconstruction of Sundance revision 306, the Apollo 9 LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of original core rope program modules, as follows:
  • B1 — Revision 292
  • B2 — Revision 302
  • B3 — Revision 302
  • B4 — Revision 302
  • B5 — Revision 292
  • B6 — Revision 306
These dumps were then modified using memos, checklists, observed address changes, and the Sundance GSOPs to get the entire program to match Sundance revision 306 as closely as possible. Without more information, it is not possible to say how close it actually is; however, this code should be quite close. It is capable of flying the whole Apollo 9 mission using the original checklists and padload. Since only binary dumps (rather than listings) of Sundance are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

055824,000002:                                                                                                  ## Copyright:   Public domain.
055825,000003:                                                                                                  ## Filename:    DAPIDLER_PROGRAM.agc
055826,000004:                                                                                                  ## Purpose:     A section of an attempt to reconstruct Sundance revision 306
055827,000005:                                                                                                  ##              as closely as possible with available information. Sundance
055828,000006:                                                                                                  ##              306 is the source code for the Lunar Module's (LM) Apollo
055829,000007:                                                                                                  ##              Guidance Computer (AGC) for Apollo 9. This program was created
055830,000008:                                                                                                  ##              using the mixed-revision SundanceXXX as a starting point, and
055831,000009:                                                                                                  ##              pulling back features from Luminary 69 believed to have been
055832,000010:                                                                                                  ##              added based on memos, checklists, observed address changes,
055833,000011:                                                                                                  ##              or the Sundance GSOPs.
055834,000012:                                                                                                  ## Assembler:   yaYUL
055835,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
055836,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
055837,000015:                                                                                                  ## Mod history: 2020-07-24 MAS  Created from SundanceXXX.
055838,000016: 
055839,000017: 
055840,000018: 
055841,000019:                                                                                                  #  THE DAPIDLER PROGRAM IS STARTED BY FRESH START AND RESTART.  THE DAPIDLER PROGRAM IS DONE 10 TIMES
055842,000020:                                                                                                  #  PER SECOND UNTIL THE ASTRONAUT DESIRES THE DAP TO WAKE UP, AND THE IMU AND CDUS ARE READY FOR USE BY THE DAP.
055843,000021:                                                                                                  #  THE NECESSARY INITIALIZATION OF THE DAP IS DONE BY THE DAPIDLER PROGRAM.
055844,000022: 
055845,000023: 16,2043                                           BANK     16                                    
055846,000024: 16,2000                                           SETLOC   DAPS1                                 
055847,000025: 16,2000                                           BANK                                           
055848,000026: 
055849,000027: 16,2043  E6,1532                                  EBANK=   AOSQ                                  
055850,000028: 
055851,000029: 16,2043                                           COUNT*   $$/DAPID                              
055852,000030: 
055853,000031: 16,2043           00006        CHEKBITS           EXTEND                                         
055854,000032: 16,2044           00031                           READ     CHAN31                                #  IF BOTH BIT13 AND BIT14 ARE ONE, THEN
055855,000033: 16,2045           40000                           COM                                            #  THE MODE SELECT SWITCH IS IN THE OFF
055856,000034: 16,2046           74367                           MASK     BIT13-14                              #  POSITION, AND SO THE DAP SHOULD BE OFF,
055857,000035: 16,2047           00006                           EXTEND                                         #  WITH NO ATTITUDE ERROR DISPLAY.
055858,000036: 16,2050           12206                           BZF      MOREIDLE                              
055859,000037: 
055860,000038: 16,2051           41305                           CS       IMODES33                              
055861,000039: 16,2052           75021                           MASK     BIT6                                  
055862,000040: 16,2053           10000                           CCS      A                                     
055863,000041: 16,2054           12236                           TCF      ALTDSPLY                              
055864,000042: 16,2055           41275                           CS       RCSFLAGS                              #  IMU NOT USABLE.  SET UP INITIALIZATION
055865,000043: 16,2056           75024                           MASK     BIT3                                  #  FLAG FOR ATT ERROR DISPLAY ROUTINE.
055866,000044: 16,2057           27275                           ADS      RCSFLAGS                              
055867,000045: 16,2060           12212                           TCF      SHUTDOWN                              
055868,000046: 
055869,000047: 16,2061           35015        CHEKMORE           CAF      BIT10                                 #  BIT 10 OF 30 IS PGNCS CONTROL OF S/C
055870,000048: 16,2062           00006                           EXTEND                                         
055871,000049: 16,2063           02030                           RAND     CHAN30                                #  BITS IN 30 ARE INVERTED
055872,000050: 16,2064           10000                           CCS      A                                     
055873,000051: 16,2065           12206                           TCF      MOREIDLE                              
055874,000052: 
055875,000053: 16,2066           00002                           RETURN                                         
055876,000054: 
055877,000055:                                                                                                  #  DAPIDLER ENTRY.
055878,000056: 
055879,000057: 16,2067           22016        DAPIDLER           LXCH     BANKRUPT                              #  INTERRUPT LEAD INS (CONTINUED)
055880,000058: 16,2070           00006                           EXTEND                                         
055881,000059: 16,2071           22012                           QXCH     QRUPT                                 
055882,000060: 
055883,000061: 16,2072           11631                           CCS      ACCSET                                #  CHECK IF 1/ACCJOB HAS BEEN SET UP SINCE
055884,000062: 16,2073           12101                           TCF      CHECKUP                               #  THE LAST FRESH START OR RESTART.
055885,000063: 16,2074           37667                           CAF      PRIO27                                
055886,000064: 16,2075           55631                           TS       ACCSET                                #  ACCSET IS POSITIVE.
055887,000065: 16,2076           05142                           TC       NOVAC                                 #  SET UP JOB TO DO A LITTLE INITIALIZATION
055888,000066: 16,2077  E6,1532                                  EBANK=   AOSQ                                  #        AND EXECUTE 1/ACCS.
055889,000067: 16,2077           02305 40106  1/ACCSAD           2CADR    1/ACCSET                              #  (WILL BRANCH TO MOREIDLE ON ACCSOKAY)
055890,000068: 
055891,000069: 16,2101           02043        CHECKUP            TC       CHEKBITS                              #  CHECK TO SEE IF LM DAP IS TO GO ON AND
055892,000070:                                                                                                  #        DO ERROR DISPLAY.
055893,000071: 
055894,000072: 16,2102           31102                           CAE      DAPBOOLS                              #  IF 1/ACCS HAS NOT BEEN COMPLETED, IDLE.
055895,000073: 16,2103           75024                           MASK     ACCSOKAY                              #        NOTE:   ONLY FRESH START AND RESTART
055896,000074: 16,2104           00006                           EXTEND                                         #                KNOCK THIS BIT DOWN.
055897,000075: 16,2105           12206                           BZF      MOREIDLE                              
055898,000076: 
055899,000077: 16,2106           04737        STARTDAP           TC       IBNKCALL                              #  ZERO ATTITUDE ERROR AND DESIRED RATES.
055900,000078: 16,2107           40232                           FCADR    ZATTEROR                              
055901,000079: 16,2110           35030                           CAF      ZERO                                  #  ********** INITIALIZE: **********
055902,000080: 16,2111           55516                           TS       TJP                                   
055903,000081: 16,2112           55517                           TS       TJU                                   
055904,000082: 16,2113           55520                           TS       TJV                                   
055905,000083: 16,2114           55417                           TS       OMEGAP                                #  RATES IN BODY (PILOT) COORDINATES.
055906,000084: 16,2115           55420                           TS       OMEGAQ                                
055907,000085: 16,2116           55421                           TS       OMEGAR                                
055908,000086: 16,2117           55426                           TS       TRAPEDP                               
055909,000087: 16,2120           55427                           TS       TRAPEDQ                               
055910,000088: 16,2121           55430                           TS       TRAPEDR                               
055911,000089: 16,2122           55532                           TS       AOSQ                                  #  OFFSET ACCELERATION ESTIMATES.
055912,000090: 16,2123           55533                           TS       AOSQ       +1                         
055913,000091: 16,2124           55534                           TS       AOSR                                  
055914,000092: 16,2125           55535                           TS       AOSR       +1                         
055915,000093: 16,2126           55422                           TS       ALPHAQ                                #  COPIES OF OFFSET ESTIMATES FOR DOWNLIST.
055916,000094: 16,2127           55423                           TS       ALPHAR                                
055917,000095: 16,2130           55540                           TS       AOSQTERM                              #  QRAXIS RATE DERIVATION TERMS AND KALMAN
055918,000096: 16,2131           55541                           TS       AOSRTERM                              #  FILTER INITIALIZATION TERMS.
055919,000097: 16,2132           55510                           TS       QACCDOT                               #  DESCENT ACCELERATION DERIVATIVE EST.
055920,000098: 16,2133           55512                           TS       RACCDOT                               
055921,000099: 16,2134           55624                           TS       ALLOWGTS                              #  AOSTASK FLAG FOR QRAXIS RCS CONTROL USE.
055922,000100: 16,2135           55625                           TS       COTROLER                              #  DO TRYGTS ON FIRST PASS (WILL GO TO RCS)
055923,000101: 16,2136           55627                           TS       INGTS                                 #  RECOGNIZE FIRST GTS PASS AS SUCH.
055924,000102: 16,2137           55626                           TS       QGIMTIMR                              #  STOP GIMBAL DRIVES.  (PROBABLY WOULD BE
055925,000103: 16,2140           55630                           TS       RGIMTIMR                              #        GOOD ENOUGH JUST TO INACTIVATE TIMERS)
055926,000104: 16,2141           55443                           TS       OLDPMIN                               #  MINIMUM IMPULSE MODE ERASABLES
055927,000105: 16,2142           55444                           TS       OLDQRMIN                              
055928,000106: 
055929,000107:                                                                                                  #  SET UP "OLD" MEASURED CDU ANGLES:
055930,000108: 
055931,000109: 16,2143           00006                           EXTEND                                         
055932,000110: 16,2144           30033                           DCA      CDUX                                  #  OLDXFORP AND OLDYFORP
055933,000111: 16,2145           53437                           DXCH     OLDXFORP                              
055934,000112: 16,2146           30034                           CA       CDUZ                                  
055935,000113: 16,2147           55440                           TS       OLDZFORQ                              
055936,000114: 16,2150           32234                           CAF      CHKVISAD                              
055937,000115: 16,2151           55527                           TS       PJUMPADR                              
055938,000116: 16,2152           35024                           CA       FOUR                                  
055939,000117: 16,2153           55530                           TS       SKIPU                                 
055940,000118: 16,2154           55531                           TS       SKIPV                                 
055941,000119: 16,2155           35006                           CA       POSMAX                                
055942,000120: 16,2156           54031                           TS       TIME6                                 
055943,000121: 16,2157           55454                           TS       T6NEXT                                
055944,000122: 16,2160           55456                           TS       T6FURTHA                              
055945,000123: 16,2161           35030                           CA       ZERO                                  
055946,000124: 16,2162           55455                           TS       T6NEXT     +1                         
055947,000125: 16,2163           55457                           TS       T6FURTHA   +1                         
055948,000126: 16,2164           55453                           TS       NXT6ADR                               
055949,000127: 16,2165           55460                           TS       NEXTP                                 
055950,000128: 16,2166           55461                           TS       NEXTU                                 
055951,000129: 16,2167           55462                           TS       NEXTV                                 
055952,000130: 16,2170           44375                           CS       TEN                                   
055953,000131: 16,2171           55752                           TS       DAPZRUPT                              #  JASK NOT IN PROGRESS, INITIALIZE NEG.
055954,000132: 16,2172           35025                           CA       TWO                                   
055955,000133: 16,2173           55431                           TS       NPTRAPS                               
055956,000134: 16,2174           55432                           TS       NQTRAPS                               
055957,000135: 16,2175           55433                           TS       NRTRAPS                               
055958,000136: 16,2176           00006                           EXTEND                                         
055959,000137: 16,2177           32233                           DCA      PAXADIDL                              
055960,000138: 16,2200           53277                           DXCH     T5ADR                                 
055961,000139: 16,2201           37701        SETTIME5           CAF      MS100                                 
055962,000140: 16,2202           54030                           TS       TIME5                                 
055963,000141: 16,2203           15340                           TCF      RESUME                                
055964,000142: 16,2204  E6,1532                                  EBANK=   AOSQ                                  
055965,000143: 16,2204           02067 34106  IDLERADR           2CADR    DAPIDLER                              
055966,000144: 16,2206           04737        MOREIDLE           TC       IBNKCALL                              #  CALCULATE Q,R-AXES ATTITUDE ERRORS.
055967,000145: 16,2207           36426                           CADR     QERRCALC                              
055968,000146: 
055969,000147: 16,2210           04737                           TC       IBNKCALL                              
055970,000148: 16,2211           35476                           CADR     CALCPERR                              #  CALCULATE P AXIS ATTITUDE ERRORS.
055971,000149: 
055972,000150: 16,2212           00006        SHUTDOWN           EXTEND                                         
055973,000151: 16,2213           32205                           DCA      IDLERADR                              
055974,000152: 16,2214           53277                           DXCH     T5ADR                                 
055975,000153: 
055976,000154: 16,2215           35030                           CAF      ZERO                                  #  KILL ANY POSSIBLE JET REQUESTS
055977,000155: 16,2216           55460                           TS       NEXTP                                 
055978,000156: 16,2217           55461                           TS       NEXTU                                 
055979,000157: 16,2220           55462                           TS       NEXTV                                 
055980,000158: 16,2221           00006                           EXTEND                                         #  COMMAND JETS OFF.
055981,000159: 16,2222           01005                           WRITE    CHAN5                                 
055982,000160: 16,2223           00006                           EXTEND                                         
055983,000161: 16,2224           01006                           WRITE    CHAN6                                 
055984,000162: 16,2225           42231                           CS       BGIM23                                #  TURN TRIM GIMBAL OFF
055985,000163: 16,2226           00006                           EXTEND                                         
055986,000164: 16,2227           03012                           WAND     CHAN12                                
055987,000165: 16,2230           12201                           TCF      SETTIME5                              #  RETURN IN 100 MSEC.
055988,000166: 
055989,000167: 16,2231           07400        BGIM23             OCTAL    07400                                 
055990,000168: 16,2232  E6,1417                                  EBANK=   OMEGAP                                
055991,000169: 16,2232           02444 34106  PAXADIDL           2CADR    PAXIS                                 
055992,000170: 
055993,000171: 16,2234           03112        CHKVISAD           ADRES    CHKVISFZ                              
055994,000172: 16,2235           02077        ACCSETAD           ADRES    1/ACCSAD                              
055995,000173: 
055996,000174: 16,2236     7701               MS100              =        OCT37766                              
055997,000175: 16,2236     0061               COSMG              =        ITEMP1                                
055998,000176: 
055999,000177:                                                                                                  #  PROGRAM:      ALTDSPLY
056000,000178:                                                                                                  #  MOD 0.        6 DEC 1967
056001,000179:                                                                                                  #  AUTHOR:       CRAIG WORK, DON KEENE, MIT IL
056002,000180:                                                                                                  #  MOD 3 BY DON KEENE AUG 1, 1968 MOVED PROGRAM TO BANK 20
056003,000181: 
056004,000182:                                                                                                  #  PROGRAM DESCRIPTION:
056005,000183:                                                                                                  #        ALTDSPLY REVERSES THE DSPLYALT BIT OF RCSFLAGS EACH TIME IT IS CALLED, WHICH IS PRESUMABLY EVERY 100 MS.
056006,000184:                                                                                                  #        IF THE REVERSED BIT IS ONE, NEEDLER IS CALLED TO DISPLAY ATTITUDE ERRORS.  IF THE BIT IS ZERO, THE ATTITUDE ERR-
056007,000185:                                                                                                  #        ORS ARE CALCULATED AS 1) DAP FOLLOWING ERRORS, IF NEEDLFLG = 0, AND 2) TOTAL ATTITUDE ERRORS FOR NEEDLFLG = 1.
056008,000186: 
056009,000187: 
056010,000188:                                                                                                  #  WARNING:      ALTDSPLY MAY ONLY BE CALLED WITH INTERRUPT INHIBITED.
056011,000189: 
056012,000190:                                                                                                  #  WARNING:      EBANK MUST BE SET TO 6 WHEN USING THIS ROUTINE.
056013,000191: 
056014,000192:                                                                                                  #  INPUT:        RCSFLAGS AND    1) IF NEEDLFLG = 0, INPUT PERROR, QERROR, RERROR.
056015,000193:                                                                                                  #                                2) IF NEEDLFLG = 1, INPUT CPHI,CTHETA,CPSI,CDUX,CDUY,CDUZ,M11,M21,M31,M22,M32.  (GPMATRIX)
056016,000194: 
056017,000195: 
056018,000196:                                                                                                  #  OUTPUTS:      RCSFLAGS WITH DSPLYALT REVERSED, AK, AK1, AK2, + NEEDLER OUTPUTS.
056019,000197: 
056020,000198:                                                                                                  #  ENTRY:        TCF     ALTDSPLY
056021,000199: 
056022,000200:                                                                                                  #  EXIT:         TCF     CHEKMORE
056023,000201: 
056024,000202:                                                                                                  #  ALARM OR ABORT EXITS: NONE
056025,000203: 
056026,000204:                                                                                                  #  SUBPROGRAMS CALLED:  NEEDLER, OVERSUB2
056027,000205: 
056028,000206:                                                                                                  #  DEBRIS:       A, L, AND NEEDLER DEBRIS.
056029,000207: 
056030,000208: 16,2236           31275        ALTDSPLY           CA       RCSFLAGS                              #  INVERT THE DISPLAY ALTERNATION BIT.
056031,000209: 16,2237           54001                           TS       L                                     
056032,000210: 16,2240           35023                           CA       DSPLYALT                              
056033,000211: 16,2241           00006                           EXTEND                                         
056034,000212: 16,2242           06001                           RXOR     LCHAN                                 
056035,000213: 16,2243           55275                           TS       RCSFLAGS                              
056036,000214: 
056037,000215: 16,2244           75023                           MASK     DSPLYALT                              
056038,000216: 16,2245           10000                           CCS      A                                     #  IS ALTERNATION FLAG ZERO?
056039,000217: 16,2246           12331                           TCF      NEEDLER                               
056040,000218: 
056041,000219: 16,2247           30074                           CAE      FLAGWRD0                              #  NEEDLFLG WILL INDICATE TOTAL OR DAP AT-
056042,000220: 16,2250           75023                           MASK     NEEDLBIT                              #  TITUDE ERROR DISPLAY REQUEST.
056043,000221: 16,2251           10000                           CCS      A                                     
056044,000222: 16,2252           12261                           TCF      DSPLYTOT                              #  TOTAL ERROR IS NEEDED IN AK, AK +1, AK +2
056045,000223: 
056046,000224: 16,2253           00006                           EXTEND                                         
056047,000225: 16,2254           41452                           DCS      QERROR                                #  YES.  DISPLAY ATT ERRORS ON THE ,-BALL.
056048,000226: 16,2255           53756                           DXCH     AK         +1                         #  ERROR COMPLEMENTS ARE INPUT TO NEEDLER.
056049,000227: 16,2256           41450                           CS       PERROR                                
056050,000228: 16,2257           57754                           XCH      AK                                    
056051,000229: 
056052,000230: 16,2260           12061                           TCF      CHEKMORE                              #  DISPLAY THESE THE NEXT TIME THROUGH
056053,000231: 
056054,000232:                                                                                                  #  CALCULATE GIMBAL ANGLE TOTAL ERRORS, RESOLVE INTO PILOT AXES, STORE TOTAL ERRORS FOR NEEDLER.  Q-AXIS FIRST.
056055,000233: 
056056,000234: 16,2261           00006        DSPLYTOT           EXTEND                                         
056057,000235: 16,2262           22061                           QXCH     ITEMP1                                #  SAVE Q FOR CHEKBITS RETURN.
056058,000236: 
056059,000237: 16,2263           31207                           CA       CTHETA                                #  DESIRED ATTITUDE, Y-AXIS, 2'S COMP.
056060,000238: 16,2264           00006                           EXTEND                                         #  SUBTRACT CURRENT ATTITUDE.
056061,000239: 16,2265           20033                           MSU      CDUY                                  #  DIFFERENCE SCALED AT PI, 1'S COMP.
056062,000240: 16,2266           55754                           TS       AK                                    #  SAVE FOR R-ERROR CALCULATION.
056063,000241: 16,2267           00006                           EXTEND                                         
056064,000242: 16,2270           71413                           MP       M21                                   #  (CHTETA-CDUY)*M21 SCALED AT PI RADIANS.
056065,000243: 16,2271           57755                           XCH      AK         +1                         #  STORE FIRST TERM OF Q ERROR.
056066,000244: 16,2272           31210                           CA       CPSI                                  #  DESIRED ATTITUDE, Z-AXIS, 2'S COMP.
056067,000245: 16,2273           00006                           EXTEND                                         #  SUBTRACT CURRENT ATTITUDE.
056068,000246: 16,2274           20034                           MSU      CDUZ                                  #  DIFFERENCE SCALED AT PI, 1'S COMP.
056069,000247: 16,2275           55756                           TS       AK         +2                         #  SAVE Z-AXIS TERM FOR R ERROR CALCULATION
056070,000248: 16,2276           00006                           EXTEND                                         
056071,000249: 16,2277           71415                           MP       M22                                   #  (CPSI-CDUZ)*M22, SCALED AT PI RADIANS.
056072,000250: 16,2300           61755                           AD       AK         +1                         #  Q ERROR COMPLETE         , AT PI RAD.
056073,000251: 16,2301           02524                           TC       OVERSUB                               #  PIN NEEDLES IN CASE OF OVERFLOW.
056074,000252: 16,2302           55755                           TS       AK         +1                         
056075,000253: 
056076,000254:                                                                                                  #  R ERROR CALCULATION NEXT.
056077,000255: 
056078,000256: 16,2303           31754                           CA       AK                                    #  Y-AXIS DIFFERENCE STORED BY Q-AXIS CALC.
056079,000257: 16,2304           00006                           EXTEND                                         
056080,000258: 16,2305           71414                           MP       M31                                   #  (CTHETA-CDUY)*M31, SCALED AT PI RADIANS.
056081,000259: 16,2306           57756                           XCH      AK         +2                         #  FIRST TERM OF R ERROR.
056082,000260:                                                                                                  #  Z-AXIS DIFFERENCE, STORED BY A CALC. IS
056083,000261: 16,2307           00006                           EXTEND                                         #  RECOVERED BY THE EXCHANGE.
056084,000262: 16,2310           71416                           MP       M32                                   #  (CPSI-CDUZ)*M32, SCALED AT PI RADIANS.
056085,000263: 16,2311           61756                           AD       AK         +2                         #  R ERROR COMPLETE         , AT PI RAD.
056086,000264: 16,2312           02524                           TC       OVERSUB                               #  PIN NEEDLES IN CASE OF OVERFLOW.
056087,000265: 16,2313           55756                           TS       AK         +2                         
056088,000266: 
056089,000267:                                                                                                  #  NOW CALCULATE P ERROR.  (NOTE THAT M13 = 1, SCALED AT 1, SO THE MULTIPLICATION IS BY-PASSED.)
056090,000268: 16,2314           31754                           CA       AK                                    #  Y-AXIS DIFFERENCE STORED BY Q AXIS CALC.
056091,000269: 16,2315           00006                           EXTEND                                         
056092,000270: 16,2316           71412                           MP       M11                                   #  (CTHETA-CDUY)*M11 SCALED AT PI RADIANS.
056093,000271: 16,2317           57754                           XCH      AK                                    #  FIRST TERM OF P ERROR IN AK, AT PI RAD.
056094,000272: 16,2320           31206                           CAE      CPHI                                  #  DESIRED ATTITUDE, X-AXIS, 2'S COMP.
056095,000273: 16,2321           00006                           EXTEND                                         #  SUBTRACT CURRENT X ATTITUDE.
056096,000274: 16,2322           20032                           MSU      CDUX                                  #  X-AXIS DIFFERENCE, 1'S COMP, AT PI RAD.
056097,000275: 
056098,000276:                                                                                                  #  M13 = 1, SO BYPASS THE MULTIPLICATION.
056099,000277:                                                                                                  #                EXTEND
056100,000278:                                                                                                  #                MP      M13             (CPHI-CDUX)*M13 SCALED AT PI RADIANS.
056101,000279: 
056102,000280: 16,2323           61754                           AD       AK                                    #  P ERROR COMPLETE      , SCALED AT PI RAD
056103,000281: 16,2324           02524                           TC       OVERSUB                               #  PIN NEEDLES IN CASE OF OVERFLOW.
056104,000282: 16,2325           55754                           TS       AK                                    
056105,000283: 
056106,000284: 16,2326           00006                           EXTEND                                         
056107,000285: 16,2327           22061                           QXCH     ITEMP1                                #  RESTORE Q FOR CHEKBITS RETURN.
056108,000286: 
056109,000287: 16,2330           12061                           TCF      CHEKMORE                              #  DISPLAY THESE THE NEXT TIME THROUGH
056110,000288: 
056111,000289:                                                                                                  #  FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
056112,000290: 
056113,000291:                                                                                                  #  PROGRAM DESCRIPTION:          D. KEENE        5/24/67
056114,000292:                                                                                                  #  MOD 1 BY CRAIG WORK, 12 DEC 67
056115,000293:                                                                                                  #  MOD 2 BY CRAIG WORK, 6 APRIL 68 CONVERTS ATTITUDE ERROR DISPLAY SCALING FROM 16 7/8 DEG. TO 42 3/16 DEGREES.
056116,000294: 
056117,000295:                                                                                                  #  THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
056118,000296:                                                                                                  #  IN THE CDUS.  CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
056119,000297:                                                                                                  #  OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
056120,000298:                                                                                                  #  THE DACS.
056121,000299: 
056122,000300:                                                                                                  #  CALLING SEQUENCE:
056123,000301:                                                                                                  #        DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
056124,000302:                                                                                                  #        TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
056125,000303:                                                                                                  #                CS      RCSFLAGS        IN EBANK6
056126,000304:                                                                                                  #                MASK    BIT3
056127,000305:                                                                                                  #                ADS     RCSFLAGS
056128,000306:                                                                                                  #        THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:
056129,000307:                                                                                                  #                AK      SCALED 180 DEGREES      NOTE:   THESE LOCATIONS ARE SUBJECT
056130,000308:                                                                                                  #                AK1     SCALED 180 DEGREES              TO CHANGE
056131,000309:                                                                                                  #                AK2     SCALED 180 DEGREES
056132,000310:                                                                                                  #        FULL SCALED DEFLECTION OF THE NEEDLES CORRESPONDS TO 5 1/16 DEGREES, WHILE 384 BITS IN THE IMU ERROR COUNTER
056133,000311:                                                                                                  #        CORRESPONDS TO 42 3/16 DEGREES.  (DAC MAXIMUM CAPACITY IS 384 BITS.)  46 BITS EFFECTIVELY PIN THE NEEDLES.
056134,000312: 
056135,000313:                                                                                                  #        A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
056136,000314:                                                                                                  #                INHINT
056137,000315:                                                                                                  #                TC      IBNKCALL        NOTE:  EBANK SHOULD BE SET TO E6
056138,000316:                                                                                                  #                CADR    NEEDLER
056139,000317:                                                                                                  #                RELINT
056140,000318:                                                                                                  #        THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED.  AT LEAST 3 PASSES THRU THE PROGRAM ARE
056141,000319:                                                                                                  #        REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
056142,000320:                                                                                                  #        NOTE:  EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50 MS TO ASSURE PROPER RELAY SEQUENCING.
056143,000321: 
056144,000322:                                                                                                  #  ERASABLE USED:
056145,000323:                                                                                                  #        AK              CDUXCMD
056146,000324:                                                                                                  #        AK1             CDUYCMD
056147,000325:                                                                                                  #        AK2             CDUZCMD
056148,000326:                                                                                                  #        EDRIVEX         A,L,Q
056149,000327:                                                                                                  #        EDRIVEY         T5TEMP
056150,000328:                                                                                                  #        EDRIVEZ         DINDX
056151,000329: 
056152,000330:                                                                                                  #  SWITCHES:             RCSFLAGS  BITS 3,2
056153,000331: 
056154,000332:                                                                                                  #  I/O CHANNELS:         CHAN12  BIT 4 (COARSE ALIGN - READ ONLY)
056155,000333:                                                                                                  #                        CHAN12  BIT 6 (IMU ERROR COUNTER ENABLE)
056156,000334:                                                                                                  #                        CHAN14  BIT 13,14,15 (DAC ACTIVITY)
056157,000335: 
056158,000336:                                                                                                  #  SIGN CONVENTION<      AK = THETAC - THETA
056159,000337:                                                                                                  #                        WHERE   THETAC = COMMAND ANGLE
056160,000338:                                                                                                  #                                THETA = PRESENT ANGLE
056161,000339: 
056162,000340: 16,2331           31275        NEEDLER            CA       RCSFLAGS                              
056163,000341: 16,2332           76216                           MASK     SIX                                   
056164,000342: 16,2333           00006                           EXTEND                                         
056165,000343: 16,2334           12371                           BZF      NEEDLES3                              
056166,000344: 16,2335           75024                           MASK     BIT3                                  
056167,000345: 16,2336           00006                           EXTEND                                         
056168,000346: 16,2337           12362                           BZF      NEEDLER2                              #  BIT3 = 0, BIT2 = 1
056169,000347: 
056170,000348: 16,2340           45021                           CS       BIT6                                  #  FIRST PASS BIT3 = 1
056171,000349: 16,2341           00006                           EXTEND                                         #  DISABLE IMU ERROR COUNTER TO ZERO DACS
056172,000350: 16,2342           03012                           WAND     CHAN12                                #  MUST WAIT AT LEAST 60 MS BEFORE
056173,000351: 16,2343           45030        NEEDLE11           CS       ZERO                                  #  ENABLING COUNTERS.
056174,000352: 16,2344           55754                           TS       AK                                    #  ZERO THE INPUTS ON FIRST PASS
056175,000353: 16,2345           55755                           TS       AK1                                   
056176,000354: 16,2346           55756                           TS       AK2                                   
056177,000355: 16,2347           55757                           TS       EDRIVEX                               #  ZERO THE DISPLAY REGISTERS
056178,000356: 16,2350           55760                           TS       EDRIVEY                               
056179,000357: 16,2351           55761                           TS       EDRIVEZ                               
056180,000358: 16,2352           54050                           TS       CDUXCMD                               #  ZERO THE OUT COUNTERS
056181,000359: 16,2353           54051                           TS       CDUYCMD                               
056182,000360: 16,2354           54052                           TS       CDUZCMD                               
056183,000361: 16,2355           46216                           CS       SIX                                   #  RESET RCSFLAGS FOR PASS2
056184,000362: 16,2356           71275                           MASK     RCSFLAGS                              
056185,000363: 16,2357           65025                           AD       BIT2                                  
056186,000364: 16,2360           55275                           TS       RCSFLAGS                              
056187,000365: 16,2361           12061                           TCF      CHEKMORE                              
056188,000366: 
056189,000367: 16,2362           35021        NEEDLER2           CAF      BIT6                                  #  ENABLE IMU ERROR COUNTERS
056190,000368: 16,2363           00006                           EXTEND                                         
056191,000369: 16,2364           05012                           WOR      CHAN12                                
056192,000370: 16,2365           46216                           CS       SIX                                   #  RESET RCSFLAGS TO DISPLAY ATTITUDE
056193,000371: 16,2366           71275                           MASK     RCSFLAGS                              #  ERRORS    WAIT AT LEAST 4 MS FOR
056194,000372: 16,2367           55275                           TS       RCSFLAGS                              #  RELAY CLOSURE
056195,000373: 16,2370           12061                           TCF      CHEKMORE                              
056196,000374: 
056197,000375: 16,2371           35021        NEEDLES3           CAF      BIT6                                  #  CHECK TO SEE IF IMU ERROR COUNTER
056198,000376: 16,2372           00006                           EXTEND                                         #  IS ENABLED
056199,000377: 16,2373           02012                           RAND     CHAN12                                
056200,000378: 16,2374           10000                           CCS      A                                     #  IF NOT, RE-INITIALIZE NEEDLER.
056201,000379: 16,2375           12402                           TCF      NEEDLES                               
056202,000380: 
056203,000381: 16,2376           41275                           CS       RCSFLAGS                              #  SET UP INITIALIZATION FLAG IN RCSFLAGS.
056204,000382: 16,2377           75024                           MASK     BIT3                                  
056205,000383: 16,2400           27275                           ADS      RCSFLAGS                              
056206,000384: 16,2401           12061                           TCF      CHEKMORE                              
056207,000385: 
056208,000386: 16,2402           35025        NEEDLES            CAF      TWO                                   
056209,000387: 16,2403           54063        DACLOOP            TS       DINDX                                 
056210,000388: 16,2404           42443                           CS       ONETENTH                              #  RESCALE INPUTS TO + OR - 1800 DEGREES.
056211,000389: 16,2405           00006                           EXTEND                                         
056212,000390: 16,2406           50063                           INDEX    DINDX                                 
056213,000391: 16,2407           71754                           MP       AK                                    
056214,000392: 16,2410           54001                           TS       L                                     
056215,000393: 16,2411           10000                           CCS      A                                     
056216,000394: 16,2412           32441                           CA       DACLIMIT                              
056217,000395: 16,2413           12415                           TCF      +2                                    
056218,000396: 16,2414           42441                           CS       DACLIMIT                              
056219,000397: 16,2415           60001                           AD       L                                     
056220,000398: 16,2416           54061                           TS       T5TEMP                                #  OVFLO CHK
056221,000399: 16,2417           12423                           TCF      +4                                    
056222,000400: 16,2420           50000                           INDEX    A                                     #  ON OVERFLOW LIMIT OUTPUT TO +-384
056223,000401: 16,2421           32441                           CAF      DACLIMIT                              
056224,000402: 16,2422           54001                           TS       L                                     
056225,000403: 16,2423           50063                           INDEX    DINDX                                 
056226,000404: 16,2424           41757                           CS       EDRIVEX                               #  CURRENT VALUE OF DAC
056227,000405: 16,2425           60001                           AD       L                                     
056228,000406: 16,2426           50063                           INDEX    DINDX                                 
056229,000407: 16,2427           26050                           ADS      CDUXCMD                               
056230,000408: 16,2430           50063                           INDEX    DINDX                                 
056231,000409: 16,2431           23757                           LXCH     EDRIVEX                               
056232,000410: 16,2432           10063                           CCS      DINDX                                 
056233,000411: 16,2433           12403                           TCF      DACLOOP                               
056234,000412: 16,2434           37711                           CAF      13,14,15                              
056235,000413: 16,2435           00006                           EXTEND                                         
056236,000414: 16,2436           05014                           WOR      CHAN14                                #  SET DAC ACTIVITY BITS
056237,000415: 16,2437           12061                           TCF      CHEKMORE                              
056238,000416: 
056239,000417: 16,2440           77177                           DEC      -384       B-14                       
056240,000418: 16,2441           37200        DACLIMIT           DEC      16000      B-14                       
056241,000419: 16,2442           00600                           DEC      384        B-14                       
056242,000420: 
056243,000421: 16,2443           03146        ONETENTH           OCT      03146                                 #  DECIMAL +0.1, SCALED AT 1.
056244,000422: 16,2444     5023               DSPLYALT           EQUALS   BIT4                                  #  100 MS ALTERNATION BIT IN RCSFLAGS

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