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