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. |
006994,000002: ## Copyright: Public domain.
006995,000003: ## Filename: RADAR_LEADIN_ROUTINES.agc
006996,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst).
006997,000005: ## It is part of the source code for the Lunar Module's (LM)
006998,000006: ## Apollo Guidance Computer (AGC) for Apollo 5.
006999,000007: ## Assembler: yaYUL
007000,000008: ## Contact: Ron Burkey <info@sandroid.org>.
007001,000009: ## Website: www.ibiblio.org/apollo/index.html
007002,000010: ## Mod history: 2016-09-30 RSB Created draft version.
007003,000011: ## 2016-10-06 RSB Finished transcribing.
007004,000012: ## 2016-10-31 RSB Typos, including an entire missing page (193).
007005,000013: ## 2016-11-01 RSB More typos.
007006,000014: ## 2016-12-04 RSB Made a number of corrections to program comments
007007,000015: ## using octopus/ProoferComments, but the proofing
007008,000016: ## process shouldn't be considered complete.
007009,000017: ## 2016-12-05 RSB Comment-proofing pass with octopus/ProoferComments completed;
007010,000018: ## changes made.
007011,000019:
![]() |
Page 168 |
007013,000021: 4323 BLOCK 02
007014,000022: 4323 E3,1464 EBANK= RRRET
007015,000023:
007016,000024: # THE FOLLOWING SUBROUTINE RETURNS TO CALLER + 2 IF THE ABSOLUTE VALUE OF C(A) IS GREATER THAN THE
007017,000025: # NEGATIVE OF THE NUMBER AT CALLER +1. OTHERWISE IT RETURNS TO CALLER +3. MAY BE CALLED IN RUPT OR UNDER EXEC.
007018,000026:
007019,000027: 4323 00006 MAGSUB EXTEND
007020,000028: 4324 64326 BZMF +2
007021,000029: 4325 14327 TCF +2
007022,000030: 4326 40000 COM
007023,000031:
007024,000032: 4327 50002 INDEX Q
007025,000033: 4330 60000 AD 0
007026,000034: 4331 00006 EXTEND
007027,000035: 4332 67017 BZMF Q+2 # ABS(A) LEQ CONSTANT
007028,000036: 4333 17015 TCF Q+1 # ABS(A) G CONSTANT
007029,000037:
![]() |
Page 169 |
007031,000039: # THE FOLLOWING SUBROUTINE CHECKS RR GIMBAL ANGLES TO SEE IF THEY ARE IN THE LIMITS OF THE CURRENT MODE.
007032,000040: # CALLING SEQUENCE IS AS FOLLOWS:
007033,000041:
007034,000042: # TC RRLIMCHK (WITH INTERRUPT INHIBITED).
007035,000043: # ADRES T,S (IN UNSWITCHED E OR CURRENT EBANK).
007036,000044:
007037,000045: # RETURN IS TO CALLER +2 IF NOT IN LIMITS AND TO CALLER +3 IF SO.
007038,000046:
007039,000047: 4334 50002 RRLIMCHK INDEX Q # READ GIMBAL ANGLES INTO ITEMP STORAGE.
007040,000048: 4335 30000 CAF 0
007041,000049: 4336 24002 INCR Q
007042,000050: 4337 00006 EXTEND
007043,000051: 4340 50000 INDEX A
007044,000052: 4341 30001 DCA 0
007045,000053: 4342 52062 DXCH ITEMP1
007046,000054: 4343 22002 LXCH Q # L(CALLER +2) TO L.
007047,000055:
007048,000056: 4344 37750 CAF BIT12 # SEE WHICH MODE RR IS IN.
007049,000057: 4345 70412 MASK RADMODES
007050,000058: 4346 10000 CCS A
007051,000059: 4347 14362 TCF MODE2CHK
007052,000060:
007053,000061: 4350 30061 CA ITEMP1 # MODE 1 IS DEFINED AS
007054,000062: 4351 04323 TC MAGSUB # 1. ABS(T) L 55 DEGS.
007055,000063: 4352 66161 DEC -.30555 # 2. ABS(S + 5.5 DEGS) L 64.5 DEGS
007056,000064: 4353 00001 TC L # (SHAFT LIMITS AT +59, -70 DEGS)
007057,000065:
007058,000066: 4354 34374 CAF 5.5DEGS
007059,000067: 4355 60062 AD ITEMP2 # S
007060,000068: 4356 04323 TC MAGSUB
007061,000069: 4357 64420 DEC -.35833 # 64.5 DEGS
007062,000070: 4360 00001 TC L
007063,000071: 4361 04372 TC RRLIMOK # IN LIMITS.
007064,000072:
007065,000073: 4362 34376 MODE2CHK CAF 82DEGS # MODE 2 IS DEFINED AS
007066,000074: 4363 60062 AD ITEMP2 # 1. ABS(T) G 125 DEGS.
007067,000075: 4364 04323 TC MAGSUB # 2. ABS(S + 82 DEGS) L 57 DEGS
007068,000076: 4365 65673 DEC -.31667 # (SHAFT LIMITS AT -25, -139 DEGS)
007069,000077: 4366 00001 TC L
007070,000078:
007071,000079: 4367 30061 CA ITEMP1
007072,000080: 4370 04323 TC MAGSUB
007073,000081: 4371 51615 DEC -.69444 # 125 DEGS
007074,000082:
007075,000083: 4372 50001 RRLIMOK INDEX L
007076,000084: 4373 00001 TC L # ( = TC 1)
007077,000085:
007078,000086: 4374 00765 5.5DEGS DEC .03056
007079,000087: 4375 00707 5DEGS DEC .02777 # SCALED IN HALF-REVOLUTIONS
007080,000088: 4376 16450 82DEGS DEC .45556
007081,000089:
![]() |
Page 170 |
007083,000091: # THE FOLLOWING ROUTINE UPDATES THE TRACKER FAIL LAMP ON THE DSKY, IF EITHER:
007084,000092:
007085,000093: # 1. N SAMPLES OF RR DATA COULD NOT BE OBTAINED FROM 2N TRIES
007086,000094: # 2. N SAMPLES OF LR DATA COULD NOT BE TAKEN IN 2N TRIES WITH EITHER THE ALT OR VEL INFORMATION.
007087,000095: # 3. RR CDU FAILED WITH RR IN AUTO MODE AND RR CDU NOT BEING ZEROED.
007088,000096:
007089,000097: 4377 37763 SETTRKF CAF BIT1 # NO ACTION IF DURING LAMP TEST.
007090,000098: 4400 70366 MASK IMODES33
007091,000099: 4401 10000 CCS A
007092,000100: 4402 00002 TC Q
007093,000101:
007094,000102: 4403 34433 CAF 13,7,2 # SEE IF CDU FAILED.
007095,000103: 4404 70412 MASK RADMODES
007096,000104: 4405 00006 EXTEND
007097,000105: 4406 14416 BZF TRKFLON # CONDITION 3 ABOVE.
007098,000106:
007099,000107: 4407 40412 CS RADMODES # SEE IF LR FAILED.
007100,000108: 4410 74434 MASK 8,5
007101,000109: 4411 00006 EXTEND
007102,000110: 4412 14416 BZF TRKFLON # CONDITION 2 ABOVE.
007103,000111:
007104,000112: 4413 37760 CAF BIT4 # SEE IF RR DATA FAILED.
007105,000113: 4414 70412 MASK RADMODES
007106,000114: 4415 10000 CCS A
007107,000115: 4416 37754 TRKFLON CAF BIT8
007108,000116: 4417 60326 AD DSPTAB +11D # HALF ADD DESIRED AND PRESENT STATES.
007109,000117: 4420 77754 MASK BIT8
007110,000118: 4421 00006 EXTEND
007111,000119: 4422 17020 BZF TCQ # NO CHANGE.
007112,000120:
007113,000121: 4423 54001 TS L # INVERT BIT 8 AND SET BIT 15.
007114,000122: 4424 30326 CA DSPTAB +11D # CANT USE LXCH DSPTAB +11D (RESTART PROB)
007115,000123: 4425 00006 EXTEND
007116,000124: 4426 06001 RXOR L
007117,000125: 4427 77743 MASK POSMAX
007118,000126: 4430 67745 AD BIT15
007119,000127: 4431 54326 TS DSPTAB +11D
007120,000128: 4432 00002 TC Q
007121,000129:
007122,000130: 4433 10102 13,7,2 OCT 10102
007123,000131: 4434 00220 8,5 OCT 00220
007124,000132:
007125,000133: 4435 ENDRMODF EQUALS
007126,000134:
![]() |
Page 171 |
007128,000136: # TURNON SEQUENCE TO ZERO THE CDUS AND DETERMINE THE RR MODE.
007129,000137:
007130,000138: 10,2000 BANK 10
007131,000139:
007132,000140: 10,2000 02013 RRTURNON TC RRZEROSB
007133,000141: 10,2001 05701 TC FIXDELAY # WAIT 1 SEC BEFORE REMOVING TURN ON FLAG
007134,000142: 10,2002 00144 DEC 100 B-14 # SO A MONITOR REPOSITION WONT ALARM.
007135,000143: 10,2003 47763 CS BIT1
007136,000144: 10,2004 70412 MASK RADMODES
007137,000145: 10,2005 54412 TS RADMODES
007138,000146: 10,2006 40074 CS STATE # SEE IF SOMEONE IS WAITING TO USE THE RR.
007139,000147: 10,2007 77755 MASK RRUSEFLG
007140,000148: 10,2010 10000 CCS A
007141,000149: 10,2011 15727 TCF TASKOVER
007142,000150:
007143,000151: 10,2012 13242 TCF ENDRADAR # CHECK RR CDU FAIL BEFORE EXIT.
007144,000152:
![]() |
Page 172 |
007146,000154: # CLOSED SUBROUTINE TO ZERO THE RR CDUS.
007147,000155:
007148,000156: 10,2013 00006 RRZEROSB EXTEND
007149,000157: 10,2014 23464 QXCH RRRET
007150,000158: 10,2015 37763 CAF BIT1 # BIT 13 OF RADMODES MUST BE SET BEFORE
007151,000159: 10,2016 00006 EXTEND # COMING HERE.
007152,000160: 10,2017 05012 WOR 12
007153,000161: 10,2020 05701 TC FIXDELAY
007154,000162: 10,2021 00002 DEC 2 B-14
007155,000163:
007156,000164: 10,2022 37767 CAF ZERO
007157,000165: 10,2023 54035 TS OPTY
007158,000166: 10,2024 54036 TS OPTX
007159,000167: 10,2025 47763 CS ONE # REMOVE ZEROING BIT.
007160,000168: 10,2026 00006 EXTEND
007161,000169: 10,2027 03012 WAND 12
007162,000170: 10,2030 05701 TC FIXDELAY
007163,000171: 10,2031 00620 DEC 400 B-14
007164,000172:
007165,000173: 10,2032 47747 CS BIT13 # REMOVE ZEROING IN PROCESS BIT.
007166,000174: 10,2033 70412 MASK RADMODES
007167,000175: 10,2034 54412 TS RADMODES
007168,000176:
007169,000177: 10,2035 30035 CA OPTY
007170,000178: 10,2036 04323 TC MAGSUB
007171,000179: 10,2037 57777 DEC -.5
007172,000180: 10,2040 12043 TCF +3 # IF MODE 2.
007173,000181:
007174,000182: 10,2041 37767 CAF ZERO
007175,000183: 10,2042 12044 TCF +2
007176,000184: 10,2043 37750 CAF BIT12
007177,000185: 10,2044 56412 XCH RADMODES
007178,000186: 10,2045 75502 MASK -BIT12
007179,000187: 10,2046 26412 ADS RADMODES
007180,000188:
007181,000189: 10,2047 04377 TC SETTRKF # TRACKER LAMP MIGHT GO ON NOW.
007182,000190:
007183,000191: 10,2050 01464 TC RRRET # DONE.
007184,000192:
007185,000193: 10,2051 5502 -BIT12 EQUALS -1/8 # IN SPROOT
007186,000194:
![]() |
Page 173 |
007188,000196: # SEQUENCE OF TASKS TO DRIVE THE RR TO A SAFE POSITION.
007189,000197:
007190,000198: 10,2051 02106 DORREPOS TC SETRRECR # SET UP RR CDU ERROR COUNTERS.
007191,000199:
007192,000200: 10,2052 37763 CAF BIT1 # DO AN ALARM UNLESS RR JUST TURNED ON.
007193,000201: 10,2053 70412 MASK RADMODES
007194,000202: 10,2054 10000 CCS A
007195,000203: 10,2055 12060 TCF +3
007196,000204:
007197,000205: 10,2056 04755 TC ALARM
007198,000206: 10,2057 00501 OCT 501
007199,000207: 10,2060 05701 TC FIXDELAY
007200,000208: 10,2061 00002 DEC 2 B-14
007201,000209:
007202,000210: 10,2062 37750 CAF BIT12 # MANEUVER TRUNNION ANGLE TO NOMINAL POS.
007203,000211: 10,2063 70412 MASK RADMODES
007204,000212: 10,2064 10000 CCS A
007205,000213: 10,2065 37745 CAF BIT15 # 0 FOR MODE 1 AND 180 FOR MODE 2.
007206,000214: 10,2066 02150 TC RRTONLY
007207,000215:
007208,000216: 10,2067 37750 CAF BIT12 # NOW PUT SHAFT IN RIGHT POSITION.
007209,000217: 10,2070 70412 MASK RADMODES
007210,000218: 10,2071 10000 CCS A
007211,000219: 10,2072 47746 CS HALF # -90 FOR MODE 2.
007212,000220: 10,2073 02153 TC RRSONLY
007213,000221:
007214,000222: 10,2074 47751 REPOSRPT CS BIT11 # RETURNS HERE FROM RR1AXIS IN REMODE
007215,000223: # REQUESTED DURING REPOSITION.
007216,000224: 10,2075 70412 MASK RADMODES # REMOVE REPOSITION BIT.
007217,000225: 10,2076 54412 TS RADMODES
007218,000226: 10,2077 77752 MASK BIT10 # SEE IF SOMEONE IS WAITING TO DESIGNATE.
007219,000227: 10,2100 10000 CCS A
007220,000228: 10,2101 12423 TCF BEGDES
007221,000229: 10,2102 47762 CS BIT2 # IF NO FURTHER ANTENNA CONTROL REQUIRED,
007222,000230: 10,2103 00006 EXTEND # REMOVE ERROR COUNTER ENABLE.
007223,000231: 10,2104 03012 WAND 12
007224,000232: 10,2105 15727 TCF TASKOVER
007225,000233:
007226,000234: 10,2106 37762 SETRRECR CAF BIT2 # SET UP RR ERROR COUNTERS.
007227,000235: 10,2107 00006 EXTEND
007228,000236: 10,2110 05012 WOR 12
007229,000237:
007230,000238: 10,2111 37767 CAF ZERO
007231,000239: 10,2112 54361 TS LASTYCMD
007232,000240: 10,2113 54362 TS LASTXCMD
007233,000241: 10,2114 00002 TC Q
007234,000242:
![]() |
Page 174 |
007236,000244: # GENERAL REMODING SUBROUTINE. DRIVES TRUNION TO 0 (180), THEN DRIVES SHAFT TO -45, AND FINALLY DRIVES
007237,000245: # TRUNNION TO -130 (-50) BEFORE INITIATING 2-AXIS CONTROL. ALL RE-MODING IS DONE WITH SINGLE AXIS ROTATIONS (SEE
007238,000246: # RR1AXIS).
007239,000247:
007240,000248: 10,2115 37750 REMODE CAF BIT12 # DRIVE TRUNNION TO 0 (180).
007241,000249: 10,2116 70412 MASK RADMODES # (ERROR COUNTER ALREADY ENABLED)
007242,000250: 10,2117 10000 CCS A
007243,000251: 10,2120 37745 CAF BIT15
007244,000252: 10,2121 02150 TC RRTONLY
007245,000253:
007246,000254: 10,2122 32137 CAF -45DEGSR
007247,000255: 10,2123 02153 TC RRSONLY
007248,000256:
007249,000257: 10,2124 40412 CS RADMODES
007250,000258: 10,2125 77750 MASK BIT12
007251,000259: 10,2126 10000 CCS A
007252,000260: 10,2127 32141 CAF -80DEGSR # GO TO T = -130 (-50).
007253,000261: 10,2130 62140 AD -50DEGSR
007254,000262: 10,2131 02150 TC RRTONLY
007255,000263:
007256,000264: 10,2132 02142 TC RMODINV
007257,000265:
007258,000266: 10,2133 47746 CS BIT14 # END OF REMODE.
007259,000267: 10,2134 70412 MASK RADMODES
007260,000268: 10,2135 54412 TS RADMODES
007261,000269:
007262,000270: 10,2136 02432 TC STDESIG # BEGIN 2-AXIS CONTROL.
007263,000271:
007264,000272: 10,2137 70000 -45DEGSR OCT 70000
007265,000273: 10,2140 67070 -50DEGSR DEC -.27778
007266,000274: 10,2141 61615 -80DEGSR DEC -.44444
007267,000275:
007268,000276: 10,2142 22412 RMODINV LXCH RADMODES # INVERT THE MODE STATUS.
007269,000277: 10,2143 37750 CAF BIT12
007270,000278: 10,2144 00006 EXTEND
007271,000279: 10,2145 06001 RXOR L
007272,000280: 10,2146 54412 TS RADMODES
007273,000281: 10,2147 00002 TC Q
007274,000282:
![]() |
Page 175 |
007276,000284: # SUBROUTINES FOR DOING SINGLE AXIS RR MANEUVERS FOR REMODE AND REPOSITION. DRIVES TO WITHIN 1 DEGREE.
007277,000285:
007278,000286: 10,2150 55465 RRTONLY TS RDES # DESIRED TRUNION ANGLE.
007279,000287: 10,2151 37767 CAF ZERO
007280,000288: 10,2152 12155 TCF RR1AXIS
007281,000289:
007282,000290: 10,2153 55465 RRSONLY TS RDES # SHAFT COMMANDS ARE UNRESOLVED SINCE THIS
007283,000291: 10,2154 37763 CAF ONE # ROUTINE ENTERED ONLY WHEN T = 0 OR 180.
007284,000292:
007285,000293: 10,2155 55466 RR1AXIS TS RRINDEX
007286,000294: 10,2156 00006 EXTEND
007287,000295: 10,2157 23464 QXCH RRRET
007288,000296: 10,2160 12163 TCF RR1AX2
007289,000297:
007290,000298: 10,2161 05701 NXTRR1AX TC FIXDELAY
007291,000299: 10,2162 00062 DEC 50 B-14 # 2 SAMPLES PER SECOND.
007292,000300:
007293,000301: 10,2163 40412 RR1AX2 CS RADMODES # IF SOMEONE REQUESTES AS DESIGNATE WHICH
007294,000302: 10,2164 75645 MASK PRIO22 # REQUIRES A REMODE AND A REPOSITION IS IN
007295,000303: 10,2165 00006 EXTEND # PROGRESS, INTERRUPT IT AND START THE
007296,000304: 10,2166 12074 BZF REPOSRPT # REMODE IMMEDIATELY.
007297,000305:
007298,000306: 10,2167 31465 CA RDES
007299,000307: 10,2170 00006 EXTEND
007300,000308: 10,2171 51466 INDEX RRINDEX
007301,000309: 10,2172 20035 MSU OPTY
007302,000310: 10,2173 54002 TS Q # SAVE ERROR SIGNAL.
007303,000311: 10,2174 00006 EXTEND
007304,000312: 10,2175 72212 MP RRSPGAIN # TRIES TO NULL .7 OF ERROR OVER NEXT .5
007305,000313: 10,2176 54001 TS L
007306,000314: 10,2177 30002 CA Q # SEE IF WITHIN 1 DEGREE.
007307,000315: 10,2200 04323 TC MAGSUB
007308,000316: 10,2201 77644 DEC -.00555 # SCALED IN HALF-REVS.
007309,000317:
007310,000318: 10,2202 12204 TCF +2 # NO.
007311,000319: 10,2203 01464 TC RRRET # RETURN TO CALLER.
007312,000320:
007313,000321: 10,2204 11466 CCS RRINDEX # COMMAND FOR OTHER AXIS IS ZERO.
007314,000322: 10,2205 12207 TCF +2 # SETTING A TO 0.
007315,000323: 10,2206 56001 XCH L
007316,000324: 10,2207 52423 DXCH TANG
007317,000325:
007318,000326: 10,2210 02213 TC RROUT
007319,000327:
007320,000328: 10,2211 12161 TCF NXTRR1AX # COME BACK IN .5 SECONDS.
007321,000329:
007322,000330: 10,2212 22715 RRSPGAIN DEC .59062 # NULL .7 ERROR IN .5 SEC.
007323,000331:
![]() |
Page 176 |
007325,000333: # THE FOLLOWING ROUTINE RECEIVES RR GYRO COMMANDS IN TANG,+1 IN ERROR COUNTER SCALING. RROUT LIMITS THEM
007326,000334: # AND GENERATES COMMANDS TO THE CDU TO ADJUST THE ERROR COUNTERS TO THE DESIRED VALUES. RUPT MUST BE INHIBITED.
007327,000335:
007328,000336: 10,2213 22002 RROUT LXCH Q # SAVE RETURN.
007329,000337: 10,2214 37763 CAF ONE # LOOP TWICE.
007330,000338: 10,2215 54062 RROUT2 TS ITEMP2
007331,000339: 10,2216 50000 INDEX A
007332,000340: 10,2217 30422 CA TANG
007333,000341: 10,2220 54061 TS ITEMP1 # SAVE SIGN OF COMMAND FOR LIMITING.
007334,000342:
007335,000343: 10,2221 04323 TC MAGSUB # SEE IF WITHIN LMITS.
007336,000344: 10,2222 77177 -RRLIMIT DEC -384 B-14
007337,000345: 10,2223 12242 TCF RROUTLIM # LIMIT COMMAND TO MAG OF 384.
007338,000346:
007339,000347: 10,2224 30061 SETRRCTR CA ITEMP1 # COUNT OUT DIFFERENCE BETWEEN DESIRED
007340,000348: 10,2225 50062 INDEX ITEMP2 # STATE AND PRESENT STATE AS RECORDED IN
007341,000349: 10,2226 56361 XCH LASTYCMD # LASTYCMD AND LASTXCMD
007342,000350: 10,2227 40000 COM
007343,000351: 10,2230 60061 AD ITEMP1
007344,000352: 10,2231 67770 AD NEG0
007345,000353: 10,2232 50062 INDEX ITEMP2
007346,000354: 10,2233 54053 TS OPTYCMD
007347,000355:
007348,000356: 10,2234 10062 CCS ITEMP2 # PROCESS BOTH INPUTS.
007349,000357: 10,2235 12215 TCF RROUT2
007350,000358:
007351,000359: 10,2236 35634 CAF PRIO6 # ENABLE COUNTERS.
007352,000360: 10,2237 00006 EXTEND
007353,000361: 10,2240 05014 WOR 14
007354,000362:
007355,000363: 10,2241 00001 TC L # RETURN.
007356,000364:
007357,000365: 10,2242 10061 RROUTLIM CCS ITEMP1 # LIMIT COMMAND TO ABS VAL OF 384.
007358,000366: 10,2243 42222 CS -RRLIMIT
007359,000367: 10,2244 12246 TCF +2
007360,000368: 10,2245 32222 CA -RRLIMIT
007361,000369: 10,2246 54061 TS ITEMP1
007362,000370: 10,2247 12225 TCF SETRRCTR +1
007363,000371:
![]() |
Page 177 |
007365,000373: # ROUTINE TO ZERO THE RR CDUS AND DETERMINE THE ANTENNA MODE.
007366,000374:
007367,000375: 10,2250 00004 RRZERO INHINT
007368,000376: 10,2251 47755 CS RRUSEFLG # SET FLAG TO SHOW SOMEONE USING THE RR.
007369,000377: 10,2252 70074 MASK STATE
007370,000378: 10,2253 67755 AD RRUSEFLG
007371,000379: 10,2254 54074 TS STATE
007372,000380:
007373,000381: 10,2255 37763 CAF BIT1 # SEE IF RR COMING UP. IF SO, TURNON
007374,000382: 10,2256 70412 MASK RADMODES # PROGRAM WILL DO THE WORK.
007375,000383: 10,2257 10000 CCS A
007376,000384: 10,2260 12303 TCF ROADBACK
007377,000385:
007378,000386: 10,2261 37751 CAF BIT11 # SEE IF MONITOR REPOSITION IN PROGRESS.
007379,000387: 10,2262 70412 MASK RADMODES # IF SO, DONT RE-ZERO CDUS.
007380,000388: 10,2263 10000 CCS A
007381,000389: 10,2264 13224 TCF RADNOOP # (IMMEDIATE TASK TO RGOODEND).
007382,000390:
007383,000391: 10,2265 47747 CS BIT13 # SET FLAG TO SHOW ZEROING IN PROGRESS.
007384,000392: 10,2266 70412 MASK RADMODES
007385,000393: 10,2267 67747 AD BIT13
007386,000394: 10,2270 54412 TS RADMODES
007387,000395:
007388,000396: 10,2271 37763 CAF ONE
007389,000397: 10,2272 05663 TC WAITLIST
007390,000398: 10,2273 E3,1464 EBANK= RRRET
007391,000399: 10,2273 02305 20063 2CADR RRZ2
007392,000400:
007393,000401: 10,2275 40412 CS RADMODES # SEE IF IN AUTO MODE.
007394,000402: 10,2276 77762 MASK BIT2
007395,000403: 10,2277 10000 CCS A
007396,000404: 10,2300 12303 TCF ROADBACK
007397,000405: 10,2301 04755 TC ALARM # AUTO DISCRETE NOT PRESENT - TRYING
007398,000406: 10,2302 00510 OCT 510
007399,000407: 10,2303 00003 ROADBACK RELINT
007400,000408: 10,2304 15221 TCF SWRETURN
007401,000409:
007402,000410: 10,2305 02013 RRZ2 TC RRZEROSB # COMMON TO TURNON AND RRZERO.
007403,000411: 10,2306 13242 TCF ENDRADAR
007404,000412:
007405,000413: 10,2307 7755 RRUSEFLG EQUALS BIT7
007406,000414: 10,2307 7757 LOKONFLG EQUALS BIT5
007407,000415:
![]() |
Page 178 |
007409,000417: # STABLE-MEMBER RR DESIGNATE ROUTINE. DESIGNATE TO A SM LOS VECTOR (HALF-UNIT) IN RRTARGET. REMODES IF
007410,000418: # REQUIRED. RETURNS TO CALLER IF MANEUVER REQUIRED FOR DES AND SKIPS IF IT CAN BE DONE IN PRESENT VEH ATTITUDE.
007411,000419:
007412,000420: 10,2307 43020 RRDESSM STQ CLEAR
007413,000421: 10,2310 00426 DESRET
007414,000422: 10,2311 00271 RRNBSW
007415,000423: 10,2312 66234 RTB SSP # READ CDUS FOR SMNB.
007416,000424: 10,2313 33473 READCDUS
007417,000425: 10,2314 00051 S1
007418,000426: 10,2315 00024 20D
007419,000427: 10,2316 24025 STOVL 20D
007420,000428: 10,2317 00415 RRTARGET
007421,000429: 10,2320 34041 STCALL 32D
007422,000430: 10,2321 32531 SMNB
007423,000431:
007424,000432: 10,2322 77624 CALL # GET RR GIMBAL ANGLES IN PRESENT AND
007425,000433: 10,2323 33355 RRANGLES # ALTERNATE MODE.
007426,000434: 10,2324 77776 EXIT
007427,000435:
007428,000436: 10,2325 00004 INHINT
007429,000437: 10,2326 04334 TC RRLIMCHK
007430,000438: 10,2327 00422 ADRES MODEA # CONFIGURATION FOR CURRENT MODE.
007431,000439: 10,2330 12352 TCF TRYSWS
007432,000440:
007433,000441: 10,2331 24426 OKDESSM INCR DESRET # INCREMENT SAYS NO VEHICLE MANEUVER REQ.
007434,000442:
![]() |
Page 179 |
007436,000444: # AT THIS POINT WE ARE READY TO BEGIN DESIGNATION. THE TARGET IS STORED AS A HALF-UNIT VECTOR IN RRTARGET
007437,000445: # WITH RRNBSW SET IF IT IS REFERRED TO NAV BASE AXES. LOKONSW IS SET IF LOCKON IS DESIRED. BIT14 OF RADMODES IS
007438,000446: # SET IF A REMODE IS REQUIRED. AT THIS TIME, THE ANTENNA MAY BE IN A MONITOR REPOSITION OPERATION. IN THIS
007439,000447: # CASE, IF A REMODE IS REQUIRED IT MAY HAVE ALREADY BEGUN BUT IT ANY CASE THE REPOSITION WILL BE INTERRUPTED.
007440,000448: # OTHERWISE, THE REPOSITION WILL BE COMPLETED BEFORE 2-AXIS DESIGNATION BEGINS.
007441,000449:
007442,000450: 10,2332 32351 STARTDES CAF MAXTRIES # ALLOW 30 SECS.
007443,000451: 10,2333 54427 TS DESCOUNT
007444,000452:
007445,000453: 10,2334 37752 CAF BIT10 # SHOW DESIGNATE REQUIRED.
007446,000454: 10,2335 26412 ADS RADMODES
007447,000455: 10,2336 77751 MASK BIT11 # SEE IF REPOSITION IN PROGRESS.
007448,000456: 10,2337 10000 CCS A
007449,000457: 10,2340 12346 TCF DESRETRN # ECTR ALREADY SET UP.
007450,000458:
007451,000459: 10,2341 02106 TC SETRRECR # SET UP ERROR COUNTERS.
007452,000460:
007453,000461: 10,2342 37762 CAF TWO
007454,000462: 10,2343 05663 TC WAITLIST
007455,000463: 10,2344 E3,1464 EBANK= RRRET
007456,000464: 10,2344 02423 20063 2CADR BEGDES
007457,000465:
007458,000466: 10,2346 00003 DESRETRN RELINT # RETURN VIA DESRET
007459,000467: 10,2347 30426 +1 CA DESRET
007460,000468: 10,2350 15230 TCF BANKJUMP
007461,000469:
007462,000470: 10,2351 00074 MAXTRIES DEC 60 B-14
007463,000471:
![]() |
Page 180 |
007465,000473: # SEE IF RRDESSM CAN BE ACCOMPLISHED AFTER A REMODE.
007466,000474:
007467,000475: 10,2352 02142 TRYSWS TC RMODINV # (NOTE RUPT INHIBIT)
007468,000476: 10,2353 04334 TC RRLIMCHK # TRY DIFFERENT MODE.
007469,000477: 10,2354 00424 ADRES MODEB
007470,000478: 10,2355 12362 TCF NODESSM # VEHICLE MANEUVER REQUIRED.
007471,000479:
007472,000480: 10,2356 02142 TC RMODINV # RESET BIT12
007473,000481: 10,2357 37746 CAF BIT14 # SET FLAG FOR REMODE.
007474,000482: 10,2360 26412 ADS RADMODES
007475,000483:
007476,000484: 10,2361 12331 TCF OKDESSM
007477,000485:
007478,000486: 10,2362 02142 NODESSM TC RMODINV # RE-INVERT MODE AND RETURN WITHOUT IN-
007479,000487: 10,2363 12346 TCF DESRETRN # CREMENTING DESRET
007480,000488:
![]() |
Page 181 |
007482,000490: # DESIGNATE TO SPECIFIC RR GIMBAL ANGLES (INDEPENDENT OF VEHICLE MOTION). ENTER WITH DESIRED ANGLES IN
007483,000491: # TANG AND TANG +1.
007484,000492:
007485,000493: 10,2364 05235 RRDESNB TC MAKECADR
007486,000494: 10,2365 54426 TS DESRET
007487,000495:
007488,000496: 10,2366 00004 INHINT # SEE IF CURRENT MODE OK.
007489,000497: 10,2367 04334 TC RRLIMCHK
007490,000498: 10,2370 00422 ADRES TANG
007491,000499: 10,2371 12403 TCF TRYSWN # SEE IF IN OTHER MODE.
007492,000500:
007493,000501: 10,2372 00003 OKDESNB RELINT
007494,000502: 10,2373 06112 TC INTPRET
007495,000503:
007496,000504: 10,2374 77624 CALL # GET LOS IN NB COORDS.
007497,000505: 10,2375 33430 RRNB
007498,000506: 10,2376 00415 STORE RRTARGET
007499,000507:
007500,000508: 10,2377 77414 SET EXIT
007501,000509: 10,2400 00071 RRNBSW
007502,000510:
007503,000511: 10,2401 00004 INHINT
007504,000512: 10,2402 12332 TCF STARTDES
007505,000513:
007506,000514: 10,2403 02142 TRYSWN TC RMODINV # SEE IF OTHER MODE WILL DO.
007507,000515: 10,2404 04334 TC RRLIMCHK
007508,000516: 10,2405 00422 ADRES TANG
007509,000517: 10,2406 12413 TCF NODESNB # NOT POSSIBLE.
007510,000518:
007511,000519: 10,2407 02142 TC RMODINV
007512,000520: 10,2410 37746 CAF BIT14 # CALL FOR REMODE.
007513,000521: 10,2411 26412 ADS RADMODES
007514,000522: 10,2412 12372 TCF OKDESNB
007515,000523:
007516,000524: 10,2413 37763 NODESNB CAF BIT1 # CALL FOR ERROR RETURN.
007517,000525: 10,2414 05663 TC WAITLIST
007518,000526: 10,2415 E3,1464 EBANK= RRRET
007519,000527: 10,2415 03256 20063 2CADR RDBADEND
007520,000528:
007521,000529: 10,2417 02142 TC RMODINV
007522,000530: 10,2420 04755 TC ALARM # BAD GIMBAL ANGLE INPUTS.
007523,000531: 10,2421 00502 OCT 502
007524,000532: 10,2422 12347 TCF DESRETRN +1 # ALARM DID A RELINT.
007525,000533:
![]() |
Page 182 |
007527,000535: # WAITLIST TASKS TO RUN RR DESIGNATION.
007528,000536:
007529,000537: 10,2423 37746 BEGDES CAF BIT14 # ENTER HERE FROM STARTDES OR REPOSRPT.
007530,000538: 10,2424 70412 MASK RADMODES # SEE IF REMODE REQUIRED.
007531,000539: 10,2425 10000 CCS A
007532,000540: 10,2426 12115 TCF REMODE
007533,000541: 10,2427 12432 TCF STDESIG
007534,000542:
007535,000543: 10,2430 05701 DESLOOP TC FIXDELAY # 2 SAMPLES PER SECOND.
007536,000544: 10,2431 00062 DEC 50 B-14
007537,000545:
007538,000546: 10,2432 37751 STDESIG CAF BIT11 # ENTRY FROM BEGDES AND REMODE.
007539,000547: 10,2433 70412 MASK RADMODES # SEE IF GIMBAL LIMIT MONITOR HAS FOUND US
007540,000548: 10,2434 10000 CCS A # OUT OF BOUNDS. IF SO, THIS BIT SHOWS A
007541,000549: 10,2435 12455 TCF BADDES # REPOSITION TO BE IN PROGRESS.
007542,000550:
007543,000551: 10,2436 10412 CCS RADMODES # SEE IF CONTINUOUS DESIGNATE WANTED.
007544,000552: 10,2437 12442 TCF +3 # IF SO, DONT CHECK BIT 10 TO SEE IF IN
007545,000553: 10,2440 12442 TCF +2 # LIMITS BUT GO RIGHT TO FINDVAC ENTRY.
007546,000554: 10,2441 12462 TCF MOREDES +1
007547,000555:
007548,000556: 10,2442 40412 CS RADMODES # IF NON-CONTINUOUS, SEE IF END OF
007549,000557: 10,2443 77752 MASK BIT10 # PROBLEM (DATA GOOD IF LOCK-ON WANTED OR
007550,000558: 10,2444 10000 CCS A # WITHIN LIMITS IF NOT). IF SO, EXIT AFTER
007551,000559: 10,2445 13242 TCF ENDRADAR # CHECKING RR CDU FAIL.
007552,000560:
007553,000561: 10,2446 10427 CCS DESCOUNT # SEE IF TIME LIMIT HAS EXPIRED.
007554,000562: 10,2447 12461 TCF MOREDES
007555,000563:
007556,000564: 10,2450 04755 TC ALARM # OUT OF TIME.
007557,000565: 10,2451 00503 OCT 503
007558,000566: 10,2452 42467 CS B14+B2 # IF OUT OF TIME, REMOVE ECR ENABLE + TRKR
007559,000567: 10,2453 00006 EXTEND
007560,000568: 10,2454 03012 WAND 12
007561,000569: 10,2455 47752 BADDES CS BIT10 # REMOVE DESIGNATE FLAG.
007562,000570: 10,2456 70412 MASK RADMODES
007563,000571: 10,2457 54412 TS RADMODES
007564,000572: 10,2460 13256 TCF RDBADEND
007565,000573:
007566,000574: 10,2461 54427 MOREDES TS DESCOUNT
007567,000575: 10,2462 35650 CAF PRIO26 # UPDATE GYRO TORQUE COMMANDS.
007568,000576: 10,2463 05516 TC FINDVAC
007569,000577: 10,2464 E3,1464 EBANK= RRRET
007570,000578: 10,2464 02470 20063 2CADR DODES
007571,000579:
007572,000580: 10,2466 12430 TCF DESLOOP
007573,000581:
007574,000582: 10,2467 20002 B14+B2 OCT 20002
007575,000583:
![]() |
Page 183 |
007577,000585: # CALCULATE GYRO TORQUE COMMANDS.
007578,000586:
007579,000587: 10,2470 00006 DODES EXTEND
007580,000588: 10,2471 30036 DCA OPTY
007581,000589: 10,2472 52423 DXCH TANG
007582,000590:
007583,000591: 10,2473 06112 TC INTPRET
007584,000592:
007585,000593: 10,2474 77775 VLOAD # MOVE TARGET VECTOR TO 32D.
007586,000594: 10,2475 00415 RRTARGET
007587,000595: 10,2476 00041 STORE 32D
007588,000596:
007589,000597: 10,2477 47014 BON RTB # DO STABLE-MEMBER TO NAVBASE TRANSFORMA-
007590,000598: 10,2500 00311 RRNBSW # TION IF TARGET IN SM COORDS. OTHERWISE,
007591,000599: 10,2501 20510 DONBRD # IN NB COORDS ALREADY.
007592,000600: 10,2502 33473 READCDUS
007593,000601:
007594,000602: 10,2503 77731 SSP
007595,000603: 10,2504 00051 S1
007596,000604: 10,2505 00024 20D # LOC OF ICDUS.
007597,000605: 10,2506 34025 STCALL 20D
007598,000606: 10,2507 32531 SMNB
007599,000607:
![]() |
Page 184 |
007601,000609: 10,2510 67201 DONBRD SETPD SLOAD # DO NAVBASE TO RADAR DISH TRANSFORMATION.
007602,000610: 10,2511 00001 0
007603,000611: 10,2512 00424 TANG +1
007604,000612: 10,2513 41434 RTB PUSH # SHAFT COMMAND = V(32D).(COS(S), 0,
007605,000613: 10,2514 33457 CDULOGIC # (-SIN(S)).
007606,000614: 10,2515 65356 SIN PDDL # SIN(S) TO 0 AND COS(S) TO 2.
007607,000615: 10,2516 41546 COS PUSH
007608,000616: 10,2517 65205 DMP PDDL
007609,000617: 10,2520 00041 32D
007610,000618: 10,2521 00045 36D
007611,000619: 10,2522 44205 DMP BDSU
007612,000620: 10,2523 00001 0
007613,000621: 10,2524 77626 STADR
007614,000622: 10,2525 77353 STORE TANG +1 # SHAFT COMMAND
007615,000623:
007616,000624: 10,2526 47135 SLOAD RTB
007617,000625: 10,2527 00423 TANG
007618,000626: 10,2530 33457 CDULOGIC
007619,000627: 10,2531 71406 PUSH COS # COS(T) TO 4.
007620,000628: 10,2532 73525 PDDL SIN
007621,000629: 10,2533 41206 PUSH DMP # SIN(T) TO 6.
007622,000630: 10,2534 00003 2
007623,000631: 10,2535 65352 SL1 PDDL # DEFINE VECTOR U = (SIN(T)SIN(S))
007624,000632: 10,2536 00005 4 # ( COS(T) )
007625,000633: 10,2537 41325 PDDL DMP # (SIN(T)COS(S))
007626,000634: 10,2540 00007 6
007627,000635: 10,2541 00001 0
007628,000636: 10,2542 55552 SL1 VDEF
007629,000637: 10,2543 77441 DOT EXIT # DOT U WITH LOS TO GET TRUNNION COMMAND.
007630,000638: 10,2544 00041 32D
007631,000639:
![]() |
Page 185 |
007633,000641: # AT THIS POINT WE HAVE A ROTATION VECTOR IN DISH AXES LYING IN THE TS PLANE. CONVERT THIS TO A
007634,000642: # COMMANDED RATE AND ENABLE THE TRACKER IF WE ARE WITHIN 1 DEGREE OF THE TARGET.
007635,000643:
007636,000644: 10,2545 40144 CS MPAC # DOT WAS NEGATIVE OF DESIRED ANGLE.
007637,000645: 10,2546 54422 TS TANG
007638,000646:
007639,000647: 10,2547 40412 CS RADMODES # A RELAY IN THE RR REVERSES POLARITY OF
007640,000648: 10,2550 77750 MASK BIT12 # THE SHAFT COMMANDS IN MODE 2 SO THAT A
007641,000649: 10,2551 10000 CCS A # POSITIVE TORQUE APPLIED TO THE SHAFT
007642,000650: 10,2552 12555 TCF +3 # GYRO CAUSES A POSITIVE CHANGE IN THE
007643,000651:
007644,000652: 10,2553 40423 CS TANG +1 # SHAFT ANGLE. COMPENSATE FOR THIS SWITCH
007645,000653: 10,2554 54423 TS TANG +1 # BY CHANGING THE POLARITY OF OUR COMMAND.
007646,000654:
007647,000655: 10,2555 37767 CAF ZERO
007648,000656: 10,2556 54145 TS MPAC +1
007649,000657: 10,2557 37763 CAF ONE
007650,000658:
007651,000659: 10,2560 54144 RRSCALUP TS MPAC
007652,000660: 10,2561 50000 INDEX A
007653,000661: 10,2562 30422 CA TANG # TRUNNION COMPONENT OF ROTATION.
007654,000662: 10,2563 00006 EXTEND
007655,000663: 10,2564 72636 MP RDESGAIN # SCALING ON INPUT ANGLE WAS 4 RADIANS.
007656,000664: 10,2565 50144 INDEX MPAC
007657,000665: 10,2566 56422 XCH TANG # MAKE EACH COMPONENT LESS THAN .7 DEGREES
007658,000666: 10,2567 04323 TC MAGSUB # BEFORE SENDING TRACK ENABLE.
007659,000667: 10,2570 77715 DEC -.00305
007660,000668: 10,2571 24145 INCR MPAC +1 # IF OUT OF BOUNDS.
007661,000669:
007662,000670: 10,2572 10144 CCS MPAC
007663,000671: 10,2573 12560 TCF RRSCALUP
007664,000672:
![]() |
Page 186 |
007666,000674: # SEE IF TRACKER SHOULD BE ENABLED OR DISABLED.
007667,000675:
007668,000676: 10,2574 00004 INHINT
007669,000677:
007670,000678: 10,2575 10412 CCS RADMODES # IF CONTINUOUS DESIGNATE WANTED, PUT OUT
007671,000679: 10,2576 12601 TCF +3 # COMMANDS WITHOUT CHECKING MAGNITUDE OF
007672,000680: 10,2577 12601 TCF +2 # ERROR SIGNALS.
007673,000681: 10,2600 12626 TCF TRKOFF
007674,000682:
007675,000683: 10,2601 10145 CCS MPAC +1 # SEE IF BOTH AXES WERE WITHIN .7 DEGS.
007676,000684: 10,2602 12626 TCF TRKOFF
007677,000685:
007678,000686: 10,2603 40074 CS STATE # IF WITHIN LIMITS AND NO LOCK-ON WANTED,
007679,000687: 10,2604 77757 MASK LOKONFLG # PROBLEM IS FINISHED.
007680,000688: 10,2605 10000 CCS A
007681,000689: 10,2606 12617 TCF RRDESDUN
007682,000690:
007683,000691: 10,2607 37746 CAF BIT14 # ENABLE THE TRACKER.
007684,000692: 10,2610 00006 EXTEND
007685,000693: 10,2611 05012 WOR 12
007686,000694:
007687,000695: 10,2612 37760 CAF BIT4 # SEE IF DATA GOOD RECEIVED YET.
007688,000696: 10,2613 00006 EXTEND
007689,000697: 10,2614 02033 RAND 33
007690,000698: 10,2615 10000 CCS A
007691,000699: 10,2616 12631 TCF DORROUT
007692,000700:
007693,000701: 10,2617 47752 RRDESDUN CS BIT10 # WHEN PROBLEM DONE, REMOVE BIT 10 SO NEXT
007694,000702: 10,2620 70412 MASK RADMODES # WAITLIST TASK WE WILL GO TO RGOODEND.
007695,000703: 10,2621 54412 TS RADMODES
007696,000704:
007697,000705: 10,2622 47762 CS BIT2
007698,000706: 10,2623 00006 EXTEND
007699,000707: 10,2624 03012 WAND 12
007700,000708: 10,2625 15567 TCF ENDOFJOB # WITH ECTR DISABLED.
007701,000709:
007702,000710: 10,2626 47746 TRKOFF CS BIT14
007703,000711: 10,2627 00006 EXTEND
007704,000712: 10,2630 03012 WAND 12
007705,000713:
007706,000714: 10,2631 40412 DORROUT CS RADMODES # PUT OUT COMMAND UNLESS MONITOR
007707,000715: 10,2632 77751 MASK BIT11 # REPOSITION HAS TAKEN OVER.
007708,000716: 10,2633 10000 CCS A
007709,000717: 10,2634 02213 TC RROUT
007710,000718:
007711,000719: 10,2635 15567 TCF ENDOFJOB
007712,000720:
007713,000721: 10,2636 21122 RDESGAIN DEC .53624 # TRIES TO NULL .5 ERROR IN .5 SEC.
007714,000722:
![]() |
Page 187 |
007716,000724: # RADAR READ INITIALIZATION
007717,000725:
007718,000726: # RADAR DATA ARE READ BY A BANKCALL FOR THE APPROPRIATE LEAD-IN BELOW.
007719,000727:
007720,000728: 10,2637 02653 LRALT TC INITREAD -1 # ONE SAMPLE PER READING.
007721,000729: 10,2640 00017 ALLREAD OCT 17
007722,000730:
007723,000731: 10,2641 02654 LRVELZ TC INITREAD
007724,000732: 10,2642 00016 OCT 16
007725,000733:
007726,000734: 10,2643 02654 LRVELY TC INITREAD
007727,000735: 10,2644 00015 OCT 15
007728,000736:
007729,000737: 10,2645 02654 LRVELX TC INITREAD
007730,000738: 10,2646 00014 OCT 14
007731,000739:
007732,000740: 10,2647 02653 RRRDOT TC INITREAD -1
007733,000741: 10,2650 00012 OCT 12
007734,000742:
007735,000743: 10,2651 02653 RRRANGE TC INITREAD -1
007736,000744: 10,2652 00011 OCT 11
007737,000745:
![]() |
Page 188 |
007739,000747: 10,2653 37763 -1 CAF ONE # ENTRY TO TAKE ONLY 1 SAMPLE.
007740,000748: 10,2654 00004 INITREAD INHINT
007741,000749:
007742,000750: 10,2655 54420 TS TIMEHOLD # GET DT OF MIDPOINT OF NOMINAL SAMPLING
007743,000751: 10,2656 00006 EXTEND # INTERVAL (ASSUMES NO BAD SAMPLES WILL BE
007744,000752: 10,2657 77761 MP BIT3 # ENCOUNTERED).
007745,000753: 10,2660 52421 DXCH TIMEHOLD
007746,000754:
007747,000755: 10,2661 10000 CCS A
007748,000756: 10,2662 54424 TS NSAMP
007749,000757: 10,2663 67763 AD ONE
007750,000758: # INSERT FOLLOWING INSTRUCTION TO GET 2N TRIES FOR N SAMPLES.
007751,000759: # DOUBLE
007752,000760: 10,2664 54413 TS SAMPLIM
007753,000761:
007754,000762: 10,2665 32707 CAF DGBITS # READ CURRENT VALUE OF DATA GOOD BITS.
007755,000763: 10,2666 00006 EXTEND
007756,000764: 10,2667 02033 RAND 33
007757,000765: 10,2670 54426 TS OLDATAGD
007758,000766:
007759,000767: 10,2671 42640 CS ALLREAD
007760,000768: 10,2672 00006 EXTEND
007761,000769: 10,2673 03013 WAND 13 # REMOVE ALL RADAR BITS
007762,000770:
007763,000771: 10,2674 50002 INDEX Q
007764,000772: 10,2675 30000 CAF 0
007765,000773: 10,2676 00006 EXTEND
007766,000774: 10,2677 05013 WOR 13 # SET NEW RADAR BITS
007767,000775:
007768,000776: 10,2700 00006 EXTEND
007769,000777: 10,2701 30025 DCA TIME2
007770,000778: 10,2702 20421 DAS TIMEHOLD # TIME OF NOMINAL MIDPOINT.
007771,000779:
007772,000780: 10,2703 37767 CAF ZERO
007773,000781: 10,2704 54001 TS L
007774,000782: 10,2705 52415 DXCH SAMPLSUM
007775,000783: 10,2706 12303 TCF ROADBACK
007776,000784:
007777,000785: 10,2707 00230 DGBITS OCT 230
007778,000786:
![]() |
Page 189 |
007780,000788: # RADAR RUPT READER
007781,000789:
007782,000790: # THIS ROUTINE STARTS FROM A RADARUPT. IT READS THE DATA & LOTS MORE.
007783,000791:
007784,000792: 10,2710 54016 RADAREAD TS BANKRUPT
007785,000793: 10,2711 00006 EXTEND
007786,000794: 10,2712 22012 QXCH QRUPT
007787,000795:
007788,000796: 10,2713 00006 ANGLREAD EXTEND
007789,000797: 10,2714 30036 DCA OPTY
007790,000798: 10,2715 52417 DXCH OPTYHOLD # SAVE RAW CDU ANGLES
007791,000799:
007792,000800: 10,2716 10413 TRYCOUNT CCS SAMPLIM
007793,000801: 10,2717 12731 TCF PLENTY
007794,000802: 10,2720 12724 TCF NOMORE
007795,000803: 10,2721 04755 TC ALARM
007796,000804: 10,2722 00520 OCT 520
007797,000805: 10,2723 05733 TC RESUME
007798,000806:
007799,000807: 10,2724 04755 NOMORE TC ALARM
007800,000808: 10,2725 00521 OCT 521
007801,000809: 10,2726 47763 BADRAD CS ONE
007802,000810: 10,2727 54413 TS SAMPLIM
007803,000811: 10,2730 03254 TC RDBADEND -2
007804,000812:
007805,000813: 10,2731 54413 PLENTY TS SAMPLIM
007806,000814: 10,2732 37761 CAF BIT3
007807,000815: 10,2733 00006 EXTEND
007808,000816: 10,2734 02013 RAND 13 # TO FIND OUT WHICH RADAR
007809,000817: 10,2735 00006 EXTEND
007810,000818: 10,2736 13015 BZF RENDRAD
007811,000819:
007812,000820: 10,2737 30412 LRPOSCHK CA RADMODES # SEE IF LR IN DESIRED POSITION.
007813,000821: 10,2740 00006 EXTEND
007814,000822: 10,2741 06033 RXOR 33
007815,000823: 10,2742 77756 MASK BIT6
007816,000824: 10,2743 00006 EXTEND
007817,000825: 10,2744 12750 BZF VELCHK
007818,000826:
007819,000827: 10,2745 04755 TC ALARM
007820,000828: 10,2746 00522 OCT 522
007821,000829: 10,2747 02726 TC BADRAD
007822,000830:
007823,000831: 10,2750 36311 VELCHK CAF BIN3 # = 00003 OCT
007824,000832: 10,2751 00006 EXTEND
007825,000833: 10,2752 06013 RXOR 13
007826,000834: 10,2753 76311 MASK BIN3
007827,000835: 10,2754 00006 EXTEND
007828,000836: 10,2755 13011 BZF LRHEIGHT # TAKE A LR RANGE READING
007829,000837:
![]() |
Page 190 |
007831,000839: 10,2756 37743 CAF POSMAX
007832,000840: 10,2757 70046 MASK RNRAD
007833,000841: 10,2760 63157 AD LVELBIAS
007834,000842: 10,2761 54001 TS L
007835,000843: 10,2762 30046 CAE RNRAD
007836,000844: 10,2763 60000 DOUBLE
007837,000845: 10,2764 77763 MASK BIT1
007838,000846: 10,2765 52064 DXCH ITEMP3
007839,000847:
007840,000848: 10,2766 37754 CAF BIT8 # DATA GOOD ISNT CHECKED UNTIL AFTER READ-
007841,000849: 10,2767 03127 TC DGCHECK # ING DATA SO SOME RADAR TESTS WILL WORK
007842,000850: # INDEPENDENT OF DATA GOOD.
007843,000851:
007844,000852: 10,2770 10424 CCS NSAMP
007845,000853: 10,2771 03001 TC NOEND
007846,000854: 10,2772 47763 GOODRAD CS ONE
007847,000855: 10,2773 54413 TS SAMPLIM
007848,000856: 10,2774 40061 CS ITEMP1 # WHEN ENOUGH GOOD DATA HAS BEEN GATHERED,
007849,000857: 10,2775 70412 MASK RADMODES # RESET DATA FAIL FLAGS FOR SETTRKF.
007850,000858: 10,2776 54412 TS RADMODES
007851,000859: 10,2777 04377 TC SETTRKF # LAMP MIGHT GO OFF IF DATA JUST GOOD.
007852,000860: 10,3000 03247 TC RGOODEND -2
007853,000861:
007854,000862: 10,3001 54424 NOEND TS NSAMP
007855,000863: 10,3002 10413 RESAMPLE CCS SAMPLIM # SEE IF ANY MORE TRIES SHOULD BE MADE.
007856,000864: 10,3003 13005 TCF +2
007857,000865: 10,3004 13146 TCF DATAFAIL # N SAMPLES NOT AVAILABLE.
007858,000866: 10,3005 37760 CAF BIT4 # RESET ACTIVITY BIT.
007859,000867: 10,3006 00006 EXTEND
007860,000868: 10,3007 05013 WOR 13 # RESET ACTIVITY BIT
007861,000869: 10,3010 05733 TC RESUME
007862,000870:
007863,000871:
007864,000872: 10,3011 37757 LRHEIGHT CAF BIT5
007865,000873: 10,3012 54061 TS ITEMP1 # (POSITION OF DATA GOOD BIT IN CHAN 33)
007866,000874:
007867,000875: 10,3013 37753 CAF BIT9
007868,000876: 10,3014 03037 TC SCALECHK -1
007869,000877:
007870,000878: 10,3015 37751 RENDRAD CAF BIT11 # MAKE SURE ANTENNA HAS NOT GONE OUT OF
007871,000879: 10,3016 70412 MASK RADMODES # LIMITS.
007872,000880: 10,3017 10000 CCS A
007873,000881: 10,3020 12726 TCF BADRAD
007874,000882:
007875,000883: 10,3021 40412 CS RADMODES # BE SURE RR CDU HASNT FAILED.
007876,000884: 10,3022 77755 MASK BIT7
007877,000885: 10,3023 10000 CCS A
007878,000886: 10,3024 12726 TCF BADRAD
007879,000887:
![]() |
Page 191 |
007881,000889: 10,3025 37760 CAF BIT4 # SEE IF DATA HAS BEEN GOOD.
007882,000890: 10,3026 54061 TS ITEMP1 # (POSITION OF DATA GOOD BIT IN CHAN 33)
007883,000891:
007884,000892: 10,3027 37763 CAF BIT1 # SEE IF RR RDOT.
007885,000893: 10,3030 00006 EXTEND
007886,000894: 10,3031 02013 RAND 13
007887,000895: 10,3032 54002 TS Q # FOR LATER TESTING.
007888,000896: 10,3033 10000 CCS A
007889,000897: 10,3034 13036 TCF +2
007890,000898: 10,3035 13050 TCF RADIN # NO SCALE CHECK FOR RR RDOT.
007891,000899: 10,3036 37761 CAF BIT3
007892,000900: 10,3037 54001 TS L
007893,000901:
007894,000902: 10,3040 00006 SCALECHK EXTEND
007895,000903: 10,3041 02033 RAND 33 # SCALE STATUS NOW
007896,000904: 10,3042 56001 XCH L
007897,000905: 10,3043 70412 MASK RADMODES # SCALE STATUS BEFORE
007898,000906: 10,3044 00006 EXTEND
007899,000907: 10,3045 06001 RXOR 01 # SEE IF THEY DIFFER
007900,000908: 10,3046 10000 CCS A
007901,000909: 10,3047 03067 TC SCALCHNG # THEY DIFFER
007902,000910:
007903,000911: 10,3050 37743 RADIN CAF POSMAX
007904,000912: 10,3051 70046 MASK RNRAD
007905,000913: 10,3052 54064 TS ITEMP4
007906,000914:
007907,000915: 10,3053 30046 CAE RNRAD
007908,000916: 10,3054 60000 DOUBLE
007909,000917: 10,3055 77763 MASK BIT1
007910,000918: 10,3056 54063 TS ITEMP3
007911,000919:
007912,000920: 10,3057 10002 CCS Q # SEE IF RR RDOT.
007913,000921: 10,3060 13101 TCF SCALADJ # NO, BUT SCALE CHANGING MAY BE NEEDED.
007914,000922:
007915,000923: 10,3061 00006 EXTEND # IF RR RANGE RATE, THROW OUT BIAS.
007916,000924: 10,3062 43161 DCS RDOTBIAS
007917,000925: 10,3063 20064 DASAMPL DAS ITEMP3
007918,000926: 10,3064 30061 DGCHECK2 CA ITEMP1 # SEE THAT DATA HAS BEEN GOOD BEFORE AND
007919,000927: 10,3065 03130 TC DGCHECK +1 # AFTER TAKING SAMPLE.
007920,000928: 10,3066 02772 TC GOODRAD
007921,000929:
007922,000930: 10,3067 22412 SCALCHNG LXCH RADMODES
007923,000931: 10,3070 67763 AD BIT1
007924,000932: 10,3071 00006 EXTEND
007925,000933: 10,3072 06001 RXOR 01
007926,000934: 10,3073 54412 TS RADMODES
007927,000935: 10,3074 32707 CAF DGBITS # UPDATE LAST VALUE OF DATA GOOD BITS.
007928,000936: 10,3075 00006 EXTEND
007929,000937: 10,3076 02033 RAND 33
007930,000938: 10,3077 54426 TS OLDATAGD
![]() |
Page 192 |
007932,000940: 10,3100 12726 TCF BADRAD
007933,000941:
![]() |
Page 193 |
007935,000943: # THE FOLLOWING ROUTINE INCORPORATES RR RANGE AND LR ALT SCALE INFORMATION AND LEAVES DATA AT LO SCALE.
007936,000944:
007937,000945: 10,3101 10001 SCALADJ CCS L # L HAS SCALE INBIT FOR THIS RADAR.
007938,000946: 10,3102 13104 TCF +2 # ON HIGH SCALE.
007939,000947: 10,3103 13064 TCF DGCHECK2
007940,000948:
007941,000949: 10,3104 52064 DXCH ITEMP3
007942,000950: 10,3105 20001 DDOUBL
007943,000951: 10,3106 20001 DDOUBL
007944,000952: 10,3107 20001 DDOUBL
007945,000953: 10,3110 52064 DXCH ITEMP3
007946,000954:
007947,000955: 10,3111 37761 CAF BIT3 # SEE IF LR OR RR.
007948,000956: 10,3112 00006 EXTEND
007949,000957: 10,3113 02013 RAND 13
007950,000958: 10,3114 00006 EXTEND # IF RR, NO MORE ACTION REQUIRED.
007951,000959: 10,3115 13064 BZF DGCHECK2
007952,000960:
007953,000961: 10,3116 33156 CAF LRRATIO # IF LR, CONVERT TO LO SCALING.
007954,000962: 10,3117 00006 EXTEND
007955,000963: 10,3120 70064 MP ITEMP4
007956,000964: 10,3121 54064 TS ITEMP4
007957,000965: 10,3122 37767 CAF ZERO # (SO SUBSEQUENT DAS WILL BE OK)
007958,000966: 10,3123 56063 XCH ITEMP3
007959,000967: 10,3124 00006 EXTEND
007960,000968: 10,3125 73156 MP LRRATIO
007961,000969: 10,3126 13063 TCF DASAMPL
007962,000970:
![]() |
Page 194 |
007964,000972: 10,3127 54061 DGCHECK TS ITEMP1 # UPDATE DATA GOOD BIT IN OLDATAGD AND
007965,000973: 10,3130 00006 EXTEND # MAKE SURE IT WAS ON BEFORE AND AFTER THE
007966,000974: 10,3131 02033 RAND 33 # SAMPLE WAS TAKEN BEFORE RETURNING. IF
007967,000975: 10,3132 54001 TS L # NOT, GOES TO RESAMPLE TO TRY AGAIN. IF
007968,000976: 10,3133 40061 CS ITEMP1 # MAX NUMBER OF TRIES HAS BEEN REACHED,
007969,000977: 10,3134 70426 MASK OLDATAGD # THE BIT CORRESPONDING TO THE DATA GOOD
007970,000978: 10,3135 60001 AD L # WHICH FAILED TO APPEAR IS IN ITEMP1 AND
007971,000979: 10,3136 56426 XCH OLDATAGD # CAN BE USED TO SET RADMODES WHICH VIA
007972,000980: 10,3137 70061 MASK ITEMP1 # SETTRKF SETS THE TRACKER FAIL LAMP.
007973,000981: 10,3140 60001 AD L
007974,000982: 10,3141 10000 CCS A # SHOULD BOTH BE ZERO.
007975,000983: 10,3142 03002 TC RESAMPLE
007976,000984: 10,3143 52064 DXCH ITEMP3 # IF DATA GOOD BEFORE AND AFTER, ADD TO
007977,000985: 10,3144 20415 DAS SAMPLSUM # ACCUMULATION.
007978,000986: 10,3145 00002 TC Q
007979,000987:
007980,000988: 10,3146 40061 DATAFAIL CS ITEMP1 # IN THE ABOVE CASE, SET RADMODES BIT
007981,000989: 10,3147 70412 MASK RADMODES # SHOWING SOME RADAR DATA FAILED.
007982,000990: 10,3150 60061 AD ITEMP1
007983,000991: 10,3151 54412 TS RADMODES
007984,000992:
007985,000993: 10,3152 52064 DXCH ITEMP3 # IF WE HAVE BEEN UNABLE TO GATHER N
007986,000994: 10,3153 52415 DXCH SAMPLSUM # SAMPLES, USE LAST ONE ONLY.
007987,000995:
007988,000996: 10,3154 04377 TC SETTRKF
007989,000997:
007990,000998: 10,3155 12724 TCF NOMORE
007991,000999:
007992,001000: 10,3156 23773 LRRATIO DEC 4.9977 B-3
007993,001001: 10,3157 47777 LVELBIAS DEC -12288 B-14 # LANDING RADAR BIAS FOR 153.6 KC.
007994,001002: 10,3160 00001 01150 RDOTBIAS 2DEC 17000 B-28 # BIAS COUNT FOR RR RANGE RATE
007995,001003:
![]() |
Page 195 |
007997,001005: # THIS ROUTINE CHANGES THE LR POSITION, AND CHECKS THAT IT GOT THERE.
007998,001006:
007999,001007: 10,3162 00004 LRPOS2 INHINT
008000,001008:
008001,001009: 10,3163 47756 CS BIT6 # DESIRED LR POSITION IS NOW 2.
008002,001010: 10,3164 70412 MASK RADMODES
008003,001011: 10,3165 67756 AD BIT6
008004,001012: 10,3166 54412 TS RADMODES
008005,001013:
008006,001014: 10,3167 37755 CAF BIT7
008007,001015: 10,3170 00006 EXTEND
008008,001016: 10,3171 02033 RAND 33 # SEE IF ALREADY THERE.
008009,001017: 10,3172 00006 EXTEND
008010,001018: 10,3173 13224 BZF RADNOOP
008011,001019:
008012,001020: 10,3174 37747 CAF BIT13
008013,001021: 10,3175 00006 EXTEND
008014,001022: 10,3176 05012 WOR 12 # COMMAND TO POSITION 2
008015,001023:
008016,001024: 10,3177 33241 CAF 6SECS # START SCANNING FOR INBIT AFTER 7 SECS.
008017,001025: 10,3200 05663 TC WAITLIST
008018,001026: 10,3201 E3,1464 EBANK= RRRET
008019,001027: 10,3201 03237 20063 2CADR LRPOSCAN
008020,001028:
008021,001029: 10,3203 02303 TC ROADBACK
008022,001030:
008023,001031: 10,3204 54413 LRPOSNXT TS SAMPLIM
008024,001032: 10,3205 05701 TC FIXDELAY # SCAN ONCE PER SECOND 15 TIMES MAX AFTER
008025,001033: 10,3206 00144 DEC 100 B-14 # INITIAL DELAY OF 7 SECONDS.
008026,001034:
008027,001035: 10,3207 37755 CAF BIT7
008028,001036: 10,3210 00006 EXTEND
008029,001037: 10,3211 02033 RAND 33
008030,001038: 10,3212 00006 EXTEND
008031,001039: 10,3213 13231 BZF LASTLRDT # IF THERE, WAIT FINAL SECOND FOR BOUNCE.
008032,001040:
008033,001041: 10,3214 10413 CCS SAMPLIM # SEE IF MAX TIME UP.
008034,001042: 10,3215 13204 TCF LRPOSNXT
008035,001043:
008036,001044: 10,3216 47747 CS BIT13 # IF TIME UP, DISABLE COMMAND AND ALARM.
008037,001045: 10,3217 00006 EXTEND
008038,001046: 10,3220 03012 WAND 12
008039,001047:
008040,001048: 10,3221 04755 TC ALARM # LR ANTENNA DIDNT MAKE IT.
008041,001049: 10,3222 00523 OCT 523
008042,001050: 10,3223 13256 TCF RDBADEND
008043,001051:
008044,001052: 10,3224 37763 RADNOOP CAF ONE # NO FURTHER ACTION REQUESTED.
008045,001053: 10,3225 05663 TC WAITLIST
008046,001054: 10,3226 E3,1464 EBANK= RRRET
![]() |
Page 196 |
008048,001056: 10,3226 03251 20063 2CADR RGOODEND
008049,001057:
008050,001058: 10,3230 02303 TC ROADBACK
008051,001059:
008052,001060: 10,3231 05701 LASTLRDT TC FIXDELAY # WAIT ONE SECOND AFTER RECEIPT OF INBIT
008053,001061: 10,3232 00144 DEC 100 B-14 # TO WAIT FOR ANTENNA BOUNCE TO DIE OUT.
008054,001062:
008055,001063: 10,3233 47747 CS BIT13 # REMOVE COMMAND
008056,001064: 10,3234 00006 EXTEND
008057,001065: 10,3235 03012 WAND 12
008058,001066: 10,3236 13251 TCF RGOODEND
008059,001067:
008060,001068: 10,3237 37757 LRPOSCAN CAF BIT5 # SET UP FOR 15 SAMPLES.
008061,001069: 10,3240 13204 TCF LRPOSNXT
008062,001070:
008063,001071: 10,3241 01130 6SECS DEC 600 B-14
008064,001072:
![]() |
Page 197 |
008066,001074: # SEQUENCES TO TERMINATE RR OPERATIONS.
008067,001075:
008068,001076: 10,3242 37755 ENDRADAR CAF BIT7 # PROLOG TO CHECK RR CDU FAIL BEFORE END.
008069,001077: 10,3243 70412 MASK RADMODES
008070,001078: 10,3244 10000 CCS A
008071,001079: 10,3245 13251 TCF RGOODEND
008072,001080: 10,3246 13256 TCF RDBADEND
008073,001081: 10,3247 47767 -2 CS ZERO # RGOODEND WHEN NOT UNDER WAITLIST CONTROL
008074,001082: 10,3250 55076 TS RUPTAGN
008075,001083:
008076,001084: 10,3251 37762 RGOODEND CAF TWO
008077,001085: 10,3252 05225 TC POSTJUMP
008078,001086: 10,3253 26720 CADR GOODEND
008079,001087:
008080,001088: 10,3254 47767 -2 CS ZERO # RDBADEND WHEN NOT UNDER WAITLIST.
008081,001089: 10,3255 55076 TS RUPTAGN
008082,001090: 10,3256 37762 RDBADEND CAF TWO
008083,001091: 10,3257 05225 TC POSTJUMP
008084,001092: 10,3260 26715 CADR BADEND
008085,001093:
008086,001094: 10,3261 6311 BIN3 EQUALS THREE
008087,001095:
008088,001096:
End of include-file RADAR_LEADIN_ROUTINES.agc. Parent file is MAIN.agc