Source Code
![]() |
YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS BY MSTEWART JUN. 28,2017This is a modern AGC system self-test program, though based on the Apollo-era AURORA 12 program, and was not written by the original AGC developers, but rather by Mike Stewart. All of the original AURORA 12 DAP code added by the DAP Group has been removed, and extensive new system test code has been added in its place. This allows more in-depth testing of CPU behavior, both in AGC software simulations and hardware simulations. |
018672,000002: ## Copyright: Public domain.
018673,000003: ## Filename: LEM_FLIGHT_CONTROL_SYSTEM_TEST.agc
018674,000004: ## Purpose: This program is designed to extensively test the Apollo Guidance Computer
018675,000005: ## (specifically the LM instantiation of it). It is built on top of a heavily
018676,000006: ## stripped-down Aurora 12, with all code ostensibly added by the DAP Group
018677,000007: ## removed. Instead Borealis expands upon the tests provided by Aurora,
018678,000008: ## including corrected tests from Retread 44 and tests from Ron Burkey's
018679,000009: ## Validation.
018680,000010: ## Assembler: yaYUL
018681,000011: ## Contact: Mike Stewart <mastewar1@gmail.com>.
018682,000012: ## Website: www.ibiblio.org/apollo/index.html
018683,000013: ## Mod history: 2016-12-20 MAS Created from Aurora 12 (with much DAP stuff removed).
018684,000014:
018685,000015: 06,2000 BANK 6
018686,000016: 06,2000 E4,1407 EBANK= JETSTEP
018687,000017:
018688,000018: # LEM FCS TEST ENTRY AND INITIALIZATION JOB.
018689,000019:
018690,000020: # THIS JOB INITIALIZES THE ERASABLE TABLES FOR THE FCS TEST AND PUTS THE FOLLOWING PROGRAMS UNDER
018691,000021: # WAITLIST CONTROL.
018692,000022: # (1) RCS JET SET TASK
018693,000023: # (2) ENGINE ON - OFF TASK
018694,000024: # (3) DESCENT ENGINE GIMBAL TRIM TASK
018695,000025: # (4) DESCENT ENGINE THROTTLE TASK
018696,000026: # (5) INTERFACE CHANNEL LOOK TASK
018697,000027:
018698,000028:
018699,000029: 06,2000 05311 FCSSTART TC GRABWAIT # SO NOTHING DISRUPTS THE LOAD.
018700,000030: 06,2001 32054 CAF JSTEPADR # THE START OF THE LIST.
018701,000031: 06,2002 10000 FCS3 CCS A
018702,000032: 06,2003 54142 TS MPAC +2
018703,000033: 06,2004 32057 FCS2 CAF V04N01K # DISPLAY PRESENT CONTENTS IN R2.
018704,000034: 06,2005 05324 TC NVSBWAIT
018705,000035: 06,2006 24142 INCR MPAC +2
018706,000036: 06,2007 32055 CAF V21N02K
018707,000037: 06,2010 05324 TC NVSBWAIT # IN CASE IT'S BUSY BUT IT SHOULDN'T BE.
018708,000038: 06,2011 05132 TC ENDIDLE # WHILE LOADING.
018709,000039: 06,2012 02015 TC +3 # V34E. TERMINATE LOAD OF THIS LIST
018710,000040: # SECTION, GO TO NEW SECTION OR TO TEST.
018711,000041: 06,2013 02014 TC +1 # V33E. PRESENT CONTENTS OK, PROCEED TO
018712,000042: # NEXT LOCATION IN LIST.
018713,000043: 06,2014 02004 TC FCS2
018714,000044: 06,2015 32056 CAF V21N30K
018715,000045: 06,2016 05324 TC NVSBWAIT
018716,000046: 06,2017 05132 TC ENDIDLE
018717,000047: 06,2020 04421 TC EJFREE
018718,000048: 06,2021 02024 TC FCSTEST1 # PROCEED TO TEST.
018719,000049: 06,2022 30333 CAE DSPTEM1 # NEW ADDRESS.
018720,000050: 06,2023 02002 TC FCS3
018721,000051: 06,2024 32060 FCSTEST1 CAF V47K
018722,000052: 06,2025 05324 TC NVSBWAIT # OUR VERB IN THE LIGHTS.
018723,000053: 06,2026 00004 FCSTEST INHINT
018724,000054: 06,2027 E4,1407 EBANK= JETSTEP
018725,000055: 06,2027 37670 CAF TWO # 20MS.
018726,000056: 06,2030 04517 TC WAITLIST
018727,000057: 06,2031 E4,1407 EBANK= JETSTEP
018728,000058: 06,2031 02065 14004 2CADR JETSTART
018729,000059:
018730,000060: 06,2033 37671 CAF BIT1 # 10MS.
018731,000061: 06,2034 04517 TC WAITLIST
018732,000062: 06,2035 E4,1407 EBANK= JETSTEP
018733,000063: 06,2035 02220 14004 2CADR ENGSTART
018734,000064:
018735,000065: 06,2037 36176 CAF THREE # 30MS.
018736,000066: 06,2040 E4,1407 EBANK= JETSTEP
018737,000067: 06,2040 04517 TC WAITLIST
018738,000068: 06,2041 02315 14004 2CADR TRIMTOP
018739,000069:
018740,000070: 06,2043 37667 CAF FOUR # 40MS.
018741,000071: 06,2044 04517 TC WAITLIST
018742,000072: 06,2045 E4,1407 EBANK= JETSTEP
018743,000073: 06,2045 02435 14004 2CADR THRSTART
018744,000074:
018745,000075: 06,2047 37674 CAF FIVE # 50MS.
018746,000076: 06,2050 04517 TC WAITLIST
018747,000077: 06,2051 E4,1407 EBANK= JETSTEP
018748,000078: 06,2051 02523 14004 2CADR LOOKTOP
018749,000079:
018750,000080: 06,2053 04421 TC EJFREE # NOW THEY START.
018751,000081:
018752,000082: 06,2054 02007 JSTEPADR ECADR JETSTEP
018753,000083: 06,2055 02102 V21N02K OCT 02102
018754,000084: 06,2056 02130 V21N30K OCT 02130
018755,000085: 06,2057 00401 V04N01K OCT 00401
018756,000086: 06,2060 04700 V47K OCT 04700
018757,000087:
018758,000088: # LEM FCS TEST RCS JETSET TASK
018759,000089: # THIS JOB ISSUES A PROFILE OF JET ON-OFF SIGNALS AS DETERMINED BY THE CONSTANTS IN A SET OF SIX REGISTERS.
018760,000090: # THE SIX REGISTERS ARE, (1) NTIMES, THE NUMBER OF TIMES A PARTICULAR STEP WILL BE PERFORMED. (2) NEXTTIME, THE
018761,000091: # TIME BETWEEN STEPS, A MAXIMUM OF 2 MINUTES, (3) JETONTM, THE TIME TO TURN THE JETS ON, SCALED FOR T3, (4) JET-
018762,000092: # OFFTM, THE TIME AFTER ONTM TO TURN THE JETS OFF, (5) XJETS, THE PARTICULAR X JETS TO BE TURNED ON AND OFF
018763,000093: # DURING EACH REPEAT OF A STEP, AND (6) YZJETS,, THE Y AND Z JETS TO BE TURNED ON AND OFF DURING EACH REPEAT OF A
018764,000094: # STEP. XJETS AND YZJETS MUST BE IN THE SAME FORMAT AS CHANNELS 5 AND6 RESPECTIVELY. THERE ARE EIGHT SETS OF
018765,000095: # THESE SIX REGISTERS.
018766,000096: # THE REGISTER JETSTEP IS USED TO INDEX THE 8 SETS OF REGISTERS, THE ALLOWABLE VALUES OF JETSTEP ARE +0 THRU 7
018767,000097: # THIS JOB WILL BE ENTERED BUT IMMEDIATELY ENDED IF THE INITIAL VALUES OF JETSTEP AND NTIMES ARE +0.
018768,000098:
018769,000099:
018770,000100: 06,2061 11407 NEXTSET CCS JETSTEP # IT MAY BE ZERO.
018771,000101: 06,2062 02064 TC +2 # NOPE
018772,000102: 06,2063 04563 TC TASKOVER # IT IS SO WE ARE DONE WITH THIS TASK.
018773,000103: 06,2064 55407 TS JETSTEP
018774,000104:
018775,000105: 06,2065 51407 JETSTART NDX JETSTEP # ENTER HERE.
018776,000106: 06,2066 11410 CCS NTIMES # SEE IF THIS STEP IS FINISHED.
018777,000107: 06,2067 02071 TC +2 # NO
018778,000108: 06,2070 02061 TC NEXTSET # YES
018779,000109: 06,2071 51407 NDX JETSTEP
018780,000110: 06,2072 31420 CAE NEXTTIME # MUST BE SCALED FOR T3. REMEMBER TO BIAS
018781,000111: # THIS FOR ON TIME.
018782,000112: 06,2073 04517 TC WAITLIST
018783,000113: 06,2074 E4,1407 EBANK= JETSTEP
018784,000114: 06,2074 02110 14004 2CADR JTOP
018785,000115:
018786,000116: 06,2076 04563 TC TASKOVER
018787,000117:
018788,000118: 06,2077 37675 JETOFF CAF ZERO
018789,000119: 06,2100 00006 EXTEND
018790,000120: 06,2101 01005 WRITE 5
018791,000121: 06,2102 00006 EXTEND
018792,000122: 06,2103 01006 WRITE 6
018793,000123: 06,2104 51407 NDX JETSTEP
018794,000124: 06,2105 11410 CCS NTIMES
018795,000125: 06,2106 51407 NDX JETSTEP
018796,000126: 06,2107 55410 TS NTIMES # ONE LESS TIME.
018797,000127: 06,2110 51407 JTOP NDX JETSTEP
018798,000128: 06,2111 11410 CCS NTIMES # FOR LOOPING.
018799,000129: 06,2112 02114 TC +2
018800,000130: 06,2113 02061 TC NEXTSET
018801,000131: 06,2114 51407 NDX JETSTEP
018802,000132: 06,2115 31430 CAE JETONTM # SCALED FOR T3. TIME FOR JETS ON.
018803,000133: 06,2116 04517 TC WAITLIST
018804,000134: 06,2117 E4,1407 EBANK= JETSTEP
018805,000135: 06,2117 02122 14004 2CADR JETON
018806,000136:
018807,000137: 06,2121 04563 TC TASKOVER
018808,000138:
018809,000139: 06,2122 51407 JETON NDX JETSTEP
018810,000140: 06,2123 31440 CAE XJETS # MUST BE IN CHANNEL 5 FORMAT.
018811,000141: 06,2124 55401 TS XJBUF
018812,000142: 06,2125 51407 NDX JETSTEP
018813,000143: 06,2126 31450 CAE YZJETS # MUST BE IN CHANNEL 6 FORMAT.
018814,000144: 06,2127 55402 TS YZJBUF
018815,000145: 06,2130 00006 JFAILCK EXTEND # THIS ROUTINE EXAMINES EACH JETFAIL BIT
018816,000146: 06,2131 00032 READ 32 # AND IF A FAILURE IS INDICATED THE CORRES
018817,000147: 06,2132 40000 COM # PONDING COMMANDS ARE MASKED OUT .
018818,000148: 06,2133 55403 TS JFBUF # SAVE 32 REINVERTED.
018819,000149: 06,2134 37673 CAF SEVEN
018820,000150: 06,2135 55404 JF3 TS FCNTR
018821,000151: 06,2136 31403 CAE JFBUF
018822,000152: 06,2137 51404 NDX FCNTR
018823,000153: 06,2140 77662 MASK BIT8
018824,000154: 06,2141 10000 CCS A
018825,000155: 06,2142 02161 TC JFAIL
018826,000156: 06,2143 11404 JFAIL1 CCS FCNTR
018827,000157: 06,2144 02135 TC JF3
018828,000158: 06,2145 31401 CAE XJBUF
018829,000159: 06,2146 00006 EXTEND
018830,000160: 06,2147 01005 WRITE 5 # XJETS GO ON.
018831,000161: 06,2150 31402 CAE YZJBUF
018832,000162: 06,2151 00006 EXTEND
018833,000163: 06,2152 01006 WRITE 6 # YZJETS GO ON.
018834,000164: 06,2153 51407 NDX JETSTEP
018835,000165: 06,2154 31460 CAE JETOFFTM # JET OFF TIME SCALED FOR T3.
018836,000166: 06,2155 04517 TC WAITLIST
018837,000167: 06,2156 E4,1407 EBANK= JETSTEP
018838,000168: 06,2156 02077 14004 2CADR JETOFF
018839,000169:
018840,000170: 06,2160 04563 TC TASKOVER
018841,000171:
018842,000172: 06,2161 51404 JFAIL NDX FCNTR
018843,000173: 06,2162 42204 CS XJETMASK
018844,000174: 06,2163 71401 MASK XJBUF
018845,000175: 06,2164 55401 TS XJBUF
018846,000176: 06,2165 51404 NDX FCNTR
018847,000177: 06,2166 42174 CS YZJETMSK
018848,000178: 06,2167 71402 MASK YZJBUF
018849,000179: 06,2170 55402 TS YZJBUF
018850,000180: 06,2171 05405 TC ALARM
018851,000181: 06,2172 01410 OCT 01410 # TEMPORARY JET FAIL ALARM CODE.
018852,000182: 06,2173 02143 TC JFAIL1
018853,000183:
018854,000184: 06,2174 00010 YZJETMSK OCT 00010 # JET 11
018855,000185: 06,2175 00020 OCT 00020 # JET 12
018856,000186: 06,2176 00004 OCT 00004 # JET 15
018857,000187: 06,2177 00200 OCT 00200 # JET 16
018858,000188: 06,2200 00001 OCT 00001 # JET 7
018859,000189: 06,2201 00002 OCT 00002 # JET 3
018860,000190: 06,2202 00040 OCT 00040 # JET 8
018861,000191: 06,2203 00100 OCT 00100 # JET 4
018862,000192:
018863,000193: 06,2204 00040 XJETMASK OCT 00040 # JET 10
018864,000194: 06,2205 00020 OCT 00020 # JET 9
018865,000195: 06,2206 00100 OCT 00100 # JET 13
018866,000196: 06,2207 00200 OCT 00200 # JET 14
018867,000197: 06,2210 00010 OCT 00010 # JET 6
018868,000198: 06,2211 00001 OCT 00001 # JET 1
018869,000199: 06,2212 00004 OCT 00004 # JET 5
018870,000200: 06,2213 00002 OCT 00002 # JET 2
018871,000201:
018872,000202: # LEM FCS TEST ENGINE ON - OFF TASK
018873,000203: # THIS TASK TURNS THE LEM ASCENT OR DESCENT ENGINE ON AND OFF ACCORDING TOTHE CONSTANTS STORED IN THE FIVE SETS OF
018874,000204: # REGISTERS, (1) CYLTIMES, WHICH CONTAINS THE NUMBER OF TIMES A PARTICULARSTEP WILL BE REPEATED, (2) NEXTCYLT,
018875,000205: # WHICH CONTAINS THE TIME BETWEEN STEPS SCALED FOR T3, (3) ONTIME, WHICH CONTAINS THE TIME TO TURN THE ENGINE ON
018876,000206: # WHICH ALSO DETERMINES THE LENGTH OF TIME THE ENGIME WILL BE OFF WITHIN A SERIES OF ON:OFF CYCLES, (4) OFFTIME,
018877,000207: # WHICH CONTAINS THE NUMBER OF 2 MINUTES BEFORE THE ENGINE WILL BE TURNED OFF, AND (5) OFFTIMER, WHICH
018878,000208: # CONTAINS THE RESIDUAL TIME BEFORE THE ENGINE WILL BE TURNED OFF. OFFTIME AND OFFTIMER DETERMINE THE LENGTH
018879,000209: # OF TIME THE ENGINE WILL BE ON IN ANY ONE CYCLE. THERE ARE THREE SETS OF THESE REGISTERS.
018880,000210: # THE ENGSTEP REGISTER IS USED AS AN INDEX TO PICK UP A PARTICULAR SET OF THE ABOVE 5 REGISTERS. THIS TASK
018881,000211: # WILL BE ENTERED BUT IMMEDIATELY ENDED IF ENGSTEP AND CYLTIMES = +0. THE ALLOWABLE VALUES OF ENGSTEP ARE +0,
018882,000212: # 1 AND 2.
018883,000213:
018884,000214: 06,2214 11470 NXTONOFF CCS ENGSTEP
018885,000215: 06,2215 02217 TC +2
018886,000216: 06,2216 04563 TC TASKOVER # EXIT HERE WHEN STEP AND CYL ARE +0.
018887,000217: 06,2217 55470 TS ENGSTEP # ONE LESS.
018888,000218:
018889,000219: 06,2220 51470 ENGSTART NDX ENGSTEP # ENTER HERE.
018890,000220: 06,2221 11471 CCS CYLTIMES # NUM OF EACH ON/OFF SET
018891,000221: 06,2222 02224 TC +2
018892,000222: 06,2223 02214 TC NXTONOFF # NO MORE OF THIS SET
018893,000223: 06,2224 51470 NDX ENGSTEP
018894,000224: 06,2225 31474 CAE NEXTCYLT # START OF NEXT CYCLE.
018895,000225: 06,2226 04517 TC WAITLIST
018896,000226: 06,2227 E4,1470 EBANK= ENGSTEP
018897,000227: 06,2227 02250 14004 2CADR ENGONTM
018898,000228:
018899,000229: 06,2231 04563 TC TASKOVER
018900,000230:
018901,000231: 06,2232 44507 ENGRESET CS PRIO30 # BITS 13 AND 14.
018902,000232: 06,2233 00006 EXTEND
018903,000233: 06,2234 02011 RAND 11
018904,000234: 06,2235 67654 AD BIT14
018905,000235: 06,2236 00006 EXTEND
018906,000236: 06,2237 01011 WRITE 11 # ENG ON = 0, ENG OFF = 1.
018907,000237: 06,2240 51470 NDX ENGSTEP
018908,000238: 06,2241 11471 CCS CYLTIMES
018909,000239: 06,2242 10000 CCS A
018910,000240: 06,2243 02245 TC +2
018911,000241: 06,2244 02214 TC NXTONOFF # WAS ONE.
018912,000242: 06,2245 67671 AD ONE # WAS MORE THAN ONE.
018913,000243: 06,2246 51470 NDX ENGSTEP
018914,000244: 06,2247 55471 TS CYLTIMES
018915,000245:
018916,000246: 06,2250 51470 ENGONTM NDX ENGSTEP
018917,000247: 06,2251 31502 CAE OFFTIME
018918,000248: 06,2252 55406 TS OFFTMBUF
018919,000249: 06,2253 51470 NDX ENGSTEP
018920,000250: 06,2254 31477 CAE ONTIME
018921,000251: 06,2255 04517 TC WAITLIST
018922,000252: 06,2256 E4,1470 EBANK= ENGSTEP
018923,000253: 06,2256 02261 14004 2CADR ENGSET
018924,000254:
018925,000255: 06,2260 04563 TC TASKOVER
018926,000256:
018927,000257: 06,2261 44507 ENGSET CS PRIO30
018928,000258: 06,2262 00006 EXTEND
018929,000259: 06,2263 02011 RAND 11
018930,000260: 06,2264 67655 AD BIT13
018931,000261: 06,2265 00006 EXTEND
018932,000262: 06,2266 01011 WRITE 11 # ENG ON = 1, ENG OFF = 0.
018933,000263: 06,2267 11406 ENGRST CCS OFFTMBUF
018934,000264: 06,2270 02277 TC LTIMEON # AT LEAST 2MIN. BEFORE ENGINE OFF.
018935,000265: 06,2271 51470 NDX ENGSTEP
018936,000266: 06,2272 31505 CAE OFFTIMER # LESS THAN 2MIN. TO ENGINE OFF.
018937,000267: 06,2273 04517 TC WAITLIST
018938,000268: 06,2274 E4,1470 EBANK= ENGSTEP
018939,000269: 06,2274 02232 14004 2CADR ENGRESET
018940,000270:
018941,000271: 06,2276 04563 TC TASKOVER
018942,000272:
018943,000273: 06,2277 11406 LTIMEON CCS OFFTMBUF # IS THERE ANY MORE.
018944,000274: 06,2300 02302 TC +2 # YES.
018945,000275: 06,2301 02267 TC ENGRST # NO.
018946,000276: 06,2302 55406 TS OFFTMBUF
018947,000277: 06,2303 32310 CAF 2MIN
018948,000278: 06,2304 04517 TC WAITLIST
018949,000279: 06,2305 E4,1470 EBANK= ENGSTEP
018950,000280: 06,2305 02277 14004 2CADR LTIMEON
018951,000281:
018952,000282: 06,2307 04563 TC TASKOVER
018953,000283:
018954,000284: 06,2310 27340 2MIN DEC 12000 B-14
018955,000285:
018956,000286: # LEM FCS TEST TRIM TASK
018957,000287: # THIS PROGRAM ISSUES A PROFILE OF PITCH AND ROLL TRIM COMMANDS TO THE LEM DESCENT ENGINE GIMBAL IN ACCORDANCEWITH
018958,000288: # THE VALUE S IN THE TRIMSTEP REGISTER AND THE 12 SETS OF 5 REGISTERS CALLED NUMTIMES, STEPDLYT, TRIMONT, TRIMOFFT
018959,000289: # AND TRIMIND. TRIMSTEP IS USED TO PICK UP A PARTICULAR SET OF THE 5 REGISTERS AND HAS ALLOWABLE VALUES FROM +0
018960,000290: # THROUGH +11 DECIMAL. THE 5 REGISTERS IN EACH SET ARE DEFINED AS FOLLOWS
018961,000291: # (1) NUMTIMES DETERMINES THE NUMBER OF TIMES THE COMMAND IN TRIMIND WILL BE ISSUED. VALUES FROM +0 TO
018962,000292: # OCT 37777 ARE PERMITTED.
018963,000293: # (2) STEPDLYT DETERMINES THE TIME BETWEEN THE START OF A STEP AND THE BEGINNING OF TRIMONT. STEPDLYT MUST BE
018964,000294: # FORMATTED FOR T3, ITS MAXIMUM VALUE IS 2 MINUTES.
018965,000295: # (3) TRIMONT DETERMINES THE TIME BETWEEN THE END OF STEPDLYT OR TRIMOFFT AND THE TIME THE TRIM COMMANDS ARE
018966,000296: # ISSUED. IT MUST BE FORMATTED FOR T3.
018967,000297: # (4) TRIMOFFT DETERMINES THE LENGTH OF TIME THE TRIM COMMAND WILL BE ON, FORMATTED FOR T3.
018968,000298: # (5) TRIMIND DETERMINES THE PITCH AND ROLL COMMAND TO BE ISSUED. THE FORMAT IS, BIT9=1=+ PITCH COMMAND,
018969,000299: # BIT10=1=-PITCH, BIT11=1= +ROLL, BIT12=1= -ROLL. A BIT=0 INDICATES NO COMMAND. ANY COMBINATION OF COMMANDS IS
018970,000300: # PERMITTED.
018971,000301: # THIS TASK WILL BE ENTERED BUT IMMEDIATELY ENDED IF TRIMSTEP AND NUMTIMES = +0.
018972,000302:
018973,000303:
018974,000304: 06,2311 11510 NEXTTRIM CCS TRIMSTEP
018975,000305: 06,2312 02314 TC +2
018976,000306: 06,2313 04563 TC TASKOVER # EXIT HERE.
018977,000307: 06,2314 55510 TS TRIMSTEP # LESS ONE.
018978,000308:
018979,000309: 06,2315 51510 TRIMTOP NDX TRIMSTEP # ENTER HERE.
018980,000310: 06,2316 11511 CCS NUMTIMES
018981,000311: 06,2317 02321 TC +2
018982,000312: 06,2320 02311 TC NEXTTRIM
018983,000313: 06,2321 51510 NDX TRIMSTEP
018984,000314: 06,2322 31525 CAE STEPDLYT
018985,000315: 06,2323 04517 TC WAITLIST
018986,000316: 06,2324 E4,1510 EBANK= TRIMSTEP
018987,000317: 06,2324 02342 14004 2CADR TRIMSET
018988,000318:
018989,000319: 06,2326 04563 TC TASKOVER
018990,000320:
018991,000321: 06,2327 42426 TRIMOFF CS TRIMMASK
018992,000322: 06,2330 00006 EXTEND
018993,000323: 06,2331 03012 WAND 12 # TRIM GOES OFF.
018994,000324: 06,2332 51510 NUMSTEP NDX TRIMSTEP
018995,000325: 06,2333 11511 CCS NUMTIMES
018996,000326: 06,2334 10000 CCS A
018997,000327: 06,2335 02337 TC +2
018998,000328: 06,2336 02311 TC NEXTTRIM # WAS ONE.
018999,000329: 06,2337 67671 AD ONE
019000,000330: 06,2340 51510 NDX TRIMSTEP
019001,000331: 06,2341 55511 TS NUMTIMES
019002,000332: 06,2342 51510 TRIMSET NDX TRIMSTEP
019003,000333: 06,2343 31541 CAE TRIMONT
019004,000334: 06,2344 04517 TC WAITLIST
019005,000335: 06,2345 E4,1510 EBANK= TRIMSTEP
019006,000336: 06,2345 02350 14004 2CADR TRIMON
019007,000337:
019008,000338: 06,2347 04563 TC TASKOVER
019009,000339:
019010,000340: 06,2350 32425 TRIMON CAF BITS9,10 # CHECK PITCH AND ROLL TRIM FAIL BITS.
019011,000341: 06,2351 00006 EXTEND
019012,000342: 06,2352 06032 RXOR 32
019013,000343: 06,2353 72425 MASK BITS9,10
019014,000344: 06,2354 00006 EXTEND
019015,000345: 06,2355 12363 BZF TRIMON1
019016,000346: 06,2356 34514 CAF PRIO35 # FAIL IS ON. FLASH FAIL CODE (01400) AND
019017,000347: 06,2357 04344 TC NOVAC # IDLE UNTIL SOMEONE RESETS IT, TERMINATES
019018,000348: 06,2360 02376 14004 2CADR PERFORM # THE TASK, OR DECIDES TO PROCEED WITH IT.
019019,000349:
019020,000350: 06,2362 04563 TC TASKOVER
019021,000351:
019022,000352: 06,2363 51510 TRIMON1 NDX TRIMSTEP
019023,000353: 06,2364 31571 CAE TRIMIND
019024,000354: 06,2365 72426 MASK TRIMMASK # SAFETY PLAY
019025,000355: 06,2366 00006 EXTEND
019026,000356: 06,2367 05012 WOR 12 # TRIM STARTS.
019027,000357: 06,2370 51510 NDX TRIMSTEP
019028,000358: 06,2371 31555 CAE TRIMOFFT
019029,000359: 06,2372 04517 TC WAITLIST
019030,000360: 06,2373 E4,1510 EBANK= TRIMSTEP
019031,000361: 06,2373 02327 14004 2CADR TRIMOFF
019032,000362:
019033,000363: 06,2375 04563 TC TASKOVER
019034,000364:
019035,000365: 06,2376 05311 PERFORM TC GRABWAIT # KEY RELEASE MAY COME ON.
019036,000366: 06,2377 32425 CAF TRIMCODE # 01400
019037,000367: 06,2400 54333 TS DSPTEM1
019038,000368: 06,2401 32427 CAF V01N25K
019039,000369: 06,2402 05324 TC NVSBWAIT
019040,000370: 06,2403 32430 CAF V50K # PLEASE PERFORM.
019041,000371: 06,2404 05324 TC NVSBWAIT
019042,000372: 06,2405 05266 TC FLASHON # ANY RESPONSE TURNS IT OFF.
019043,000373: 06,2406 05132 TC ENDIDLE # WAIT FOR SOMEONE TO DO SOMETHING.
019044,000374: 06,2407 04421 TC EJFREE # V34E. TERMINATE THE TASK.
019045,000375: 06,2410 02417 TC TR1 # V33E. PROCEED WITH THE FAIL ON.
019046,000376: 06,2411 00004 INHINT # ENTER. THE FAIL HAS BEEN RESET.
019047,000377: 06,2412 37670 CAF BIT2 # 20MS.
019048,000378: 06,2413 04517 TC WAITLIST
019049,000379: 06,2414 02350 14004 2CADR TRIMON # CHECK AGAIN TO BE SURE, THEN PROCEED..
019050,000380:
019051,000381: 06,2416 04421 TC EJFREE
019052,000382:
019053,000383: 06,2417 00004 TR1 INHINT # PROCEED WITH THE FAIL.
019054,000384: 06,2420 37670 CAF BIT2 # 20MS.
019055,000385: 06,2421 04517 TC WAITLIST
019056,000386: 06,2422 02363 14004 2CADR TRIMON1 # BYPASS THE RECHECK.
019057,000387:
019058,000388: 06,2424 04421 TC EJFREE
019059,000389:
019060,000390: 06,2425 01400 BITS9,10 OCT 01400
019061,000391: 06,2426 06,2425 TRIMCODE EQUALS BITS9,10
019062,000392: 06,2426 07400 TRIMMASK OCT 07400
019063,000393: 06,2427 00125 V01N25K OCT 00125
019064,000394: 06,2430 05000 V50K OCT 05000
019065,000395:
019066,000396: # LEM FCS TEST THROTTLE TASK
019067,000397: # THIS PROGRAM ISSUES A PROFILE OF THROTTLE COMMANDS TO THE LEM DESCENT ENGINE. THE PROFILE IS DETERMINED BY
019068,000398: # THE VALUES IN THE THRTSTEP REGISTER AND THE 6 SETS OF REGISTERS, 5 PER SET, CALLED DOTIMES, DELAY, THR1TIME,
019069,000399: # THCOMM1 AND THCOMM2. THE THRTSTEP REGISTER VALUE IS USED TO INDEX THE 6 SETS OF 5 REGISTERS AND HAS ALLOWABLE
019070,000400: # VALUES OF +0 THROUGH +5. THE 5 REGISTERS PER SET ARE DEFINED AS FOLLOWS
019071,000401: # (1) DOTIMES DETERMINES THE NUMBER OF TIMES THE THROTTLE WILL BE EXERCISED AS PER THE VALUES OF THR1TIME,
019072,000402: # THCOMM1 AND THCOMM2 OF THE CURRENT STEP. IT HAS ALLOWABLE VALUES OF +0 THROUGH 37777 OCT.
019073,000403: # (2) DELAY DETERMINES THE TIME BETWEEN THE START OF A STEP AND THE BE GINNING OF THR1TIME. ITIS CALLED ONLY
019074,000404: # ONCE PER STEP,I.E., REPEATS OF THE SAME THCOMM1 AND THCOMM2 START AT THR1TIME. DELAY MUST BE FORMATTED FOR T3
019075,000405: # AND HENCE HAS A MAXIMUM VALUE OF 2 MINUTES.
019076,000406: # (3) THR1TIME DETERMINES THE TIME BETWEEN THE END OF DELAY OR THE END OF THCOMM2 AND THE START OF
019077,000407: # THCOMM1. IT MUST BE FORMATTED FOR T3.
019078,000408: # (4) THCOMM1 AND (5) THCOMM2 DETERMINE THE NUMBER OF THRUST INCREASE OR DECREASE PULSES TOBE ISSUED AT A
019079,000409: # 3.2KPPS RATE. THE RANGE OF POSSIBLE VALUES OF EITHER IS FROM POSMAX (OCT 37777) TO NEGMAX (OCT 40000) ALTHOUGH
019080,000410: # THE ACTUAL THROTTLE RANGE IS FROM OCT 6116 TO OCT 71661 (+,- 3150 DEC).
019081,000411: # THIS TASK WILL BE ENTERED BUT IMMEDIATELY ENDED IF THE INITIAL VALUES OF THRTSTEP AND DOTIMES ARE +0.
019082,000412:
019083,000413:
019084,000414: 06,2431 11605 NEXTTHRT CCS THRTSTEP
019085,000415: 06,2432 02434 TC +2
019086,000416: 06,2433 04563 TC TASKOVER # EXIT HERE.
019087,000417: 06,2434 55605 TS THRTSTEP
019088,000418:
019089,000419: 06,2435 51605 THRSTART NDX THRTSTEP # ENTER HERE.
019090,000420: 06,2436 11606 CCS DOTIMES # NUMBER OF TIMES COMMANDS 1 AND 2 DONE.
019091,000421: 06,2437 02441 TC +2
019092,000422: 06,2440 02431 TC NEXTTHRT
019093,000423: 06,2441 51605 NDX THRTSTEP
019094,000424: 06,2442 31614 CAE DELAY # TIME BETWEEN STEPS. BIAS FOR THR1TIME.
019095,000425: # MUST BE SCALED FOR T3.
019096,000426: 06,2443 04517 TC WAITLIST
019097,000427: 06,2444 E4,1605 EBANK= THRTSTEP
019098,000428: 06,2444 02467 14004 2CADR THROTON1
019099,000429:
019100,000430: 06,2446 04563 TC TASKOVER
019101,000431:
019102,000432: 06,2447 51605 THR2COMM NDX THRTSTEP
019103,000433: 06,2450 31636 CAE THCOMM2 # SAME REMARKS AS FOR THCOMM1.
019104,000434: 06,2451 02505 TC THROTON
019105,000435: 06,2452 67671 AD BIT1 # 10MS IN CASE OF NO THCOMM2.
019106,000436: 06,2453 04517 TC WAITLIST
019107,000437: 06,2454 E4,1605 EBANK= THRTSTEP
019108,000438: 06,2454 02457 14004 2CADR CKDOTIME
019109,000439:
019110,000440: 06,2456 04563 TC TASKOVER
019111,000441:
019112,000442: 06,2457 51605 CKDOTIME NDX THRTSTEP
019113,000443: 06,2460 11606 CCS DOTIMES
019114,000444: 06,2461 10000 CCS A
019115,000445: 06,2462 02464 TC +2
019116,000446: 06,2463 02431 TC NEXTTHRT # WAS ONE.
019117,000447: 06,2464 67671 AD ONE
019118,000448: 06,2465 51605 NDX THRTSTEP
019119,000449: 06,2466 55606 TS DOTIMES
019120,000450: 06,2467 51605 THROTON1 NDX THRTSTEP
019121,000451: 06,2470 31622 CAE THR1TIME # TIME BETWEEN DOTIMES. SCALED FOR T3.
019122,000452: 06,2471 04517 TC WAITLIST
019123,000453: 06,2472 E4,1605 EBANK= THRTSTEP
019124,000454: 06,2472 02475 14004 2CADR THR1COMM
019125,000455:
019126,000456: 06,2474 04563 TC TASKOVER
019127,000457:
019128,000458: 06,2475 51605 THR1COMM NDX THRTSTEP
019129,000459: 06,2476 31630 CAE THCOMM1 # SHOULD BE NO LARGER THAN 3150DEC.
019130,000460: 06,2477 02505 TC THROTON
019131,000461: 06,2500 62522 AD 250MS # SO ACE CAN SAMPLE.
019132,000462: 06,2501 04517 TC WAITLIST
019133,000463: 06,2502 E4,1605 EBANK= THRTSTEP
019134,000464: 06,2502 02447 14004 2CADR THR2COMM
019135,000465:
019136,000466: 06,2504 04563 TC TASKOVER
019137,000467:
019138,000468: 06,2505 54055 THROTON TS THRUST # THROTTLE OUTPUT COUNTER.
019139,000469: 06,2506 55405 TS THBUF # SAVE FOR BZMF.
019140,000470: 06,2507 37666 CAF BIT4
019141,000471: 06,2510 00006 EXTEND
019142,000472: 06,2511 05014 WOR 14 # ENABLE THRUST DRIVE. COMMAND STARTS NOW
019143,000473: 06,2512 31405 CAE THBUF
019144,000474: 06,2513 00006 EXTEND
019145,000475: 06,2514 62516 BZMF +2
019146,000476: 06,2515 40000 COM
019147,000477: 06,2516 40000 COM
019148,000478: 06,2517 00006 EXTEND
019149,000479: 06,2520 77660 MP BIT10 # SCALES FOR T3.
019150,000480: 06,2521 00002 TC Q
019151,000481:
019152,000482: 06,2522 00031 250MS OCT 00031
019153,000483:
019154,000484: # LEM FCS TEST INTERFACE LOOK TASK.
019155,000485:
019156,000486: # THIS PROGRAM KEEPS A RUNNING HISTORY OF THE STATE OF ALL THE BITS IN INPUT CHANNELS 30, 31, 32 AND 33.
019157,000487: # IT DOES THIS BY DETECTING A CHANGE OF AN INPUT BIT FROM AN INITIAL ONE STATE TO A ZERO STATE OR FROM AN INITIAL
019158,000488: # ZERO TO A ONE. THE HISTORY IS MAINTAINED IN TWO BUFFER REGISTERS FOR EACH CHANNEL, ONE FOR STORING ONE TO ZERO
019159,000489: # CHANGES (30BUF1, +1, +2, AND +3) AND ONE FOR ZERO TO ONE CHANGES (30BUF0, +1 +2 AND +3). THE OPERATOR MUST
019160,000490: # LOAD THE INITIAL STATES OF THE INPUT CHANNELS INTO THEIR RESPECTIVE BUFFER REGISTERS BEFORE THIS PROGRAM IS IN-
019161,000491: # ITIATED.
019162,000492: # TO ALLOW THIS PROGRAM TO RUN C(QUITLOOK) MUST BE SET GREATER THAN +0 BEFORE IT IS STARTED. IF THE OPERATOR
019163,000493: # DOES NOT DESIRE THIS PROGRAM TO RUN HE SHOULD SET C(QUITLOOK)=+0 BEFORE STARTING THE FCS TEST. AFTER THIS TASK
019164,000494: # IS RUNNING THE OPERATOR CAN STOP IT BY SETTING C(QUITLOOK) = +0.
019165,000495: # NO DISPLAYS OF EITHER THE BUFFER REGISTERS OR CHANNELS ARE INCORPORATED INTO THIS PROGRAM. THIS WAS DONE TO
019166,000496: # ALLOW THE TEST OPERATOR MONITORING FLEXIBILITY. FOR REAL TIME MONITORING IT IS SUGGESTED THAT THE BUFFER
019167,000497: # REGISTERS BE DISPLAYED WITH THE MONITOR VERBS (11 THROUGH 15). ON THE OTHER HAND, THE OPERATOR MAY ELECT TO
019168,000498: # PERFORM NO REAL TIME MONITORING UNTIL THE TEST IS COMPLETED, WHEN THE BUFFER REGISTERS WOULD BE CALLED FOR
019169,000499: # DISPLAY (VERB 01) AND RECORDED.
019170,000500: # THIS PROGRAM IS PRIMARILY INTENDED FOR INTERFACE MONITORING DURING THE LEM VIBRATION TEST AT BETHPAGE, N.Y.,
019171,000501: # ALTHOUGH IT MAY ALSO BE USEFUL DURING VEHICAL LEVEL EMI TESTS.
019172,000502:
019173,000503: 06,2523 11654 LOOKTOP CCS QUITLOOK # IS THIS TASK WANTED.
019174,000504: 06,2524 02526 TC +2 # YES.
019175,000505: 06,2525 04563 TC TASKOVER # NO.
019176,000506: 06,2526 36176 CAF THREE # START SCAN OF CHANNELS.
019177,000507: 06,2527 55655 LOOKLOOP TS CHCNTR # 3, 2, 1, 0.
019178,000508: 06,2530 51655 NDX CHCNTR
019179,000509: 06,2531 31644 CAE 30BUF1
019180,000510: 06,2532 00006 EXTEND
019181,000511: 06,2533 51655 NDX CHCNTR
019182,000512: 06,2534 02030 RAND 30 # DETECTS CHANGES FROM 1 TO 0.
019183,000513: 06,2535 51655 NDX CHCNTR
019184,000514: 06,2536 57644 XCH 30BUF1 # STORE NEW ZEROS.
019185,000515: 06,2537 51655 NDX CHCNTR
019186,000516: 06,2540 31650 CAE 30BUF0
019187,000517: 06,2541 00006 EXTEND
019188,000518: 06,2542 51655 NDX CHCNTR
019189,000519: 06,2543 04030 ROR 30 # DETECTS CHANGES FROM 0 TO 1.
019190,000520: 06,2544 51655 NDX CHCNTR
019191,000521: 06,2545 57650 XCH 30BUF0 # STORE NEW ONES.
019192,000522: 06,2546 11655 CCS CHCNTR # IS THIS SCAN DONE.
019193,000523: 06,2547 02527 TC LOOKLOOP # NO.
019194,000524: 06,2550 35234 CAF TEN # YES. 100MS RECALL.
019195,000525: 06,2551 04517 TC WAITLIST
019196,000526: 06,2552 E4,1654 EBANK= QUITLOOK
019197,000527: 06,2552 02523 14004 2CADR LOOKTOP
019198,000528:
019199,000529: 06,2554 04563 TC TASKOVER
019200,000530: 06,2555 ENDLFCSS =
End of include-file LEM_FLIGHT_CONTROL_SYSTEM_TEST.agc. Parent file is MAIN.agc