Source Code
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Peter McDermott.
A team of volunteers performed the transcription and proof-reading. The scanned
page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES DEC 13, 1966 THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 OF PROGRAM SUNBURST BY LEM GROUPNote that the date is the date of the printout, not the date of the program revision. |
004088,000002: ## Copyright: Public domain.
004089,000003: ## Filename: T4RUPT_PROGRAM.agc
004090,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
004091,000005: ## It is part of an early development version of the software
004092,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar
004093,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program
004094,000008: ## upon which Don Eyles's offline development program Shepatin
004095,000009: ## was based; the listing herein transcribed was actually for
004096,000010: ## the equivalent revision 0 of Shepatin.
004097,000011: ## This file is intended to be a faithful transcription, except
004098,000012: ## that the code format has been changed to conform to the
004099,000013: ## requirements of the yaYUL assembler rather than the
004100,000014: ## original YUL assembler.
004101,000015: ## Reference: pp. 90-123
004102,000016: ## Assembler: yaYUL
004103,000017: ## Contact: Ron Burkey <info@sandroid.org>.
004104,000018: ## Website: www.ibiblio.org/apollo/index.html
004105,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120.
004106,000020: ## 2017-05-29 HG Transcribed
004107,000021: ## 2017-06-15 HG Fix operator TCF -> TC
004108,000022: ## CS -> CAF
004109,000023: ## 2017-06-21 RSB Proofed using octopus/ProoferComments.
004110,000024:
Page 90 |
004112,000026: 12,2000 BANK 12
004113,000027: 12,2000 E6,1404 EBANK= M11
004114,000028: 12,2000 54016 T4RUPT TS BANKRUPT
004115,000029:
004116,000030: 12,2001 37761 CA ZERO
004117,000031: 12,2002 00006 EXTEND # ZERO OUT0 EVERY T4RUPT.
004118,000032: 12,2003 01010 WRITE OUT0
004119,000033:
004120,000034: 12,2004 50346 INDEX T4LOC # NORMALLY TO NORMT4, BUT TO LMPRESET OR
004121,000035: 12,2005 10000 TCF 0 # DSKYRSET AFTER OUT0 COMMAND.
004122,000036:
004123,000037: 12,2006 10347 NORMT4 CCS DSRUPTSW # GOES 7(-1)0.
004124,000038: 12,2007 12011 TCF +2
004125,000039: 12,2010 37757 CAF SEVEN
004126,000040: 12,2011 54347 TS DSRUPTSW
004127,000041:
004128,000042: 12,2012 12030 TCF T4RUPTA
004129,000043:
004130,000044: 12,2013 34265 LMPRESET CAF LNORMT4 # DO THINGS IN THIS ORDER FOR RESTART
004131,000045: 12,2014 54346 TS T4LOC # PROTECTION.
004132,000046: 12,2015 31144 CA LMPOUTT # NEW VALUE OF OUTPUT POINTER.
004133,000047: 12,2016 55143 TS LMPOUT
004134,000048: 12,2017 47755 CS ONE # TO SHOW OUTPUT POINTER ALREADY UPDATED.
004135,000049: 12,2020 55144 TS LMPOUTT
004136,000050: 12,2021 34263 CAF 90MRUPT
004137,000051: 12,2022 12026 TCF +4
004138,000052:
004139,000053: 12,2023 34265 DSKYRSET CAF LNORMT4 # 20 MS ON / 100 MS OFF.
004140,000054: 12,2024 54346 TS T4LOC
004141,000055: 12,2025 34264 CAF 100MRUPT
004142,000056: 12,2026 54027 +4 TS TIME4
004143,000057: 12,2027 15753 TCF NOQRSM
004144,000058:
004145,000059: 4263 BLOCK 02
004146,000060: 4263 37767 90MRUPT DEC 16375 B-14
004147,000061: 4264 37766 100MRUPT DEC 16374 B-14
004148,000062: 4265 02006 LNORMT4 ADRES NORMT4
004149,000063: 4266 74000 74K OCT 74000
004150,000064:
004151,000065: # RELTAB IS A PACKED TABLE. RELAYWORD CODE IN UPPER 4 BITS, RELAY CODE
004152,000066: # IN LOWER 5 BITS.
004153,000067:
004154,000068: 4267 04025 RELTAB OCT 04025
004155,000069: 4270 10003 OCT 10003
004156,000070: 4271 14031 OCT 14031
004157,000071: 4272 20033 OCT 20033
004158,000072: 4273 24017 OCT 24017
004159,000073: 4274 30036 OCT 30036
004160,000074: 4275 34034 OCT 34034
004161,000075: 4276 40023 OCT 40023
004162,000076: 4277 44035 OCT 44035
004163,000077:
Page 91 |
004165,000079: 4300 50037 OCT 50037
004166,000080: 4301 54000 OCT 54000
004167,000081: 4302 60000 RELTAB11 OCT 60000
004168,000082:
Page 92 |
004170,000084: # SWITCHED-BANK PORTION.
004171,000085:
004172,000086: 12,2030 BANK 12
004173,000087: 12,2030 00006 T4RUPTA EXTEND
004174,000088: 12,2031 22012 QXCH QRUPT
004175,000089:
004176,000090: 12,2032 51143 INDEX LMPOUT # SEE IF LMP COMMAND TO BE PUT OUT.
004177,000091: 12,2033 11132 CCS LMPCMD
004178,000092: 12,2034 12056 TCF CDRVE # BIT 15 = 1 AND (UP TO) BITS 1 - 11
004179,000093: 12,2035 12056 TCF CDRVE # CONTAIN THE COMMAND.
004180,000094:
004181,000095: 12,2036 32147 CAF LLMPRS # SET T4 FOR SPECIAL RUPT AND SHOW LMP
004182,000096: 12,2037 54346 TS T4LOC # COMMAND IN PROGRESS IF RESTART.
004183,000097:
004184,000098: 12,2040 34552 CAF LOW11
004185,000099: 12,2041 51143 INDEX LMPOUT
004186,000100: 12,2042 71132 MASK LMPCMD # LEAVE COMMAND PORTION INTACT.
004187,000101: 12,2043 51143 INDEX LMPOUT
004188,000102: 12,2044 55132 TS LMPCMD
004189,000103: 12,2045 64266 AD 74K
004190,000104:
004191,000105: 12,2046 00006 EXTEND
004192,000106: 12,2047 01010 WRITE OUT0
004193,000107:
004194,000108: 12,2050 11143 CCS LMPOUT # PREDICT NEW VALUE OF LMPOUT BUT DONT
004195,000109: 12,2051 12053 TCF +2 # UPDATE IT UNTIL COMMAND SENT (IN CASE OF
004196,000110: 12,2052 37757 CAF SEVEN # RESTART.)
004197,000111: 12,2053 55144 TS LMPOUTT
004198,000112:
004199,000113: 12,2054 32150 CAF 30MRUPT
004200,000114: 12,2055 12133 TCF SETTIME4
004201,000115:
004202,000116: 12,2056 10326 CDRVE CCS DSPTAB +11D
004203,000117: 12,2057 02066 TC DSPOUT
004204,000118: 12,2060 02066 TC DSPOUT
004205,000119:
004206,000120: 12,2061 56326 XCH DSPTAB +11D
004207,000121: 12,2062 74552 MASK LOW11
004208,000122: 12,2063 54326 TS DSPTAB +11D
004209,000123: 12,2064 64302 AD RELTAB11
004210,000124: 12,2065 02126 TC DSPLAYC
004211,000125:
Page 93 |
004213,000127: # DSPOUT PROGRAM. PUTS OUT DISPLAYS.
004214,000128:
004215,000129: 12,2066 10307 DSPOUT CCS NOUT # DRIVE DISPLAY SYSTEM RELAYS.
004216,000130: 12,2067 12072 TCF +3
004217,000131:
004218,000132: 12,2070 32107 NODSPOUT CAF 120MRUPT # SET FOR RUPT IN 120 MS IF NO RELAYS.
004219,000133: 12,2071 12133 TCF SETTIME4
004220,000134:
004221,000135: 12,2072 54307 TS NOUT
004222,000136: 12,2073 47761 CS ZERO
004223,000137: 12,2074 54073 TS DSRUPTEM # SET TO -0 FOR 1ST PASS THRU DSPTAB
004224,000138: 12,2075 56345 XCH DSPCNT
004225,000139: 12,2076 67762 AD NEG0 # TO PREVENT +0
004226,000140: 12,2077 54345 TS DSPCNT
004227,000141: 12,2100 50345 DSPSCAN INDEX DSPCNT
004228,000142: 12,2101 10313 CCS DSPTAB
004229,000143: 12,2102 10345 CCS DSPCNT # IF DSPTAB ENTRY +, SKIP
004230,000144: 12,2103 02076 TC DSPSCAN -2 # IF DSPCNT +, AGAIN
004231,000145: 12,2104 02115 TC DSPLAY # IF DSPTAB ENTRY -, DISPLAY
004232,000146: 12,2105 00012 TABLNTH OCT 12 # DEC 10 LENGTH OF DSPTAB
004233,000147: 12,2106 10073 CCS DSRUPTEM # IF DSRUPTEM=+0,2ND PASS THRU DSPTAB
004234,000148: 12,2107 37764 120MRUPT DEC 16372 B-14 # (DSPCNT = 0). +0 INTO NOUT.
004235,000149: 12,2110 54307 TS NOUT
004236,000150: 12,2111 12070 TCF NODSPOUT
004237,000151: 12,2112 54073 TS DSRUPTEM # IF DSRUPTEM=-0,1ST PASS THRU DSPTAB
004238,000152: 12,2113 32105 CAF TABLNTH # (DSPCNT=0). +0 INTO DSRUPTEM. PASS AGAIN
004239,000153:
004240,000154: 12,2114 02077 TC DSPSCAN -1
004241,000155:
004242,000156: 12,2115 67755 DSPLAY AD ONE
004243,000157: 12,2116 50345 INDEX DSPCNT
004244,000158: 12,2117 54313 TS DSPTAB # REPLACE POSITIVELY
004245,000159: 12,2120 74552 MASK LOW11 # REMOVE BITS 12 TO 15
004246,000160: 12,2121 54073 TS DSRUPTEM
004247,000161: 12,2122 34547 CAF HI5
004248,000162: 12,2123 50345 INDEX DSPCNT
004249,000163: 12,2124 74267 MASK RELTAB # PICK UP BITS 12 TO 15 OF RELTAB ENTRY
004250,000164: 12,2125 60073 AD DSRUPTEM
004251,000165: 12,2126 00006 DSPLAYC EXTEND
004252,000166: 12,2127 01010 WRITE OUT0
004253,000167:
004254,000168: 12,2130 32146 CAF LDSKYRS
004255,000169: 12,2131 54346 TS T4LOC
004256,000170: 12,2132 32151 CAF 20MRUPT
004257,000171:
004258,000172: 12,2133 54027 SETTIME4 TS TIME4
004259,000173:
Page 94 |
004261,000175: # JUMP TO APPROPRIATE ONCE-PER SECOND (.96 SEC ACTUALLY) ACTIVITY
004262,000176:
004263,000177: 12,2134 50347 T4JUMP INDEX DSRUPTSW
004264,000178: 12,2135 12136 TCF +1
004265,000179:
004266,000180: 12,2136 02152 TC ALTOUT
004267,000181:
004268,000182: 12,2137 03176 TC NORRGMON # WAS TCF RRAUTCHK (NO RADAR IN 206).
004269,000183:
004270,000184: 12,2140 12305 TCF IMUMON
004271,000185: 12,2141 13176 TCF DAPT4S
004272,000186: 12,2142 02217 TC ALTROUT
004273,000187: 12,2143 03176 TC NORRGMON # WAS TCF RRAUTCHK (NO RADAR IN 206).
004274,000188: 12,2144 12305 TCF IMUMON
004275,000189: 12,2145 13176 TCF DAPT4S
004276,000190:
004277,000191: 12,2146 02023 LDSKYRS ADRES DSKYRSET
004278,000192: 12,2147 02013 LLMPRS ADRES LMPRESET
004279,000193:
004280,000194: 12,2150 37775 30MRUPT DEC 16381 B-14
004281,000195: 12,2151 37776 20MRUPT DEC 16382 B-14
004282,000196:
Page 95 |
004284,000198: # THIS ROUTINE SERVICES THE METER OUTPUTS.
004285,000199:
004286,000200:
004287,000201:
004288,000202: # DIDFLG INDICATES THE STATE OF THE PROGRAM..............
004289,000203: # IF GREATER THAN ZERO, THEN UNABLE TO DISPLAY DATA
004290,000204: # IF EQUAL TO ZERO, THEN THE PROGRAM IS IN USE
004291,000205: # IF LESS THAN ZERO, THEN THE PROGRAM IS ABLE TO BE USED............
004292,000206:
004293,000207: 12,2152 02225 ALTOUT TC DISINDAT
004294,000208: 12,2153 47754 CS BIT2
004295,000209: 12,2154 00006 EXTEND
004296,000210: 12,2155 03014 WAND 14 # SET UP OUTPUT FOR ALTITUDE
004297,000211: 12,2156 10351 CCS ALT # -1 IF OLD DATA TO BE EXTRAPOLATED.
004298,000212:
004299,000213: 12,2157 12163 TCF +4 # NEW DATA.
004300,000214: 12,2160 12163 TCF +3
004301,000215: 12,2161 12167 TCF OLDDATA
004302,000216:
004303,000217: 12,2162 54351 TS ALT # CHANGE -0 IN ALT TO +0.
004304,000218: 12,2163 47755 CS ONE # RESET ALTSAVE.
004305,000219: 12,2164 52352 DXCH ALT
004306,000220: 12,2165 52364 ZDATA2 DXCH ALTSAVE
004307,000221: 12,2166 12207 TCF NEWDATA
004308,000222:
004309,000223: 12,2167 30353 OLDDATA CA ALTRATE # USE ALTRATE TO EXTRAPOLATE.
004310,000224: 12,2170 00006 EXTEND
004311,000225: 12,2171 72302 MP ARTOA # RATE APPLIES FOR .96 SEC.
004312,000226: 12,2172 60364 AD ALTSAVE +1
004313,000227: 12,2173 54364 TS ALTSAVE +1 # AND MAYBE SKIP.
004314,000228: 12,2174 37761 CAF ZERO
004315,000229: 12,2175 26363 ADS ALTSAVE
004316,000230:
004317,000231: 12,2176 37735 CAF POSMAX # FORCE SIGN AGREEMENT ASSUMING ALTSAVE IS
004318,000232: 12,2177 67755 AD ONE # NOT NEGATIVE. IF IT IS, THE FINAL TS
004319,000233: 12,2200 60364 AD ALTSAVE +1 # WILL NOT SKIP AND WE CAN SET ALTSAVE TO
004320,000234: 12,2201 54364 TS ALTSAVE +1 # ZERO IN THAT CASE.
004321,000235: 12,2202 37761 CAF ZERO
004322,000236:
004323,000237: 12,2203 67735 AD POSMAX
004324,000238: 12,2204 60363 AD ALTSAVE
004325,000239: 12,2205 54363 TS ALTSAVE
004326,000240: 12,2206 12277 TCF ZERODATA # ALTSAVE NEGATIVE - SET TO ZERO.
004327,000241:
004328,000242: 12,2207 10363 NEWDATA CCS ALTSAVE # MAKE UP 15 BIT UNSIGNED OUTPUT.
004329,000243: 12,2210 37737 CAF BIT15 # MAJOR PART +1 OR +0.
004330,000244: 12,2211 60364 AD ALTSAVE +1
004331,000245: 12,2212 54060 METEROUT TS ALTM
004332,000246: 12,2213 32303 CAF BITSET
004333,000247: 12,2214 00006 EXTEND
004334,000248: 12,2215 05014 WOR 14
004335,000249: 12,2216 12276 TCF DONEDID
004336,000250:
Page 96 |
004338,000252: 12,2217 02225 ALTROUT TC DISINDAT
004339,000253: 12,2220 37754 CAF BIT2
004340,000254:
004341,000255: 12,2221 00006 EXTEND
004342,000256: 12,2222 05014 WOR 14 # SET UP OUTPUT FOR ALT. RATE
004343,000257: 12,2223 30353 CA ALTRATE
004344,000258: 12,2224 12212 TCF METEROUT
004345,000259:
004346,000260: 12,2225 10350 DISINDAT CCS DIDFLG
004347,000261: 12,2226 12273 TCF ALLDONE # NOTE THAT THIS SHOULD ALWAYS GO TO
004348,000262: # ALLDONE AND NOT DONEDID SINCE THE
004349,000263: # AVAILABILITY OF DATA MAY DISAPPEAR WHILE
004350,000264: # THE ASTRONAUT HAS THE BUTTON DOWN.
004351,000265: 12,2227 12230 NOOP
004352,000266: 12,2230 37750 CAF BIT6
004353,000267: 12,2231 00006 EXTEND
004354,000268: 12,2232 02030 RAND 30 # CHECK DISPLAY INERTIAL DATA BIT
004355,000269: 12,2233 10000 CCS A
004356,000270: 12,2234 12273 TCF ALLDONE
004357,000271: 12,2235 10350 CCS DIDFLG
004358,000272: 12,2236 12237 NOOP
004359,000273: 12,2237 12260 TCF GOAGN
004360,000274:
004361,000275: 12,2240 37746 FIRSTIME CAF BIT8
004362,000276: 12,2241 00006 EXTEND
004363,000277: 12,2242 05012 WOR 12 # ENABLE DISPLAY INERTIAL DATA
004364,000278:
004365,000279: 12,2243 37761 CAF ZERO
004366,000280: 12,2244 54350 TS DIDFLG
004367,000281: 12,2245 54362 TS LASTXCMD
004368,000282: 12,2246 54361 TS LASTYCMD
004369,000283: 12,2247 36276 CAF SIX
004370,000284: 12,2250 05701 TC WAITLIST
004371,000285: 12,2251 E6,1404 EBANK= M11
004372,000286: 12,2251 02254 24006 2CADR INTLZE
004373,000287:
004374,000288: 12,2253 02276 TC DONEDID
004375,000289:
004376,000290: 12,2254 37754 INTLZE CAF BIT2
004377,000291: 12,2255 00006 EXTEND
004378,000292: 12,2256 05012 WOR 12 # ENABLE RR ERROR COUNTER
004379,000293: 12,2257 05745 TC TASKOVER
004380,000294:
004381,000295: 12,2260 40362 GOAGN CS LASTXCMD
004382,000296: 12,2261 60357 AD FORVEL
004383,000297: 12,2262 54054 TS OPTXCMD
004384,000298: 12,2263 30357 CA FORVEL
004385,000299: 12,2264 54362 TS LASTXCMD
004386,000300: 12,2265 40361 CS LASTYCMD
004387,000301: 12,2266 60360 AD LATVEL
004388,000302:
004389,000303: 12,2267 54053 TS OPTYCMD
004390,000304: 12,2270 30360 CA LATVEL
004391,000305:
Page 97 |
004393,000307: 12,2271 54361 TS LASTYCMD
004394,000308: 12,2272 00002 TC Q
004395,000309:
004396,000310: 12,2273 42304 ALLDONE CS DIDRESET # REMOVE DISPLAY INERTIAL DATA AND ECTR.
004397,000311: 12,2274 00006 EXTEND
004398,000312: 12,2275 03012 WAND 12 # RESET RR ERROR COUNTER
004399,000313: 12,2276 15751 DONEDID TCF RESUME # ** FIX LATER**
004400,000314:
004401,000315: 12,2277 37761 ZERODATA CAF ZERO
004402,000316: 12,2300 54001 TS L
004403,000317: 12,2301 12165 TCF ZDATA2
004404,000318:
004405,000319: 12,2302 06432 ARTOA DEC .20469 # ALT DUE TO ALTRATE FOR .96 SEC.
004406,000320: 12,2303 06004 BITSET OCT 6004
004407,000321:
004408,000322: 12,2304 00202 DIDRESET OCT 202
004409,000323:
Page 98 |
004411,000325: # PROGRAM NAME: IMUMON
004412,000326:
004413,000327: # FUNCTIONAL DESCRIPTION: THIS PROGRAM IS ENTERED EVERY 480 MS. IT DETECTS CHANGES OF THE IMU STATUS BITS IN
004414,000328: # CHANNEL 30 AND CALLS THE APPROPRIATE SUBROUTINES. THE BITS PROCESSED AND THEIR RELEVANT SUBROUTINES ARE:
004415,000329:
004416,000330: # FUNCTION BIT SUBROUTINE CALLED
004417,000331: # -------- --- -----------------
004418,000332: # TEMP IN LIMITS 15 TLIM
004419,000333: # ISS TURN-ON REQUEST 14 ITURNON
004420,000334: # IMU FAIL 13 IMUFAIL (SETISSW)
004421,000335: # IMU CDU FAIL 12 ICDUFAIL (SETISSW)
004422,000336: # IMU CAGE 11 IMUCAGE
004423,000337: # IMU OPERATE 9 IMUOP
004424,000338:
004425,000339: # THE LAST SAMPLED STATE OF THESE BITS IS LEFT IN IMODES30. ALSO, EACH SUBROUTINE CALLED FINDS THE NEW
004426,000340: # VALUE OF THE BIT IN A, WITH Q SET TO THE PROPER RETURN LOCATION, NXTIFAIL.
004427,000341:
004428,000342: # CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS.
004429,000343:
004430,000344: # JOBS OR TASKS INITIATED: NONE.
004431,000345:
004432,000346: # SUBROUTINES CALLED: TLIM, ITURNON, SETISSW, IMUCAGE, IMUOP.
004433,000347:
004434,000348: # ERASABLE INITIALIZATION:
004435,000349: # FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(IMODES30) = OCT 37411.
004436,000350: # RESTART WITH ACTIVE GROUPS: C(IMODES30) = (B(IMODES30)AND(OCT 00035)) PLUS OCT 37400.
004437,000351: # THIS LEAVES IMU FAIL BITS INTACT.
004438,000352:
004439,000353: # ALARMS: NONE.
004440,000354:
004441,000355: # EXIT: TNONTEST.
004442,000356:
004443,000357: # OUTPUT: UPDATED IMODES30 WITH CHANGES PROCESSED BY APPROPRIATE SUBROUTINE.
004444,000358:
004445,000359: 12,2305 33056 IMUMON CAF BITS4&5 # DISABLE DAP IF ZERO ICDU OR COARSE ALIGN
004446,000360: 12,2306 00006 EXTEND
004447,000361: 12,2307 02012 RAND 12
004448,000362: 12,2310 00006 EXTEND
004449,000363:
004450,000364: 12,2311 62315 BZMF IMUNON1
004451,000365: 12,2312 00006 EXTEND
004452,000366: 12,2313 33035 DCA T4DAP
004453,000367: 12,2314 53001 DXCH T5ADR
004454,000368:
004455,000369: 12,2315 30365 IMUNON1 CA IMODES30 # SEE IF THERE HAS BEEN A CHANGE IN THE
004456,000370: 12,2316 00006 EXTEND # RELEVANT BITS OF CHAN 30.
004457,000371: 12,2317 06030 RXOR 30
004458,000372: 12,2320 73042 MASK 30RDMSK
004459,000373: 12,2321 00006 EXTEND
004460,000374: 12,2322 12352 BZF TNONTEST # NO CHANGE IN STATUS.
004461,000375:
Page 99 |
004463,000377: 12,2323 54070 TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED.
004464,000378: 12,2324 22365 LXCH IMODES30 # UPDATE IMODES30.
004465,000379: 12,2325 00006 EXTEND
004466,000380: 12,2326 06001 RXOR L
004467,000381: 12,2327 54365 TS IMODES30
004468,000382:
004469,000383: 12,2330 47755 CS ONE
004470,000384: 12,2331 56070 XCH RUPTREG1
004471,000385: 12,2332 00006 EXTEND
004472,000386: 12,2333 62624 BZMF TLIM # CHANGE IN IMU TEMP.
004473,000387: 12,2334 12336 TCF NXTIFBIT # BEGIN BIT SCAN.
004474,000388:
004475,000389: 12,2335 67755 -1 AD ONE # (RE-ENTERS HERE FROM NXTIFAIL.)
004476,000390: 12,2336 24070 NXTIFBIT INCR RUPTREG1 # ADVANCE BIT POSITION NUMBER.
004477,000391: 12,2337 60000 +1 DOUBLE
004478,000392: 12,2340 54000 TS A # SKIP IF OVERFLOW.
004479,000393: 12,2341 12336 TCF NXTIFBIT # LOOK FOR BIT.
004480,000394:
004481,000395: 12,2342 56071 XCH RUPTREG2 # SAVE OVERFLOW-CORRECTED DATA.
004482,000396: 12,2343 50070 INDEX RUPTREG1 # SELECT NEW VALUE OF THIS BIT.
004483,000397:
004484,000398: 12,2344 37740 CAF BIT14
004485,000399: 12,2345 70365 MASK IMODES30
004486,000400: 12,2346 50070 INDEX RUPTREG1
004487,000401: 12,2347 03036 TC IFAILJMP
004488,000402:
004489,000403: 12,2350 10071 NXTIFAIL CCS RUPTREG2 # PROCESS ANY ADDITIONAL CHANGES.
004490,000404: 12,2351 12335 TCF NXTIFBIT -1
004491,000405:
Page 100 |
004493,000407: # PROGRAM NAME: TNONTEST.
004494,000408:
004495,000409: # FUNCTIONAL DESCRIPTION: THIS PROGRAM HONORS REQUESTS FOR ISS INITIALIZATION. ISS TURN-ON (CHANNEL 30 BIT 14)
004496,000410: # AND ISS OPERATE (CHANNEL 30 BIT 9) REQUESTS ARE TREATED AS A PAIR AND PROCESSING TAKES PLACE .480 SECONDS
004497,000411: # AFTER EITHER ONE APPEARS. THIS INITIALIZATION TAKES ON ONE OF THE FOLLOWING THREE FORMS:
004498,000412:
004499,000413: # 1) ISS TURN-ON: IN THIS SITUATION THE COMPUTER IS OPERATING WHEN THE ISS IS TURNED ON. NOMINALLY,
004500,000414: # BOTH ISS TURN-ON AND ISS OPERATE APPEAR. THE PLATFORM IS CAGED FOR 90 SECONDS AND THE ICDU'S ZEROED
004501,000415: # SO THAT AT THE END OF THE PROCESS THE GIMBAL LOCK MONITOR WILL FUNCTION PROPERLY.
004502,000416:
004503,000417: # 2) ICDU INITIALIZATION: IN THIS CASE THE COMPUTER WAS PROBABLY TURNED ON WITH THE ISS IN OPERATE OR
004504,000418: # A FRESH START WAS DONE WITH THE ISS IN OPERATE. IN THIS CASE ONLY ISS OPERATE IS ON. THE ICDU'S ARE
004505,000419: # ZEROED SO THE GIMBAL LOCK MONITOR WILL FUNCTION. AN EXCEPTION IS IF THE ISS IS IN GIMBAL LOCK AFTER
004506,000420: # A RESTART, THE ICDU'S WILL NOT BE ZEROED.
004507,000421:
004508,000422: # 3) RESTART WITH RESTARTABLE PROGRAM USING THE IMU: IN THIS CASE, NO INITIALIZATION TAKES PLACE SINCE
004509,000423: # IT IS ASSUMED THAT THE USING PROGRAM DID THE INITIALIZATION AND THEREFORE T4RUPT SHOULD NOT INTERFERE.
004510,000424:
004511,000425: # IMODES30 BIT 7 IS SET = 1 BY THE FIRST BIT (CHANNEL 30 BIT 14 OR 9) WHICH ARRIVES. FOLLOWING THIS. TNONTEST IS
004512,000426: # 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
004513,000427: # PROCEEDS, SETTING BITS 8 AND 7 = 0. AT PROCTNON, IF ISS TURN-ON REQUEST IS PRESENT, THE ISS IS CAGED (ZERO +
004514,000428: # COARSE). IF ISS OPERATE IS NOT PRESENT PROGRAM ALARM 00213 IS ISSUED. AT THE END OF A 90 SECOND CAGE, BIT 2
004515,000429: # OF IMODES30 IS TESTED. IF IT IS = 1, ISS TURN-ON WAS NOT PRESENT FOR THE ENTIRE 90 SECONDS. IN THAT CASE, IF
004516,000430: # THE ISS TURN-ON REQUEST IS PRESENT THE 90 SECOND WAIT IS REPEATED, OTHERWISE NO ACTION OCCURS UNLESS A PROGRAM
004517,000431: # WAS WAITING FOR THE INITIALIZATION IN WHICH CASE THE PROGRAM IS GIVEN AN IMUSTALL ERROR RETURN. IF THE DELAY
004518,000432: # WENT PROPERLY, THE ISS DELAY OUTBIT IS SENT AND THE ICDU'S ZEROED. A TASK IS INITIATED TO REMOVE THE PIPA FAIL
004519,000433:
004520,000434: # INHIBIT BIT IN 10.24 SECONDS. IF A MISSION PROGRAM WAS WAITING IT IS INFORMED VIA ENDIMU.
004521,000435:
004522,000436: # AT PROCTNON, IF ONLY ISS OPERATE IS PRESENT (OPONLY), THE CDU'S ARE ZEROED UNLESS THE PLATFORM IS IN COARSE
004523,000437: # ALIGN (= GIMBAL LOCK HERE) OR A MISSION PROGRAM IS USING THE IMU (IMUSEFLG = 1).
004524,000438:
004525,000439: # CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS AFTER IMUMON.
004526,000440:
004527,000441: # JOBS OR TASKS INITIATED: 1) ENDTNON, 90 SECONDS AFTER CAGING STARTED. 2) ISSUP, 4 SECONDS AFTER CAGING DONE.
004528,000442: # 3) PFAILOK, 10.24 SECONDS AFTER INITIALIZATION COMPLETED. 4) UNZ2, 320 MILLISECONDS AFTER ZEROING
004529,000443: # STARTED.
004530,000444:
004531,000445: # SUBROUTINES CALLED: CAGESUB, CAGESUB2, ZEROICDU, ENDIMU, IMUBAD, NOATTOFF, SETISSW, VARDELAY.
004532,000446:
004533,000447: # ERASABLE INITIALIZATION: SEE IMUMON.
004534,000448:
004535,000449: # ALARMS: PROGRAM ALARM 00213 IF ISS TURN-ON REQUESTED WITHOUT ISS OPERATE.
004536,000450:
004537,000451: # EXIT: ENDTNON EXITS TO C33TEST. TASKS HAVING TO DO WITH INITIALIZATION EXIT AS FOLLOWS: MISSION PROGRAM
004538,000452: # WAITING AND INITIALIZATION COMPLETE, EXIT TO ENDIMU, MISSION PROGRAM WAITING AND INITIALIZATION FAILED, EXIT TO
004539,000453: # IMUBAD, IMU NOT IN USE, EXIT TO TASKOVER.
004540,000454:
004541,000455: # OUTPUT: ISS INITIALIZED.
004542,000456:
004543,000457: 12,2352 40365 TNONTEST CS IMODES30 # AFTER PROCESSING ALL CHANGES, SEE IF IT
004544,000458:
Page 101 |
004546,000460: 12,2353 77747 MASK BIT7 # IS TIME TO ACT ON A TURN-ON SEQUENCE.
004547,000461: 12,2354 10000 CCS A
004548,000462: 12,2355 12507 TCF C33TEST # NO - EXAMINE CHANNEL 33.
004549,000463:
004550,000464: 12,2356 37746 CAF BIT8 # SEE IF FIRST SAMPLE OR SECOND.
004551,000465: 12,2357 70365 MASK IMODES30
004552,000466: 12,2360 10000 CCS A
004553,000467: 12,2361 12365 TCF PROCTNON # REACT AFTER SECOND SAMPLE.
004554,000468:
004555,000469: 12,2362 37746 CAF BIT8 # IF FIRST SAMPLE, SET BIT TO REACT NEXT
004556,000470: 12,2363 26365 ADS IMODES30 # TIME.
004557,000471: 12,2364 12507 TCF C33TEST
004558,000472:
004559,000473: # PROCESS IMU TURN-ON REQUESTS AFTER WAITING 1 SAMPLE FOR ALL SIGNALS TO ARRIVE.
004560,000474:
004561,000475: 12,2365 43061 PROCTNON CS BITS7&8
004562,000476: 12,2366 70365 MASK IMODES30
004563,000477: 12,2367 54365 TS IMODES30
004564,000478: 12,2370 77740 MASK BIT14 # SEE IF TURN-ON REQUEST.
004565,000479: 12,2371 10000 CCS A
004566,000480: 12,2372 12465 TCF OPONLY # OPERATE ON ONLY.
004567,000481:
004568,000482: 12,2373 40365 CS IMODES30 # IF TURN-ON REQUEST, WE SHOULD HAVE IMU
004569,000483: 12,2374 77745 MASK BIT9 # OPERATE.
004570,000484: 12,2375 10000 CCS A
004571,000485: 12,2376 12401 TCF +3
004572,000486:
004573,000487: 12,2377 04744 TC ALARM # ALARM IF NOT.
004574,000488: 12,2400 00213 OCT 213
004575,000489:
004576,000490: 12,2401 03012 +3 TC CAGESUB
004577,000491: 12,2402 33067 CAF 90SECS
004578,000492:
004579,000493: 12,2403 05701 TC WAITLIST
004580,000494: 12,2404 E6,1404 EBANK= M11
004581,000495: 12,2404 02411 24006 2CADR ENDTNON
004582,000496:
004583,000497: 12,2406 12507 TCF C33TEST
004584,000498:
004585,000499: 12,2407 33067 RETNON CAF 90SECS
004586,000500: 12,2410 05722 TC VARDELAY
004587,000501:
004588,000502: 12,2411 47754 ENDTNON CS BIT2 # RESET TURN-ON REQUEST FAIL BIT.
004589,000503: 12,2412 70365 MASK IMODES30
004590,000504: 12,2413 56365 XCH IMODES30
004591,000505: 12,2414 77754 MASK BIT2 # IF IT WAS OFF, SEND ISS DELAY COMPLETE.
004592,000506: 12,2415 00006 EXTEND
004593,000507: 12,2416 12431 BZF ENDTNON2
004594,000508:
004595,000509: 12,2417 37740 CAF BIT14 # IF IT WAS ON AND TURN-ON REQUEST NOW
004596,000510: 12,2420 70365 MASK IMODES30 # PRESENT, RE-ENTER 90 SEC DELAY IN WL.
004597,000511:
Page 102 |
004599,000513: 12,2421 00006 EXTEND
004600,000514: 12,2422 12407 BZF RETNON
004601,000515:
004602,000516: 12,2423 40074 CS STATE # IF IT IS NOT ON NOW, SEE IF A PROG WAS
004603,000517: 12,2424 77746 MASK IMUSEFLG # WAITING.
004604,000518: 12,2425 10000 CCS A
004605,000519: 12,2426 15745 TCF TASKOVER
004606,000520: 12,2427 05243 TC POSTJUMP
004607,000521: 12,2430 26703 CADR IMUBAD # UNSUCCESSFUL TURN-ON.
004608,000522:
004609,000523: 12,2431 37737 ENDTNON2 CAF BIT15 # SEND ISS DELAY COMPLETE.
004610,000524: 12,2432 00006 EXTEND
004611,000525: 12,2433 05012 WOR CHAN12
004612,000526:
004613,000527: 12,2434 05307 TC IBNKCALL # TURN OFF NO ATT LAMP.
004614,000528: 12,2435 26323 CADR NOATTOFF
004615,000529:
004616,000530: 12,2436 04303 UNZ2 TC ZEROICDU
004617,000531:
004618,000532: 12,2437 43056 CS BITS4&5 # REMOVE ZERO AND COARSE.
004619,000533: 12,2440 00006 EXTEND
004620,000534: 12,2441 03012 WAND CHAN12
004621,000535:
004622,000536: 12,2442 34310 CAF 4SECS # WAIT 4 SECS FOR COUNTERS TO FIND GIMBALS
004623,000537: 12,2443 05722 TC VARDELAY
004624,000538:
004625,000539: 12,2444 43057 ISSUP CS OCT54 # REMOVE CAGING, IMU FAIL INHIBIT, AND
004626,000540: 12,2445 70365 MASK IMODES30 # ICDUFAIL INHIBIT FLAGS.
004627,000541: 12,2446 54365 TS IMODES30
004628,000542:
004629,000543: 12,2447 02763 TC SETISSW # ISS WARNING MIGHT HAVE BEEN INHIBITED.
004630,000544:
004631,000545: 12,2450 47737 CS BIT15 # REMOVE IMU DELAY COMPLETE DISCRETE.
004632,000546: 12,2451 00006 EXTEND
004633,000547: 12,2452 03012 WAND 12
004634,000548:
004635,000549: 12,2453 37743 CAF BIT11 # DONT ENABLE PROG ALARM ON PIP FAIL FOR
004636,000550: 12,2454 05701 TC WAITLIST # ANOTHER 10 SECS.
004637,000551:
004638,000552: 12,2455 E6,1404 EBANK= M11
004639,000553: 12,2455 02307 26006 2CADR PFAILOK
004640,000554:
004641,000555: 12,2457 40074 CS STATE # SEE IF ANYONE IS WAITING FOR THE IMU AT
004642,000556: 12,2460 77746 MASK IMUSEFLG # IMUZERO. IF SO, WAKE THEM UP.
004643,000557: 12,2461 10000 CCS A
004644,000558: 12,2462 15745 TCF TASKOVER
004645,000559:
004646,000560: 12,2463 05243 TC POSTJUMP
004647,000561: 12,2464 26675 CADR ENDIMU
004648,000562:
004649,000563: 12,2465 37752 OPONLY CAF BIT4 # IF OPERATE ON ONLY, AND WE ARE IN COARSE
004650,000564:
Page 103 |
004652,000566: 12,2466 00006 EXTEND # ALIGN, DONT ZERO THE CDUS BECAUSE WE
004653,000567: 12,2467 02012 RAND CHAN12 # MIGHT BE IN GIMBAL LOCK.
004654,000568: 12,2470 10000 CCS A
004655,000569: 12,2471 12507 TCF C33TEST
004656,000570:
004657,000571: 12,2472 37746 CAF IMUSEFLG # OTHERWISE, ZERO THE COUNTERS
004658,000572: 12,2473 70074 MASK STATE # UNLESS SOMEONE IS USING THE IMU.
004659,000573: 12,2474 10000 CCS A
004660,000574: 12,2475 12507 TCF C33TEST
004661,000575:
004662,000576: 12,2476 03024 TC CAGESUB2 # SET TURNON FLAGS.
004663,000577:
004664,000578: 12,2477 37751 CAF BIT5
004665,000579: 12,2500 00006 EXTEND
004666,000580: 12,2501 05012 WOR 12
004667,000581:
004668,000582: 12,2502 37750 CAF BIT6 # WAIT 300 MS FOR AGS TO RECEIVE SIGNAL.
004669,000583: 12,2503 05701 TC WAITLIST
004670,000584: 12,2504 E6,1404 EBANK= M11
004671,000585: 12,2504 02436 24006 2CADR UNZ2
004672,000586:
004673,000587: 12,2506 12507 TCF C33TEST
004674,000588:
Page 104 |
004676,000590: # PROGRAM NAME: C33TEST
004677,000591:
004678,000592: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THREE FLIP-FLOP INBITS OF CHANNEL 33 AND CALLS THE APPROPRIATE
004679,000593: # SUBROUTINE TO PROCESS A CHANGE. IT IS ANALOGOUS TO IMUMON, WHICH MONITORS CHANNEL 30, EXCEPT THAT IT READS
004680,000594: # CHANNEL 33 WITH A WAND INSTRUCTION BECAUSE A 'WRITE' PULSE IS REQUIRED TO RESET THE FLIP-FLOPS. THE BITS
004681,000595: # PROCESSED AND THE SUBROUTINES CALLED ARE:
004682,000596:
004683,000597: # BIT FUNCTION SUBROUTINE
004684,000598: # --- -------- ----------
004685,000599: # 13 PIPA FAIL PIPFAIL
004686,000600: # 12 DOWNLINK TOO FAST DNTMFAST
004687,000601: # 11 UPLINK TOO FAST UPTMFAST
004688,000602:
004689,000603: # UPON ENTRY TO THE SUBROUTINE, THE NEW BIT STATE IS IN A.
004690,000604:
004691,000605: # CALLING SEQUENCE: EVERY 480 MILLISECONDS AFTER TNONTEST.
004692,000606:
004693,000607: # JOBS OR TASKS INITIATED: NONE.
004694,000608:
004695,000609: # SUBROUTINES CALLED: PIPFAIL, DNTMFAST AND UPTMFAST ON BIT CHANGES.
004696,000610:
004697,000611: # ERASABLE INITIALIZATION: C(IMODES33) = OCT 16000 ON A FRESH START OR RESTART, THEREFORE, THESE ALARMS WILL
004698,000612: # REAPPEAR IF THE CONDITIONS PERSIST.
004699,000613:
004700,000614: # ALARMS: NONE.
004701,000615:
004702,000616: # EXIT: GLOCKMON.
004703,000617:
004704,000618: # OUTPUT: UPDATED BITS 13, 12 AND 11 OF IMODES33 WITH CHANGES PROCESSED.
004705,000619:
004706,000620: 12,2507 30366 C33TEST CA IMODES33 # SEE IF RELEVANT CHAN 33 BITS HAVE
004707,000621: 12,2510 75660 MASK 33RDMSK
004708,000622: 12,2511 54001 TS L # CHANGED.
004709,000623: 12,2512 35660 CAF 33RDMSK
004710,000624: 12,2513 00006 EXTEND
004711,000625: 12,2514 03033 WAND 33 # RESETS FLIP-FLOP INPUTS.
004712,000626: 12,2515 00006 EXTEND
004713,000627: 12,2516 06001 RXOR L
004714,000628: 12,2517 00006 EXTEND
004715,000629: 12,2520 12547 BZF GLOCKMON # ON NO CHANGE.
004716,000630:
004717,000631: 12,2521 54070 TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED.
004718,000632: 12,2522 22366 LXCH IMODES33
004719,000633: 12,2523 00006 EXTEND
004720,000634: 12,2524 06001 RXOR L
004721,000635: 12,2525 54366 TS IMODES33 # UPDATED IMODES33.
004722,000636:
004723,000637: 12,2526 37761 CAF ZERO
004724,000638: 12,2527 56070 XCH RUPTREG1
004725,000639: 12,2530 60000 DOUBLE
004726,000640:
Page 105 |
004728,000642: 12,2531 12534 TCF NXTIBT +1 # SCAN FOR BIT CHANGES.
004729,000643:
004730,000644: 12,2532 67755 -1 AD ONE
004731,000645: 12,2533 24070 NXTIBT INCR RUPTREG1
004732,000646: 12,2534 60000 +1 DOUBLE
004733,000647: 12,2535 54000 TS A # (CODING IDENTICAL TO CHAN 30).
004734,000648: 12,2536 12533 TCF NXTIBT
004735,000649:
004736,000650: 12,2537 56071 XCH RUPTREG2
004737,000651: 12,2540 50070 INDEX RUPTREG1 # GET NEW VALUE OF BIT WHICH CHANGED.
004738,000652: 12,2541 37741 CAF BIT13
004739,000653: 12,2542 70366 MASK IMODES33
004740,000654: 12,2543 50070 INDEX RUPTREG1
004741,000655: 12,2544 03044 TC C33JMP
004742,000656:
004743,000657: 12,2545 10071 NXTFL33 CCS RUPTREG2 # PROCESS POSSIBLE ADDITIONAL CHANGES.
004744,000658: 12,2546 12532 TCF NXTIBT -1
004745,000659:
Page 106 |
004747,000661: # PROGRAM NAME: GLOCKMON
004748,000662:
004749,000663: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THE CDUZ COUNTER TO DETERMINE WHETHER THE ISS IS IN GIMBAL LOCK
004750,000664: # AND TAKES ACTION IF IT IS. THREE REGIONS OF MIDDLE GIMBAL ANGLE (MGA) ARE USED:
004751,000665:
004752,000666: # 1) ABS(MGA) LESS THAN OR EQUAL TO 70 DEGREES - NORMAL MODE.
004753,000667: # 2) ABS(MGA) GREATER THAN 70 DEGREES AND LESS THAN OR EQUAL TO 85 DEGREES - GIMBAL LOCK LAMP TURNED ON.
004754,000668: # 3) ABS(MGA) GREATER THAN 85 DEGREES - ISS PUT IN COARSE ALIGN AND NO ATT LAMP TURNED ON.
004755,000669:
004756,000670: # CALLING SEQUENCE: EVERY 480 MILLISECONDS AFTER C33TEST.
004757,000671:
004758,000672: # JOBS OR TASKS INITIATED: NONE.
004759,000673:
004760,000674: # SUBROUTINES CALLED: 1) SETCOARS WHEN ABS(MGA) GREATER THAN 85 DEGREES AND ISS NOT IN COARSE ALIGN.
004761,000675: # 2) LAMPTEST BEFORE TURNING OFF GIMBAL LOCK LAMP.
004762,000676:
004763,000677: # ERASABLE INITIALIZATION:
004764,000678: # 1) FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(CDUZ) = 0, IMODES30 BIT 6 = 0, IMODES33 BIT 1 = 0.
004765,000679: # 2) RESTART WITH GROUPS ACTIVE: SAME AS FRESH START EXCEPT C(CDUZ) NOT CHANGED SO GIMBAL MONITOR
004766,000680: # PROCEEDS AS BEFORE.
004767,000681:
004768,000682: # ALARMS: 1) MGA REGION (2) CAUSES GIMBAL LOCK LAMP TO BE LIT.
004769,000683: # 2) MGA REGION (3) CAUSES THE ISS TO BE PUT IN COARSE ALIGN AND THE NO ATT LAMP TO BE LIT IF EITHER NOT
004770,000684: # SO ALREADY.
004771,000685:
004772,000686: 12,2547 10034 GLOCKMON CCS CDUZ
004773,000687: 12,2550 12554 TCF GLOCKCHK # SEE IF MAGNITUDE OF MGA IS GREATER THAN
004774,000688: 12,2551 12574 TCF SETGLOCK # 70 DEGREES.
004775,000689: 12,2552 12554 TCF GLOCKCHK
004776,000690: 12,2553 12574 TCF SETGLOCK
004777,000691:
004778,000692: 12,2554 62621 GLOCKCHK AD -70DEGS
004779,000693: 12,2555 00006 EXTEND
004780,000694: 12,2556 62573 BZMF SETGLOCK -1 # NO LOCK.
004781,000695:
004782,000696: 12,2557 62622 AD -15DEGS # SEE IF ABS(MGA) GREATER THAN 85 DEGREES.
004783,000697: 12,2560 00006 EXTEND
004784,000698: 12,2561 62571 BZMF NOGIMRUN
004785,000699:
004786,000700: 12,2562 37752 CAF BIT4 # IF SO, SYSTEM SHOULD BE IN COARSE ALIGN
004787,000701: 12,2563 00006 EXTEND # TO PREVENT GIMBAL RUNAWAY.
004788,000702: 12,2564 02012 RAND 12
004789,000703: 12,2565 10000 CCS A
004790,000704: 12,2566 12571 TCF NOGIMRUN
004791,000705:
004792,000706: 12,2567 05307 TC IBNKCALL
004793,000707: 12,2570 26231 CADR SETCOARS
004794,000708:
004795,000709: 12,2571 37750 NOGIMRUN CAF BIT6 # TURN ON GIMBAL LOCK LAMP.
004796,000710: 12,2572 12574 TCF SETGLOCK
004797,000711:
Page 107 |
004799,000713: 12,2573 37761 -1 CAF ZERO
004800,000714: 12,2574 60326 SETGLOCK AD DSPTAB +11D # SEE IF PRESENT STATE OF GIMBAL LOCK LAMP
004801,000715: 12,2575 77750 MASK BIT6 # AGREES WITH DESIRED STATE BY HALF ADDING
004802,000716: 12,2576 00006 EXTEND # THE TWO.
004803,000717: 12,2577 13203 BZF GLOCKOK # OK AS IS.
004804,000718:
004805,000719: 12,2600 70326 MASK DSPTAB +11D # IF OFF, DONT TURN ON IF IMU BEING CAGED.
004806,000720: 12,2601 10000 CCS A
004807,000721: 12,2602 12616 TCF GLAMPTST # TURN OFF UNLESS LAMP TEST IN PROGRESS.
004808,000722:
004809,000723: 12,2603 37750 CAF BIT6
004810,000724: 12,2604 70365 MASK IMODES30
004811,000725: 12,2605 10000 CCS A
004812,000726: 12,2606 13203 TCF GLOCKOK
004813,000727:
004814,000728: 12,2607 40326 GLINVERT CS DSPTAB +11D # INVERT GIMBAL LOCK LAMP.
004815,000729: 12,2610 77750 MASK BIT6
004816,000730: 12,2611 67737 AD BIT15 # TO INDICATE CHANGE IN DSPTAB +11D.
004817,000731: 12,2612 56326 XCH DSPTAB +11D
004818,000732:
004819,000733: 12,2613 72623 MASK OCT37737
004820,000734: 12,2614 26326 ADS DSPTAB +11D
004821,000735: 12,2615 13203 TCF GLOCKOK
004822,000736:
004823,000737: 12,2616 03047 GLAMPTST TC LAMPTEST # TURN OFF UNLESS LAMP TEST IN PROGRESS.
004824,000738: 12,2617 13203 TCF GLOCKOK
004825,000739: 12,2620 12607 TCF GLINVERT
004826,000740:
004827,000741: 12,2621 63434 -70DEGS DEC -.38888 # -70 DEGREES SCALED IN HALF-REVOLUTIONS.
004828,000742: 12,2622 75252 -15DEGS DEC -.08333
004829,000743: 12,2623 37737 OCT37737 OCT 37737
004830,000744:
Page 108 |
004832,000746: # PROGRAM NAME: TLIM.
004833,000747:
004834,000748: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MAINTAINS THE TEMP LAMP (BIT 4 OF CHANNEL 11) ON THE DSKY TO AGREE WITH
004835,000749: # THE TEMP SIGNAL FROM THE ISS (BIT 15 OF CHANNEL 30). HOWEVER, THE LIGHT WILL NOT BE TURNED OFF IF A LAMP TEST
004836,000750: # IS IN PROGRESS.
004837,000751:
004838,000752: # CALLING SEQUENCE: CALLED BY IMUMON ON A CHANGE OF BIT 15 OF CHANNEL 30.
004839,000753:
004840,000754: # JOBS OR TASKS INITIATED: NONE.
004841,000755:
004842,000756: # SUBROUTINES CALLED: LAMPTEST.
004843,000757:
004844,000758: # ERASABLE INITIALIZATION: FRESH START AND RESTART TURN THE TEMP LAMP OFF.
004845,000759:
004846,000760: # ALARMS: TEMP LAMP TURNED ON WHEN IMU TEMP GOES OUT OF LIMITS.
004847,000761:
004848,000762: # EXIT: NXTIFAIL.
004849,000763:
004850,000764: # OUTPUT: SERVICE OF TEMP LAMP. IN A, EXCEPT FOR TLIM.
004851,000765:
004852,000766: 12,2624 77735 TLIM MASK POSMAX # REMOVE BIT FROM WORD OF CHANGES AND SET
004853,000767: 12,2625 54071 TS RUPTREG2 # DSKY TEMP LAMP ACCORDINGLY.
004854,000768:
004855,000769: 12,2626 10365 CCS IMODES30
004856,000770: 12,2627 12635 TCF TEMPOK
004857,000771: 12,2630 12635 TCF TEMPOK
004858,000772:
004859,000773: 12,2631 37752 CAF BIT4 # TURN ON LAMP.
004860,000774: 12,2632 00006 EXTEND
004861,000775: 12,2633 05011 WOR 11
004862,000776: 12,2634 12350 TCF NXTIFAIL
004863,000777:
004864,000778: 12,2635 03047 TEMPOK TC LAMPTEST # IF TEMP NOW OK, DONT TURN OFF LAMP IF
004865,000779: 12,2636 12350 TCF NXTIFAIL # LAMP TEST IN PROGRESS.
004866,000780:
004867,000781: 12,2637 47752 CS BIT4
004868,000782: 12,2640 00006 EXTEND
004869,000783: 12,2641 03011 WAND 11
004870,000784: 12,2642 12350 TCF NXTIFAIL
004871,000785:
Page 109 |
004873,000787: # PROGRAM NAME: ITURNON.
004874,000788:
004875,000789: # FUNCTIONAL DESCRIPTION: THIS PROGRAM IS CALLED BY IMUMON WHEN A CHANGE OF BIT 14 OF CHANNEL 30 (ISS TURN-ON
004876,000790: # REQUEST) IS DETECTED. UPON ENTRY, ITURNON CHECKS IF A TURN-ON DELAY SEQUENCE HAS FAILED, AND IF SO, IT EXITS.
004877,000791: # 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
004878,000792: # THAT TNONTEST WILL INITIATE THE ISS INITIALIZATION SEQUENCE. IF OFF, THE TURN-ON DELAY SIGNAL, CHANNEL 12 BIT
004879,000793: # 15, IS CHECKED AND IF IT IS ON, ITURNON EXITS. IF THE DELAY SIGNAL IS OFF, PROGRAM ALARM 00207 IS ISSUED, BIT 2
004880,000794: # OF IMODES30 IS SET TO 1 AND THE PROGRAM EXITS.
004881,000795:
004882,000796: # THE SETTING OF BIT 2 OF IMODES30 (ISS DELAY SEQUENCE FAIL) INHIBITS THIS ROUTINE AND IMUOP FROM
004883,000797: # PROCESSING ANY CHANGES. THIS BIT WILL BE RESET BY THE ENDTNON ROUTINE WHEN THE CURRENT 90 SECOND DELAY PERIOD
004884,000798: # ENDS.
004885,000799:
004886,000800: # CALLING SEQUENCE: FROM IMUMOM WHEN ISS TURN-ON REQUEST CHANGES STATE.
004887,000801:
004888,000802: # JOBS OR TASKS INITIATED: NONE.
004889,000803:
004890,000804: # SUBROUTINES CALLED: ALARM, IF THE ISS TURN-ON REQUEST IS NOT PRESENT FOR 90 SECONDS.
004891,000805:
004892,000806: # ERASABLE INITIALIZATION: FRESH START AND RESTART SET BIT 15 OF CHANNEL 12 AND BITS 2 AND 7 OF IMODES30 TO 0,
004893,000807: # AND BIT 14 OF IMODES30 TO 1.
004894,000808:
004895,000809: # ALARMS: PROGRAM ALARM 00207 IS ISSUED IF THE ISS TURN-ON REQUEST SIGNAL IS NOT PRESENT FOR 90 SECONDS.
004896,000810:
004897,000811: # EXIT: NXTIFAIL.
004898,000812:
004899,000813: # OUTPUT: BIT 7 OF IMODES30 TO START ISS INITIALIZATION, OR BIT 2 OF IMODES30 AND PROGRAM ALARM 00207 TO INDICATE
004900,000814: # A FAILED TURN-ON SEQUENCE.
004901,000815:
004902,000816: 12,2643 37754 ITURNON CAF BIT2 # IF DELAY REQUEST HAS GONE OFF
004903,000817: 12,2644 70365 MASK IMODES30 # PREMATURELY, DO NOT PROCESS ANY CHANGES
004904,000818: 12,2645 10000 CCS A # UNTIL THE CURRENT 90 SEC WAIT EXPIRES.
004905,000819:
004906,000820: 12,2646 12350 TCF NXTIFAIL
004907,000821:
004908,000822: 12,2647 37740 CAF BIT14 # SEE IF JUST ON OR OFF.
004909,000823: 12,2650 70365 MASK IMODES30
004910,000824: 12,2651 00006 EXTEND
004911,000825: 12,2652 12666 BZF ITURNON2 # IF JUST ON.
004912,000826:
004913,000827: 12,2653 37737 CAF BIT15
004914,000828: 12,2654 00006 EXTEND # SEE IF DELAY PRESENT DISCRETE HAS BEEN
004915,000829: 12,2655 02012 RAND 12 # SENT. IF SO, ACTION COMPLETE.
004916,000830: 12,2656 00006 EXTEND
004917,000831: 12,2657 12661 BZF +2
004918,000832: 12,2660 12350 TCF NXTIFAIL
004919,000833:
004920,000834: 12,2661 37754 CAF BIT2 # IF NOT, SET BIT TO INDICATE REQUEST NOT
004921,000835: 12,2662 26365 ADS IMODES30 # PRESENT FOR FULL DURATION.
004922,000836: 12,2663 04744 TC ALARM
004923,000837: 12,2664 00207 OCT 207
004924,000838: 12,2665 12350 TCF NXTIFAIL
004925,000839:
Page 110 |
004927,000841: 12,2666 47747 ITURNON2 CS BIT7 # SET BIT 7 TO INITIATE WAIT OF 1 SAMPLE.
004928,000842: 12,2667 70365 MASK IMODES30
004929,000843: 12,2670 67747 AD BIT7
004930,000844: 12,2671 54365 TS IMODES30
004931,000845: 12,2672 12350 TCF NXTIFAIL
004932,000846:
Page 111 |
004934,000848: # PROGRAM NAME: IMUCAGE.
004935,000849:
004936,000850: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES OF THE IMUCAGE INBIT, CHANNEL 30 BIT 11. IF THE BIT
004937,000851: # CHANGES TO 0 (CAGE BUTTON PRESSED), THE ISS IS CAGED (ICDU ZERO + COARSE ALIGN + NO ATT LAMP) UNTIL THE
004938,000852: # ASTRONAUT SELECTS ANOTHER PROGRAM TO ALIGN THE ISS. ANY PULSE TRAINS TO THE ICDU'S AND GYRO'S ARE TERMINATED,
004939,000853: # THE ASSOCIATED OUTCOUNTERS ARE ZEROED AND THE GYRO'S ARE DE-SELECTED. NO ACTION OCCURS WHEN THE BUTTON IS
004940,000854: # RELEASED (INBIT CHANGES TO 1).
004941,000855:
004942,000856: # CALLING SEQUENCE: BY IMUMON WHEN IMU CAGE BIT CHANGES.
004943,000857:
004944,000858: # JOBS OR TASKS INITIATED: NONE.
004945,000859:
004946,000860: # SUBROUTINES CALLED: CAGESUB.
004947,000861:
004948,000862: # ERASABLE INITIALIZATION: FRESH START AND RESTART SET BIT 11 OF IMODES30 TO 1.
004949,000863:
004950,000864: # ALARMS: NONE.
004951,000865:
004952,000866: # EXIT: NXTIFAIL.
004953,000867:
004954,000868: # OUTPUT: ISS CAGED, COUNTERS ZEROED, PULSE TRAINS TERMINATED AND NO ATT LAMP LIT.
004955,000869:
004956,000870: 12,2673 10000 IMUCAGE CCS A # NO ACTION IF GOING OFF.
004957,000871: 12,2674 12350 TCF NXTIFAIL
004958,000872:
004959,000873: 12,2675 43064 CS OCT71000 # TERMINATE ICDU AND GYRO PULSE TRAINS.
004960,000874: 12,2676 00006 EXTEND
004961,000875: 12,2677 03014 WAND 14
004962,000876:
004963,000877: 12,2700 03012 TC CAGESUB
004964,000878:
004965,000879: 12,2701 37761 CAF ZERO # ZERO COMMAND OUT-COUNTERS.
004966,000880: 12,2702 54050 TS CDUXCMD
004967,000881: 12,2703 54051 TS CDUYCMD
004968,000882: 12,2704 54052 TS CDUZCMD
004969,000883: 12,2705 54047 TS GYROCMD
004970,000884:
004971,000885: 12,2706 43063 CS OCT1700 # HAVING WAITED AT LEAST 27 MCT FROM
004972,000886: 12,2707 00006 EXTEND # GYRO PULSE TRAIN TERMINATION, WE CAN
004973,000887: 12,2710 03014 WAND 14 # DE-SELECT THE GYROS.
004974,000888:
004975,000889: 12,2711 12350 TCF NXTIFAIL
004976,000890:
Page 112 |
004978,000892: # PROGRAM NAME: IMUOP.
004979,000893:
004980,000894: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES IN THE ISS OPERATE DISCRETE, BIT 9 OF CHANNEL 30.
004981,000895: # IF THE INBIT CHANGES TO 0, INDICATING ISS ON, IMUOP GENERALLY SETS BIT 7 OF IMODES30 TO 1 TO REQUEST ISS
004982,000896: # INITIALIZATION VIA TNONTEST. AN EXCEPTION IS DURING A FAILED ISS DELAY DURING WHICH BIT 2 OF IMODES30 IS SET
004983,000897: # TO 1 AND NO FURTHER INITIALIZATION IS REQUIRED. WHEN THE INBIT CHANGES TO 1, INDICATING ISS OFF, IMUSEFLG IS
004984,000898: # TESTED TO SEE IF ANY PROGRAM WAS USING THE ISS. IF SO, PROGRAM ALARM 00214 IS ISSUED.
004985,000899:
004986,000900: # CALLING SEQUENCE: BY IMUMON WHEN BIT 9 OF CHANNEL 30 CHANGES.
004987,000901:
004988,000902: # JOBS OR TASKS INITIATED: NONE.
004989,000903:
004990,000904: # SUBROUTINES CALLED: ALARM, IF ISS IS TURNED OFF WHILE IN USE.
004991,000905:
004992,000906: # ERASABLE INITIALIZATION: ON FRESH START AND RESTART, BIT 9 OF IMODES30 IS SET TO 1 EXCEPT WHEN THE GIMBAL LOCK
004993,000907: # LAMP IS ON, IN WHICH CASE IT IS SET TO 0. THIS PREVENTS ICDU ZERO BY TNONTEST WITH THE ISS IN GIMBAL LOCK.
004994,000908:
004995,000909: # ALARMS: PROGRAM ALARM 00214 IF THE ISS IS TURNED OFF WHILE IN USE.
004996,000910:
004997,000911: # EXIT: NXTIFAIL.
004998,000912:
004999,000913: # OUTPUT: ISS INITIALIZATION REQUEST (IMODES30 BIT 7) OR PROGRAM ALARM 00214.
005000,000914:
005001,000915: 12,2712 00006 IMUOP EXTEND
005002,000916: 12,2713 12723 BZF IMUOP2
005003,000917:
005004,000918: 12,2714 40074 CS STATE # IF GOING OFF, ALARM IF PROG USING IMU.
005005,000919: 12,2715 77746 MASK IMUSEFLG
005006,000920: 12,2716 10000 CCS A
005007,000921: 12,2717 12350 TCF NXTIFAIL
005008,000922:
005009,000923: 12,2720 04744 TC ALARM
005010,000924: 12,2721 00214 OCT 214
005011,000925: 12,2722 12350 TCF NXTIFAIL
005012,000926:
005013,000927: 12,2723 37754 IMUOP2 CAF BIT2 # SEE IF FAILED ISS TURN-ON SEQ IN PROG.
005014,000928: 12,2724 70365 MASK IMODES30
005015,000929: 12,2725 10000 CCS A
005016,000930: 12,2726 12350 TCF NXTIFAIL # IF SO, DONT PROCESS UNTIL PRESENT 90
005017,000931: 12,2727 12666 TCF ITURNON2 # SECONDS EXPIRES.
005018,000932:
Page 113 |
005020,000934: # PROGRAM NAME: PIPFAIL
005021,000935:
005022,000936: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES OF BIT 13 OF CHANNEL 33, PIPA FAIL. IT SETS BIT 10 OF
005023,000937: # IMODES30 TO AGREE. IT CALLS SETISSW IN CASE A PIPA FAIL NECESSITATES AN ISS WARNING. IF NOT,I.E., IMODES30
005024,000938: # BIT 1 = 1, AND A PIPA FAIL IS PRESENT AND THE ISS IS NOT BEING INITIALIZED, PROGRAM ALARM 00212 IS ISSUED.
005025,000939:
005026,000940: # CALLING SEQUENCE: BY C33TEST ON CHANGES OF CHANNEL 33 BIT 13.
005027,000941:
005028,000942: # JOBS OR TASKS INITIATED: NONE.
005029,000943:
005030,000944: # SUBROUTINES CALLED: 1) SETISSW, AND 2) ALARM (SEE FUNCTIONAL DESCRIPTION).
005031,000945:
005032,000946: # ERASABLE INITIALIZATION: SEE IMUMON FOR INITIALIZATION OF IMODES30. THE RELAVANT BITS ARE 5, 7, 8, 9, AND 10.
005033,000947:
005034,000948: # ALARMS: PROGRAM ALARM 00212 IF PIPA FAIL IS PRESENT BUT NEITHER ISS WARNING IS TO BE ISSUED NOR THE ISS IS
005035,000949: # BEING INITIALIZED.
005036,000950:
005037,000951: # EXIT: NXTFL33.
005038,000952:
005039,000953: # OUTPUT: PROGRAM ALARM 00212 AND ISS WARNING MAINTENANCE.
005040,000954:
005041,000955: 12,2730 10000 PIPFAIL CCS A # SET BIT10 IN IMODES30 SO ALL ISS WARNING
005042,000956: 12,2731 37744 CAF BIT10 # INFO IS IN ONE REGISTER.
005043,000957: 12,2732 56365 XCH IMODES30
005044,000958: 12,2733 73066 MASK -BIT10
005045,000959: 12,2734 26365 ADS IMODES30
005046,000960:
005047,000961: 12,2735 02763 TC SETISSW
005048,000962:
005049,000963: 12,2736 40365 CS IMODES30 # IF PIP FAIL DOESNT LIGHT ISS WARNING, DO
005050,000964: 12,2737 77755 MASK BIT1 # A PROGRAM ALARM IF IMU OPERATING BUT NOT
005051,000965: 12,2740 10000 CCS A # CAGED OR BEING TURNED ON.
005052,000966:
005053,000967: 12,2741 12545 TCF NXTFL33
005054,000968:
005055,000969: 12,2742 30365 CA IMODES30
005056,000970: 12,2743 73062 MASK OCT1720
005057,000971: 12,2744 10000 CCS A
005058,000972: 12,2745 12545 TCF NXTFL33 # ABOVE CONDITION NOT MET.
005059,000973:
005060,000974: 12,2746 04744 TC ALARM
005061,000975: 12,2747 00212 OCT 212
005062,000976: 12,2750 12545 TCF NXTFL33
005063,000977:
Page 114 |
005065,000979: # PROGRAM NAMES: DNTMFAST, UPTMFAST
005066,000980:
005067,000981: # FUNCTIONAL DESCRIPTION: THESE PROGRAMS PROCESS CHANGES OF BITS 12 AND 11 OF CHANNEL 33. IF A BIT CHANGES TO A
005068,000982: # 0, A PROGRAM ALARM IS ISSUED. THE ALARMS ARE:
005069,000983:
005070,000984: # BIT ALARM CAUSE
005071,000985: # --- ----- -----
005072,000986: # 12 01105 DOWNLINK TOO FAST
005073,000987: # 11 01106 UPLINK TOO FAST
005074,000988:
005075,000989: # CALLING SEQUENCE: BY C33TEST ON A BIT CHANGE.
005076,000990:
005077,000991: # SUBROUTINES CALLED: ALARM, IF A BIT CHANGES TO A 0.
005078,000992:
005079,000993: # ERASABLE INITIALIZATION: FRESH START OR RESTART, BITS 12 AND 11 OF IMODES33 ARE SET TO 1.
005080,000994:
005081,000995: # ALARMS: SET FUNCTIONAL DESCRIPTION.
005082,000996:
005083,000997: # EXIT: NXTFL33.
005084,000998:
005085,000999: # OUTPUT: PROGRAM ALARM ON A BIT CHANGE TO 0.
005086,001000:
005087,001001: 12,2751 10000 DNTMFAST CCS A # DO PROG ALARM IF TM TOO FAST.
005088,001002: 12,2752 12545 TCF NXTFL33
005089,001003:
005090,001004: 12,2753 04744 TC ALARM
005091,001005: 12,2754 01105 OCT 1105
005092,001006: 12,2755 12545 TCF NXTFL33
005093,001007:
005094,001008: 12,2756 10000 UPTMFAST CCS A # SAME AS DNLINK TOO FAST WITH DIFFERENT
005095,001009: 12,2757 12545 TCF NXTFL33 # ALARM CODE.
005096,001010:
005097,001011: 12,2760 04744 TC ALARM
005098,001012: 12,2761 01106 OCT 1106
005099,001013: 12,2762 12545 TCF NXTFL33
005100,001014:
Page 115 |
005102,001016: # PROGRAM NAME: SETISSW
005103,001017:
005104,001018: # FUNCTIONAL DESCRIPTION: THIS PROGRAM TURNS THE ISS WARNING LAMP ON AND OFF (CHANNEL 11 BIT 1 = 1 FOR ON,
005105,001019: # 0 FOR OFF) DEPENDING ON THE STATUS OF IMODES30 BITS 13 (IMU FAIL) AND 4 (INHIBIT IMU FAIL), 12 (ICDU FAIL) AND
005106,001020: # 3 (INHIBIT ICDU FAIL), AND 10 (PIPA FAIL) AND 1 (INHIBIT PIPA FAIL). THE LAMP IS LEFT ON IF A LAMP TEST IS IN
005107,001021: # PROGRESS.
005108,001022:
005109,001023: # CALLING SEQUENCE: CALLED BY IMUMON ON CHANGES TO IMU FAIL AND ICDU FAIL. CALLED BY IFAILOK AND PFAILOK UPON
005110,001024: # REMOVAL OF THE FAIL INHIBITS. CALLED BY PIPFAIL WHEN THE PIPA FAIL DISCRETE CHANGES. IT IS CALLED BY PIPUSE
005111,001025: # SINCE THE PIPA FAIL PROGRAM ALARM MAY NECESSITATE AN ISS WARNING, AND LIKEWISE BY PIPFREE WHEN THE ALARM DEPARTS
005112,001026: # AND IT IS CALLED BY IMUZERO3 AND ISSUP AFTER THE FAIL INHIBITS HAVE BEEN REMOVED.
005113,001027:
005114,001028: # JOBS OR TASKS INITIATED: NONE.
005115,001029:
005116,001030: # SUBROUTINES CALLED: NONE.
005117,001031:
005118,001032: # ERASABLE INITIALIZATION:
005119,001033:
005120,001034: # 1) IMODES30 - SEE IMUMON.
005121,001035: # 2) IMODES33 BIT 1 = 0 (LAMP TEST NOT IN PROGRESS).
005122,001036:
005123,001037: # ALARMS: ISS WARNING.
005124,001038:
005125,001039: # EXIT: VIA Q.
005126,001040:
005127,001041: # OUTPUT: ISS WARNING LAMP SET PROPERLY.
005128,001042:
005129,001043: 12,2763 33054 SETISSW CAF OCT15 # SET ISS WARNING USING THE FAIL BITS IN
005130,001044: 12,2764 70365 MASK IMODES30 # BITS 13, 12, AND 10 OF IMODES30 AND THE
005131,001045: 12,2765 00006 EXTEND # FAILURE INHIBIT BITS IN POSITIONS
005132,001046: 12,2766 77744 MP BIT10 # 4, 3, AND 1.
005133,001047: 12,2767 30365 CA IMODES30
005134,001048: 12,2770 00006 EXTEND
005135,001049: 12,2771 04001 ROR L # 0 INDICATES FAILURE.
005136,001050: 12,2772 40000 COM
005137,001051: 12,2773 75657 MASK OCT15000
005138,001052: 12,2774 10000 CCS A
005139,001053: 12,2775 13006 TCF ISSWON # FAILURE.
005140,001054:
005141,001055: 12,2776 37755 ISSWOFF CAF BIT1 # DONT TURN OFF ISS WARNING IF LAMP TEST
005142,001056: 12,2777 70366 MASK IMODES33 # IN PROGRESS.
005143,001057: 12,3000 10000 CCS A
005144,001058: 12,3001 00002 TC Q
005145,001059:
005146,001060: 12,3002 47755 CS BIT1
005147,001061: 12,3003 00006 EXTEND
005148,001062: 12,3004 03011 WAND 11
005149,001063: 12,3005 00002 TC Q
005150,001064:
005151,001065: 12,3006 37755 ISSWON CAF BIT1
005152,001066:
Page 116 |
005154,001068: 12,3007 00006 EXTEND
005155,001069: 12,3010 05011 WOR 11
005156,001070:
005157,001071: 12,3011 00002 TC Q
005158,001072:
005159,001073: 12,3012 43065 CAGESUB CS BITS6&15 # SET OUTBITS AND INTERNAL FLAGS FOR
005160,001074: 12,3013 00006 EXTEND # SYSTEM TURN-ON OR CAGE. DISABLE THE
005161,001075: 12,3014 03012 WAND 12 # ERROR COUNTER AND REMOVE IMU DELAY COMP.
005162,001076: 12,3015 33056 CAF BITS4&5 # SEND ZERO AND COARSE.
005163,001077: 12,3016 00006 EXTEND
005164,001078: 12,3017 05012 WOR 12
005165,001079:
005166,001080: 12,3020 43055 CS OC40010 # TURN ON NO ATT LAMP.
005167,001081: 12,3021 70326 MASK DSPTAB +11D
005168,001082: 12,3022 63055 AD OC40010
005169,001083: 12,3023 54326 TS DSPTAB +11D
005170,001084:
005171,001085: 12,3024 43060 CAGESUB2 CS OCT75 # SET FLAGS TO INDICATE CAGING OR TURN-ON,
005172,001086: 12,3025 70365 MASK IMODES30 # AND TO INHIBIT ALL ISS WARNING INFO.
005173,001087: 12,3026 63060 AD OCT75
005174,001088: 12,3027 54365 TS IMODES30
005175,001089:
005176,001090: 12,3030 00006 EXTEND
005177,001091: 12,3031 33035 DCA T4DAP # DISABLE DAP DURING ISS INITIALIZATION
005178,001092: 12,3032 53001 DXCH T5ADR
005179,001093:
005180,001094: 12,3033 00002 TC Q
005181,001095:
005182,001096: 12,3034 E6,1541 EBANK= DT
005183,001097: 12,3034 02136 34006 T4DAP 2CADR DAPIDLER
005184,001098: 12,3036 12,2763 IMUFAIL EQUALS SETISSW
005185,001099: 12,3036 12,2763 ICDUFAIL EQUALS SETISSW
005186,001100:
Page 117 |
005188,001102: # JUMP TABLES AND CONSTANTS.
005189,001103:
005190,001104: 12,3036 12643 IFAILJMP TCF ITURNON # CHANNEL 30 DISPATCH.
005191,001105: 12,3037 12763 TCF IMUFAIL
005192,001106: 12,3040 12763 TCF ICDUFAIL
005193,001107: 12,3041 12673 TCF IMUCAGE
005194,001108: 12,3042 76400 30RDMSK OCT 76400 # (BIT 10 NOT SAMPLED HERE).
005195,001109: 12,3043 12712 TCF IMUOP
005196,001110:
005197,001111: 12,3044 12730 C33JMP TCF PIPFAIL # CHANNEL 33 DISPATCH.
005198,001112: 12,3045 12751 TCF DNTMFAST
005199,001113: 12,3046 12756 TCF UPTMFAST
005200,001114:
005201,001115: # SUBROUTINE TO SKIP IF LAMP TEST NOT IN PROGRESS.
005202,001116: 12,3047 40366 LAMPTEST CS IMODES33 # BIT 1 OF IMODES33 = 1 IF LAMP TEST IN
005203,001117: 12,3050 77755 MASK BIT1 # PROGRESS.
005204,001118: 12,3051 10000 CCS A
005205,001119: 12,3052 24002 INCR Q
005206,001120: 12,3053 00002 TC Q
005207,001121:
005208,001122: 12,3054 5660 33RDMSK EQUALS PRIO16
005209,001123: 12,3054 00015 OCT15 OCT 15
005210,001124: 12,3055 40010 OC40010 OCT 40010
005211,001125: 12,3056 00030 BITS4&5 OCT 30
005212,001126: 12,3057 00054 OCT54 OCT 54
005213,001127: 12,3060 00075 OCT75 OCT 75
005214,001128: 12,3061 00300 BITS7&8 OCT 300
005215,001129: 12,3062 01720 OCT1720 OCT 1720
005216,001130: 12,3063 01700 OCT1700 OCT 1700
005217,001131: 12,3064 5657 OCT15000 EQUALS PRIO15
005218,001132: 12,3064 71000 OCT71000 OCT 71000
005219,001133: 12,3065 40040 BITS6&15 OCT 40040
005220,001134:
005221,001135: 12,3066 76777 -BIT10 OCT -1000
005222,001136:
005223,001137: 12,3067 21450 90SECS DEC 9000 B-14
005224,001138: 12,3070 00014 120MS DEC 12 B-14
005225,001139:
005226,001140: 12,3071 12,3203 GLOCKOK EQUALS RCSMONIT
005227,001141: 12,3071 12,3203 NOIMUON EQUALS GLOCKOK
005228,001142:
Page 118 |
005230,001144: # RR INBIT MONITOR.
005231,001145:
005232,001146: 12,3071 30413 RRAUTCHK CA RADMODES # SEE IF CHANGE IN RR AUTO MODE BIT.
005233,001147: 12,3072 00006 EXTEND
005234,001148: 12,3073 06033 RXOR 33
005235,001149: 12,3074 77754 MASK BIT2
005236,001150: 12,3075 00006 EXTEND
005237,001151: 12,3076 13132 BZF RRCDUCHK
005238,001152:
005239,001153: 12,3077 22413 LXCH RADMODES # UPDATE RADMODES.
005240,001154: 12,3100 00006 EXTEND
005241,001155: 12,3101 06001 RXOR L
005242,001156: 12,3102 54413 TS RADMODES
005243,001157: 12,3103 77754 MASK BIT2 # SEE IF JUST ON.
005244,001158:
005245,001159: 12,3104 10000 CCS A
005246,001160: 12,3105 13124 TCF RROFF # OFF.
005247,001161:
005248,001162: 12,3106 37747 CAF BIT7 # IF JUST ON AND SOME PROGRAM IS USING THE
005249,001163: 12,3107 70074 MASK STATE # RR, DONT ZERO THE CDUS.
005250,001164: 12,3110 10000 CCS A
005251,001165: 12,3111 13132 TCF RRCDUCHK
005252,001166:
005253,001167: 12,3112 43123 CS OCT10001 # SET BITS TO INDICATE ZERO AND TURNON
005254,001168: 12,3113 70413 MASK RADMODES # IN PROGRESS.
005255,001169: 12,3114 63123 AD OCT10001
005256,001170: 12,3115 54413 TS RADMODES
005257,001171:
005258,001172: 12,3116 37755 CAF ONE
005259,001173: 12,3117 05701 TC WAITLIST
005260,001174: 12,3120 E6,1404 EBANK= M11
005261,001175: 12,3120 02000 20006 2CADR RRTURNON
005262,001176: 12,3122 13176 TCF NORRGMON
005263,001177:
005264,001178: 12,3123 10001 OCT10001 OCT 10001
005265,001179:
005266,001180: 12,3124 40074 RROFF CS STATE # IF SOMEONE WAS USING THE RR, DISPLAY AN
005267,001181:
005268,001182: 12,3125 77747 MASK BIT7 # ALARM IF THE RR GOES OUT OF AUTO MODE.
005269,001183: 12,3126 10000 CCS A
005270,001184: 12,3127 13132 TCF RRCDUCHK
005271,001185:
005272,001186: 12,3130 04744 TC ALARM
005273,001187: 12,3131 00514 OCT 514
005274,001188:
Page 119 |
005276,001190: # CHECK FOR RR CDU FAIL.
005277,001191:
005278,001192: 12,3132 30413 RRCDUCHK CA RADMODES # LAST SAMPLED BIT IN RADMODES.
005279,001193: 12,3133 00006 EXTEND
005280,001194: 12,3134 06030 RXOR 30
005281,001195: 12,3135 77747 MASK BIT7
005282,001196: 12,3136 00006 EXTEND
005283,001197: 12,3137 13152 BZF RRGIMON
005284,001198:
005285,001199: 12,3140 37754 CAF BIT2 # IF RR NOT IN AUTO MODE, DONT CHANGE BIT
005286,001200: 12,3141 70413 MASK RADMODES # 7 OF RADMODES. IF THIS WERE NOT DONE,
005287,001201: 12,3142 10000 CCS A # THE TRACKER FAIL MIGHT COME ON WHEN
005288,001202: 12,3143 13176 TCF NORRGMON # JUST READING LR DATA.
005289,001203:
005290,001204: 12,3144 37747 CAF BIT7 # SET BIT 7 OF RADMODES FOR SETTRKF.
005291,001205: 12,3145 22413 LXCH RADMODES # UPDATE RADMODES.
005292,001206: 12,3146 00006 EXTEND
005293,001207: 12,3147 06001 RXOR L
005294,001208: 12,3150 54413 TS RADMODES
005295,001209:
005296,001210: 12,3151 04366 TRKFLCDU TC SETTRKF # UPDATE TRACKER FAIL LAMP ON DSKY.
005297,001211:
Page 120 |
005299,001213: # THE RR GIMBAL LIMIT MONITOR IS ENABLED WHENEVER THE RR IS IN THE AUTO MODE EXCEPT WHEN THE RR CDUS ARE
005300,001214: # BEING ZEROED, OR DURING A REMODE OR MONITOR REPOSITION OPERATION. THE LATTER IS INITIATED BY THIS MONITOR WHEN
005301,001215:
005302,001216: # THE GIMBALS EXCEED THE LIMITS FOR THE CURRENT MODE. A ROUTINE IS INITIATED TO DRIVE THE GIMBALS TO T = 0 AND
005303,001217: # S = 0 IF IN MODE 1 AND T = 180 WITH S = -90 FOR MODE 2.
005304,001218:
005305,001219: 12,3152 33174 RRGIMON CAF OCT32002 # INHIBITED BY REMODE, ZEROING, MONITOR.
005306,001220: 12,3153 70413 MASK RADMODES # OR RR NOT IN AUTO.
005307,001221: 12,3154 10000 CCS A
005308,001222: 12,3155 13176 TCF NORRGMON
005309,001223:
005310,001224: 12,3156 04323 TC RRLIMCHK # SEE IF ANGLES IN LIMITS.
005311,001225: 12,3157 00035 ADRES OPTY
005312,001226:
005313,001227: 12,3160 13162 TCF MONREPOS
005314,001228:
005315,001229: 12,3161 13176 TCF NORRGMON # (ADDITIONAL CODING MAY GO HERE).
005316,001230:
005317,001231: 12,3162 37743 MONREPOS CAF BIT11 # SET FLAG TO SHOW REPOSITION IN PROGRESS.
005318,001232: 12,3163 26413 ADS RADMODES
005319,001233:
005320,001234: 12,3164 43175 CS OCT20002 # DISABLE TRACKER AND ERROR COUNTER.
005321,001235: 12,3165 00006 EXTEND
005322,001236: 12,3166 03012 WAND 12
005323,001237:
005324,001238: 12,3167 37754 CAF TWO
005325,001239:
005326,001240: 12,3170 05701 TC WAITLIST
005327,001241: 12,3171 E6,1404 EBANK= M11
005328,001242: 12,3171 02051 20006 2CADR DORREPOS
005329,001243: 12,3173 13176 TCF NORRGMON
005330,001244:
005331,001245: 12,3174 32002 OCT32002 OCT 32002
005332,001246: 12,3175 20002 OCT20002 OCT 20002
005333,001247:
Page 121 |
005335,001249: # PROGRAM NAME: GPMATRIX (DAPT4S) MOD. NO. 2 DATE: OCTOBER 27, 1966
005336,001250:
005337,001251: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
005338,001252:
005339,001253: # THIS PROGRAM CALCULATES ALL THE SINGLE-PRECISION MATRIX ELEMENTS WHICH ARE USED BY LEM DAP TO TRANSFORM VECTORS
005340,001254: # FROM GIMBAL TO PILOT (BODY) AXES AND BACK AGAIN. THESE ELEMENTS ARE USED EXCLUSIVELY BY BASIC LANGUAGE ROUTINES
005341,001255: # AND THEREFORE ARE NOT ARRAYED FOR USE BY INTERPRETIVE PROGRAMS.
005342,001256:
005343,001257: # CALLING SEQUENCE: GPMATRIX IS TRANSFERRED TO FROM DAPT4S AND IS THUS EXECUTED 4 TIMES A SECOND BY T4RUPT.
005344,001258: # DAPT4S IS LISTED IN T4JUMP TABLE TWICE EXPLICITLY AND ALSO OCCURS AFTER RRAUTCHK (WHICH IS ALSO LISTED TWICE).
005345,001259:
005346,001260: # SUBROUTINES CALLED: SPSIN, SPCOS.
005347,001261:
005348,001262: # NORMAL EXIT: RESUME.
005349,001263:
005350,001264: # ALARM/ABORT MODE: THERE ARE NO REAL ALARMS OR ABORTS. HOWEVER, WHEN THE MIDDLE GIMBAL ANGLE NEARS GIMBAL LOCK,
005351,001265: # A DIVISION BY COS(MG) WILL CAUSE OVERFLOW (I.E. A BAD QUOTIENT). THIS CONDITION IS PREVENTED BY TESTING COS(MG)
005352,001266: # AND SUBSTITUTING POSMAX/NEGMAX FOR THE INCALCULABLE QUANTITIES.
005353,001267:
005354,001268: # INPUT: CDUX,CDUY,CDUZ. OUTPUT: M11,M21,M31,M22,M32,MR12,MR13.
005355,001269: # (ALSO MR22=M22,MR23=M32)
005356,001270:
005357,001271: # AOG = CDUX, AIG = CDUY, AMG = CDUZ: MNEMONIC IS: OIM = XYZ
005358,001272:
005359,001273: # * * SIN(MG) 0 1 *
005360,001274: # M = * COS(MG)COS(OG) SIN(OG) 0 *
005361,001275: # GP * -COS(MG)SIN(OG) COS(OG) 0 *
005362,001276:
005363,001277: # * * 0 COS(OG)/COS(MG) -SIN(OG)/COS(MG) *
005364,001278: # M = * 0 SIN(OG) COS(OG) *
005365,001279: # PG * 1 -SIN(MG)COS(OG)/COS(MG) SIN(MG)SIN(OG)/COS(MG) *
005366,001280:
005367,001281: # THIS CODING TRANSFERS CONTROL TO THE DAP FIXED BANK FOR GPMATRIX:
005368,001282:
005369,001283: 12,3176 BANK 12
005370,001284: 12,3176 E6,1404 EBANK= M11
005371,001285:
005372,001286: 12,3176 00006 DAPT4S EXTEND # GET 2CADR OF GPMATRIX
005373,001287: 12,3177 33202 DCA DAPT4
005374,001288: 12,3200 52006 DTCB # CROSS BANKS
005375,001289:
005376,001290: 12,3201 12,3176 NORRGMON EQUALS DAPT4S
005377,001291:
005378,001292: 12,3201 E6,1404 EBANK= M11
005379,001293: 12,3201 02000 40006 DAPT4 2CADR GPMATRIX
005380,001294:
Page 122 |
005382,001296: # T4RUPT DAP LOGIC:
005383,001297:
005384,001298: 20,2000 BANK 20
005385,001299: 20,2000 E6,1404 EBANK= M11
005386,001300:
005387,001301: 20,2000 30034 GPMATRIX CAE CDUZ # SINGLE ENTRY POINT
005388,001302: 20,2001 05373 TC SPSIN # SIN(CDUZ) = SIN(MG)
005389,001303: 20,2002 55404 TS M11 # SCALED AT 1
005390,001304:
005391,001305: 20,2003 30034 CAE CDUZ
005392,001306: 20,2004 05372 TC SPCOS # COS(CDUZ) = COS(MG)
005393,001307: 20,2005 55457 TS COSMG # SCALED AT 1 (ONLY A FACTOR)
005394,001308:
005395,001309: 20,2006 30032 CAE CDUX
005396,001310:
005397,001311: 20,2007 05373 TC SPSIN # SIN(CDUX) = SIN(OG)
005398,001312: 20,2010 55401 TS M22 # SCALED AT 1 (ALSO IS MR22)
005399,001313:
005400,001314: 20,2011 41401 CS M22
005401,001315: 20,2012 00006 EXTEND
005402,001316: 20,2013 71457 MP COSMG # -SIN(OG)COS(MG)
005403,001317: 20,2014 55406 TS M31 # SCALED AT 1
005404,001318:
005405,001319: 20,2015 30032 CAE CDUX
005406,001320: 20,2016 05372 TC SPCOS # COS(CDUX) = COS(OG)
005407,001321: 20,2017 55403 TS M32 # SCALED AT 1 (ALSO IS MR23)
005408,001322:
005409,001323: 20,2020 00006 EXTEND
005410,001324: 20,2021 71457 MP COSMG # COS(OG)COS(MG)
005411,001325: 20,2022 55405 TS M21 # SCALED AT 1
005412,001326:
005413,001327: 20,2023 31457 CAE COSMG # TEST FOR GIMBAL LOCK (OVERFLOW) REGION
005414,001328: 20,2024 67736 AD NEG1/2 # BY TESTING MIDDLE GIMBAL ANGLE FOR
005415,001329: 20,2025 00006 EXTEND # VALUES EQUAL TO OR GREATER THAN 60 DEGS.
005416,001330: 20,2026 62043 BZMF GPGLOCK
005417,001331:
005418,001332: 20,2027 31403 CAE M32
005419,001333: 20,2030 00006 EXTEND
005420,001334:
005421,001335: 20,2031 77740 MP BIT14 # SCALE FOR DIVISION
005422,001336: 20,2032 00006 EXTEND
005423,001337: 20,2033 11457 DV COSMG # COS(OG)/COS(MG)
005424,001338: 20,2034 55400 TS MR12 # SCALED AT 2
005425,001339:
005426,001340: 20,2035 41401 CS M22
005427,001341: 20,2036 00006 EXTEND
005428,001342: 20,2037 77740 MP BIT14 # SCALE FOR DIVISION
005429,001343: 20,2040 00006 EXTEND
005430,001344: 20,2041 11457 DV COSMG # -SIN(OG)/COS(MG)
005431,001345: 20,2042 12054 TCF MR13STOR
005432,001346:
Page 123 |
005434,001348: # SPECIAL LOGIC FOR MIDDLE GIMBAL ANGLES GREATER THAN OR EQUAL TO 60 DEGS:
005435,001349:
005436,001350: 20,2043 11403 GPGLOCK CCS M32 # SINCE DIVISION BY COS(MG) MIGHT CREATE
005437,001351: 20,2044 37735 CAF POSMAX
005438,001352: 20,2045 12047 TCF +2 # OVERFLOW (I.E. A NUMBER GREATER THAN 2)
005439,001353: 20,2046 37737 CAF NEGMAX
005440,001354: 20,2047 55400 TS MR12 # USE THE VALUE SGN(NUMERATOR)*POSMAX AS
005441,001355:
005442,001356: 20,2050 11401 CCS M22
005443,001357: 20,2051 37735 CAF POSMAX # THE CLOSEST APPROXIMATION
005444,001358: 20,2052 12054 TCF +2
005445,001359: 20,2053 37737 CAF NEGMAX
005446,001360: 20,2054 55402 MR13STOR TS MR13 # SCALED AT 2
005447,001361:
005448,001362: 20,2055 15751 TCF RESUME
End of include-file T4RUPT_PROGRAM.agc. Parent file is MAIN.agc