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