Source Code

015060,000001: # Copyright: Public domain. 015061,000002: # Filename: KALCMANU_STEERING.agc 015062,000003: # Purpose: A section of Luminary 1C, revision 131. 015063,000004: # It is part of the source code for the Lunar Module's (LM) 015064,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 015065,000006: # This file is intended to be a faithful transcription, except 015066,000007: # that the code format has been changed to conform to the 015067,000008: # requirements of the yaYUL assembler rather than the 015068,000009: # original YUL assembler. 015069,000010: # Reference: pp. 372-376 of 1729.pdf. 015070,000011: # Contact: Ron Burkey <info@sandroid.org>. 015071,000012: # Website: www.ibiblio.org/apollo/index.html 015072,000013: # Mod history: 05/11/03 RSB. Began transcribing. 015073,000014: # 05/14/05 RSB. Corrected website reference above. 015074,000015: 015075,000016: # Page 372 015076,000017: # GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS 015077,000018: 015078,000019: # NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER 015079,000020: 015080,000021: 22,3003 E6,1706 EBANK= TTEMP 015081,000022: 015082,000023: 22,3003 04616 NEWDELHI TC BANKCALL # CHECK FOR AUTO STABILIZATION 015083,000024: 22,3004 54266 CADR ISITAUTO # ONLY 015084,000025: 22,3005 10000 CCS A 015085,000026: 22,3006 12730 TCF NOGO -2 015086,000027: 22,3007 06042 NEWANGL TC INTPRET 015087,000028: 22,3010 75160 AXC,1 AXC,2 015088,000029: 22,3011 03245 MIS # COMPUTE THE NEW MATRIX FROM S/C TO 015089,000030: 22,3012 02230 KEL # STABLE MEMBER AXES 015090,000031: 22,3013 77624 CALL 015091,000032: 22,3014 44312 MXM3 015092,000033: 22,3015 45575 VLOAD STADR 015093,000034: 22,3016 50515 STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES 015094,000035: 22,3017 77626 STADR 015095,000036: 22,3020 50523 STOVL MIS +6D 015096,000037: 22,3021 77626 STADR 015097,000038: 22,3022 74531 STORE MIS 015098,000039: 22,3023 45160 AXC,1 CALL 015099,000040: 22,3024 03245 MIS 015100,000041: 22,3025 44654 DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX 015101,000042: 22,3026 77634 RTB 015102,000043: 22,3027 21621 V1STO2S 015103,000044: 22,3030 03303 STORE NCDU # NEW CDU ANGLES 015104,000045: 22,3031 77414 BONCLR EXIT 015105,000046: 22,3032 01215 CALCMAN2 015106,000047: 22,3033 45122 MANUSTAT # TO START MANEUVER 015107,000048: 22,3034 34752 CAF TWO # +0 OTHERWISE 015108,000049: 22,3035 55261 INCRDCDU TS SPNDX 015109,000050: 22,3036 51261 INDEX SPNDX 015110,000051: 22,3037 31675 CA BCDU # INITIAL CDU ANGLES 015111,000052: 22,3040 00006 EXTEND # OR PREVIOUS DESIRED CDU ANGLES 015112,000053: 22,3041 51261 INDEX SPNDX 015113,000054: 22,3042 21702 MSU NCDU 015114,000055: 22,3043 00006 EXTEND 015115,000056: 015116,000057: # The following 2 lines seem to have no purpose at all --- RSB 2004. 015117,000058: # SETLOC KALCMON1 015118,000059: # BANK 015119,000060: 015120,000061: 22,3044 73121 MP DT/TAU 015121,000062: 22,3045 10000 CCS A # CONVERT TO 2'S COMPLEMENT 015122,000063: 22,3046 64753 AD ONE 015123,000064: 22,3047 13051 TCF +2 015124,000065: 22,3050 40000 COM 015125,000066: 22,3051 51261 INDEX SPNDX 015126,000067: 22,3052 55637 TS DELDCDU # ANGLE INCREMENTS TO BE ADDED TO 015127,000068: 22,3053 51261 INDEX SPNDX # CDUXD, CDUYD, CDUZD EVERY TENTH SECOND 015128,000069: # Page 373 015129,000070: 22,3054 31702 CA NCDU # BY LEM DAP 015130,000071: 22,3055 51261 INDEX SPNDX 015131,000072: 22,3056 57675 XCH BCDU 015132,000073: 22,3057 51261 INDEX SPNDX 015133,000074: 22,3060 55634 TS CDUXD 015134,000075: 22,3061 11261 CCS SPNDX 015135,000076: 22,3062 13035 TCF INCRDCDU # LOOP FOR THREE AXES 015136,000077: 015137,000078: 22,3063 00003 RELINT 015138,000079: 015139,000080: # COMPARE PRESENT TIME WTIH TIME TO TERMINATE MANEUVER 015140,000081: 015141,000082: 22,3064 03075 TMANUCHK TC TIMECHK 015142,000083: 22,3065 13170 TCF CONTMANU 015143,000084: 22,3066 34753 CAF ONE 015144,000085: 22,3067 00004 MANUSTAL INHINT # END MAJOR PART OF MANEUVER WITHIN 1 SEC 015145,000086: 22,3070 05203 TC WAITLIST # UNDER WAITLIST CALL TO MANUSTOP 015146,000087: 22,3071 E6,1706 EBANK= TTEMP 015147,000088: 22,3071 03213 44066 2CADR MANUSTOP 015148,000089: 015149,000090: 22,3073 00003 RELINT 015150,000091: 22,3074 15155 TCF ENDOFJOB 015151,000092: 015152,000093: 22,3075 00006 TIMECHK EXTEND 015153,000094: 22,3076 40025 DCS TIME2 015154,000095: 22,3077 53707 DXCH TTEMP 015155,000096: 22,3100 00006 EXTEND 015156,000097: 22,3101 31733 DCA TM 015157,000098: 22,3102 21707 DAS TTEMP 015158,000099: 22,3103 11706 CCS TTEMP 015159,000100: 22,3104 00002 TC Q 015160,000101: 22,3105 13107 TCF +2 015161,000102: 22,3106 13117 TCF 2NDRETRN 015162,000103: 22,3107 11707 CCS TTEMP +1 015163,000104: 22,3110 00002 TC Q 015164,000105: 22,3111 13113 TCF MANUOFF 015165,000106: 22,3112 40000 COM 015166,000107: 22,3113 63166 MANUOFF AD ONESEK +1 015167,000108: 22,3114 00006 EXTEND 015168,000109: 22,3115 63117 BZMF 2NDRETRN 015169,000110: 22,3116 24002 INCR Q 015170,000111: 22,3117 24002 2NDRETRN INCR Q 015171,000112: 22,3120 00002 TC Q 015172,000113: 015173,000114: 22,3121 03146 DT/TAU DEC .1 015174,000115: 015175,000116: 22,3122 77776 MANUSTAT EXIT # INITIALIZATION ROUTINE 015176,000117: 22,3123 00006 EXTEND # FOR AUTOMATIC MANEUVERS 015177,000118: 22,3124 30025 DCA TIME2 015178,000119: # Page 374 015179,000120: 22,3125 21733 DAS TM # TM+TO MANEUVER COMPLETION TIME 015180,000121: 22,3126 00006 EXTEND 015181,000122: 22,3127 43166 DCS ONESEK 015182,000123: 22,3130 21733 DAS TM # (TM+TO)-1 015183,000124: 22,3131 00004 INHINT 015184,000125: 22,3132 34752 CAF TWO 015185,000126: 22,3133 55700 RATEBIAS TS KSPNDX 015186,000127: 22,3134 60000 DOUBLE 015187,000128: 22,3135 55701 TS KDPNDX 015188,000129: 22,3136 50000 INDEX A 015189,000130: 22,3137 31724 CA BRATE 015190,000131: 22,3140 51700 INDEX KSPNDX # STORE MANEUVER RATE IN 015191,000132: 22,3141 55642 TS OMEGAPD # OMEGAPD, OMEGAQD, OMEGARD 015192,000133: 22,3142 00006 EXTEND 015193,000134: 22,3143 63145 BZMF +2 # COMPUTE ATTITUDE ERROR 015194,000135: 22,3144 40000 COM # OFFSET = (WX)ABS(WX)/2AJX 015195,000136: 22,3145 00006 EXTEND # WHERE AJX= 2-JET ACCELERATION 015196,000137: 22,3146 73167 MP BIASCALE # = -1/16 015197,000138: 22,3147 00006 EXTEND 015198,000139: 22,3150 51701 INDEX KDPNDX 015199,000140: 22,3151 71724 MP BRATE 015200,000141: 22,3152 00006 EXTEND 015201,000142: 22,3153 51700 INDEX KSPNDX 015202,000143: 22,3154 11530 DV 1JACC # = AJX 015203,000144: 22,3155 51700 INDEX KSPNDX 015204,000145: 22,3156 55274 TS DELPEROR 015205,000146: 22,3157 11700 CCS KSPNDX 015206,000147: 22,3160 13133 TCF RATEBIAS 015207,000148: 015208,000149: 22,3161 30025 CA TIME1 015209,000150: 22,3162 63166 AD ONESEK +1 015210,000151: 22,3163 57705 XCH NEXTIME 015211,000152: 22,3164 13034 TCF INCRDCDU -1 015212,000153: 015213,000154: 22,3165 00000 ONESEK DEC 0 B-14 015214,000155: 22,3166 00144 DEC 100 B-14 015215,000156: 015216,000157: 22,3167 75777 BIASCALE OCT 75777 # = -1/16 015217,000158: 015218,000159: 22,3170 40025 CONTMANU CS TIME1 # RESET FOR NEXT DCDU UPDATE 015219,000160: 22,3171 61705 AD NEXTIME 015220,000161: 22,3172 10000 CCS A 015221,000162: 22,3173 64753 AD ONE 015222,000163: 22,3174 13177 TCF MANUCALL 015223,000164: 22,3175 64735 AD NEGMAX 015224,000165: 22,3176 40000 COM 015225,000166: 22,3177 00004 MANUCALL INHINT # CALL FOR NEXT UPDATE VIA WAITLIST 015226,000167: 22,3200 05203 TC WAITLIST 015227,000168: 22,3201 E6,1706 EBANK= TTEMP 015228,000169: 22,3201 03206 44066 2CADR UPDTCALL 015229,000170: # Page 375 015230,000171: 22,3203 33166 CAF ONESEK +1 # INCREMENT TIME FOR NEXT UPDATE 015231,000172: 22,3204 27705 ADS NEXTIME 015232,000173: 22,3205 15155 TCF ENDOFJOB 015233,000174: 015234,000175: 22,3206 37717 UPDTCALL CAF PRIO26 # CATELLITE PROGRAM TO CALL FOR UPDATE 015235,000176: 22,3207 05105 TC FINDVAC # OF STEERING COMMANDS 015236,000177: 22,3210 E6,1706 EBANK= TTEMP 015237,000178: 22,3210 03003 44066 2CADR NEWDELHI 015238,000179: 015239,000180: 22,3212 05261 TC TASKOVER 015240,000181: 015241,000182: # Page 376 015242,000183: # ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS 015243,000184: 015244,000185: 22,3213 34755 MANUSTOP CAF ZERO # ZERO MANEUVER RATES 015245,000186: 22,3214 55641 TS DELDCDU2 015246,000187: 22,3215 55644 TS OMEGARD 015247,000188: 22,3216 55276 TS DELREROR 015248,000189: 22,3217 55640 TS DELDCDU1 015249,000190: 22,3220 55643 TS OMEGAQD 015250,000191: 22,3221 55275 TS DELQEROR 015251,000192: 22,3222 30323 CA CPSI # SET DESIRED GIMBAL ANGLES TO 015252,000193: 22,3223 55636 TS CDUZD # DESIRED FINAL GIMBAL ANGLES 015253,000194: 22,3224 30322 CA CTHETA 015254,000195: 22,3225 55635 TS CDUYD 015255,000196: 22,3226 30321 ENDROLL CA CPHI # NO FINAL YAW 015256,000197: 22,3227 55634 TS CDUXD 015257,000198: 22,3230 34755 CAF ZERO 015258,000199: 22,3231 55642 TS OMEGAPD # I.E., MANEUVER DID NOT GO THRU 015259,000200: 22,3232 55637 TS DELDCDU # GIMBAL LOCK ORIGINALLY 015260,000201: 22,3233 55274 TS DELPEROR 015261,000202: 22,3234 31306 GOODMANU CA ATTPRIO # RESTORE USERS PRIO 015262,000203: 22,3235 54063 TS NEWPRIO 015263,000204: 015264,000205: 22,3236 34755 CA ZERO # ZERO ATTCADR 015265,000206: 22,3237 53305 DXCH ATTCADR 015266,000207: 015267,000208: 22,3240 05116 TC SPVAC # RETURN TO USER 015268,000209: 015269,000210: 22,3241 05261 TC TASKOVER 015270,000211: 015271,000212: End of include-file KALCMANU_STEERING.agc. Parent file is MAIN.agc