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