Source Code
These source-code files derive from a printout of Luminary 210 (Apollo 15-17
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Jim Lawton, and transcribed to source code by a
team of volunteers. This colorized, syntax-highlighted form was created
by assembling that transcribed source code. Note that the full page images
are available on the
Virtual AGC project page at archive.org, while reduced-size images
are presented at the VirtualAGC project website. Report or fix any
transcription errors at
the Virtual AGC project code repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY BY NASA 2021112-161 17:11 MAR. 19,1971Note that the date is the date of the printout, not the date of the program revision. |
016455,000002: ## Copyright: Public domain.
016456,000003: ## Filename: KALCMANU_STEERING.agc
016457,000004: ## Purpose: A section of Luminary revision 210.
016458,000005: ## It is part of the source code for the Lunar Module's (LM)
016459,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
016460,000007: ## This file is intended to be a faithful transcription, except
016461,000008: ## that the code format has been changed to conform to the
016462,000009: ## requirements of the yaYUL assembler rather than the
016463,000010: ## original YUL assembler.
016464,000011: ## Reference: pp. 377-381
016465,000012: ## Assembler: yaYUL
016466,000013: ## Contact: Ron Burkey <info@sandroid.org>.
016467,000014: ## Website: www.ibiblio.org/apollo/index.html
016468,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
016469,000016: ## 2016-11-25 HG Transcribed
016470,000017: ## 2016-12-23 RSB Proofed comment text with octopus/ProoferComments
016471,000018: ## and fixed all errors found.
016472,000019: ## 2017-03-17 RSB Comment-text fixes identified in diff'ing
016473,000020: ## Luminary 99 vs Comanche 55.
016474,000021:
Page 377 |
016476,000023: # GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
016477,000024:
016478,000025: # NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
016479,000026:
016480,000027: 22,3003 E6,1706 EBANK= TTEMP
016481,000028:
016482,000029: 22,3003 04607 NEWDELHI TC BANKCALL # CHECK FOR AUTO STABILIZATION
016483,000030: 22,3004 54274 CADR ISITAUTO # ONLY
016484,000031: 22,3005 10000 CCS A
016485,000032: 22,3006 12730 TCF NOGO -2
016486,000033: 22,3007 06060 NEWANGL TC INTPRET
016487,000034: 22,3010 75160 AXC,1 AXC,2
016488,000035: 22,3011 03245 MIS # COMPUTE THE NEW MATRIX FROM S/C TO
016489,000036: 22,3012 02221 KEL # STABLE MEMBER AXES
016490,000037: 22,3013 77624 CALL
016491,000038: 22,3014 44312 MXM3
016492,000039: 22,3015 45575 VLOAD STADR
016493,000040: 22,3016 50515 STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
016494,000041: 22,3017 77626 STADR
016495,000042: 22,3020 50523 STOVL MIS +6D
016496,000043: 22,3021 77626 STADR
016497,000044: 22,3022 74531 STORE MIS
016498,000045: 22,3023 45160 AXC,1 CALL
016499,000046: 22,3024 03245 MIS
016500,000047: 22,3025 44654 DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
016501,000048: 22,3026 77634 RTB
016502,000049: 22,3027 21630 V1STO2S
016503,000050: 22,3030 03303 STORE NCDU # NEW CDU ANGLES
016504,000051: 22,3031 77414 BONCLR EXIT
016505,000052: 22,3032 01215 CALCMAN2
016506,000053: 22,3033 45122 MANUSTAT # TO START MANEUVER
016507,000054: 22,3034 34743 CAF TWO # +0 OTHERWISE
016508,000055: 22,3035 55261 INCRDCDU TS SPNDX
016509,000056: 22,3036 51261 INDEX SPNDX
016510,000057: 22,3037 31675 CA BCDU # INITIAL CDU ANGLES
016511,000058: 22,3040 00006 EXTEND # OR PREVIOUS DESIRED CDU ANGLES
016512,000059: 22,3041 51261 INDEX SPNDX
016513,000060: 22,3042 21702 MSU NCDU
016514,000061: 22,3043 00006 EXTEND
016515,000062: 22,2000 SETLOC KALCMON1
016516,000063: 22,2000 BANK
016517,000064:
016518,000065: 22,3044 73121 MP DT/TAU
016519,000066: 22,3045 10000 CCS A # CONVERT TO 2S COMPLEMENT
016520,000067: 22,3046 64744 AD ONE
016521,000068: 22,3047 13051 TCF +2
016522,000069: 22,3050 40000 COM
016523,000070: 22,3051 51261 INDEX SPNDX
016524,000071: 22,3052 55637 TS DELDCDU # ANGLE INCREMENTS TO BE ADDED TO
016525,000072: 22,3053 51261 INDEX SPNDX # CDUXD, CDUYD, CDUZD EVERY TENTH SECOND
016526,000073:
Page 378 |
016528,000075: 22,3054 31702 CA NCDU # BY LEM DAP
016529,000076: 22,3055 51261 INDEX SPNDX
016530,000077: 22,3056 57675 XCH BCDU
016531,000078: 22,3057 51261 INDEX SPNDX
016532,000079: 22,3060 55634 TS CDUXD
016533,000080: 22,3061 11261 CCS SPNDX
016534,000081: 22,3062 13035 TCF INCRDCDU # LOOP FOR THREE AXES
016535,000082:
016536,000083: 22,3063 00003 RELINT
016537,000084:
016538,000085: # COMPARE PRESENT TIME WITH TIME TO TERMINATE MANEUVER
016539,000086:
016540,000087: 22,3064 03075 TMANUCHK TC TIMECHK
016541,000088: 22,3065 13170 TCF CONTMANU
016542,000089: 22,3066 34744 CAF ONE
016543,000090: 22,3067 00004 MANUSTAL INHINT # END MAJOR PART OF MANEUVER WITHIN 1 SEC
016544,000091: 22,3070 05205 TC WAITLIST # UNDER WAITLIST CALL TO MANUSTOP
016545,000092: 22,3071 E6,1706 EBANK= TTEMP
016546,000093: 22,3071 03213 44066 2CADR MANUSTOP
016547,000094:
016548,000095: 22,3073 00003 RELINT
016549,000096: 22,3074 15146 TCF ENDOFJOB
016550,000097:
016551,000098: 22,3075 00006 TIMECHK EXTEND
016552,000099: 22,3076 40025 DCS TIME2
016553,000100: 22,3077 53707 DXCH TTEMP
016554,000101: 22,3100 00006 EXTEND
016555,000102: 22,3101 31733 DCA TM
016556,000103: 22,3102 21707 DAS TTEMP
016557,000104: 22,3103 11706 CCS TTEMP
016558,000105: 22,3104 00002 TC Q
016559,000106: 22,3105 13107 TCF +2
016560,000107: 22,3106 13117 TCF 2NDRETRN
016561,000108: 22,3107 11707 CCS TTEMP +1
016562,000109: 22,3110 00002 TC Q
016563,000110: 22,3111 13113 TCF MANUOFF
016564,000111: 22,3112 40000 COM
016565,000112: 22,3113 63166 MANUOFF AD ONESEK +1
016566,000113: 22,3114 00006 EXTEND
016567,000114: 22,3115 63117 BZMF 2NDRETRN
016568,000115: 22,3116 24002 INCR Q
016569,000116: 22,3117 24002 2NDRETRN INCR Q
016570,000117: 22,3120 00002 TC Q
016571,000118:
016572,000119: 22,3121 03146 DT/TAU DEC .1
016573,000120:
016574,000121: 22,3122 77776 MANUSTAT EXIT # INITIALIZATION ROUTINE
016575,000122: 22,3123 00006 EXTEND # FOR AUTOMATIC MANEUVERS
016576,000123: 22,3124 30025 DCA TIME2
Page 379 |
016578,000125: 22,3125 21733 DAS TM # TM+T0 MANEUVER COMPLETION TIME
016579,000126: 22,3126 00006 EXTEND
016580,000127: 22,3127 43166 DCS ONESEK
016581,000128: 22,3130 21733 DAS TM # (TM+T0)-1
016582,000129: 22,3131 00004 INHINT
016583,000130: 22,3132 34743 CAF TWO
016584,000131: 22,3133 55700 RATEBIAS TS KSPNDX
016585,000132: 22,3134 60000 DOUBLE
016586,000133: 22,3135 55701 TS KDPNDX
016587,000134: 22,3136 50000 INDEX A
016588,000135: 22,3137 31724 CA BRATE
016589,000136: 22,3140 51700 INDEX KSPNDX # STORE MANEUVER RATE IN
016590,000137: 22,3141 55642 TS OMEGAPD # OMEGAPD, OMEGAQD, OMEGARD
016591,000138: 22,3142 00006 EXTEND
016592,000139: 22,3143 63145 BZMF +2 # COMPUTE ATTITUDE ERROR
016593,000140: 22,3144 40000 COM # OFFSET = (WX)ABS(WX)/2AJX
016594,000141: 22,3145 00006 EXTEND # WHERE AJX= 2-JET ACCELERATION
016595,000142: 22,3146 73167 MP BIASCALE # = -1/16
016596,000143: 22,3147 00006 EXTEND
016597,000144: 22,3150 51701 INDEX KDPNDX
016598,000145: 22,3151 71724 MP BRATE
016599,000146: 22,3152 00006 EXTEND
016600,000147: 22,3153 51700 INDEX KSPNDX
016601,000148: 22,3154 11530 DV 1JACC # =AJX $ 90 DEG/SEC-SEC
016602,000149: 22,3155 51700 INDEX KSPNDX
016603,000150: 22,3156 55274 TS DELPEROR # $ 180 DEG
016604,000151: 22,3157 11700 CCS KSPNDX
016605,000152: 22,3160 13133 TCF RATEBIAS
016606,000153:
016607,000154: 22,3161 30025 CA TIME1
016608,000155: 22,3162 63166 AD ONESEK +1
016609,000156: 22,3163 57705 XCH NEXTIME
016610,000157: 22,3164 13034 TCF INCRDCDU -1
016611,000158:
016612,000159: 22,3165 00000 ONESEK DEC 0 B-14
016613,000160: 22,3166 00144 DEC 100 B-14
016614,000161:
016615,000162: 22,3167 75777 BIASCALE OCT 75777 # = -1/16
016616,000163:
016617,000164: 22,3170 40025 CONTMANU CS TIME1 # RESET FOR NEXT DCDU UPDATE
016618,000165: 22,3171 61705 AD NEXTIME
016619,000166: 22,3172 10000 CCS A
016620,000167: 22,3173 64744 AD ONE
016621,000168: 22,3174 13177 TCF MANUCALL
016622,000169: 22,3175 64726 AD NEGMAX
016623,000170: 22,3176 40000 COM
016624,000171: 22,3177 00004 MANUCALL INHINT # CALL FOR NEXT UPDATE VIA WAITLIST
016625,000172: 22,3200 05205 TC WAITLIST
016626,000173: 22,3201 E6,1706 EBANK= TTEMP
016627,000174: 22,3201 03206 44066 2CADR UPDTCALL
016628,000175:
Page 380 |
016630,000177: 22,3203 33166 CAF ONESEK +1 # INCREMENT TIME FOR NEXT UPDATE
016631,000178: 22,3204 27705 ADS NEXTIME
016632,000179: 22,3205 15146 TCF ENDOFJOB
016633,000180:
016634,000181:
016635,000182: 22,3206 37735 UPDTCALL CAF PRIO26 # SATELLITE PROGRAM TO CALL FOR UPDATE
016636,000183: 22,3207 05076 TC FINDVAC # OF STEERING COMMANDS
016637,000184: 22,3210 E6,1706 EBANK= TTEMP
016638,000185: 22,3210 03003 44066 2CADR NEWDELHI
016639,000186:
016640,000187: 22,3212 05263 TC TASKOVER
016641,000188:
Page 381 |
016643,000190: # ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
016644,000191:
016645,000192: 22,3213 34746 MANUSTOP CAF ZERO # ZERO MANEUVER RATES
016646,000193: 22,3214 55641 TS DELDCDU2
016647,000194: 22,3215 55644 TS OMEGARD
016648,000195: 22,3216 55276 TS DELREROR
016649,000196: 22,3217 55640 TS DELDCDU1
016650,000197: 22,3220 55643 TS OMEGAQD
016651,000198: 22,3221 55275 TS DELQEROR
016652,000199: 22,3222 30323 CA CPSI # SET DESIRED GIMBAL ANGLES TO
016653,000200: 22,3223 55636 TS CDUZD # DESIRED FINAL GIMBAL ANGLES
016654,000201: 22,3224 30322 CA CTHETA
016655,000202: 22,3225 55635 TS CDUYD
016656,000203: 22,3226 30321 ENDROLL CA CPHI # NO FINAL YAW
016657,000204: 22,3227 55634 TS CDUXD
016658,000205: 22,3230 34746 CAF ZERO
016659,000206: 22,3231 55642 TS OMEGAPD # I.E. MANEUVER DID NOT GO THRU
016660,000207: 22,3232 55637 TS DELDCDU # GIMBAL LOCK ORIGINALLY
016661,000208: 22,3233 55274 TS DELPEROR
016662,000209: 22,3234 31306 GOODMANU CA ATTPRIO # RESTORE USERS PRIO
016663,000210: 22,3235 54063 TS NEWPRIO
016664,000211:
016665,000212: 22,3236 34746 CA ZERO # ZERO ATTCADR
016666,000213: 22,3237 53305 DXCH ATTCADR
016667,000214:
016668,000215: 22,3240 05107 TC SPVAC # RETURN TO USER
016669,000216:
016670,000217: 22,3241 05263 TC TASKOVER
016671,000218:
016672,000219:
End of include-file KALCMANU_STEERING.agc. Parent file is MAIN.agc