Source Code

These source-code files are part of a reconstructed copy of Aurora 88, the final release of the Lunar Module (LM) Apollo Guidance Computer (AGC) system test software.

They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-011, 2003972-091, and 2003972-111, belonging to Steve Jurvetson.

Since only binary dumps (rather than listings) of Aurora 88 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.

013489,000002:                                                                                                  ## Copyright:   Public domain.
013490,000003:                                                                                                  ## Filename:    CONTROLLER_AND_METER_ROUTINES.agc
013491,000004:                                                                                                  ## Purpose:     A section of Aurora 88.
013492,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
013493,000006:                                                                                                  ##              release of the Lunar Module system test software. No original
013494,000007:                                                                                                  ##              listings of this program are available; instead, this file
013495,000008:                                                                                                  ##              was created via disassembly of dumps of Aurora 88 core rope
013496,000009:                                                                                                  ##              modules and comparison with other AGC programs.
013497,000010:                                                                                                  ## Assembler:   yaYUL
013498,000011:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
013499,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
013500,000013:                                                                                                  ## Mod history: 2023-06-30 MAS  Created from Aurora 12.
013501,000014:                                                                                                  ##              2023-07-12 MAS  Updated for Aurora 88.
013502,000015: 
013503,000016: 
013504,000017: 11,3147                                           SETLOC   ENDEXTVS                              
013505,000018: 11,3147  E6,1602                                  EBANK=   PCOM                                  
013506,000019: 
013507,000020: 11,3147           37641        RHCNTRL            CAF      BIT10                                 
013508,000021: 11,3150           00006                           EXTEND                                         
013509,000022: 11,3151           02030                           RAND     30                                    #  CHECK PGNCS CONTROL OF S/C
013510,000023: 11,3152           00006                           EXTEND                                         
013511,000024: 11,3153           13155                           BZF      +2                                    
013512,000025: 11,3154           13236                           TCF      NORATE                                
013513,000026: 11,3155           37634                           CAF      BIT15                                 
013514,000027: 11,3156           00006                           EXTEND                                         
013515,000028: 11,3157           02031                           RAND     31                                    #  CHECK OUT-OF-DETENT BIT
013516,000029: 11,3160           10000                           CCS      A                                     
013517,000030: 11,3161           13236                           TCF      NORATE                                
013518,000031: 
013519,000032: 11,3162           37657                           CAF      ZERO                                  #  ZERO COUNTERS
013520,000033: 11,3163           54042                           TS       RHCP                                  
013521,000034: 11,3164           54043                           TS       RHCY                                  
013522,000035: 11,3165           54044                           TS       RHCR                                  
013523,000036: 11,3166           37643                           CAF      BIT8                                  #  ENABLE COUNTERS
013524,000037: 11,3167           67642                           AD       BIT9                                  #  START READING INTO COUNTERS
013525,000038: 11,3170           00006                           EXTEND                                         
013526,000039: 11,3171           05013                           WOR      13                                    
013527,000040: 11,3172           37646                           CAF      BIT5                                  
013528,000041: 11,3173           04451                           TC       WAITLIST                              #  COUNTERS FILLED
013529,000042: 11,3174           03177 22006                     2CADR    ATTCONT                               
013530,000043: 
013531,000044: 11,3176           04505                           TC       TASKOVER                              
013532,000045: 
013533,000046: 11,3177           47643        ATTCONT            CS       BIT8                                  
013534,000047: 11,3200           00006                           EXTEND                                         
013535,000048: 11,3201           03013                           WAND     13                                    #  RESET COUNTER ENABLE
013536,000049: 11,3202           37636                           CAF      BIT13                                 
013537,000050: 11,3203           00006                           EXTEND                                         
013538,000051: 11,3204           02031                           RAND     31                                    #  CHECK IF IN ATTITUDE HOLD MODE
013539,000052: 11,3205           00006                           EXTEND                                         
013540,000053: 11,3206           13210                           BZF      +2                                    
013541,000054: 11,3207           03226                           TC       XAXOVRD                               
013542,000055: 11,3210           30042                           CA       RHCP                                  
013543,000056: 11,3211           00006                           EXTEND                                         
013544,000057: 11,3212           77641                           MP       BIT10                                 
013545,000058: 11,3213           33243                           CAF      RHCSCALE                              
013546,000059: 11,3214           00006                           EXTEND                                         
013547,000060: 11,3215           70001                           MP       L                                     
013548,000061: 11,3216           55602                           TS       PCOM                                  
013549,000062: 11,3217           30044                           CA       RHCR                                  
013550,000063: 11,3220           00006                           EXTEND                                         
013551,000064: 11,3221           77641                           MP       BIT10                                 
013552,000065: 11,3222           33243                           CAF      RHCSCALE                              
013553,000066: 11,3223           00006                           EXTEND                                         
013554,000067: 
013555,000068: 
013556,000069: 11,3224           70001                           MP       L                                     
013557,000070: 11,3225           55603                           TS       RCOM                                  
013558,000071: 11,3226           30043        XAXOVRD            CA       RHCY                                  #  YAW CHANNEL ONLY IN AUTO MODE
013559,000072: 11,3227           00006                           EXTEND                                         
013560,000073: 11,3230           77641                           MP       BIT10                                 
013561,000074: 11,3231           33243                           CAF      RHCSCALE                              
013562,000075: 11,3232           00006                           EXTEND                                         
013563,000076: 11,3233           70001                           MP       L                                     
013564,000077: 11,3234           55604                           TS       YCOM                                  
013565,000078: 11,3235           13147                           TCF      RHCNTRL                               
013566,000079: 
013567,000080: 11,3236           37657        NORATE             CAF      ZERO                                  #  SET RATE COMMANDS TO ZERO
013568,000081: 11,3237           55602                           TS       PCOM                                  
013569,000082: 11,3240           55603                           TS       RCOM                                  
013570,000083: 11,3241           55604                           TS       YCOM                                  
013571,000084: 11,3242           04505                           TC       TASKOVER                              
013572,000085: 
013573,000086: 11,3243           16171        RHCSCALE           DEC      .44488                                #  LEAVES INPUTS SCALED AS PI/4 RAD/SEC.
013574,000087: 

