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