Source Code

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