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