Source Code
017731,000001: # Copyright: Public domain.
017732,000002: # Filename: KALCMANU_STEERING.agc
017733,000003: # Purpose: Part of the source code for Colossus, build 249.
017734,000004: # It is part of the source code for the Command Module's (CM)
017735,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9.
017736,000006: # Assembler: yaYUL
017737,000007: # Reference: pp. 409-414 of 1701.pdf.
017738,000008: # Contact: Ron Burkey <info@sandroid.org>.
017739,000009: # Website: www.ibiblio.org/apollo.
017740,000010: # Mod history: 08/10/04 RSB. Began adapting from corresponding Luminary131
017741,000011: # source file.
017742,000012:
017743,000013: # The contents of the "Colossus249" files, in general, are transcribed
017744,000014: # from a scanned document obtained from MIT's website,
017745,000015: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this
017746,000016: # document read, in part:
017747,000017:
017748,000018: # Assemble revision 249 of AGC program Colossus by NASA
017749,000019: # 2021111-041. October 28, 1968.
017750,000020:
017751,000021: # This AGC program shall also be referred to as
017752,000022: # Colossus 1A
017753,000023:
017754,000024: # Prepared by
017755,000025: # Massachusetts Institute of Technology
017756,000026: # 75 Cambridge Parkway
017757,000027: # Cambridge, Massachusetts
017758,000028: # under NASA contract NAS 9-4065.
017759,000029:
017760,000030: # Refer directly to the online document mentioned above for further information.
017761,000031: # Please report any errors (relative to 1701.pdf) to info@sandroid.org.
017762,000032:
017763,000033: # In some cases, where the source code for Luminary 131 overlaps that of
017764,000034: # Colossus 249, this code is instead copied from the corresponding Luminary 131
017765,000035: # source file, and then is proofed to incorporate any changes.
017766,000036:
017767,000037: # Page 409
017768,000038: # GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
017769,000039:
017770,000040: # NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
017771,000041:
017772,000042: 15,2000 BANK 15
017773,000043: 22,2000 SETLOC KALCMON1
017774,000044: 22,2000 BANK
017775,000045:
017776,000046: 22,3027 E6,1661 EBANK= BCDU
017777,000047:
017778,000048: 22,3027 COUNT 22/KALC
017779,000049:
017780,000050: 22,3027 41332 NEWDELHI CS HOLDFLAG # SEE IF MANEUVER HAS BEEN INTERRUPTED
017781,000051: 22,3030 00006 EXTEND # BY ASTRONAUT.
017782,000052: 22,3031 62725 BZMF NOGO -2 # IF SO, TERMINATE KALCMANU
017783,000053: 22,3032 06006 NEWANGL TC INTPRET
017784,000054: 22,3033 75160 AXC,1 AXC,2
017785,000055: 22,3034 03320 MIS # COMPUTE THE NEW MATRIX FROM S/C TO
017786,000056: 22,3035 03425 DEL # STABLE MEMBER AXES
017787,000057: 22,3036 77624 CALL
017788,000058: 22,3037 44304 MXM3
017789,000059: 22,3040 45575 VLOAD STADR
017790,000060: 22,3041 50442 STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
017791,000061: 22,3042 77626 STADR
017792,000062: 22,3043 50450 STOVL MIS +6D
017793,000063: 22,3044 77626 STADR
017794,000064: 22,3045 74456 STORE MIS
017795,000065: 22,3046 45160 AXC,1 CALL
017796,000066: 22,3047 03320 MIS
017797,000067: 22,3050 44655 DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
017798,000068: 22,3051 77634 RTB
017799,000069: 22,3052 45547 V1STO2S
017800,000070: 22,3053 03267 STORE NCDU # NEW CDU ANGLES
017801,000071: 22,3054 77414 BONCLR EXIT
017802,000072: 22,3055 01215 CALCMAN2
017803,000073: 22,3056 45142 MANUSTAT # TO START MANEUVER
017804,000074: 22,3057 34711 CAF TWO # +0 OTHERWISE
017805,000075: 22,3060 55664 INCRDCDU TS KSPNDX
017806,000076: 22,3061 60000 DOUBLE
017807,000077: 22,3062 55665 TS KSPNDX +1
017808,000078: 22,3063 51664 INDEX KSPNDX
017809,000079: 22,3064 31666 CA NCDU # NEW DESIRED CDU ANGLES
017810,000080: 22,3065 00006 EXTEND
017811,000081: 22,3066 51664 INDEX KSPNDX
017812,000082: 22,3067 21661 MSU BCDU # INITIAL S/C ANGLE OR PRVIOUS DESIRED
017813,000083: 22,3070 00006 EXTEND # CDU ANGLES
017814,000084: 22,3071 73141 MP DT/TAU
017815,000085: 22,3072 51665 INDEX KDPNDX
017816,000086: 22,3073 53576 DXCH DELCDUX # ANGEL INCREMENTS TO BE ADDED TO
017817,000087: # Page 410
017818,000088: 22,3074 51664 INDEX KSPNDX # DCDU EVERY TENTH SEC
017819,000089: 22,3075 31666 CA NCDU # BY LEM DAP
017820,000090: 22,3076 51664 INDEX KSPNDX
017821,000091: 22,3077 57661 XCH BCDU
017822,000092: 22,3100 51665 INDEX KSPNDX +1
017823,000093: 22,3101 55646 TS CDUXD
017824,000094: 22,3102 11664 CCS KSPNDX
017825,000095: 22,3103 13060 TCF INCRDCDU # LOOP FOR THREE AXES
017826,000096:
017827,000097: 22,3104 00003 RELINT
017828,000098:
017829,000099: # COMPARE PRESENT TIME WTIH TIME TO TERMINATE MANEUVER
017830,000100:
017831,000101: 22,3105 03115 TMANUCHK TC TIMECHK
017832,000102: 22,3106 13206 TCF CONTMANU
017833,000103: 22,3107 34712 CAF ONE
017834,000104: 22,3110 05140 MANUSTAL TC WAITLIST
017835,000105: 22,3111 E6,1661 EBANK= BCDU
017836,000106: 22,3111 03232 44106 2CADR MANUSTOP
017837,000107:
017838,000108: 22,3113 00003 RELINT
017839,000109: 22,3114 15112 TCF ENDOFJOB
017840,000110:
017841,000111: 22,3115 00006 TIMECHK EXTEND
017842,000112: 22,3116 40025 DCS TIME2
017843,000113: 22,3117 53673 DXCH TTEMP
017844,000114: 22,3120 00006 EXTEND
017845,000115: 22,3121 31717 DCA TM
017846,000116: 22,3122 21673 DAS TTEMP
017847,000117: 22,3123 11672 CCS TTEMP
017848,000118: 22,3124 00002 TC Q
017849,000119: 22,3125 13127 TCF +2
017850,000120: 22,3126 13137 TCF 2NDRETRN
017851,000121: 22,3127 11673 CCS TTEMP +1
017852,000122: 22,3130 00002 TC Q
017853,000123: 22,3131 13133 TCF MANUOFF
017854,000124: 22,3132 40000 COM
017855,000125: 22,3133 63205 MANUOFF AD ONESEC +1
017856,000126: 22,3134 00006 EXTEND
017857,000127: 22,3135 63137 BZMF 2NDRETRN
017858,000128: 22,3136 24002 INCR Q
017859,000129: 22,3137 24002 2NDRETRN INCR Q
017860,000130: 22,3140 00002 TC Q
017861,000131:
017862,000132: 22,3141 03146 DT/TAU DEC .1
017863,000133:
017864,000134: 22,3142 77776 MANUSTAT EXIT # INITIALIZATION ROUTINE
017865,000135: 22,3143 00006 EXTEND # FOR AUTOMATIC MANEUVERS
017866,000136: 22,3144 30025 DCA TIME2
017867,000137: 22,3145 21717 DAS TM # TM+TO MANEUVER COMPLETION TIME
017868,000138: 22,3146 00006 EXTEND
017869,000139: # Page 411
017870,000140: 22,3147 43205 DCS ONESEC
017871,000141: 22,3150 21717 DAS TM # (TM+TO)-1
017872,000142: 22,3151 00004 INHINT
017873,000143: 22,3152 44712 CS ONE # ENABLE AUTOPILOT TO PERFORM
017874,000144: 22,3153 55332 TS HOLDFLAG # AUTOMATIC MANEUVERS
017875,000145: 22,3154 41130 CS RATEINDX # SEE IF MANEUVERING AT HIGH RATE
017876,000146: 22,3155 66211 AD SIX
017877,000147: 22,3156 00006 EXTEND
017878,000148: 22,3157 63161 BZMF HIGHGAIN
017879,000149: 22,3160 13164 TCF +4
017880,000150: 22,3161 41501 HIGHGAIN CS RCSFLAGS # IF SO, SET HIGH RATE FLAG (BIT 15 OF
017881,000151: 22,3162 74674 MASK BIT15 # RCSFLAGS)
017882,000152: 22,3163 27501 ADS RCSFLAGS
017883,000153: 22,3164 53711 DXCH BRATE # X-AXIS MANEUVER RATE
017884,000154: 22,3165 53526 DXCH WBODY
017885,000155: 22,3166 53713 DXCH BRATE +2 # Y-AXIS MANEUVER RATE
017886,000156: 22,3167 53530 DXCH WBODY1
017887,000157: 22,3170 53715 DXCH BRATE +4 # Z-AXIS MANEUVER RATE
017888,000158: 22,3171 53532 DXCH WBODY2
017889,000159: 22,3172 31675 CA BIASTEMP +1 # INSERT ATTITUDE ERROR BIASES
017890,000160: 22,3173 55564 TS BIAS # INTO AUTOPILOT
017891,000161: 22,3174 31677 CA BIASTEMP +3
017892,000162: 22,3175 55565 TS BIAS1
017893,000163: 22,3176 31701 CA BIASTEMP +5
017894,000164: 22,3177 55566 TS BIAS2
017895,000165: 22,3200 30025 CA TIME1
017896,000166: 22,3201 63205 AD ONESEC +1
017897,000167: 22,3202 57671 XCH NEXTIME
017898,000168: 22,3203 13057 TCF INCRDCDU -1
017899,000169:
017900,000170: 22,3204 00000 ONESEC DEC 0 B-14
017901,000171: 22,3205 00144 DEC 100 B-14
017902,000172:
017903,000173: 22,3206 00004 CONTMANU INHINT
017904,000174: 22,3207 40025 CS TIME1 # CONTINUE WITH UPDATE PROCESS
017905,000175: 22,3210 61671 AD NEXTIME
017906,000176: 22,3211 10000 CCS A
017907,000177: 22,3212 64712 AD ONE
017908,000178: 22,3213 13216 TCF MANUCALL
017909,000179: 22,3214 64674 AD NEGMAX
017910,000180: 22,3215 40000 COM
017911,000181: 22,3216 05140 MANUCALL TC WAITLIST
017912,000182: 22,3217 E6,1661 EBANK= BCDU
017913,000183: 22,3217 03225 44106 2CADR UPDTCALL
017914,000184: 22,3221 00003 RELINT
017915,000185: 22,3222 33205 CAF ONESEC +1 # INCREMENT TIME FOR NEXT UPDATE
017916,000186: 22,3223 27671 ADS NEXTIME
017917,000187: 22,3224 15112 TCF ENDOFJOB
017918,000188: # Page 412
017919,000189:
017920,000190: 22,3225 37663 UPDTCALL CAF PRIO26 # CALL FOR UPDATE
017921,000191: 22,3226 05042 TC FINDVAC # OF STEERING COMMANDS
017922,000192: 22,3227 E6,1661 EBANK= BCDU
017923,000193: 22,3227 03027 44106 2CADR NEWDELHI
017924,000194:
017925,000195: 22,3231 05213 TC TASKOVER
017926,000196:
017927,000197: # Page 413
017928,000198: # ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
017929,000199:
017930,000200: 22,3232 03256 MANUSTOP TC STOPYZ
017931,000201: 22,3233 03303 TC LOADYZ
017932,000202:
017933,000203: 22,3234 31155 ENDROLL CA CPHI
017934,000204: 22,3235 55646 TS CDUXD # SET CDUXD TO THE COMMANDED OUTER GIMBAL
017935,000205: 22,3236 03245 TC STOPRATE
017936,000206: 22,3237 31327 ENDMANU CA ATTPRIO # RESTORE USERS PRIO
017937,000207: 22,3240 54063 TS NEWPRIO
017938,000208:
017939,000209: 22,3241 34714 CA ZERO # ZERO ATTCADR
017940,000210: 22,3242 53326 DXCH ATTCADR
017941,000211:
017942,000212: 22,3243 05053 TC SPVAC # RETURN TO USER
017943,000213:
017944,000214: 22,3244 05213 TC TASKOVER
017945,000215:
017946,000216: 22,3245 34714 STOPRATE CAF ZERO
017947,000217: 22,3246 55575 TS DELCDUX
017948,000218: 22,3247 55576 TS DELCDUX +1 # ZERO ROLL INCREMENTAL ANGLES
017949,000219: 22,3250 55525 TS WBODY # RATE
017950,000220: 22,3251 55526 TS WBODY +1
017951,000221: 22,3252 55564 TS BIAS # BIAS
017952,000222:
017953,000223: 22,3253 44674 CS BIT15 # MAKE SURE HIGH RATE FLAG (BIT 15 OF
017954,000224: 22,3254 71501 MASK RCSFLAGS # RCSFLAGS) IS RESET.
017955,000225: 22,3255 55501 TS RCSFLAGS
017956,000226:
017957,000227: 22,3256 34714 STOPYZ CAF ZERO
017958,000228: 22,3257 55577 TS DELCDUY # ZERO PITCH, YAW
017959,000229: 22,3260 55600 TS DELCDUY +1 # INCREMENTAL ANGLES
017960,000230: 22,3261 55601 TS DELCDUZ
017961,000231: 22,3262 55602 TS DELCDUZ +1
017962,000232: 22,3263 55527 TS WBODY1 # RATES
017963,000233: 22,3264 55530 TS WBODY1 +1
017964,000234: 22,3265 55531 TS WBODY2
017965,000235: 22,3266 55532 TS WBODY2 +1
017966,000236: 22,3267 55565 TS BIAS1 # BIASES
017967,000237: 22,3270 55566 TS BIAS2
017968,000238: 22,3271 00002 TC Q
017969,000239:
017970,000240: 22,3272 30032 ZEROERROR CA CDUX # PICK UP CDU ANGLES AND STORE IN
017971,000241: 22,3273 55646 TS CDUXD # CDU DESIRED
017972,000242: 22,3274 30033 CA CDUY
017973,000243: 22,3275 55650 TS CDUYD
017974,000244: 22,3276 30034 CA CDUZ
017975,000245: 22,3277 55652 TS CDUZD
017976,000246: 22,3300 00002 TC Q
017977,000247:
017978,000248: # Page 414
017979,000249: 22,3301 31155 LOADCDUD CA CPHI # STORE TERMINAL ANGLES INTO
017980,000250: 22,3302 55646 TS CDUXD # COMMAND ANGLES
017981,000251: 22,3303 31156 LOADYZ CA CTHETA
017982,000252: 22,3304 55650 TS CDUYD
017983,000253: 22,3305 31157 CA CPSI
017984,000254: 22,3306 55652 TS CDUZD
017985,000255: 22,3307 00002 TC Q
017986,000256:
End of include-file KALCMANU_STEERING.agc. Parent file is MAIN.agc