MAS 2023: The following chunks of code (down to ENDCMS) were added as patches between Aurora 85 and Aurora 88. They were placed here at the end of the bank so as to not change addresses of existing symbols.

013578,000091: 
013579,000092:                                                                                                  #  VB 60 PREPARE FOR STANDBY OPERATION
013580,000093: 
013581,000094:                                                                                                  #  ROUTINE WRITTEN FOR TEST ROPES ONLY*** MUST BE UPDATED TO INCLUDE
013582,000095:                                                                                                  #                                  FLIGHT REQUIREMENTS FOR FLIGHT OPERATION
013583,000096: 
013584,000097: 11,3244  E3,1400                                  EBANK=   LST1                                  
013585,000098: 
013586,000099: 11,3244           33365        PRESTAND           CAF      EBANK3                                #  COMES HERE FROM LST2FAN
013587,000100: 11,3245           56003                           XCH      EBANK                                 #  SET UP EBANK FOR BANK 3
013588,000101: 11,3246           00004                           INHINT                                         
013589,000102: 11,3247           30025                           CA       TIME1                                 
013590,000103: 11,3250           55501                           TS       TIMESAV                               #  THIS ROUTINE WILL LOOK AT TIME1 UNTIL
013591,000104: 11,3251           32750                           CAF      OKT30                                 #   TIME1 IS INCREMENTED, THEN IT WILL
013592,000105: 11,3252           55505        LONGER             TS       TIMAR                                 #  SNATCH THE MISSION TIME REGS AND STORE
013593,000106: 11,3253           41501                           CS       TIMESAV                               #  THEM IN TIMESAV FOR LATER ISE IN ARITH.
013594,000107: 11,3254           60025                           AD       TIME1                                 #  OPERATIONS WHICH SHOULD FIND THE
013595,000108: 11,3255           00006                           EXTEND                                         #  STANDING DIFFERENCE BETWEEN THE SCALAR
013596,000109: 11,3256           13263                           BZF      CHKTIME                               #  AND THE TIME1-TIME2S REGS.
013597,000110: 
013598,000111: 11,3257           00006                           EXTEND                                         
013599,000112: 11,3260           30025                           DCA      TIME2                                 #  READ AND STORE THE DP TIME AND GO
013600,000113: 11,3261           53502                           DXCH     TIMESAV                               #  READ THE SCALAR USING THE EXISTING PROG
013601,000114: 11,3262           13271                           TCF      CATCHFIN                              #  FINETIME.
013602,000115: 
013603,000116: 11,3263           11505        CHKTIME            CCS      TIMAR                                 #  MUST WATCH THE TIME SPENT IN INHINT OR
013604,000117: 11,3264           03252                           TC       LONGER                                #  THE COPS MIGHT CATCH US.
013605,000118: 11,3265           00003                           RELINT                                         
013606,000119: 11,3266           10067                           CCS      NEWJOB                                
013607,000120: 11,3267           04317                           TC       CHANG1                                
013608,000121: 11,3270           03251                           TC       LONGER     -1                         #  GO BACK AND LOOK AGAIN
013609,000122: 
013610,000123: 11,3271           05372        CATCHFIN           TC       FINETIME                              #  WILL READ CHANNELS 3 AND 4 AND RETURN
013611,000124: 11,3272           53504                           DXCH     SCALSAV                               #  WITH 3 IN A AND 4 IN L..
013612,000125: 11,3273           00003                           RELINT                                         
013613,000126: 11,3274           47647                           CS       BIT4                                  
013614,000127: 11,3275           70367                           MASK     IMODES30                              #  INHIBIT THE IMU FAIL LIGHT.
013615,000128: 11,3276           67647                           AD       BIT4                                  
013616,000129: 11,3277           54367                           TS       IMODES30                              
013617,000130: 
013618,000131: 11,3300           37647                           CAF      BIT4                                  #  SET ALL CHAN 12 BITS EXCEPT C/A TO ZERO.
013619,000132: 11,3301           00006                           EXTEND                                         #  THIS IS NECESSARY SO THAT THE GIMBALS DO
013620,000133: 11,3302           03012                           WAND     12                                    #  NOT DRIFT INTO GIMBALLOCK IF THE SYSTEM
013621,000134: 
013622,000135: 11,3303           37647                           CAF      BIT4                                  #  SHOULD BE IN OPERATE AT THE TIME STBY
013623,000136: 11,3304           00006                           EXTEND                                         #  WAS STARTED.  THIS SECTION WILL MAKE
013624,000137: 11,3305           05012                           WOR      12                                    #  SURE THE IMU IS IN C/A.....
013625,000138: 
013626,000139: 11,3306           37640                           CAF      BIT11                                 #  WHEN BIT 11 IS PRESENT IN CHANNEL 13 THE
013627,000140: 11,3307           00006                           EXTEND                                         #  DSKY PB. CAN THEN ENERGIZE THE STANDBY
013628,000141: 11,3310           05013                           WOR      13                                    #  RELAY IN THE CGC PWR SUPPLIES....
013629,000142: 11,3311           04353                           TC       ENDOFJOB                              #  GO TO DUMMY JOB UNTIL YOU DIE...
013630,000143: 
013631,000144:                                                                                                  #   VB 61 RECOVER FROM STANDBY OPERATION
013632,000145: 
013633,000146:                                                                                                  #  ROUTINE WRITTEN FOR TEST ROPES ONLY**** MUST BE UPDATED TO INCLUDE
013634,000147:                                                                                                  #                  FLIGHT REQUIREMENTS FOR FLIGHT OPERATIONS SEQUENCES....
013635,000148: 
013636,000149: 11,3312           33365        POSTAND            CAF      EBANK3                                #  COMES HERE FROM LST2FAN
013637,000150: 11,3313           56003                           XCH      EBANK                                 #  SET UP EBANK FOR BANK 3
013638,000151: 11,3314           05372                           TC       FINETIME                              
013639,000152: 11,3315           53506                           DXCH     TIMAR                                 #  READ THE SCALAR AND SEE IF IT OVERFLOW-
013640,000153: 11,3316           00003                           RELINT                                         #  ED WHILE THE CGC WAS IN STBY, IF SO
013641,000154: 11,3317           31505                           CAE      TIMAR                                 #  THE OVERFLOW MUST BE ADDED OR IT WILL
013642,000155: 11,3320           00006                           EXTEND                                         #  SEEM THAT THE REALATIVITY THEORY WORKS
013643,000156: 11,3321           61503                           SU       SCALSAV                               #  BETTER THAN IT SHOULD...
013644,000157: 11,3322           00006                           EXTEND                                         
013645,000158: 11,3323           63346                           BZMF     ADDTIME                               #  IF ITS NEG. IT MUST HAVE OV:FLWD..
013646,000159: 
013647,000160: 11,3324           06000                           TC       INTPRET                               
013648,000161: 11,3325           45345                           DLOAD    DSU                                   #  IF IT DID NOT OV-FLW. FIND OUT HOW LONG
013649,000162: 11,3326           01506                                    TIMAR                                 #  THE CGC WAS IN STBY BY SUBTRACTING THE
013650,000163: 11,3327           01504                                    SCALSAV                               #  SCALAR AT THE START OF STBY FROM THE
013651,000164: 11,3330           45061                           SRR      RTB                                   #  SCALAR AT THE END OF STBY AND THEN ADD
013652,000165: 11,3331           01606                                    5                                     #  THE DIFFERENCE TO THE TIME EXISTING
013653,000166: 11,3332           33524                                    SGNAGREE                              #  WHEN THE SCALAR WAS READ AT STBY ENTRY**
013654,000167: 11,3333           77615                           DAD                                            
013655,000168: 11,3334           01502                                    TIMESAV                               
013656,000169: 11,3335           01506                           STORE    TIMAR                                 
013657,000170: 11,3336           77776                           EXIT                                           
013658,000171: 
013659,000172: 11,3337           00006        CORCTTIM           EXTEND                                         
013660,000173: 11,3340           31506                           DCA      TIMAR                                 #  THIS IS THE CORRECTED TIME TO BE READ
013661,000174: 11,3341           52025                           DXCH     TIME2                                 #  INTO TIME1 AND TIME2 REGS. ADDR 24-25
013662,000175: 
013663,000176: 11,3342           47640                           CS       BIT11                                 
013664,000177: 11,3343           00006                           EXTEND                                         #  DISABLE THE DSKY STBY PUSHBUTTON.
013665,000178: 11,3344           03013                           WAND     13                                    
013666,000179: 11,3345           04353                           TC       ENDOFJOB                              
013667,000180: 
013668,000181: 11,3346           00006        ADDTIME            EXTEND                                         
013669,000182: 11,3347           37632                           DCA      DPOSMAX                               #  IF THE SCALAR OVERFLOWED, FIND OUT HOW
013670,000183: 11,3350           53510                           DXCH     TIMEDIFF                              #  MUCH TIME REMAINED WHEN READ THE FIRST
013671,000184: 11,3351           06000                           TC       INTPRET                               #  TIME AND THEN ADD THE PRESENT READING-
013672,000185: 11,3352           45345                           DLOAD    DSU                                   #  WHICH WILL BE THE TOTAL TIME SPENT IN
013673,000186: 11,3353           01510                                    TIMEDIFF                              #  STANDBY, TO WHICH THE TIME AT STBY
013674,000187: 11,3354           01504                                    SCALSAV                               #  MAY BE ADDED TO FIND THE PRESENT TIME
013675,000188: 11,3355           54215                           DAD      SRR                                   #  CORRECT TO 10 MSEC..
013676,000189: 11,3356           01506                                    TIMAR                                 #  **** THE TIME IN STANDBY MODE MUST NOT
013677,000190: 11,3357           01606                                    5                                     #  EXCEED 23 HOURS IF TIME IS TO BE
013678,000191: 11,3360           77615                           DAD                                            #  CORRECTLY COMPUTED BY THIS ROUTINE.*****
013679,000192: 11,3361           01502                                    TIMESAV                               
013680,000193: 11,3362           01506                           STORE    TIMAR                                 
013681,000194: 11,3363           77776                           EXIT                                           
013682,000195: 11,3364           03337                           TC       CORCTTIM                              
013683,000196: 
013684,000197: 11,3365           01400        EBANK3             OCT      01400                                 #  CONST USED TO SET EBANK REG FOR BANK 3
013685,000198: 
013686,000199: 
013687,000200: 11,3366           02101        TESTNV             OCT      2101                                  
013688,000201: 11,3367           02546        LQPL               ECADR    QPLACE                                
013689,000202: 
013690,000203: 11,3370           61546        TSELECT1           AD       QPLACE                                
013691,000204: 11,3371           00006                           EXTEND                                         
013692,000205: 11,3372           63375                           BZMF     +3                                    
013693,000206: 11,3373           05145                           TC       FALTON                                
013694,000207: 11,3374           02343                           TC       REDO                                  
013695,000208: 11,3375           02364                           TC       TSELECT    +2                         
013696,000209: 11,3376           13377                           NOOP                                           
013697,000210: 
013698,000211: 11,3377                        ENDCMS             EQUALS                                         

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