Source Code

015250,000001: # Copyright: Public domain. 015251,000002: # Filename: KALCMANU_STEERING.agc 015252,000003: # Purpose: Part of the source code for Luminary 1A build 099. 015253,000004: # It is part of the source code for the Lunar Module's (LM) 015254,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 015255,000006: # Assembler: yaYUL 015256,000007: # Contact: Ron Burkey <info@sandroid.org>. 015257,000008: # Website: www.ibiblio.org/apollo. 015258,000009: # Pages: 365-369 015259,000010: # Mod history: 2009-05-17 RSB Adapted from the corresponding 015260,000011: # Luminary131 file, using page 015261,000012: # images from Luminary 1A. 015262,000013: # 2011-01-06 JL Added missing comment characters. 015263,000014: 015264,000015: # This source code has been transcribed or otherwise adapted from 015265,000016: # digitized images of a hardcopy from the MIT Museum. The digitization 015266,000017: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 015267,000018: # the Museum. Many thanks to both. The images (with suitable reduction 015268,000019: # in storage size and consequent reduction in image quality as well) are 015269,000020: # available online at www.ibiblio.org/apollo. If for some reason you 015270,000021: # find that the images are illegible, contact me at info@sandroid.org 015271,000022: # about getting access to the (much) higher-quality images which Paul 015272,000023: # actually created. 015273,000024: 015274,000025: # Notations on the hardcopy document read, in part: 015275,000026: 015276,000027: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 015277,000028: # 16:27 JULY 14, 1969 015278,000029: 015279,000030: # Page 365 015280,000031: # GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS 015281,000032: 015282,000033: # NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER 015283,000034: 015284,000035: 22,3003 E6,1707 EBANK= TTEMP 015285,000036: 015286,000037: 22,3003 04616 NEWDELHI TC BANKCALL # CHECK FOR AUTO STABILIZATION 015287,000038: 22,3004 54262 CADR ISITAUTO # ONLY 015288,000039: 22,3005 10000 CCS A 015289,000040: 22,3006 12730 TCF NOGO -2 015290,000041: 22,3007 06037 NEWANGL TC INTPRET 015291,000042: 22,3010 75160 AXC,1 AXC,2 015292,000043: 22,3011 03246 MIS # COMPUTE THE NEW MATRIX FROM S/C TO 015293,000044: 22,3012 02230 KEL # STABLE MEMBER AXES 015294,000045: 22,3013 77624 CALL 015295,000046: 22,3014 44312 MXM3 015296,000047: 22,3015 45575 VLOAD STADR 015297,000048: 22,3016 50514 STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES 015298,000049: 22,3017 77626 STADR 015299,000050: 22,3020 50522 STOVL MIS +6D 015300,000051: 22,3021 77626 STADR 015301,000052: 22,3022 74530 STORE MIS 015302,000053: 22,3023 45160 AXC,1 CALL 015303,000054: 22,3024 03246 MIS 015304,000055: 22,3025 44654 DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX 015305,000056: 22,3026 77634 RTB 015306,000057: 22,3027 21620 V1STO2S 015307,000058: 22,3030 03304 STORE NCDU # NEW CDU ANGLES 015308,000059: 22,3031 77414 BONCLR EXIT 015309,000060: 22,3032 01215 CALCMAN2 015310,000061: 22,3033 45122 MANUSTAT # TO START MANEUVER 015311,000062: 22,3034 34752 CAF TWO # +0 OTHERWISE 015312,000063: 22,3035 55272 INCRDCDU TS SPNDX 015313,000064: 22,3036 51272 INDEX SPNDX 015314,000065: 22,3037 31676 CA BCDU # INITIAL CDU ANGLES 015315,000066: 22,3040 00006 EXTEND # OR PREVIOUS DESIRED CDU ANGLES 015316,000067: 22,3041 51272 INDEX SPNDX 015317,000068: 22,3042 21703 MSU NCDU 015318,000069: 22,3043 00006 EXTEND 015319,000070: 015320,000071: # The following 2 lines seem to have no purpose at all. 015321,000072: # I am removing them because they only serve to confuse 015322,000073: # the assembler by getting in between EXTEND and MP. 015323,000074: # --- RSB 2009. 015324,000075: # SETLOC KALCMON1 015325,000076: # BANK 015326,000077: 015327,000078: 22,3044 73121 MP DT/TAU 015328,000079: 22,3045 10000 CCS A # CONVERT TO 2'S COMPLEMENT 015329,000080: 22,3046 64753 AD ONE 015330,000081: 22,3047 13051 TCF +2 015331,000082: 22,3050 40000 COM 015332,000083: 22,3051 51272 INDEX SPNDX 015333,000084: 22,3052 55640 TS DELDCDU # ANGLE INCREMENTS TO BE ADDED TO 015334,000085: 22,3053 51272 INDEX SPNDX # CDUXD, CDUYD, CDUZD EVERY TENTH SECOND 015335,000086: # Page 366 015336,000087: 22,3054 31703 CA NCDU # BY LEM DAP 015337,000088: 22,3055 51272 INDEX SPNDX 015338,000089: 22,3056 57676 XCH BCDU 015339,000090: 22,3057 51272 INDEX SPNDX 015340,000091: 22,3060 55635 TS CDUXD 015341,000092: 22,3061 11272 CCS SPNDX 015342,000093: 22,3062 13035 TCF INCRDCDU # LOOP FOR THREE AXES 015343,000094: 015344,000095: 22,3063 00003 RELINT 015345,000096: 015346,000097: # COMPARE PRESENT TIME WTIH TIME TO TERMINATE MANEUVER 015347,000098: 015348,000099: 22,3064 03075 TMANUCHK TC TIMECHK 015349,000100: 22,3065 13170 TCF CONTMANU 015350,000101: 22,3066 34753 CAF ONE 015351,000102: 22,3067 00004 MANUSTAL INHINT # END MAJOR PART OF MANEUVER WITHIN 1 SEC 015352,000103: 22,3070 05203 TC WAITLIST # UNDER WAITLIST CALL TO MANUSTOP 015353,000104: 22,3071 E6,1707 EBANK= TTEMP 015354,000105: 22,3071 03213 44066 2CADR MANUSTOP 015355,000106: 015356,000107: 22,3073 00003 RELINT 015357,000108: 22,3074 15155 TCF ENDOFJOB 015358,000109: 015359,000110: 22,3075 00006 TIMECHK EXTEND 015360,000111: 22,3076 40025 DCS TIME2 015361,000112: 22,3077 53710 DXCH TTEMP 015362,000113: 22,3100 00006 EXTEND 015363,000114: 22,3101 31734 DCA TM 015364,000115: 22,3102 21710 DAS TTEMP 015365,000116: 22,3103 11707 CCS TTEMP 015366,000117: 22,3104 00002 TC Q 015367,000118: 22,3105 13107 TCF +2 015368,000119: 22,3106 13117 TCF 2NDRETRN 015369,000120: 22,3107 11710 CCS TTEMP +1 015370,000121: 22,3110 00002 TC Q 015371,000122: 22,3111 13113 TCF MANUOFF 015372,000123: 22,3112 40000 COM 015373,000124: 22,3113 63166 MANUOFF AD ONESEK +1 015374,000125: 22,3114 00006 EXTEND 015375,000126: 22,3115 63117 BZMF 2NDRETRN 015376,000127: 22,3116 24002 INCR Q 015377,000128: 22,3117 24002 2NDRETRN INCR Q 015378,000129: 22,3120 00002 TC Q 015379,000130: 015380,000131: 22,3121 03146 DT/TAU DEC .1 015381,000132: 015382,000133: 22,3122 77776 MANUSTAT EXIT # INITIALIZATION ROUTINE 015383,000134: 22,3123 00006 EXTEND # FOR AUTOMATIC MANEUVERS 015384,000135: 22,3124 30025 DCA TIME2 015385,000136: # Page 367 015386,000137: 22,3125 21734 DAS TM # TM+TO MANEUVER COMPLETION TIME 015387,000138: 22,3126 00006 EXTEND 015388,000139: 22,3127 43166 DCS ONESEK 015389,000140: 22,3130 21734 DAS TM # (TM+TO)-1 015390,000141: 22,3131 00004 INHINT 015391,000142: 22,3132 34752 CAF TWO 015392,000143: 22,3133 55701 RATEBIAS TS KSPNDX 015393,000144: 22,3134 60000 DOUBLE 015394,000145: 22,3135 55702 TS KDPNDX 015395,000146: 22,3136 50000 INDEX A 015396,000147: 22,3137 31725 CA BRATE 015397,000148: 22,3140 51701 INDEX KSPNDX # STORE MANEUVER RATE IN 015398,000149: 22,3141 55643 TS OMEGAPD # OMEGAPD, OMEGAQD, OMEGARD 015399,000150: 22,3142 00006 EXTEND 015400,000151: 22,3143 63145 BZMF +2 # COMPUTE ATTITUDE ERROR 015401,000152: 22,3144 40000 COM # OFFSET = (WX)ABS(WX)/2AJX 015402,000153: 22,3145 00006 EXTEND # WHERE AJX= 2-JET ACCELERATION 015403,000154: 22,3146 73167 MP BIASCALE # = -1/16 015404,000155: 22,3147 00006 EXTEND 015405,000156: 22,3150 51702 INDEX KDPNDX 015406,000157: 22,3151 71725 MP BRATE 015407,000158: 22,3152 00006 EXTEND 015408,000159: 22,3153 51701 INDEX KSPNDX 015409,000160: 22,3154 11530 DV 1JACC # = AJX $ 90 DEG/SEC-SEC 015410,000161: 22,3155 51701 INDEX KSPNDX 015411,000162: 22,3156 55277 TS DELPEROR # $ 180 DEG 015412,000163: 22,3157 11701 CCS KSPNDX 015413,000164: 22,3160 13133 TCF RATEBIAS 015414,000165: 015415,000166: 22,3161 30025 CA TIME1 015416,000167: 22,3162 63166 AD ONESEK +1 015417,000168: 22,3163 57706 XCH NEXTIME 015418,000169: 22,3164 13034 TCF INCRDCDU -1 015419,000170: 015420,000171: 22,3165 00000 ONESEK DEC 0 B-14 015421,000172: 22,3166 00144 DEC 100 B-14 015422,000173: 015423,000174: 22,3167 75777 BIASCALE OCT 75777 # = -1/16 015424,000175: 015425,000176: 22,3170 40025 CONTMANU CS TIME1 # RESET FOR NEXT DCDU UPDATE 015426,000177: 22,3171 61706 AD NEXTIME 015427,000178: 22,3172 10000 CCS A 015428,000179: 22,3173 64753 AD ONE 015429,000180: 22,3174 13177 TCF MANUCALL 015430,000181: 22,3175 64735 AD NEGMAX 015431,000182: 22,3176 40000 COM 015432,000183: 22,3177 00004 MANUCALL INHINT # CALL FOR NEXT UPDATE VIA WAITLIST 015433,000184: 22,3200 05203 TC WAITLIST 015434,000185: 22,3201 E6,1707 EBANK= TTEMP 015435,000186: 22,3201 03206 44066 2CADR UPDTCALL 015436,000187: # Page 368 015437,000188: 22,3203 33166 CAF ONESEK +1 # INCREMENT TIME FOR NEXT UPDATE 015438,000189: 22,3204 27706 ADS NEXTIME 015439,000190: 22,3205 15155 TCF ENDOFJOB 015440,000191: 015441,000192: 22,3206 37714 UPDTCALL CAF PRIO26 # SATELLITE PROGRAM TO CALL FOR UPDATE 015442,000193: 22,3207 05105 TC FINDVAC # OF STEERING COMMANDS 015443,000194: 22,3210 E6,1707 EBANK= TTEMP 015444,000195: 22,3210 03003 44066 2CADR NEWDELHI 015445,000196: 015446,000197: 22,3212 05261 TC TASKOVER 015447,000198: 015448,000199: # Page 369 015449,000200: # ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS 015450,000201: 015451,000202: 22,3213 34755 MANUSTOP CAF ZERO # ZERO MANEUVER RATES 015452,000203: 22,3214 55642 TS DELDCDU2 015453,000204: 22,3215 55645 TS OMEGARD 015454,000205: 22,3216 55301 TS DELREROR 015455,000206: 22,3217 55641 TS DELDCDU1 015456,000207: 22,3220 55644 TS OMEGAQD 015457,000208: 22,3221 55300 TS DELQEROR 015458,000209: 22,3222 30323 CA CPSI # SET DESIRED GIMBAL ANGLES TO 015459,000210: 22,3223 55637 TS CDUZD # DESIRED FINAL GIMBAL ANGLES 015460,000211: 22,3224 30322 CA CTHETA 015461,000212: 22,3225 55636 TS CDUYD 015462,000213: 22,3226 30321 ENDROLL CA CPHI # NO FINAL YAW 015463,000214: 22,3227 55635 TS CDUXD 015464,000215: 22,3230 34755 CAF ZERO 015465,000216: 22,3231 55643 TS OMEGAPD # I.E., MANEUVER DID NOT GO THRU 015466,000217: 22,3232 55640 TS DELDCDU # GIMBAL LOCK ORIGINALLY 015467,000218: 22,3233 55277 TS DELPEROR 015468,000219: 22,3234 31311 GOODMANU CA ATTPRIO # RESTORE USERS PRIO 015469,000220: 22,3235 54063 TS NEWPRIO 015470,000221: 015471,000222: 22,3236 34755 CA ZERO # ZERO ATTCADR 015472,000223: 22,3237 53310 DXCH ATTCADR 015473,000224: 015474,000225: 22,3240 05116 TC SPVAC # RETURN TO USER 015475,000226: 015476,000227: 22,3241 05261 TC TASKOVER 015477,000228: 015478,000229: End of include-file KALCMANU_STEERING.agc. Parent file is MAIN.agc