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