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