Source Code
These source code files have been transcribed or otherwise adapted from
digitized images of a hardcopy from the private collection of
Don Eyles. The digitization was performed by archive.org, and
transcription was performed by a team of volunteers.
Note that the page images
presented online are of reduced quality, and that the original
high-quality images are available at archive.org.
Report any conversion errors or legibility problems in page images to info@sandroid.org.
Notations on the program listing read, in part:473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP NOV 10, 1966Note that the date is the date of the printout, not the date of the program revision. |
016666,000002: ## Copyright: Public domain.
016667,000003: ## Filename: INFLIGHT_ALIGNMENT_ROUTINES.agc
016668,000004: ## Purpose: Part of the source code for Aurora (revision 12).
016669,000005: ## Assembler: yaYUL
016670,000006: ## Contact: Ron Burkey <info@sandroid.org>.
016671,000007: ## Website: https://www.ibiblio.org/apollo.
016672,000008: ## Pages: 404-424
016673,000009: ## Mod history: 2016-09-20 JL Created.
016674,000010: ## 2016-10-15 MC Completed.
016675,000011: ## 2016-10-16 HG Fix label AXISROT -> AXISROT1 (Duplicate label)
016676,000012: ## Fix operand RADMODE -> RADMODES
016677,000013: ## 2016-10-18 HG Add missing interpretive operand ZPRIME
016678,000014: ## 8D,1
016679,000015: ## Fix opcode STODL -> STCALL
016680,000016: ## 2016-10-23 RSB All of the interpretive operands were
016681,000017: ## mis-aligned. (Possibly the file had once been
016682,000018: ## processed "yaYUL --format" was buggy with
016683,000019: ## respect to interpretive-operand alignment.)
016684,000020: ## 2016-12-08 RSB Proofed comments with octopus/ProoferComments
016685,000021: ## and fixed the errors found.
016686,000022: ## 2021-05-30 ABS Aligned various IAWs to field boundaries.
016687,000023:
016688,000024: ## This source code has been transcribed or otherwise adapted from
016689,000025: ## digitized images of a hardcopy from the private collection of
016690,000026: ## Don Eyles. The digitization was performed by archive.org.
016691,000027:
016692,000028: ## Notations on the hardcopy document read, in part:
016693,000029:
016694,000030: ## 473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP
016695,000031: ## NOV 10, 1966
016696,000032:
016697,000033: ## [Note that this is the date the hardcopy was made, not the
016698,000034: ## date of the program revision or the assembly.]
016699,000035:
016700,000036: ## The scan images (with suitable reduction in storage size and consequent
016701,000037: ## reduction in image quality) are available online at
016702,000038: ## https://www.ibiblio.org/apollo.
016703,000039: ## The original high-quality digital images are available at archive.org:
016704,000040: ## https://archive.org/details/aurora00dapg
016705,000041:
Page 404 |
016707,000043:
016708,000044: 15,2367 SETLOC ENDDNTMS
016709,000045: 15,2367 E5,1400 EBANK= XSM
016710,000046:
016711,000047:
016712,000048:
016713,000049: # CALCGTA COMPUTES THE GYRO TORQUE ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
016714,000050:
016715,000051: # THE INPUT IS THE DESIRED STABLE MEMBER COORDINATES REFERRED TO PRESENT STABLE MEMBER COORDINATES. THE THREE
016716,000052: # HALF-UNIT VECTORS ARE STORED AT XDC, YDC, AND ZDC.
016717,000053:
016718,000054: # THE OUTPUTS ARE THE THREE GYRO TORQUING ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC,
016719,000055: # MGC, AND OGC RESPECTIVELY. ANGLES ARE SCALED PROPERLY FOR IMUPULSE.
016720,000056:
016721,000057:
016722,000058:
016723,000059: 15,2367 71230 CALCGTA ITA DLOAD # PUSHDOWN 00,02,16D,18D,22D-26D,32D-36D
016724,000060: 15,2370 00051 S2 # XDC = (XD1 XD2 XD3)
016725,000061: 15,2371 01423 XDC # YDC = (YD1 YD2 YD3)
016726,000062: 15,2372 65325 PDDL PDDL # ZDC = (ZD1 ZD2 ZD3)
016727,000063: 15,2373 33042 ZERODP
016728,000064: 15,2374 01427 XDC +4
016729,000065: 15,2375 55476 DCOMP VDEF
016730,000066: 15,2376 77656 UNIT
016731,000067: 15,2377 06027 STODL ZPRIME # ZP = UNIT(-XD3 O XD1) = (ZP1 ZP2 ZP3)
016732,000068: 15,2400 00027 ZPRIME
016733,000069:
016734,000070: 15,2401 77742 SR1
016735,000071: 15,2402 06023 STODL SINTH # SIN(IGC) = ZP1
016736,000072: 15,2403 00033 ZPRIME +4
016737,000073: 15,2404 77742 SR1
016738,000074: 15,2405 36021 STCALL COSTH # COS(IGC) = ZP3
016739,000075: 15,2406 32440 ARCTRIG
016740,000076:
016741,000077: 15,2407 07503 STODL IGC # Y GYRO TORQUING ANGLE FRACTION OF REV.
016742,000078: 15,2410 01425 XDC +2
016743,000079: 15,2411 77742 SR1
016744,000080: 15,2412 06023 STODL SINTH # SIN(MGC) = XD2
016745,000081: 15,2413 00027 ZPRIME
016746,000082:
016747,000083: 15,2414 65205 DMP PDDL
016748,000084: 15,2415 01427 XDC +4 # PD00 = (ZP1)(XD3)
016749,000085: 15,2416 00033 ZPRIME +4
016750,000086:
016751,000087: 15,2417 45205 DMP DSU
016752,000088: 15,2420 01423 XDC # MPAC = (ZP3)(XD1)
016753,000089: 15,2421 77626 STADR
016754,000090: 15,2422 41756 STCALL COSTH # COS(MGC) = MPAC - PD00
016755,000091: 15,2423 32440 ARCTRIG
016756,000092:
016757,000093: 15,2424 23505 STOVL MGC # Z GYRO TORQUING ANGLE FRACTION OF REV.
016758,000094: 15,2425 00027 ZPRIME
Page 405 |
016760,000096: 15,2426 77641 DOT
016761,000097: 15,2427 01437 ZDC
016762,000098: 15,2430 22021 STOVL COSTH # COS(OGC) = ZP . ZDC
016763,000099: 15,2431 00027 ZPRIME
016764,000100: 15,2432 77641 DOT
016765,000101: 15,2433 01431 YDC
016766,000102: 15,2434 36023 STCALL SINTH # SIN(OGC) = ZP . YDC
016767,000103: 15,2435 32440 ARCTRIG
016768,000104:
016769,000105: 15,2436 37501 STCALL OGC # X GYRO TORQUING ANGLE FRACTION OF REV.
016770,000106: 15,2437 00051 S2
Page 406 |
016772,000108:
016773,000109: # ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE.
016774,000110:
016775,000111: # THE INPUTS ARE SIN/4 AND COS/4 STORED DP AT SINTH AND COSTH.
016776,000112:
016777,000113: # THE OUTPUT IS THE CALCULATED ANGLE BETWEEN +.5 AND -.5 REVOLUTIONS AND STORED AT THETA. THE OUTPUT IS ALSO
016778,000114: # AVAILABLE AT MPAC.
016779,000115:
016780,000116:
016781,000117:
016782,000118: 15,2440 51545 ARCTRIG DLOAD ABS # PUSHDOWN 16D,18D,20D,22D-26D
016783,000119: 15,2441 00023 SINTH
016784,000120: 15,2442 50025 DSU BMN
016785,000121: 15,2443 33030 QTSN45 # ABS(SIN/4) - SIN(45)/4
016786,000122: 15,2444 32453 TRIG1 # IF (-45,45) OR (135,-135)
016787,000123:
016788,000124:
016789,000125:
016790,000126: 15,2445 72545 DLOAD SL1 # (45,135) OR (-135,-45)
016791,000127: 15,2446 00021 COSTH
016792,000128: 15,2447 75326 ACOS SIGN
016793,000129: 15,2450 00023 SINTH
016794,000130: 15,2451 00025 STORE THETA # X = ARCCOS(COS) WITH SIGN(SIN)
016795,000131: 15,2452 77616 RVQ
016796,000132:
016797,000133:
016798,000134:
016799,000135: 15,2453 72545 TRIG1 DLOAD SL1 # (-45,45) OR (135,-135)
016800,000136: 15,2454 00023 SINTH
016801,000137: 15,2455 77736 ASIN
016802,000138: 15,2456 06025 STODL THETA # X = ARCSIN(SIN) WITH SIGN(SIN)
016803,000139: 15,2457 00021 COSTH
016804,000140: 15,2460 77640 BMN
016805,000141: 15,2461 32464 TRIG2 # IF (135,-135)
016806,000142:
016807,000143: 15,2462 43545 DLOAD RVQ
016808,000144: 15,2463 00025 THETA # X = ARCSIN(SIN) (-45,45)
016809,000145:
016810,000146:
016811,000147:
016812,000148: 15,2464 75345 TRIG2 DLOAD SIGN # (135,-135)
016813,000149: 15,2465 33032 HALFDP
016814,000150: 15,2466 00023 SINTH
016815,000151: 15,2467 77625 DSU
016816,000152: 15,2470 00025 THETA
016817,000153: 15,2471 00025 STORE THETA # X = .5 WITH SIGN(SIN) - ARCSIN(SIN)
016818,000154: 15,2472 77616 RVQ # (+) - (+) OR (-) - (-)
Page 407 |
016820,000156:
016821,000157: # SMNB TRANSFORMS A STAR DIRECTION FROM STABLE MEMBER TO NAVIGATION BASE COORDINATES.
016822,000158:
016823,000159: # THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO PRESENT STABLE MEMBER COORDINATES STORED AT LOCATION 32D OF THE
016824,000160: # VAC AREA. 2) THE GIMBAL ANGLES (CDUY,CDUZ,CDUX) STORED AT ALTERNATING LOCATIONS RESPECTIVELY. THE ANGLES ARE
016825,000161: # USUALLY STORED AT LOCATIONS 2,4, AND 6 OF THE MARK VAC AREA. THEY CAN BE STORED AT LOCATIONS 20,22, AND 24 OF
016826,000162: # YOUR JOB VAC AREA. 3) THE BASE ADDRESS OF THE GIMBAL ANGLES STORED SP AT LOCATION S1 OF yOUR JOB VAC AREA.
016827,000163:
016828,000164: # THE OUTPUT IS THE STAR VECTOR REFERRED TO NAVIGATION BASE COORDINATES STORED AT 32D OF THE VAC AREA. THE OUTPUT
016829,000165: # IS ALSO AVAILABLE AT MPAC.
016830,000166:
016831,000167:
016832,000168:
016833,000169: 15,2473 43030 SMNB ITA CLEAR # PUSHDOWN 00,02,04-10D,30D,32D-36D
016834,000170: 15,2474 00051 S2
016835,000171: 15,2475 00264 NBSMBIT # SET NBSMBIT = 0
016836,000172:
016837,000173: 15,2476 77170 SMNB1 AXT,1 AXT,2 # ROTATE X,Z, ABOUT Y
016838,000174: 15,2477 00004 4
016839,000175: 15,2500 00000 0
016840,000176: 15,2501 77634 CALL
016841,000177: 15,2502 32543 AXISROT
016842,000178:
016843,000179: 15,2503 77170 AXT,1 AXT,2 # ROTATE Y,X ABOUT Z
016844,000180: 15,2504 00002 2
016845,000181: 15,2505 00004 4
016846,000182: 15,2506 77634 CALL
016847,000183: 15,2507 32543 AXISROT
016848,000184:
016849,000185: 15,2510 77170 AXT,1 AXT,2 # ROTATE Z,Y ABOUT X
016850,000186: 15,2511 00000 0
016851,000187: 15,2512 00002 2
016852,000188: 15,2513 77634 CALL
016853,000189: 15,2514 32543 AXISROT
016854,000190:
016855,000191: 15,2515 77650 GOTO
016856,000192: 15,2516 00051 S2
Page 408 |
016858,000194:
016859,000195: # NBSM TRANSFORMS A STAR DIRECTION FROM NAVIGATION BASE TO STABLE MEMBER COORDINATES.
016860,000196:
016861,000197: # THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO NAVIGATION BASE COORDINATES STORED AT LOCATION 32D OF THE VAC
016862,000198: # AREA. 2) THE GIMBAL ANGLES (CDUY,CDUZ,CDUX) STORED AT ALTERNATING LOCATIONS RESPECTIVELY. THE ANGLES ARE
016863,000199: # USUALLY STORED AT LOCATIONS 2,4, AND 6 OF THE MARK VAC AREA. THEY CAN BE STORED AT LOCATIONS 20,22, AND 24 OF
016864,000200: # YOUR JOB VAC AREA. 3) THE BASE ADDRESS OF THE GIMBAL ANGLES STORED SP AT LOCATION S1 OF YOUR JOB VAC AREA.
016865,000201:
016866,000202: # THE OUTPUT IS THE STAR VECTOR REFERRED TO PRESENT STABLE MEMBER COORDINATES STORED AT LOCATION 32D OF THE VAC
016867,000203: # AREA. THE OUTPUT IS ALSO AVAILABLE AT MPAC.
016868,000204:
016869,000205:
016870,000206:
016871,000207: 15,2517 43030 NBSM ITA SET # PUSHDOWN 00,02,04-10D,30D,32D-36D
016872,000208: 15,2520 00051 S2
016873,000209: 15,2521 00064 NBSMBIT # SET NBSMBIT = 1
016874,000210:
016875,000211: 15,2522 77170 NBSM2 AXT,1 AXT,2 # ROTATE Z,Y ABOUT X
016876,000212: 15,2523 00000 0
016877,000213: 15,2524 00002 2
016878,000214: 15,2525 77634 CALL
016879,000215: 15,2526 32543 AXISROT
016880,000216:
016881,000217: 15,2527 77170 AXT,1 AXT,2 # ROTATE Y,X ABOUT Z
016882,000218: 15,2530 00002 2
016883,000219: 15,2531 00004 4
016884,000220: 15,2532 77634 CALL
016885,000221: 15,2533 32543 AXISROT
016886,000222:
016887,000223: 15,2534 77170 AXT,1 AXT,2 # ROTATE X,Z, ABOUT Y
016888,000224: 15,2535 00004 4
016889,000225: 15,2536 00000 0
016890,000226: 15,2537 77634 CALL
016891,000227: 15,2540 32543 AXISROT
016892,000228:
016893,000229: 15,2541 77650 GOTO
016894,000230: 15,2542 00051 S2
Page 409 |
016896,000232:
016897,000233: # AXISROT IS UTILIZED BY THE SMNB AND NBSM ROUTINES. SEE REMARKS ON THESE ROUTINES FOR INPUTS AND OUTPUTS.
016898,000234:
016899,000235:
016900,000236:
016901,000237: 15,2543 66660 AXISROT XSU,1 SLOAD*
016902,000238: 15,2544 00050 S1 # SMNB . NBSM
016903,000239: 15,2545 00005 4,1 # IG MG OG . OG MG IG
016904,000240: 15,2546 56024 RTB XAD,1
016905,000241: 15,2547 33345 CDULOGIC
016906,000242: 15,2550 00050 S1
016907,000243: 15,2551 00037 STORE 30D
016908,000244:
016909,000245: 15,2552 77746 ACCUROT COS
016910,000246: 15,2553 10011 STODL 8D,1 # COS(ANGLE)
016911,000247: 15,2554 00037 30D
016912,000248: 15,2555 77756 SIN
016913,000249: 15,2556 02013 STORE 10D,1 # SIN(ANGLE)
016914,000250:
016915,000251: 15,2557 72403 DMP* SL1
016916,000252: 15,2560 77732 32D +4,2
016917,000253: 15,2561 40723 PDDL* DMP* # PD0
016918,000254: 15,2562 00011 8D,1 # S3SIN S1SIN S2SIN . S2SIN S1SIN S3SIN
016919,000255: 15,2563 77732 32D +4,2
016920,000256:
016921,000257: 15,2564 64752 SL1 PDDL* # PD2
016922,000258: 15,2565 00013 10D,1 # S3COS S1COS S2COS . S2COS S1COS S3COS
016923,000259:
016924,000260: 15,2566 72403 DMP* SL1 # MPAC
016925,000261: 15,2567 00045 32D +4,1 # S1SIN S2SIN S3SIN . S3SIN S2SIN S1SIN
016926,000262:
016927,000263: 15,2570 77614 BOFF
016928,000264: 15,2571 00344 NBSMBIT
016929,000265: 15,2572 32604 AXISROT1
016930,000266:
016931,000267: 15,2573 45421 BDSU STADR # . PD2 - MPAC
016932,000268: 15,2574 57732 STODL* 32D +4,2 # . S2 S1 S3
016933,000269: 15,2575 00011 8D,1
016934,000270:
016935,000271: 15,2576 72403 DMP* SL1 # . MPAC
016936,000272: 15,2577 00045 32D +4,1 # . S3COS S2COS S1COS
016937,000273:
016938,000274: 15,2600 45415 DAD STADR # . PD0 + MPAC
016939,000275: 15,2601 53732 STOVL 32D +4,1 # . S3 S2 S1
016940,000276: 15,2602 00041 32D
016941,000277: 15,2603 77616 RVQ
016942,000278:
016943,000279: 15,2604 45415 AXISROT1 DAD STADR # MPAC + PD2 .
016944,000280: 15,2605 57732 STODL* 32D +4,2 # S3 S1 S2 .
016945,000281: 15,2606 00011 8D,1
Page 410 |
016947,000283: 15,2607 72403 DMP* SL1 # MPAC .
016948,000284: 15,2610 00045 32D +4,1 # S1COS S2COS S3COS .
016949,000285:
016950,000286: 15,2611 45425 DSU STADR # MPAC - PD0 .
016951,000287: 15,2612 53732 STOVL 32D +4,1 # S1 S2 S3 .
016952,000288: 15,2613 00041 32D
016953,000289: 15,2614 77616 RVQ
Page 411 |
016955,000291:
016956,000292: # CALCGA COMPUTES THE CDU DRIVING ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
016957,000293:
016958,000294: # THE INPUTS ARE 1) THE NAVIGATION BASE COORDINATES REFERRED TO ANY COORDINATE SYSTEM. THE THREE HALF-UNIT
016959,000295: # VECTORS ARE STORED AT XNB, YNB, AND ZNB. 2) THE DESIRED STABLE MEMBER COORDINATES REFERRED TO THE SAME
016960,000296: # COORDINATE SYSTEM ARE STORED AT XSM, YSM, AND ZSM.
016961,000297:
016962,000298: # THE OUTPUTS ARE THE THREE CDU DRIVING ANGLES AND ARE STORED SP AT THETAD, THETAD +1, AND THETAD +2.
016963,000299:
016964,000300: 15,2615 47375 CALCGA VLOAD VXV # PUSHDOWN 00-04,16D,18D
016965,000301: 15,2616 01423 XNB # XNB = OGA (OUTER GIMBAL AXIS)
016966,000302: 15,2617 01407 YSM # YSM = IGA (INNER GIMBAL AXIS)
016967,000303: 15,2620 41456 UNIT PUSH # PD0 = UNIT(OGA X IGA) = MGA
016968,000304:
016969,000305: 15,2621 46041 DOT ITA
016970,000306: 15,2622 01437 ZNB
016971,000307: 15,2623 00051 S2
016972,000308: 15,2624 22021 STOVL COSTH # COS(OG) = MGA . ZNB
016973,000309: 15,2625 00001 0
016974,000310: 15,2626 77641 DOT
016975,000311: 15,2627 01431 YNB
016976,000312: 15,2630 36023 STCALL SINTH # SIN(OG) = MGA . YNB
016977,000313: 15,2631 32440 ARCTRIG
016978,000314: 15,2632 23501 STOVL OGC
016979,000315: 15,2633 00001 0
016980,000316:
016981,000317: 15,2634 50235 VXV DOT # PROVISION FOR MG ANGLE OF 90 DEGREES
016982,000318: 15,2635 01423 XNB
016983,000319: 15,2636 01407 YSM
016984,000320: 15,2637 77752 SL1
016985,000321: 15,2640 22021 STOVL COSTH # COS(MG) = IGA . (MGA X OGA)
016986,000322: 15,2641 01407 YSM
016987,000323: 15,2642 77641 DOT
016988,000324: 15,2643 01423 XNB
016989,000325: 15,2644 36023 STCALL SINTH # SIN(MG) = IGA . OGA
016990,000326: 15,2645 32440 ARCTRIG
016991,000327: 15,2646 01505 STORE MGC
016992,000328:
016993,000329: 15,2647 45246 ABS DSU
016994,000330: 15,2650 33050 .166...
016995,000331: 15,2651 77644 BPL
016996,000332: 15,2652 32671 GIMLOCK1 # IF ANGLE GREATER THAN 60 DEGREES
016997,000333:
016998,000334: 15,2653 50375 CALCGA1 VLOAD DOT
016999,000335: 15,2654 01415 ZSM
017000,000336: 15,2655 00001 0
017001,000337: 15,2656 22021 STOVL COSTH # COS(IG) = ZSM . MGA
017002,000338: 15,2657 01401 XSM
Page 412 |
017004,000340: 15,2660 45441 DOT STADR
017005,000341: 15,2661 41754 STCALL SINTH # SIN(IG) = XSM . MGA
017006,000342: 15,2662 32440 ARCTRIG
017007,000343:
017008,000344: 15,2663 23503 STOVL IGC
017009,000345: 15,2664 01501 OGC
017010,000346: 15,2665 77624 RTB
017011,000347: 15,2666 33414 V1STO2S
017012,000348: 15,2667 36401 STCALL THETAD
017013,000349: 15,2670 00051 S2
017014,000350:
017015,000351: 15,2671 77776 GIMLOCK1 EXIT
017016,000352: 15,2672 05413 TC ALARM
017017,000353: 15,2673 00401 OCT 00401
017018,000354: 15,2674 06000 TC INTPRET
017019,000355: 15,2675 77650 GOTO
017020,000356: 15,2676 32653 CALCGA1
Page 413 |
017022,000358:
017023,000359: # AXISGEN COMPUTES THE COORDINATES OF ONE COORDINATE SYSTEM REFERRED TO ANOTHER COORDINATE SYSTEM.
017024,000360:
017025,000361: # THE INPUTS ARE 1) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM A STORED AT STARAD. 2) THE STAR2 VECTOR
017026,000362: # REFERRED TO COORDINATE SYSTEM A STORED AT STARAD +6. 3) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM B STORED
017027,000363: # AT LOCATION 6 OF THE VAC AREA. 4) THE STAR2 VECTOR REFERRED TO COORDINATE SYSTEM B STORED AT LOCATION 12D OF
017028,000364: # THE VAC AREA.
017029,000365:
017030,000366: # THE OUTPUT DEFINES COORDINATE SYSTEM A REFERRED TO COORDINATE SYSTEM B. THE THREE HALF-UNIT VECTORS ARE STORED
017031,000367: # AT LOCATIONS XDC, XDC +6, XDC +12D, AND STARAD, STARAD +6, STARAD +12D.
017032,000368:
017033,000369: 15,2677 66370 AXISGEN AXT,1 SSP # PUSHDOWN 00-22D,24D-28D,30D
017034,000370: 15,2700 01452 STARAD +6
017035,000371: 15,2701 00051 S1
017036,000372: 15,2702 01436 STARAD -6
017037,000373:
017038,000374: 15,2703 46773 AXISGEN1 VLOAD* VXV* # 06D UA = S1
017039,000375: 15,2704 01461 STARAD +12D,1 # STARAD +00D UB = S1
017040,000376: 15,2705 01467 STARAD +18D,1
017041,000377: 15,2706 77656 UNIT # 12D VA = UNIT(S1 X S2)
017042,000378: 15,2707 33467 STOVL* STARAD +18D,1 # STARAD +06D VB = UNIT(S1 X S2)
017043,000379: 15,2710 01461 STARAD +12D,1
017044,000380:
017045,000381: 15,2711 76433 VXV* VSL1
017046,000382: 15,2712 01467 STARAD +18D,1 # 18D WA = UA X VA
017047,000383: 15,2713 03475 STORE STARAD +24D,1 # STARAD +12D WB = UB X VB
017048,000384:
017049,000385: 15,2714 77700 TIX,1
017050,000386: 15,2715 32703 AXISGEN1
017051,000387:
017052,000388: 15,2716 66160 AXC,1 SXA,1
017053,000389: 15,2717 00006 6
017054,000390: 15,2720 00036 30D
017055,000391:
017056,000392: 15,2721 66370 AXT,1 SSP
017057,000393: 15,2722 00022 18D
017058,000394: 15,2723 00051 S1
017059,000395: 15,2724 00006 6
017060,000396:
017061,000397: 15,2725 66374 AXT,2 SSP
017062,000398: 15,2726 00006 6
017063,000399: 15,2727 00052 S2
017064,000400: 15,2730 00002 2
017065,000401:
017066,000402: 15,2731 76720 AXISGEN2 XCHX,1 VLOAD*
017067,000403: 15,2732 00036 30D # X1=-6 X2=+6 X1=-6 X2=+4 X1=-6 X2=+2
017068,000404: 15,2733 00001 0,1
017069,000405: 15,2734 62757 VXSC* PDVL* # J=(UA)(UB1) J=(UA)(UB2) J=(UA)(UB3)
017070,000406: 15,2735 76324 STARAD +6,2
Page 414 |
017072,000408: 15,2736 00007 6,1
017073,000409: 15,2737 77757 VXSC*
017074,000410: 15,2740 76316 STARAD +12D,2
017075,000411: 15,2741 30031 STOVL* 24D # K=(VA)(VB1) J=(VA)(VB2) J=(VA)(VB3)
017076,000412: 15,2742 00015 12D,1
017077,000413:
017078,000414: 15,2743 53357 VXSC* VAD
017079,000415: 15,2744 76310 STARAD +18D,2 # L=(WA)(WB1) J=(WA)(WB2) J=(WA)(WB3)
017080,000416: 15,2745 76455 VAD VSL1
017081,000417: 15,2746 00031 24D
017082,000418: 15,2747 77720 XCHX,1
017083,000419: 15,2750 00036 30D
017084,000420: 15,2751 03445 STORE XDC +18D,1 # XDC = L+J+K YDC = L+J+K ZDC = L+J+K
017085,000421:
017086,000422: 15,2752 77700 TIX,1
017087,000423: 15,2753 32754 AXISGEN3
017088,000424:
017089,000425: 15,2754 77704 AXISGEN3 TIX,2
017090,000426: 15,2755 32731 AXISGEN2
017091,000427:
017092,000428: 15,2756 77775 VLOAD
017093,000429: 15,2757 01423 XDC
017094,000430: 15,2760 23445 STOVL STARAD
017095,000431: 15,2761 01431 YDC
017096,000432: 15,2762 23453 STOVL STARAD +6
017097,000433: 15,2763 01437 ZDC
017098,000434: 15,2764 01461 STORE STARAD +12D
017099,000435:
017100,000436: 15,2765 77616 RVQ
017101,000437:
Page 415 |
017103,000439:
017104,000440: # TRANSPSE COMPUTES THE TRANSPOSE OF A MATRIX (TRANSPOSE = INVERSE OF ORTHOGONAL TRANSFORMATION).
017105,000441:
017106,000442: # THE INPUT IS A MATRIX DEFINING COORDINATE SYSTEM A WITH RESPECT TO COORDINATE SYSTEM B STORED IN STARAD THRU
017107,000443: # STARAD +17D.
017108,000444:
017109,000445: # THE OUTPUT IS A MATRIX DEFINING COORDINATE SYSTEM B WITH RESPECT TO COORDINATE SYSTEM A STORED IN STARAD THRU
017110,000446: # STARAD +17D.
017111,000447:
017112,000448: 15,2766 53447 TRANSPSE DXCH STARAD +2 # PUSHDOWN NONE
017113,000449: 15,2767 53453 DXCH STARAD +6
017114,000450: 15,2770 53447 DXCH STARAD +2
017115,000451:
017116,000452: 15,2771 53451 DXCH STARAD +4
017117,000453: 15,2772 53461 DXCH STARAD +12D
017118,000454: 15,2773 53451 DXCH STARAD +4
017119,000455:
017120,000456: 15,2774 53457 DXCH STARAD +10D
017121,000457: 15,2775 53463 DXCH STARAD +14D
017122,000458: 15,2776 53457 DXCH STARAD +10D
017123,000459: 15,2777 16014 TCF DANZIG
017124,000460:
017125,000461:
017126,000462:
017127,000463: # SMD/EREF TRANSFORMS STABLE MEMBER DESIRED COORDINATES FROM STABLE MEMBER DESIRED (DESIRED = PRESENT HERE) TO
017128,000464: # EARTH REFERENCE COORDINATES TO ALIGN THE STABLE MEMBER TO SPECIFIED GIMBAL ANGLES.
017129,000465:
017130,000466: # THE INPUTS ARE 1) THE MATRIX DEFINING THE EARTH REFERENCE COORDINATE FRAME WITH RESPECT TO THE NAVIGATION BASE
017131,000467: # COORDINATE FRAME. 2) SAME AS 2) AND 3) OF SMNB.
017132,000468:
017133,000469: # THE OUTPUT IS THE DESIRED STABLE MEMBER COORDINATES WITH RESPECT TO THE EARTH REFERENCE COORDINATE FRAME. THE
017134,000470: # THREE UNIT VECTORS ARE STORED AT XSM, YSM, AND ZSM.
017135,000471:
017136,000472: 15,3000 77230 SMD/EREF ITA VLOAD # PUSHDOWN 00,02,04-10D,30D,32D-36D
017137,000473: 15,3001 00014 12D
017138,000474: 15,3002 33040 XUNIT
017139,000475: 15,3003 36041 STCALL 32D
017140,000476: 15,3004 32473 SMNB # STABLE MEMBER TO NAVIGATION BASE
017141,000477: 15,3005 76521 MXV VSL1
017142,000478: 15,3006 01445 STARAD # THEN TO EARTH REFERENCE
017143,000479: 15,3007 23401 STOVL XSM
017144,000480: 15,3010 33036 YUNIT
017145,000481:
017146,000482: 15,3011 36041 STCALL 32D
017147,000483: 15,3012 32473 SMNB # STABLE MEMBER TO NAVIGATION BASE
017148,000484: 15,3013 76521 MXV VSL1
017149,000485: 15,3014 01445 STARAD # THEN TO EARTH REFERENCE
017150,000486: 15,3015 23407 STOVL YSM
017151,000487: 15,3016 33034 ZUNIT
017152,000488:
017153,000489: 15,3017 36041 STCALL 32D
Page 416 |
017155,000491: 15,3020 32473 SMNB # STABLE MEMBER TO NAVIGATION BASE
017156,000492: 15,3021 76521 MXV VSL1
017157,000493: 15,3022 01445 STARAD # THEN TO EARTH REFERENCE
017158,000494: 15,3023 37415 STCALL ZSM
017159,000495: 15,3024 00014 12D
017160,000496:
017161,000497: 15,3025 67777 77777 270DEG 2DEC -.25
017162,000498:
017163,000499: 15,3027 05520 26075 QTSN45 2DEC .1768
017164,000500:
017165,000501: 15,3031 20000 00000 HALFDP 2DEC .5
017166,000502:
017167,000503: 15,3033 00000 00000 ZUNIT 2DEC 0 B-28
017168,000504:
017169,000505: 15,3035 00000 00000 YUNIT 2DEC 0 B-28
017170,000506:
017171,000507: 15,3037 20000 00000 XUNIT 2DEC 0.5
017172,000508:
017173,000509: 15,3041 00000 00000 ZERODP 2DEC 0 B-28
017174,000510:
017175,000511: 15,3043 00000 00000 2DEC 0 B-28
017176,000512:
017177,000513: 15,3045 00000 00000 2DEC 0 B-28
017178,000514:
017179,000515: 15,3047 05252 25253 .166... 2DEC .1666666667
017180,000516:
Page 417 |
017182,000518:
017183,000519: # AOTNB CONVERTS THE TWO RETICLE ROTATION ANGLES (YROT AND SROT) AND
017184,000520: # THE DETENT SETTING TO A HALF UNIT STAR VECTOR REFERRED TO THE
017185,000521: # NAVIGATION BASE.
017186,000522:
017187,000523: # THE INPUTS ARE
017188,000524:
017189,000525: # Y RET. LINE RATATION S(YROT) STORED IN LOC 3 OF THE MARK VAC AREA
017190,000526: # SPIRAL ROTATION ANGLE S(SROT) STORED IN LOC 5 OF MARC VAC AREA
017191,000527: # ANGLE OF CENTER OF FIELD OF VIEW S(ELV) STORED IN LOC 9 OF MARK VAC
017192,000528: # AOT ASZIMUTH ANGLE S(DET) STORED IN LOC 8 OF MARK VAC AREA
017193,000529: # THE COMPLEMENT OF BASE ADDRESS OF MARK VAC IS STORED AT X1
017194,000530:
017195,000531: # THE OUTPUT IS A HALF UNIT STAR VECTOR IN NB COORDINATES STORED
017196,000532: # AT 32D AND AVAILABLE IN VAC ON RETURN TO THE CALLING PROGRAM
017197,000533:
017198,000534: 15,3051 66601 AOTNB SETPD SLOAD*
017199,000535: 15,3052 00001 0
017200,000536: 15,3053 00004 3,1
017201,000537: 15,3054 41424 RTB PUSH
017202,000538: 15,3055 33345 CDULOGIC
017203,000539: 15,3056 00017 STORE 14D
017204,000540: 15,3057 65346 COS PDDL
017205,000541: 15,3060 41556 SIN PUSH
017206,000542: 15,3061 45133 SLOAD* RTB
017207,000543: 15,3062 00006 5,1
017208,000544: 15,3063 33345 CDULOGIC
017209,000545: 15,3064 00021 STORE 16D # STORE S IF S AND Y ARE ZERO, S=0
017210,000546: 15,3065 52054 BZE GOTO # S NOT ZERO
017211,000547: 15,3066 33070 SISZ # S=0
017212,000548: 15,3067 33100 SCOMP
017213,000549: 15,3070 53145 SISZ DLOAD BZE # IS Y ZERO
017214,000550: 15,3071 00017 14D
017215,000551: 15,3072 33075 YISZ # Y=0
017216,000552: 15,3073 77650 GOTO
017217,000553: 15,3074 33100 SCOMP
017218,000554: 15,3075 52145 YISZ DLOAD GOTO
017219,000555: 15,3076 33042 ZERODP
017220,000556: 15,3077 33105 SGOT
017221,000557: 15,3100 45345 SCOMP DLOAD DSU
017222,000558: 15,3101 00017 14D
017223,000559: 15,3102 00021 16D # Y=S
017224,000560: 15,3103 77621 BDSU
017225,000561: 15,3104 33172 NEARONE # S=360-(Y-S)
017226,000562: 15,3105 41405 SGOT DMP PUSH
017227,000563: 15,3106 33170 DP1/12
017228,000564: 15,3107 65346 COS PDDL
017229,000565: 15,3110 41556 SIN PUSH
017230,000566: 15,3111 72405 DMP SL1
017231,000567: 15,3112 00001 0
017232,000568: 15,3113 06001 STODL 0
Page 418 |
017234,000570: 15,3114 00003 2
017235,000571: 15,3115 45405 DMP STADR
017236,000572: 15,3116 77774 STORE 2
017237,000573:
017238,000574: 15,3117 45133 SLOAD* RTB
017239,000575: 15,3120 00012 9D,1
017240,000576: 15,3121 33345 CDULOGIC
017241,000577: 15,3122 73406 PUSH SIN
017242,000578: 15,3123 71525 PDDL COS
017243,000579: 15,3124 41206 PUSH DMP
017244,000580: 15,3125 00001 0
017245,000581: 15,3126 41325 PDDL DMP
017246,000582: 15,3127 00005 4
017247,000583: 15,3130 00007 6
017248,000584: 15,3131 72415 DAD SL1
017249,000585: 15,3132 77626 STADR
017250,000586: 15,3133 71736 STODL 32D
017251,000587:
017252,000588: 15,3134 77605 DMP
017253,000589: 15,3135 00005 4
017254,000590: 15,3136 06005 STODL 4
017255,000591:
017256,000592: 15,3137 44205 DMP BDSU
017257,000593: 15,3140 00001 0
017258,000594: 15,3141 66606 PUSH SLOAD*
017259,000595: 15,3142 00011 8D,1
017260,000596: 15,3143 41424 RTB PUSH
017261,000597: 15,3144 33345 CDULOGIC
017262,000598: 15,3145 65346 COS PDDL
017263,000599: 15,3146 77756 SIN
017264,000600: 15,3147 00001 STORE 0
017265,000601:
017266,000602: 15,3150 65205 DMP PDDL
017267,000603: 15,3151 00005 4
017268,000604: 15,3152 00007 6
017269,000605: 15,3153 43205 DMP DAD
017270,000606: 15,3154 00003 2
017271,000607: 15,3155 77712 SL2
017272,000608: 15,3156 06043 STODL 34D
017273,000609:
017274,000610: 15,3157 45405 DMP STADR
017275,000611: 15,3160 71732 STODL 36D
017276,000612:
017277,000613: 15,3161 77605 DMP
017278,000614: 15,3162 62421 BDSU SL2
017279,000615: 15,3163 00045 36D
017280,000616: 15,3164 22045 STOVL 36D
017281,000617: 15,3165 00041 32D
017282,000618: 15,3166 77616 RVQ
Page 419 |
017284,000620: 15,3167 02525 12525 DP1/12 2DEC .0833333333
017285,000621:
017286,000622: 15,3171 37777 37777 NEARONE 2DEC .999999999
017287,000623:
Page 420 |
017289,000625:
017290,000626: # AOTSM CALCULATES A HALF UNIT STAR VECTOR IN STABLE MEMBER COORDINATES
017291,000627: # FROM TWO PLANES CONTAINING THE STAR REFERRED TO NB
017292,000628:
017293,000629: # THE INPUTS ARE
017294,000630:
017295,000631: # AOT AZIMUTH AND ELEVATION STORED IN 8D AND 9D RESP. OF VAC AREA
017296,000632: # CDUY, CDUZ AND CDUX FROM A YMARK STORED AT 3, 5, AND 7 OF VAC AREA
017297,000633: # CDUY, CDUZ AND CDUX FROM A XMARK STORED AT 2, 4, AND 6 OF VAC AREA
017298,000634: # THE BASE ADDRESS OF THE CDUS IS STORED AT LOCATION S1
017299,000635:
017300,000636: # THE OUTPUT IS A STAR VECTOR REFERRED TO STABLE MEMBER AT LOC 32D
017301,000637: # AND AVAILBLE IN MPAC
017302,000638:
017303,000639:
017304,000640: 15,3173 77630 AOTSM ITA
017305,000641: 15,3174 00035 29D
017306,000642: 15,3175 70001 SETPD LXC,1 # PUT BASE ADR OF VAC AREA IN X1
017307,000643: 15,3176 00015 12D
017308,000644: 15,3177 00050 S1
017309,000645: 15,3200 41545 DLOAD PUSH # ZERO 12 - 13
017310,000646: 15,3201 33042 ZERODP
017311,000647: 15,3202 45133 SLOAD* RTB # LOAD AZIMUTH ANGLE (D)
017312,000648: 15,3203 00007 6,1
017313,000649: 15,3204 33345 CDULOGIC
017314,000650: 15,3205 71406 PUSH COS
017315,000651: 15,3206 73525 PDDL SIN # 1/2 COSD 14-15
017316,000652: 15,3207 41476 DCOMP PUSH # -1/2 SIND 16-17
017317,000653: 15,3210 45133 SLOAD* RTB # LOAD ELEVATION ANGLE (E)
017318,000654: 15,3211 00010 7,1
017319,000655: 15,3212 33345 CDULOGIC
017320,000656: 15,3213 71406 PUSH COS
017321,000657: 15,3214 06041 STODL 32D # 1/2COSE
017322,000658: 15,3215 41556 SIN PUSH # 1/2 SINE 18-19
017323,000659: 15,3216 72405 DMP SL1
017324,000660: 15,3217 00021 16D
017325,000661: 15,3220 06043 STODL 34D # -1/2 SINE SIND UP 18-19
017326,000662: 15,3221 57405 DMP DCOMP
017327,000663: 15,3222 00017 14D
017328,000664: 15,3223 77752 SL1
017329,000665: 15,3224 36045 STCALL 36D # -1/2SINE COSD
017330,000666: 15,3225 32517 NBSM # GET X PLANE IN SM
017331,000667: 15,3226 45515 PDVL STADR # X PLANE IN SM IN 12-17
017332,000668: 15,3227 77736 STORE 32D # Y PLANE IN NB
017333,000669: 15,3230 62120 XCHX,1 INCR,1
017334,000670: 15,3231 00050 S1 # ADD ONE TO BASE ADR OF VAC AREA
017335,000671: 15,3232 00001 1
017336,000672: 15,3233 47120 XCHX,1 CALL
017337,000673: 15,3234 00050 S1 # PUT NEW BASE ADR BACK IN S1
017338,000674: 15,3235 32517 NBSM # GET Y PLANE IN SM
017339,000675: 15,3236 76435 VXV VSL1
017340,000676: 15,3237 77676 VCOMP
Page 421 |
017342,000678: 15,3240 00041 STORE 32D # STORE STAR VEC REFERRED TO SM
017343,000679: 15,3241 77650 GOTO
017344,000680: 15,3242 00035 29D
017345,000681:
Page 422 |
017347,000683:
017348,000684: # GIVEN RR TRUNION AND SHAFT (T,S) IN TANG,+1, FIND THE ASSOCIATED LINE OF SIGNT IN NAV BASE AXES.
017349,000685: # THE HALF UNIT VECTOR, .5( SIN(S)COS(T),-SIN(T),COS(S)COS(T) ) IS LEFT IN MPAC AND 32D.
017350,000686:
017351,000687: 15,3243 45135 RRNB SLOAD RTB
017352,000688: 15,3244 00424 TANG
017353,000689: 15,3245 33345 CDULOGIC
017354,000690: 15,3246 41401 SETPD PUSH # TRUNNION ANGLE TO 0.
017355,000691: 15,3247 00001 0
017356,000692: 15,3250 57556 SIN DCOMP
017357,000693: 15,3251 06043 STODL 34D # Y COMPONENT.
017358,000694:
017359,000695: 15,3252 41546 COS PUSH # .5 COS(T) TO 0.
017360,000696: 15,3253 45135 SLOAD RTB
017361,000697: 15,3254 00425 TANG +1
017362,000698: 15,3255 33345 CDULOGIC
017363,000699: 15,3256 71406 PUSH COS # SHAFT ANGLE TO 2.
017364,000700: 15,3257 72405 DMP SL1
017365,000701: 15,3260 00001 0
017366,000702: 15,3261 06045 STODL 36D # Z COMPONENT
017367,000703:
017368,000704: 15,3262 41356 SIN DMP
017369,000705: 15,3263 77752 SL1
017370,000706: 15,3264 22041 STOVL 32D
017371,000707: 15,3265 00041 32D
017372,000708: 15,3266 77616 RVQ
017373,000709:
Page 423 |
017375,000711:
017376,000712: # THE FOLLOWING ROUTINE TAKES A HALF UNIT TARGET VECTOR REFERRED TO NAV BASE COORDINATES AND FINDS BOTH
017377,000713: # GIMBAL ORIENTATIONS AT WHICH THE RR MIGHT SIGHT THE TARGET. THE GIMBAL ANGLES CORRESPONDING TO THE PRESENT MODE
017378,000714: # ARE LEFT IN MODEA AND THOSE WHICH WOULD BE USED AFTER A REMODE IN MODEB. THIS ROUTINE ASSUMES MODE 1 IS TRUNNION
017379,000715: # ANGLE LESS THAN 90 DEGS IN ABS VALUE WITH ARBITRARY SHAFT, WITH A CORRESPONDING DEFINITION FOR MODE 2. MODE
017380,000716: # SELECTION AND LIMIT CHECKING ARE DONE ELSEWHERE.
017381,000717:
017382,000718: # THE MODE 1 CONFIGURATION IS CALCULATED FROM THE VECTOR AND THEN MODE 2 IS FOUND USING THE RELATIONS
017383,000719:
017384,000720: # S(2) = 180 + S(1)
017385,000721: # T(2) = 180 - T(1)
017386,000722:
017387,000723: 15,3267 57545 RRANGLES DLOAD DCOMP # SINCE WE WILL FIND THE MODE 1 SHAFT
017388,000724: 15,3270 00043 34D # ANGLE LATER, WE CAN FIND THE MODE 1
017389,000725: 15,3271 67401 SETPD ASIN # TRUNNION BY SIMPLY TAKING THE ARCSIN OF
017390,000726: 15,3272 00001 0 # THE Y COMPONENT, THE ASIN GIVING AN
017391,000727: 15,3273 44206 PUSH BDSU # ANSWER WHOSE ABS VAL IS LESS THAN 90 DEG
017392,000728: 15,3274 33032 HALFDP
017393,000729: 15,3275 06005 STODL 4 # MODE 2 TRUNNION TO 4.
017394,000730:
017395,000731: 15,3276 33042 ZERODP
017396,000732: 15,3277 22043 STOVL 34D # UNIT THE PROJECTION OF THE VECTOR IN THE
017397,000733: 15,3300 00041 32D # X-Z PLANE.
017398,000734: 15,3301 41056 UNIT BOVB # CALL FOR S/C MANEUVER ON GIMBAL LOCK.
017399,000735: 15,3302 20346 DESRETRN +1
017400,000736: 15,3303 06041 STODL 32D # PROJECTION VECTOR.
017401,000737: 15,3304 00041 32D
017402,000738: 15,3305 46142 SR1 STQ
017403,000739: 15,3306 00051 S2
017404,000740: 15,3307 06023 STODL SINTH # USE ARCTRIG SINCE SHAFT COULD BE ARB.
017405,000741: 15,3310 00045 36D
017406,000742: 15,3311 77742 SR1
017407,000743: 15,3312 36021 STCALL COSTH
017408,000744: 15,3313 32440 ARCTRIG
Page 424 |
017410,000746: 15,3314 43206 PUSH DAD # MODE 1 SHAFT TO 2.
017411,000747: 15,3315 33032 HALFDP # (OVERFLOW DOESNT MATTER SINCE SCALED REV
017412,000748: 15,3316 22007 STOVL 6
017413,000749: 15,3317 00005 4
017414,000750: 15,3320 77624 RTB # FIND MODE 2 CDU ANGLES.
017415,000751: 15,3321 33431 2V1STO2S
017416,000752: 15,3322 22426 STOVL MODEB
017417,000753: 15,3323 00001 0
017418,000754: 15,3324 77624 RTB # MODE 1 ANGLES TO MODE A.
017419,000755: 15,3325 33431 2V1STO2S
017420,000756: 15,3326 00424 STORE MODEA
017421,000757: 15,3327 77776 EXIT
017422,000758:
017423,000759: 15,3330 40413 CS RADMODES # SWAP MODEA AND MODEB IF RR IN MODE2.
017424,000760: 15,3331 77644 MASK BIT12
017425,000761: 15,3332 10000 CCS A
017426,000762: 15,3333 13337 TCF +4
017427,000763:
017428,000764: 15,3334 52424 DXCH MODEA
017429,000765: 15,3335 52426 DXCH MODEB
017430,000766: 15,3336 52424 DXCH MODEA
017431,000767:
017432,000768: 15,3337 06000 TC INTPRET
017433,000769: 15,3340 77650 GOTO
017434,000770: 15,3341 00051 S2
017435,000771:
017436,000772: 15,3342 ENDINFSS EQUALS
End of include-file INFLIGHT_ALIGNMENT_ROUTINES.agc. Parent file is MAIN.agc