Source Code
![]() |
These source-code files were from the printout at the MIT Museum, with many thanks
to Deborah Douglas, the Museum's Curator of Science and Technology, for releasing
it to us. The printout was digitally photographed by Paul Fjeld. A team of
volunteers transcribed the source code manually from these images or, where
appropriate, modified already-transcribed but similar source Colossus 249 (Apollo 9)
source code to agree with the images from the printout. Note that the page images
presented online are of reduced quality, and that higher-quality images
are available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 055 OF AGC PROGRAM COMANCHE BY NASA 2021113-051 10:28 APR. 1,1969Note that the date is the date of the printout, not the date of the program revision. |
018161,000002: ## Copyright: Public domain.
018162,000003: ## Filename: KALCMANU_STEERING.agc
018163,000004: ## Purpose: Part of the source code for Comanche, build 055.
018164,000005: ## It is part of the source code for the Command Module's (CM)
018165,000006: ## Apollo Guidance Computer (AGC), Apollo 11.
018166,000007: ## Assembler: yaYUL
018167,000008: ## Reference: pp. 414-419
018168,000009: ## Contact: Onno Hommes <ohommes@cmu.edu>.
018169,000010: ## Website: www.ibiblio.org/apollo.
018170,000011: ## Mod history: 05/07/09 OH Transcription Batch 1 Assignment
018171,000012: ## 2016-12-10 RSB Proofed comments with octopus/ProoferComments
018172,000013: ## and fixed the errors found.
018173,000014: ## 2017-01-28 RSB WTIH -> WITH.
018174,000015: ##
018175,000016: ## The contents of the "Comanche055" files, in general, are transcribed
018176,000017: ## from scanned documents.
018177,000018: ##
018178,000019: ## Assemble revision 055 of AGC program Comanche by NASA
018179,000020: ## 2021113-051. April 1, 1969.
018180,000021: ##
018181,000022: ## This AGC program shall also be referred to as Colossus 2A
018182,000023: ##
018183,000024: ## Prepared by
018184,000025: ## Massachusetts Institute of Technology
018185,000026: ## 75 Cambridge Parkway
018186,000027: ## Cambridge, Massachusetts
018187,000028: ##
018188,000029: ## under NASA contract NAS 9-4065.
018189,000030: ##
018190,000031: ## Refer directly to the online document mentioned above for further information.
018191,000032: ## Please report any errors to info@sandroid.org.
018192,000033:
![]() |
Page 414 |
018194,000035: # GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
018195,000036:
018196,000037: # NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
018197,000038:
018198,000039: 15,2000 BANK 15
018199,000040:
018200,000041: 22,2000 SETLOC KALCMON1
018201,000042: 22,2000 BANK
018202,000043:
018203,000044: 22,3026 E6,1661 EBANK= BCDU
018204,000045:
018205,000046: 22,3026 COUNT 22/KALC
018206,000047:
018207,000048: 22,3026 41332 NEWDELHI CS HOLDFLAG # SEE IF MANEUVER HAS BEEN INTERRUPTED
018208,000049: 22,3027 00006 EXTEND # BY ASTRONAUT
018209,000050: 22,3030 62726 BZMF NOGO -2 # IF SO, TERMINATE KALCMANU
018210,000051: 22,3031 06006 NEWANGL TC INTPRET
018211,000052: 22,3032 75160 AXC,1 AXC,2
018212,000053: 22,3033 03320 MIS # COMPUTE THE NEW MATRIX FROM S/C TO
018213,000054: 22,3034 03425 DEL # STABLE MEMBER AXES
018214,000055: 22,3035 77624 CALL
018215,000056: 22,3036 44304 MXM3
018216,000057: 22,3037 45575 VLOAD STADR
018217,000058: 22,3040 50442 STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
018218,000059: 22,3041 77626 STADR
018219,000060: 22,3042 50450 STOVL MIS +6D
018220,000061: 22,3043 77626 STADR
018221,000062: 22,3044 74456 STORE MIS
018222,000063: 22,3045 45160 AXC,1 CALL
018223,000064: 22,3046 03320 MIS
018224,000065: 22,3047 44655 DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
018225,000066: 22,3050 77634 RTB
018226,000067: 22,3051 45552 V1STO2S
018227,000068: 22,3052 03267 STORE NCDU # NEW CDU ANGLES
018228,000069: 22,3053 77414 BONCLR EXIT
018229,000070: 22,3054 01215 CALCMAN2
018230,000071: 22,3055 40065 MANUSTAT # TO START MANEUVER
018231,000072: 22,3056 35016 CAF TWO # +0 OTHERWISE
018232,000073: 22,3057 55664 INCRDCDU TS KSPNDX
018233,000074: 22,3060 60000 DOUBLE
018234,000075: 22,3061 55665 TS KDPNDX
018235,000076: 22,3062 51664 INDEX KSPNDX
018236,000077: 22,3063 31666 CA NCDU # NEW DESIRED CDU ANGLES
018237,000078: 22,3064 00006 EXTEND
018238,000079: 22,3065 51664 INDEX KSPNDX
018239,000080: 22,3066 21661 MSU BCDU # INITIAL S/C ANGLE OR PREVIOUS DESIRED
018240,000081: 22,3067 00006 EXTEND # CDU ANGLES
018241,000082: 22,3070 73002 MP QUADROT
018242,000083: 22,3071 51665 INDEX KDPNDX
018243,000084: 22,3072 53576 DXCH DELCDUX # ANGLE INCREMENTS TO BE ADDED TO
![]() |
Page 415 |
018245,000086: 22,3073 51664 INDEX KSPNDX # DCDU EVERY TENTH SEC
018246,000087: 22,3074 31666 CA NCDU # BY LEM DAP
018247,000088: 22,3075 51664 INDEX KSPNDX
018248,000089: 22,3076 57661 XCH BCDU
018249,000090: 22,3077 51665 INDEX KDPNDX
018250,000091: 22,3100 55646 TS CDUXD
018251,000092: 22,3101 11664 CCS KSPNDX
018252,000093: 22,3102 13057 TCF INCRDCDU # LOOP FOR THREE AXES
018253,000094:
018254,000095: 22,3103 00003 RELINT
018255,000096: # COMPARE PRESENT TIME WITH TIME TO TERMINATE MANEUVER
018256,000097:
018257,000098: 22,3104 03115 TMANUCHK TC TIMECHK
018258,000099: 22,3105 04701 TC POSTJUMP
018259,000100: 22,3106 40131 CADR CONTMANU
018260,000101:
018261,000102: 22,3107 35017 CAF ONE
018262,000103: 22,3110 05245 MANUSTAL TC WAITLIST
018263,000104: 22,3111 E6,1661 EBANK= BCDU
018264,000105: 22,3111 02000 42066 2CADR MANUSTOP
018265,000106:
018266,000107: 22,3113 00003 RELINT
018267,000108: 22,3114 15217 TCF ENDOFJOB
018268,000109:
018269,000110:
018270,000111: 22,3115 00006 TIMECHK EXTEND
018271,000112: 22,3116 40025 DCS TIME2
018272,000113: 22,3117 53673 DXCH TTEMP
018273,000114: 22,3120 00006 EXTEND
018274,000115: 22,3121 31717 DCA TM
018275,000116: 22,3122 21673 DAS TTEMP
018276,000117: 22,3123 11672 CCS TTEMP
018277,000118: 22,3124 00002 TC Q
018278,000119: 22,3125 13127 TCF +2
018279,000120: 22,3126 13137 TCF 2NDRETRN
018280,000121: 22,3127 11673 CCS TTEMP +1
018281,000122: 22,3130 00002 TC Q
018282,000123: 22,3131 13133 TCF MANUOFF
018283,000124: 22,3132 40000 COM
018284,000125: 22,3133 65041 MANUOFF AD 1SEC
018285,000126: 22,3134 00006 EXTEND
018286,000127: 22,3135 63137 BZMF 2NDRETRN
018287,000128: 22,3136 24002 INCR Q
018288,000129: 22,3137 24002 2NDRETRN INCR Q
018289,000130: 22,3140 24002 INCR Q
018290,000131: 22,3141 00002 TC Q
018291,000132:
018292,000133: 20,2000 SETLOC MANUSTUF
018293,000134: 20,2000 BANK
![]() |
Page 416 |
018295,000136: 20,2065 77776 MANUSTAT EXIT # INITIALIZATION ROUTINE
018296,000137: 20,2066 00006 EXTEND # FOR AUTOMATIC MANEUVERS
018297,000138: 20,2067 30025 DCA TIME2
018298,000139: 20,2070 21717 DAS TM # TM+T0 MANEUVER COMPLETION TIME
018299,000140: 20,2071 45041 CS 1SEC
018300,000141: 20,2072 54001 TS L
018301,000142: 20,2073 45021 CS ZERO
018302,000143: 20,2074 21717 DAS TM # (TM+T0)-1
018303,000144: 20,2075 00004 INHINT
018304,000145: 20,2076 45017 CS ONE # ENABLE AUTOPILOT TO PERFORM
018305,000146: 20,2077 55332 TS HOLDFLAG # AUTOMATIC MANEUVERS
018306,000147: 20,2100 41130 CS RATEINDX # SEE IF MANEUVERING AT HIGH RATE
018307,000148: 20,2101 66211 AD SIX
018308,000149: 20,2102 00006 EXTEND
018309,000150: 20,2103 62105 BZMF HIGHGAIN
018310,000151: 20,2104 12110 TCF +4
018311,000152: 20,2105 41501 HIGHGAIN CS RCSFLAGS # IF SO, SET HIGH RATE FLAG (BIT 15 OF
018312,000153: 20,2106 75001 MASK BIT15 # RCSFLAGS)
018313,000154: 20,2107 27501 ADS RCSFLAGS
018314,000155: 20,2110 53711 DXCH BRATE # X-AXIS MANEUVER RATE
018315,000156: 20,2111 53526 DXCH WBODY
018316,000157: 20,2112 53713 DXCH BRATE +2 # Y-AXIS MANEUVER RATE
018317,000158: 20,2113 53530 DXCH WBODY1
018318,000159: 20,2114 53715 DXCH BRATE +4 # Z-AXIS MANEUVER RATE
018319,000160: 20,2115 53532 DXCH WBODY2
018320,000161: 20,2116 31675 CA BIASTEMP +1 # INSERT ATTITUDE ERROR BIASES
018321,000162: 20,2117 55564 TS BIAS # INTO AUTOPILOT
018322,000163: 20,2120 31677 CA BIASTEMP +3
018323,000164: 20,2121 55565 TS BIAS1
018324,000165: 20,2122 31701 CA BIASTEMP +5
018325,000166: 20,2123 55566 TS BIAS2
018326,000167: 20,2124 30025 CA TIME1
018327,000168: 20,2125 65041 AD 1SEC
018328,000169: 20,2126 57671 XCH NEXTIME
018329,000170: 20,2127 04701 TC POSTJUMP
018330,000171: 20,2130 45056 CADR INCRDCDU -1
018331,000172:
018332,000173: 20,2131 00004 CONTMANU INHINT # CONTINUE WITH UPDATE PROCESS
018333,000174: 20,2132 40025 CS TIME1
018334,000175: 20,2133 61671 AD NEXTIME
018335,000176: 20,2134 10000 CCS A
018336,000177: 20,2135 65017 AD ONE
018337,000178: 20,2136 12141 TCF MANUCALL
018338,000179: 20,2137 65001 AD NEGMAX
018339,000180: 20,2140 40000 COM
018340,000181: 20,2141 05245 MANUCALL TC WAITLIST
018341,000182: 20,2142 E6,1661 EBANK= BCDU
018342,000183: 20,2142 02150 40066 2CADR UPDTCALL
018343,000184:
018344,000185: 20,2144 00003 RELINT
![]() |
Page 417 |
018346,000187: 20,2145 35041 CAF 1SEC # INCREMENT TIME FOR NEXT UPDATE
018347,000188: 20,2146 27671 ADS NEXTIME
018348,000189: 20,2147 15217 TCF ENDOFJOB
018349,000190:
018350,000191:
018351,000192: 20,2150 37663 UPDTCALL CAF PRIO26 # CALL FOR UPDATE
018352,000193: 20,2151 05147 TC FINDVAC # OF STEERING COMMANDS
018353,000194: 20,2152 E6,1661 EBANK= BCDU
018354,000195: 20,2152 03026 44066 2CADR NEWDELHI
018355,000196:
018356,000197: 20,2154 05324 TC TASKOVER
018357,000198:
![]() |
Page 418 |
018359,000200: # ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
018360,000201:
018361,000202: 21,2000 SETLOC KALCMON3
018362,000203: 21,2000 BANK
018363,000204:
018364,000205: 21,2000 04537 MANUSTOP TC STOPYZ
018365,000206: 21,2001 04740 TC IBNKCALL
018366,000207: 21,2002 45144 CADR LOADYZ
018367,000208:
018368,000209: 21,2003 31155 ENDROLL CA CPHI
018369,000210: 21,2004 55646 TS CDUXD # SET CDUXD TO THE COMMANDED OUTER GIMBAL
018370,000211: 21,2005 04526 TC STOPRATE
018371,000212: 21,2006 31327 ENDMANU CA ATTPRIO # RESTORE USERS PRIORITY
018372,000213: 21,2007 54063 TS NEWPRIO
018373,000214:
018374,000215: 21,2010 35021 CA ZERO # ZERO ATTCADR
018375,000216: 21,2011 53326 DXCH ATTCADR
018376,000217:
018377,000218: 21,2012 05160 TC SPVAC # RETURN TO USER OF GOMANUR
018378,000219:
018379,000220: 21,2013 05324 TC TASKOVER
018380,000221:
018381,000222: 4000 SETLOC STOPRAT
018382,000223: 4000 BANK
018383,000224: 4526 35021 STOPRATE CAF ZERO
018384,000225: 4527 55575 TS DELCDUX
018385,000226: 4530 55576 TS DELCDUX +1 # ZERO ROLL INCREMENTAL ANGLES
018386,000227: 4531 55525 TS WBODY # RATE
018387,000228: 4532 55526 TS WBODY +1
018388,000229: 4533 55564 TS BIAS # BIAS
018389,000230:
018390,000231: 4534 45001 CS BIT15 # MAKE SURE HIGH RATE FLAG (BIT 15 OF
018391,000232: 4535 71501 MASK RCSFLAGS # RCSFLAGS) IS RESET.
018392,000233: 4536 55501 TS RCSFLAGS
018393,000234:
018394,000235: 4537 35021 STOPYZ CAF ZERO
018395,000236: 4540 55577 TS DELCDUY # ZERO PITCH, YAW
018396,000237: 4541 55600 TS DELCDUY +1 # INCREMENTAL ANGLES
018397,000238: 4542 55601 TS DELCDUZ
018398,000239: 4543 55602 TS DELCDUZ +1
018399,000240: 4544 55527 TS WBODY1 # RATES
018400,000241: 4545 55530 TS WBODY1 +1
018401,000242: 4546 55531 TS WBODY2
018402,000243: 4547 55532 TS WBODY2 +1
018403,000244: 4550 55565 TS BIAS1 # BIASES
018404,000245: 4551 55566 TS BIAS2
018405,000246: 4552 00002 TC Q
018406,000247:
018407,000248: 20,2000 SETLOC MANUSTUF
018408,000249: 20,2000 BANK
018409,000250:
![]() |
Page 419 |
018411,000252: 20,2155 30032 ZEROERROR CA CDUX # PICK UP CDU ANGLES AND STORE IN
018412,000253: 20,2156 55646 TS CDUXD # CDU DESIRED
018413,000254: 20,2157 30033 CA CDUY
018414,000255: 20,2160 55650 TS CDUYD
018415,000256: 20,2161 30034 CA CDUZ
018416,000257: 20,2162 55652 TS CDUZD
018417,000258: 20,2163 00002 TC Q
018418,000259:
018419,000260: 22,2000 SETLOC KALCMON1
018420,000261: 22,2000 BANK
018421,000262:
018422,000263: 22,3142 31155 LOADCDUD CA CPHI # STORE TERMINAL ANGLES INTO
018423,000264: 22,3143 55646 TS CDUXD # COMMAND ANGLES
018424,000265: 22,3144 31156 LOADYZ CA CTHETA
018425,000266: 22,3145 55650 TS CDUYD
018426,000267: 22,3146 31157 CA CPSI
018427,000268: 22,3147 55652 TS CDUZD
018428,000269: 22,3150 00002 TC Q
End of include-file KALCMANU_STEERING.agc. Parent file is MAIN.agc