Source Code
![]() |
These source-code files are part of a reconstructed copy of Aurora 88, the
final release of the Lunar Module (LM) Apollo Guidance Computer (AGC) system
test software.
They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-011, 2003972-091, and 2003972-111, belonging to Steve Jurvetson. Since only binary dumps (rather than listings) of Aurora 88 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
015368,000002: ## Copyright: Public domain. 015369,000003: ## Filename: INFLIGHT_ALIGNMENT_ROUTINES.agc 015370,000004: ## Purpose: A section of Aurora 88. 015371,000005: ## It is part of the reconstructed source code for the final 015372,000006: ## release of the Lunar Module system test software. No original 015373,000007: ## listings of this program are available; instead, this file 015374,000008: ## was created via disassembly of dumps of Aurora 88 core rope 015375,000009: ## modules and comparison with other AGC programs. 015376,000010: ## Assembler: yaYUL 015377,000011: ## Contact: Ron Burkey <info@sandroid.org>. 015378,000012: ## Website: www.ibiblio.org/apollo/index.html 015379,000013: ## Mod history: 2023-06-30 MAS Created from Aurora 12. 015380,000014: ## 2023-07-12 MAS Updated for Aurora 88. 015381,000015: 015382,000016: 015383,000017: 15,2367 SETLOC ENDDNTMS 015384,000018: 15,2367 E5,1400 EBANK= XSM 015385,000019: 015386,000020: 015387,000021: 015388,000022: # CALCGTA COMPUTES THE GYRO TORQUE ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION. 015389,000023: 015390,000024: # THE INPUT IS THE DESIRED STABLE MEMBER COORDINATES REFERRED TO PRESENT STABLE MEMBER COORDINATES. THE THREE 015391,000025: # HALF-UNIT VECTORS ARE STORED AT XDC, YDC, AND ZDC. 015392,000026: 015393,000027: # THE OUTPUTS ARE THE THREE GYRO TORQUING ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC, 015394,000028: # MGC, AND OGC RESPECTIVELY. ANGLES ARE SCALED PROPERLY FOR IMUPULSE. 015395,000029: 015396,000030: 015397,000031: 015398,000032: 15,2367 71230 CALCGTA ITA DLOAD # PUSHDOWN 00,02,16D,18D,22D-26D,32D-36D 015399,000033: 15,2370 00051 S2 # XDC = (XD1 XD2 XD3) 015400,000034: 15,2371 01423 XDC # YDC = (YD1 YD2 YD3) 015401,000035: 15,2372 65325 PDDL PDDL # ZDC = (ZD1 ZD2 ZD3) 015402,000036: 15,2373 33160 ZERODP 015403,000037: 15,2374 01427 XDC +4 015404,000038: 15,2375 55476 DCOMP VDEF 015405,000039: 15,2376 77656 UNIT 015406,000040: 15,2377 06027 STODL ZPRIME # ZP = UNIT(-XD3 O XD1) = (ZP1 ZP2 ZP3) 015407,000041: 15,2400 00027 ZPRIME 015408,000042: 015409,000043: 15,2401 77742 SR1 015410,000044: 15,2402 06023 STODL SINTH # SIN(IGC) = ZP1 015411,000045: 15,2403 00033 ZPRIME +4 015412,000046: 15,2404 77742 SR1 015413,000047: 15,2405 36021 STCALL COSTH # COS(IGC) = ZP3 015414,000048: 15,2406 32440 ARCTRIG 015415,000049: 015416,000050: 15,2407 07503 STODL IGC # Y GYRO TORQUING ANGLE FRACTION OF REV. 015417,000051: 15,2410 01425 XDC +2 015418,000052: 15,2411 77742 SR1 015419,000053: 15,2412 06023 STODL SINTH # SIN(MGC) = XD2 015420,000054: 15,2413 00027 ZPRIME 015421,000055: 015422,000056: 15,2414 65205 DMP PDDL 015423,000057: 15,2415 01427 XDC +4 # PD00 = (ZP1)(XD3) 015424,000058: 15,2416 00033 ZPRIME +4 015425,000059: 015426,000060: 15,2417 45205 DMP DSU 015427,000061: 15,2420 01423 XDC # MPAC = (ZP3)(XD1) 015428,000062: 15,2421 77626 STADR 015429,000063: 15,2422 41756 STCALL COSTH # COS(MGC) = MPAC - PD00 015430,000064: 15,2423 32440 ARCTRIG 015431,000065: 015432,000066: 15,2424 23505 STOVL MGC # Z GYRO TORQUING ANGLE FRACTION OF REV. 015433,000067: 15,2425 00027 ZPRIME 015434,000068: 15,2426 77641 DOT 015435,000069: 15,2427 01437 ZDC 015436,000070: 15,2430 22021 STOVL COSTH # COS(OGC) = ZP . ZDC 015437,000071: 15,2431 00027 ZPRIME 015438,000072: 15,2432 77641 DOT 015439,000073: 15,2433 01431 YDC 015440,000074: 15,2434 36023 STCALL SINTH # SIN(OGC) = ZP . YDC 015441,000075: 15,2435 32440 ARCTRIG 015442,000076: 015443,000077: 15,2436 37501 STCALL OGC # X GYRO TORQUING ANGLE FRACTION OF REV. 015444,000078: 15,2437 00051 S2 015445,000079: 015446,000080: # ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE. 015447,000081: 015448,000082: # THE INPUTS ARE SIN/4 AND COS/4 STORED DP AT SINTH AND COSTH. 015449,000083: 015450,000084: # THE OUTPUT IS THE CALCULATED ANGLE BETWEEN +.5 AND -.5 REVOLUTIONS AND STORED AT THETA. THE OUTPUT IS ALSO 015451,000085: # AVAILABLE AT MPAC. 015452,000086: 015453,000087: 015454,000088: 015455,000089: 15,2440 51545 ARCTRIG DLOAD ABS # PUSHDOWN 16D,18D,20D,22D-26D 015456,000090: 15,2441 00023 SINTH 015457,000091: 15,2442 50025 DSU BMN 015458,000092: 15,2443 33146 QTSN45 # ABS(SIN/4) - SIN(45)/4 015459,000093: 15,2444 32453 TRIG1 # IF (-45,45) OR (135,-135) 015460,000094: 015461,000095: 015462,000096: 015463,000097: 15,2445 72545 DLOAD SL1 # (45,135) OR (-135,-45) 015464,000098: 15,2446 00021 COSTH 015465,000099: 15,2447 75326 ACOS SIGN 015466,000100: 15,2450 00023 SINTH 015467,000101: 15,2451 00025 STORE THETA # X = ARCCOS(COS) WITH SIGN(SIN) 015468,000102: 15,2452 77616 RVQ 015469,000103: 015470,000104: 015471,000105: 015472,000106: 15,2453 72545 TRIG1 DLOAD SL1 # (-45,45) OR (135,-135) 015473,000107: 15,2454 00023 SINTH 015474,000108: 15,2455 77736 ASIN 015475,000109: 15,2456 06025 STODL THETA # X = ARCSIN(SIN) WITH SIGN(SIN) 015476,000110: 15,2457 00021 COSTH 015477,000111: 15,2460 77640 BMN 015478,000112: 15,2461 32464 TRIG2 # IF (135,-135) 015479,000113: 015480,000114: 15,2462 43545 DLOAD RVQ 015481,000115: 15,2463 00025 THETA # X = ARCSIN(SIN) (-45,45) 015482,000116: 015483,000117: 015484,000118: 015485,000119: 15,2464 75345 TRIG2 DLOAD SIGN # (135,-135) 015486,000120: 15,2465 33150 HALFDP 015487,000121: 15,2466 00023 SINTH 015488,000122: 15,2467 77625 DSU 015489,000123: 15,2470 00025 THETA 015490,000124: 15,2471 00025 STORE THETA # X = .5 WITH SIGN(SIN) - ARCSIN(SIN) 015491,000125: 15,2472 77616 RVQ # (+) - (+) OR (-) - (-) 015492,000126: 015493,000127: # SMNB TRANSFORMS A STAR DIRECTION FROM STABLE MEMBER TO NAVIGATION BASE COORDINATES. 015494,000128: 015495,000129: # THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO PRESENT STABLE MEMBER COORDINATES STORED AT LOCATION 32D OF THE 015496,000130: # VAC AREA. 2) THE GIMBAL ANGLES (CDUY,CDUZ,CDUX) STORED AT ALTERNATING LOCATIONS RESPECTIVELY. THE ANGLES ARE 015497,000131: # USUALLY STORED AT LOCATIONS 2,4, AND 6 OF THE MARK VAC AREA. THEY CAN BE STORED AT LOCATIONS 20,22, AND 24 OF 015498,000132: # YOUR JOB VAC AREA. 3) THE BASE ADDRESS OF THE GIMBAL ANGLES STORED SP AT LOCATION S1 OF yOUR JOB VAC AREA. 015499,000133: 015500,000134: # THE OUTPUT IS THE STAR VECTOR REFERRED TO NAVIGATION BASE COORDINATES STORED AT 32D OF THE VAC AREA. THE OUTPUT 015501,000135: # IS ALSO AVAILABLE AT MPAC. 015502,000136: 015503,000137: 015504,000138: 015505,000139: 15,2473 43030 SMNB ITA CLEAR # PUSHDOWN 00,02,04-10D,30D,32D-36D 015506,000140: 15,2474 00051 S2 015507,000141: 15,2475 00264 NBSMBIT # SET NBSMBIT = 0 015508,000142: 015509,000143: 15,2476 77170 SMNB1 AXT,1 AXT,2 # ROTATE X,Z, ABOUT Y 015510,000144: 15,2477 00004 4 015511,000145: 15,2500 00000 0 015512,000146: 15,2501 77634 CALL 015513,000147: 15,2502 32543 AXISROT 015514,000148: 015515,000149: 15,2503 77170 AXT,1 AXT,2 # ROTATE Y,X ABOUT Z 015516,000150: 15,2504 00002 2 015517,000151: 15,2505 00004 4 015518,000152: 15,2506 77634 CALL 015519,000153: 15,2507 32543 AXISROT 015520,000154: 015521,000155: 15,2510 77170 AXT,1 AXT,2 # ROTATE Z,Y ABOUT X 015522,000156: 15,2511 00000 0 015523,000157: 15,2512 00002 2 015524,000158: 15,2513 77634 CALL 015525,000159: 15,2514 32543 AXISROT 015526,000160: 015527,000161: 15,2515 77650 GOTO 015528,000162: 15,2516 00051 S2 015529,000163: 015530,000164: # NBSM TRANSFORMS A STAR DIRECTION FROM NAVIGATION BASE TO STABLE MEMBER COORDINATES. 015531,000165: 015532,000166: # THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO NAVIGATION BASE COORDINATES STORED AT LOCATION 32D OF THE VAC 015533,000167: # AREA. 2) THE GIMBAL ANGLES (CDUY,CDUZ,CDUX) STORED AT ALTERNATING LOCATIONS RESPECTIVELY. THE ANGLES ARE 015534,000168: # USUALLY STORED AT LOCATIONS 2,4, AND 6 OF THE MARK VAC AREA. THEY CAN BE STORED AT LOCATIONS 20,22, AND 24 OF 015535,000169: # YOUR JOB VAC AREA. 3) THE BASE ADDRESS OF THE GIMBAL ANGLES STORED SP AT LOCATION S1 OF YOUR JOB VAC AREA. 015536,000170: 015537,000171: # THE OUTPUT IS THE STAR VECTOR REFERRED TO PRESENT STABLE MEMBER COORDINATES STORED AT LOCATION 32D OF THE VAC 015538,000172: # AREA. THE OUTPUT IS ALSO AVAILABLE AT MPAC. 015539,000173: 015540,000174: 015541,000175: 15,2517 43030 NBSM ITA SET # PUSHDOWN 00,02,04-10D,30D,32D-36D 015542,000176: 15,2520 00051 S2 015543,000177: 15,2521 00064 NBSMBIT # SET NBSMBIT = 1 015544,000178: 015545,000179: 15,2522 77170 NBSM2 AXT,1 AXT,2 # ROTATE Z,Y ABOUT X 015546,000180: 15,2523 00000 0 015547,000181: 15,2524 00002 2 015548,000182: 15,2525 77634 CALL 015549,000183: 15,2526 32543 AXISROT 015550,000184: 015551,000185: 15,2527 77170 AXT,1 AXT,2 # ROTATE Y,X ABOUT Z 015552,000186: 15,2530 00002 2 015553,000187: 15,2531 00004 4 015554,000188: 15,2532 77634 CALL 015555,000189: 15,2533 32543 AXISROT 015556,000190: 015557,000191: 15,2534 77170 AXT,1 AXT,2 # ROTATE X,Z, ABOUT Y 015558,000192: 15,2535 00004 4 015559,000193: 15,2536 00000 0 015560,000194: 15,2537 77634 CALL 015561,000195: 15,2540 32543 AXISROT 015562,000196: 015563,000197: 15,2541 77650 GOTO 015564,000198: 15,2542 00051 S2 015565,000199: 015566,000200: # AXISROT IS UTILIZED BY THE SMNB AND NBSM ROUTINES. SEE REMARKS ON THESE ROUTINES FOR INPUTS AND OUTPUTS. 015567,000201: 015568,000202: 015569,000203: 015570,000204: 15,2543 66660 AXISROT XSU,1 SLOAD* 015571,000205: 15,2544 00050 S1 # SMNB . NBSM 015572,000206: 15,2545 00005 4,1 # IG MG OG . OG MG IG 015573,000207: 15,2546 56024 RTB XAD,1 015574,000208: 15,2547 33463 CDULOGIC 015575,000209: 15,2550 00050 S1 015576,000210: 15,2551 00037 STORE 30D 015577,000211: 015578,000212: 15,2552 77746 ACCUROT COS 015579,000213: 15,2553 10011 STODL 8D,1 # COS(ANGLE) 015580,000214: 15,2554 00037 30D 015581,000215: 15,2555 77756 SIN 015582,000216: 15,2556 02013 STORE 10D,1 # SIN(ANGLE) 015583,000217: 015584,000218: 15,2557 72403 DMP* SL1 015585,000219: 15,2560 77732 32D +4,2 015586,000220: 15,2561 40723 PDDL* DMP* # PD0 015587,000221: 15,2562 00011 8D,1 # S3SIN S1SIN S2SIN . S2SIN S1SIN S3SIN 015588,000222: 15,2563 77732 32D +4,2 015589,000223: 015590,000224: 15,2564 64752 SL1 PDDL* # PD2 015591,000225: 15,2565 00013 10D,1 # S3COS S1COS S2COS . S2COS S1COS S3COS 015592,000226: 015593,000227: 15,2566 72403 DMP* SL1 # MPAC 015594,000228: 15,2567 00045 32D +4,1 # S1SIN S2SIN S3SIN . S3SIN S2SIN S1SIN 015595,000229: 015596,000230: 15,2570 77614 BOFF 015597,000231: 15,2571 00344 NBSMBIT 015598,000232: 15,2572 32604 AXISROT1 015599,000233: 015600,000234: 15,2573 45421 BDSU STADR # . PD2 - MPAC 015601,000235: 15,2574 57732 STODL* 32D +4,2 # . S2 S1 S3 015602,000236: 15,2575 00011 8D,1 015603,000237: 015604,000238: 15,2576 72403 DMP* SL1 # . MPAC 015605,000239: 15,2577 00045 32D +4,1 # . S3COS S2COS S1COS 015606,000240: 015607,000241: 15,2600 45415 DAD STADR # . PD0 + MPAC 015608,000242: 15,2601 53732 STOVL 32D +4,1 # . S3 S2 S1 015609,000243: 15,2602 00041 32D 015610,000244: 15,2603 77616 RVQ 015611,000245: 015612,000246: 15,2604 45415 AXISROT1 DAD STADR # MPAC + PD2 . 015613,000247: 15,2605 57732 STODL* 32D +4,2 # S3 S1 S2 . 015614,000248: 15,2606 00011 8D,1 015615,000249: 15,2607 72403 DMP* SL1 # MPAC . 015616,000250: 15,2610 00045 32D +4,1 # S1COS S2COS S3COS . 015617,000251: 015618,000252: 15,2611 45425 DSU STADR # MPAC - PD0 . 015619,000253: 15,2612 53732 STOVL 32D +4,1 # S1 S2 S3 . 015620,000254: 15,2613 00041 32D 015621,000255: 15,2614 77616 RVQ 015622,000256: 015623,000257: # CALCGA COMPUTES THE CDU DRIVING ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION. 015624,000258: 015625,000259: # THE INPUTS ARE 1) THE NAVIGATION BASE COORDINATES REFERRED TO ANY COORDINATE SYSTEM. THE THREE HALF-UNIT 015626,000260: # VECTORS ARE STORED AT XNB, YNB, AND ZNB. 2) THE DESIRED STABLE MEMBER COORDINATES REFERRED TO THE SAME 015627,000261: # COORDINATE SYSTEM ARE STORED AT XSM, YSM, AND ZSM. 015628,000262: 015629,000263: # THE OUTPUTS ARE THE THREE CDU DRIVING ANGLES AND ARE STORED SP AT THETAD, THETAD +1, AND THETAD +2. 015630,000264: 015631,000265: 15,2615 47375 CALCGA VLOAD VXV # PUSHDOWN 00-04,16D,18D 015632,000266: 15,2616 01423 XNB # XNB = OGA (OUTER GIMBAL AXIS) 015633,000267: 15,2617 01407 YSM # YSM = IGA (INNER GIMBAL AXIS) 015634,000268: 15,2620 41456 UNIT PUSH # PD0 = UNIT(OGA X IGA) = MGA 015635,000269: 015636,000270: 15,2621 46041 DOT ITA 015637,000271: 15,2622 01437 ZNB 015638,000272: 15,2623 00051 S2 015639,000273: 15,2624 22021 STOVL COSTH # COS(OG) = MGA . ZNB 015640,000274: 15,2625 00001 0 015641,000275: 15,2626 77641 DOT 015642,000276: 15,2627 01431 YNB 015643,000277: 15,2630 36023 STCALL SINTH # SIN(OG) = MGA . YNB 015644,000278: 15,2631 32440 ARCTRIG 015645,000279: 15,2632 23501 STOVL OGC 015646,000280: 15,2633 00001 0 015647,000281: 015648,000282: 15,2634 50235 VXV DOT # PROVISION FOR MG ANGLE OF 90 DEGREES 015649,000283: 15,2635 01423 XNB 015650,000284: 15,2636 01407 YSM 015651,000285: 15,2637 77752 SL1 015652,000286: 15,2640 22021 STOVL COSTH # COS(MG) = IGA . (MGA X OGA) 015653,000287: 15,2641 01407 YSM 015654,000288: 15,2642 77641 DOT 015655,000289: 15,2643 01423 XNB 015656,000290: 15,2644 36023 STCALL SINTH # SIN(MG) = IGA . OGA 015657,000291: 15,2645 32440 ARCTRIG 015658,000292: 15,2646 01505 STORE MGC 015659,000293: 015660,000294: 15,2647 45246 ABS DSU 015661,000295: 15,2650 33166 .166... 015662,000296: 15,2651 77644 BPL 015663,000297: 15,2652 32671 GIMLOCK1 # IF ANGLE GREATER THAN 60 DEGREES 015664,000298: 015665,000299: 15,2653 50375 CALCGA1 VLOAD DOT 015666,000300: 15,2654 01415 ZSM 015667,000301: 15,2655 00001 0 015668,000302: 15,2656 22021 STOVL COSTH # COS(IG) = ZSM . MGA 015669,000303: 15,2657 01401 XSM 015670,000304: 15,2660 45441 DOT STADR 015671,000305: 15,2661 41754 STCALL SINTH # SIN(IG) = XSM . MGA 015672,000306: 15,2662 32440 ARCTRIG 015673,000307: 015674,000308: 15,2663 23503 STOVL IGC 015675,000309: 15,2664 01501 OGC 015676,000310: 15,2665 77624 RTB 015677,000311: 15,2666 33532 V1STO2S 015678,000312: 15,2667 36401 STCALL THETAD 015679,000313: 15,2670 00051 S2 015680,000314: 015681,000315: 15,2671 77776 GIMLOCK1 EXIT 015682,000316: 15,2672 05315 TC ALARM 015683,000317: 15,2673 00401 OCT 00401 015684,000318: 15,2674 06000 TC INTPRET 015685,000319: 15,2675 77650 GOTO 015686,000320: 15,2676 32653 CALCGA1 015687,000321: 015688,000322: # AXISGEN COMPUTES THE COORDINATES OF ONE COORDINATE SYSTEM REFERRED TO ANOTHER COORDINATE SYSTEM. 015689,000323: 015690,000324: # THE INPUTS ARE 1) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM A STORED AT STARAD. 2) THE STAR2 VECTOR 015691,000325: # REFERRED TO COORDINATE SYSTEM A STORED AT STARAD +6. 3) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM B STORED 015692,000326: # AT LOCATION 6 OF THE VAC AREA. 4) THE STAR2 VECTOR REFERRED TO COORDINATE SYSTEM B STORED AT LOCATION 12D OF 015693,000327: # THE VAC AREA. 015694,000328: 015695,000329: # THE OUTPUT DEFINES COORDINATE SYSTEM A REFERRED TO COORDINATE SYSTEM B. THE THREE HALF-UNIT VECTORS ARE STORED 015696,000330: # AT LOCATIONS XDC, XDC +6, XDC +12D, AND STARAD, STARAD +6, STARAD +12D. 015697,000331: 015698,000332: 15,2677 66370 AXISGEN AXT,1 SSP # PUSHDOWN 00-22D,24D-28D,30D 015699,000333: 15,2700 01452 STARAD +6 015700,000334: 15,2701 00051 S1 015701,000335: 15,2702 01436 STARAD -6 015702,000336: 015703,000337: 15,2703 46773 AXISGEN1 VLOAD* VXV* # 06D UA = S1 015704,000338: 15,2704 01461 STARAD +12D,1 # STARAD +00D UB = S1 015705,000339: 15,2705 01467 STARAD +18D,1 015706,000340: 15,2706 77656 UNIT # 12D VA = UNIT(S1 X S2) 015707,000341: 15,2707 33467 STOVL* STARAD +18D,1 # STARAD +06D VB = UNIT(S1 X S2) 015708,000342: 15,2710 01461 STARAD +12D,1 015709,000343: 015710,000344: 15,2711 76433 VXV* VSL1 015711,000345: 15,2712 01467 STARAD +18D,1 # 18D WA = UA X VA 015712,000346: 15,2713 03475 STORE STARAD +24D,1 # STARAD +12D WB = UB X VB 015713,000347: 015714,000348: 15,2714 77700 TIX,1 015715,000349: 15,2715 32703 AXISGEN1 015716,000350: 015717,000351: 15,2716 66160 AXC,1 SXA,1 015718,000352: 15,2717 00006 6 015719,000353: 15,2720 00036 30D 015720,000354: 015721,000355: 15,2721 66370 AXT,1 SSP 015722,000356: 15,2722 00022 18D 015723,000357: 15,2723 00051 S1 015724,000358: 15,2724 00006 6 015725,000359: 015726,000360: 15,2725 66374 AXT,2 SSP 015727,000361: 15,2726 00006 6 015728,000362: 15,2727 00052 S2 015729,000363: 15,2730 00002 2 015730,000364: 015731,000365: 15,2731 76720 AXISGEN2 XCHX,1 VLOAD* 015732,000366: 15,2732 00036 30D # X1=-6 X2=+6 X1=-6 X2=+4 X1=-6 X2=+2 015733,000367: 15,2733 00001 0,1 015734,000368: 15,2734 62757 VXSC* PDVL* # J=(UA)(UB1) J=(UA)(UB2) J=(UA)(UB3) 015735,000369: 15,2735 76324 STARAD +6,2 015736,000370: 15,2736 00007 6,1 015737,000371: 15,2737 77757 VXSC* 015738,000372: 15,2740 76316 STARAD +12D,2 015739,000373: 15,2741 30031 STOVL* 24D # K=(VA)(VB1) J=(VA)(VB2) J=(VA)(VB3) 015740,000374: 15,2742 00015 12D,1 015741,000375: 015742,000376: 15,2743 53357 VXSC* VAD 015743,000377: 15,2744 76310 STARAD +18D,2 # L=(WA)(WB1) J=(WA)(WB2) J=(WA)(WB3) 015744,000378: 15,2745 76455 VAD VSL1 015745,000379: 15,2746 00031 24D 015746,000380: 15,2747 77720 XCHX,1 015747,000381: 15,2750 00036 30D 015748,000382: 15,2751 03445 STORE XDC +18D,1 # XDC = L+J+K YDC = L+J+K ZDC = L+J+K 015749,000383: 015750,000384: 15,2752 77700 TIX,1 015751,000385: 15,2753 32754 AXISGEN3 015752,000386: 015753,000387: 15,2754 77704 AXISGEN3 TIX,2 015754,000388: 15,2755 32731 AXISGEN2 015755,000389: 015756,000390: 15,2756 77775 VLOAD 015757,000391: 15,2757 01423 XDC 015758,000392: 15,2760 23445 STOVL STARAD 015759,000393: 15,2761 01431 YDC 015760,000394: 15,2762 23453 STOVL STARAD +6 015761,000395: 15,2763 01437 ZDC 015762,000396: 15,2764 01461 STORE STARAD +12D 015763,000397: 015764,000398: 15,2765 77616 RVQ 015765,000399: 015766,000400: 015767,000401: # CALCOTA COMPUTES THE TRACKER AZIMUTH AND ELEVATION ANGLES REQUIRED TO POSITION THE LOTS SUCH THAT A STAR LINE- 015768,000402: # OF-SIGHT LIES ALONG THE STAR VECTOR. THE ROUTINE TAKES THE GIVEN STAR VECTOR AND EXPRESSES IT AS A VECTOR REF- 015769,000403: # ERENCED TO THE LOTS COORDINATE SYSTEM. IN ADDITION IT SETS UP THREE UNIT VECTORS DEFINING THE X, Y, AND Z AXES 015770,000404: # REFERENCED TO THE LOTS COORDINATE SYSTEM. 015771,000405: 015772,000406: # THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO PRESENT STABLE MEMBER COORDINATES STORED AT STAR. 2) SAME ANGLE 015773,000407: # INPUT AS *SMNB*, I.E. SINES AND COSINES OF THE CDU ANGLES, IN THE ORDER Y Z X, AT SINCDU AND COSCDU. A CALL 015774,000408: # TO CDUTRIG WILL PROVIDE THIS INPUT. 015775,000409: 015776,000410: # THE OUTPUTS ARE THE TRACKER AZIMUTH AND ELEVATION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY. (LOW ORDER PART 015777,000411: # EQUAL TO ZERO). 015778,000412: 015779,000413: 15,2766 46175 CALCOTA VLOAD ITA # PUSHDOWN 00-26D,28D,30D,32D-36D 015780,000414: 15,2767 01467 STAR 015781,000415: 15,2770 00036 30D 015782,000416: 15,2771 36041 STCALL 32D 015783,000417: 15,2772 32473 SMNB 015784,000418: 15,2773 06007 STODL 6 # STORE (STARM0,STARM1,STARM2) 015785,000419: 15,2774 33160 ZERODP 015786,000420: 15,2775 00146 STORE MPAC +5 # SET MPAC TO (STARM0,STARM1,0) 015787,000421: 15,2776 77624 RTB 015788,000422: 15,2777 33522 VECMODE 015789,000423: 15,3000 40056 UNIT BOV 015790,000424: 15,3001 33076 ZNB=S1 015791,000425: 15,3002 06001 STODL 0 # STORE COS/4 =S0/4 , SIN/4 = S1/4 ,0 015792,000426: 15,3003 00001 0 015793,000427: 15,3004 06021 STODL COSTH 015794,000428: 15,3005 00003 2 015795,000429: 15,3006 36023 STCALL SINTH 015796,000430: 15,3007 32440 ARCTRIG # USES THE COS/SIN STORED ABOVE 015797,000431: 15,3010 77624 RTB 015798,000432: 15,3011 33526 1STO2S 015799,000433: 15,3012 23475 STOVL SAC 015800,000434: 15,3013 00001 0 015801,000435: 15,3014 72441 DOT SL1 015802,000436: 15,3015 00007 6 015803,000437: 15,3016 50136 ASIN BMN 015804,000438: 15,3017 33026 CALCOTA1 # ELEVATION ANGLE NEGATIVE 015805,000439: 15,3020 40112 SL2 BOV 015806,000440: 15,3021 33026 CALCOTA1 # ELEVATION ANGLE GREATER THAN 90 DEGREES 015807,000441: 15,3022 45102 SR2 RTB 015808,000442: 15,3023 33526 1STO2S 015809,000443: 15,3024 37477 STCALL PAC 015810,000444: 15,3025 00036 30D 015811,000445: 015812,000446: 15,3026 77776 CALCOTA1 EXIT # PROGRAM ERROR,STAR OUT OF FIELD OF VIEW 015813,000447: 15,3027 05315 TC ALARM 015814,000448: 15,3030 00402 OCT 00402 015815,000449: 15,3031 04353 TC ENDOFJOB 015816,000450: 015817,000451: 015818,000452: # LOTANG COMPUTES THE TRACKER AZIMUTH AND ELEVATION ANGLES REQUIRED TO POSITION THE LOTS SUCH THAT A STAR LINE-OF- 015819,000453: # SIGHT LIES ALONG THE STAR VECTOR. 015820,000454: 015821,000455: # THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO ANY COORDINATE SYSTEM STORED AT STAR. 2) THE NAVIGATION BASE 015822,000456: # COORDINATES REFERRED TO THE SAME COORDINATE SYSTEM. THESE THREE HALF-UNIT VECTORS ARE STORED AT XNB, YNB, AND 015823,000457: # ZNB. 015824,000458: 015825,000459: # THE OUTPUTS ARE THE TRACKER AZIMUTH AND ELEVATION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY. (LOW ORDER PART 015826,000460: # EQUAL TO ZERO). 015827,000461: 015828,000462: 015829,000463: 15,3032 47375 LOTANG VLOAD VXV 015830,000464: 15,3033 01437 ZNB 015831,000465: 15,3034 01467 STAR 015832,000466: 15,3035 77630 ITA 015833,000467: 15,3036 00036 30D 015834,000468: 15,3037 40056 UNIT BOV 015835,000469: 15,3040 33076 ZNB=S1 015836,000470: 15,3041 00027 STORE PDA # PDA = UNIT(ZNB X S) 015837,000471: 015838,000472: 15,3042 57441 DOT DCOMP 015839,000473: 15,3043 01423 XNB 015840,000474: 15,3044 22023 STOVL SINTH # SIN(SA) = PDA . -XNB 015841,000475: 15,3045 00027 PDA 015842,000476: 015843,000477: 15,3046 77641 DOT 015844,000478: 15,3047 01431 YNB 015845,000479: 15,3050 36021 STCALL COSTH # COS(SA) = PDA . YNB 015846,000480: 15,3051 32440 ARCTRIG 015847,000481: 15,3052 77624 RTB 015848,000482: 15,3053 33526 1STO2S 015849,000483: 15,3054 23475 STOVL SAC 015850,000484: 15,3055 00027 22D 015851,000485: 15,3056 50235 VXV DOT 015852,000486: 15,3057 01437 ZNB 015853,000487: 15,3060 01467 STAR 015854,000488: 15,3061 67512 SL2 ASIN 015855,000489: 15,3062 62440 BMN SL2 015856,000490: 15,3063 33072 LOTALARM # ELEVATION ANGLE NEGATIVE 015857,000491: 15,3064 60400 BOV SR2 015858,000492: 15,3065 33072 LOTALARM # ELEVATION ANGLE GREATER THAN 90 DEGREES 015859,000493: 15,3066 77624 RTB 015860,000494: 15,3067 33526 1STO2S 015861,000495: 15,3070 37477 STCALL PAC 015862,000496: 15,3071 00036 30D 015863,000497: 015864,000498: 15,3072 77776 LOTALARM EXIT # PROGRAM ERROR,STAR OUT OF FIELD OF VIEW 015865,000499: 15,3073 05315 TC ALARM 015866,000500: 15,3074 00403 OCT 00403 015867,000501: 15,3075 04353 TC ENDOFJOB 015868,000502: 15,3076 77745 ZNB=S1 DLOAD 015869,000503: 15,3077 33144 270DEG 015870,000504: 15,3100 07475 STODL SAC 015871,000505: 15,3101 33160 ZERODP 015872,000506: 15,3102 37477 STCALL PAC 015873,000507: 15,3103 00036 30D 015874,000508: 015875,000509: # TRANSPSE COMPUTES THE TRANSPOSE OF A MATRIX (TRANSPOSE = INVERSE OF ORTHOGONAL TRANSFORMATION). 015876,000510: 015877,000511: # THE INPUT IS A MATRIX DEFINING COORDINATE SYSTEM A WITH RESPECT TO COORDINATE SYSTEM B STORED IN STARAD THRU 015878,000512: # STARAD +17D. 015879,000513: 015880,000514: # THE OUTPUT IS A MATRIX DEFINING COORDINATE SYSTEM B WITH RESPECT TO COORDINATE SYSTEM A STORED IN STARAD THRU 015881,000515: # STARAD +17D. 015882,000516: 015883,000517: 15,3104 53447 TRANSPSE DXCH STARAD +2 # PUSHDOWN NONE 015884,000518: 15,3105 53453 DXCH STARAD +6 015885,000519: 15,3106 53447 DXCH STARAD +2 015886,000520: 015887,000521: 15,3107 53451 DXCH STARAD +4 015888,000522: 15,3110 53461 DXCH STARAD +12D 015889,000523: 15,3111 53451 DXCH STARAD +4 015890,000524: 015891,000525: 15,3112 53457 DXCH STARAD +10D 015892,000526: 15,3113 53463 DXCH STARAD +14D 015893,000527: 15,3114 53457 DXCH STARAD +10D 015894,000528: 15,3115 16014 TCF DANZIG 015895,000529: 015896,000530: 015897,000531: 015898,000532: # SMD/EREF TRANSFORMS STABLE MEMBER DESIRED COORDINATES FROM STABLE MEMBER DESIRED (DESIRED = PRESENT HERE) TO 015899,000533: # EARTH REFERENCE COORDINATES TO ALIGN THE STABLE MEMBER TO SPECIFIED GIMBAL ANGLES. 015900,000534: 015901,000535: # THE INPUTS ARE 1) THE MATRIX DEFINING THE EARTH REFERENCE COORDINATE FRAME WITH RESPECT TO THE NAVIGATION BASE 015902,000536: # COORDINATE FRAME. 2) SAME AS 2) AND 3) OF SMNB. 015903,000537: 015904,000538: # THE OUTPUT IS THE DESIRED STABLE MEMBER COORDINATES WITH RESPECT TO THE EARTH REFERENCE COORDINATE FRAME. THE 015905,000539: # THREE UNIT VECTORS ARE STORED AT XSM, YSM, AND ZSM. 015906,000540: 015907,000541: 15,3116 77230 SMD/EREF ITA VLOAD # PUSHDOWN 00,02,04-10D,30D,32D-36D 015908,000542: 15,3117 00014 12D 015909,000543: 15,3120 33156 XUNIT 015910,000544: 15,3121 36041 STCALL 32D 015911,000545: 15,3122 32473 SMNB # STABLE MEMBER TO NAVIGATION BASE 015912,000546: 15,3123 76521 MXV VSL1 015913,000547: 15,3124 01445 STARAD # THEN TO EARTH REFERENCE 015914,000548: 15,3125 23401 STOVL XSM 015915,000549: 15,3126 33154 YUNIT 015916,000550: 015917,000551: 15,3127 36041 STCALL 32D 015918,000552: 15,3130 32473 SMNB # STABLE MEMBER TO NAVIGATION BASE 015919,000553: 15,3131 76521 MXV VSL1 015920,000554: 15,3132 01445 STARAD # THEN TO EARTH REFERENCE 015921,000555: 15,3133 23407 STOVL YSM 015922,000556: 15,3134 33152 ZUNIT 015923,000557: 015924,000558: 15,3135 36041 STCALL 32D 015925,000559: 15,3136 32473 SMNB # STABLE MEMBER TO NAVIGATION BASE 015926,000560: 15,3137 76521 MXV VSL1 015927,000561: 15,3140 01445 STARAD # THEN TO EARTH REFERENCE 015928,000562: 15,3141 37415 STCALL ZSM 015929,000563: 15,3142 00014 12D 015930,000564: 015931,000565: 15,3143 67777 77777 270DEG 2DEC -.25 015932,000566: 015933,000567: 15,3145 05520 26075 QTSN45 2DEC .1768 015934,000568: 015935,000569: 15,3147 20000 00000 HALFDP 2DEC .5 015936,000570: 015937,000571: 15,3151 00000 00000 ZUNIT 2DEC 0 B-28 015938,000572: 015939,000573: 15,3153 00000 00000 YUNIT 2DEC 0 B-28 015940,000574: 015941,000575: 15,3155 20000 00000 XUNIT 2DEC 0.5 015942,000576: 015943,000577: 15,3157 00000 00000 ZERODP 2DEC 0 B-28 015944,000578: 015945,000579: 15,3161 00000 00000 2DEC 0 B-28 015946,000580: 015947,000581: 15,3163 00000 00000 2DEC 0 B-28 015948,000582: 015949,000583: 15,3165 05252 25253 .166... 2DEC .1666666667 015950,000584: 015951,000585: 015952,000586: # AOTNB CONVERTS THE TWO RETICLE ROTATION ANGLES (YROT AND SROT) AND 015953,000587: # THE DETENT SETTING TO A HALF UNIT STAR VECTOR REFERRED TO THE 015954,000588: # NAVIGATION BASE. 015955,000589: 015956,000590: # THE INPUTS ARE 015957,000591: 015958,000592: # Y RET. LINE RATATION S(YROT) STORED IN LOC 3 OF THE MARK VAC AREA 015959,000593: # SPIRAL ROTATION ANGLE S(SROT) STORED IN LOC 5 OF MARC VAC AREA 015960,000594: # ANGLE OF CENTER OF FIELD OF VIEW S(ELV) STORED IN LOC 9 OF MARK VAC 015961,000595: # AOT ASZIMUTH ANGLE S(DET) STORED IN LOC 8 OF MARK VAC AREA 015962,000596: # THE COMPLEMENT OF BASE ADDRESS OF MARK VAC IS STORED AT X1 015963,000597: # COMPENSATION FOR FIELD OF VIEW TILT IN LOC 10D 015964,000598: # THE ABOVE STORAGE IS DONE BY AOTMARK 015965,000599: 015966,000600: # THE OUTPUT IS A HALF UNIT STAR VECTOR IN NB COORDINATES STORED 015967,000601: # AT 32D AND AVAILABLE IN VAC ON RETURN TO THE CALLING PROGRAM 015968,000602: 015969,000603: 15,3167 70533 AOTNB SLOAD* SR1 # RESCALE TILT TO 2PI 015970,000604: 15,3170 00013 10D,1 # AOT FOV TILT COMPENSATION ANGLE 015971,000605: 15,3171 52006 PUSH GOTO 015972,000606: 15,3172 33711 AOTNB1 015973,000607: 15,3173 00017 STORE 14D # STORE UNCOMPENSATED YROT FOR S COMP 015974,000608: 15,3174 41415 DAD PUSH # YROT NOW CORRECTED FOR TILT 015975,000609: 15,3175 65346 COS PDDL # 1/2 COS(YROT) PD 0-1 015976,000610: 15,3176 41556 SIN PUSH # 1/2 SIN(YROT) PD 2-3 015977,000611: 15,3177 45133 SLOAD* RTB 015978,000612: 15,3200 00006 5,1 015979,000613: 15,3201 33463 CDULOGIC 015980,000614: 15,3202 00021 STORE 16D # STORE S IF S AND Y ARE ZERO, S=0 015981,000615: 15,3203 52054 BZE GOTO # S NOT ZERO 015982,000616: 15,3204 33206 SISZ # S=0 015983,000617: 15,3205 33216 SCOMP 015984,000618: 15,3206 53145 SISZ DLOAD BZE # IS Y ZERO 015985,000619: 15,3207 00017 14D 015986,000620: 15,3210 33213 YISZ # Y=0 015987,000621: 15,3211 77650 GOTO 015988,000622: 15,3212 33216 SCOMP 015989,000623: 15,3213 52145 YISZ DLOAD GOTO 015990,000624: 15,3214 33160 ZERODP 015991,000625: 15,3215 33223 SGOT 015992,000626: 15,3216 45345 SCOMP DLOAD DSU 015993,000627: 15,3217 00017 14D 015994,000628: 15,3220 00021 16D # Y=S 015995,000629: 15,3221 77621 BDSU 015996,000630: 15,3222 33310 NEARONE # S=360-(Y-S) 015997,000631: 15,3223 41405 SGOT DMP PUSH 015998,000632: 15,3224 33306 DP1/12 015999,000633: 15,3225 65346 COS PDDL 016000,000634: 15,3226 41556 SIN PUSH 016001,000635: 15,3227 72405 DMP SL1 016002,000636: 15,3230 00001 0 016003,000637: 15,3231 06001 STODL 0 016004,000638: 15,3232 00003 2 016005,000639: 15,3233 45405 DMP STADR 016006,000640: 15,3234 77774 STORE 2 016007,000641: 016008,000642: 15,3235 45133 SLOAD* RTB 016009,000643: 15,3236 00012 9D,1 016010,000644: 15,3237 33463 CDULOGIC 016011,000645: 15,3240 73406 PUSH SIN 016012,000646: 15,3241 71525 PDDL COS 016013,000647: 15,3242 41206 PUSH DMP 016014,000648: 15,3243 00001 0 016015,000649: 15,3244 41325 PDDL DMP 016016,000650: 15,3245 00005 4 016017,000651: 15,3246 00007 6 016018,000652: 15,3247 72415 DAD SL1 016019,000653: 15,3250 77626 STADR 016020,000654: 15,3251 71736 STODL 32D 016021,000655: 016022,000656: 15,3252 77605 DMP 016023,000657: 15,3253 00005 4 016024,000658: 15,3254 06005 STODL 4 016025,000659: 016026,000660: 15,3255 44205 DMP BDSU 016027,000661: 15,3256 00001 0 016028,000662: 15,3257 66606 PUSH SLOAD* 016029,000663: 15,3260 00011 8D,1 016030,000664: 15,3261 41424 RTB PUSH 016031,000665: 15,3262 33463 CDULOGIC 016032,000666: 15,3263 65346 COS PDDL 016033,000667: 15,3264 77756 SIN 016034,000668: 15,3265 00001 STORE 0 016035,000669: 016036,000670: 15,3266 65205 DMP PDDL 016037,000671: 15,3267 00005 4 016038,000672: 15,3270 00007 6 016039,000673: 15,3271 43205 DMP DAD 016040,000674: 15,3272 00003 2 016041,000675: 15,3273 77712 SL2 016042,000676: 15,3274 06043 STODL 34D 016043,000677: 016044,000678: 15,3275 45405 DMP STADR 016045,000679: 15,3276 71732 STODL 36D 016046,000680: 016047,000681: 15,3277 77605 DMP 016048,000682: 15,3300 62421 BDSU SL2 016049,000683: 15,3301 00045 36D 016050,000684: 15,3302 22045 STOVL 36D 016051,000685: 15,3303 00041 32D 016052,000686: 15,3304 77616 RVQ 016053,000687: 15,3305 02525 12525 DP1/12 2DEC .0833333333 016054,000688: 016055,000689: 15,3307 37777 37777 NEARONE 2DEC .999999999 016056,000690: 016057,000691: 016058,000692: # AOTSM CALCULATES A HALF UNIT STAR VECTOR IN STABLE MEMBER COORDINATES 016059,000693: # FROM TWO PLANES CONTAINING THE STAR REFERRED TO NB 016060,000694: 016061,000695: # THE INPUTS ARE 016062,000696: 016063,000697: # AOT AZIMUTH AND ELEVATION STORED IN 8D AND 9D RESP. OF VAC AREA 016064,000698: # CDUY, CDUZ AND CDUX FROM A YMARK STORED AT 3, 5, AND 7 OF VAC AREA 016065,000699: # CDUY, CDUZ AND CDUX FROM A XMARK STORED AT 2, 4, AND 6 OF VAC AREA 016066,000700: # THE BASE ADDRESS OF THE CDUS IS STORED AT LOCATION S1 016067,000701: 016068,000702: # THE OUTPUT IS A STAR VECTOR REFERRED TO STABLE MEMBER AT LOC 32D 016069,000703: # AND AVAILBLE IN MPAC 016070,000704: 016071,000705: 016072,000706: 15,3311 77630 AOTSM ITA 016073,000707: 15,3312 00035 29D 016074,000708: 15,3313 70001 SETPD LXC,1 # PUT BASE ADR OF VAC AREA IN X1 016075,000709: 15,3314 00021 16D 016076,000710: 15,3315 00050 S1 016077,000711: 15,3316 41545 DLOAD PUSH # ZERO 12 - 13 016078,000712: 15,3317 33160 ZERODP 016079,000713: 15,3320 45133 SLOAD* RTB # LOAD AZIMUTH ANGLE (D) 016080,000714: 15,3321 00007 6,1 016081,000715: 15,3322 33463 CDULOGIC 016082,000716: 15,3323 71406 PUSH COS 016083,000717: 15,3324 73525 PDDL SIN # 1/2 COSD 14-15 016084,000718: 15,3325 41476 DCOMP PUSH # -1/2 SIND 16-17 016085,000719: 15,3326 45133 SLOAD* RTB # LOAD ELEVATION ANGLE (E) 016086,000720: 15,3327 00010 7,1 016087,000721: 15,3330 33463 CDULOGIC 016088,000722: 15,3331 71406 PUSH COS 016089,000723: 15,3332 06041 STODL 32D # 1/2COSE 016090,000724: 15,3333 41556 SIN PUSH # 1/2 SINE 18-19 016091,000725: 15,3334 72405 DMP SL1 016092,000726: 15,3335 00025 20D 016093,000727: 15,3336 06043 STODL 34D # -1/2 SINE SIND UP 18-19 016094,000728: 15,3337 57405 DMP DCOMP 016095,000729: 15,3340 00023 18D 016096,000730: 15,3341 77752 SL1 016097,000731: 15,3342 36045 STCALL 36D # -1/2SINE COSD 016098,000732: 15,3343 32517 NBSM # GET X PLANE IN SM 016099,000733: 15,3344 45515 PDVL STADR # X PLANE IN SM IN 12-17 016100,000734: 15,3345 77736 STORE 32D # Y PLANE IN NB 016101,000735: 15,3346 62120 XCHX,1 INCR,1 016102,000736: 15,3347 00050 S1 # ADD ONE TO BASE ADR OF VAC AREA 016103,000737: 15,3350 00001 1 016104,000738: 15,3351 47120 XCHX,1 CALL 016105,000739: 15,3352 00050 S1 # PUT NEW BASE ADR BACK IN S1 016106,000740: 15,3353 32517 NBSM # GET Y PLANE IN SM 016107,000741: 15,3354 76435 VXV VSL1 016108,000742: 15,3355 77676 VCOMP 016109,000743: 15,3356 00041 STORE 32D # STORE STAR VEC REFERRED TO SM 016110,000744: 15,3357 77650 GOTO 016111,000745: 15,3360 00035 29D 016112,000746: 016113,000747: 016114,000748: # GIVEN RR TRUNION AND SHAFT (T,S) IN TANG,+1, FIND THE ASSOCIATED LINE OF SIGNT IN NAV BASE AXES. 016115,000749: # THE HALF UNIT VECTOR, .5( SIN(S)COS(T),-SIN(T),COS(S)COS(T) ) IS LEFT IN MPAC AND 32D. 016116,000750: 016117,000751: 15,3361 45135 RRNB SLOAD RTB 016118,000752: 15,3362 00424 TANG 016119,000753: 15,3363 33463 CDULOGIC 016120,000754: 15,3364 41401 SETPD PUSH # TRUNNION ANGLE TO 0. 016121,000755: 15,3365 00001 0 016122,000756: 15,3366 57556 SIN DCOMP 016123,000757: 15,3367 06043 STODL 34D # Y COMPONENT. 016124,000758: 016125,000759: 15,3370 41546 COS PUSH # .5 COS(T) TO 0. 016126,000760: 15,3371 45135 SLOAD RTB 016127,000761: 15,3372 00425 TANG +1 016128,000762: 15,3373 33463 CDULOGIC 016129,000763: 15,3374 71406 PUSH COS # SHAFT ANGLE TO 2. 016130,000764: 15,3375 72405 DMP SL1 016131,000765: 15,3376 00001 0 016132,000766: 15,3377 06045 STODL 36D # Z COMPONENT 016133,000767: 016134,000768: 15,3400 41356 SIN DMP 016135,000769: 15,3401 77752 SL1 016136,000770: 15,3402 22041 STOVL 32D 016137,000771: 15,3403 00041 32D 016138,000772: 15,3404 77616 RVQ 016139,000773: 016140,000774: 016141,000775: # THE FOLLOWING ROUTINE TAKES A HALF UNIT TARGET VECTOR REFERRED TO NAV BASE COORDINATES AND FINDS BOTH 016142,000776: # GIMBAL ORIENTATIONS AT WHICH THE RR MIGHT SIGHT THE TARGET. THE GIMBAL ANGLES CORRESPONDING TO THE PRESENT MODE 016143,000777: # ARE LEFT IN MODEA AND THOSE WHICH WOULD BE USED AFTER A REMODE IN MODEB. THIS ROUTINE ASSUMES MODE 1 IS TRUNNION 016144,000778: # ANGLE LESS THAN 90 DEGS IN ABS VALUE WITH ARBITRARY SHAFT, WITH A CORRESPONDING DEFINITION FOR MODE 2. MODE 016145,000779: # SELECTION AND LIMIT CHECKING ARE DONE ELSEWHERE. 016146,000780: 016147,000781: # THE MODE 1 CONFIGURATION IS CALCULATED FROM THE VECTOR AND THEN MODE 2 IS FOUND USING THE RELATIONS 016148,000782: 016149,000783: # S(2) = 180 + S(1) 016150,000784: # T(2) = 180 - T(1) 016151,000785: 016152,000786: 15,3405 57545 RRANGLES DLOAD DCOMP # SINCE WE WILL FIND THE MODE 1 SHAFT 016153,000787: 15,3406 00043 34D # ANGLE LATER, WE CAN FIND THE MODE 1 016154,000788: 15,3407 67401 SETPD ASIN # TRUNNION BY SIMPLY TAKING THE ARCSIN OF 016155,000789: 15,3410 00001 0 # THE Y COMPONENT, THE ASIN GIVING AN 016156,000790: 15,3411 44206 PUSH BDSU # ANSWER WHOSE ABS VAL IS LESS THAN 90 DEG 016157,000791: 15,3412 33150 HALFDP 016158,000792: 15,3413 06005 STODL 4 # MODE 2 TRUNNION TO 4. 016159,000793: 016160,000794: 15,3414 33160 ZERODP 016161,000795: 15,3415 22043 STOVL 34D # UNIT THE PROJECTION OF THE VECTOR IN THE 016162,000796: 15,3416 00041 32D # X-Z PLANE. 016163,000797: 15,3417 41056 UNIT BOVB # CALL FOR S/C MANEUVER ON GIMBAL LOCK. 016164,000798: 15,3420 20345 DESRETRN +1 016165,000799: 15,3421 06041 STODL 32D # PROJECTION VECTOR. 016166,000800: 15,3422 00041 32D 016167,000801: 15,3423 46142 SR1 STQ 016168,000802: 15,3424 00051 S2 016169,000803: 15,3425 06023 STODL SINTH # USE ARCTRIG SINCE SHAFT COULD BE ARB. 016170,000804: 15,3426 00045 36D 016171,000805: 15,3427 77742 SR1 016172,000806: 15,3430 36021 STCALL COSTH 016173,000807: 15,3431 32440 ARCTRIG 016174,000808: 15,3432 43206 PUSH DAD # MODE 1 SHAFT TO 2. 016175,000809: 15,3433 33150 HALFDP # (OVERFLOW DOESNT MATTER SINCE SCALED REV 016176,000810: 15,3434 22007 STOVL 6 016177,000811: 15,3435 00005 4 016178,000812: 15,3436 77624 RTB # FIND MODE 2 CDU ANGLES. 016179,000813: 15,3437 33547 2V1STO2S 016180,000814: 15,3440 22426 STOVL MODEB 016181,000815: 15,3441 00001 0 016182,000816: 15,3442 77624 RTB # MODE 1 ANGLES TO MODE A. 016183,000817: 15,3443 33547 2V1STO2S 016184,000818: 15,3444 00424 STORE MODEA 016185,000819: 15,3445 77776 EXIT 016186,000820: 016187,000821: 15,3446 40413 CS RADMODES # SWAP MODEA AND MODEB IF RR IN MODE2. 016188,000822: 15,3447 77637 MASK BIT12 016189,000823: 15,3450 10000 CCS A 016190,000824: 15,3451 13455 TCF +4 016191,000825: 016192,000826: 15,3452 52424 DXCH MODEA 016193,000827: 15,3453 52426 DXCH MODEB 016194,000828: 15,3454 52424 DXCH MODEA 016195,000829: 016196,000830: 15,3455 06000 TC INTPRET 016197,000831: 15,3456 77650 GOTO 016198,000832: 15,3457 00051 S2 016199,000833: 016200,000834: 15,3460 ENDINFSS EQUALS End of include-file INFLIGHT_ALIGNMENT_ROUTINES.agc. Parent file is MAIN.agc