Source Code
![]() |
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
004505,000002: ## Copyright: Public domain. 004506,000003: ## Filename: T4RUPT_PROGRAM.agc 004507,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It 004508,000005: ## is part of the source code for the Lunar Module's 004509,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5. 004510,000007: ## Assembler: yaYUL 004511,000008: ## Contact: Ron Burkey <info@sandroid.org>. 004512,000009: ## Website: www.ibiblio.org/apollo/index.html 004513,000010: ## Mod history: 2016-09-30 RSB Created draft version. 004514,000011: ## 2016-10-05 RSB Finished transcribing. 004515,000012: ## 2016-10-30 MAS Some spelling corrections, channel updates and a line correction. 004516,000013: ## 2016-10-31 RSB Typo. 004517,000014: ## 2016-11-02 RSB More typos. 004518,000015: ## 2016-12-03 RSB Fixed a bunch of typos in the comments, using octopus/ProoferComments, 004519,000016: ## but some of the pages still don't work well with octopus, so the 004520,000017: ## proofing process isn't complete yet. 004521,000018: ## 2016-12-04 RSB I was a bit too aggressive yesterday in interpreting noise in the scans 004522,000019: ## as colons, and have backed that off in 5 places. Also, fixed a couple 004523,000020: ## more typos. 004524,000021: ## 2016-12-05 RSB Comment-proofing process with octopus/ProoferComments completed; 004525,000022: ## fixes made. 004526,000023: ## 2017-01-26 RSB Back-ported a comment-text fix found while 004527,000024: ## proofing corresponding Luminary 69 file. 004528,000025: ## 2017-01-28 RSB WTIH -> WITH. 004529,000026: ## 2017-03-03 RSB Fixed comment-text errors identified while proofing 004530,000027: ## Luminary 116. 004531,000028:
![]() |
Page 104 |
004533,000030: 12,2000 BANK 12 004534,000031: 004535,000032: 12,2000 E6,1404 EBANK= M11 004536,000033: 12,2000 54016 T4RUPT TS BANKRUPT 004537,000034: 004538,000035: 12,2001 37767 CA ZERO 004539,000036: 12,2002 00006 EXTEND # ZERO OUT0 EVERY T4RUPT. 004540,000037: 12,2003 01010 WRITE OUT0 004541,000038: 004542,000039: 12,2004 50346 INDEX T4LOC # NORMALLY TO NORMT4, BUT TO LMPRESET OR 004543,000040: 12,2005 10000 TCF 0 # DSKYRSET AFTER OUT0 COMMAND. 004544,000041: 004545,000042: 12,2006 10347 NORMT4 CCS DSRUPTSW # GOES 7(-1)0. 004546,000043: 12,2007 12011 TCF +2 004547,000044: 12,2010 37765 CAF SEVEN 004548,000045: 12,2011 54347 TS DSRUPTSW 004549,000046: 004550,000047: 12,2012 12030 TCF T4RUPTA 004551,000048: 004552,000049: 12,2013 34276 LMPRESET CAF LNORMT4 # DO THINGS IN THIS ORDER FOR RESTART 004553,000050: 12,2014 54346 TS T4LOC # PROTECTION. 004554,000051: 12,2015 31145 CA LMPOUTT # NEW VALUE OF OUTPUT POINTER. 004555,000052: 12,2016 55144 TS LMPOUT 004556,000053: 12,2017 47763 CS ONE # TO SHOW OUTPUT POINTER ALREADY UPDATED. 004557,000054: 12,2020 55145 TS LMPOUTT 004558,000055: 12,2021 34274 CAF 90MRUPT 004559,000056: 12,2022 12026 TCF +4 004560,000057: 004561,000058: 12,2023 34276 DSKYRSET CAF LNORMT4 # 20 MS ON / 100 MS OFF. 004562,000059: 12,2024 54346 TS T4LOC 004563,000060: 12,2025 34275 CAF 100MRUPT 004564,000061: 12,2026 54027 +4 TS TIME4 004565,000062: 12,2027 15735 TCF NOQRSM 004566,000063: 4274 BLOCK 02 004567,000064: 4274 37767 90MRUPT DEC 16375 B-14 004568,000065: 4275 37766 100MRUPT DEC 16374 B-14 004569,000066: 4276 02006 LNORMT4 ADRES NORMT4 004570,000067: 4277 74000 74K OCT 74000 004571,000068: 004572,000069: # RELTAB IS A PACKED TABLE. RELAYWORD CODE IN UPPER 4 BITS, RELAY CODE 004573,000070: # IN LOWER 5 BITS. 004574,000071: 004575,000072: 4300 04025 RELTAB OCT 04025 004576,000073: 4301 10003 OCT 10003 004577,000074: 4302 14031 OCT 14031 004578,000075: 4303 20033 OCT 20033 004579,000076: 4304 24017 OCT 24017 004580,000077: 4305 30036 OCT 30036 004581,000078: 4306 34034 OCT 34034 004582,000079: 4307 40023 OCT 40023 004583,000080: 4310 44035 OCT 44035
![]() |
Page 105 |
004585,000082: 4311 50037 OCT 50037 004586,000083: 4312 54000 OCT 54000 004587,000084: 4313 60000 RELTAB11 OCT 60000 004588,000085:
![]() |
Page 106 |
004590,000087: # SWITCHED-BANK PORTION. 004591,000088: 004592,000089: 12,2030 BANK 12 004593,000090: 12,2030 00006 T4RUPTA EXTEND 004594,000091: 12,2031 22012 QXCH QRUPT 004595,000092: 004596,000093: 12,2032 51144 INDEX LMPOUT # SEE IF LMP COMMAND TO BE PUT OUT. 004597,000094: 12,2033 11133 CCS LMPCMD 004598,000095: 12,2034 12056 TCF CDRVE # BIT 15 = 1 AND (UP TO) BITS 1 - 11 004599,000096: 12,2035 12056 TCF CDRVE # CONTAIN THE COMMAND. 004600,000097: 004601,000098: 12,2036 32147 CAF LLMPRS # SET T4 FOR SPECIAL RUPT AND SHOW LMP 004602,000099: 12,2037 54346 TS T4LOC # COMMAND IN PROGRESS IF RESTART. 004603,000100: 004604,000101: 12,2040 34563 CAF LOW11 004605,000102: 12,2041 51144 INDEX LMPOUT 004606,000103: 12,2042 71133 MASK LMPCMD # LEAVE COMMAND PORTION INTACT. 004607,000104: 12,2043 51144 INDEX LMPOUT 004608,000105: 12,2044 55133 TS LMPCMD 004609,000106: 12,2045 64277 AD 74K 004610,000107: 12,2046 00006 EXTEND 004611,000108: 12,2047 01010 WRITE OUT0 004612,000109: 004613,000110: 12,2050 11144 CCS LMPOUT # PREDICT NEW VALUE OF LMPOUT BUT DONT 004614,000111: 12,2051 12053 TCF +2 # UPDATE IT UNTIL COMMAND SENT (IN CASE OF 004615,000112: 12,2052 37765 CAF SEVEN # RESTART.) 004616,000113: 12,2053 55145 TS LMPOUTT 004617,000114: 004618,000115: 12,2054 32150 CAF 30MRUPT 004619,000116: 12,2055 12133 TCF SETTIME4 004620,000117: 004621,000118: 12,2056 10326 CDRVE CCS DSPTAB +11D 004622,000119: 12,2057 02066 TC DSPOUT 004623,000120: 12,2060 02066 TC DSPOUT 004624,000121: 004625,000122: 12,2061 56326 XCH DSPTAB +11D 004626,000123: 12,2062 74563 MASK LOW11 004627,000124: 12,2063 54326 TS DSPTAB +11D 004628,000125: 12,2064 64313 AD RELTAB11 004629,000126: 12,2065 02126 TC DSPLAYC 004630,000127:
![]() |
Page 107 |
004632,000129: # DSPOUT PROGRAM. PUTS OUT DISPLAYS. 004633,000130: 004634,000131: 12,2066 10307 DSPOUT CCS NOUT # DRIVE DISPLAY SYSTEM RELAYS. 004635,000132: 12,2067 12072 TCF +3 004636,000133: 004637,000134: 12,2070 32107 NODSPOUT CAF 120MRUPT # SET FOR RUPT IN 120 MS IF NO RELAYS. 004638,000135: 12,2071 12133 TCF SETTIME4 004639,000136: 004640,000137: 12,2072 54307 TS NOUT 004641,000138: 12,2073 47767 CS ZERO 004642,000139: 12,2074 54073 TS DSRUPTEM # SET TO -0 FOR 1ST PASS THRU DSPTAB 004643,000140: 12,2075 56345 XCH DSPCNT 004644,000141: 12,2076 67770 AD NEG0 # TO PREVENT +0 004645,000142: 12,2077 54345 TS DSPCNT 004646,000143: 12,2100 50345 DSPSCAN INDEX DSPCNT 004647,000144: 12,2101 10313 CCS DSPTAB 004648,000145: 12,2102 10345 CCS DSPCNT # IF DSPTAB ENTRY +, SKIP 004649,000146: 12,2103 02076 TC DSPSCAN -2 # IF DSPCNT +, AGAIN 004650,000147: 12,2104 02115 TC DSPLAY # IF DSPTAB ENTRY -, DISPLAY 004651,000148: 12,2105 00012 TABLNTH OCT 12 # DEC 10 LENGTH OF DSPTAB 004652,000149: 12,2106 10073 CCS DSRUPTEM # IF DSRUPTEM=+0, 2ND PASS THRU DSPTAB 004653,000150: 12,2107 37764 120MRUPT DEC 16372 B-14 # (DSPCNT = 0). +0 INTO NOUT. 004654,000151: 12,2110 54307 TS NOUT 004655,000152: 12,2111 12070 TCF NODSPOUT 004656,000153: 12,2112 54073 TS DSRUPTEM # IF DSRUPTEM=-0, 1ST PASS THRU DSPTAB 004657,000154: 12,2113 32105 CAF TABLNTH # (DSPCNT=0).+0 INTO DSRUPTEM. PASS AGAIN 004658,000155: 12,2114 02077 TC DSPSCAN -1 004659,000156: 004660,000157: 12,2115 67763 DSPLAY AD ONE 004661,000158: 12,2116 50345 INDEX DSPCNT 004662,000159: 12,2117 54313 TS DSPTAB # REPLACE POSITIVELY 004663,000160: 12,2120 74563 MASK LOW11 # REMOVE BITS 12 TO 15 004664,000161: 12,2121 54073 TS DSRUPTEM 004665,000162: 12,2122 34560 CAF HI5 004666,000163: 12,2123 50345 INDEX DSPCNT 004667,000164: 12,2124 74300 MASK RELTAB # PICK UP BITS 12 TO 15 OF RELTAB ENTRY 004668,000165: 12,2125 60073 AD DSRUPTEM 004669,000166: 12,2126 00006 DSPLAYC EXTEND 004670,000167: 12,2127 01010 WRITE OUT0 004671,000168: 004672,000169: 12,2130 32146 CAF LDSKYRS 004673,000170: 12,2131 54346 TS T4LOC 004674,000171: 12,2132 32151 CAF 20MRUPT 004675,000172: 004676,000173: 12,2133 54027 SETTIME4 TS TIME4 004677,000174:
![]() |
Page 108 |
004679,000176: # JUMP TO APPROPRIATE ONCE-PER SECOND (.96 SEC ACTUALLY) ACTIVITY 004680,000177: 004681,000178: 12,2134 50347 T4JUMP INDEX DSRUPTSW 004682,000179: 12,2135 12136 TCF +1 004683,000180: 004684,000181: 12,2136 03166 TC RCSMONIT 004685,000182: 12,2137 03161 TC NORRGMON # WAS TCF RRAUTCHK (NO RADAR IN 206). 004686,000183: 12,2140 12305 TCF IMUMON 004687,000184: 12,2141 13161 TCF DAPT4S 004688,000185: 12,2142 15733 TCF RESUME 004689,000186: 12,2143 03161 TC NORRGMON # WAS TCF RRAUTCHK (NO RADAR IN 206). 004690,000187: 12,2144 12305 TCF IMUMON 004691,000188: 12,2145 13161 TCF DAPT4S 004692,000189: 004693,000190: 12,2146 02023 LDSKYRS ADRES DSKYRSET 004694,000191: 12,2147 02013 LLMPRS ADRES LMPRESET 004695,000192: 004696,000193: 12,2150 37775 30MRUPT DEC 16381 B-14 004697,000194: 12,2151 37776 20MRUPT DEC 16382 B-14 004698,000195:
![]() |
Page 109 |
004700,000197: # THIS ROUTINE SERVICES THE METER OUTPUTS. 004701,000198: 004702,000199: # DIDFLG INDICATES THE STATE OF THE PROGRAM.............. 004703,000200: # IF GREATER THAN ZERO, THEN UNABLE TO DISPLAY DATA 004704,000201: # IF EQUAL TO ZERO, THEN THE PROGRAM IS IN USE 004705,000202: # IF LESS THAN ZERO, THEN THE PROGRAM IS ABLE TO BE USED............ 004706,000203: 004707,000204: 12,2152 02225 ALTOUT TC DISINDAT 004708,000205: 12,2153 47762 CS BIT2 004709,000206: 12,2154 00006 EXTEND 004710,000207: 12,2155 03014 WAND 14 # SET UP OUTPUT FOR ALTITUDE 004711,000208: 12,2156 10351 CCS ALT # -1 IF OLD DATA TO BE EXTRAPOLATED. 004712,000209: 12,2157 12163 TCF +4 # NEW DATA. 004713,000210: 12,2160 12163 TCF +3 004714,000211: 12,2161 12167 TCF OLDDATA 004715,000212: 004716,000213: 12,2162 54351 TS ALT # CHANGE -0 IN ALT TO +0. 004717,000214: 12,2163 47763 CS ONE # RESET ALTSAVE. 004718,000215: 12,2164 52352 DXCH ALT 004719,000216: 12,2165 52364 ZDATA2 DXCH ALTSAVE 004720,000217: 12,2166 12207 TCF NEWDATA 004721,000218: 004722,000219: 12,2167 30353 OLDDATA CA ALTRATE # USE ALTRATE TO EXTRAPOLATE. 004723,000220: 12,2170 00006 EXTEND 004724,000221: 12,2171 72302 MP ARTOA # RATE APPLIES FOR .96 SEC. 004725,000222: 12,2172 60364 AD ALTSAVE +1 004726,000223: 12,2173 54364 TS ALTSAVE +1 # AND MAYBE SKIP. 004727,000224: 12,2174 37767 CAF ZERO 004728,000225: 12,2175 26363 ADS ALTSAVE 004729,000226: 004730,000227: 12,2176 37743 CAF POSMAX # FORCE SIGN AGREEMENT ASSUMING ALTSAVE IS 004731,000228: 12,2177 67763 AD ONE # NOT NEGATIVE. IF IT IS, THE FINAL TS 004732,000229: 12,2200 60364 AD ALTSAVE +1 # WILL NOT SKIP AND WE CAN SET ALTSAVE TO 004733,000230: 12,2201 54364 TS ALTSAVE +1 # ZERO IN THAT CASE. 004734,000231: 12,2202 37767 CAF ZERO 004735,000232: 12,2203 67743 AD POSMAX 004736,000233: 12,2204 60363 AD ALTSAVE 004737,000234: 12,2205 54363 TS ALTSAVE 004738,000235: 12,2206 12277 TCF ZERODATA # ALTSAVE NEGATIVE - SET TO ZERO. 004739,000236: 004740,000237: 12,2207 10363 NEWDATA CCS ALTSAVE # MAKE UP 15 BIT UNSIGNED OUTPUT. 004741,000238: 12,2210 37745 CAF BIT15 # MAJOR PART +1 OR +0. 004742,000239: 12,2211 60364 AD ALTSAVE +1 004743,000240: 12,2212 54060 METEROUT TS ALTM 004744,000241: 12,2213 32303 CAF BITSET 004745,000242: 12,2214 00006 EXTEND 004746,000243: 12,2215 05014 WOR 14 004747,000244: 12,2216 12276 TCF DONEDID 004748,000245:
![]() |
Page 110 |
004750,000247: 12,2217 02225 ALTROUT TC DISINDAT 004751,000248: 12,2220 37762 CAF BIT2 004752,000249: 12,2221 00006 EXTEND 004753,000250: 12,2222 05014 WOR 14 # SET UP OUTPUT FOR ALT. RATE 004754,000251: 12,2223 30353 CA ALTRATE 004755,000252: 12,2224 12212 TCF METEROUT 004756,000253: 004757,000254: 12,2225 10350 DISINDAT CCS DIDFLG 004758,000255: 12,2226 12273 TCF ALLDONE # NOTE THAT THIS SHOULD ALWAYS GO TO 004759,000256: # ALLDONE AND NOT DONEDID SINCE THE 004760,000257: # AVAILABILITY OF DATA MAY DISAPPEAR WHILE 004761,000258: # THE ASTRONAUT HAS THE BUTTON DOWN. 004762,000259: 12,2227 12230 NOOP 004763,000260: 12,2230 37756 CAF BIT6 004764,000261: 12,2231 00006 EXTEND 004765,000262: 12,2232 02030 RAND 30 # CHECK DISPLAY INERTIAL DATA BIT 004766,000263: 12,2233 10000 CCS A 004767,000264: 12,2234 12273 TCF ALLDONE 004768,000265: 12,2235 10350 CCS DIDFLG 004769,000266: 12,2236 12237 NOOP 004770,000267: 12,2237 12260 TCF GOAGN 004771,000268: 004772,000269: 12,2240 37754 FIRSTIME CAF BIT8 004773,000270: 12,2241 00006 EXTEND 004774,000271: 12,2242 05012 WOR 12 # ENABLE DISPLAY INERTIAL DATA 004775,000272: 12,2243 37767 CAF ZERO 004776,000273: 12,2244 54350 TS DIDFLG 004777,000274: 12,2245 54362 TS LASTXCMD 004778,000275: 12,2246 54361 TS LASTYCMD 004779,000276: 12,2247 36306 CAF SIX 004780,000277: 12,2250 05663 TC WAITLIST 004781,000278: 12,2251 E6,1404 EBANK= M11 004782,000279: 12,2251 02254 24066 2CADR INTLZE 004783,000280: 004784,000281: 12,2253 02276 TC DONEDID 004785,000282: 004786,000283: 12,2254 37762 INTLZE CAF BIT2 004787,000284: 12,2255 00006 EXTEND 004788,000285: 12,2256 05012 WOR 12 # ENABLE RR ERROR COUNTER 004789,000286: 12,2257 05727 TC TASKOVER 004790,000287: 004791,000288: 12,2260 40362 GOAGN CS LASTXCMD 004792,000289: 12,2261 60357 AD FORVEL 004793,000290: 12,2262 54054 TS OPTXCMD 004794,000291: 12,2263 30357 CA FORVEL 004795,000292: 12,2264 54362 TS LASTXCMD 004796,000293: 12,2265 40361 CS LASTYCMD 004797,000294: 12,2266 60360 AD LATVEL 004798,000295: 12,2267 54053 TS OPTYCMD 004799,000296: 12,2270 30360 CA LATVEL 004800,000297:
![]() |
Page 111 |
004802,000299: 12,2271 54361 TS LASTYCMD 004803,000300: 12,2272 00002 TC Q 004804,000301: 004805,000302: 12,2273 42304 ALLDONE CS DIDRESET # REMOVE DISPLAY INERTIAL DATA AND ECTR. 004806,000303: 12,2274 00006 EXTEND 004807,000304: 12,2275 03012 WAND 12 # RESET RR ERROR COUNTER 004808,000305: 12,2276 15733 DONEDID TCF RESUME # ** FIX LATER** 004809,000306: 004810,000307: 12,2277 37767 ZERODATA CAF ZERO 004811,000308: 12,2300 54001 TS L 004812,000309: 12,2301 12165 TCF ZDATA2 004813,000310: 004814,000311: 12,2302 06432 ARTOA DEC .20469 # ALT DUE TO ALTRATE FOR .96 SEC. 004815,000312: 12,2303 06004 BITSET OCT 6004 004816,000313: 004817,000314: 12,2304 00202 DIDRESET OCT 202 004818,000315:
![]() |
Page 112 |
004820,000317: # PROGRAM NAME: IMUMON 004821,000318: 004822,000319: # FUNCTIONAL DESCRIPTION: THIS PROGRAM IS ENTERED EVERY 480 MS. IT DETECTS CHANGES OF THE IMU STATUS BITS IN 004823,000320: # CHANNEL 30 AND CALLS THE APPROPRIATE SUBROUTINES. THE BITS PROCESSED AND THEIR RELEVANT SUBROUTINES ARE: 004824,000321: 004825,000322: # FUNCTION BIT SUBROUTINE CALLED 004826,000323: # -------- --- ----------------- 004827,000324: # TEMP IN LIMITS 15 TLIM 004828,000325: # ISS TURN-ON REQUEST 14 ITURNON 004829,000326: # IMU FAIL 13 IMUFAIL (SETISSW) 004830,000327: # IMU CDU FAIL 12 ICDUFAIL (SETISSW) 004831,000328: # IMU CAGE 11 IMUCAGE 004832,000329: # IMU OPERATE 9 IMUOP 004833,000330: 004834,000331: # THE LAST SAMPLED STATE OF THESE BITS IS LEFT IN IMODES30. ALSO, EACH SUBROUTINE CALLED FINDS THE NEW 004835,000332: # VALUE OF THE BIT IN A, WITH Q SET TO THE PROPER RETURN LOCATION, NXTIFAIL. 004836,000333: 004837,000334: # CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS. 004838,000335: 004839,000336: # JOBS OR TASKS INITIATED: NONE. 004840,000337: 004841,000338: # SUBROUTINES CALLED: TLIM, ITURNON, SETISSW, IMUCAGE, IMUOP. 004842,000339: 004843,000340: # ERASABLE INITIALIZATION: 004844,000341: # FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(IMODES30) = OCT 37411. 004845,000342: # RESTART WITH ACTIVE GROUPS: C(IMODES30) = (B(IMODES30)AND(OCT 00035)) PLUS OCT 37400. 004846,000343: # THIS LEAVES IMU FAIL BITS INTACT. 004847,000344: 004848,000345: # ALARMS: NONE. 004849,000346: 004850,000347: # EXIT: TNONTEST. 004851,000348: 004852,000349: # OUTPUT: UPDATED IMODES30 WITH CHANGES PROCESSED BY APPROPRIATE SUBROUTINE. 004853,000350: 004854,000351: 12,2305 30365 IMUMON CA IMODES30 # SEE IF THERE HAS BEEN A CHANGE IN THE 004855,000352: 12,2306 00006 EXTEND # RELEVANT BITS OF CHAN 30. 004856,000353: 12,2307 06030 RXOR 30 004857,000354: 12,2310 73025 MASK 30RDMSK 004858,000355: 12,2311 00006 EXTEND 004859,000356: 12,2312 12342 BZF TNONTEST # NO CHANGE IN STATUS. 004860,000357: 004861,000358: 12,2313 54070 TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED. 004862,000359: 12,2314 22365 LXCH IMODES30 # UPDATE IMODES30. 004863,000360: 12,2315 00006 EXTEND 004864,000361: 12,2316 06001 RXOR L 004865,000362: 12,2317 54365 TS IMODES30 004866,000363: 004867,000364: 12,2320 47763 CS ONE 004868,000365: 12,2321 56070 XCH RUPTREG1 004869,000366: 12,2322 00006 EXTEND
![]() |
Page 113 |
004871,000368: 12,2323 62614 BZMF TLIM # CHANGE IN IMU TEMP. 004872,000369: 12,2324 12326 TCF NXTIFBIT # BEGIN BIT SCAN. 004873,000370: 004874,000371: 12,2325 67763 -1 AD ONE # (RE-ENTERS HERE FROM NXTIFAIL.) 004875,000372: 12,2326 24070 NXTIFBIT INCR RUPTREG1 # ADVANCE BIT POSITION NUMBER. 004876,000373: 12,2327 60000 +1 DOUBLE 004877,000374: 12,2330 54000 TS A # SKIP IF OVERFLOW. 004878,000375: 12,2331 12326 TCF NXTIFBIT # LOOK FOR BIT. 004879,000376: 004880,000377: 12,2332 56071 XCH RUPTREG2 # SAVE OVERFLOW-CORRECTED DATA. 004881,000378: 12,2333 50070 INDEX RUPTREG1 # SELECT NEW VALUE OF THIS BIT. 004882,000379: 12,2334 37746 CAF BIT14 004883,000380: 12,2335 70365 MASK IMODES30 004884,000381: 12,2336 50070 INDEX RUPTREG1 004885,000382: 12,2337 03021 TC IFAILJMP 004886,000383: 004887,000384: 12,2340 10071 NXTIFAIL CCS RUPTREG2 # PROCESS ANY ADDITIONAL CHANGES. 004888,000385: 12,2341 12325 TCF NXTIFBIT -1 004889,000386:
![]() |
Page 114 |
004891,000388: # PROGRAM NAME: TNONTEST. 004892,000389: 004893,000390: # FUNCTIONAL DESCRIPTION: THIS PROGRAM HONORS REQUESTS FOR ISS INITIALIZATION. ISS TURN-ON (CHANNEL 30 BIT 14) 004894,000391: # AND ISS OPERATE (CHANNEL 30 BIT 9) REQUESTS ARE TREATED AS A PAIR AND PROCESSING TAKES PLACE .480 SECONDS 004895,000392: # AFTER EITHER ONE APPEARS. THIS INITIALIZATION TAKES ON ONE OF THE FOLLOWING THREE FORMS: 004896,000393: 004897,000394: # 1) ISS TURN-ON: IN THIS SITUATION THE COMPUTER IS OPERATING WHEN THE ISS IS TURNED ON. NOMINALLY, 004898,000395: # BOTH ISS TURN-ON AND ISS OPERATE APPEAR. THE PLATFORM IS CAGED FOR 90 SECONDS AND THE ICDU'S ZEROED 004899,000396: # SO THAT AT THE END OF THE PROCESS THE GIMBAL LOCK MONITOR WILL FUNCTION PROPERLY. 004900,000397: 004901,000398: # 2) ICDU INITIALIZATION: IN THIS CASE THE COMPUTER WAS PROBABLY TURNED ON WITH THE ISS IN OPERATE OR 004902,000399: # A FRESH START WAS DONE WITH THE ISS IN OPERATE. IN THIS CASE ONLY ISS OPERATE IS ON. THE ICDU'S ARE 004903,000400: # ZEROED SO THE GIMBAL LOCK MONITOR WILL FUNCTION. AN EXCEPTION IS IF THE ISS IS IN GIMBAL LOCK AFTER 004904,000401: # A RESTART, THE ICDU'S WILL NOT BE ZEROED. 004905,000402: 004906,000403: # 3) RESTART WITH RESTARTABLE PROGRAM USING THE IMU: IN THIS CASE, NO INITIALIZATION TAKES PLACE SINCE 004907,000404: # IT IS ASSUMED THAT THE USING PROGRAM DID THE INITIALIZATION AND THEREFORE T4RUPT SHOULD NOT INTERFERE. 004908,000405: 004909,000406: # IMODES30 BIT 7 IS SET = 1 BY THE FIRST BIT (CHANNEL 30 BIT 14 OR 9) WHICH ARRIVES. FOLLOWING THIS. TNONTEST IS 004910,000407: # 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 004911,000408: # PROCEEDS, SETTING BITS 8 AND 7 = 0. AT PROCTNON, IF ISS TURN-ON REQUEST IS PRESENT, THE ISS IS CAGED (ZERO + 004912,000409: # COARSE). IF ISS OPERATE IS NOT PRESENT PROGRAM ALARM 00213 IS ISSUED. AT THE END OF A 90 SECOND CAGE, BIT 2 004913,000410: # OF IMODES30 IS TESTED. IF IT IS = 1, ISS TURN-ON WAS NOT PRESENT FOR THE ENTIRE 90 SECONDS. IN THAT CASE, IF 004914,000411: # THE ISS TURN-ON REQUEST IS PRESENT THE 90 SECOND WAIT IS REPEATED, OTHERWISE NO ACTION OCCURS UNLESS A PROGRAM 004915,000412: # WAS WAITING FOR THE INITIALIZATION IN WHICH CASE THE PROGRAM IS GIVEN AN IMUSTALL ERROR RETURN. IF THE DELAY 004916,000413: # WENT PROPERLY, THE ISS DELAY OUTBIT IS SENT AND THE ICDU'S ZEROED. A TASK IS INITIATED TO REMOVE THE PIPA FAIL 004917,000414: # INHIBIT BIT IN 10.24 SECONDS. IF A MISSION PROGRAM WAS WAITING IT IS INFORMED VIA ENDIMU. 004918,000415: 004919,000416: # AT PROCTNON, IF ONLY ISS OPERATE IS PRESENT (OPONLY), THE CDU'S ARE ZEROED UNLESS THE PLATFORM IS IN COARSE 004920,000417: # ALIGN (= GIMBAL LOCK HERE) OR A MISSION PROGRAM IS USING THE IMU (IMUSEFLG = 1). 004921,000418: 004922,000419: # CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS AFTER IMUMON. 004923,000420: 004924,000421: # JOBS OR TASKS INITIATED: 1) ENDTNON, 90 SECONDS AFTER CAGING STARTED. 2) ISSUP, 4 SECONDS AFTER CAGING DONE. 004925,000422: # 3) PFAILOK, 10.24 SECONDS AFTER INITIALIZATION COMPLETED. 4) UNZ2, 320 MILLISECONDS AFTER ZEROING 004926,000423: # STARTED. 004927,000424: 004928,000425: # SUBROUTINES CALLED: CAGESUB, CAGESUB2, ZEROICDU, ENDIMU, IMUBAD, NOATTOFF, SETISSW, VARDELAY. 004929,000426: 004930,000427: # ERASABLE INITIALIZATION: SEE IMUMON. 004931,000428: 004932,000429: # ALARMS: PROGRAM ALARM 00213 IF ISS TURN-ON REQUESTED WITHOUT ISS OPERATE. 004933,000430: 004934,000431: # EXIT: ENDTNON EXITS TO C33TEST. TASKS HAVING TO DO WITH INITIALIZATION EXIT AS FOLLOWS: MISSION PROGRAM 004935,000432: # WAITING AND INITIALIZATION COMPLETE, EXIT TO ENDIMU, MISSION PROGRAM WAITING AND INITIALIZATION FAILED, EXIT TO 004936,000433: # IMUBAD, IMU NOT IN USE, EXIT TO TASKOVER. 004937,000434: 004938,000435: # OUTPUT: ISS INITIALIZED. 004939,000436: 004940,000437: 12,2342 40365 TNONTEST CS IMODES30 # AFTER PROCESSING ALL CHANGES, SEE IF IT
![]() |
Page 115 |
004942,000439: 12,2343 77755 MASK BIT7 # IS TIME TO ACT ON A TURN-ON SEQUENCE. 004943,000440: 12,2344 10000 CCS A 004944,000441: 12,2345 12477 TCF C33TEST # NO - EXAMINE CHANNEL 33. 004945,000442: 004946,000443: 12,2346 37754 CAF BIT8 # SEE IF FIRST SAMPLE OR SECOND. 004947,000444: 12,2347 70365 MASK IMODES30 004948,000445: 12,2350 10000 CCS A 004949,000446: 12,2351 12355 TCF PROCTNON # REACT AFTER SECOND SAMPLE. 004950,000447: 004951,000448: 12,2352 37754 CAF BIT8 # IF FIRST SAMPLE, SET BIT TO REACT NEXT 004952,000449: 12,2353 26365 ADS IMODES30 # TIME. 004953,000450: 12,2354 12477 TCF C33TEST 004954,000451: 004955,000452: # PROCESS IMU TURN-ON REQUESTS AFTER WAITING 1 SAMPLE FOR ALL SIGNALS TO ARRIVE. 004956,000453: 004957,000454: 12,2355 43044 PROCTNON CS BITS7&8 004958,000455: 12,2356 70365 MASK IMODES30 004959,000456: 12,2357 54365 TS IMODES30 004960,000457: 12,2360 77746 MASK BIT14 # SEE IF TURN-ON REQUEST. 004961,000458: 12,2361 10000 CCS A 004962,000459: 12,2362 12455 TCF OPONLY # OPERATE ON ONLY. 004963,000460: 004964,000461: 12,2363 40365 CS IMODES30 # IF TURN-ON REQUEST, WE SHOULD HAVE IMU 004965,000462: 12,2364 77753 MASK BIT9 # OPERATE. 004966,000463: 12,2365 10000 CCS A 004967,000464: 12,2366 12371 TCF +3 004968,000465: 004969,000466: 12,2367 04755 TC ALARM # ALARM IF NOT. 004970,000467: 12,2370 00213 OCT 213 004971,000468: 004972,000469: 12,2371 03002 +3 TC CAGESUB 004973,000470: 12,2372 33052 CAF 90SECS 004974,000471: 12,2373 05663 TC WAITLIST 004975,000472: 12,2374 E6,1404 EBANK= M11 004976,000473: 12,2374 02401 24066 2CADR ENDTNON 004977,000474: 004978,000475: 12,2376 12477 TCF C33TEST 004979,000476: 004980,000477: 12,2377 33052 RETNON CAF 90SECS 004981,000478: 12,2400 05704 TC VARDELAY 004982,000479: 004983,000480: 12,2401 47762 ENDTNON CS BIT2 # RESET TURN-ON REQUEST FAIL BIT. 004984,000481: 12,2402 70365 MASK IMODES30 004985,000482: 12,2403 56365 XCH IMODES30 004986,000483: 12,2404 77762 MASK BIT2 # IF IT WAS OFF, SEND ISS DELAY COMPLETE. 004987,000484: 12,2405 00006 EXTEND 004988,000485: 12,2406 12421 BZF ENDTNON2 004989,000486: 004990,000487: 12,2407 37746 CAF BIT14 # IF IT WAS ON AND TURN-ON REQUEST NOW 004991,000488: 12,2410 70365 MASK IMODES30 # PRESENT, RE-ENTER 90 SEC DELAY IN WL.
![]() |
Page 116 |
004993,000490: 12,2411 00006 EXTEND 004994,000491: 12,2412 12377 BZF RETNON 004995,000492: 004996,000493: 12,2413 40074 CS STATE # IF IT IS NOT ON NOW, SEE IF A PROG WAS 004997,000494: 12,2414 77754 MASK IMUSEFLG # WAITING. 004998,000495: 12,2415 10000 CCS A 004999,000496: 12,2416 15727 TCF TASKOVER 005000,000497: 12,2417 05225 TC POSTJUMP 005001,000498: 12,2420 26672 CADR IMUBAD # UNSUCCESSFUL TURN-ON. 005002,000499: 005003,000500: 12,2421 37745 ENDTNON2 CAF BIT15 # SEND ISS DELAY COMPLETE. 005004,000501: 12,2422 00006 EXTEND 005005,000502: 12,2423 05012 WOR CHAN12 005006,000503: 005007,000504: 12,2424 05270 TC IBNKCALL # TURN OFF NO ATT LAMP. 005008,000505: 12,2425 26324 CADR NOATTOFF 005009,000506: 005010,000507: 12,2426 04314 UNZ2 TC ZEROICDU 005011,000508: 005012,000509: 12,2427 43041 CS BITS4&5 # REMOVE ZERO AND COARSE. 005013,000510: 12,2430 00006 EXTEND 005014,000511: 12,2431 03012 WAND CHAN12 005015,000512: 005016,000513: 12,2432 34321 CAF 4SECS # WAIT 4 SECS FOR COUNTERS TO FIND GIMBALS 005017,000514: 12,2433 05704 TC VARDELAY 005018,000515: 005019,000516: 12,2434 43042 ISSUP CS OCT54 # REMOVE CAGING, IMU FAIL INHIBIT, AND 005020,000517: 12,2435 70365 MASK IMODES30 # ICDUFAIL INHIBIT FLAGS. 005021,000518: 12,2436 54365 TS IMODES30 005022,000519: 005023,000520: 12,2437 02753 TC SETISSW # ISS WARNING MIGHT HAVE BEEN INHIBITED. 005024,000521: 005025,000522: 12,2440 47745 CS BIT15 # REMOVE IMU DELAY COMPLETE DISCRETE. 005026,000523: 12,2441 00006 EXTEND 005027,000524: 12,2442 03012 WAND 12 005028,000525: 005029,000526: 12,2443 37751 CAF BIT11 # DONT ENABLE PROG ALARM ON PIP FAIL FOR 005030,000527: 12,2444 05663 TC WAITLIST # ANOTHER 10 SECS. 005031,000528: 12,2445 E6,1404 EBANK= M11 005032,000529: 12,2445 02310 26066 2CADR PFAILOK 005033,000530: 005034,000531: 12,2447 40074 CS STATE # SEE IF ANYONE IS WAITING FOR THE IMU AT 005035,000532: 12,2450 77754 MASK IMUSEFLG # IMUZERO. IF SO, WAKE THEM UP. 005036,000533: 12,2451 10000 CCS A 005037,000534: 12,2452 15727 TCF TASKOVER 005038,000535: 005039,000536: 12,2453 05225 TC POSTJUMP 005040,000537: 12,2454 26664 CADR ENDIMU 005041,000538: 005042,000539: 12,2455 37760 OPONLY CAF BIT4 # IF OPERATE ON ONLY, AND WE ARE IN COARSE
![]() |
Page 117 |
005044,000541: 12,2456 00006 EXTEND # ALIGN, DONT ZERO THE CDUS BECAUSE WE 005045,000542: 12,2457 02012 RAND CHAN12 # MIGHT BE IN GIMBAL LOCK. 005046,000543: 12,2460 10000 CCS A 005047,000544: 12,2461 12477 TCF C33TEST 005048,000545: 005049,000546: 12,2462 37754 CAF IMUSEFLG # OTHERWISE, ZERO THE COUNTERS 005050,000547: 12,2463 70074 MASK STATE # UNLESS SOMEONE IS USING THE IMU. 005051,000548: 12,2464 10000 CCS A 005052,000549: 12,2465 12477 TCF C33TEST 005053,000550: 005054,000551: 12,2466 03014 TC CAGESUB2 # SET TURNON FLAGS. 005055,000552: 005056,000553: 12,2467 37757 CAF BIT5 005057,000554: 12,2470 00006 EXTEND 005058,000555: 12,2471 05012 WOR 12 005059,000556: 005060,000557: 12,2472 37756 CAF BIT6 # WAIT 300 MS FOR AGS TO RECEIVE SIGNAL. 005061,000558: 12,2473 05663 TC WAITLIST 005062,000559: 12,2474 E6,1404 EBANK= M11 005063,000560: 12,2474 02426 24066 2CADR UNZ2 005064,000561: 005065,000562: 12,2476 12477 TCF C33TEST 005066,000563:
![]() |
Page 118 |
005068,000565: # PROGRAM NAME: C33TEST 005069,000566: 005070,000567: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THREE FLIP-FLOP INBITS OF CHANNEL 33 AND CALLS THE APPROPRIATE 005071,000568: # SUBROUTINE TO PROCESS A CHANGE. IT IS ANALOGOUS TO IMUMON, WHICH MONITORS CHANNEL 30, EXCEPT THAT IT READS 005072,000569: # CHANNEL 33 WITH A WAND INSTRUCTION BECAUSE A 'WRITE' PULSE IS REQUIRED TO RESET THE FLIP-FLOPS. THE BITS 005073,000570: # PROCESSED AND THE SUBROUTINES CALLED ARE: 005074,000571: 005075,000572: # BIT FUNCTION SUBROUTINE 005076,000573: # --- -------- ---------- 005077,000574: # 13 PIPA FAIL PIPFAIL 005078,000575: # 12 DOWNLINK TOO FAST DNTMFAST 005079,000576: # 11 UPLINK TOO FAST UPTMFAST 005080,000577: 005081,000578: # UPON ENTRY TO THE SUBROUTINE, THE NEW BIT STATE IS IN A. 005082,000579: 005083,000580: # CALLING SEQUENCE: EVERY 480 MILLISECONDS AFTER TNONTEST. 005084,000581: 005085,000582: # JOBS OR TASKS INITIATED: NONE. 005086,000583: 005087,000584: # SUBROUTINES CALLED: PIPFAIL, DNTMFAST AND UPTMFAST ON BIT CHANGES. 005088,000585: 005089,000586: # ERASABLE INITIALIZATION: C(IMODES33) = OCT 16000 ON A FRESH START OR RESTART, THEREFORE, THESE ALARMS WILL 005090,000587: # REAPPEAR IF THE CONDITIONS PERSIST. 005091,000588: 005092,000589: # ALARMS: NONE. 005093,000590: 005094,000591: # EXIT: GLOCKMON. 005095,000592: 005096,000593: # OUTPUT: UPDATED BITS 13, 12 AND 11 OF IMODES33 WITH CHANGES PROCESSED. 005097,000594: 005098,000595: 12,2477 30366 C33TEST CA IMODES33 # SEE IF RELEVANT CHAN33 BITS HAVE 005099,000596: 12,2500 75642 MASK 33RDMSK 005100,000597: 12,2501 54001 TS L # CHANGED. 005101,000598: 12,2502 35642 CAF 33RDMSK 005102,000599: 12,2503 00006 EXTEND 005103,000600: 12,2504 03033 WAND CHAN33 # RESETS FLIP-FLOP INPUTS. 005104,000601: 12,2505 00006 EXTEND 005105,000602: 12,2506 06001 RXOR L 005106,000603: 12,2507 00006 EXTEND 005107,000604: 12,2510 12537 BZF GLOCKMON # ON NO CHANGE. 005108,000605: 005109,000606: 12,2511 54070 TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED. 005110,000607: 12,2512 22366 LXCH IMODES33 005111,000608: 12,2513 00006 EXTEND 005112,000609: 12,2514 06001 RXOR L 005113,000610: 12,2515 54366 TS IMODES33 # UPDATED IMODES33. 005114,000611: 005115,000612: 12,2516 37767 CAF ZERO 005116,000613: 12,2517 56070 XCH RUPTREG1 005117,000614: 12,2520 60000 DOUBLE
![]() |
Page 119 |
005119,000616: 12,2521 12524 TCF NXTIBT +1 # SCAN FOR BIT CHANGES. 005120,000617: 005121,000618: 12,2522 67763 -1 AD ONE 005122,000619: 12,2523 24070 NXTIBT INCR RUPTREG1 005123,000620: 12,2524 60000 +1 DOUBLE 005124,000621: 12,2525 54000 TS A # (CODING IDENTICAL TO CHAN 30). 005125,000622: 12,2526 12523 TCF NXTIBT 005126,000623: 005127,000624: 12,2527 56071 XCH RUPTREG2 005128,000625: 12,2530 50070 INDEX RUPTREG1 # GET NEW VALUE OF BIT WHICH CHANGED. 005129,000626: 12,2531 37747 CAF BIT13 005130,000627: 12,2532 70366 MASK IMODES33 005131,000628: 12,2533 50070 INDEX RUPTREG1 005132,000629: 12,2534 03027 TC C33JMP 005133,000630: 12,2535 10071 NXTFL33 CCS RUPTREG2 # PROCESS POSSIBLE ADDITIONAL CHANGES. 005134,000631: 12,2536 12522 TCF NXTIBT -1 005135,000632:
![]() |
Page 120 |
005137,000634: # PROGRAM NAME: GLOCKMON 005138,000635: 005139,000636: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THE CDUZ COUNTER TO DETERMINE WHETHER THE ISS IS IN GIMBAL LOCK 005140,000637: # AND TAKES ACTION IF IT IS. THREE REGIONS OF MIDDLE GIMBAL ANGLE (MGA) ARE USED: 005141,000638: 005142,000639: # 1) ABS(MGA) LESS THAN OR EQUAL TO 70 DEGREES - NORMAL MODE. 005143,000640: # 2) ABS(MGA) GREATER THAN 70 DEGREES AND LESS THAN OR EQUAL TO 85 DEGREES - GIMBAL LOCK LAMP TURNED ON. 005144,000641: # 3) ABS(MGA) GREATER THAN 85 DEGREES - ISS PUT IN COARSE ALIGN AND NO ATT LAMP TURNED ON. 005145,000642: 005146,000643: # CALLING SEQUENCE: EVERY 480 MILLISECONDS AFTER C33TEST. 005147,000644: 005148,000645: # JOBS OR TASKS INITIATED: NONE. 005149,000646: 005150,000647: # SUBROUTINES CALLED: 1) SETCOARS WHEN ABS(MGA) GREATER THAN 85 DEGREES AND ISS NOT IN COARSE ALIGN. 005151,000648: # 2) LAMPTEST BEFORE TURNING OFF GIMBAL LOCK LAMP. 005152,000649: 005153,000650: # ERASABLE INITIALIZATION: 005154,000651: # 1) FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(CDUZ) = 0, IMODES30 BIT 6 = 0, IMODES33 BIT 1 = 0. 005155,000652: # 2) RESTART WITH GROUPS ACTIVE: SAME AS FRESH START EXCEPT C(CDUZ) NOT CHANGED SO GIMBAL MONITOR 005156,000653: # PROCEEDS AS BEFORE. 005157,000654: 005158,000655: # ALARMS: 1) MGA REGION (2) CAUSES GIMBAL LOCK LAMP TO BE LIT. 005159,000656: # 2) MGA REGION (3) CAUSES THE ISS TO BE PUT IN COARSE ALIGN AND THE NO ATT LAMP TO BE LIT IF EITHER NOT 005160,000657: # SO ALREADY. 005161,000658: 005162,000659: 12,2537 10034 GLOCKMON CCS CDUZ 005163,000660: 12,2540 12544 TCF GLOCKCHK # SEE IF MAGNITUDE OF MGA IS GREATER THAN 005164,000661: 12,2541 12564 TCF SETGLOCK # 70 DEGREES. 005165,000662: 12,2542 12544 TCF GLOCKCHK 005166,000663: 12,2543 12564 TCF SETGLOCK 005167,000664: 005168,000665: 12,2544 62611 GLOCKCHK AD -70DEGS 005169,000666: 12,2545 00006 EXTEND 005170,000667: 12,2546 62563 BZMF SETGLOCK -1 # NO LOCK. 005171,000668: 005172,000669: 12,2547 62612 AD -15DEGS # SEE IF ABS(MGA) GREATER THAN 85 DEGREES. 005173,000670: 12,2550 00006 EXTEND 005174,000671: 12,2551 62561 BZMF NOGIMRUN 005175,000672: 005176,000673: 12,2552 37760 CAF BIT4 # IF SO, SYSTEM SHOULD BE IN COARSE ALIGN 005177,000674: 12,2553 00006 EXTEND # TO PREVENT GIMBAL RUNAWAY. 005178,000675: 12,2554 02012 RAND CHAN12 005179,000676: 12,2555 10000 CCS A 005180,000677: 12,2556 12561 TCF NOGIMRUN 005181,000678: 005182,000679: 12,2557 05270 TC IBNKCALL 005183,000680: 12,2560 26232 CADR SETCOARS 005184,000681: 005185,000682: 12,2561 37756 NOGIMRUN CAF BIT6 # TURN ON GIMBAL LOCK LAMP. 005186,000683: 12,2562 12564 TCF SETGLOCK 005187,000684:
![]() |
Page 121 |
005189,000686: 12,2563 37767 -1 CAF ZERO 005190,000687: 12,2564 60326 SETGLOCK AD DSPTAB +11D # SEE IF PRESENT STATE OF GIMBAL LOCK LAMP 005191,000688: 12,2565 77756 MASK BIT6 # AGREES WITH DESIRED STATE BY HALF ADDING 005192,000689: 12,2566 00006 EXTEND # THE TWO. 005193,000690: 12,2567 15733 BZF GLOCKOK # OK AS IS. 005194,000691: 005195,000692: 12,2570 70326 MASK DSPTAB +11D # IF OFF, DONT TURN ON IF IMU BEING CAGED. 005196,000693: 12,2571 10000 CCS A 005197,000694: 12,2572 12606 TCF GLAMPTST # TURN OFF UNLESS LAMP TEST IN PROGRESS. 005198,000695: 005199,000696: 12,2573 37756 CAF BIT6 005200,000697: 12,2574 70365 MASK IMODES30 005201,000698: 12,2575 10000 CCS A 005202,000699: 12,2576 15733 TCF GLOCKOK 005203,000700: 005204,000701: 12,2577 40326 GLINVERT CS DSPTAB +11D # INVERT GIMBAL LOCK LAMP. 005205,000702: 12,2600 77756 MASK BIT6 005206,000703: 12,2601 67745 AD BIT15 # TO INDICATE CHANGE IN DSPTAB +11D. 005207,000704: 12,2602 56326 XCH DSPTAB +11D 005208,000705: 12,2603 72613 MASK OCT37737 005209,000706: 12,2604 26326 ADS DSPTAB +11D 005210,000707: 12,2605 15733 TCF GLOCKOK 005211,000708: 005212,000709: 12,2606 03032 GLAMPTST TC LAMPTEST # TURN OFF UNLESS LAMP TEST IN PROGRESS. 005213,000710: 12,2607 15733 TCF GLOCKOK 005214,000711: 12,2610 12577 TCF GLINVERT 005215,000712: 005216,000713: 12,2611 63434 -70DEGS DEC -.38888 # -70 DEGREES SCALED IN HALF-REVOLUTIONS. 005217,000714: 12,2612 75252 -15DEGS DEC -.08333 005218,000715: 12,2613 37737 OCT37737 OCT 37737 005219,000716:
![]() |
Page 122 |
005221,000718: # PROGRAM NAME: TLIM. 005222,000719: 005223,000720: # FUNCTIONAL DESCRIPTION: THIS PROGRAM MAINTAINS THE TEMP LAMP (BIT 4 OF CHANNEL 11) ON THE DSKY TO AGREE WITH 005224,000721: # THE TEMP SIGNAL FROM THE ISS (BIT 15 OF CHANNEL 30). HOWEVER, THE LIGHT WILL NOT BE TURNED OFF IF A LAMP TEST 005225,000722: # IS IN PROGRESS. 005226,000723: 005227,000724: # CALLING SEQUENCE: CALLED BY IMUMON ON A CHANGE OF BIT 15 OF CHANNEL 30. 005228,000725: 005229,000726: # JOBS OR TASKS INITIATED: NONE. 005230,000727: 005231,000728: # SUBROUTINES CALLED: LAMPTEST. 005232,000729: 005233,000730: # ERASABLE INITIALIZATION: FRESH START AND RESTART TURN THE TEMP LAMP OFF. 005234,000731: 005235,000732: # ALARMS: TEMP LAMP TURNED ON WHEN IMU TEMP GOES OUT OF LIMITS. 005236,000733: 005237,000734: # EXIT: NXTIFAIL. 005238,000735: 005239,000736: # OUTPUT: SERVICE OF TEMP LAMP. IN A, EXCEPT FOR TLIM. 005240,000737: 005241,000738: 12,2614 77743 TLIM MASK POSMAX # REMOVE BIT FROM WORD OF CHANGES AND SET 005242,000739: 12,2615 54071 TS RUPTREG2 # DSKY TEMP LAMP ACCORDINGLY. 005243,000740: 005244,000741: 12,2616 10365 CCS IMODES30 005245,000742: 12,2617 12625 TCF TEMPOK 005246,000743: 12,2620 12625 TCF TEMPOK 005247,000744: 005248,000745: 12,2621 37760 CAF BIT4 # TURN ON LAMP. 005249,000746: 12,2622 00006 EXTEND 005250,000747: 12,2623 05011 WOR 11 005251,000748: 12,2624 12340 TCF NXTIFAIL 005252,000749: 005253,000750: 12,2625 03032 TEMPOK TC LAMPTEST # IF TEMP NOW OK, DONT TURN OFF LAMP IF 005254,000751: 12,2626 12340 TCF NXTIFAIL # LAMP TEST IN PROGRESS. 005255,000752: 005256,000753: 12,2627 47760 CS BIT4 005257,000754: 12,2630 00006 EXTEND 005258,000755: 12,2631 03011 WAND 11 005259,000756: 12,2632 12340 TCF NXTIFAIL 005260,000757:
![]() |
Page 123 |
005262,000759: # PROGRAM NAME: ITURNON. 005263,000760: 005264,000761: # FUNCTIONAL DESCRIPTION: THIS PROGRAM IS CALLED BY IMUMON WHEN A CHANGE OF BIT 14 OF CHANNEL 30 (ISS TURN-ON 005265,000762: # REQUEST) IS DETECTED. UPON ENTRY, ITURNON CHECKS IF A TURN-ON DELAY SEQUENCE HAS FAILED, AND IF SO, IT EXITS. 005266,000763: # 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 005267,000764: # THAT TNONTEST WILL INITIATE THE ISS INITIALIZATION SEQUENCE. IF OFF, THE TURN-ON DELAY SIGNAL, CHANNEL 12 BIT 005268,000765: # 15, IS CHECKED AND IF IT IS ON, ITURNON EXITS. IF THE DELAY SIGNAL IS OFF, PROGRAM ALARM 00207 IS ISSUED, BIT 2 005269,000766: # OF IMODES30 IS SET TO 1 AND THE PROGRAM EXITS. 005270,000767: # THE SETTING OF BIT 2 OF IMODES30 (ISS DELAY SEQUENCE FAIL) INHIBITS THIS ROUTINE AND IMUOP FROM 005271,000768: # PROCESSING ANY CHANGES. THIS BIT WILL BE RESET BY THE ENDTNON ROUTINE WHEN THE CURRENT 90 SECOND DELAY PERIOD 005272,000769: # ENDS. 005273,000770: 005274,000771: # CALLING SEQUENCE: FROM IMUMOM WHEN ISS TURN-ON REQUEST CHANGES STATE. 005275,000772: 005276,000773: # JOBS OR TASKS INITIATED: NONE. 005277,000774: 005278,000775: # SUBROUTINES CALLED: ALARM, IF THE ISS TURN-ON REQUEST IS NOT PRESENT FOR 90 SECONDS. 005279,000776: 005280,000777: # ERASABLE INITIALIZATION: FRESH START AND RESTART SET BIT 15 OF CHANNEL 12 AND BITS 2 AND 7 OF IMODES30 TO 0, 005281,000778: # AND BIT 14 OF IMODES30 TO 1. 005282,000779: 005283,000780: # ALARMS: PROGRAM ALARM 00207 IS ISSUED IF THE ISS TURN-ON REQUEST SIGNAL IS NOT PRESENT FOR 90 SECONDS. 005284,000781: 005285,000782: # EXIT: NXTIFAIL. 005286,000783: 005287,000784: # OUTPUT: BIT 7 OF IMODES30 TO START ISS INITIALIZATION, OR BIT 2 OF IMODES30 AND PROGRAM ALARM 00207 TO INDICATE 005288,000785: # A FAILED TURN-ON SEQUENCE. 005289,000786: 005290,000787: 12,2633 37762 ITURNON CAF BIT2 # IF DELAY REQUEST HAS GONE OFF 005291,000788: 12,2634 70365 MASK IMODES30 # PREMATURELY, DO NOT PROCESS ANY CHANGES 005292,000789: 12,2635 10000 CCS A # UNTIL THE CURRENT 90 SEC WAIT EXPIRES. 005293,000790: 12,2636 12340 TCF NXTIFAIL 005294,000791: 005295,000792: 12,2637 37746 CAF BIT14 # SEE IF JUST ON OR OFF. 005296,000793: 12,2640 70365 MASK IMODES30 005297,000794: 12,2641 00006 EXTEND 005298,000795: 12,2642 12656 BZF ITURNON2 # IF JUST ON. 005299,000796: 005300,000797: 12,2643 37745 CAF BIT15 005301,000798: 12,2644 00006 EXTEND # SEE IF DELAY PRESENT DISCRETE HAS BEEN 005302,000799: 12,2645 02012 RAND 12 # SENT. IF SO, ACTION COMPLETE. 005303,000800: 12,2646 00006 EXTEND 005304,000801: 12,2647 12651 BZF +2 005305,000802: 12,2650 12340 TCF NXTIFAIL 005306,000803: 005307,000804: 12,2651 37762 CAF BIT2 # IF NOT, SET BIT TO INDICATE REQUEST NOT 005308,000805: 12,2652 26365 ADS IMODES30 # PRESENT FOR FULL DURATION. 005309,000806: 12,2653 04755 TC ALARM 005310,000807: 12,2654 00207 OCT 207 005311,000808: 12,2655 12340 TCF NXTIFAIL 005312,000809:
![]() |
Page 124 |
005314,000811: 12,2656 47755 ITURNON2 CS BIT7 # SET BIT 7 TO INITIATE WAIT OF 1 SAMPLE. 005315,000812: 12,2657 70365 MASK IMODES30 005316,000813: 12,2660 67755 AD BIT7 005317,000814: 12,2661 54365 TS IMODES30 005318,000815: 12,2662 12340 TCF NXTIFAIL 005319,000816:
![]() |
Page 125 |
005321,000818: # PROGRAM NAME: IMUCAGE. 005322,000819: 005323,000820: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES OF THE IMUCAGE INBIT, CHANNEL 30 BIT 11. IF THE BIT 005324,000821: # CHANGES TO 0 (CAGE BUTTON PRESSED), THE ISS IS CAGED (ICDU ZERO + COARSE ALIGN + NO ATT LAMP) UNTIL THE 005325,000822: # ASTRONAUT SELECTS ANOTHER PROGRAM TO ALIGN THE ISS. ANY PULSE TRAINS TO THE ICDU'S AND GYRO'S ARE TERMINATED, 005326,000823: # THE ASSOCIATED OUTCOUNTERS ARE ZEROED AND THE GYRO'S ARE DE-SELECTED. NO ACTION OCCURS WHEN THE BUTTON IS 005327,000824: # RELEASED (INBIT CHANGES TO 1). 005328,000825: 005329,000826: # CALLING SEQUENCE: BY IMUMON WHEN IMU CAGE BIT CHANGES. 005330,000827: 005331,000828: # JOBS OR TASKS INITIATED: NONE. 005332,000829: 005333,000830: # SUBROUTINES CALLED: CAGESUB. 005334,000831: 005335,000832: # ERASABLE INITIALIZATION: FRESH START AND RESTART SET BIT 11 OF IMODES30 TO 1. 005336,000833: 005337,000834: # ALARMS: NONE. 005338,000835: 005339,000836: # EXIT: NXTIFAIL. 005340,000837: 005341,000838: # OUTPUT: ISS CAGED, COUNTERS ZEROED, PULSE TRAINS TERMINATED AND NO ATT LAMP LIT. 005342,000839: 005343,000840: 12,2663 10000 IMUCAGE CCS A # NO ACTION IF GOING OFF. 005344,000841: 12,2664 12340 TCF NXTIFAIL 005345,000842: 005346,000843: 12,2665 43047 CS OCT71000 # TERMINATE ICDU AND GYRO PULSE TRAINS. 005347,000844: 12,2666 00006 EXTEND 005348,000845: 12,2667 03014 WAND 14 005349,000846: 005350,000847: 12,2670 03002 TC CAGESUB 005351,000848: 005352,000849: 12,2671 47767 CS ZERO # ZERO COMMAND OUT-COUNTERS 005353,000850: 12,2672 54050 TS CDUXCMD 005354,000851: 12,2673 54051 TS CDUYCMD 005355,000852: 12,2674 54052 TS CDUZCMD 005356,000853: 12,2675 54047 TS GYROCMD 005357,000854: 005358,000855: 12,2676 43046 CS OCT1700 # HAVING WAITED AT LEAST 27 MCT FROM 005359,000856: 12,2677 00006 EXTEND # GYRO PULSE TRAIN TERMINATION, WE CAN 005360,000857: 12,2700 03014 WAND 14 # DE-SELECT THE GYROS. 005361,000858: 005362,000859: 12,2701 12340 TCF NXTIFAIL 005363,000860:
![]() |
Page 126 |
005365,000862: # PROGRAM NAME: IMUOP. 005366,000863: 005367,000864: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES IN THE ISS OPERATE DISCRETE, BIT 9 OF CHANNEL 30. 005368,000865: # IF THE INBIT CHANGES TO 0, INDICATING ISS ON, IMUOP GENERALLY SETS BIT 7 OF IMODES30 TO 1 TO REQUEST ISS 005369,000866: # INITIALIZATION VIA TNONTEST. AN EXCEPTION IS DURING A FAILED ISS DELAY DURING WHICH BIT 2 OF IMODES30 IS SET 005370,000867: # TO 1 AND NO FURTHER INITIALIZATION IS REQUIRED. WHEN THE INBIT CHANGES TO 1, INDICATING ISS OFF, IMUSEFLG IS 005371,000868: # TESTED TO SEE IF ANY PROGRAM WAS USING THE ISS. IF SO, PROGRAM ALARM 00214 IS ISSUED. 005372,000869: 005373,000870: # CALLING SEQUENCE: BY IMUMON WHEN BIT 9 OF CHANNEL 30 CHANGES. 005374,000871: 005375,000872: # JOBS OR TASKS INITIATED: NONE. 005376,000873: # 005377,000874: # SUBROUTINES CALLED: ALARM, IF ISS IS TURNED OFF WHILE IN USE. 005378,000875: 005379,000876: # ERASABLE INITIALIZATION: ON FRESH START AND RESTART, BIT 9 OF IMODES30 IS SET TO 1 EXCEPT WHEN THE GIMBAL LOCK 005380,000877: # LAMP IS ON, IN WHICH CASE IT IS SET TO 0. THIS PREVENTS ICDU ZERO BY TNONTEST WITH THE ISS IN GIMBAL LOCK. 005381,000878: 005382,000879: # ALARMS: PROGRAM ALARM 00214 IF THE ISS IS TURNED OFF WHILE IN USE. 005383,000880: 005384,000881: # EXIT: NXTIFAIL. 005385,000882: 005386,000883: # OUTPUT: ISS INITIALIZATION REQUEST (IMODES30 BIT 7) OR PROGRAM ALARM 00214. 005387,000884: 005388,000885: 12,2702 00006 IMUOP EXTEND 005389,000886: 12,2703 12713 BZF IMUOP2 005390,000887: 005391,000888: 12,2704 40074 CS STATE # IF GOING OFF, ALARM IF PROG USING IMU. 005392,000889: 12,2705 77754 MASK IMUSEFLG 005393,000890: 12,2706 10000 CCS A 005394,000891: 12,2707 12340 TCF NXTIFAIL 005395,000892: 005396,000893: 12,2710 04755 TC ALARM 005397,000894: 12,2711 00214 OCT 214 005398,000895: 12,2712 12340 TCF NXTIFAIL 005399,000896: 005400,000897: 12,2713 37762 IMUOP2 CAF BIT2 # SEE IF FAILED ISS TURN-ON SEQ IN PROG. 005401,000898: 12,2714 70365 MASK IMODES30 005402,000899: 12,2715 10000 CCS A 005403,000900: 12,2716 12340 TCF NXTIFAIL # IF SO, DONT PROCESS UNTIL PRESENT 90 005404,000901: 12,2717 12656 TCF ITURNON2 # SECONDS EXPIRES. 005405,000902:
![]() |
Page 127 |
005407,000904: # PROGRAM NAME: PIPFAIL 005408,000905: 005409,000906: # FUNCTIONAL DESCRIPTION: THIS PROGRAM PROCESSES CHANGES OF BIT 13 OF CHANNEL 33, PIPA FAIL. IT SETS BIT 10 OF 005410,000907: # IMODES30 TO AGREE. IT CALLS SETISSW IN CASE A PIPA FAIL NECESSITATES AN ISS WARNING. IF NOT,I.E., IMODES30 005411,000908: # BIT 1 = 1, AND A PIPA FAIL IS PRESENT AND THE ISS IS NOT BEING INITIALIZED, PROGRAM ALARM 00212 IS ISSUED. 005412,000909: 005413,000910: # CALLING SEQUENCE: BY C33TEST ON CHANGES OF CHANNEL 33 BIT 13. 005414,000911: 005415,000912: # JOBS OR TASKS INITIATED: NONE. 005416,000913: 005417,000914: # SUBROUTINES CALLED: 1) SETISSW, AND 2) ALARM (SEE FUNCTIONAL DESCRIPTION). 005418,000915: 005419,000916: # ERASABLE INITIALIZATION: SEE IMUMON FOR INITIALIZATION OF IMODES30. THE RELAVANT BITS ARE 5, 7, 8, 9, AND 10. 005420,000917: 005421,000918: # ALARMS: PROGRAM ALARM 00212 IF PIPA FAIL IS PRESENT BUT NEITHER ISS WARNING IS TO BE ISSUED NOR THE ISS IS 005422,000919: # BEING INITIALIZED. 005423,000920: 005424,000921: # EXIT: NXTFL33. 005425,000922: 005426,000923: # OUTPUT: PROGRAM ALARM 00212 AND ISS WARNING MAINTENANCE. 005427,000924: 005428,000925: 12,2720 10000 PIPFAIL CCS A # SET BIT10 IN IMODES30 SO ALL ISS WARNING 005429,000926: 12,2721 37752 CAF BIT10 # INFO IS IN ONE REGISTER. 005430,000927: 12,2722 56365 XCH IMODES30 005431,000928: 12,2723 73051 MASK -BIT10 005432,000929: 12,2724 26365 ADS IMODES30 005433,000930: 005434,000931: 12,2725 02753 TC SETISSW 005435,000932: 005436,000933: 12,2726 40365 CS IMODES30 # IF PIP FAIL DOESNT LIGHT ISS WARNING, DO 005437,000934: 12,2727 77763 MASK BIT1 # A PROGRAM ALARM IF IMU OPERATING BUT NOT 005438,000935: 12,2730 10000 CCS A # CAGED OR BEING TURNED ON. 005439,000936: 12,2731 12535 TCF NXTFL33 005440,000937: 005441,000938: 12,2732 30365 CA IMODES30 005442,000939: 12,2733 73045 MASK OCT1720 005443,000940: 12,2734 10000 CCS A 005444,000941: 12,2735 12535 TCF NXTFL33 # ABOVE CONDITION NOT MET. 005445,000942: 005446,000943: 12,2736 04755 TC ALARM 005447,000944: 12,2737 00212 OCT 212 005448,000945: 12,2740 12535 TCF NXTFL33 005449,000946:
![]() |
Page 128 |
005451,000948: # PROGRAM NAMES: DNTMFAST, UPTMFAST 005452,000949: 005453,000950: # FUNCTIONAL DESCRIPTION: THESE PROGRAMS PROCESS CHANGES OF BITS 12 AND 11 OF CHANNEL 33. IF A BIT CHANGES TO A 005454,000951: # 0, A PROGRAM ALARM IS ISSUED. THE ALARMS ARE: 005455,000952: 005456,000953: # BIT ALARM CAUSE 005457,000954: # --- ----- ----- 005458,000955: # 12 01105 DOWNLINK TOO FAST 005459,000956: # 11 01106 UPLINK TOO FAST 005460,000957: 005461,000958: # CALLING SEQUENCE: BY C33TEST ON A BIT CHANGE. 005462,000959: 005463,000960: # SUBROUTINES CALLED: ALARM, IF A BIT CHANGES TO A 0. 005464,000961: 005465,000962: # ERASABLE INITIALIZATION: FRESH START OR RESTART, BITS 12 AND 11 OF IMODES33 ARE SET TO 1. 005466,000963: 005467,000964: # ALARMS: SET FUNCTIONAL DESCRIPTION. 005468,000965: 005469,000966: # EXIT: NXTFL33. 005470,000967: 005471,000968: # OUTPUT: PROGRAM ALARM ON A BIT CHANGE TO 0. 005472,000969: 005473,000970: 12,2741 10000 DNTMFAST CCS A # DO PROG ALARM IF TM TOO FAST. 005474,000971: 12,2742 12535 TCF NXTFL33 005475,000972: 005476,000973: 12,2743 04755 TC ALARM 005477,000974: 12,2744 01105 OCT 1105 005478,000975: 12,2745 12535 TCF NXTFL33 005479,000976: 005480,000977: 12,2746 10000 UPTMFAST CCS A # SAME AS DNLINK TOO FAST WITH DIFFERENT 005481,000978: 12,2747 12535 TCF NXTFL33 # ALARM CODE. 005482,000979: 005483,000980: 12,2750 04755 TC ALARM 005484,000981: 12,2751 01106 OCT 1106 005485,000982: 12,2752 12535 TCF NXTFL33
![]() |
Page 129 |
005487,000984: # PROGRAM NAME: SETISSW 005488,000985: 005489,000986: # FUNCTIONAL DESCRIPTION: THIS PROGRAM TURNS THE ISS WARNING LAMP ON AND OFF (CHANNEL 11 BIT 1 = 1 FOR ON, 005490,000987: # 0 FOR OFF) DEPENDING ON THE STATUS OF IMODES30 BITS 13 (IMU FAIL) AND 4 (INHIBIT IMU FAIL), 12 (ICDU FAIL) AND 005491,000988: # 3 (INHIBIT ICDU FAIL), AND 10 (PIPA FAIL) AND 1 (INHIBIT PIPA FAIL). THE LAMP IS LEFT ON IF A LAMP TEST IS IN 005492,000989: # PROGRESS. 005493,000990: 005494,000991: # CALLING SEQUENCE: CALLED BY IMUMON ON CHANGES TO IMU FAIL AND ICDU FAIL. CALLED BY IFAILOK AND PFAILOK UPON 005495,000992: # REMOVAL OF THE FAIL INHIBITS. CALLED BY PIPFAIL WHEN THE PIPA FAIL DISCRETE CHANGES. IT IS CALLED BY PIPUSE 005496,000993: # SINCE THE PIPA FAIL PROGRAM ALARM MAY NECESSITATE AN ISS WARNING, AND LIKEWISE BY PIPFREE WHEN THE ALARM DEPARTS 005497,000994: # AND IT IS CALLED BY IMUZERO3 AND ISSUP AFTER THE FAIL INHIBITS HAVE BEEN REMOVED. 005498,000995: 005499,000996: # JOBS OR TASKS INITIATED: NONE. 005500,000997: 005501,000998: # SUBROUTINES CALLED: NONE. 005502,000999: 005503,001000: # ERASABLE INITIALIZATION: 005504,001001: 005505,001002: # 1) IMODES30 - SEE IMUMON. 005506,001003: # 2) IMODES33 BIT 1 = 0 (LAMP TEST NOT IN PROGRESS). 005507,001004: 005508,001005: # ALARMS: ISS WARNING. 005509,001006: 005510,001007: # EXIT: VIA Q. 005511,001008: 005512,001009: # OUTPUT: ISS WARNING LAMP SET PROPERLY. 005513,001010: 005514,001011: 12,2753 33037 SETISSW CAF OCT15 # SET ISS WARNING USING THE FAIL BITS IN 005515,001012: 12,2754 70365 MASK IMODES30 # BITS 13, 12, AND 10 OF IMODES30 AND THE 005516,001013: 12,2755 00006 EXTEND # FAILURE INHIBIT BITS IN POSITIONS 005517,001014: 12,2756 77752 MP BIT10 # 4, 3, AND 1. 005518,001015: 12,2757 30365 CA IMODES30 005519,001016: 12,2760 00006 EXTEND 005520,001017: 12,2761 04001 ROR L # 0 INDICATES FAILURE. 005521,001018: 12,2762 40000 COM 005522,001019: 12,2763 75641 MASK OCT15000 005523,001020: 12,2764 10000 CCS A 005524,001021: 12,2765 12776 TCF ISSWON # FAILURE. 005525,001022: 005526,001023: 12,2766 37763 ISSWOFF CAF BIT1 # DONT TURN OFF ISS WARNING IF LAMP TEST 005527,001024: 12,2767 70366 MASK IMODES33 # IN PROGRESS. 005528,001025: 12,2770 10000 CCS A 005529,001026: 12,2771 00002 TC Q 005530,001027: 005531,001028: 12,2772 47763 CS BIT1 005532,001029: 12,2773 00006 EXTEND 005533,001030: 12,2774 03011 WAND 11 005534,001031: 12,2775 00002 TC Q 005535,001032: 005536,001033: 12,2776 37763 ISSWON CAF BIT1
![]() |
Page 130 |
005538,001035: 12,2777 00006 EXTEND 005539,001036: 12,3000 05011 WOR 11 005540,001037: 12,3001 00002 TC Q 005541,001038: 005542,001039: 12,3002 43050 CAGESUB CS BITS6&15 # SET OUTBITS AND INTERNAL FLAGS FOR 005543,001040: 12,3003 00006 EXTEND # SYSTEM TURN-ON OR CAGE. DISABLE THE 005544,001041: 12,3004 03012 WAND 12 # ERROR COUNTER AND REMOVE IMU DELAY COMP. 005545,001042: 12,3005 33041 CAF BITS4&5 # SEND ZERO AND COARSE. 005546,001043: 12,3006 00006 EXTEND 005547,001044: 12,3007 05012 WOR 12 005548,001045: 005549,001046: 12,3010 43040 CS OC40010 # TURN ON NO ATT LAMP. 005550,001047: 12,3011 70326 MASK DSPTAB +11D 005551,001048: 12,3012 63040 AD OC40010 005552,001049: 12,3013 54326 TS DSPTAB +11D 005553,001050: 005554,001051: 12,3014 43043 CAGESUB2 CS OCT75 # SET FLAGS TO INDICATE CAGING OR TURN-ON, 005555,001052: 12,3015 70365 MASK IMODES30 # AND TO INHIBIT ALL ISS WARNING INFO. 005556,001053: 12,3016 63043 AD OCT75 005557,001054: 12,3017 54365 TS IMODES30 005558,001055: 005559,001056: 12,3020 00002 TC Q 005560,001057: 005561,001058: 12,3021 12,2753 IMUFAIL EQUALS SETISSW 005562,001059: 12,3021 12,2753 ICDUFAIL EQUALS SETISSW 005563,001060:
![]() |
Page 131 |
005565,001062: # JUMP TABLES AND CONSTANTS. 005566,001063: 005567,001064: 12,3021 12633 IFAILJMP TCF ITURNON # CHANNEL 30 DISPATCH. 005568,001065: 12,3022 12753 TCF IMUFAIL 005569,001066: 12,3023 12753 TCF ICDUFAIL 005570,001067: 12,3024 12663 TCF IMUCAGE 005571,001068: 12,3025 76400 30RDMSK OCT 76400 # (BIT 10 NOT SAMPLED HERE). 005572,001069: 12,3026 12702 TCF IMUOP 005573,001070: 005574,001071: 12,3027 12720 C33JMP TCF PIPFAIL # CHANNEL 33 DISPATCH. 005575,001072: 12,3030 12741 TCF DNTMFAST 005576,001073: 12,3031 12746 TCF UPTMFAST 005577,001074: 005578,001075: # SUBROUTINE TO SKIP IF LAMP TEST NOT IN PROGRESS. 005579,001076: 12,3032 40366 LAMPTEST CS IMODES33 # BIT 1 OF IMODES33 = 1 IF LAMP TEST IN 005580,001077: 12,3033 77763 MASK BIT1 # PROGRESS. 005581,001078: 12,3034 10000 CCS A 005582,001079: 12,3035 24002 INCR Q 005583,001080: 12,3036 00002 TC Q 005584,001081: 005585,001082: 12,3037 5642 33RDMSK EQUALS PRIO16 005586,001083: 12,3037 00015 OCT15 OCT 15 005587,001084: 12,3040 40010 OC40010 OCT 40010 005588,001085: 12,3041 00030 BITS4&5 OCT 30 005589,001086: 12,3042 00054 OCT54 OCT 54 005590,001087: 12,3043 00075 OCT75 OCT 75 005591,001088: 12,3044 00300 BITS7&8 OCT 300 005592,001089: 12,3045 01720 OCT1720 OCT 1720 005593,001090: 12,3046 01700 OCT1700 OCT 1700 005594,001091: 12,3047 5641 OCT15000 EQUALS PRIO15 005595,001092: 12,3047 71000 OCT71000 OCT 71000 005596,001093: 12,3050 40040 BITS6&15 OCT 40040 005597,001094: 12,3051 76777 -BIT10 OCT -1000 005598,001095: 005599,001096: 12,3052 21450 90SECS DEC 9000 B-14 005600,001097: 12,3053 00014 120MS DEC 12 B-14 005601,001098: 005602,001099: 12,3054 5733 GLOCKOK EQUALS RESUME 005603,001100:
![]() |
Page 132 |
005605,001102: # RR INBIT MONITOR. 005606,001103: 005607,001104: 12,3054 30412 RRAUTCHK CA RADMODES # SEE IF CHANGE IN RR AUTO MODE BIT. 005608,001105: 12,3055 00006 EXTEND 005609,001106: 12,3056 06033 RXOR 33 005610,001107: 12,3057 77762 MASK BIT2 005611,001108: 12,3060 00006 EXTEND 005612,001109: 12,3061 13115 BZF RRCDUCHK 005613,001110: 005614,001111: 12,3062 22412 LXCH RADMODES # UPDATE RADMODES. 005615,001112: 12,3063 00006 EXTEND 005616,001113: 12,3064 06001 RXOR L 005617,001114: 12,3065 54412 TS RADMODES 005618,001115: 12,3066 77762 MASK BIT2 # SEE IF JUST ON. 005619,001116: 12,3067 10000 CCS A 005620,001117: 12,3070 13107 TCF RROFF # OFF. 005621,001118: 005622,001119: 12,3071 37755 CAF BIT7 # IF JUST ON AND SOME PROGRAM IS USING THE 005623,001120: 12,3072 70074 MASK STATE # RR, DONT ZERO THE CDUS. 005624,001121: 12,3073 10000 CCS A 005625,001122: 12,3074 13115 TCF RRCDUCHK 005626,001123: 005627,001124: 12,3075 43106 CS OCT10001 # SET BITS TO INDICATE ZERO AND TURNON 005628,001125: 12,3076 70412 MASK RADMODES # IN PROGRESS. 005629,001126: 12,3077 63106 AD OCT10001 005630,001127: 12,3100 54412 TS RADMODES 005631,001128: 005632,001129: 12,3101 37763 CAF ONE 005633,001130: 12,3102 05663 TC WAITLIST 005634,001131: 12,3103 E6,1404 EBANK= M11 005635,001132: 12,3103 02000 20066 2CADR RRTURNON 005636,001133: 005637,001134: 12,3105 13161 TCF NORRGMON 005638,001135: 005639,001136: 12,3106 10001 OCT10001 OCT 10001 005640,001137: 005641,001138: 12,3107 40074 RROFF CS STATE # IF SOMEONE WAS USING THE RR, DISPLAY AN 005642,001139: 12,3110 77755 MASK BIT7 # ALARM IF THE RR GOES OUT OF AUTO MODE. 005643,001140: 12,3111 10000 CCS A 005644,001141: 12,3112 13115 TCF RRCDUCHK 005645,001142: 005646,001143: 12,3113 04755 TC ALARM 005647,001144: 12,3114 00514 OCT 514 005648,001145:
![]() |
Page 133 |
005650,001147: # CHECK FOR RR CDU FAIL. 005651,001148: 005652,001149: 12,3115 30412 RRCDUCHK CA RADMODES # LAST SAMPLED BIT IN RADMODES. 005653,001150: 12,3116 00006 EXTEND 005654,001151: 12,3117 06030 RXOR 30 005655,001152: 12,3120 77755 MASK BIT7 005656,001153: 12,3121 00006 EXTEND 005657,001154: 12,3122 13135 BZF RRGIMON 005658,001155: 005659,001156: 12,3123 37762 CAF BIT2 # IF RR NOT IN AUTO MODE, DONT CHANGE BIT 005660,001157: 12,3124 70412 MASK RADMODES # 7 OF RADMODES. IF THIS WERE NOT DONE, 005661,001158: 12,3125 10000 CCS A # THE TRACKER FAIL MIGHT COME ON WHEN 005662,001159: 12,3126 13161 TCF NORRGMON # JUST READING LR DATA. 005663,001160: 005664,001161: 12,3127 37755 CAF BIT7 # SET BIT 7 OF RADMODES FOR SETTRKF. 005665,001162: 12,3130 22412 LXCH RADMODES # UPDATE RADMODES. 005666,001163: 12,3131 00006 EXTEND 005667,001164: 12,3132 06001 RXOR L 005668,001165: 12,3133 54412 TS RADMODES 005669,001166: 005670,001167: 12,3134 04377 TRKFLCDU TC SETTRKF # UPDATE TRACKER FAIL LAMP ON DSKY. 005671,001168:
![]() |
Page 134 |
005673,001170: # THE RR GIMBAL LIMIT MONITOR IS ENABLED WHENEVER THE RR IS IN THE AUTO MODE EXCEPT WHEN THE RR CDUS ARE 005674,001171: # BEING ZEROED, OR DURING A REMODE OR MONITOR REPOSITION OPERATION. THE LATTER IS INITIATED BY THIS MONITOR WHEN 005675,001172: # THE GIMBALS EXCEED THE LIMITS FOR THE CURRENT MODE. A ROUTINE IS INITIATED TO DRIVE THE GIMBALS TO T = 0 AND 005676,001173: # S = 0 IF IN MODE 1 AND T = 180 WITH S = -90 FOR MODE 2. 005677,001174: 005678,001175: 12,3135 33157 RRGIMON CAF OCT32002 # INHIBITED BY REMODE, ZEROING, MONITOR. 005679,001176: 12,3136 70412 MASK RADMODES # OR RR NOT IN AUTO. 005680,001177: 12,3137 10000 CCS A 005681,001178: 12,3140 13161 TCF NORRGMON 005682,001179: 005683,001180: 12,3141 04334 TC RRLIMCHK # SET IF ANGLES IN LIMITS. 005684,001181: 12,3142 00035 ADRES OPTY 005685,001182: 005686,001183: 12,3143 13145 TCF MONREPOS 005687,001184: 005688,001185: 12,3144 13161 TCF NORRGMON # (ADDITIONAL CODING MAY GO HERE). 005689,001186: 005690,001187: 12,3145 37751 MONREPOS CAF BIT11 # SET FLAG TO SHOW REPOSITION IN PROGRESS. 005691,001188: 12,3146 26412 ADS RADMODES 005692,001189: 005693,001190: 12,3147 43160 CS OCT20002 # DISABLE TRACKER AND ERROR COUNTER. 005694,001191: 12,3150 00006 EXTEND 005695,001192: 12,3151 03012 WAND 12 005696,001193: 005697,001194: 12,3152 37762 CAF TWO 005698,001195: 12,3153 05663 TC WAITLIST 005699,001196: 12,3154 E6,1404 EBANK= M11 005700,001197: 12,3154 02051 20066 2CADR DORREPOS 005701,001198: 005702,001199: 12,3156 13161 TCF NORRGMON 005703,001200: 005704,001201: 12,3157 32002 OCT32002 OCT 32002 005705,001202: 12,3160 20002 OCT20002 OCT 20002 005706,001203:
![]() |
Page 135 |
005708,001205: # PROGRAM NAME: GPMATRIX (DAPT4S) MOD. NO. 2 DATE: OCTOBER 27, 1966 005709,001206: 005710,001207: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES) 005711,001208: 005712,001209: # THIS PROGRAM CALCULATES ALL THE SINGLE-PRECISION MATRIX ELEMENTS WHICH ARE USED BY LEM DAP TO TRANSFORM VECTORS 005713,001210: # FROM GIMBAL TO PILOT (BODY) AXES AND BACK AGAIN. THESE ELEMENTS ARE USED EXCLUSIVELY BY BASIC LANGUAGE ROUTINES 005714,001211: # AND THEREFORE ARE NOT ARRAYED FOR USE BY INTERPRETIVE PROGRAMS. 005715,001212: 005716,001213: # CALLING SEQUENCE: GPMATRIX IS TRANSFERRED TO FROM DAPT4S AND IS THUS EXECUTED 4 TIMES A SECOND BY T4RUPT. 005717,001214: # DAPT4S IS LISTED IN T4JUMP TABLE TWICE EXPLICITLY AND ALSO OCCURS AFTER RRAUTCHK (WHICH IS ALSO LISTED TWICE). 005718,001215: 005719,001216: # SUBROUTINES CALLED: SPSIN, SPCOS. 005720,001217: 005721,001218: # NORMAL EXIT: RESUME. 005722,001219: 005723,001220: # ALARM/ABORT MODE: THERE ARE NO REAL ALARMS OR ABORTS. HOWEVER, WHEN THE MIDDLE GIMBAL ANGLE NEARS GIMBAL LOCK, 005724,001221: # A DIVISION BY COS(MG) WILL CAUSE OVERFLOW (I.E. A BAD QUOTIENT). THIS CONDITION IS PREVENTED BY TESTING COS(MG) 005725,001222: # AND SUBSTITUTING POSMAX/NEGMAX FOR THE INCALCULABLE QUANTITIES. 005726,001223: 005727,001224: # INPUT: CDUX, CDUY, CDUZ. OUTPUT: M11,M21,M31,M22,M32,MR12,MR13. 005728,001225: # (ALSO MR22=M22,MR23=M32) 005729,001226: 005730,001227: # AOG = CDUX, AIG = CDUY, AMG = CDUZ: MNEMONIC IS : OIM = XYZ 005731,001228: 005732,001229: # * * SIN(MG) 0 1 * 005733,001230: # M = * COS(MG)COS(OG) SIN(OG) 0 * 005734,001231: # GP * -COS(MG)SIN(OG) COS(OG) 0 * 005735,001232: 005736,001233: # * * 0 COS(OG)/COS(MG) -SIN(OG)/COS(MG) * 005737,001234: # M = * 0 SIN(OG) COS(OG) * 005738,001235: # PG * 1 -SIN(MG)COS(OG)/COS(MG) SIN(MG)SIN(OG)/COS(MG) * 005739,001236: 005740,001237: # THIS CODING TRANSFERS CONTROL TO THE DAP FIXED BANK FOR GPMATRIX: 005741,001238: 12,3161 BANK 12 005742,001239: 12,3161 E6,1404 EBANK= M11 005743,001240: 005744,001241: 12,3161 00006 DAPT4S EXTEND # GET 2CADR OF GPMATRIX 005745,001242: 12,3162 33165 DCA DAPT4 005746,001243: 12,3163 52006 DTCB 005747,001244: 005748,001245: 12,3164 12,3161 NORRGMON EQUALS DAPT4S 005749,001246: 005750,001247: 12,3164 E6,1404 EBANK= M11 005751,001248: 12,3164 02000 40066 DAPT4 2CADR GPMATRIX 005752,001249:
![]() |
Page 136 |
005754,001251: # T4RUPT DAP LOGIC: 005755,001252: 005756,001253: 20,2000 BANK 20 005757,001254: 20,2000 E6,1404 EBANK= M11 005758,001255: 005759,001256: 20,2000 30034 GPMATRIX CAE CDUZ # SINGLE ENTRY POINT 005760,001257: 20,2001 05355 TC SPSIN # SIN(CDUZ) = SIN(MG) 005761,001258: 20,2002 55404 TS M11 # SCALED AT 1 005762,001259: 005763,001260: 20,2003 30034 CAE CDUZ 005764,001261: 20,2004 05354 TC SPCOS # COS(CDUZ) = COS(MG) 005765,001262: 20,2005 55457 TS COSMG # SCALED AT 1 (ONLY A FACTOR) 005766,001263: 005767,001264: 20,2006 30032 CAE CDUX 005768,001265: 20,2007 05355 TC SPSIN # SIN(CDUX) = SIN(OG) 005769,001266: 20,2010 55401 TS M22 # SCALED AT 1 (ALSO IS MR22) 005770,001267: 005771,001268: 20,2011 41401 CS M22 005772,001269: 20,2012 00006 EXTEND 005773,001270: 20,2013 71457 MP COSMG # -SIN(OG)COS(MG) 005774,001271: 20,2014 55406 TS M31 # SCALED AT 1 005775,001272: 005776,001273: 20,2015 30032 CAE CDUX 005777,001274: 20,2016 05354 TC SPCOS # COS(CDUX) = COS(OG) 005778,001275: 20,2017 55403 TS M32 # SCALED AT 1 (ALSO IS MR23) 005779,001276: 005780,001277: 20,2020 00006 EXTEND 005781,001278: 20,2021 71457 MP COSMG # COS(OG)COS(MG) 005782,001279: 20,2022 55405 TS M21 # SCALED AT 1 005783,001280: 005784,001281: 20,2023 41457 CS COSMG # CHECK FOR CDUZ GREATER THAN 60 DEGREES. 005785,001282: 20,2024 67746 AD BIT14 005786,001283: 20,2025 00006 EXTEND 005787,001284: 20,2026 62031 BZMF +3 005788,001285: 20,2027 37746 CAF BIT14 # USE 60 DEG. FOR CDUZ-HENCE COS(CDUZ)=1/2 005789,001286: 20,2030 55457 TS COSMG # (SINMG NOT SIMILARLY LIMITED) 005790,001287: 20,2031 31403 +3 CAE M32 005791,001288: 20,2032 00006 EXTEND 005792,001289: 20,2033 77746 MP BIT14 # SCALE FOR DIVISION 005793,001290: 20,2034 00006 EXTEND 005794,001291: 20,2035 11457 DV COSMG # COS(OG)/COS(MG) 005795,001292: 20,2036 55400 TS MR12 # SCALED AT 2 005796,001293: 005797,001294: 20,2037 41401 CS M22 005798,001295: 20,2040 00006 EXTEND 005799,001296: 20,2041 77746 MP BIT14 # SCALE FOR DIVISION 005800,001297: 20,2042 00006 EXTEND 005801,001298: 20,2043 11457 DV COSMG # -SIN(OG)/COS(MG) 005802,001299: 20,2044 55402 TS MR13 # SCALED AT 2 005803,001300: 20,2045 15733 TCF RESUME 005804,001301: End of include-file T4RUPT_PROGRAM.agc. Parent file is MAIN.agc