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