Source Code

006299,000001: # Copyright: Public domain. 006300,000002: # Filename: T4RUPT_PROGRAM.agc 006301,000003: # Purpose: An interrupt service routine for Luminary 1C, revision 131. 006302,000004: # It is part of the source code for the Lunar Module's (LM) 006303,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 006304,000006: # This file is intended to be a faithful transcription, except 006305,000007: # that the code format has been changed to conform to the 006306,000008: # requirements of the yaYUL assembler rather than the 006307,000009: # original YUL assembler. 006308,000010: # Reference: pp. 162-196 of 1729.pdf 006309,000011: # Contact: Ron Burkey <info@sandroid.org>. 006310,000012: # Website: www.ibiblio.org/apollo/index.html 006311,000013: # Mod history: 04/11/03 RSB. Began transcribing. 006312,000014: # 05/05/03 RSB. Draft finished. 006313,000015: # 05/14/05 RSB Corrected website reference above 006314,000016: # 2010-10-25 JL Indentation fixes. Added missing p190 comment. 006315,000017: 006316,000018: # Page 162 006317,000019: 12,2000 BANK 12 006318,000020: 06,2000 SETLOC T4RUP 006319,000021: 06,2000 BANK 006320,000022: 006321,000023: 06,2000 E6,1414 EBANK= M11 006322,000024: 06,2000 COUNT* $$/T4RPT 006323,000025: 06,2000 54016 T4RUPT TS BANKRUPT 006324,000026: 006325,000027: 06,2001 00006 EXTEND 006326,000028: 06,2002 22012 QXCH QRUPT 006327,000029: 006328,000030: 06,2003 11310 CCS DSRUPTSW # GOES 7(-1)0 AROUND AND AR 006329,000031: 06,2004 12010 TCF NORMT4 +1 006330,000032: 06,2005 12007 TCF NORMT4 006331,000033: 006332,000034: 06,2006 12134 TCF QUIKDSP 006333,000035: 006334,000036: 06,2007 34757 NORMT4 CAF SEVEN 006335,000037: 06,2010 54070 TS RUPTREG1 006336,000038: 06,2011 55310 TS DSRUPTSW 006337,000039: 006338,000040: 4066 BLOCK 02 006339,000041: 4000 SETLOC FFTAG10 006340,000042: 4000 BANK 006341,000043: 006342,000044: 4066 COUNT* $$/T4RPT 006343,000045: 4066 7732 100MRUPT = OCT37766 # (DEC 16374) 006344,000046: 006345,000047: # RELTAB IS A PACKED TABLE. RELAYWORD CODE IN UPPER 4 BITS, RELAY CODE 006346,000048: # IN LOWER 5 BITS. 006347,000049: 4066 04025 RELTAB OCT 04025 006348,000050: 4067 10003 OCT 10003 006349,000051: 4070 14031 OCT 14031 006350,000052: 4071 20033 OCT 20033 006351,000053: 4072 24017 OCT 24017 006352,000054: 4073 30036 OCT 30036 006353,000055: 4074 34034 OCT 34034 006354,000056: 4075 40023 OCT 40023 006355,000057: 4076 44035 OCT 44035 006356,000058: 4077 50037 OCT 50037 006357,000059: 4100 54000 OCT 54000 006358,000060: 4101 60000 RELTAB11 OCT 60000 006359,000061: 006360,000062: # Page 163 006361,000063: # SWITCHED-BANK PORTION 006362,000064: 006363,000065: 12,2000 BANK 12 006364,000066: 06,2000 SETLOC T4RUP 006365,000067: 06,2000 BANK 006366,000068: 006367,000069: 06,2012 COUNT* $$/T4RPT 006368,000070: 06,2012 11035 CDRVE CCS DSPTAB +11D 006369,000071: 06,2013 02063 TC DSPOUT 006370,000072: 06,2014 02063 TC DSPOUT 006371,000073: 006372,000074: 06,2015 57035 XCH DSPTAB +11D 006373,000075: 06,2016 74356 MASK LOW11 006374,000076: 06,2017 55035 TS DSPTAB +11D 006375,000077: 06,2020 64101 AD RELTAB11 006376,000078: 06,2021 00006 EXTEND 006377,000079: 06,2022 01010 WRITE OUT0 006378,000080: 06,2023 02071 TC HANG20 006379,000081: 006380,000082: # Page 164 006381,000083: # DSPOUT PROGRAM, PUTS OUT DISPLAYS 006382,000084: 006383,000085: 06,2024 55015 DSPOUTSB TS NOUT 006384,000086: 06,2025 44755 CS ZERO 006385,000087: 06,2026 54073 TS DSRUPTEM # SET TO -0 FOR 1ST PASS THRU OSPTAB 006386,000088: 06,2027 56775 XCH DSPCNT 006387,000089: 06,2030 64754 AD NEG0 # TO PREVENT +0 006388,000090: 06,2031 54775 TS DSPCNT 006389,000091: 06,2032 50775 DSPSCAN INDEX DSPCNT 006390,000092: 06,2033 11022 CCS DSPTAB 006391,000093: 06,2034 10775 CCS DSPCNT # IF DSPTAB ENTRY +, SKIP 006392,000094: 06,2035 12030 TCF DSPSCAN -2 # IF DSPCNT +, TRY AGAIN 006393,000095: 06,2036 12047 TCF DSPLAY # IF DSPTAB ENTRY -, DISPLAY 006394,000096: 06,2037 00012 TABLNTH OCT 12 # DEC 10, LENGTH OF DSPTAB 006395,000097: 06,2040 10073 CCS DSRUPTEM # IF DSRUPTEM=+0, 2ND PASS THRU DSPTAB 006396,000098: 06,2041 37764 120MRUPT DEC 16372 B-14 # (DSPCNT = 0). +0 INTO NOUT. 006397,000099: 06,2042 55015 TS NOUT 006398,000100: 06,2043 00002 TC Q 006399,000101: 06,2044 54073 TS DSRUPTEM # IF DSRUPTEM=-0, 1ST PASS THRU DSPTAB 006400,000102: 06,2045 32037 CAF TABLNTH # (DSPCNT=0).+0 INTO DSRUPTEM. PASS AGAIN 006401,000103: 06,2046 12031 TCF DSPSCAN -1 006402,000104: 006403,000105: 06,2047 64753 DSPLAY AD ONE 006404,000106: 06,2050 50775 INDEX DSPCNT 006405,000107: 06,2051 55022 TS DSPTAB # REPLACE POSITIVELY 006406,000108: 06,2052 74356 MASK LOW11 # REMOVE BITS 12 TO 15 006407,000109: 06,2053 54073 TS DSRUPTEM 006408,000110: 06,2054 34350 CAF HI5 006409,000111: 06,2055 50775 INDEX DSPCNT 006410,000112: 06,2056 74066 MASK RELTAB # PICK UP BITS 12 TO 15 OF RELTAB ENTRY 006411,000113: 06,2057 60073 AD DSRUPTEM 006412,000114: 06,2060 00006 EXTEND 006413,000115: 06,2061 01010 WRITE OUT0 006414,000116: 006415,000117: 06,2062 16742 TCF Q+1 006416,000118: 006417,000119: 06,2063 10101 DSPOUT CCS FLAGWRD5 # IS DSKY FLAG ON 006418,000120: 06,2064 34755 CAF ZERO # NO 006419,000121: 06,2065 12130 TCF NODSPOUT # NO 006420,000122: 06,2066 11015 CCS NOUT # YES 006421,000123: 06,2067 02024 TC DSPOUTSB 006422,000124: 06,2070 12130 TCF NODSPOUT # NO DISPLAY REQUESTS 006423,000125: 006424,000126: 06,2071 42171 HANG20 CS 14,11,9 006425,000127: 06,2072 27310 ADS DSRUPTSW 006426,000128: 006427,000129: 06,2073 37734 CAF 20MRUPT 006428,000130: 006429,000131: 06,2074 54027 SETTIME4 TS TIME4 006430,000132: 006431,000133: # Page 165 006432,000134: # THE STATUS OF THE PROCEED PUSHBUTTON IS MONITORED EVERY 120 MILLISECONDS VIA 006433,000135: # THE CHANNEL 32 BIT 14 INBIT. THE STATE OF THIS INBIT IS COMPARED WITH ITS 006434,000136: # STATE DURING THE PREVIOUS T4RUPT AND IS PROCESSED AS FOLLOWS. 006435,000137: # IF PREV ON AND NOW ON -- BYPASS. 006436,000138: # IF PREV ON AND NOW OFF -- UPDATE IMODES33. 006437,000139: # IF PREV OFF AND NOW ON -- UPDATE IMODES33 AND PROCESS VIA PINBALL. 006438,000140: # IF PREV OFF AND NOW OFF -- BYPASS. 006439,000141: # THE LOGIC EMPLOYED REQUIRES ONLY 9 MCT (APPROX. 108 MICROSECONDS) 006440,000142: # OF COMPUTER TIME WHEN NO CHANGES OCCUR. 006441,000143: 006442,000144: 06,2075 31300 PROCEEDE CA IMODES33 # MONITOR FOR PROCEED BUTTON 006443,000145: 06,2076 00006 EXTEND 006444,000146: 06,2077 06032 RXOR CHAN32 006445,000147: 06,2100 74736 MASK BIT14 006446,000148: 06,2101 00006 EXTEND 006447,000149: 06,2102 12116 BZF T4JUMP # NO CHANGE 006448,000150: 006449,000151: 06,2103 23300 LXCH IMODES33 006450,000152: 06,2104 00006 EXTEND 006451,000153: 06,2105 06001 RXOR LCHAN 006452,000154: 06,2106 55300 TS IMODES33 006453,000155: 06,2107 74736 MASK BIT14 006454,000156: 06,2110 10000 CCS A 006455,000157: 06,2111 12116 TCF T4JUMP # WAS ON -- NOW OFF 006456,000158: 006457,000159: 06,2112 34355 CAF CHRPRIO # WAS OFF -- NOW ON 006458,000160: 06,2113 05072 TC NOVAC 006459,000161: 06,2114 0776 EBANK= DSPCOUNT 006460,000162: 06,2114 03506 60101 2CADR PROCKEY 006461,000163: 006462,000164: # Page 166 006463,000165: # JUMP TO APPROPRIATE ONCE-PER SECOND (0.96 SEC ACTUALLY) ACTIVITY 006464,000166: 006465,000167: 06,2116 50070 T4JUMP INDEX RUPTREG1 006466,000168: 06,2117 12120 TCF +1 006467,000169: 006468,000170: 06,2120 03164 TC RCSMONIT 006469,000171: 06,2121 13006 TCF RRAUTCHK 006470,000172: 06,2122 12172 TCF IMUMON 006471,000173: 06,2123 13140 TCF DAPT4S 006472,000174: 06,2124 03164 TC RCSMONIT 006473,000175: 06,2125 13006 TCF RRAUTCHK 006474,000176: 06,2126 12172 TCF IMUMON 006475,000177: 06,2127 13140 TCF DAPT4S 006476,000178: 006477,000179: 06,2130 7734 20MRUPT = OCT37776 # (DEC 16382) 006478,000180: 006479,000181: # Page 167 006480,000182: # ADDITIONAL ROUTINES FOR 20MS. KEYBOARD ACTIVITY 006481,000183: 006482,000184: 06,2130 00006 NODSPOUT EXTEND 006483,000185: 06,2131 01010 WRITE OUT0 006484,000186: 006485,000187: 06,2132 32041 CAF 120MRUPT # SET FOR NEXT CCRIVE 006486,000188: 06,2133 12074 TCF SETTIME4 006487,000189: 006488,000190: 06,2134 34736 QUIKDSP CAF BIT14 006489,000191: 06,2135 71310 MASK DSRUPTSW 006490,000192: 06,2136 00006 EXTEND 006491,000193: 06,2137 12165 BZF QUIKOFF # WROTE LAST TIME, NOW TURN OFF RELAYS 006492,000194: 006493,000195: 06,2140 11015 CCS NOUT 006494,000196: 06,2141 02024 TC DSPOUTSB 006495,000197: 06,2142 12152 TCF NODSPY # NOUT=0 OR BAD RETURN FROM DSPOUTSB 006496,000198: 06,2143 44736 CS BIT14 # GOOD RETURN (WE DISPLAYED SOMETHING) 006497,000199: 06,2144 27310 QUIKRUPT ADS DSRUPTSW 006498,000200: 006499,000201: 06,2145 37734 CAF 20MRUPT 006500,000202: 06,2146 54027 TS TIME4 006501,000203: 006502,000204: 06,2147 34743 CAF BIT9 006503,000205: 06,2150 27310 ADS DSRUPTSW 006504,000206: 006505,000207: 06,2151 05270 TC RESUME 006506,000208: 006507,000209: 06,2152 00006 NODSPY EXTEND 006508,000210: 06,2153 01010 WRITE OUT0 006509,000211: 006510,000212: 06,2154 37734 SYNCT4 CAF 20MRUPT 006511,000213: 06,2155 26027 ADS TIME4 006512,000214: 006513,000215: 06,2156 34743 CAF BIT9 006514,000216: 06,2157 27310 ADS DSRUPTSW 006515,000217: 006516,000218: 06,2160 11310 CCS DSRUPTSW 006517,000219: 06,2161 05270 TC RESUME 006518,000220: 06,2162 37737 OCT37737 OCT 37737 006519,000221: 06,2163 02154 TC SYNCT4 006520,000222: 06,2164 05270 TC RESUME 006521,000223: 006522,000224: 06,2165 00006 QUIKOFF EXTEND 006523,000225: 06,2166 01010 WRITE OUT0 006524,000226: 06,2167 34736 CAF BIT14 # RESET DSRUPTSW TO SEND DISPLAY NEXT PASS 006525,000227: 06,2170 12144 TCF QUIKRUPT 006526,000228: 006527,000229: 06,2171 22400 14,11,9 OCT 22400 006528,000230: 006529,000231: # Page 168 006530,000232: # PROGRAM NAME: IMUMON 006531,000233: 006532,000234: # FUNCTIONAL DESCRIPTION: THIS PROGRAM IS ENTERED EVERY 480 MS. IT DETECTS CHANGES OF THE IMU STATUS BITS IN 006533,000235: # CHANNEL 30 AND CALLS THE APPROPRIATE SUBROUTINES. THE BITS PROCESSED AND THEIR RELEVANT SUROUTINES ARE: 006534,000236: 006535,000237: # FUNCTION BIT SUBROUTINE CALLED 006536,000238: # -------- --- ----------------- 006537,000239: # TEMP IN LIMITS 15 TLIM 006538,000240: # ISS TURN-ON REQUEST 14 ITURNON 006539,000241: # IMU FAIL 13 IMUFAIL (SETISSW) 006540,000242: # IMU CDU FAIL 12 ICDUFAIL (SETISSW) 006541,000243: # IMU CAGE 11 IMUCAGE 006542,000244: # IMU OPERATE 9 IMUOP 006543,000245: 006544,000246: # THE LAST SAMPLED STATE OF THESE BITS IS LEFT IN IMODES30. ALSO, EACH SUBROUTINE CALLED FINDS THE NEW 006545,000247: # VALUE OF THE BIT IN A, WITH Q SET TO THE PROPER RETURN LOCATION NXTIFAIL. 006546,000248: 006547,000249: # CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS. 006548,000250: 006549,000251: # JOBS OR TASKS INITIATED: NONE. 006550,000252: 006551,000253: # SUBROUTINES CALLED: TLIM, TURNON, SETISSW, IMUCAGE, IMUOP. 006552,000254: 006553,000255: # ERASABELE INITIALIZATION: 006554,000256: # FRESH START OR RESTART WITH NO GROUPS ACTIVE: C((MODES30) = OCT 37411). 006555,000257: # RESTART WITH ACTIVE GROUPS: C(IMODES30) = (B(IMODES30)AND(OCT 00035)) PLUS OCT 37400. 006556,000258: # THIS LEAVES IMU FAIL BITS INTACT. 006557,000259: 006558,000260: # ALARMS: NONE. 006559,000261: 006560,000262: # EXIT: TNONTEST. 006561,000263: 006562,000264: # OUTPUT: UPDATED IMODES30 WITH CHANGES PROCESSED BY APPROPRIATE SUBROUTINE. 006563,000265: 006564,000266: 06,2172 31277 IMUMON CA IMODES30 # SEE IF THERE HAS BEEN A CHANGE IN THE 006565,000267: 06,2173 00006 EXTEND # RELEVANT BITS OF CHAN 30. 006566,000268: 06,2174 06030 RXOR CHAN30 006567,000269: 06,2175 72761 MASK 30RDMSK 006568,000270: 06,2176 00006 EXTEND 006569,000271: 06,2177 12227 BZF TNONTEST # NO CHANGE IN STATUS 006570,000272: 006571,000273: 06,2200 54070 TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED. 006572,000274: 06,2201 23277 LXCH IMODES30 # UPDATE IMODES30. 006573,000275: 06,2202 00006 EXTEND 006574,000276: 06,2203 06001 RXOR LCHAN 006575,000277: 06,2204 55277 TS IMODES30 006576,000278: 006577,000279: 06,2205 44753 CS ONE 006578,000280: 06,2206 56070 XCH RUPTREG1 006579,000281: 06,2207 00006 EXTEND 006580,000282: # Page 169 006581,000283: 06,2210 62514 BZMF TLIM # CHANGE IN IMU TEMP. 006582,000284: 06,2211 12213 TCF NXTIFBIT # BEGIN BIT SCAN. 006583,000285: 006584,000286: 06,2212 64753 -1 AD ONE # (RE-ENTERS HERE FROM NXTIFAIL.) 006585,000287: 06,2213 24070 NXTIFBIT INCR RUPTREG1 # ADVANCE BIT POSITION NUMBER. 006586,000288: 06,2214 60000 +1 DOUBLE 006587,000289: 06,2215 54000 TS A # SKIP IF OVERFLOW. 006588,000290: 06,2216 12213 TCF NXTIFBIT # LOOK FOR BIT. 006589,000291: 006590,000292: 06,2217 56071 XCH RUPTREG2 # SAVE OVERFLOW-CORRECTED DATA. 006591,000293: 06,2220 50070 INDEX RUPTREG1 # SELECT NEW VALUE OF THIS BIT. 006592,000294: 06,2221 34736 CAF BIT14 006593,000295: 06,2222 71277 MASK IMODES30 006594,000296: 06,2223 50070 INDEX RUPTREG1 006595,000297: 06,2224 02755 TC IFAILJMP 006596,000298: 006597,000299: 06,2225 10071 NXTIFAIL CCS RUPTREG2 # PROCESS ANY ADDITIONAL CHANGES. 006598,000300: 06,2226 12212 TCF NXTIFBIT -1 006599,000301: 006600,000302: # Page 170 006601,000303: # PROGRAM NAME: TNONTEST. 006602,000304: 006603,000305: # FUNCTIONAL DESCRIPTION: THIS PROGRAM HONORS REQUESTS FOR ISS INITIALIZATION. ISS TURN-ON (CHANNEL 30 BIT 14) 006604,000306: # AND ISS OPERATE (CHANNEL 30 BIT 9) REQUESTS ARE TREATED AS A PAIR AND PROCESSING TAKES PLACE .480 SECONDS 006605,000307: # AFTER EITHER ONE APPEARS. THIS INITIALIZATION TAKES ON ONE OF THE FOLLOWING THREE FORMS: 006606,000308: 006607,000309: # 1) ISS TURN-ON: IN THIS SITUATION THE COMPUTER IS OPERATING WHEN THE ISS IS TURNED ON. NOMINALLY, 006608,000310: # BOTH ISS TURN-ON AND ISS OPERATE APPEAR. THE PLATFORM IS CAGED FOR 90 SECONDS AND THE ICDU'S ZEROED 006609,000311: # SO THAT AT THE END OF THE PROCESS THE GIMBAL LOCK MONITOR WILL FUNCTION PROPERLY. 006610,000312: 006611,000313: # 2) ICDU INITIALIZATION: IN THIS CASE THE COMPUTER WAS PROBABLY TURNED ON WITH THE ISS IN OPERATE OR 006612,000314: # A FRESH START WAS DONE WIT THE ISS IN OPERATE. IN THIS CASE ONLY ISS OPERATE IS ON. THE ICDU'S ARE 006613,000315: # ZEROED SO THE GIMBAL LOCK MONITOR WILL FUNCTION. AN EXCEPTION IS IF THE ISS IS IN GIMBAL LOCK AFTER 006614,000316: # A RESTART, THE ICDU'S WILL NOT BE ZEROED. 006615,000317: 006616,000318: # 3) RESTART WITH RESTARTABLE PROGRAM USING THE IMU: IN THIS CASE, NO INITIALIZATION TAKES PLACE SINCE 006617,000319: # IT IS ASSUMED THT THE USING PROGRAM DID THE INITIALIZATION AND THEREFORE T4RUPT SHOULD NOT INTERFERE. 006618,000320: 006619,000321: # IMODESD0 BIT 7 IS SET = 1 BY THE FIRST BIT (CHANNEL 30 BIT 14 OR 9) WHICH ARRIVES. FOLLOWING THIS, TNONTEST IS 006620,000322: # 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 006621,000323: # PROCEEDS, SETTING BITS 8 AND 7 = 0. AT PROCTNON, IF ISS TURN-ON REQUEST IS PRESENT, THE ISS IS CAGED (ZERO + 006622,000324: # COARSE). IF ISS OPERATE IS NOT PRESENT PROGRAM ALARM 00213 IS ISSUED. AT THE END OF A 90 SECOND CAGE, BIT 2 006623,000325: # OF IMODES30 IS TESTED. IF IT IS = 1, ISS TURN-ON WAS NOT PRESENT FOR THE ENTIRE 90 SECONDS. IN THAT CASE, IF 006624,000326: # THE ISS TURN-ON REQUEST IS PRESENT TEH 90 SECOD WAIT IS REPEATED. OTHERWISE NO ACTION OCURS UNLESS A PROGRAM 006625,000327: # WAS WAITING FOR THE INITIALIZATION IN WHIC CASE TH PROGRAM IS GIVEN AN IMUSTALL ERROR RETURN. IF THE DELAY 006626,000328: # WENT PROPERLY, THE ISS DELAY CLTBIT IS SENT AND THE ICDU'S ZEROED. A TASK IS INITIATED TO REMOVE THE PIPA FIAL 006627,000329: # INHIBIT BIT IN 10.24 SECONDS. IF A MISSION PROGRAM WAS WAITING IT IS INFORMED VIA ENDIMU. 006628,000330: 006629,000331: # AT PROCTNON, IF ONLY ISS OPERATE IS PRESENT (OPONLY), THE CDU'S ARE ZEROED UNLESS THE PLATFORM IS IN COARSE 006630,000332: # ALIGN (= GIMBAL LOCK HERE) OR A MISSIN PROGRAM IS USING THE IMU (INUSEFLG = 1). 006631,000333: 006632,000334: # CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS AFTER IMUMON. 006633,000335: 006634,000336: # JOBS OR TASKS INITIATED: 1) ENDTMON, 90 SECONDS AFER CAGING STARTED. 2) ISSUP, 4 SECONDS AFTER CAGING DONE. 006635,000337: # 3) PFAILOK, 10.24 SECONDS AFTER INITIALIZATION COMPLETED. 4) UNZ2, 320 MILLISECONDS AFTER ZEROING 006636,000338: # STARTED. 006637,000339: 006638,000340: # SUBROUTINES CALLED: CAGESUB, CAGESUB2, ZEROICDU, ENDIMU, IMUBAD, NOATTOFF, SETISSW, VARDELAY. 006639,000341: 006640,000342: # ERASABLE INITIALIZATION: SEE IMUMON. 006641,000343: 006642,000344: # ALARMS: PROGRAM ALARM 00213 IF ISS TURN-ON REQUESTED WITHOUT ISS OPERATE. 006643,000345: 006644,000346: # EXIT: ENDTNON EXITS TO C33TEST. TASKS HAVING TO DO WITH INITIALIZATION EXIT AS FOLLOWS: MISSION PROGRAM 006645,000347: # WAITING AND INITIALIZATION COMPLET, EXIT TO ENDIMU, MISSION PROGRAM WAITING AND INITIALIZATION FAILED, EXIT TO 006646,000348: # IMUBAD, IMU NOT IN USE, EXIT TO TASKOVER. 006647,000349: 006648,000350: # OUTPUT: ISS INITIALIZED. 006649,000351: 006650,000352: 06,2227 41277 TNONTEST CS IMODES30 # AFTER PROCESSING ALL CHANGES, SEE IF IT 006651,000353: # Page 171 006652,000354: 06,2230 74745 MASK BIT7 # IS TIME TO ACT ON A TURN-ON SEQUENCE. 006653,000355: 06,2231 10000 CCS A 006654,000356: 06,2232 12374 TCF C33TEST # NO -- EXAMINE CHANNEL 33. 006655,000357: 006656,000358: 06,2233 34744 CAF BIT8 # SEE IF FIRST SAMPLE OR SECOND. 006657,000359: 06,2234 71277 MASK IMODES30 006658,000360: 06,2235 10000 CCS A 006659,000361: 06,2236 12242 TCF PROCTNON # REACT AFTER A SECOND SAMPLE. 006660,000362: 006661,000363: 06,2237 34744 CAF BIT8 # IF FIRST SAMPLE, SET BIT TO REACT NEXT 006662,000364: 06,2240 27277 ADS IMODES30 # TIME. 006663,000365: 06,2241 12374 TCF C33TEST 006664,000366: 006665,000367: # PROCESS IMU TURN-ON REQUESTS AFTER WAITING 1 SAMPLE FOR ALL SIGNALS TO ARRIVE. 006666,000368: 006667,000369: 06,2242 42777 PROCTNON CS BITS7&8 006668,000370: 06,2243 71277 MASK IMODES30 006669,000371: 06,2244 55277 TS IMODES30 006670,000372: 06,2245 74736 MASK BIT14 # SEE IF TURN-ON REQUEST. 006671,000373: 06,2246 10000 CCS A 006672,000374: 06,2247 12347 TCF OPONLY # OPERATE ON ONLY. 006673,000375: 006674,000376: 06,2250 41277 CS IMODES30 # IF TURN-ON REQUEST, WE SHOUD HAVE IMU 006675,000377: 06,2251 74743 MASK BIT9 # OPERATE. 006676,000378: 06,2252 10000 CCS A 006677,000379: 06,2253 12256 TCF +3 006678,000380: 006679,000381: 06,2254 05567 TC ALARM # ALARM IF NOT 006680,000382: 06,2255 00213 OCT 213 006681,000383: 006682,000384: 06,2256 02735 +3 TC CAGESUB 006683,000385: 06,2257 33005 CAF 90SECS 006684,000386: 06,2260 05203 TC WAITLIST 006685,000387: 06,2261 E6,1414 EBANK= M11 006686,000388: 06,2261 02266 14106 2CADR ENDTNON 006687,000389: 006688,000390: 06,2263 12374 TCF C33TEST 006689,000391: 006690,000392: 06,2264 33005 RETNON CAF 90SECS 006691,000393: 06,2265 05224 TC VARDELAY 006692,000394: 006693,000395: 06,2266 44752 ENDTNON CS BIT2 # RESET TURN-ON REQUEST FAIL BIT. 006694,000396: 06,2267 71277 MASK IMODES30 006695,000397: 06,2270 57277 XCH IMODES30 006696,000398: 06,2271 74752 MASK BIT2 # IF IT WAS OFF, SEND ISS DELAY COMPLETE. 006697,000399: 06,2272 00006 EXTEND 006698,000400: 06,2273 12306 BZF ENDTNON2 006699,000401: 006700,000402: 06,2274 34736 CAF BIT14 # IF IT WAS ON AND TURN-ON REQUEST NOW. 006701,000403: # Page 172 006702,000404: 06,2275 71277 MASK IMODES30 # PRESENT, RE-ENTER 90 SEC DELAY IN WL. 006703,000405: 06,2276 00006 EXTEND 006704,000406: 06,2277 12264 BZF RETNON 006705,000407: 006706,000408: 06,2300 40074 CS FLAGWRD0 # IF IT IS NOT ON NOW, SEE IF A PROG WAS 006707,000409: 06,2301 74744 MASK IMUSEBIT # WAITING. 006708,000410: 06,2302 10000 CCS A 006709,000411: 06,2303 15261 TCF TASKOVER 006710,000412: 06,2304 04635 TC POSTJUMP 006711,000413: 06,2305 17630 CADR IMUBAD # UNSUCCESSFUL TURN-ON. 006712,000414: 006713,000415: 06,2306 34735 ENDTNON2 CAF BIT15 # SEND ISS DELAY COMPLETE. 006714,000416: 06,2307 00006 EXTEND 006715,000417: 06,2310 05012 WOR CHAN12 006716,000418: 006717,000419: 06,2311 04674 TC IBNKCALL # TURN OFF NO ATT LAMP. 006718,000420: 06,2312 17257 CADR NOATTOFF 006719,000421: 006720,000422: 06,2313 05457 UNZ2 TC ZEROICDU 006721,000423: 006722,000424: 06,2314 44763 CS BITS4&5 # REMOVE ZERO AND COARSE. 006723,000425: 06,2315 00006 EXTEND 006724,000426: 06,2316 03012 WAND CHAN12 006725,000427: 006726,000428: 06,2317 34741 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS 006727,000429: 06,2320 05224 TC VARDELAY 006728,000430: 006729,000431: 06,2321 42774 ISSUP CS OCT54 # REMOVE CAGING, IMU FAIL INHIBIT BIT, AND 006730,000432: 06,2322 71277 MASK IMODES30 # ICDUFAIL INHIBIT FLAGS. 006731,000433: 06,2323 55277 TS IMODES30 006732,000434: 006733,000435: 06,2324 44746 CS BIT6 # ENABLE DAP 006734,000436: 006735,000437: 06,2325 71300 MASK IMODES33 006736,000438: 06,2326 55300 TS IMODES33 006737,000439: 006738,000440: 06,2327 40076 CS FLAGWRD2 # TEST DRIFTFLG: IF ON DO NOTHING BECAUSE 006739,000441: 06,2330 74735 MASK DRFTBIT # IMUCOMP SHOUD BE ALL SET UP (RESTART 006740,000442: 06,2331 00006 EXTEND # WITH IMUSE DOWN). IF OFF, SET DRIFTFLG 006741,000443: 06,2332 12336 BZF +4 # AND 1/PIPADT TO GET FREEFALL IMUCOMP 006742,000444: 06,2333 26076 ADS FLAGWRD2 # GOING (FRESH START OR ISS TURN-ON). 006743,000445: 06,2334 30025 CA TIME1 006744,000446: 06,2335 57074 XCH 1/PIPADT # CANNOT GET HERE IF RESTART WITH IMUSE UP 006745,000447: 006746,000448: 06,2336 02703 TC SETISSW # ISS WARNING MIGHT HAVE BEEN INHIBITED. 006747,000449: 006748,000450: 06,2337 44735 CS BIT15 # REMOVE IMU DELAY COMPLETE DISCRETE. 006749,000451: 06,2340 00006 EXTEND 006750,000452: 06,2341 03012 WAND CHAN12 006751,000453: 006752,000454: 06,2342 35003 CAF 4SECS # DON'T ENABLE PROG ALARM ON PIP FAIL FOR 006753,000455: # Page 173 006754,000456: 06,2343 05203 TC WAITLIST # ANOTHER 4 SECS. 006755,000457: 06,2344 E3,1474 EBANK= CDUIND 006756,000458: 06,2344 03245 16103 2CADR PFAILOK 006757,000459: 006758,000460: 06,2346 15261 TCF TASKOVER 006759,000461: 006760,000462: 06,2347 34750 OPONLY CAF BIT4 # IF OPERATE ON ONLY, AND WE ARE IN COARSE 006761,000463: 06,2350 00006 EXTEND # ALIGN, DON'T ZERO THE CDUS BECAUSE WE 006762,000464: 06,2351 02012 RAND CHAN12 # MIGHT BE IN GIMBAL LOCK. 006763,000465: 06,2352 10000 CCS A 006764,000466: 06,2353 12374 TCF C33TEST 006765,000467: 006766,000468: 06,2354 34744 CAF IMUSEBIT # OTHERWISE, ZERO THE COUNTERS. 006767,000469: 06,2355 70074 MASK FLAGWRD0 # UNLESS SOMEONE IS USING TH IMU. 006768,000470: 06,2356 10000 CCS A 006769,000471: 06,2357 12374 TCF C33TEST 006770,000472: 006771,000473: 06,2360 02746 TC CAGESUB2 # SET TURNON FLAGS. 006772,000474: 006773,000475: 06,2361 04674 ISSZERO TC IBNKCALL # TURN OFF NO ATT LAMP. 006774,000476: 06,2362 17257 CADR NOATTOFF # IMU CAGE OFF ENTRY. 006775,000477: 006776,000478: 06,2363 34747 CAF BIT5 # ISS CDU ZERO 006777,000479: 06,2364 00006 EXTEND 006778,000480: 06,2365 05012 WOR CHAN12 006779,000481: 006780,000482: 06,2366 05457 TC ZEROICDU 006781,000483: 06,2367 34746 CAF BIT6 # WAIT 300 MS. FOR AGS TO RECEIVE SIGNAL. 006782,000484: 06,2370 05203 TC WAITLIST 006783,000485: 06,2371 E6,1414 EBANK= M11 006784,000486: 06,2371 02313 14106 2CADR UNZ2 006785,000487: 006786,000488: 06,2373 12374 TCF C33TEST 006787,000489: 006788,000490: # Page 174 006789,000491: # PROGRAM NAME: C33TEST 006790,000492: 006791,000493: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THREE FLIP-FLOP INBITS OF CHANNEL 33 AND CALLS THE APPROPRIATE 006792,000494: # SUBROUTINE TO PROCESS A CHANGE. IT IS ANALOGOUS TO IMUMON, WHICH MONITORS CHANNEL 30, EXCEPT THAT IT READS 006793,000495: # CHANNEL 33 WITH A WAND INSTRUCTION BECAUSE A `WRITE' PULSE IS REQUIRED TO RESET THE FLIP-FLOPS. THE BITS 006794,000496: # PROCESSED AND THE SUBROUTINES CALLED ARE: 006795,000497: # BIT FUNCTION SUBROUTINE 006796,000498: # --- -------- ---------- 006797,000499: # 13 PIPA FAIL PIPFAIL 006798,000500: # 12 DOWNLINK TOO FAST DNTMFAST 006799,000501: # 11 UPLINK TOO FAST UPTMFAST 006800,000502: 006801,000503: # UPON ENTRY TO THE SUBROUTINE, THE NEW BIT STATE IS IN A. 006802,000504: 006803,000505: # CALLING SEQUENCE: EVERY 480 MILLISECONDS AFTER TNONTEST. 006804,000506: 006805,000507: # JOBS OR TASKS INITIATED: NONE. 006806,000508: 006807,000509: # SUBROUTINES CALLED: PIPFAIL, DNTMFAST AND UPTMFAST ON BIT CHANGES. 006808,000510: 006809,000511: # ERASABLE INITIALIZATION: C(IMODES33) = OCT 16000 ON A FRESH START OR RESTART, THEREFORE, THESE ALARMS WILL 006810,000512: # REAPPEAR IF THE CONDITIONS PERSIST. 006811,000513: 006812,000514: # ALARMS: NONE. 006813,000515: 006814,000516: # EXIT: GLOCKMON. 006815,000517: 006816,000518: # OUTPUT: UPDATED BITS 13, 12, AND 11 OF IMODES33 WITH CHANGES PROCESSED. 006817,000519: 006818,000520: 06,2374 31300 C33TEST CA IMODES33 # SEE IF RELEVANT CHAN33 BITS HAVE 006819,000521: 06,2375 75026 MASK 33RDMSK 006820,000522: 06,2376 54001 TS L # CHANGED. 006821,000523: 06,2377 35026 CAF 33RDMSK 006822,000524: 06,2400 00006 EXTEND 006823,000525: 06,2401 03033 WAND CHAN33 # RESETS FLIP-FLOP INPUTS 006824,000526: 06,2402 00006 EXTEND 006825,000527: 06,2403 06001 RXOR LCHAN 006826,000528: 06,2404 00006 EXTEND 006827,000529: 06,2405 12434 BZF GLOCKMON # ON NO CHANGE. 006828,000530: 006829,000531: 06,2406 54070 TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED 006830,000532: 06,2407 23300 LXCH IMODES33 006831,000533: 06,2410 00006 EXTEND 006832,000534: 06,2411 06001 RXOR LCHAN 006833,000535: 06,2412 55300 TS IMODES33 # UPDATED IMODES33. 006834,000536: 006835,000537: 06,2413 34755 CAF ZERO 006836,000538: 06,2414 56070 XCH RUPTREG1 006837,000539: 06,2415 60000 DOUBLE 006838,000540: # Page 175 006839,000541: 06,2416 12421 TCF NXTIBT +1 # SCAN FOR BIT CHANGES. 006840,000542: 006841,000543: 06,2417 64753 -1 AD ONE 006842,000544: 06,2420 24070 NXTIBT INCR RUPTREG1 006843,000545: 06,2421 60000 +1 DOUBLE 006844,000546: 06,2422 54000 TS A # (CODING IDENTICAL TO CHAN 30). 006845,000547: 06,2423 12420 TCF NXTIBT 006846,000548: 006847,000549: 06,2424 56071 XCH RUPTREG2 006848,000550: 06,2425 50070 INDEX RUPTREG1 # GET NEW VALUE OF BIT WHICH CHANGED. 006849,000551: 06,2426 34737 CAF BIT13 006850,000552: 06,2427 71300 MASK IMODES33 006851,000553: 06,2430 50070 INDEX RUPTREG1 006852,000554: 06,2431 02763 TC C33JMP 006853,000555: 06,2432 10071 NXTFL33 CCS RUPTREG2 # PROCESS POSSIBLE ADDITIONAL CHANGES. 006854,000556: 06,2433 12417 TCF NXTIBT -1 006855,000557: 006856,000558: # Page 176 006857,000559: # PROGRAM NAME: GLOCKMON 006858,000560: 006859,000561: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THE CDUZ COUNTER TO DETERMINE WHETHER THE ISS IS IN GIMBAL LOCK 006860,000562: # AND TAKES ACTION IF IT IS. THREE REGIONS OF MIDDLE GIMBAL ANGLE (MGA) ARE USED: 006861,000563: 006862,000564: # 1) ABS(MGA) LESS THAN OR EQUAL TO 70 DEGREES -- NORMAL MODE. 006863,000565: # 2) ABS(MGA) GREATER THAN 70 DEGREES AND LESS THAN OR EQUAL TO 85 DEGREES -- GIMBAL LOCK LAMP TURNED ON. 006864,000566: # 3) ABS(MGA) GREATER THAN 85 DEGREES -- ISS PUT IN COARSE ALIGN AND NO ATT LAMP TURNED ON. 006865,000567: 006866,000568: # CALLING SEQUENCE: EVERY 480 MILLISECONDS AFTER C33TEST. 006867,000569: 006868,000570: # JOBS OR TASKS INITIATED: NONE. 006869,000571: 006870,000572: # SUBROUTINES CALLED: 1) SETCOARS WHEN ABS(MGA) GREATER THEN 85 DEGREES AND ISS NOT IN COARSE ALIGN. 006871,000573: # 2) LAMPTEST BEFORE TURNING OFF GIMBAL LOCK LAMP. 006872,000574: 006873,000575: # ERASABLE INITIALIZATION: 006874,000576: # 1) FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(CDUZ) = 0, IMODES30 BIT 6 = 0, IMODES33 BIT 1 = 0. 006875,000577: # 2) RESTART WTIH GROUPS ACTIVE: SAME AS FRESH START EXCEPT C(CDUZ) NOT CHANGED SO GIMBAL MONITOR 006876,000578: # PROCEEDS AS BEFORE. 006877,000579: 006878,000580: # ALARMS: 1) MGA REGION (2) CAUSES GIMBAL LOCK LAMP TO BE LIT. 006879,000581: # 2) MGA REGION (3) CAUSES THE ISS TO BE PUT IN COARSE ALIGN AND THE NO ATT LAMP TO BE LIT IF EITHER NOT 006880,000582: # SO ALREADY. 006881,000583: 006882,000584: 06,2434 10034 GLOCKMON CCS CDUZ 006883,000585: 06,2435 12441 TCF GLOCKCHK # SEE IF MAGNITUDE OF MGA IS GREATER THAN 006884,000586: 06,2436 12465 TCF SETGLOCK # 70 DEGREES. 006885,000587: 06,2437 12441 TCF GLOCKCHK 006886,000588: 06,2440 12465 TCF SETGLOCK 006887,000589: 006888,000590: 06,2441 62512 GLOCKCHK AD -70DEGS 006889,000591: 06,2442 00006 EXTEND 006890,000592: 06,2443 62464 BZMF SETGLOCK -1 # NO LOCK. 006891,000593: 006892,000594: 06,2444 62513 AD -15DEGS # SEE IF ABS(MGA) GREATER THAN 85 DEGREES 006893,000595: 06,2445 00006 EXTEND 006894,000596: 06,2446 62462 BZMF NOGIMRUN 006895,000597: 006896,000598: 06,2447 34750 CAF BIT4 # IF SO, SYSTEM SHOULD BE IN COARSE ALIGN 006897,000599: 06,2450 00006 EXTEND # TO PREVENT GIMBAL RUNAWAY. 006898,000600: 06,2451 02012 RAND CHAN12 006899,000601: 06,2452 10000 CCS A 006900,000602: 06,2453 12462 TCF NOGIMRUN 006901,000603: 006902,000604: 06,2454 04674 TC IBNKCALL 006903,000605: 06,2455 17135 CADR SETCOARS 006904,000606: 006905,000607: 06,2456 36245 CAF SIX # ENABLE ISS ERROR COUNTERS IN 60 MS. 006906,000608: 06,2457 05203 TC WAITLIST 006907,000609: # Page 177 006908,000610: 06,2460 E3,1474 EBANK= CDUIND 006909,000611: 06,2460 03131 16103 2CADR CA+ECE 006910,000612: 006911,000613: 06,2462 34746 NOGIMRUN CAF BIT6 # TURN ON GIMBAL LOCK LAMP. 006912,000614: 06,2463 12465 TCF SETGLOCK 006913,000615: 006914,000616: 06,2464 34755 -1 CAF ZERO 006915,000617: 06,2465 61035 SETGLOCK AD DSPTAB +11D # SEE IF PRESENT STATE OF GIMBAL LOCK LAMP 006916,000618: 06,2466 74746 MASK BIT6 # AGREES WITH DESIRED STATE BY HALF ADDING 006917,000619: 06,2467 00006 EXTEND # THE TWO. 006918,000620: 06,2470 15270 BZF GLOCKOK # OK AS IS. 006919,000621: 006920,000622: 06,2471 71035 MASK DSPTAB +11D # IF OFF, DON'T TURN ON IF IMU BEING CAGED. 006921,000623: 06,2472 10000 CCS A 006922,000624: 06,2473 12507 TCF GLAMPTST # TURN OFF UNLESS LAMP TEST IN PROGRESS. 006923,000625: 006924,000626: 06,2474 34746 CAF BIT6 006925,000627: 06,2475 71277 MASK IMODES30 006926,000628: 06,2476 10000 CCS A 006927,000629: 06,2477 15270 TCF GLOCKOK 006928,000630: 006929,000631: 06,2500 41035 GLINVERT CS DSPTAB +11D # INVERT GIMBAL LOCK LAMP. 006930,000632: 06,2501 74746 MASK BIT6 006931,000633: 06,2502 64735 AD BIT15 # TO INDICATE CHANGE IN DSPTAB +11D. 006932,000634: 06,2503 57035 XCH DSPTAB +11D 006933,000635: 06,2504 72162 MASK OCT37737 006934,000636: 06,2505 27035 ADS DSPTAB +11D 006935,000637: 06,2506 15270 TCF GLOCKOK 006936,000638: 006937,000639: 06,2507 02766 GLAMPTST TC LAMPTEST # TURN OFF UNLESS LAMP TEST IN PROGRESS. 006938,000640: 06,2510 15270 TCF GLOCKOK 006939,000641: 06,2511 12500 TCF GLINVERT 006940,000642: 006941,000643: 06,2512 63434 -70DEGS DEC -.38888 # -70 DEGREES SCALED IN HALF-REVOLUTIONS. 006942,000644: 06,2513 75252 -15DEGS DEC -.08333 006943,000645: 006944,000646: # Page 178 006945,000647: # PROGRAM NAME: TLIM. 006946,000648: 006947,000649: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MAINTAINS THE TEMP LAMP (BIT 4 OF CHANNEL 11) ON THE DSKY TO AGREE WITH 006948,000650: # THE TEMP SIGNAL FROM THE ISS (BIT 15 OF CHANNEL 30). HOWEVER, THE LIGHT WILL NOT BE TURNED OFF IF A LAMP TEST 006949,000651: # IS IN PROGRESS. 006950,000652: 006951,000653: # CALLING SEQUENCE: CALLED BY IMUMON ON A CHANGE OF BIT 15 OF CHANNEL 30. 006952,000654: 006953,000655: # JOBS OR TASKS INITIATED: NON. 006954,000656: 006955,000657: # SUBROUTINES CALLED: LAMPTEST. 006956,000658: 006957,000659: # ERASABLE INITIALIZATION: FRESH START AND RESTART TURN THE TEMP LAMP OFF. 006958,000660: 006959,000661: # ALARMS: TEMP LAMP TURNED ON WHEN THE IMU TEMP GOES OUT OF LIMITS. 006960,000662: 006961,000663: # EXIT: NXTIFAIL. 006962,000664: 006963,000665: # OUTPUT: SERVICE OF TEMP LAMP. IN A, EXCEPT FOR TLIM. 006964,000666: 006965,000667: 06,2514 74733 TLIM MASK POSMAX # REMOVE BIT FROM WORD OF CHANGES AND SET 006966,000668: 06,2515 54071 TS RUPTREG2 # DSKY TEMP LAMP ACCORDINGLY. 006967,000669: 006968,000670: 06,2516 11277 CCS IMODES30 006969,000671: 06,2517 12525 TCF TEMPOK 006970,000672: 06,2520 12525 TCF TEMPOK 006971,000673: 006972,000674: 06,2521 34750 CAF BIT4 # TURN ON LAMP. 006973,000675: 06,2522 00006 EXTEND 006974,000676: 06,2523 05011 WOR DSALMOUT 006975,000677: 06,2524 12225 TCF NXTIFAIL 006976,000678: 006977,000679: 06,2525 02766 TEMPOK TC LAMPTEST # IF TEMP NOW OK, DON'T TURN OFF LAMP IF 006978,000680: 06,2526 12225 TCF NXTIFAIL # LAMP TEST IN PROGRESS. 006979,000681: 006980,000682: 06,2527 44750 CS BIT4 006981,000683: 06,2530 00006 EXTEND 006982,000684: 06,2531 03011 WAND DSALMOUT # TURN OFF LAMP 006983,000685: 06,2532 12225 TCF NXTIFAIL 006984,000686: 006985,000687: # Page 179 006986,000688: # PROGRAM NAME: ITURNON. 006987,000689: 006988,000690: # FUNCTIONAL DESCRIPTION: THIS PROGRAM IS CALLED BY IMUMON WHEN A CHANGE OF BIT 14 OF CHANNEL 30 (ISS TURN-ON 006989,000691: # REQUEST) IS DETECTED. UPON ENTRY, ITURNON CHECKS IF A TURN-ON DELAY SEQUENCE HAS FAILED, AND IF SO, IT EXITS. 006990,000692: # IF NOT, IT CHECKS WHETHER THE TURN-ON REQUEST CHANGE IS TO ON OR OFF. IF ON, IT SETS BIT7 OF IMODES30 TO 1 SO 006991,000693: # THAT TNONTEST WILL INITIATE THE ISS INITIALIZATION SEQUENCE. IF OFF, THE TURN-ON DELAY SIGNAL, CHANNEL 12 BIT 006992,000694: # 15, IS CHECKED AND IF IT IS ON, ITURNON EXITS. IF THE DEALY SIGNAL IS OFF, PROGRAM ALARM 00207 IS ISSUED, BIT 2 006993,000695: # OF IMODES30 IS SET TO 1 AND THE PROGRAM EXITS. 006994,000696: 006995,000697: # THE SETTING OF BIT 2 OF IMODES30 (ISS DELAY SEQUENCE FAIL) INHIBITS THIS ROUTINE AND IMUOP FROM 006996,000698: # PROCESSING ANY CHANGES. THIS BIT WILL BE RESET BY THE ENDTNON ROUTINE WHEN THE CURRENT 90 SECOND DELAY PERIOD 006997,000699: # ENDS. 006998,000700: 006999,000701: # CALLING SEQUENCE: FROM IMUMON WHEN ISS TURN-ON REQUEST CHANGES STATE. 007000,000702: 007001,000703: # JOBS OR TASKS INITITIATED: NONE. 007002,000704: 007003,000705: # SUBROUTINES CALLED: ALARM, IF THE ISS TURN-ON REQUEST IS NOT PRESENT FOR 90 SECONDS. 007004,000706: 007005,000707: # ERASABLE INITIALIZATION: FRESH START AND RESTART SET BIT 15 OF CHANNEL 12 AND BITS 2 AND 7 OF IMODES30 TO 0, 007006,000708: # AND BIT 14 OF IMODES30 TO 1. 007007,000709: 007008,000710: # ALARMS: PROGRAM ALARM 00207 IS ISSUED IF THE ISS TURN-ON REQUEST SIGNAL IS NOT PRESENT FOR 90 SECONDS. 007009,000711: 007010,000712: # EXIT: NXTIFAIL. 007011,000713: 007012,000714: # OUTPUT: BIT 7 OF IMODES30 TO START ISS INITIALIZATION, OR BIT 2 OF IMODES30 AND PROGRAM ALARM 00207 TO INDICATE 007013,000715: # A FAILED TURN-ON SEQUENCE. 007014,000716: 007015,000717: 06,2533 34752 ITURNON CAF BIT2 # IF DELAY REQUEST HAS GONE OFF 007016,000718: 06,2534 71277 MASK IMODES30 # PREMATURELY, DO NOT PROCESS ANY CHANGES 007017,000719: 06,2535 10000 CCS A # UNTIL THE CURRENT 90 SEC WAIT EXPIRES. 007018,000720: 06,2536 12225 TCF NXTIFAIL 007019,000721: 007020,000722: 06,2537 34736 CAF BIT14 # SEE IF JUST ON OR OFF. 007021,000723: 06,2540 71277 MASK IMODES30 007022,000724: 06,2541 00006 EXTEND 007023,000725: 06,2542 12556 BZF ITURNON2 # IF JUST ON. 007024,000726: 007025,000727: 06,2543 34735 CAF BIT15 007026,000728: 06,2544 00006 EXTEND # SEE IF DELAY PRESENT DISCRETE HAS BEEN 007027,000729: 06,2545 02012 RAND CHAN12 # SENT. IF SO, ACTION COMPLETE 007028,000730: 06,2546 00006 EXTEND 007029,000731: 06,2547 12551 BZF +2 007030,000732: 06,2550 12225 TCF NXTIFAIL 007031,000733: 007032,000734: 06,2551 34752 CAF BIT2 # IF NOT, SET BIT TO INDICATE REQUEST NOT 007033,000735: 06,2552 27277 ADS IMODES30 # PRESENT FOR FULL DURATION. 007034,000736: 06,2553 05567 TC ALARM 007035,000737: 06,2554 00207 OCT 207 007036,000738: 06,2555 12225 TCF NXTIFAIL 007037,000739: 007038,000740: # Page 180 007039,000741: 06,2556 41277 ITURNON2 CS IMODES30 # SET BIT7 TO INDICATE WAIT OF 1 SAMPLE 007040,000742: 06,2557 74745 MASK BIT7 007041,000743: 06,2560 27277 ADS IMODES30 007042,000744: 06,2561 32564 CAF RRINIT 007043,000745: 06,2562 54110 TS RADMODES 007044,000746: 06,2563 12225 TCF NXTIFAIL 007045,000747: 007046,000748: 06,2564 00102 RRINIT OCT 00102 007047,000749: 007048,000750: # Page 181 007049,000751: # PROGRAM NAME: IMUCAGE. 007050,000752: 007051,000753: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES OF THE IMUCAGE INBIT, CHANNEL 30 BITS 11. IF THE BIT 007052,000754: # CHANGES TO 0 (CAGE BUTTON PRESSED), THE ISS IS CAGED (ICDU ZERO + COARSE ALIGN + NO ATT LAMP) UNTIL THE 007053,000755: # ASTRONAUT SELECTS ANOTHER PROGRAM TO ALIGN THE ISS. ANY PULSE TRAINS TO THE ICDU'S AND GYRO'S ARE TERMINATED, 007054,000756: # THE ASSOCIATE OUTCOUNTERS ARE ZEROED AND THE GYRO'S ARE DE-SELECTED. NO ACTION OCCURS WHEN THE BUTTON IS 007055,000757: # RELEASED (INBIT CHANGES TO 1). 007056,000758: 007057,000759: # CALLING SEQUENCE: BY IMUMON WHEN IMU CAGE BIT CHANGES. 007058,000760: 007059,000761: # JOBS OR TASKS INITIATED: NONE. 007060,000762: 007061,000763: # SUBROUTINES CALLED: CAGESUB. 007062,000764: 007063,000765: # ERASABLE INITIALZATION: FRESH START AND RESTART SET BIT 11 OF IMODES30 TO 1. 007064,000766: 007065,000767: # ALARMS: NONE. 007066,000768: 007067,000769: # EXIT: NXTIFAIL. 007068,000770: 007069,000771: # OUTPUT: ISS CAGED, COUNTERS ZEROED, PULSE TRAINS TERMINATED AND NO ATT LAMP LIT. 007070,000772: 007071,000773: 06,2565 10000 IMUCAGE CCS A # NO ACTION OF GOING OFF. 007072,000774: 06,2566 12361 TCF ISSZERO 007073,000775: 06,2567 43002 CS OCT77000 # TERMINATE ICDU, RCDU, GYRO PULSE TRAINS 007074,000776: 06,2570 00006 EXTEND 007075,000777: 06,2571 03014 WAND CHAN14 007076,000778: 007077,000779: 06,2572 42776 CS OCT272 # KNOCK DOWN DISPLAY INERTIAL DATA, IMU 007078,000780: 06,2573 00006 EXTEND # ERROR COUNTER ENABLE, ZERO ICDU, COARSE 007079,000781: 06,2574 03012 WAND CHAN12 # ALIGN ENABLE, RR ERROR COUNTER ENABLE. 007080,000782: 007081,000783: 06,2575 44745 CS ENGONBIT # INSURE ENGONFLG IS CLEAR. 007082,000784: 06,2576 70101 MASK FLAGWRD5 007083,000785: 06,2577 54101 TS FLAGWRD5 007084,000786: 06,2600 44355 CS PRIO30 # TURN ENGINE OFF. 007085,000787: 06,2601 00006 EXTEND 007086,000788: 06,2602 02011 RAND DSALMOUT 007087,000789: 06,2603 64736 AD BIT14 007088,000790: 06,2604 00006 EXTEND 007089,000791: 06,2605 01011 WRITE DSALMOUT # FORCE BIT14=1, BIT13=0. 007090,000792: 007091,000793: 06,2606 02743 TC CAGESUB1 007092,000794: 007093,000795: 06,2607 04674 TC IBNKCALL # KNOCK DOWN TRACK, REFSMMAT, DRIFT FLAGS 007094,000796: 06,2610 17166 CADR RNDREFDR 007095,000797: 007096,000798: 06,2611 44755 CS ZERO 007097,000799: 06,2612 54050 TS CDUXCMD 007098,000800: 06,2613 54051 TS CDUYCMD 007099,000801: # Page 182 007100,000802: 06,2614 54052 TS CDUZCMD 007101,000803: 06,2615 54047 TS GYROCMD 007102,000804: 007103,000805: 06,2616 43001 CS OCT740 # HAVING WAITED AT LEAST 27 MCT FROM 007104,000806: 06,2617 00006 EXTEND # GYRO PULSE TRAIN TERMINATION, WE CAN 007105,000807: 06,2620 03014 WAND CHAN14 # D-SELECT THE GYROS. 007106,000808: 06,2621 12225 TCF NXTIFAIL 007107,000809: 007108,000810: # Page 183 007109,000811: # PROGRAM NAME: IMUOP. 007110,000812: 007111,000813: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES IN TEH ISS OPERATE DISCRETE, BIT 9 OF CHANNEL 30. 007112,000814: # IF THE INBIT CHANGES TO 0, INDICATING ISS ON, IMUOP GENERALLY SETS BIT 7 OF IMODES30 TO 1 TO REQUEST ISS 007113,000815: # INITIALIZATION VIA TNONTEST. AN EXCEPTION IS DURING A FAILED ISS DELAY DURING WHICH BIT 2 OF IMODES30 IS SET 007114,000816: # TO 1 AND NO FURTHER INITIALIZATION IS REQUIRED. WHEN THE INBIT CHANGES TO 1, INDICATING ISS OFF, IMUSEFLG IS 007115,000817: # TESTED TO SEE IF ANY PROGRAM WAS USING THE ISS. IF SO, PROGRAM ALARM 00214 IS ISSUED. 007116,000818: 007117,000819: # CALLING SEQUENCE: BY IMUMON WHEN BIT 9 OF CHANNEL 30 CHANGES. 007118,000820: 007119,000821: # JOBS OR TAKS INITIATED: NONE. 007120,000822: # 007121,000823: # SUBROUTINES CALLED: ALARM, IF ISS IS TURNED OFF WHILE IN USE. 007122,000824: 007123,000825: # ERASABLE INITIALIZATION: ON FRESH START AND RESTART, BIT 9 OF IMODES30 IS SET TO 1 EXCEPT WHEN THE GIMBAL LOCK 007124,000826: # LAMP IS ON, IN WHICH CASE IT IS SET TO 0. THIS PREVENTS ICDU ZERO BY TNONTEST WITH THE ISS IN GIMBAL LOCK. 007125,000827: 007126,000828: # ALARMS: PROGRAM ALARM 00214 IF THE ISS IS TURNED OFF WHILE IN USE. 007127,000829: 007128,000830: # EXIT: NXTIFAIL. 007129,000831: 007130,000832: # OUTPUT: ISS INITIALIZATION REQUEST (IMODES30 BIT 7) OR PROGRAM ALARM 00214. 007131,000833: 007132,000834: 06,2622 00006 IMUOP EXTEND 007133,000835: 06,2623 12643 BZF IMUOP2 007134,000836: 007135,000837: 06,2624 41300 CS IMODES33 # DISABLE DAP 007136,000838: 06,2625 74746 MASK BIT6 007137,000839: 06,2626 27300 ADS IMODES33 007138,000840: 007139,000841: 06,2627 04674 TC IBNKCALL # KNOCK DOWN TRACK, REFSMMAT, DRIFT FLAGS 007140,000842: 06,2630 17166 CADR RNDREFDR 007141,000843: 007142,000844: 06,2631 42777 CS BITS7&8 # KNOCK DOWN RENDEZVOUS, IMUUSE FLAGS 007143,000845: 06,2632 70074 MASK FLAGWRD0 007144,000846: 06,2633 56074 XCH FLAGWRD0 # IF GOING OFF, ALARM IF PROG USING IMU. 007145,000847: 06,2634 40000 COM 007146,000848: 06,2635 74744 MASK IMUSEFLG 007147,000849: 06,2636 10000 CCS A 007148,000850: 06,2637 12225 TCF NXTIFAIL 007149,000851: 007150,000852: 06,2640 05567 TC ALARM 007151,000853: 06,2641 00214 OCT 214 007152,000854: 06,2642 12225 TCF NXTIFAIL 007153,000855: 007154,000856: 06,2643 34752 IMUOP2 CAF BIT2 # SEE IF FAILED ISS TURN-ON SEQ IN PROG. 007155,000857: 06,2644 71277 MASK IMODES30 007156,000858: 06,2645 10000 CCS A 007157,000859: 06,2646 12225 TCF NXTIFAIL # IF SO, DON'T PROCESS UNTIL PRESENT 90 007158,000860: 06,2647 12556 TCF ITURNON2 # SECONDS EXPIRES 007159,000861: 007160,000862: # Page 184 007161,000863: # PROGRAM NAME: PIPFAIL 007162,000864: 007163,000865: # FUNCITONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES OF BIT 13 OF CHANNEL 33, PIPA FAIL. IT SETS BIT 10 OF 007164,000866: # IMODES30 TO AGREE. IT CALLS SETISSW IN CASE A PIPA FAIL NECESSITATES AN ISS WARNING. IF NOT, I.E., MODES30 007165,000867: # BIT 1 = 1, AND A PIPA FAIL IS PRESENT AND THE ISS NOT BEING INITIALIZED, PROGRAM ALARM 0212 IS ISSUED. 007166,000868: 007167,000869: # CALLING SEQUENCE: BY C33TEST ON CHANGES OF CHANNEL 33 BIT 13. 007168,000870: 007169,000871: # JOBS OR TASKS INITIATED: NONE. 007170,000872: 007171,000873: # SUBROUTINES CALLED: 1) SETISSW, AND 2) ALARM (SEE FUNCITONAL DESCRIPTION). 007172,000874: 007173,000875: # ERASABLE INITIALZIZATION: SEE IMUMON FOR INITIALIZATION OF IMODES30. THE RELEVANT BITS ARE 5, 7, 8, 9, AND 10. 007174,000876: 007175,000877: # ALARMS: PROGRAM ALARM 00212 IF PIPA FAIL IS PRESENT BUT NEITHER ISS WARNING IS TO BE ISSUED NOR THE ISS IS 007176,000878: # BEING INITIALIZED. 007177,000879: 007178,000880: # EXIT: NXTFL33. 007179,000881: 007180,000882: # OUTPUT: PROGRAM ALARM 00212 AND ISS WARNING MAINTENANCE. 007181,000883: 007182,000884: 06,2650 10000 PIPFAIL CCS A # SET BIT10 IN IMODES30 SO ALL ISS WARNING 007183,000885: 06,2651 34742 CAF BIT10 # INFO IS IN ONE REGISTER. 007184,000886: 06,2652 57277 XCH IMODES30 007185,000887: 06,2653 73004 MASK -BIT10 007186,000888: 06,2654 27277 ADS IMODES30 007187,000889: 007188,000890: 06,2655 02703 TC SETISSW 007189,000891: 007190,000892: 06,2656 41277 CS IMODES30 # IF PIP FAIL DOESN'T LIGHT TEST WARNING, DO 007191,000893: 06,2657 74753 MASK BIT1 # A PROGRAM ALARM IF IMU OPERATING BUT NOT 007192,000894: 06,2660 10000 CCS A # CAGED OR BEING TURNED ON. 007193,000895: 06,2661 12432 TCF NXTFL33 007194,000896: 007195,000897: 06,2662 31277 CA IMODES30 007196,000898: 06,2663 73000 MASK OCT1720 007197,000899: 06,2664 10000 CCS A 007198,000900: 06,2665 12432 TCF NXTFL33 # ABOVE CONDITION NOT MET. 007199,000901: 007200,000902: 06,2666 05567 TC ALARM 007201,000903: 06,2667 00212 OCT 212 007202,000904: 06,2670 12432 TCF NXTFL33 007203,000905: 007204,000906: # Page 185 007205,000907: # PROGRAM NAMES: DNTMFAST, UPTMFAST 007206,000908: 007207,000909: # FUNCTIONAL DESCRIPTION: THESE PROGRAMS PROCESS CHANGES OF BITS 12 AND 11 OF CHANNEL 33. IF A BIT CHANGES TO A 007208,000910: # 0, A PROGRAM ALARM IS ISSUED. THE LAARMS ARE: 007209,000911: 007210,000912: # BIT ALARM CAUSE 007211,000913: # --- ----- ----- 007212,000914: # 12 01105 DOWNLINK TOO FAST 007213,000915: # 11 01106 UPLINK TOO FAST 007214,000916: 007215,000917: # CALLING SEQUENCE: BY C33TEST ON A BIT CHANGE. 007216,000918: 007217,000919: # SUBROUTINES CALLED: ALARM, IF A BIT CHANGES TO A 0. 007218,000920: 007219,000921: # ERASABLE INITIALIZATION: FRESH START OR RESTART, BITS 12 AND 11 OF IMODES33 ARE SET TO 1. 007220,000922: 007221,000923: # ALARMS: SET FUNCTGIONAL DESCRIPTION. 007222,000924: 007223,000925: # EXIT: NXTFL33. 007224,000926: 007225,000927: # OUTPUT: PROGRAM ALARM ON A BIT CHANGE TO 0. 007226,000928: 007227,000929: 06,2671 10000 DNTMFAST CCS A # DO PROG ALARM IF TM TOO FAST. 007228,000930: 06,2672 12432 TCF NXTFL33 007229,000931: 007230,000932: 06,2673 05567 TC ALARM 007231,000933: 06,2674 01105 OCT 1105 007232,000934: 06,2675 12432 TCF NXTFL33 007233,000935: 007234,000936: 06,2676 10000 UPTMFAST CCS A # SAME AS DNLINK TOO FAST WITH DIFFERENT 007235,000937: 06,2677 12432 TCF NXTFL33 # ALARM CODE. 007236,000938: 007237,000939: 06,2700 05567 TC ALARM 007238,000940: 06,2701 01106 OCT 1106 007239,000941: 06,2702 12432 TCF NXTFL33 007240,000942: 007241,000943: # Page 186 007242,000944: # PROGRAM NAME: SETISSW 007243,000945: 007244,000946: # FUNCTIONAL DESCRIPTION: THIS PROGRAM TURNS THE ISS WARNING LAMP ON AND OFF (CHANNEL 11 BIT 1 = 1 FOR ON, 007245,000947: # 0 FOR OFF) DEPENDING ON THE STATUS OF IMODES30 BITS 13 (IMU FAIL) AND 4 (INHIBIT IMU FAIL), 12 (ICDU FAIL) AND 007246,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 007247,000949: # PROGRESS. 007248,000950: 007249,000951: # CALLING SEQUENCE: CALLED BY IMUMON ON CHANGES TO IMU FAIL AND ICDU FAIL. CALLED BY IFAILCK AND PFAILOK UPON 007250,000952: # REMOVAL OF THE FAIL INHIBITS. CALLED BY PIPFAIL WHEN THE PIPA FAIL DISCRETE CHANGES. IT IS CALLED BY PIPUSE 007251,000953: # SINCE THE PIPA FAIL PROGRAM ALARM MAY NECESSITATE AN ISS WARNING, AND LIKEWISE BY PIPFREE WHEN THE ALARM DEPARTS 007252,000954: # AND IT IS CALLED BY IMUZERO3 AND ISSUP AFTER THE FAIL INHIBITS HAVE BEEN REMOVED. 007253,000955: 007254,000956: # JOBS OR TASKS INITIAZTED: NONE. 007255,000957: 007256,000958: # SUBROUTINES CALLED: NONE. 007257,000959: 007258,000960: # ERASABLE INITIALIZATION: 007259,000961: 007260,000962: # 1) IMODES30 -- SEE IMUMON. 007261,000963: # 2) IMODES33 BIT 1 = 0 (LAMP TEST NOT IN PROGRESS). 007262,000964: 007263,000965: # ALARMS: ISS WARNING. 007264,000966: 007265,000967: # THE FOLLOWING PROGRAM ALARMS WILL SHOW WHICH FAILURE CAUSED THE ISS WARN 007266,000968: # PROGRAM ALARM 00777 PIPA FAIL 007267,000969: # PROGRAM ALARM 03777 ICDU FAIL 007268,000970: # PROGRAM ALARM 04777 ICDU, PIPA FAILS 007269,000971: # PROGRAM ALARM 07777 IMU FAIL 007270,000972: # PROGRAM ALARM 10777 IMU, PIPA FAILS 007271,000973: # PROGRAM ALARM 13777 IMU, ICDU FAILS 007272,000974: # PROGRAM ALARM 14777 IMU, ICDU, PIPA FAILS 007273,000975: 007274,000976: # EXIT: VIA Q. 007275,000977: 007276,000978: # OUTPUT: ISS WARNING LAMP SET PROPERLY. 007277,000979: 007278,000980: 06,2703 34761 SETISSW CAF OCT15 # SET ISS WARNING USING THE FAIL BITS IN 007279,000981: 06,2704 71277 MASK IMODES30 # BITS 13, 12, AND 10 OF IMODES30 AND THE 007280,000982: 06,2705 00006 EXTEND # FAILURE INHIBIT BITS IN POSITIONS 007281,000983: 06,2706 74742 MP BIT10 # 4, 3, AND 1. 007282,000984: 06,2707 31277 CA IMODES30 007283,000985: 06,2710 00006 EXTEND 007284,000986: 06,2711 04001 ROR LCHAN # 0 INDICATES FAILURE 007285,000987: 06,2712 40000 COM 007286,000988: 06,2713 75025 MASK OCT15000 007287,000989: 06,2714 10000 CCS A 007288,000990: 06,2715 12726 TCF ISSWON # FAILURE. 007289,000991: 007290,000992: 06,2716 34753 ISSWOFF CAF BIT1 # DON'T TURN OFF ISS WARNING IF LAMP TEST 007291,000993: 06,2717 71300 MASK IMODES33 # IN PROGRESS. 007292,000994: # Page 187 007293,000995: 06,2720 10000 CCS A 007294,000996: 06,2721 00002 TC Q 007295,000997: 007296,000998: 06,2722 44753 CS BIT1 007297,000999: 06,2723 00006 EXTEND 007298,001000: 06,2724 03011 WAND DSALMOUT 007299,001001: 06,2725 00002 TC Q 007300,001002: 007301,001003: 06,2726 00006 ISSWON EXTEND 007302,001004: 06,2727 22066 QXCH ITEMP6 007303,001005: 06,2730 05734 TC VARALARM # TELL EVERYONE WHAT CAUSED THE ISS WARNING 007304,001006: 06,2731 34753 CAF BIT1 007305,001007: 06,2732 00006 EXTEND 007306,001008: 06,2733 05011 WOR DSALMOUT 007307,001009: 06,2734 00066 TC ITEMP6 007308,001010: 007309,001011: 06,2735 43003 CAGESUB CS BITS6&15 # SET OUTBITS AND INTERNAL FLAGS FOR 007310,001012: 06,2736 00006 EXTEND # SYSTEM TURN-ON OR CAGE. DISABLE THE 007311,001013: 06,2737 03012 WAND CHAN12 # ERROR COUNTER AND REMOVE THE IMU DELAY COMP. 007312,001014: 06,2740 34763 CAF BITS4&5 # SEND ZERO AND COARSE. 007313,001015: 06,2741 00006 EXTEND 007314,001016: 06,2742 05012 WOR CHAN12 007315,001017: 007316,001018: 06,2743 41035 CAGESUB1 CS DSPTAB +11D # TURN ON NO ATT LAMP 007317,001019: 06,2744 72773 MASK OC40010 007318,001020: 06,2745 27035 ADS DSPTAB +11D 007319,001021: 007320,001022: 06,2746 41277 CAGESUB2 CS IMODES30 # SET FLAGS TO INDICATE CAGING OR TURN-ON 007321,001023: 06,2747 72775 MASK OCT75 # AND INHIBIT ALL ISS WARNING INFO 007322,001024: 06,2750 27277 ADS IMODES30 007323,001025: 007324,001026: 06,2751 41300 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES 007325,001027: 06,2752 74746 MASK BIT6 007326,001028: 06,2753 27300 ADS IMODES33 007327,001029: 007328,001030: 06,2754 00002 TC Q 007329,001031: 007330,001032: 06,2755 06,2703 IMUFAIL EQUALS SETISSW 007331,001033: 06,2755 06,2703 ICDUFAIL EQUALS SETISSW 007332,001034: 007333,001035: # Page 188 007334,001036: # JUMP TABLES AND CONSTANTS. 007335,001037: 007336,001038: 06,2755 12533 IFAILJMP TCF ITURNON # CHANNEL 30 DISPATCH. 007337,001039: 06,2756 12703 TCF IMUFAIL 007338,001040: 06,2757 12703 TCF ICDUFAIL 007339,001041: 06,2760 12565 TCF IMUCAGE 007340,001042: 06,2761 76400 30RDMSK OCT 76400 # (BIT 10 NOT SAMPLED HERE). 007341,001043: 06,2762 12622 TCF IMUOP 007342,001044: 007343,001045: 06,2763 12650 C33JMP TCF PIPFAIL # CHANNEL 33 DISPATCH. 007344,001046: 06,2764 12671 TCF DNTMFAST 007345,001047: 06,2765 12676 TCF UPTMFAST 007346,001048: 007347,001049: # SUBROUTINE TO SKIP IF LAMP TEST NOT IN PROGRESS. 007348,001050: 007349,001051: 06,2766 41300 LAMPTEST CS IMODES33 # BIT 1 OF IMODES33 = 1 IF LAMP TEST IN 007350,001052: 06,2767 74753 MASK BIT1 # PROGRESS. 007351,001053: 06,2770 10000 CCS A 007352,001054: 06,2771 24002 INCR Q 007353,001055: 06,2772 00002 TC Q 007354,001056: 007355,001057: 06,2773 5026 33RDMSK EQUALS PRIO16 007356,001058: 06,2773 40010 OC40010 OCT 40010 007357,001059: 06,2774 00054 OCT54 OCT 54 007358,001060: 06,2775 00075 OCT75 OCT 75 007359,001061: 06,2776 00272 OCT272 OCT 00272 007360,001062: 06,2777 00300 BITS7&8 OCT 300 007361,001063: 06,3000 01720 OCT1720 OCT 1720 007362,001064: 06,3001 00740 OCT740 OCT 00740 007363,001065: 06,3002 5025 OCT15000 EQUALS PRIO15 007364,001066: 06,3002 77000 OCT77000 OCT 77000 007365,001067: 06,3003 40040 BITS6&15 OCT 40040 007366,001068: 06,3004 76777 -BIT10 OCT -1000 007367,001069: 007368,001070: 06,3005 21450 90SECS DEC 9000 B-14 007369,001071: 06,3006 5741 120MS = OCT14 # (DEC12) 007370,001072: 06,3006 5270 GLOCKOK EQUALS RESUME 007371,001073: 007372,001074: # Page 189 007373,001075: # PROGRAM NAME: RRAUTCHK 007374,001076: 007375,001077: # FUNCITONAL DESCRIPTION: 007376,001078: # RRAUTCHK IS THE RENDEZFOUS RADAR INBIT MONITOR. INITIALLY THE RR 007377,001079: # POWER ON AUTO (CHAN 33 BIT 2) INBIT IS CHECKED. IF NO CHANGE, THE 007378,001080: # PROGRAM EXITS TO RRCDUCHK. IF A CHANGE, RADMOES IS UPDATED 007379,001081: # AND A CHECK MADE IF RR POWER HAS JUST COME ON. IF JUST OFF, A CHECK 007380,001082: # IS MAKDE TO SEE IF A PROGRAM WAS USING THE RR (STATE BIT 7). IF NO, 007381,001083: # THE PROGRAM EXITS TO RRCDUCHK. IF YES, PROGRAM ALARM 00514 007382,001084: # IS REQUESTED BEFORE EXITING TO RRCDUCHK. IF RR POWER HAS JUST COME 007383,001085: # ON, A CHECK IS MADE TO SEE IF A PROGRAM WAS USING THE RR (STATE BIT 7) 007384,001086: # SEQUENCE. IF NO, RADMODES IS UPDATED TO INDICATE RR CDU ZERO AND 007385,001087: # RR TURN-ON SEQUENCE (BITS 13, 1). A 10 MILLISECOND WAITLIST CALL 007386,001088: # IS THEN SET FOR RRTURNON BEFORE THE PROGRAM EXITS TO NORRGMON. 007387,001089: 007388,001090: # CALLING SEQUENCE: 007389,001091: # T4RUPT EVERY 480 MILLISECONDS 007390,001092: 007391,001093: # ERASABLE INITIALIZATION REQUIRED: 007392,001094: # RADMODES, STATE. 007393,001095: 007394,001096: # SUBROUTINES CALLED: 007395,001097: # WAITLIST. 007396,001098: 007397,001099: # JOBS OR TASKS INITIATED: 007398,001100: # RRTURNON 007399,001101: 007400,001102: # ALARMS: PROGRAM ALARM 00514 -- RADAR GOES OUT OF AUTO MODE WHILE BEING 007401,001103: # USED. 007402,001104: 007403,001105: # EXIT: RRCDUCHK, NORRGMON 007404,001106: 007405,001107: 06,3006 30110 RRAUTCHK CA RADMODES # SEE IF CHANGE IN RR AUTO MODE BIT. 007406,001108: 06,3007 00006 EXTEND 007407,001109: 06,3010 06033 RXOR CHAN33 007408,001110: 06,3011 74752 MASK AUTOMBIT 007409,001111: 06,3012 00006 EXTEND 007410,001112: 06,3013 13037 BZF RRCDUCHK 007411,001113: 007412,001114: 06,3014 22110 LXCH RADMODES # UPDATE RADMODES. 007413,001115: 06,3015 00006 EXTEND 007414,001116: 06,3016 06001 RXOR LCHAN 007415,001117: 06,3017 73033 MASK OCT05776 # CLR CONT. DES., REMODE, REPOS, CDUZERO, 007416,001118: 06,3020 54110 TS RADMODES # AND TURNON BITS. 007417,001119: 06,3021 74752 MASK BIT2 # SEE IF JUST ON. 007418,001120: 06,3022 10000 CCS A 007419,001121: 06,3023 13034 TCF RRCDUCHK -3 # OFF. GO DISABLE RR CDU ERROR COUNTERS. 007420,001122: 06,3024 37666 CA OCT10001 # SET RRCDUZRO AND TURNON BITS. 007421,001123: 06,3025 26110 ADS RADMODES 007422,001124: 007423,001125: # Page 190 007424,001126: 06,3026 34753 CAF ONE 007425,001127: 06,3027 05203 TC WAITLIST 007426,001128: 06,3030 E7,1456 EBANK= LOSCOUNT 007427,001129: 06,3030 02073 52107 2CADR RRTURNON 007428,001130: 007429,001131: 06,3032 13126 TCF NORRGMON 007430,001132: 007431,001133: 06,3033 05776 OCT05776 OCT 5776 007432,001134: 007433,001135: # Page 191 007434,001136: # PROGRAM NAME: RRCDUCHK 007435,001137: 007436,001138: # FUNCTIONAL DESCRIPTION: 007437,001139: # RRCDUCHK CHECKS FOR RR CDU FAIL (CHAN 30 BIT 7). INITIALLY THE 007438,001140: # RR CDU FAIL BIT IS SAMPLED (CHAN 30 BIT 7). IF NO CHANGE, THE 007439,001141: # PROGRAM EXITS TO RRGIMON. IF A CHANGE, THE RR AUTO MODE 007440,001142: # (RADMODES BIT 2) BIT IS CHECKED. IF NOT IN RR AUTO MODE, THE 007441,001143: # PROGRAM EXITS TO NORRGMO0N. IF IN AUTO MODE, RADMODES BIT 7 007442,001144: # (RR CDU OK) IS UPDATED AND IF P-20 IS OPERATING PROGRAM ALARM 00515 IS 007443,001145: # REQUESTED. CONTROL IS TRANSFERRED TO SETTRKF TO UPDATE 007444,001146: # TEH TRACKER FAIL LAMP (DSPTAB+11D BIT 8). CONTROL RETURNS TO 007445,001147: # RRGIMON. 007446,001148: 007447,001149: # CALLING SEQUENCE: 007448,001150: # EVERY 480 MILLISECONDS FROM RRAUTCHK (VI T4RUPT) UNLESS A 007449,001151: # TURN-ON SEQUENCE HAS JUST BE INITIATED. 007450,001152: 007451,001153: # ERASABLE INITIALIZATION REQUIRED: 007452,001154: # RADMODES 007453,001155: 007454,001156: # SUBROUTINES CALLED: 007455,001157: # SETTRKF 007456,001158: 007457,001159: # JOBS OR TASKS INITIATED: 007458,001160: # NONE 007459,001161: 007460,001162: # ALARMS: 007461,001163: # TRACKER FAIL 007462,001164: # PROGRAM ALARM 00515 -- RRCDU FAIL DURING P-20 007463,001165: 007464,001166: # EXIT: 007465,001167: # RRGIMON, NORRGMON 007466,001168: 007467,001169: 06,3034 44752 -3 CS BIT2 007468,001170: 06,3035 00006 EXTEND 007469,001171: 06,3036 03012 WAND CHAN12 # AT TURNON, DISABLE CDU ERROR COUNTERS. 007470,001172: 007471,001173: 06,3037 30110 RRCDUCHK CA RADMODES # LAST SAMPLED BIT IN RADMODES. 007472,001174: 06,3040 00006 EXTEND 007473,001175: 06,3041 06030 RXOR CHAN30 007474,001176: 06,3042 74745 MASK RCDUFBIT 007475,001177: 06,3043 00006 EXTEND 007476,001178: 06,3044 13071 BZF RRGIMON 007477,001179: 007478,001180: 06,3045 34752 CAF AUTOMBIT # IF RR NOT IN AUTO MODE, DON'T CHANGE BIT 007479,001181: 06,3046 70110 MASK RADMODES # 7 OF RADMODES. IF THIS WERE NOT DONE, 007480,001182: 06,3047 10000 CCS A # THE TRACKER FAIL MIGHT COME ON WHEN 007481,001183: 06,3050 13126 TCF NORRGMON # JUST READING LR DATA. 007482,001184: 007483,001185: 06,3051 34745 CAF RCDUFBIT # SET BIT 7 OF RADMODES FOR SETTRKF. 007484,001186: # Page 192 007485,001187: 06,3052 22110 LXCH RADMODES # UPDATE RADMODES. 007486,001188: 06,3053 00006 EXTEND 007487,001189: 06,3054 06001 RXOR L 007488,001190: 06,3055 54110 TS RADMODES 007489,001191: 007490,001192: 06,3056 30110 CA RADMODES # DID RR CDU FAIL 007491,001193: 06,3057 74615 MASK 13,7,2 # CDU ZERO+ CDUFAIL+ RR AUTO 007492,001194: 06,3060 10000 CCS A 007493,001195: 06,3061 13070 TCF TRKFLCDU # NO 007494,001196: 06,3062 40074 CS FLAGWRD0 # RNDVFLG P20 OR P22 OPERATING 007495,001197: 06,3063 74745 MASK RNDVZBIT 007496,001198: 06,3064 10000 CCS A 007497,001199: 06,3065 13070 TCF TRKFLCDU # NO 007498,001200: 06,3066 05567 TC ALARM # YES 007499,001201: 06,3067 00515 OCT 00515 007500,001202: 06,3070 04564 TRKFLCDU TC SETTRKF # UPDATE TRAKER FAIL LAMP ON DSKY. 007501,001203: 007502,001204: # Page 193 007503,001205: # PROGRAM NAME: RRGIMON 007504,001206: 007505,001207: # FUNCTIONAL DESCRIPTION: 007506,001208: # RRGIMON IS THE RR GIMBAL LIMIT MONITOR. INITIALLY THE FOLLOWING IS 007507,001209: # CHECKED: REMOD, RR CDU'S BEING ZEROED, REPOSITION, AND RR 007508,001210: # NOT IN AUTO MODE (RADMODES BITS 14, 13, 11, 2). IF ANY OF THESE 007509,001211: # EXIST THE PROGRAM EXITS TO GPMATRIX. IF NONT ARE PRESENT RRLIMCHK 007510,001212: # IS CALLED TO SEE IF THE PRESENT RR CDU ANGLES (OPTY, OPTX) ARE WITHIN 007511,001213: # THE LIMITS OF THE CURRENT MODE. IF WITHIN LIMITS, THE PROGRAM EXITS 007512,001214: # TO NORRGMON. IF NOT WITHIN LIMITS, THE REPOSITION FLAG (RADMODES 007513,001215: # BIT 11) IS SET, THE RR AUTO TRACKER AND RR ERROR COUNTER 007514,001216: # (CHAN 12 BITS 14, 2) ARE DISABLED, AND A 20 MILLISECOND WAITLIST 007515,001217: # CALL IS SET FOR DORREPOS (garbled) AFTER WHICH THE PROGRAM EXITS TO NORRGMON. 007516,001218: 007517,001219: # CALLING SEQUENCE: 007518,001220: # EVERY 480 MILLISECONDS FROM RRCDUCHK (VIA T4RUPT) UNLESS TURN-ON 007519,001221: # HAS JUST BEEN INITIATED VIA RRAUTCHK OR IF THERE HAS BEEN A CHANGE IN 007520,001222: # THE RR CDU FAIL BIT (CHAN 30 BIT 7) AND THE RR IS NOT IN THE AUTO MODE 007521,001223: # (RADMODES BIT 2). 007522,001224: 007523,001225: # ERASABLE INITIALZATION: RADMODES 007524,001226: 007525,001227: # SUBROUTINES CALLED: 007526,001228: # RRLIMCHK, WAITLIST 007527,001229: 007528,001230: # JOBS OR TASKS INITIATED: 007529,001231: # DORREPOS 007530,001232: 007531,001233: # ALARMS: 007532,001234: # NONE 007533,001235: 007534,001236: # EXIT: 007535,001237: # NORRGMON 007536,001238: 007537,001239: 06,3071 30101 RRGIMON CAE FLAGWRD5 # IS NO ANGLE MONITOR FLAG SET 007538,001240: 06,3072 74750 MASK NORRMBIT 007539,001241: 06,3073 10000 CCS A 007540,001242: 06,3074 13126 TCF NORRGMON # YES -- SKIP LIMIT CHECK 007541,001243: 06,3075 40103 CS FLAGWRD7 # IS SERVICER RUNNING? 007542,001244: 06,3076 74747 MASK AVEGFBIT 007543,001245: 06,3077 10000 CCS A 007544,001246: 06,3100 13105 TCF +5 # NO. DO R25 007545,001247: 06,3101 30102 CA FLAGWRD6 # YES. IS MUNFLAG SET? 007546,001248: 06,3102 74744 MASK MUNFLBIT 007547,001249: 06,3103 10000 CCS A 007548,001250: 06,3104 13126 TCF NORRGMON # YES. DON'T DO R25 007549,001251: 06,3105 33135 +5 CAF OCT32002 # INHIBIT BY REMODE, ZEROING, MONITOR. 007550,001252: 06,3106 70110 MASK RADMODES # OR RR NOT IN AUTO. 007551,001253: 06,3107 10000 CCS A 007552,001254: 06,3110 13126 TCF NORRGMON 007553,001255: # Page 194 007554,001256: 06,3111 04523 TC RRLIMCHK # SET IF ANGLES IN LIMITS. 007555,001257: 06,3112 00035 ADRES CDUT 007556,001258: 007557,001259: 06,3113 13115 TCF MONREPOS 007558,001260: 007559,001261: 06,3114 13126 TCF NORRGMON # (ADDITIONAL CODING MAY GO HERE). 007560,001262: 007561,001263: 06,3115 34741 MONREPOS CAF REPOSBIT # SET FLAG TO SHOW REPOSITION IN PROGRESS. 007562,001264: 06,3116 26110 ADS RADMODES 007563,001265: 007564,001266: 06,3117 43136 CS OCT20002 # DISABLE TRACKER AND ERROR COUNTER. 007565,001267: 06,3120 00006 EXTEND 007566,001268: 06,3121 03012 WAND CHAN12 007567,001269: 007568,001270: 06,3122 34752 CAF TWO 007569,001271: 06,3123 05203 TC WAITLIST 007570,001272: 06,3124 E7,1456 EBANK= LOSCOUNT 007571,001273: 06,3124 02140 52107 2CADR DORREPOS 007572,001274: 007573,001275: 06,3126 30110 NORRGMON CA RADMODES # IF SELECT SWITCH IS NOT IN LGC, SEND RR 007574,001276: 06,3127 74752 MASK AUTOMBIT # CDU ZERO BIT TO PREVENT MEMORY CYCLE 007575,001277: 06,3130 10000 CCS A # SNATCHING BY MANIC RR CDUS. BIT2 OF 007576,001278: 06,3131 13132 NOOP # RADMODES AGREES WITH BIT2 OF CHANNEL 007577,001279: 06,3132 00006 EXTEND # 33. FOR THIS CODING, WHICH ASSUMES 007578,001280: 06,3133 05012 WOR CHAN12 # AUTOMBIT = BIT2, THANKS TO HUGH B-S. 007579,001281: 06,3134 13140 TCF ENDRRMON 007580,001282: 007581,001283: 06,3135 06,3140 ENDRRMON EQUALS DAPT4S 007582,001284: 007583,001285: 06,3135 32002 OCT32002 OCT 32002 007584,001286: 06,3136 20002 OCT20002 OCT 20002 007585,001287: 06,3137 02100 OCT02100 OCT 02100 # P20, P22 MASK BITS. 007586,001288: 007587,001289: # Page 195 007588,001290: # PROGRAM NAME: GPMATRIX (DAPT4S) MCD. NO. 2 DATE: OCTOBER 27, 1966 007589,001291: 007590,001292: # AUTHOR: JOHNATHAN D. ADDLELSTON (ADAMS ASSOCIATES) 007591,001293: 007592,001294: # MODIFIED: 7FEB. 1968 BY P. S. WEISSMAN TO DELETE COMPUTATION OF MR12 AND MR13, WHICH ARE NO LONGER REQUIRED. 007593,001295: 007594,001296: # THIS PROGRAM CALCULATES ALL FHTE SINGLE-PRECISION MATRIX ELEMENTS WHICH ARE USED BY LEM DAP TO TRANSFORM VECTORS 007595,001297: # FROM GIMBAL TO PILOT (BODY) AXES AND BACK AGAIN. THESE ELEMENTS ARE USED EXCLUSIVELY BY BASIC LANGUAGE ROUTINES 007596,001298: # AND THEREFORE ARE NOT ARRAYED FOR USE BY INTERPRETIVE PROGRAMS. 007597,001299: 007598,001300: # CALLING SEQUENCE: GPMATRIX IS TRANSFERRED TO FROM DAPT4S AND IS THUS EXECUTED 4 TIMES A SECOND BY T4RUPT. 007599,001301: # DAPT4S IS LISTED IN T4JUMP TABLE TWICE EXPLICITLY AND ALSO OCCURS AFTER RRAUTCHK (WHICH IS ALSO LISTED TWICE). 007600,001302: 007601,001303: # SUBROUTINES CALLED: SPSIN, SPCOS. 007602,001304: 007603,001305: # NORMAL EXIT MODE: TCF RESUME 007604,001306: 007605,001307: # ALARM AND ABORT MODES: NONE. 007606,001308: 007607,001309: # INPUT: CDUX, CDUY, CDUZ. 007608,001310: 007609,001311: # OUTPUT: M11, M21, M32, M22, M32. 007610,001312: 007611,001313: # AOG = CDUX, AIG = CDUY, AMG = CDUZ: MNEMONIC IS : OIM = XYZ 007612,001314: 007613,001315: # * SING(MG) 0 1 * 007614,001316: # M = * COS(MG)COS(OG) SIN(OG) 0 * 007615,001317: # GP * -COS(MG)SIN(OG) COS(OG) 0 * 007616,001318: 007617,001319: # * 0 COS(OG)/COS(MG) -SIN(OG)/COS(MG) * 007618,001320: # M = * 0 SIN(OG) COS(OG) * 007619,001321: # PG * 1 -SIN(MG)COS(OG)/COS(MG) SIN(MG)SIN(OG)/COS(MG) * 007620,001322: 007621,001323: 06,3140 E6,1414 EBANK= M11 007622,001324: 06,3140 06,3140 DAPT4S EQUALS GPMATRIX 007623,001325: 007624,001326: # T4RUPT DAP LOGIC: 007625,001327: 007626,001328: 06,3140 30034 GPMATRIX CAE CDUZ # SINGLE ENTRY POINT 007627,001329: 06,3141 05033 TC SPSIN # SIN(CDUZ) = SIN(MG) 007628,001330: 06,3142 55414 TS M11 # SCALED AT 1 007629,001331: 007630,001332: 06,3143 30034 CAE CDUZ 007631,001333: 06,3144 05032 TC SPCOS # COS(CDUZ) = COS(MG) 007632,001334: 06,3145 54061 TS COSMG # SCALED AT 1 (ONLY A FACTOR) 007633,001335: 007634,001336: 06,3146 30032 CAE CDUX 007635,001337: 06,3147 05033 TC SPSIN # SIN(CDUX) = SIN(OG) 007636,001338: 06,3150 55417 TS M22 # SCALED AT 1 (ALSO IS MR22) 007637,001339: 007638,001340: 06,3151 41417 CS M22 007639,001341: # Page 196 007640,001342: 06,3152 00006 EXTEND 007641,001343: 06,3153 70061 MP COSMG # -SIN(OG)COS(MG) 007642,001344: 06,3154 55416 TS M31 # SCALED AT 1 007643,001345: 007644,001346: 06,3155 30032 CAE CDUX 007645,001347: 06,3156 05032 TC SPCOS # COS(CDUX) = COS(OG) 007646,001348: 06,3157 55420 TS M32 # SCALED AT 1 (ALSO IS MR23) 007647,001349: 007648,001350: 06,3160 00006 EXTEND 007649,001351: 06,3161 70061 MP COSMG # COS(OG)COS(MG) 007650,001352: 06,3162 55415 TS M21 # SCALED AT 1 007651,001353: 007652,001354: 06,3163 05270 TC RESUME 007653,001355: 007654,001356: 06,3164 5270 ENDDAPT4 EQUALS RESUME 007655,001357: End of include-file T4RUPT_PROGRAM.agc. Parent file is MAIN.agc