Source Code

005533,000001: # Copyright: Public domain. 005534,000002: # Filename: T4RUPT_PROGRAM.agc 005535,000003: # Purpose: Part of the source code for Comanche, build 055. 005536,000004: # It is part of the source code for the Command Module's (CM) 005537,000005: # Apollo Guidance Computer (AGC), Apollo 11. 005538,000006: # Assembler: yaYUL 005539,000007: # Reference: pp. 133-169 005540,000008: # Contact: Ron Burkey <info@sandroid.org>, 005541,000009: # Fabrizio Bernardini <fabrizio@spacecraft.it> 005542,000010: # Website: http://www.ibiblio.org/apollo. 005543,000011: # Mod history: 10/05/09 FB Transcription of Batch FB-1 Assignment. 005544,000012: # 2010-08-28 JL Fixed a bunch of indentation. 005545,000013: 005546,000014: # The contents of the "Comanche055" files, in general, are transcribed 005547,000015: # from scanned documents. 005548,000016: 005549,000017: # Assemble revision 055 of AGC program Comanche by NASA 005550,000018: # 2021113-051. April 1, 1969. 005551,000019: 005552,000020: # This AGC program shall also be referred to as Colossus 2A 005553,000021: 005554,000022: # Prepared by 005555,000023: # Massachusetts Institute of Technology 005556,000024: # 75 Cambridge Parkway 005557,000025: # Cambridge, Massachusetts 005558,000026: 005559,000027: # under NASA contract NAS 9-4065. 005560,000028: 005561,000029: # Refer directly to the online document mentioned above for further 005562,000030: # information. Please report any errors to info@sandroid.org. 005563,000031: 005564,000032: # Page 133 005565,000033: 12,2000 BANK 12 005566,000034: 06,2000 SETLOC T4RUP 005567,000035: 06,2000 BANK 005568,000036: 005569,000037: 06,2000 COUNT 06/T4RPT 005570,000038: 005571,000039: 06,2000 54016 T4RUPT TS BANKRUPT 005572,000040: 06,2001 00006 EXTEND 005573,000041: 06,2002 22012 QXCH QRUPT 005574,000042: 005575,000043: 06,2003 11302 CCS DSRUPTSW # GOES 7(-1)0 AROUND AND AROUND 005576,000044: 06,2004 12010 TCF NORMT4 +1 005577,000045: 06,2005 12007 TCF NORMT4 005578,000046: 005579,000047: 06,2006 12136 TCF QUIKDSP 005580,000048: 005581,000049: 06,2007 35023 NORMT4 CAF SEVEN 005582,000050: 06,2010 54070 TS RUPTREG1 005583,000051: 06,2011 55302 TS DSRUPTSW 005584,000052: 005585,000053: 06,2012 COUNT 02/T4RPT 005586,000054: 005587,000055: 06,2012 7711 74K = HIGH4 005588,000056: 005589,000057: # RELTAB IS A PACKED TABLE. RELAYWORD CODE IN UPPER 4 BITS, RELAY CODE 005590,000058: # IN LOWER 5 BITS. 005591,000059: 005592,000060: 4072 BLOCK 02 005593,000061: 4000 SETLOC FFTAG12 005594,000062: 4000 BANK 005595,000063: 005596,000064: 4072 04025 RELTAB OCT 04025 005597,000065: 4073 10003 OCT 10003 005598,000066: 4074 14031 OCT 14031 005599,000067: 4075 20033 OCT 20033 005600,000068: 4076 24017 OCT 24017 005601,000069: 4077 30036 OCT 30036 005602,000070: 4100 34034 OCT 34034 005603,000071: 4101 40023 OCT 40023 005604,000072: 4102 44035 OCT 44035 005605,000073: 4103 50037 OCT 50037 005606,000074: 4104 54000 OCT 54000 005607,000075: 4105 60000 RELTAB11 OCT 60000 005608,000076: 005609,000077: # Page 134 005610,000078: # SWITCHED-BANK PORTION 005611,000079: 005612,000080: 12,2000 BANK 12 005613,000081: 06,2000 SETLOC T4RUP 005614,000082: 06,2000 BANK 005615,000083: 005616,000084: 06,2012 COUNT 06/T4RPT 005617,000085: 005618,000086: 06,2012 11036 CDRVE CCS DSPTAB +11D 005619,000087: 06,2013 02063 TC DSPOUT 005620,000088: 06,2014 02063 TC DSPOUT 005621,000089: 005622,000090: 06,2015 57036 XCH DSPTAB +11D 005623,000091: 06,2016 74372 MASK LOW11 005624,000092: 06,2017 55036 TS DSPTAB +11D 005625,000093: 06,2020 64105 AD RELTAB11 005626,000094: 06,2021 00006 EXTEND 005627,000095: 06,2022 01010 WRITE OUT0 005628,000096: 06,2023 02071 TC HANG20 005629,000097: 005630,000098: # Page 135 005631,000099: # DSPOUT PROGRAM, PUTS OUT DISPLAYS 005632,000100: 005633,000101: 06,2024 55016 DSPOUTSB TS NOUT 005634,000102: 06,2025 45021 CS ZERO 005635,000103: 06,2026 54073 TS DSRUPTEM # SET TO -0 FOR 1ST PASS THRU DSPTAB 005636,000104: 06,2027 56776 XCH DSPCNT 005637,000105: 06,2030 65020 AD NEG0 # TO PREVENT +0 005638,000106: 06,2031 54776 TS DSPCNT 005639,000107: 06,2032 50776 DSPSCAN INDEX DSPCNT 005640,000108: 06,2033 11023 CCS DSPTAB 005641,000109: 06,2034 10776 CCS DSPCNT # IF DSPTAB ENTRY +, SKIP 005642,000110: 06,2035 12030 TCF DSPSCAN -2 # IF DSPCNT +, AGAIN 005643,000111: 06,2036 12047 TCF DSPLAY # IF DSPTAB ENTRY -, DISPLAY 005644,000112: 06,2037 00012 TABLNTH OCT 12 # DEC 10 LENGTH OF DSPTAB 005645,000113: 06,2040 10073 CCS DSRUPTEM # IF DSRUPTEM=+0, 2ND PASS THRU DSPTAB 005646,000114: 06,2041 37764 120MRUPT DEC 16372 B-14 # (DSPCNT = 0). +0 INTO NOUT. 005647,000115: 06,2042 55016 TS NOUT 005648,000116: 06,2043 00002 TC Q 005649,000117: 06,2044 54073 TS DSRUPTEM # IF DSRUPTEM=-0, 1ST PASS THRU DSPTAB 005650,000118: 06,2045 32037 CAF TABLNTH # (DSPCNT=0).+0 INTO DSRUPTEM. PASS AGAIN 005651,000119: 06,2046 12031 TCF DSPSCAN -1 005652,000120: 005653,000121: 06,2047 65017 DSPLAY AD ONE 005654,000122: 06,2050 50776 INDEX DSPCNT 005655,000123: 06,2051 55023 TS DSPTAB # REPLACE POSITIVELY 005656,000124: 06,2052 74372 MASK LOW11 # REMOVE BITS 12 TO 15 005657,000125: 06,2053 54073 TS DSRUPTEM 005658,000126: 06,2054 34364 CAF HI5 005659,000127: 06,2055 50776 INDEX DSPCNT 005660,000128: 06,2056 74072 MASK RELTAB # PICK UP BITS 12 TO 15 OF RELTAB ENTRY 005661,000129: 06,2057 60073 AD DSRUPTEM 005662,000130: 06,2060 00006 EXTEND 005663,000131: 06,2061 01010 WRITE OUT0 # WRITE CHANNEL 10 005664,000132: 06,2062 16706 TCF Q+1 # *** NORMAL RETURN SKIPS ONE 005665,000133: 005666,000134: 06,2063 10101 DSPOUT CCS FLAGWRD5 # DON'T DISPLAY UNLESS DSKY FLAG ON 005667,000135: 06,2064 35021 CAF ZERO 005668,000136: 06,2065 12132 TCF NODSPOUT 005669,000137: 06,2066 11016 CCS NOUT 005670,000138: 06,2067 02024 TC DSPOUTSB 005671,000139: 06,2070 12132 TCF NODSPOUT # NO DISPLAY REQUESTS 005672,000140: 005673,000141: 06,2071 42173 HANG20 CS 11,14,9 005674,000142: 06,2072 27302 ADS DSRUPTSW 005675,000143: 005676,000144: 06,2073 37700 CAF 20MRUPT 005677,000145: 005678,000146: 06,2074 54027 SETTIME4 TS TIME4 005679,000147: 005680,000148: # Page 136 005681,000149: # THE STATUS OF THE PROCEED PUSHBUTTON IS MONITORED EVERY 120 MILLISECONDS VIA THE CHANNEL 32 BIT 14 INBIT. 005682,000150: # THE STATE OF THIS INBIT IS COMPARED WITH ITS STATE DURING THE PREVIOUS T4RUPT AND IS PROCESSED AS FOLLOWS. 005683,000151: # IF PREV ON AND NOW ON -- BYPASS 005684,000152: # IF PREV ON AND NOW OFF -- UPDATE IMODES33 005685,000153: # IF PREV OFF AND NOW ON -- UPDATE IMODES33 AND PROCESS VIA PINBALL 005686,000154: # IF PREV OFF AND NOW OFF -- BYPASS 005687,000155: # THE LOGIC EMPLOYED REQUIRES ONLY 9 MCT (APPROX. 108 MICROSECONDS) OF COMPUTER TIME WHEN NO CHANGES OCCUR. 005688,000156: 005689,000157: 06,2075 31321 PROCEEDE CA IMODES33 # MONITOR FOR PROCEED BUTTON 005690,000158: 06,2076 00006 EXTEND 005691,000159: 06,2077 06032 RXOR CHAN32 # CHECK IF BIT 14 DIFFERENT 005692,000160: 06,2100 75002 MASK BIT14 005693,000161: 06,2101 00006 EXTEND 005694,000162: 06,2102 12116 BZF T4JUMP # NO CHANGE 005695,000163: 005696,000164: 06,2103 23321 LXCH IMODES33 005697,000165: 06,2104 00006 EXTEND 005698,000166: 06,2105 06001 RXOR LCHAN 005699,000167: 06,2106 55321 TS IMODES33 # UPDATE IMODES33 005700,000168: 06,2107 75002 MASK BIT14 005701,000169: 06,2110 10000 CCS A 005702,000170: 06,2111 12116 TCF T4JUMP # WAS ON -- NOW OFF 005703,000171: 005704,000172: 06,2112 34371 CAF CHRPRIO # WAS OFF -- NOW ON 005705,000173: 06,2113 05134 TC NOVAC 005706,000174: 06,2114 0777 EBANK= DSPCOUNT 005707,000175: 06,2114 03357 60101 2CADR PROCKEY 005708,000176: 005709,000177: # Page 137 005710,000178: # JUMP TO APPROPRIATE ONCE-PER SECOND (0.96 SEC ACTUALLY) ACTIVITY 005711,000179: 005712,000180: 06,2116 50070 T4JUMP INDEX RUPTREG1 005713,000181: 06,2117 12120 TCF +1 005714,000182: 005715,000183: 06,2120 12130 TCF OPTTEST 005716,000184: 06,2121 12765 TCF OPTMON 005717,000185: 06,2122 12174 TCF IMUMON 005718,000186: 06,2123 15333 TCF RESUME 005719,000187: 06,2124 12130 TCF OPTTEST 005720,000188: 06,2125 12765 TCF OPTMON 005721,000189: 06,2126 12174 TCF IMUMON 005722,000190: 06,2127 15333 TCF RESUME 005723,000191: 005724,000192: 06,2130 04740 OPTTEST TC IBNKCALL 005725,000193: 06,2131 20000 CADR OPTDRIVE 005726,000194: 005727,000195: 06,2132 7700 20MRUPT = OCT37776 # (DEC 16382) 005728,000196: 005729,000197: 06,2132 00006 NODSPOUT EXTEND # TURN OFF RELAYS 005730,000198: 06,2133 01010 WRITE OUT0 005731,000199: 005732,000200: 06,2134 32041 CAF 120MRUPT # SET FOR NEXT CDRVE 005733,000201: 06,2135 12074 TCF SETTIME4 005734,000202: 005735,000203: 06,2136 35002 QUIKDSP CAF BIT14 005736,000204: 06,2137 71302 MASK DSRUPTSW 005737,000205: 06,2140 00006 EXTEND 005738,000206: 06,2141 12167 BZF QUIKOFF # WROTE LAST TIME, NOW TURN OFF RELAYS. 005739,000207: 005740,000208: 06,2142 11016 CCS NOUT 005741,000209: 06,2143 02024 TC DSPOUTSB 005742,000210: 06,2144 12154 TCF NODSPY # NOUT=0 OR BAD RETURN FROM DSPOUTSB 005743,000211: 06,2145 45002 CS BIT14 # GOOD RETURN (WE DISPLAYED SOMETHING) 005744,000212: 06,2146 27302 QUIKRUPT ADS DSRUPTSW 005745,000213: 005746,000214: 06,2147 37700 CAF 20MRUPT 005747,000215: 06,2150 54027 TS TIME4 005748,000216: 005749,000217: 06,2151 35007 CAF BIT9 005750,000218: 06,2152 27302 ADS DSRUPTSW 005751,000219: 005752,000220: 06,2153 05333 TC RESUME 005753,000221: 005754,000222: 06,2154 00006 NODSPY EXTEND 005755,000223: 06,2155 01010 WRITE OUT0 005756,000224: 005757,000225: 06,2156 37700 SYNCT4 CAF 20MRUPT 005758,000226: 06,2157 26027 ADS TIME4 005759,000227: 005760,000228: 06,2160 35007 CAF BIT9 005761,000229: # Page 138 005762,000230: 06,2161 27302 ADS DSRUPTSW 005763,000231: 06,2162 11302 CCS DSRUPTSW 005764,000232: 06,2163 05333 TC RESUME 005765,000233: 06,2164 37737 OCT37737 OCT 37737 005766,000234: 06,2165 02156 TC SYNCT4 005767,000235: 06,2166 05333 TC RESUME 005768,000236: 005769,000237: 06,2167 00006 QUIKOFF EXTEND 005770,000238: 06,2170 01010 WRITE OUT0 005771,000239: 06,2171 35002 CAF BIT14 # RESET DSRUPTSW TO SEND DISPLAY NEXT PASS 005772,000240: 06,2172 12146 TCF QUIKRUPT 005773,000241: 005774,000242: 06,2173 22400 11,14,9 OCT 22400 005775,000243: 005776,000244: # Page 139 005777,000245: # PROGRAM NAME: IMUMON 005778,000246: 005779,000247: # FUNCTIONAL DESCRIPTION: THIS PROGRAM IS ENTERED EVERY 480 MS. IT DETECTS CHANGES OF THE IMU STATUS BITS IN 005780,000248: # CHANNEL 30 AND CALLS THE APPROPRIATE SUBROUTINES. THE BITS PROCESSED AND THEIR RELEVANT SUROUTINES ARE: 005781,000249: 005782,000250: # FUNCTION BIT SUBROUTINE CALLED 005783,000251: # -------- --- ----------------- 005784,000252: # TEMP IN LIMITS 15 TLIM 005785,000253: # ISS TURN-ON REQUEST 14 ITURNON 005786,000254: # IMU FAIL 13 IMUFAIL (SETISSW) 005787,000255: # IMU CDU FAIL 12 ICDUFAIL (SETISSW) 005788,000256: # IMU CAGE 11 IMUCAGE 005789,000257: # IMU OPERATE 9 IMUOP 005790,000258: 005791,000259: # THE LAST SAMPLED STATE OF THESE BITS IS LEFT IN IMODES30. ALSO, EACH SUBROUTINE CALLED FINDS THE NEW 005792,000260: # VALUE OF THE BIT IN A, WITH Q SET TO THE PROPER RETURN LOCATION NXTIFAIL. 005793,000261: 005794,000262: # CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS. 005795,000263: 005796,000264: # JOBS OR TASKS INITIATED: NONE. 005797,000265: 005798,000266: # SUBROUTINES CALLED: TLIM, ITURNON, SETISSW, IMUCAGE, IMUOP. 005799,000267: 005800,000268: # ERASABLE INITIALIZATION: 005801,000269: # FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(IMODES30) = OCT 37411. 005802,000270: # RESTART WITH ACTIVE GROUPS: C(IMODES30) = (B(IMODES30)AND(OCT 00035)) PLUS OCT 37400. 005803,000271: # THIS LEAVES IMU FAIL BITS INTACT. 005804,000272: 005805,000273: # ALARMS: NONE. 005806,000274: 005807,000275: # EXIT: TNONTEST. 005808,000276: 005809,000277: # OUTPUT: UPDATED IMODES30 WITH CHANGES PROCESSED BY APPROPRIATE SUBROUTINE. 005810,000278: 005811,000279: 06,2174 31320 IMUMON CA IMODES30 # SEE IF THERE HAS BEEN A CHANGE IN THE 005812,000280: 06,2175 00006 EXTEND # RELEVANT BITS OF CHAN 30. 005813,000281: 06,2176 06030 RXOR CHAN30 # CHECK IF BITS 9,11-15 CHANGED 005814,000282: 06,2177 72743 MASK 30RDMSK 005815,000283: 06,2200 00006 EXTEND 005816,000284: 06,2201 12231 BZF TNONTEST # NO CHANGE IN STATUS 005817,000285: 005818,000286: 06,2202 54070 TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED. 005819,000287: 06,2203 23320 LXCH IMODES30 # UPDATE IMODES30. 005820,000288: 06,2204 00006 EXTEND 005821,000289: 06,2205 06001 RXOR LCHAN 005822,000290: 06,2206 55320 TS IMODES30 005823,000291: 005824,000292: 06,2207 45017 CS ONE 005825,000293: 06,2210 56070 XCH RUPTREG1 005826,000294: 06,2211 00006 EXTEND 005827,000295: # Page 140 005828,000296: 06,2212 62507 BZMF TLIM # CHANGE IN IMU TEMP. 005829,000297: 06,2213 12215 TCF NXTIFBIT # BEGIN BIT SCAN. 005830,000298: 005831,000299: 06,2214 65017 -1 AD ONE # (RE-ENTERS HERE FROM NXTIFAIL.) 005832,000300: 06,2215 24070 NXTIFBIT INCR RUPTREG1 # ADVANCE BIT POSITION NUMBER. 005833,000301: 06,2216 60000 +1 DOUBLE 005834,000302: 06,2217 54000 TS A # SKIP IF OVERFLOW. 005835,000303: 06,2220 12215 TCF NXTIFBIT # LOOK FOR BIT. 005836,000304: 005837,000305: 06,2221 56071 XCH RUPTREG2 # SAVE OVERFLOW-CORRECTED DATA. 005838,000306: 06,2222 50070 INDEX RUPTREG1 # SELECT NEW VALUE OF THIS BIT. 005839,000307: 06,2223 35002 CAF BIT14 005840,000308: 06,2224 71320 MASK IMODES30 005841,000309: 06,2225 50070 INDEX RUPTREG1 005842,000310: 06,2226 02737 TC IFAILJMP 005843,000311: 005844,000312: 06,2227 10071 NXTIFAIL CCS RUPTREG2 # PROCESS ANY ADDITIONAL CHANGES. 005845,000313: 06,2230 12214 TCF NXTIFBIT -1 005846,000314: 005847,000315: # Page 141 005848,000316: # PROGRAM NAME: TNONTEST. 005849,000317: 005850,000318: # FUNCTIONAL DESCRIPTION: THIS PROGRAM HONORS REQUESTS FOR ISS INITIALIZATION. ISS TURN-ON (CHANNEL 30 BIT 14) 005851,000319: # AND ISS OPERATE (CHANNEL 30 BIT 9) REQUESTS ARE TREATED AS A PAIR AND PROCESSING TAKES PLACE .480 SECONDS 005852,000320: # AFTER EITHER ONE APPEARS. THIS INITIALIZATION TAKES ON ONE OF THE FOLLOWING THREE FORMS: 005853,000321: 005854,000322: # 1) ISS TURN-ON: IN THIS SITUATION THE COMPUTER IS OPERATING WHEN THE ISS IS TURNED ON. NOMINALLY, 005855,000323: # BOTH ISS TURN-ON AND ISS OPERATE APPEAR. THE PLATFORM IS CAGED FOR 90 SECONDS AND THE ICDU'S ZEROED 005856,000324: # SO THAT AT THE END OF THE PROCESS THE GIMBAL LOCK MONITOR WILL FUNCTION PROPERLY. 005857,000325: 005858,000326: # 2) ICDU INITIALIZATION: IN THIS CASE THE COMPUTER WAS PROBABLY TURNED ON WITH THE ISS IN OPERATE OR 005859,000327: # A FRESH START WAS DONE WIT THE ISS IN OPERATE. IN THIS CASE ONLY ISS OPERATE IS ON. THE ICDU'S ARE 005860,000328: # ZEROED SO THE GIMBAL LOCK MONITOR WILL FUNCTION. AN EXCEPTION IS IF THE ISS IS IN GIMBAL LOCK AFTER 005861,000329: # A RESTART, THE ICDU'S WILL NOT BE ZEROED. 005862,000330: 005863,000331: # 3) RESTART WITH RESTARTABLE PROGRAM USING THE IMU: IN THIS CASE, NO INITIALIZATION TAKES PLACE SINCE 005864,000332: # IT IS ASSUMED THAT THE USING PROGRAM DID THE INITIALIZATION AND THEREFORE T4RUPT SHOULD NOT INTERFERE. 005865,000333: 005866,000334: # IMODES30 BIT 7 IS SET = 1 BY THE FIRST BIT (CHANNEL 30 BIT 14 OR 9) WHICH ARRIVES. FOLLOWING THIS, TNONTEST IS 005867,000335: # ENTERED, FINDS BIT 7 = 1 BUT BIT 8 = 0, SO IT SETS BIT 8 = 1 AND EXITS. THE NEXT TIME IT FINDS BIT 8 = 1 AND 005868,000336: # PROCEEDS, SETTING BITS 8 AND 7 = 0. AT PROCTNON, IF ISS TURN-ON REQUEST IS PRESENT, THE ISS IS CAGED (ZERO + 005869,000337: # COARSE). IF ISS OPERATE IS NOT PRESENT PROGRAM ALARM 00213 IS ISSUED. AT THE END OF A 90 SECOND CAGE, BIT 2 005870,000338: # OF IMODES30 IS TESTED. IF IT IS = 1, ISS TURN-ON WAS NOT PRESENT FOR THE ENTIRE 90 SECONDS. IN THAT CASE, IF 005871,000339: # THE ISS TURN-ON REQUEST IS PRESENT THE 90 SECOND WAIT IS REPEATED, OTHERWISE NO ACTION OCCURS UNLESS A PROGRAM 005872,000340: # WAS WAITING FOR THE INITIALIZATION IN WHICH CASE THE PROGRAM IS GIVEN AN IMUSTALL ERROR RETURN. IF THE DELAY 005873,000341: # WENT PROPERLY, THE ISS DELAY OUTBIT IS SENT AND THE ICDU'S ZEROED. A TASK IS INITIATED TO REMOVE THE PIPA FAIL 005874,000342: # INHIBIT BIT IN 10.24 SECONDS. IF A MISSION PROGRAM WAS WAITING IT IS INFORMED VIA ENDIMU. 005875,000343: 005876,000344: # AT PROCTNON, IF ONLY ISS OPERATE IS PRESENT (OPONLY), THE CDU'S ARE ZEROED UNLESS THE PLATFORM IS IN COARSE 005877,000345: # ALIGN (= GIMBAL LOCK HERE) OR A MISSION PROGRAM IS USING THE IMU (INUSEFLG = 1). 005878,000346: 005879,000347: # CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS AFTER IMUMON. 005880,000348: 005881,000349: # JOBS OR TASKS INITIATED: 1) ENDTNON, 90 SECONDS AFTER CAGING STARTED. 2) ISSUP, 4 SECONDS AFTER CAGING DONE. 005882,000350: # 3) PFAILOK, 10.24 SECONDS AFTER INITIALIZATION COMPLETED. 4) UNZ2, 320 MILLISECONDS AFTER ZEROING 005883,000351: # STARTED. 005884,000352: 005885,000353: # SUBROUTINES CALLED: CAGESUB, CAGESUB2, ZEROICDU, ENDIMU, IMUBAD, NOATTOFF, SETISSW, VARDELAY. 005886,000354: 005887,000355: # ERASABLE INITIALIZATION: SEE IMUMON. 005888,000356: 005889,000357: # ALARMS: PROGRAM ALARM 00213 IF ISS TURN-ON REQUESTED WITHOUT ISS OPERATE. 005890,000358: 005891,000359: # EXIT: ENDTNON EXITS TO C33TEST. TASKS HAVING TO DO WITH INITIALIZATION EXIT AS FOLLOWS: MISSION PROGRAM 005892,000360: # WAITING AND INITIALIZATION COMPLETE, EXIT TO ENDIMU, MISSION PROGRAM WAITING AND INITIALIZATION FAILED, EXIT TO 005893,000361: # IMUBAD, IMU NOT IN USE, EXIT TO TASKOVER. 005894,000362: 005895,000363: # OUTPUT: ISS INITIALIZED. 005896,000364: 005897,000365: 06,2231 41320 TNONTEST CS IMODES30 # AFTER PROCESSING ALL CHANGES, SEE IF IT 005898,000366: # Page 142 005899,000367: 06,2232 75011 MASK BIT7 # IS TIME TO ACT ON A TURN-ON SEQUENCE. 005900,000368: 06,2233 10000 CCS A 005901,000369: 06,2234 12367 TCF C33TEST # NO -- EXAMINE CHANNEL 33. 005902,000370: 005903,000371: 06,2235 35010 CAF BIT8 # SEE IF FIRST SAMPLE OR SECOND. 005904,000372: 06,2236 71320 MASK IMODES30 005905,000373: 06,2237 10000 CCS A 005906,000374: 06,2240 12244 TCF PROCTNON # REACT AFTER A SECOND SAMPLE. 005907,000375: 005908,000376: 06,2241 35010 CAF BIT8 # IF FIRST SAMPLE, SET BIT TO REACT NEXT 005909,000377: 06,2242 27320 ADS IMODES30 # TIME. 005910,000378: 06,2243 12367 TCF C33TEST 005911,000379: 005912,000380: # PROCESS IMU TURN-ON REQUESTS AFTER WAITING 1 SAMPLE FOR ALL SIGNALS TO ARRIVE. 005913,000381: 005914,000382: 06,2244 42757 PROCTNON CS BITS7&8 005915,000383: 06,2245 71320 MASK IMODES30 005916,000384: 06,2246 55320 TS IMODES30 005917,000385: 06,2247 75002 MASK BIT14 # SEE IF TURN-ON REQUEST. 005918,000386: 06,2250 10000 CCS A 005919,000387: 06,2251 12342 TCF OPONLY # OPERATE ON ONLY. 005920,000388: 005921,000389: 06,2252 41320 CS IMODES30 # IF TURN-ON REQUEST, WE SHOULD HAVE IMU 005922,000390: 06,2253 75007 MASK BIT9 # OPERATE. 005923,000391: 06,2254 10000 CCS A 005924,000392: 06,2255 12260 TCF +3 005925,000393: 005926,000394: 06,2256 05650 TC ALARM # ALARM IF NOT 005927,000395: 06,2257 00213 OCT 213 005928,000396: 005929,000397: 06,2260 02717 +3 TC CAGESUB 005930,000398: 005931,000399: 06,2261 32764 CAF 90SECS 005932,000400: 06,2262 05245 TC WAITLIST 005933,000401: 06,2263 E3,1474 EBANK= CDUIND 005934,000402: 06,2263 02270 14063 2CADR ENDTNON 005935,000403: 005936,000404: 06,2265 12367 TCF C33TEST 005937,000405: 005938,000406: 06,2266 32764 RETNON CAF 90SECS 005939,000407: 06,2267 05272 TC VARDELAY 005940,000408: 005941,000409: 06,2270 45016 ENDTNON CS BIT2 # RESET TURN-ON REQUEST FAIL BIT. 005942,000410: 06,2271 71320 MASK IMODES30 005943,000411: 06,2272 57320 XCH IMODES30 005944,000412: 06,2273 75016 MASK BIT2 # IF IT WAS OFF, SEND ISS DELAY COMPLETE. 005945,000413: 06,2274 00006 EXTEND 005946,000414: 06,2275 12310 BZF ENDTNON2 005947,000415: # Page 143 005948,000416: 06,2276 35002 CAF BIT14 # IF IT WAS ON AND TURN-ON REQUEST NOW. 005949,000417: 06,2277 71320 MASK IMODES30 # PRESENT, RE-ENTER 90 SEC DELAY IN WL. 005950,000418: 06,2300 00006 EXTEND 005951,000419: 06,2301 12266 BZF RETNON 005952,000420: 005953,000421: 06,2302 40074 CS STATE # IF IT IS NOT ON NOW, SEE IF A PROG WAS 005954,000422: 06,2303 75010 MASK IMUSEFLG # WAITING. 005955,000423: 06,2304 10000 CCS A 005956,000424: 06,2305 15324 TCF TASKOVER 005957,000425: 06,2306 04701 TC POSTJUMP 005958,000426: 06,2307 17522 CADR IMUBAD # UNSUCCESSFUL TURN-ON. 005959,000427: 005960,000428: 06,2310 35001 ENDTNON2 CAF BIT15 # SEND ISS DELAY COMPLETE. 005961,000429: 06,2311 00006 EXTEND 005962,000430: 06,2312 05012 WOR CHAN12 # TURN OFF ISS DELAY COUNTER 005963,000431: 06,2313 04740 TC IBNKCALL # TURN OFF NO ATT LAMP. 005964,000432: 06,2314 17151 CADR NOATTOFF 005965,000433: 005966,000434: 06,2315 05521 UNZ2 TC ZEROICDU 005967,000435: 005968,000436: 06,2316 45027 CS BITS4&5 # REMOVE ZERO AND COARSE. 005969,000437: 06,2317 00006 EXTEND 005970,000438: 06,2320 03012 WAND CHAN12 005971,000439: 005972,000440: 06,2321 35005 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS 005973,000441: 06,2322 05272 TC VARDELAY 005974,000442: 005975,000443: 06,2323 42754 ISSUP CS OCT54 # REMOVE CAGING, IMU FAIL INHIBIT, AND 005976,000444: 06,2324 71320 MASK IMODES30 # ICDUFAIL INHIBIT FLAGS. 005977,000445: 06,2325 55320 TS IMODES30 005978,000446: 005979,000447: 06,2326 45012 CS BIT6 # ENABLE DAP 005980,000448: 06,2327 71321 MASK IMODES33 005981,000449: 06,2330 55321 TS IMODES33 005982,000450: 005983,000451: 06,2331 02665 TC SETISSW # ISS WARNING MIGHT HAVE BEEN INHIBITED. 005984,000452: 005985,000453: 06,2332 45001 CS BIT15 # REMOVE IMU DELAY COMPLETE DISCRETE. 005986,000454: 06,2333 00006 EXTEND 005987,000455: 06,2334 03012 WAND CHAN12 005988,000456: 005989,000457: 06,2335 35045 CAF 4SECS # DONT ENABLE PROG ALARM ON PIP FAIL FOR 005990,000458: 06,2336 05245 TC WAITLIST # ANOTHER 4 SECS. 005991,000459: 06,2337 E3,1474 EBANK= CDUIND 005992,000460: 06,2337 03137 16063 2CADR PFAILOK 005993,000461: 005994,000462: 06,2341 15324 TCF TASKOVER 005995,000463: 005996,000464: 06,2342 35014 OPONLY CAF BIT4 005997,000465: # Page 144 005998,000466: 06,2343 00006 EXTEND # IF OPERATE ON ONLY AND WE ARE IN COARSE 005999,000467: 06,2344 02012 RAND CHAN12 # ALIGN, DON'T ZERO THE CDUS BECAUSE WE 006000,000468: 06,2345 10000 CCS A # MIGHT BE IN GIMBAL LOCK. USE V41N20 TO 006001,000469: 06,2346 12367 TCF C33TEST # RECOVER. 006002,000470: 006003,000471: 06,2347 35010 CAF IMUSEFLG # OTHERWISE, ZERO THE COUNTERS 006004,000472: 06,2350 70074 MASK STATE # UNLESS SOMEONE IS USING THE IMU. 006005,000473: 06,2351 10000 CCS A 006006,000474: 06,2352 12367 TCF C33TEST 006007,000475: 006008,000476: 06,2353 02730 TC CAGESUB2 # SET TURNON FLAGS. 006009,000477: 006010,000478: 06,2354 04740 ISSZERO TC IBNKCALL # TURN OFF NO ATT LAMP. 006011,000479: 06,2355 17151 CADR NOATTOFF # IMU CAGE OFF ENTRY. 006012,000480: 006013,000481: 06,2356 35013 CAF BIT5 # ISS CDU ZERO 006014,000482: 06,2357 00006 EXTEND 006015,000483: 06,2360 05012 WOR CHAN12 006016,000484: 006017,000485: 06,2361 05521 TC ZEROICDU 006018,000486: 06,2362 35012 CAF BIT6 # WAIT 300 MS FOR AGS TO RECEIVE SIGNAL. 006019,000487: 06,2363 05245 TC WAITLIST 006020,000488: 06,2364 1331 EBANK= OPTMODES 006021,000489: 06,2364 02315 14062 2CADR UNZ2 006022,000490: 006023,000491: 06,2366 12367 TCF C33TEST 006024,000492: 006025,000493: # Page 145 006026,000494: # PROGRAM NAME: C33TEST 006027,000495: 006028,000496: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THREE FLIP-FLOP INBITS OF CHANNEL 33 AND CALLS THE APPROPRIATE 006029,000497: # SUBROUTINE TO PROCESS A CHANGE. IT IS ANALOGOUS TO IMUMON, WHICH MONITORS CHANNEL 30, EXCEPT THAT IT READS 006030,000498: # CHANNEL 33 WITH A WAND INSTRUCTION BECAUSE A `WRITE' PULSE IS REQUIRED TO RESET THE FLIP-FLOPS. THE BITS 006031,000499: # PROCESSED AND THE SUBROUTINES CALLED ARE: 006032,000500: # BIT FUNCTION SUBROUTINE 006033,000501: # --- -------- ---------- 006034,000502: # 13 PIPA FAIL PIPFAIL 006035,000503: # 12 DOWNLINK TOO FAST DNTMFAST 006036,000504: # 11 UPLINK TOO FAST UPTMFAST 006037,000505: 006038,000506: # UPON ENTRY TO THE SUBROUTINE, THE NEW BIT STATE IS IN A. 006039,000507: 006040,000508: # CALLING SEQUENCE: EVERY 480 MILLISECONDS AFTER TNONTEST. 006041,000509: 006042,000510: # JOBS OR TASKS INITIATED: NONE. 006043,000511: 006044,000512: # SUBROUTINES CALLED: PIPFAIL, DNTMFAST AND UPTMFAST ON BIT CHANGES. 006045,000513: 006046,000514: # ERASABLE INITIALIZATION: C(IMODES33) = OCT 16000 ON A FRESH START OR RESTART, THEREFORE, THESE ALARMS WILL 006047,000515: # REAPPEAR IF THE CONDITIONS PERSIST. 006048,000516: 006049,000517: # ALARMS: NONE. 006050,000518: 006051,000519: # EXIT: GLOCKMON. 006052,000520: 006053,000521: # OUTPUT: UPDATED BITS 13, 12, AND 11 OF IMODES33 WITH CHANGES PROCESSED. 006054,000522: 006055,000523: 06,2367 31321 C33TEST CA IMODES33 # SEE IF RELEVANT CHAN33 BITS HAVE 006056,000524: 06,2370 75070 MASK 33RDMSK 006057,000525: 06,2371 54001 TS L # CHANGED. 006058,000526: 06,2372 35070 CAF 33RDMSK 006059,000527: 06,2373 00006 EXTEND 006060,000528: 06,2374 03033 WAND CHAN33 # RESETS FLIP-FLOP INPUTS 006061,000529: 06,2375 00006 EXTEND 006062,000530: 06,2376 06001 RXOR LCHAN 006063,000531: 06,2377 00006 EXTEND 006064,000532: 06,2400 12427 BZF GLOCKMON # ON NO CHANGE. 006065,000533: 006066,000534: 06,2401 54070 TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED 006067,000535: 06,2402 23321 LXCH IMODES33 006068,000536: 06,2403 00006 EXTEND 006069,000537: 06,2404 06001 RXOR LCHAN 006070,000538: 06,2405 55321 TS IMODES33 # UPDATED IMODES33. 006071,000539: 006072,000540: 06,2406 35021 CAF ZERO 006073,000541: 06,2407 56070 XCH RUPTREG1 006074,000542: 06,2410 60000 DOUBLE 006075,000543: # Page 146 006076,000544: 06,2411 12414 TCF NXTIBT +1 # SCAN FOR BIT CHANGES. 006077,000545: 006078,000546: 06,2412 65017 -1 AD ONE 006079,000547: 06,2413 24070 NXTIBT INCR RUPTREG1 006080,000548: 06,2414 60000 +1 DOUBLE 006081,000549: 06,2415 54000 TS A # (CODING IDENTICAL TO CHAN 30). 006082,000550: 06,2416 12413 TCF NXTIBT 006083,000551: 006084,000552: 06,2417 56071 XCH RUPTREG2 006085,000553: 06,2420 50070 INDEX RUPTREG1 # GET NEW VALUE OF BIT WHICH CHANGED. 006086,000554: 06,2421 35003 CAF BIT13 006087,000555: 06,2422 71321 MASK IMODES33 006088,000556: 06,2423 50070 INDEX RUPTREG1 006089,000557: 06,2424 02745 TC C33JMP 006090,000558: 006091,000559: 06,2425 10071 NXTFL33 CCS RUPTREG2 # PROCESS POSSIBLE ADDITIONAL CHANGES. 006092,000560: 06,2426 12412 TCF NXTIBT -1 006093,000561: 006094,000562: # Page 147 006095,000563: # PROGRAM NAME: GLOCKMON 006096,000564: 006097,000565: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THE CDUZ COUNTER TO DETERMINE WHETHER THE ISS IS IN GIMBAL LOCK 006098,000566: # AND TAKES ACTION IF IT IS. THREE REGIONS OF MIDDLE GIMBAL ANGLE (MGA) ARE USED: 006099,000567: 006100,000568: # 1) ABS(MGA) LESS THAN OR EQUAL TO 70 DEGREES -- NORMAL MODE. 006101,000569: # 2) ABS(MGA) GREATER THAN 70 DEGREES AND LESS THAN OR EQUAL TO 85 DEGREES -- GIMBAL LOCK LAMP TURNED ON. 006102,000570: # 3) ABS(MGA) GREATER THAN 85 DEGREES -- ISS PUT IN COARSE ALIGN AND NO ATT LAMP TURNED ON. 006103,000571: 006104,000572: # CALLING SEQUENCE: EVERY 480 MILLISECONDS AFTER C33TEST. 006105,000573: 006106,000574: # JOBS OR TASKS INITIATED: NONE. 006107,000575: 006108,000576: # SUBROUTINES CALLED: 1) SETCOARS WHEN ABS(MGA) GREATER THEN 85 DEGREES AND ISS NOT IN COARSE ALIGN. 006109,000577: # 2) LAMPTEST BEFORE TURNING OFF GIMBAL LOCK LAMP. 006110,000578: 006111,000579: # ERASABLE INITIALIZATION: 006112,000580: # 1) FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(CDUZ) = 0, IMODES30 BIT 6 = 0, IMODES33 BIT 1 = 0. 006113,000581: # 2) RESTART WTIH GROUPS ACTIVE: SAME AS FRESH START EXCEPT C(CDUZ) NOT CHANGED SO GIMBAL MONITOR 006114,000582: # PROCEEDS AS BEFORE. 006115,000583: 006116,000584: # ALARMS: 1) MGA REGION (2) CAUSES GIMBAL LOCK LAMP TO BE LIT. 006117,000585: # 2) MGA REGION (3) CAUSES THE ISS TO BE PUT IN COARSE ALIGN AND THE NO ATT LAMP TO BE LIT IF EITHER NOT 006118,000586: # SO ALREADY. 006119,000587: 006120,000588: 06,2427 10034 GLOCKMON CCS CDUZ 006121,000589: 06,2430 12434 TCF GLOCKCHK # SEE IF MAGNITUDE OF MGA IS GREATER THAN 006122,000590: 06,2431 12460 TCF SETGLOCK # 70 DEGREES. 006123,000591: 06,2432 12434 TCF GLOCKCHK 006124,000592: 06,2433 12460 TCF SETGLOCK 006125,000593: 006126,000594: 06,2434 62505 GLOCKCHK AD -70DEGS 006127,000595: 06,2435 00006 EXTEND 006128,000596: 06,2436 62457 BZMF SETGLOCK -1 # NO LOCK. 006129,000597: 006130,000598: 06,2437 62506 AD -15DEGS # SEE IF ABS(MGA) GREATER THAN 85 DEGREES 006131,000599: 06,2440 00006 EXTEND 006132,000600: 06,2441 62455 BZMF NOGIMRUN 006133,000601: 006134,000602: 06,2442 35014 CAF BIT4 # IF SO, SYSTEM SHOULD BE IN COARSE ALIGN 006135,000603: 06,2443 00006 EXTEND # TO PREVENT GIMBAL RUNAWAY. 006136,000604: 06,2444 02012 RAND CHAN12 006137,000605: 06,2445 10000 CCS A 006138,000606: 06,2446 12455 TCF NOGIMRUN 006139,000607: 006140,000608: 06,2447 04740 TC IBNKCALL # GO INTO COARSE ALIGN. 006141,000609: 06,2450 17027 CADR SETCOARS 006142,000610: 006143,000611: 06,2451 36211 CAF SIX # ENABLE ISS ERROR COUNTERS IN 60 MS. 006144,000612: 06,2452 05245 TC WAITLIST 006145,000613: # Page 148 006146,000614: 06,2453 E3,1474 EBANK= CDUIND 006147,000615: 06,2453 03023 16063 2CADR CA+ECE 006148,000616: 006149,000617: 06,2455 35012 NOGIMRUN CAF BIT6 # TURN ON GIMBAL LOCK LAMP. 006150,000618: 06,2456 12460 TCF SETGLOCK 006151,000619: 006152,000620: 06,2457 35021 -1 CAF ZERO 006153,000621: 06,2460 61036 SETGLOCK AD DSPTAB +11D # SEE IF PRESENT STATE OF GIMBAL LOCK LAMP 006154,000622: 06,2461 75012 MASK BIT6 # AGREES WITH DESIRED STATE BY HALF ADDING 006155,000623: 06,2462 00006 EXTEND # THE TWO. 006156,000624: 06,2463 15333 BZF GLOCKOK # OK AS IS. 006157,000625: 006158,000626: 06,2464 71036 MASK DSPTAB +11D # IF OFF, DON'T TURN ON IF IMU BEING CAGED. 006159,000627: 06,2465 10000 CCS A 006160,000628: 06,2466 12502 TCF GLAMPTST # TURN OFF UNLESS LAMP TEST IN PROGRESS. 006161,000629: 006162,000630: 06,2467 35012 CAF BIT6 006163,000631: 06,2470 71320 MASK IMODES30 006164,000632: 06,2471 10000 CCS A 006165,000633: 06,2472 15333 TCF GLOCKOK 006166,000634: 006167,000635: 06,2473 41036 GLINVERT CS DSPTAB +11D # INVERT GIMBAL LOCK LAMP. 006168,000636: 06,2474 75012 MASK BIT6 006169,000637: 06,2475 65001 AD BIT15 # TO INDICATE CHANGE IN DSPTAB +11D. 006170,000638: 06,2476 57036 XCH DSPTAB +11D 006171,000639: 06,2477 72164 MASK OCT37737 006172,000640: 06,2500 27036 ADS DSPTAB +11D 006173,000641: 06,2501 15333 TCF GLOCKOK 006174,000642: 006175,000643: 06,2502 02750 GLAMPTST TC LAMPTEST # TURN OFF UNLESS LAMP TEST IN PROGRESS. 006176,000644: 06,2503 15333 TCF GLOCKOK 006177,000645: 06,2504 12473 TCF GLINVERT 006178,000646: 006179,000647: 06,2505 63434 -70DEGS DEC -.38888 # -70 DEGREES SCALED IN HALF-REVOLUTIONS. 006180,000648: 06,2506 75252 -15DEGS DEC -.08333 006181,000649: 006182,000650: # Page 149 006183,000651: # PROGRAM NAME: TLIM. 006184,000652: 006185,000653: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MAINTAINS THE TEMP LAMP (BIT 4 OF CHANNEL 11) ON THE DSKY TO AGREE WITH 006186,000654: # THE TEMP SIGNAL FROM THE ISS (BIT 15 OF CHANNEL 30). HOWEVER, THE LIGHT WILL NOT BE TURNED OFF IF A LAMP TEST 006187,000655: # IS IN PROGRESS. 006188,000656: 006189,000657: # CALLING SEQUENCE: CALLED BY IMUMON ON A CHANGE OF BIT 15 OF CHANNEL 30. 006190,000658: 006191,000659: # JOBS OR TASKS INITIATED: NONE. 006192,000660: 006193,000661: # SUBROUTINES CALLED: LAMPTEST. 006194,000662: 006195,000663: # ERASABLE INITIALIZATION: FRESH START AND RESTART TURN THE TEMP LAMP OFF. 006196,000664: 006197,000665: # ALARMS: TEMP LAMP TURNED ON WHEN THE IMU TEMP GOES OUT OF LIMITS. 006198,000666: 006199,000667: # EXIT: NXTIFAIL. 006200,000668: 006201,000669: # OUTPUT: SERVICE OF TEMP LAMP. IN A, EXCEPT FOR TLIM. 006202,000670: 006203,000671: 06,2507 74777 TLIM MASK POSMAX # REMOVE BIT FROM WORD OF CHANGES AND SET 006204,000672: 06,2510 54071 TS RUPTREG2 # DSKY TEMP LAMP ACCORDINGLY. 006205,000673: 006206,000674: 06,2511 11320 CCS IMODES30 006207,000675: 06,2512 12520 TCF TEMPOK 006208,000676: 06,2513 12520 TCF TEMPOK 006209,000677: 006210,000678: 06,2514 35014 CAF BIT4 # TURN ON LAMP. 006211,000679: 06,2515 00006 EXTEND 006212,000680: 06,2516 05011 WOR DSALMOUT 006213,000681: 06,2517 12227 TCF NXTIFAIL 006214,000682: 006215,000683: 06,2520 02750 TEMPOK TC LAMPTEST # IF TEMP NOW OK, DON'T TURN OFF LAMP IF 006216,000684: 06,2521 12227 TCF NXTIFAIL # LAMP TEST IN PROGRESS. 006217,000685: 006218,000686: 06,2522 45014 CS BIT4 006219,000687: 06,2523 00006 EXTEND 006220,000688: 06,2524 03011 WAND DSALMOUT # TURN OFF LAMP 006221,000689: 06,2525 12227 TCF NXTIFAIL 006222,000690: 006223,000691: # Page 150 006224,000692: # PROGRAM NAME: ITURNON. 006225,000693: 006226,000694: # FUNCTIONAL DESCRIPTION: THIS PROGRAM IS CALLED BY IMUMON WHEN A CHANGE OF BIT 14 OF CHANNEL 30 (ISS TURN-ON 006227,000695: # REQUEST) IS DETECTED. UPON ENTRY, ITURNON CHECKS IF A TURN-ON DELAY SEQUENCE HAS FAILED, AND IF SO, IT EXITS. 006228,000696: # IF NOT, IT CHECKS WHETHER THE TURN-ON REQUEST CHANGE IS TO ON OR OFF. IF ON, IT SETS BIT 7 OF IMODES30 TO 1 SO 006229,000697: # THAT TNONTEST WILL INITIATE THE ISS INITIALIZATION SEQUENCE. IF OFF, THE TURN-ON DELAY SIGNAL, CHANNEL 12 BIT 006230,000698: # 15, IS CHECKED AND IF IT IS ON, ITURNON EXITS. IF THE DELAY SIGNAL IS OFF, PROGRAM ALARM 00207 IS ISSUED, BIT 2 006231,000699: # OF IMODES30 IS SET TO 1 AND THE PROGRAM EXITS. 006232,000700: 006233,000701: # THE SETTING OF BIT 2 OF IMODES30 (ISS DELAY SEQUENCE FAIL) INHIBITS THIS ROUTINE AND IMUOP FROM 006234,000702: # PROCESSING ANY CHANGES. THIS BIT WILL BE RESET BY THE ENDTNON ROUTINE WHEN THE CURRENT 90 SECOND DELAY PERIOD 006235,000703: # ENDS. 006236,000704: 006237,000705: # CALLING SEQUENCE: FROM IMUMON WHEN ISS TURN-ON REQUEST CHANGES STATE. 006238,000706: 006239,000707: # JOBS OR TASKS INITIATED: NONE. 006240,000708: 006241,000709: # SUBROUTINES CALLED: ALARM, IF THE ISS TURN-ON REQUEST IS NOT PRESENT FOR 90 SECONDS. 006242,000710: 006243,000711: # ERASABLE INITIALIZATION: FRESH START AND RESTART SET BIT 15 OF CHANNEL 12 AND BITS 2 AND 7 OF IMODES30 TO 0, 006244,000712: # AND BIT 14 OF IMODES30 TO 1. 006245,000713: 006246,000714: # ALARMS: PROGRAM ALARM 00207 IS ISSUED IF THE ISS TURN-ON REQUEST SIGNAL IS NOT PRESENT FOR 90 SECONDS. 006247,000715: 006248,000716: # EXIT: NXTIFAIL. 006249,000717: 006250,000718: # OUTPUT: BIT 7 OF IMODES30 TO START ISS INITIALIZATION, OR BIT 2 OF IMODES30 AND PROGRAM ALARM 00207 TO INDICATE 006251,000719: # A FAILED TURN-ON SEQUENCE. 006252,000720: 006253,000721: 06,2526 35016 ITURNON CAF BIT2 # IF DELAY REQUEST HAS GONE OFF 006254,000722: 06,2527 71320 MASK IMODES30 # PREMATURELY, DO NOT PROCESS ANY CHANGES 006255,000723: 06,2530 10000 CCS A # UNTIL THE CURRENT 90 SEC WAIT EXPIRES. 006256,000724: 06,2531 12227 TCF NXTIFAIL 006257,000725: 006258,000726: 06,2532 35002 CAF BIT14 # SEE IF JUST ON OR OFF. 006259,000727: 06,2533 71320 MASK IMODES30 006260,000728: 06,2534 00006 EXTEND 006261,000729: 06,2535 12551 BZF ITURNON2 # IF JUST ON. 006262,000730: 006263,000731: 06,2536 35001 CAF BIT15 006264,000732: 06,2537 00006 EXTEND # SEE IF DELAY PRESENT DISCRETE HAS BEEN 006265,000733: 06,2540 02012 RAND CHAN12 # SENT. IF SO, ACTION COMPLETE 006266,000734: 06,2541 00006 EXTEND 006267,000735: 06,2542 12544 BZF +2 006268,000736: 06,2543 12227 TCF NXTIFAIL 006269,000737: 006270,000738: 06,2544 35016 CAF BIT2 # IF NOT, SET BIT TO INDICATE REQUEST NOT 006271,000739: 06,2545 27320 ADS IMODES30 # PRESENT FOR FULL DURATION. 006272,000740: 06,2546 05650 TC ALARM 006273,000741: 06,2547 00207 OCT 207 006274,000742: 06,2550 12227 TCF NXTIFAIL 006275,000743: 006276,000744: # Page 151 006277,000745: 06,2551 41320 ITURNON2 CS IMODES30 # SET BIT7 TO INDICATE WAIT OF 1 SAMPLE 006278,000746: 06,2552 75011 MASK BIT7 006279,000747: 06,2553 27320 ADS IMODES30 006280,000748: 06,2554 12227 TCF NXTIFAIL 006281,000749: 006282,000750: # Page 152 006283,000751: # PROGRAM NAME: IMUCAGE. 006284,000752: 006285,000753: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES OF THE IMUCAGE INBIT, CHANNEL 30 BITS 11. IF THE BIT 006286,000754: # CHANGES TO 0 (CAGE BUTTON PRESSED), THE ISS IS CAGED (ICDU ZERO + COARSE ALIGN + NO ATT LAMP) UNTIL THE 006287,000755: # ASTRONAUT SELECTS ANOTHER PROGRAM TO ALIGN THE ISS. ANY PULSE TRAINS TO THE ICDU'S AND GYRO'S ARE TERMINATED, 006288,000756: # THE ASSOCIATE OUTCOUNTERS ARE ZEROED AND THE GYRO'S ARE DE-SELECTED. NO ACTION OCCURS WHEN THE BUTTON IS 006289,000757: # RELEASED (INBIT CHANGES TO 1). 006290,000758: 006291,000759: # CALLING SEQUENCE: BY IMUMON WHEN IMU CAGE BIT CHANGES. 006292,000760: 006293,000761: # JOBS OR TASKS INITIATED: NONE. 006294,000762: 006295,000763: # SUBROUTINES CALLED: CAGESUB. 006296,000764: 006297,000765: # ERASABLE INITIALZATION: FRESH START AND RESTART SET BIT 11 OF IMODES30 TO 1. 006298,000766: 006299,000767: # ALARMS: NONE. 006300,000768: 006301,000769: # EXIT: NXTIFAIL. 006302,000770: 006303,000771: # OUTPUT: ISS CAGED, COUNTERS ZEROED, PULSE TRAINS TERMINATED AND NO ATT LAMP LIT. 006304,000772: 006305,000773: 06,2555 10000 IMUCAGE CCS A # NO ACTION IF GOING OFF. 006306,000774: 06,2556 12354 TCF ISSZERO 006307,000775: 06,2557 42762 CS OCT77000 # TERMINATE ICDU, OPTICS, GYRO PULSE TRAINS 006308,000776: 06,2560 00006 EXTEND 006309,000777: 06,2561 03014 WAND CHAN14 006310,000778: 006311,000779: 06,2562 42756 CS OCT272 # KNOCK DOWN TVC ENABLE, IMU ERROR COUNTER 006312,000780: 06,2563 00006 EXTEND # ENABLE, ZERO ICDU, COARSE ALIGN 006313,000781: 06,2564 03012 WAND CHAN12 # ENABLE, OPTICS ERR CNTR ENABLE 006314,000782: 006315,000783: 06,2565 45003 CS BIT13 # TURN OFF ENGINE 006316,000784: 06,2566 00006 EXTEND 006317,000785: 06,2567 03011 WAND DSALMOUT 006318,000786: 006319,000787: 06,2570 02725 TC CAGESUB1 006320,000788: 006321,000789: 06,2571 04740 TC IBNKCALL # KNOCK DOWN TRACK, REFSMMAT, DRIFT FLAGS 006322,000790: 06,2572 17060 CADR RNDREFDR 006323,000791: 006324,000792: 06,2573 45021 CS ZERO # ZERO COMMAND OUT-COUNTERS 006325,000793: 06,2574 54050 TS CDUXCMD 006326,000794: 06,2575 54051 TS CDUYCMD 006327,000795: 06,2576 54052 TS CDUZCMD 006328,000796: 06,2577 54047 TS GYROCMD 006329,000797: 006330,000798: 06,2600 42761 CS OCT740 # HAVING WAITED AT LEAST 27 MCT FROM 006331,000799: 06,2601 00006 EXTEND # GYRO PULSE TRAIN TERMINATION, WE CAN 006332,000800: 06,2602 03014 WAND CHAN14 # DE-SELECT THE GYROS. 006333,000801: # Page 153 006334,000802: 06,2603 12227 TCF NXTIFAIL 006335,000803: 006336,000804: # Page 154 006337,000805: # PROGRAM NAME: IMUOP. 006338,000806: 006339,000807: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES IN THE ISS OPERATE DISCRETE, BIT 9 OF CHANNEL 30. 006340,000808: # IF THE INBIT CHANGES TO 0, INDICATING ISS ON, IMUOP GENERALLY SETS BIT 7 OF IMODES30 TO 1 TO REQUEST ISS 006341,000809: # INITIALIZATION VIA TNONTEST. AN EXCEPTION IS DURING A FAILED ISS DELAY DURING WHICH BIT 2 OF IMODES30 IS SET 006342,000810: # TO 1 AND NO FURTHER INITIALIZATION IS REQUIRED. WHEN THE INBIT CHANGES TO 1, INDICATING ISS OFF, IMUSEFLG IS 006343,000811: # TESTED TO SEE IF ANY PROGRAM WAS USING THE ISS. IF SO, PROGRAM ALARM 00214 IS ISSUED. 006344,000812: 006345,000813: # CALLING SEQUENCE: BY IMUMON WHEN BIT 9 OF CHANNEL 30 CHANGES. 006346,000814: 006347,000815: # JOBS OR TASKS INITIATED: NONE. 006348,000816: 006349,000817: # SUBROUTINES CALLED: ALARM, IF ISS IS TURNED OFF WHILE IN USE. 006350,000818: 006351,000819: # ERASABLE INITIALIZATION: ON FRESH START AND RESTART, BIT 9 OF IMODES30 IS SET TO 1 EXCEPT WHEN THE GIMBAL LOCK 006352,000820: # LAMP IS ON, IN WHICH CASE IT IS SET TO 0. THIS PREVENTS ICDU ZERO BY TNONTEST WITH THE ISS IN GIMBAL LOCK. 006353,000821: 006354,000822: # ALARMS: PROGRAM ALARM 00214 IF THE ISS IS TURNED OFF WHILE IN USE. 006355,000823: 006356,000824: # EXIT: NXTIFAIL. 006357,000825: 006358,000826: # OUTPUT: ISS INITIALIZATION REQUEST (IMODES30 BIT 7) OR PROGRAM ALARM 00214. 006359,000827: 006360,000828: 06,2604 00006 IMUOP EXTEND # IF OPERATE JUST ON, WAIT 1 SAMPLE. 006361,000829: 06,2605 12625 BZF IMUOP2 006362,000830: 006363,000831: 06,2606 41321 CS IMODES33 # DISABLE DAP 006364,000832: 06,2607 75012 MASK BIT6 006365,000833: 06,2610 27321 ADS IMODES33 006366,000834: 006367,000835: 06,2611 04740 TC IBNKCALL # KNOCK DOWN TRACK, REFSMMAT, DRIFT FLAGS 006368,000836: 06,2612 17060 CADR RNDREFDR 006369,000837: 006370,000838: 06,2613 42757 CS BITS7&8 # KNOCK DOWN RENDEZVOUS, IMUUSE FLAGS 006371,000839: 06,2614 70074 MASK STATE 006372,000840: 06,2615 56074 XCH STATE # IF GOING OFF, ALARM IF PROG USING IMU. 006373,000841: 06,2616 40000 COM 006374,000842: 06,2617 75010 MASK IMUSEFLG 006375,000843: 06,2620 10000 CCS A 006376,000844: 06,2621 12227 TCF NXTIFAIL 006377,000845: 006378,000846: 06,2622 05650 TC ALARM 006379,000847: 06,2623 00214 OCT 214 006380,000848: 06,2624 12227 TCF NXTIFAIL 006381,000849: 006382,000850: 06,2625 35016 IMUOP2 CAF BIT2 # SEE IF FAILED ISS TURN-ON SEQ IN PROG. 006383,000851: 06,2626 71320 MASK IMODES30 006384,000852: 06,2627 10000 CCS A 006385,000853: 06,2630 12227 TCF NXTIFAIL # IF SO, DON'T PROCESS UNTIL PRESENT 90 006386,000854: 06,2631 12551 TCF ITURNON2 # SECONDS EXPIRES 006387,000855: 006388,000856: # Page 155 006389,000857: # PROGRAM NAME: PIPFAIL 006390,000858: 006391,000859: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES OF BIT 13 OF CHANNEL 33, PIPA FAIL. IT SETS BIT 10 OF 006392,000860: # IMODES30 TO AGREE. IT CALLS SETISSW IN CASE A PIPA FAIL NECESSITATES AN ISS WARNING. IF NOT, I.E., IMODES30 006393,000861: # BIT 1 = 1, AND A PIPA FAIL IS PRESENT AND THE ISS NOT BEING INITIALIZED, PROGRAM ALARM 0212 IS ISSUED. 006394,000862: 006395,000863: # CALLING SEQUENCE: BY C33TEST ON CHANGES OF CHANNEL 33 BIT 13. 006396,000864: 006397,000865: # JOBS OR TASKS INITIATED: NONE. 006398,000866: 006399,000867: # SUBROUTINES CALLED: 1) SETISSW, AND 2) ALARM (SEE FUNCITONAL DESCRIPTION). 006400,000868: 006401,000869: # ERASABLE INITIALIZATION: SEE IMUMON FOR INITIALIZATION OF IMODES30. THE RELEVANT BITS ARE 5, 7, 8, 9, AND 10. 006402,000870: 006403,000871: # ALARMS: PROGRAM ALARM 00212 IF PIPA FAIL IS PRESENT BUT NEITHER ISS WARNING IS TO BE ISSUED NOR THE ISS IS 006404,000872: # BEING INITIALIZED. 006405,000873: 006406,000874: # EXIT: NXTFL33. 006407,000875: 006408,000876: # OUTPUT: PROGRAM ALARM 00212 AND ISS WARNING MAINTENANCE. 006409,000877: 006410,000878: 06,2632 10000 PIPFAIL CCS A # SET BIT10 IN IMODES30 SO ALL ISS WARNING 006411,000879: 06,2633 35006 CAF BIT10 # INFO IS IN ONE REGISTER. 006412,000880: 06,2634 57320 XCH IMODES30 006413,000881: 06,2635 72763 MASK -BIT10 006414,000882: 06,2636 27320 ADS IMODES30 006415,000883: 006416,000884: 06,2637 02665 TC SETISSW 006417,000885: 006418,000886: 06,2640 41320 CS IMODES30 # IF PIP FAIL DOESN'T LIGHT ISS WARNING, DO 006419,000887: 06,2641 75017 MASK BIT1 # A PROGRAM ALARM IF IMU OPERATING BUT NOT 006420,000888: 06,2642 10000 CCS A # CAGED OR BEING TURNED ON. 006421,000889: 06,2643 12425 TCF NXTFL33 006422,000890: 006423,000891: 06,2644 31320 CA IMODES30 006424,000892: 06,2645 72760 MASK OCT1720 006425,000893: 06,2646 10000 CCS A 006426,000894: 06,2647 12425 TCF NXTFL33 # ABOVE CONDITION NOT MET. 006427,000895: 006428,000896: 06,2650 05650 TC ALARM 006429,000897: 06,2651 00212 OCT 212 006430,000898: 06,2652 12425 TCF NXTFL33 006431,000899: 006432,000900: # Page 156 006433,000901: # PROGRAM NAMES: DNTMFAST, UPTMFAST 006434,000902: 006435,000903: # FUNCTIONAL DESCRIPTION: THESE PROGRAMS PROCESS CHANGES OF BITS 12 AND 11 OF CHANNEL 33. IF A BIT CHANGES TO A 006436,000904: # 0, A PROGRAM ALARM IS ISSUED. THE ALARMS ARE: 006437,000905: 006438,000906: # BIT ALARM CAUSE 006439,000907: # --- ----- ----- 006440,000908: # 12 01105 DOWNLINK TOO FAST 006441,000909: # 11 01106 UPLINK TOO FAST 006442,000910: 006443,000911: # CALLING SEQUENCE: BY C33TEST ON A BIT CHANGE. 006444,000912: 006445,000913: # SUBROUTINES CALLED: ALARM, IF A BIT CHANGES TO A 0. 006446,000914: 006447,000915: # ERASABLE INITIALIZATION: FRESH START OR RESTART, BITS 12 AND 11 OF IMODES33 ARE SET TO 1. 006448,000916: 006449,000917: # ALARMS: SEE FUNCTIONAL DESCRIPTION. 006450,000918: 006451,000919: # EXIT: NXTFL33. 006452,000920: 006453,000921: # OUTPUT: PROGRAM ALARM ON A BIT CHANGE TO 0. 006454,000922: 006455,000923: 06,2653 10000 DNTMFAST CCS A # DO PROG ALARM IF TM TOO FAST. 006456,000924: 06,2654 12425 TCF NXTFL33 006457,000925: 006458,000926: 06,2655 05650 TC ALARM 006459,000927: 06,2656 01105 OCT 1105 006460,000928: 06,2657 12425 TCF NXTFL33 006461,000929: 006462,000930: 06,2660 10000 UPTMFAST CCS A # SAME AS DNLINK TOO FAST WITH DIFFERENT 006463,000931: 06,2661 12425 TCF NXTFL33 # ALARM CODE. 006464,000932: 006465,000933: 06,2662 05650 TC ALARM 006466,000934: 06,2663 01106 OCT 1106 006467,000935: 06,2664 12425 TCF NXTFL33 006468,000936: 006469,000937: # Page 157 006470,000938: # PROGRAM NAME: SETISSW 006471,000939: 006472,000940: # FUNCTIONAL DESCRIPTION: THIS PROGRAM TURNS THE ISS WARNING LAMP ON AND OFF (CHANNEL 11 BIT 1 = 1 FOR ON, 006473,000941: # 0 FOR OFF) DEPENDING ON THE STATUS OF IMODES30 BITS 13 (IMU FAIL) AND 4 (INHIBIT IMU FAIL), 12 (ICDU FAIL) AND 006474,000942: # 3 (INHIBIT ICDU FAIL), AND 10 (PIPA FAIL) AND 1 (INHIBIT PIPA FAIL). THE LAMP IS LEFT ON IF A LAMP TEST IS IN 006475,000943: # PROGRESS. 006476,000944: 006477,000945: # CALLING SEQUENCE: CALLED BY IMUMON ON CHANGES TO IMU FAIL AND ICDU FAIL. CALLED BY IFAILOK AND PFAILOK UPON 006478,000946: # REMOVAL OF THE FAIL INHIBITS. CALLED BY PIPFAIL WHEN THE PIPA FAIL DISCRETE CHANGES. IT IS CALLED BY PIPUSE 006479,000947: # SINCE THE PIPA FAIL PROGRAM ALARM MAY NECESSITATE AN ISS WARNING, AND LIKEWISE BY PIPFREE WHEN THE ALARM DEPARTS 006480,000948: # AND IT IS CALLED BY IMUZERO3 AND ISSUP AFTER THE FAIL INHIBITS HAVE BEEN REMOVED. 006481,000949: 006482,000950: # JOBS OR TASKS INITIATED: NONE. 006483,000951: 006484,000952: # SUBROUTINES CALLED: NONE. 006485,000953: 006486,000954: # ERASABLE INITIALIZATION: 006487,000955: 006488,000956: # 1) IMODES30 -- SEE IMUMON. 006489,000957: # 2) IMODES33 BIT 1 = 0 (LAMP TEST NOT IN PROGRESS). 006490,000958: 006491,000959: # ALARMS: ISS WARNING. 006492,000960: 006493,000961: # EXIT: VIA Q. 006494,000962: 006495,000963: # OUTPUT: ISS WARNING LAMP SET PROPERLY. 006496,000964: 006497,000965: 06,2665 35025 SETISSW CAF OCT15 # SET ISS WARNING USING THE FAIL BITS IN 006498,000966: 06,2666 71320 MASK IMODES30 # BITS 13, 12, AND 10 OF IMODES30 AND THE 006499,000967: 06,2667 00006 EXTEND # FAILURE INHIBIT BITS IN POSITIONS 006500,000968: 06,2670 75006 MP BIT10 # 4, 3, AND 1. 006501,000969: 06,2671 31320 CA IMODES30 006502,000970: 06,2672 00006 EXTEND 006503,000971: 06,2673 04001 ROR LCHAN # 0 INDICATES FAILURE 006504,000972: 06,2674 40000 COM 006505,000973: 06,2675 75067 MASK OCT15000 006506,000974: 06,2676 10000 CCS A 006507,000975: 06,2677 12710 TCF ISSWON # FAILURE. 006508,000976: 006509,000977: 06,2700 35017 ISSWOFF CAF BIT1 # DON'T TURN OFF ISS WARNING IF LAMP TEST 006510,000978: 06,2701 71321 MASK IMODES33 # IN PROGRESS. 006511,000979: 06,2702 10000 CCS A 006512,000980: 06,2703 00002 TC Q 006513,000981: 006514,000982: 06,2704 45017 CS BIT1 006515,000983: 06,2705 00006 EXTEND 006516,000984: 06,2706 03011 WAND DSALMOUT # TURN OFF ISS WARNING. 006517,000985: 06,2707 00002 TC Q 006518,000986: 006519,000987: 06,2710 00006 ISSWON EXTEND 006520,000988: # Page 158 006521,000989: 06,2711 22066 QXCH ITEMP6 006522,000990: 06,2712 05764 TC VARALARM # TELL EVERYONE WHAT CAUSED THE ISS WARNING 006523,000991: 06,2713 35017 CAF BIT1 006524,000992: 06,2714 00006 EXTEND 006525,000993: 06,2715 05011 WOR DSALMOUT # TURN ON ISS WARNING 006526,000994: 06,2716 00066 TC ITEMP6 006527,000995: 006528,000996: 06,2717 47703 CAGESUB CS BIT15+6 # SET OUTBITS + INTERNAL FLAGS FOR 006529,000997: 06,2720 00006 EXTEND # SYSTEM TURN-ON OR CAGE. DISABLE THE 006530,000998: 06,2721 03012 WAND CHAN12 # ERROR COUNTER AND REMOVE THE IMU DELAY COMP. 006531,000999: 06,2722 35027 CAF BITS4&5 # SEND ZERO AND COARSE. 006532,001000: 06,2723 00006 EXTEND 006533,001001: 06,2724 05012 WOR CHAN12 006534,001002: 006535,001003: 06,2725 41036 CAGESUB1 CS DSPTAB +11D # TURN ON NO ATT LAMP 006536,001004: 06,2726 72753 MASK OC40010 006537,001005: 06,2727 27036 ADS DSPTAB +11D 006538,001006: 006539,001007: 06,2730 41320 CAGESUB2 CS IMODES30 # SET FLAGS TO INDICATE CAGING OR TURN-ON 006540,001008: 06,2731 72755 MASK OCT75 # AND INHIBIT ALL ISS WARNING INFO 006541,001009: 06,2732 27320 ADS IMODES30 006542,001010: 006543,001011: 06,2733 41321 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES 006544,001012: 06,2734 75012 MASK BIT6 006545,001013: 06,2735 27321 ADS IMODES33 006546,001014: 006547,001015: 06,2736 00002 TC Q 006548,001016: 006549,001017: 06,2737 06,2665 IMUFAIL EQUALS SETISSW 006550,001018: 06,2737 06,2665 ICDUFAIL EQUALS SETISSW 006551,001019: 006552,001020: # Page 159 006553,001021: # JUMP TABLES AND CONSTANTS. 006554,001022: 006555,001023: 06,2737 12526 IFAILJMP TCF ITURNON # CHANNEL 30 DISPATCH. 006556,001024: 06,2740 12665 TCF IMUFAIL 006557,001025: 06,2741 12665 TCF ICDUFAIL 006558,001026: 06,2742 12555 TCF IMUCAGE 006559,001027: 06,2743 76400 30RDMSK OCT 76400 # (BIT 10 NOT SAMPLED HERE). 006560,001028: 06,2744 12604 TCF IMUOP 006561,001029: 006562,001030: 06,2745 12632 C33JMP TCF PIPFAIL # CHANNEL 33 DISPATCH. 006563,001031: 06,2746 12653 TCF DNTMFAST 006564,001032: 06,2747 12660 TCF UPTMFAST 006565,001033: 006566,001034: # SUBROUTINE TO SKIP IF LAMP TEST NOT IN PROGRESS. 006567,001035: 006568,001036: 06,2750 41321 LAMPTEST CS IMODES33 # BIT 1 OF IMODES33 = 1 IF LAMP TEST IN 006569,001037: 06,2751 75017 MASK BIT1 # PROGRESS. 006570,001038: 06,2752 13065 TCF ZOPFIN3 006571,001039: 006572,001040: 06,2753 5070 33RDMSK EQUALS PRIO16 006573,001041: 06,2753 40010 OC40010 OCT 40010 006574,001042: 06,2754 00054 OCT54 OCT 54 006575,001043: 06,2755 00075 OCT75 OCT 75 006576,001044: 06,2756 00272 OCT272 OCT 00272 006577,001045: 06,2757 00300 BITS7&8 OCT 300 006578,001046: 06,2760 01720 OCT1720 OCT 1720 006579,001047: 06,2761 00740 OCT740 OCT 00740 006580,001048: 06,2762 5067 OCT15000 EQUALS PRIO15 006581,001049: 06,2762 77000 OCT77000 OCT 77000 006582,001050: 06,2763 76777 -BIT10 OCT -1000 006583,001051: 006584,001052: 06,2764 21450 90SECS DEC 9000 B-14 006585,001053: 06,2765 5771 120MS = OCT14 # (DEC12) 006586,001054: 06,2765 5333 GLOCKOK EQUALS RESUME 006587,001055: 006588,001056: # Page 160 006589,001057: # OPTICS MONITORING AND ZERO ROUTINES 006590,001058: 06,2765 31331 OPTMON CA OPTMODES # MONITOR OPTICS INBITS IN CHAN 30 AND 33 006591,001059: 06,2766 00006 EXTEND 006592,001060: 06,2767 06030 RXOR CHAN30 # LOOK FOR OCDU FAIL BIT CHANGE 006593,001061: 06,2770 75011 MASK BIT7 006594,001062: 06,2771 54070 TS RUPTREG1 # STORE CHANGE BIT 006595,001063: 06,2772 10000 CCS A 006596,001064: 06,2773 03224 TC OCDUFTST # PROCESS OCDUFAIL BIT CHANGE 006597,001065: 006598,001066: 06,2774 11303 33OPTMON CCS OPTIND # BYPASS IF TVC TAKEOVER 006599,001067: 06,2775 13001 TCF +4 006600,001068: 06,2776 13001 TCF +3 006601,001069: 06,2777 13001 TCF +2 006602,001070: 06,3000 15333 TCF RESUME 006603,001071: 006604,001072: 06,3001 31331 CA OPTMODES # LOOK FOR OPTICS MODE SWITCH CHANGE 006605,001073: 06,3002 00006 EXTEND 006606,001074: 06,3003 06033 RXOR CHAN33 006607,001075: 06,3004 75027 MASK OCTHIRTY 006608,001076: 06,3005 26070 ADS RUPTREG1 # STORE INBIT CHANGES 006609,001077: 06,3006 23331 LXCH OPTMODES 006610,001078: 06,3007 00006 EXTEND 006611,001079: 06,3010 06001 RXOR LCHAN 006612,001080: 06,3011 55331 TS OPTMODES # UPDATE OPTMODES TO SHOW BIT CHANGES 006613,001081: 006614,001082: 06,3012 40000 COM # SAMPLE CURRENT SWITCH SETTING 006615,001083: 06,3013 75027 MASK OCTHIRTY 006616,001084: 06,3014 00006 EXTEND 006617,001085: 06,3015 13022 BZF SETSAMP # MANUAL-SET ZERO IN SWSAMPLE 006618,001086: 006619,001087: 06,3016 75013 MASK BIT5 # SEE IF CSC 006620,001088: 06,3017 10000 CCS A 006621,001089: 06,3020 03022 TC +2 # CSC-SET SWSAMPLE POS 006622,001090: 06,3021 37716 CAF NEGONE # ZOPTICS-SET SWSAMPLE (-1) 006623,001091: 06,3022 55314 SETSAMP TS SWSAMPLE # CURRENT OPTICS SWITCH SETTING 006624,001092: 006625,001093: 06,3023 11315 PROCESSW CCS DESOPMOD # BRANCH ON PREVIOUS SETTING 006626,001094: 06,3024 03125 TC CSCDES # CSC 006627,001095: 06,3025 03077 TC MANUDES # MANUAL 006628,001096: 06,3026 03027 TC ZOPTDES # ZERO OPTICS 006629,001097: # Page 161 006630,001098: 06,3027 11314 ZOPTDES CCS SWSAMPLE # IS SWITCH STILL AT ZOPTICS 006631,001099: 06,3030 03047 TC ZTOCSC # NOW AT CSC 006632,001100: 06,3031 03037 TC ZTOMAN # MANUAL 006633,001101: 06,3032 03057 TC ZOPFIN1 # ZOPTICS-SEE IF ZOPT PROCESSING // Should be TC ZOPFINI 006634,001102: 06,3033 03154 TC SETDESMD # ZOPT NOT PROCESSING-NO ACTION 006635,001103: 006636,001104: 06,3034 11317 CCS ZOPTCNT # ZOPT PROCESSING-CHECK COUNTER 006637,001105: 06,3035 03153 TC SETCNT # 32 SAMPLE NOT FINISHED-SET COUNTER 006638,001106: 06,3036 03157 TC SETZOEND # 32 SAMPLE WAIT COMPLETED-SET UP ZOP END 006639,001107: 006640,001108: 06,3037 03057 ZTOMAN TC ZOPFIN1 # ZOP TO MANUAL-IS ZOPT DONE // Should be TC ZOPFINI 006641,001109: 06,3040 03154 TC SETDESMD # YES-NORMAL EXIT 006642,001110: 006643,001111: 06,3041 05650 ZOPALARM TC ALARM # ALARM-SWITCHED ALTERED WHILE ZOPTICS 006644,001112: 06,3042 00116 OCT 00116 006645,001113: 06,3043 35024 CAF OCT13 # PROCESSING-SET RETURN OPTION 006646,001114: 06,3044 55316 TS WTOPTION 006647,001115: 006648,001116: 06,3045 03070 TC CANZOPT # CANCEL ZOPT 006649,001117: 006650,001118: 06,3046 03154 TC SETDESMD 006651,001119: 006652,001120: 06,3047 03057 ZTOCSC TC ZOPFIN1 # SEE IF ZOPT PROCESSING // Should be TC ZOPFINI 006653,001121: 06,3050 03115 TC MANTOCSC +3 # NO-CHECK RETURN TO COARS OPT 006654,001122: 06,3051 05650 TC ALARM # ZOPT PROCESSING-ALARM 006655,001123: 06,3052 00116 OCT 00116 006656,001124: 06,3053 03070 TC CANZOPT # CANCEL ZOPT 006657,001125: 06,3054 03112 TC MANTOCSC # ZERO CNT-LOOK FOR COARS OPT RETURN 006658,001126: 006659,001127: 06,3055 35007 COARSLOK CAF BIT9 # IF COARS OPT SINCE FSTART GO TO L+2 006660,001128: 06,3056 13064 TCF ZOPFIN2 # IF NOT GO TO L+1 006661,001129: 06,3057 35017 ZOPFIN1 CAF BIT1 # SEE IF END ZOPT TASK WORKING // Label should be ZOPFINI 006662,001130: 06,3060 71331 MASK OPTMODES 006663,001131: 06,3061 10000 CCS A 006664,001132: 06,3062 05333 TC RESUME # ZOPT TASK WORKING-WAIT ONE SAMPLE PERIOD 006665,001133: 006666,001134: 06,3063 35015 CAF BIT3 # TEST IF ZOPTICS PROCESSING 006667,001135: 06,3064 71331 ZOPFIN2 MASK OPTMODES # RETURNS TO L+1 PROCESSING AND 006668,001136: 06,3065 10000 ZOPFIN3 CCS A 006669,001137: 06,3066 24002 INCR Q # L+2 IF NOT 006670,001138: 06,3067 00002 TC Q 006671,001139: 006672,001140: 06,3070 46211 CANZOPT CS SIX # CANCEL ZERO OPTICS 006673,001141: 06,3071 71331 MASK OPTMODES # ZERO ZOPT PROCESSING BIT-ENABLE OCDUFAIL 006674,001142: 06,3072 55331 TS OPTMODES 006675,001143: 06,3073 45017 CS BIT1 # MAKE SURE ZERO OCDU IS OFF 006676,001144: 06,3074 00006 EXTEND 006677,001145: 06,3075 03012 WAND CHAN12 006678,001146: 06,3076 00002 TC Q 006679,001147: 006680,001148: # Page 162 006681,001149: 06,3077 11314 MANUDES CCS SWSAMPLE # SEE IF SWITCH STILL IN MANUAL MODE 006682,001150: 06,3100 03112 TC MANTOCSC # NOW AT CSC 006683,001151: 06,3101 03107 TC MANTOMAN # STILL MANUAL 006684,001152: 06,3102 11316 CCS WTOPTION # ZOPTICS-LOOK AT ZOPTICS RETURN OPTION 006685,001153: 06,3103 03105 TC +2 # 5 SEC RETURN GOOD-CONTINUE ZOPTICS 006686,001154: 06,3104 03151 TC OPTZERO # ZOPTICS MUST START ANEW 006687,001155: 006688,001156: 06,3105 03216 TC INITZOPT # SHOW ZERO OPTICS PROCESSING 006689,001157: 06,3106 03154 TC SETDESMD # NORMAL EXIT 006690,001158: 006691,001159: 06,3107 11316 MANTOMAN CCS WTOPTION # DECREMENT RETURN OPTION TIME 006692,001160: 06,3110 55316 TS WTOPTION 006693,001161: 06,3111 03154 TC SETDESMD 006694,001162: 006695,001163: 06,3112 35021 MANTOCSC CAF ZERO # CANCEL ZOPT RETURN OPTION IF SET 006696,001164: 06,3113 55316 TS WTOPTION 006697,001165: 06,3114 55317 TS ZOPTCNT 006698,001166: 006699,001167: 06,3115 03055 TC COARSLOK # CHECK FOR COARS OPT RETURN 006700,001168: 06,3116 03154 TC SETDESMD # NO COARS TASK-NO ACTION 006701,001169: 006702,001170: 06,3117 35017 CAF ONE # SET COARS OPT WORKING 006703,001171: 06,3120 55303 TS OPTIND 006704,001172: 06,3121 35016 CAF BIT2 # ENABLE OPTICS CDU ERROR CNTS 006705,001173: 06,3122 00006 EXTEND 006706,001174: 06,3123 05012 WOR CHAN12 006707,001175: 006708,001176: 06,3124 03154 TC SETDESMD 006709,001177: 006710,001178: 06,3125 11314 CSCDES CCS SWSAMPLE # SEE IF SWITCH STILL AT CSC 006711,001179: 06,3126 03154 TC SETDESMD # STILL AT CSC 006712,001180: 06,3127 03133 TC CSCTOMAN # MANUAL 006713,001181: 06,3130 35012 CSCTOZOP CAF OCT40 # ZOPTICS-INITIALIZE FOR ZOPT 006714,001182: 06,3131 55317 TS ZOPTCNT 006715,001183: 06,3132 03216 TC INITZOPT 006716,001184: 006717,001185: 06,3133 11303 CSCTOMAN CCS OPTIND # SEE IF COARS WORKING 006718,001186: 06,3134 03140 TC CANCOARS # COARS WORKING-SWITCH NOT CSC-KILL COARS 006719,001187: 06,3135 03140 TC CANCOARS 006720,001188: 06,3136 03137 TC +1 # NO COARS-NORMAL EXIT 006721,001189: 06,3137 03154 TC SETDESMD 006722,001190: # Page 163 006723,001191: 06,3140 37716 CANCOARS CA NEGONE 006724,001192: 06,3141 55303 TS OPTIND # SET OPTIND (-1) TO SHOW NOT WORKING 006725,001193: 06,3142 45016 CS BIT2 # DISABLE OCDU ERR CNTS 006726,001194: 06,3143 00006 EXTEND 006727,001195: 06,3144 03012 WAND CHAN12 006728,001196: 06,3145 41331 CS OPTMODES # SET RETURN-TO-COARS BIT 006729,001197: 06,3146 75007 MASK BIT9 006730,001198: 06,3147 27331 ADS OPTMODES 006731,001199: 006732,001200: 06,3150 03154 TC SETDESMD 006733,001201: 06,3151 03216 OPTZERO TC INITZOPT # INITIALIZE ZERO OPTICS 006734,001202: 006735,001203: 06,3152 35012 CA OCT40 # SET UP 32 SAMPLE WAIT 006736,001204: 06,3153 55317 SETCNT TS ZOPTCNT 006737,001205: 06,3154 31314 SETDESMD CA SWSAMPLE # SET CURRENT SWITCH INDICATION-RESUME 006738,001206: 06,3155 55315 TS DESOPMOD 006739,001207: 06,3156 05333 TC RESUME 006740,001208: 006741,001209: 06,3157 35017 SETZOEND CAF BIT1 # SEND ZERO OPTICS CDU 006742,001210: 06,3160 00006 EXTEND 006743,001211: 06,3161 05012 WOR CHAN12 006744,001212: 06,3162 34112 CA 200MS # HOLD ZERO CDU FOR 200 MS 006745,001213: 06,3163 05245 TC WAITLIST 006746,001214: 06,3164 1331 EBANK= OPTMODES 006747,001215: 06,3164 03172 14062 2CADR ENDZOPT 006748,001216: 006749,001217: 06,3166 41331 CS OPTMODES # SHOW ZOPTICS TASK WORKING 006750,001218: 06,3167 75017 MASK BIT1 006751,001219: 06,3170 27331 ADS OPTMODES 006752,001220: 006753,001221: 06,3171 03154 TC SETDESMD 006754,001222: 006755,001223: 06,3172 03210 ENDZOPT TC ZEROPCDU # ZERO OCDU COUNTERS 006756,001224: 06,3173 45017 CS BIT1 # TURN OFF ZERO OCDU 006757,001225: 06,3174 00006 EXTEND 006758,001226: 06,3175 03012 WAND CHAN12 006759,001227: 06,3176 34112 CAF 200MS # DELAY 200MS FOR CDUS TO RESYNCHRONIZE 006760,001228: 06,3177 05272 TC VARDELAY 006761,001229: 006762,001230: 06,3200 41331 CS OPTMODES # SHOW ZOPTICS SINCE LAST FRESH START 006763,001231: 06,3201 75006 MASK BIT10 # OR RESTART 006764,001232: 06,3202 27331 ADS OPTMODES 006765,001233: 006766,001234: 06,3203 45023 CS SEVEN # ENABLE OCDUFAIL-SHOW OPTICS COMPLETE 006767,001235: 06,3204 71331 MASK OPTMODES 006768,001236: 06,3205 55331 TS OPTMODES 006769,001237: 006770,001238: 06,3206 03224 TC OCDUFTST # CHECK OCDU FAIL BIT AFTER ENABLE. 006771,001239: # Page 164 006772,001240: 06,3207 05324 TC TASKOVER 006773,001241: 006774,001242: 06,3210 35021 ZEROPCDU CAF ZERO 006775,001243: 06,3211 54036 TS CDUS # ZERO IN CDUS, -20 IN CDUT 006776,001244: 06,3212 55307 TS ZONE # INITIALZE SHAFT MONITOR ZONE. 006777,001245: 06,3213 43261 CS 20DEGS 006778,001246: 06,3214 54035 TS CDUT 006779,001247: 06,3215 00002 TC Q 006780,001248: 006781,001249: 06,3216 35021 INITZOPT CAF ZERO # INITIALIZE ZOPTICS-INHIBIT OCDUFAIL 006782,001250: 06,3217 55316 TS WTOPTION # AND SHOW OPTICS PROCESSING 006783,001251: 06,3220 41331 CS OPTMODES # SET ZERO OPTICS PROCESSING 006784,001252: 06,3221 76211 MASK SIX # OPTICS CDU FAIL INHIBITED 006785,001253: 06,3222 27331 ADS OPTMODES 006786,001254: 06,3223 00002 TC Q 006787,001255: 006788,001256: # Page 165 006789,001257: 06,3224 35011 OCDUFTST CAF BIT7 # SEE IF OCDUFAIL ON OR OFF 006790,001258: 06,3225 00006 EXTEND 006791,001259: 06,3226 02030 RAND CHAN30 006792,001260: 06,3227 10000 CCS A 006793,001261: 06,3230 13252 TCF OPFAILOF # OCDUFAIL LIGHT OFF 006794,001262: 006795,001263: 06,3231 35016 CAF BIT2 # OCDUFAIL LIGHT ON UNLESS INHIBITED 006796,001264: 06,3232 71331 MASK OPTMODES 006797,001265: 06,3233 10000 CCS A 006798,001266: 06,3234 00002 TC Q # OCDUFAIL INHIBITED 006799,001267: 006800,001268: 06,3235 35010 OPFAILON CAF BIT8 # ON BIT 006801,001269: 06,3236 61036 AD DSPTAB +11D 006802,001270: 06,3237 75010 MASK BIT8 006803,001271: 06,3240 00006 SETOFF EXTEND 006804,001272: 06,3241 16711 BZF TCQ # NO CHANGE 006805,001273: 006806,001274: 06,3242 54001 TS L 006807,001275: 06,3243 31036 CA DSPTAB +11D 006808,001276: 06,3244 00006 EXTEND 006809,001277: 06,3245 06001 RXOR LCHAN 006810,001278: 06,3246 74777 MASK POSMAX 006811,001279: 06,3247 65001 AD BIT15 # SHOW ACTION WANTED 006812,001280: 06,3250 55036 TS DSPTAB +11D 006813,001281: 06,3251 00002 TC Q 006814,001282: 006815,001283: 06,3252 35017 OPFAILOF CAF BIT1 # DON'T TURN OFF IF LAMP TEST 006816,001284: 06,3253 71321 MASK IMODES33 006817,001285: 06,3254 10000 CCS A 006818,001286: 06,3255 00002 TC Q # LAMP TEST IN PROGRESS 006819,001287: 006820,001288: 06,3256 35010 CAF BIT8 # TURN OFF OCDUFAIL LIGHT 006821,001289: 06,3257 71036 MASK DSPTAB +11D 006822,001290: 06,3260 13240 TCF SETOFF 006823,001291: 006824,001292: 06,3261 5024 OCT13 = ELEVEN 006825,001293: 06,3261 5027 OCTHIRTY EQUALS BITS4&5 006826,001294: 06,3261 16037 20DEGS DEC 7199 B-14 006827,001295: 06,3262 5012 OCT40 EQUALS BIT6 006828,001296: 06,3262 4112 200MS EQUALS OCT24 006829,001297: 006830,001298: # Page 166 006831,001299: # OPTICS CDU DRIVING PROGRAM 006832,001300: 006833,001301: 10,2000 BANK 10 006834,001302: 10,2000 SETLOC OPTDRV 006835,001303: 10,2000 BANK 006836,001304: 10,2000 COUNT* $$/SXT 006837,001305: 006838,001306: # SHAFT STOP MONITOR-ZONE UPDATE 006839,001307: 006840,001308: 10,2000 30036 OPTDRIVE CA CDUS # GRAB OPTIC SHAFT CDU 006841,001309: 10,2001 54001 TS L 006842,001310: 10,2002 10000 CCS A # GET ABS(CDUS) 006843,001311: 10,2003 67707 AD 13,14,15 006844,001312: 10,2004 12006 TCF +2 # ABS(CDUS) - 45 DEG 006845,001313: 10,2005 12003 TCF -2 006846,001314: 10,2006 00006 EXTEND 006847,001315: 10,2007 62016 BZMF OZONE # LESS THAN 45 DEG-SET ZONE 0 006848,001316: 10,2010 31307 CA ZONE # IF ZONE ZERO, CHANGE TO + OR - OTHERWISE 006849,001317: 10,2011 00006 EXTEND # DON'T MESS WITH ZONE 006850,001318: 10,2012 12014 BZF +2 006851,001319: 10,2013 12020 TCF CONTDRVE # JUST CONTINUE 006852,001320: 10,2014 56001 XCH L # GREATER THAN 45 DEG-SET ZONE TO SIGN CDU 006853,001321: 10,2015 12017 TCF OZONE +1 006854,001322: 10,2016 35021 OZONE CAF ZERO # ABS(CDUS) LESS THAN 90 DEG-ZONE ZERO 006855,001323: 10,2017 55307 TS ZONE 006856,001324: 10,2020 COUNT* $$/T4RUPT 006857,001325: 10,2020 11303 CONTDRVE CCS OPTIND 006858,001326: 10,2021 02025 TC +4 # WORK COARS OPTICS 006859,001327: 10,2022 02025 TC +3 # WORK COARS OPTICS 006860,001328: 10,2023 05333 TC RESUME # NO OPT 006861,001329: 10,2024 05333 TC RESUME # NO OPT 006862,001330: 006863,001331: 10,2025 31314 CA SWSAMPLE # SEE IF SWITCH AT CMC 006864,001332: 10,2026 00006 EXTEND 006865,001333: 10,2027 65333 BZMF RESUME # ZERO (-1) MANUAL (+0) 006866,001334: 006867,001335: 10,2030 35006 CAF BIT10 # SEE IF OCDUS ZEROED SINCE LAST FSTART 006868,001336: 10,2031 71331 MASK OPTMODES 006869,001337: 10,2032 10000 CCS A 006870,001338: 10,2033 02036 TC +3 006871,001339: 10,2034 05650 TC ALARM # OPTICS NOT ZEROED 006872,001340: 10,2035 00120 OCT 00120 006873,001341: 006874,001342: 10,2036 35016 CA BIT2 # SEE IF ERR CNTS ENABLED 006875,001343: 10,2037 00006 EXTEND 006876,001344: 10,2040 02012 RAND CHAN12 006877,001345: 10,2041 00006 EXTEND 006878,001346: 10,2042 12175 BZF SETBIT # CNTS NOT ENABLED-DO IT AND RESUME 006879,001347: 006880,001348: 10,2043 35017 CAF ONE # INITIALIZE OPTIND 006881,001349: # Page 167 006882,001350: 10,2044 55303 OPT2 TS OPTIND 006883,001351: 10,2045 00006 EXTEND 006884,001352: 10,2046 12132 BZF TRUNCMD # CHECK TRUNION COMMAND 006885,001353: 006886,001354: 10,2047 51303 GETOPCMD INDEX OPTIND 006887,001355: 10,2050 31160 CA DESOPTT # PICK UP DESIRED OPT ANGLE 006888,001356: 10,2051 00006 EXTEND 006889,001357: 10,2052 51303 INDEX OPTIND 006890,001358: 10,2053 20035 MSU CDUT # GET DIFFERENCE 006891,001359: 10,2054 00006 EXTEND 006892,001360: 10,2055 75003 MP BIT13 006893,001361: 10,2056 56001 XCH L 006894,001362: 10,2057 60000 DOUBLE 006895,001363: 10,2060 54061 TS ITEMP1 006896,001364: 10,2061 12063 TCF +2 # NO OVFL 006897,001365: 006898,001366: 10,2062 26001 ADS L # WITH OVFL 006899,001367: 10,2063 51303 STORCMD INDEX OPTIND 006900,001368: 10,2064 23305 LXCH COMMANDO # STORE COMMAND 006901,001369: 10,2065 11303 CCS OPTIND 006902,001370: 10,2066 12044 TCF OPT2 # GET NEXT COMMAND 006903,001371: 006904,001372: 10,2067 54061 TS ITEMP1 # INITIALIZE SEND INDICATOR TO ZERO 006905,001373: 10,2070 COUNT* $$/SXT 006906,001374: 006907,001375: # SHAFT STOP AVOIDANCE 006908,001376: 006909,001377: 10,2070 10036 CCS CDUS # IF CDUS GREATER THAN + OR - 90 DEG CHECK 006910,001378: 10,2071 65000 AD NEG1/2 # FOR POSSIBLE STOP PROBLEM 006911,001379: 10,2072 12074 TCF +2 006912,001380: 10,2073 12071 TCF -2 006913,001381: 10,2074 00006 EXTEND 006914,001382: 10,2075 62122 BZMF CMDSETUP # CDU LESS THAN 90 DEG, NO PROBLEMS 006915,001383: 006916,001384: 10,2076 31307 CA ZONE 006917,001385: 10,2077 00006 EXTEND 006918,001386: 10,2100 12122 BZF CMDSETUP # ZONE=3, NORMAL COMMAND 006919,001387: 10,2101 75001 MASK BIT15 # GRAB SIGN OF ZONE 006920,001388: 10,2102 54001 TS L 006921,001389: 10,2103 31306 CA COMMANDO +1 006922,001390: 10,2104 75001 MASK BIT15 # GRAB SIGN OF SHAFT COMMAND 006923,001391: 10,2105 00006 EXTEND 006924,001392: 10,2106 06001 RXOR LCHAN 006925,001393: 10,2107 10000 CCS A 006926,001394: 10,2110 12122 TCF CMDSETUP # SIGN ZONE NOT EQUAL TO SIGN COMMAND 006927,001395: 10,2111 11161 CCS DESOPTS # SEE IF DESOPTS BETWEEN -90 AND +90 006928,001396: 10,2112 65000 AD NEG1/2 006929,001397: 10,2113 12115 TCF +2 # ABS(DESOPTS) - 90 DEG 006930,001398: 10,2114 12112 TCF -2 006931,001399: 10,2115 00006 EXTEND 006932,001400: # Page 168 006933,001401: 10,2116 62120 BZMF +2 # DESOPTS IN FIRST OR FOURTH QUAD 006934,001402: 10,2117 12122 TCF CMDSETUP 006935,001403: 10,2120 41306 CS COMMANDO +1 # REVERSE REGULAR COMMAND 006936,001404: 10,2121 55306 TS COMMANDO +1 006937,001405: 006938,001406: 10,2122 COUNT* $$/T4RPT 006939,001407: 006940,001408: 10,2122 35017 CMDSETUP CAF ONE # SET OPTIND 006941,001409: 10,2123 55303 TS OPTIND 006942,001410: 10,2124 50000 INDEX A 006943,001411: 10,2125 11305 CCS COMMANDO # GET SIGN OF COMMAND 006944,001412: 10,2126 02144 TC POSOPCMD 006945,001413: 10,2127 02151 TC NEXTOPT +1 # ZERO COMMAND-SKIP SEND INDICATOR 006946,001414: 10,2130 02161 TC NEGOPCMD 006947,001415: 10,2131 02151 TC NEXTOPT +1 # ZERO COMMAND 006948,001416: 006949,001417: 10,2132 40035 TRUNCMD CS CDUT # IF COMMAND GREATER THAN 45 DEG-COMMAND 006950,001418: 10,2133 61160 AD DESOPTT # 45 DEG 006951,001419: 10,2134 54002 TS Q 006952,001420: 10,2135 02047 TC GETOPCMD # LESS THAN 45 DEG-NORMAL OPERATION 006953,001421: 006954,001422: 10,2136 10000 CCS A # GREATER THAN 45 DEG-USE OPSMAX WITH 006955,001423: 10,2137 34777 CA POSMAX # CORRECT SIGN 006956,001424: 10,2140 02142 TC +2 006957,001425: 10,2141 44777 CS POSMAX 006958,001426: 10,2142 54001 TS L 006959,001427: 10,2143 02063 TC STORCMD 006960,001428: 10,2144 62202 POSOPCMD AD MAXPLS1 006961,001429: 10,2145 00006 EXTEND 006962,001430: 10,2146 62166 BZMF DELOPCMD # COMMAND LESS THAN MAX PULSE 006963,001431: 10,2147 42201 CS MAXPLS # GREATER THAN MAX PULSE-USE MAX PULSE 006964,001432: 006965,001433: 10,2150 24061 NEXTOPT INCR ITEMP1 # SET SEND INDICATOR 006966,001434: 10,2151 65020 AD NEG0 # MAKE SURE ZERO COMMAND IS -ZERO 006967,001435: 10,2152 51303 INDEX OPTIND 006968,001436: 10,2153 54053 TS CDUTCMD # STORE PULSE IN SEND REG 006969,001437: 006970,001438: 10,2154 11303 CCS OPTIND 006971,001439: 10,2155 02123 TC CMDSETUP +1 # GET NEXT OPT 006972,001440: 006973,001441: 10,2156 10061 CCS ITEMP1 # ARE ANY PULSES TO GO 006974,001442: 10,2157 12171 TCF SENDOCMD # YES-SEND EM 006975,001443: 10,2160 05333 TC RESUME # NO 006976,001444: 006977,001445: 10,2161 62202 NEGOPCMD AD MAXPLS1 006978,001446: 10,2162 00006 EXTEND 006979,001447: 10,2163 62166 BZMF DELOPCMD # LESS THAN MAX PULSE 006980,001448: 10,2164 32201 CA MAXPLS # MAX PULSES 006981,001449: 10,2165 12150 TCF NEXTOPT 006982,001450: # Page 169 006983,001451: 10,2166 51303 DELOPCMD INDEX OPTIND 006984,001452: 10,2167 57305 XCH COMMANDO # SET UP SMALL COMMAND 006985,001453: 10,2170 12150 TCF NEXTOPT 006986,001454: 006987,001455: 10,2171 35062 SENDOCMD CAF 11,12 # SEND OCDU DRIVE COMMANDS 006988,001456: 10,2172 00006 EXTEND 006989,001457: 10,2173 05014 WOR CHAN14 006990,001458: 10,2174 05333 TC RESUME 006991,001459: 006992,001460: 10,2175 35016 SETBIT CAF BIT2 # ENABLE OCDU ERR CNTS 006993,001461: 10,2176 00006 EXTEND 006994,001462: 10,2177 05012 WOR CHAN12 006995,001463: 10,2200 05333 TC RESUME # START COARS NEXT TIME AROUND 006996,001464: 006997,001465: 10,2201 77532 MAXPLS DEC -165 B-14 # WAS -80 006998,001466: 10,2202 77533 MAXPLS1 DEC -164 B-14 # WAS -79 006999,001467: 10,2203 5062 11,12 EQUALS PRIO6 007000,001468: End of include-file T4RUPT_PROGRAM.agc. Parent file is MAIN.agc