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