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