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