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