Source Code
![]() |
These source-code files were derived from scans of the
Colossus 237 (Apollo 8 Command Module) program listing from the private collection of original
AGC developer Fred Martin. Scanning was by Ron Burkey. Pre-existing Colossus 249
(Apollo 9 CM) source files were used as a template, and changes between Colossus 249
and Colossus 237 were manually transcribed by a team of volunteers. Note
that the page images
presented online are of reduced quality, and that additional 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 237 OF AGC PROGRAM COLOSSUS BY NASA 2021111-031 1:17 AUG. 24, 1968Note that the date is the date of the printout, not the date of the program revision. |
017833,000002: ## Copyright: Public domain.
017834,000003: ## Filename: KALCMANU_STEERING.agc
017835,000004: ## Purpose: Part of the source code for Colossus build 237.
017836,000005: ## This is for the Command Module's (CM) Apollo Guidance
017837,000006: ## Computer (AGC), for Apollo 8.
017838,000007: ## Assembler: yaYUL
017839,000008: ## Contact: Onno Hommes <ohommes@alumni.cmu.edu>
017840,000009: ## Website: www.ibiblio.org/apollo/index.html
017841,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Colossus237/
017842,000011: ## Mod history: 2010-06-01 OH Adapted from corresponding Colossus 249 file.
017843,000012: ## 2010-12-04 JL Remove Colossus 249 header comments. Change
017844,000013: ## to double-hash page numbers.
017845,000014: ## 2011-01-27 JL Minor fixes.
017846,000015: ## 2016-08-14 RSB Added SBANKs for addressing discrepancies.
017847,000016: ## 2016-12-30 RSB Proofed comment text using octopus/ProoferComments,
017848,000017: ## and corrected errors found.
017849,000018: ## 2017-01-28 RSB WTIH -> WITH.
017850,000019:
![]() |
Page 405 |
017852,000021: # GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
017853,000022:
017854,000023: # NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
017855,000024:
017856,000025: 15,2000 BANK 15
017857,000026:
017858,000027: 22,2000 SETLOC KALCMON1
017859,000028: 22,2000 BANK
017860,000029:
![]() |
2016-08-14 RSB Added SBANK for addressing discrepancies. |
017862,000031: 22,3027 40,2000 SBANK= PINSUPER
017863,000032: 22,3027 E6,1661 EBANK= BCDU
017864,000033:
017865,000034: 22,3027 COUNT 22/KALC
017866,000035:
017867,000036: 22,3027 41332 NEWDELHI CS HOLDFLAG # SEE IF MANEUVER HAS BEEN INTERRUPTED
017868,000037: 22,3030 00006 EXTEND # BY ASTRONAUT
017869,000038: 22,3031 62725 BZMF NOGO -2 # IF SO, TERMINATE KALCMANU
017870,000039: 22,3032 06006 NEWANGL TC INTPRET
017871,000040: 22,3033 75160 AXC,1 AXC,2
017872,000041: 22,3034 03320 MIS # COMPUTE THE NEW MATRIX FROM S/C TO
017873,000042: 22,3035 03425 DEL # STABLE MEMBER AXES
017874,000043: 22,3036 77624 CALL
017875,000044: 22,3037 44304 MXM3
017876,000045: 22,3040 45575 VLOAD STADR
017877,000046: 22,3041 50442 STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
017878,000047: 22,3042 77626 STADR
017879,000048: 22,3043 50450 STOVL MIS +6D
017880,000049: 22,3044 77626 STADR
017881,000050: 22,3045 74456 STORE MIS
017882,000051: 22,3046 45160 AXC,1 CALL
017883,000052: 22,3047 03320 MIS
017884,000053: 22,3050 44655 DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
017885,000054: 22,3051 77634 RTB
017886,000055: 22,3052 45547 V1STO2S
017887,000056: 22,3053 03267 STORE NCDU # NEW CDU ANGLES
017888,000057: 22,3054 77414 BONCLR EXIT
017889,000058: 22,3055 01215 CALCMAN2
017890,000059: 22,3056 45142 MANUSTAT # TO START MANEUVER
017891,000060: 22,3057 34711 CAF TWO # +0 OTHERWISE
017892,000061: 22,3060 55664 INCRDCDU TS KSPNDX
017893,000062: 22,3061 60000 DOUBLE
017894,000063: 22,3062 55665 TS KDPNDX
017895,000064: 22,3063 51664 INDEX KSPNDX
017896,000065: 22,3064 31666 CA NCDU # NEW DESIRED CDU ANGLES
017897,000066: 22,3065 00006 EXTEND
017898,000067: 22,3066 51664 INDEX KSPNDX
017899,000068: 22,3067 21661 MSU BCDU # INITIAL S/C ANGLE OR PREVIOUS DESIRED
017900,000069: 22,3070 00006 EXTEND # CDU ANGLES
017901,000070: 22,3071 73141 MP DT/TAU
017902,000071: 22,3072 51665 INDEX KDPNDX
017903,000072: 22,3073 53576 DXCH DELCDUX # ANGLE INCREMENTS TO BE ADDED TO
![]() |
Page 406 |
017905,000074: 22,3074 51664 INDEX KSPNDX # DCDU EVERY TENTH SEC
017906,000075: 22,3075 31666 CA NCDU # BY LEM DAP
017907,000076: 22,3076 51664 INDEX KSPNDX
017908,000077: 22,3077 57661 XCH BCDU
017909,000078: 22,3100 51665 INDEX KDPNDX
017910,000079: 22,3101 55646 TS CDUXD
017911,000080: 22,3102 11664 CCS KSPNDX
017912,000081: 22,3103 13060 TCF INCRDCDU # LOOP FOR THREE AXES
017913,000082:
017914,000083: 22,3104 00003 RELINT
017915,000084: # COMPARE PRESENT TIME WITH TIME TO TERMINATE MANEUVER
017916,000085:
017917,000086: 22,3105 03115 TMANUCHK TC TIMECHK
017918,000087: 22,3106 13206 TCF CONTMANU
017919,000088: 22,3107 34712 CAF ONE
017920,000089: 22,3110 05140 MANUSTAL TC WAITLIST
![]() |
2016-08-14 RSB Added SBANK for addressing discrepancies. |
017922,000091: 22,3111 40,2000 SBANK= PINSUPER
017923,000092: 22,3111 E6,1661 EBANK= BCDU
017924,000093: 22,3111 03232 44106 2CADR MANUSTOP
017925,000094: 22,3113 00003 RELINT
017926,000095: 22,3114 15112 TCF ENDOFJOB
017927,000096:
017928,000097:
017929,000098: 22,3115 00006 TIMECHK EXTEND
017930,000099: 22,3116 40025 DCS TIME2
017931,000100: 22,3117 53673 DXCH TTEMP
017932,000101: 22,3120 00006 EXTEND
017933,000102: 22,3121 31717 DCA TM
017934,000103: 22,3122 21673 DAS TTEMP
017935,000104: 22,3123 11672 CCS TTEMP
017936,000105: 22,3124 00002 TC Q
017937,000106: 22,3125 13127 TCF +2
017938,000107: 22,3126 13137 TCF 2NDRETRN
017939,000108: 22,3127 11673 CCS TTEMP +1
017940,000109: 22,3130 00002 TC Q
017941,000110: 22,3131 13133 TCF MANUOFF
017942,000111: 22,3132 40000 COM
017943,000112: 22,3133 63205 MANUOFF AD ONESEC +1
017944,000113: 22,3134 00006 EXTEND
017945,000114: 22,3135 63137 BZMF 2NDRETRN
017946,000115: 22,3136 24002 INCR Q
017947,000116: 22,3137 24002 2NDRETRN INCR Q
017948,000117: 22,3140 00002 TC Q
017949,000118: 22,3141 03146 DT/TAU DEC .1
017950,000119:
017951,000120: 22,3142 77776 MANUSTAT EXIT # INITIALIZATION ROUTINE
017952,000121: 22,3143 00006 EXTEND # FOR AUTOMATIC MANEUVERS
017953,000122: 22,3144 30025 DCA TIME2
017954,000123: 22,3145 21717 DAS TM # TM+T0 MANEUVER COMPLETION TIME
017955,000124: 22,3146 00006 EXTEND
![]() |
Page 407 |
017957,000126: 22,3147 43205 DCS ONESEC
017958,000127: 22,3150 21717 DAS TM # (TM+T0)-1
017959,000128: 22,3151 00004 INHINT
017960,000129: 22,3152 44712 CS ONE # ENABLE AUTOPILOT TO PERFORM
017961,000130: 22,3153 55332 TS HOLDFLAG # AUTOMATIC MANEUVERS
017962,000131: 22,3154 41130 CS RATEINDX # SEE IF MANEUVERING AT HIGH RATE
017963,000132: 22,3155 66211 AD SIX
017964,000133: 22,3156 00006 EXTEND
017965,000134: 22,3157 63161 BZMF HIGHGAIN
017966,000135: 22,3160 13164 TCF +4
017967,000136: 22,3161 41501 HIGHGAIN CS RCSFLAGS # IF SO, SET HIGH RATE FLAG (BIT 15 OF
017968,000137: 22,3162 74674 MASK BIT15 # RCSFLAGS)
017969,000138: 22,3163 27501 ADS RCSFLAGS
017970,000139: 22,3164 53711 DXCH BRATE # X-AXIS MANEUVER RATE
017971,000140: 22,3165 53526 DXCH WBODY
017972,000141: 22,3166 53713 DXCH BRATE +2 # Y-AXIS MANEUVER RATE
017973,000142: 22,3167 53530 DXCH WBODY1
017974,000143: 22,3170 53715 DXCH BRATE +4 # Z-AXIS MANEUVER RATE
017975,000144: 22,3171 53532 DXCH WBODY2
017976,000145: 22,3172 31675 CA BIASTEMP +1 # INSERT ATTITUDE ERROR BIASES
017977,000146: 22,3173 55564 TS BIAS # INTO AUTOPILOT
017978,000147: 22,3174 31677 CA BIASTEMP +3
017979,000148: 22,3175 55565 TS BIAS1
017980,000149: 22,3176 31701 CA BIASTEMP +5
017981,000150: 22,3177 55566 TS BIAS2
017982,000151: 22,3200 30025 CA TIME1
017983,000152: 22,3201 63205 AD ONESEC +1
017984,000153: 22,3202 57671 XCH NEXTIME
017985,000154: 22,3203 13057 TCF INCRDCDU -1
017986,000155:
017987,000156: 22,3204 00000 ONESEC DEC 0 B-14
017988,000157: 22,3205 00144 DEC 100 B-14
017989,000158:
017990,000159: 22,3206 00004 CONTMANU INHINT # CONTINUE WITH UPDATE PROCESS
017991,000160: 22,3207 40025 CS TIME1
017992,000161: 22,3210 61671 AD NEXTIME
017993,000162: 22,3211 10000 CCS A
017994,000163: 22,3212 64712 AD ONE
017995,000164: 22,3213 13216 TCF MANUCALL
017996,000165: 22,3214 64674 AD NEGMAX
017997,000166: 22,3215 40000 COM
017998,000167: 22,3216 05140 MANUCALL TC WAITLIST
![]() |
2016-08-14 RSB Added SBANK for addressing discrepancies. |
018000,000169: 22,3217 40,2000 SBANK= PINSUPER
018001,000170: 22,3217 E6,1661 EBANK= BCDU
018002,000171: 22,3217 03225 44106 2CADR UPDTCALL
018003,000172: 22,3221 00003 RELINT
018004,000173: 22,3222 33205 CAF ONESEC +1 # INCREMENT TIME FOR NEXT UPDATE
018005,000174: 22,3223 27671 ADS NEXTIME
018006,000175: 22,3224 15112 TCF ENDOFJOB
018007,000176:
![]() |
Page 408 |
018009,000178: 22,3225 37663 UPDTCALL CAF PRIO26 # CALL FOR UPDATE
018010,000179: 22,3226 05042 TC FINDVAC # OF STEERING COMMANDS
![]() |
2016-08-14 RSB Added SBANK for addressing discrepancies. |
018012,000181: 22,3227 40,2000 SBANK= PINSUPER
018013,000182: 22,3227 E6,1661 EBANK= BCDU
018014,000183: 22,3227 03027 44106 2CADR NEWDELHI
018015,000184: 22,3231 05213 TC TASKOVER
018016,000185:
![]() |
Page 409 |
018018,000187: # ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
018019,000188:
018020,000189: 22,3232 03256 MANUSTOP TC STOPYZ
018021,000190: 22,3233 03303 TC LOADYZ
018022,000191:
018023,000192: 22,3234 31155 ENDROLL CA CPHI
018024,000193: 22,3235 55646 TS CDUXD # SET CDUXD TO THE COMMANDED OUTER GIMBAL
018025,000194: 22,3236 03245 TC STOPRATE
018026,000195: 22,3237 31327 ENDMANU CA ATTPRIO # RESTORE USERS PRIORITY
018027,000196: 22,3240 54063 TS NEWPRIO
018028,000197:
018029,000198: 22,3241 34714 CA ZERO # ZERO ATTCADR
018030,000199: 22,3242 53326 DXCH ATTCADR
018031,000200:
018032,000201: 22,3243 05053 TC SPVAC # RETURN TO USER OF GOMANUR
018033,000202:
018034,000203: 22,3244 05213 TC TASKOVER
018035,000204:
018036,000205: 22,3245 34714 STOPRATE CAF ZERO
018037,000206: 22,3246 55575 TS DELCDUX
018038,000207: 22,3247 55576 TS DELCDUX +1 # ZERO ROLL INCREMENTAL ANGLES
018039,000208: 22,3250 55525 TS WBODY # RATE
018040,000209: 22,3251 55526 TS WBODY +1
018041,000210: 22,3252 55564 TS BIAS # BIAS
018042,000211:
018043,000212: 22,3253 44674 CS BIT15 # MAKE SURE HIGH RATE FLAG (BIT 15 OF
018044,000213: 22,3254 71501 MASK RCSFLAGS # RCSFLAGS) IS RESET.
018045,000214: 22,3255 55501 TS RCSFLAGS
018046,000215:
018047,000216: 22,3256 34714 STOPYZ CAF ZERO
018048,000217: 22,3257 55577 TS DELCDUY # ZERO PITCH, YAW
018049,000218: 22,3260 55600 TS DELCDUY +1 # INCREMENTAL ANGLES
018050,000219: 22,3261 55601 TS DELCDUZ
018051,000220: 22,3262 55602 TS DELCDUZ +1
018052,000221: 22,3263 55527 TS WBODY1 # RATES
018053,000222: 22,3264 55530 TS WBODY1 +1
018054,000223: 22,3265 55531 TS WBODY2
018055,000224: 22,3266 55532 TS WBODY2 +1
018056,000225: 22,3267 55565 TS BIAS1 # BIASES
018057,000226: 22,3270 55566 TS BIAS2
018058,000227: 22,3271 00002 TC Q
018059,000228:
018060,000229: 22,3272 30032 ZEROEROR CA CDUX # PICK UP CDU ANGLES AND STORE IN
018061,000230: 22,3273 55646 TS CDUXD # CDU DESIRED
018062,000231: 22,3274 30033 CA CDUY
018063,000232: 22,3275 55650 TS CDUYD
018064,000233: 22,3276 30034 CA CDUZ
018065,000234: 22,3277 55652 TS CDUZD
018066,000235: 22,3300 00002 TC Q
018067,000236:
![]() |
Page 410 |
018069,000238: 22,3301 31155 LOADCDUD CA CPHI # STORE TERMINAL ANGLES INTO
018070,000239: 22,3302 55646 TS CDUXD # COMMAND ANGLES
018071,000240: 22,3303 31156 LOADYZ CA CTHETA
018072,000241: 22,3304 55650 TS CDUYD
018073,000242: 22,3305 31157 CA CPSI
018074,000243: 22,3306 55652 TS CDUZD
018075,000244: 22,3307 00002 TC Q
End of include-file KALCMANU_STEERING.agc. Parent file is MAIN.agc