Source Code
These source-code files are part of a reconstructed copy of Skylark 048, the
Block II Command Module (CM) Apollo Guidance Computer (AGC) software for the
Skylab-2, Skylab-3, Skylab-4, and Apollo-Soyuz Test Project missions.
They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on Skylab-2, part numbers 2010802-541, 2010802-551, 2010802-561, 2010802-571, 2010802-581, and 2010802-591. Access to these modules was provided by the New Mexico Museum of Space History, who we are much indebted to. The source code for the Apollo 15, 16, and 17 software, Artemis 072, was used as a starting point. Heavy use was made of TRW 4900.5-244, Programmed Guidance Equations for Skylark Command Module Earth Orbital Program, dated 14 February 1972. This document contains pseudocode of essentially all of Skylark, using original program labels which have been copied for this source reconstruction. Since only binary dumps (rather than listings) of Skylark are available as source material, all comments and labels are approximate. They have been taken from the Programmed Guidance Equations or other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
054543,000002: ## Copyright: Public domain.
054544,000003: ## Filename: POWERED_FLIGHT_SUBROUTINES.agc
054545,000004: ## Purpose: A section of Skylark revision 048.
054546,000005: ## It is part of the source code for the Apollo Guidance Computer (AGC)
054547,000006: ## for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
054548,000007: ## this software are available; instead, this file was created via
054549,000008: ## disassembly of dumps of the core rope modules actually flown on
054550,000009: ## Skylab-2. Access to these modules was provided by the New Mexico
054551,000010: ## Museum of Space History.
054552,000011: ## Assembler: yaYUL
054553,000012: ## Contact: Ron Burkey <info@sandroid.org>.
054554,000013: ## Website: www.ibiblio.org/apollo/index.html
054555,000014: ## Mod history: 2023-09-04 MAS Created from Artemis 072.
054556,000015: ## 2024-03-05 MAS Finished updating for Skylark 48. All of the
054557,000016: ## changes here involved restoring functions that
054558,000017: ## had been deleted from earlier programs.
054559,000018:
054560,000019:
054561,000020: 23,2000 SETLOC POWFLITE
054562,000021: 23,2000 BANK
054563,000022:
054564,000023: 23,3471 0142 EBANK= DEXDEX
054565,000024: 23,3471 COUNT* $$/POWFL
054566,000025:
054567,000026: # CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*TR*GS ALL COMPUTE THE SINES AND
054568,000027: # COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE
054569,000028: # PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU. AN
054570,000029: # ADDITIONAL OUTPUT IS THE 1'S COMPLEMENT ANGLES AT CDUSPOT. THESE
054571,000030: # ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT,
054572,000031: # EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2. THEY DIFFER ONLY IN
054573,000032: # WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING.
054574,000033:
054575,000034: # CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE
054576,000035: # SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS.
054577,000036: # THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY
054578,000037: # CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS.
054579,000038:
054580,000039: # CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC.
054581,000040:
054582,000041: # CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP. THIS
054583,000042: # ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL
054584,000043: # ANGLES IN AN ORDER OTHER THAN X Y Z. A CALL TO THIS ROUTINE IS
054585,000044: # NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO
054586,000045: # MODES (SMNB OR NBSM). SINCE AX*SR*T EXPECTS TO FIND THE SINES AND
054587,000046: # COSINES IN THE ORDER Y Z X THE ANGLES MUST HAVE BEEN PLACED IN CDUSPOT
054588,000047: # IN THIS ORDER. CD*TR*GS NEED NOT BE REPEATED WHEN AX*SR*T IS CALLED
054589,000048: # MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED. NOTE THAT SINCE
054590,000049: # IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE
054591,000050: # CALLED USING BANKCALL. SORRY.
054592,000051:
054593,000052: # CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN
054594,000053: # INTERPRETIVE.
054595,000054:
054596,000055: 23,3471 77776 CDUTRIG EXIT
054597,000056: 23,3472 03501 TC CDUTRIGS
054598,000057: 23,3473 06006 TC INTPRET
054599,000058: 23,3474 77616 RVQ
054600,000059:
054601,000060: 23,3475 77776 CD*TR*G EXIT
054602,000061: 23,3476 03507 TC CD*TR*GS
054603,000062: 23,3477 06006 TC INTPRET
054604,000063: 23,3500 77616 RVQ
054605,000064:
054606,000065: 23,3501 30032 CDUTRIGS CA CDUX
054607,000066: 23,3502 55165 TS CDUSPOT +4
054608,000067: 23,3503 30033 CA CDUY
054609,000068: 23,3504 55161 TS CDUSPOT
054610,000069: 23,3505 30034 CA CDUZ
054611,000070: 23,3506 55163 TS CDUSPOT +2
054612,000071:
054613,000072: 23,3507 00006 CD*TR*GS EXTEND
054614,000073: 23,3510 22142 QXCH TEM2
054615,000074: 23,3511 34777 CAF FOUR
054616,000075: 23,3512 76211 TR*GL**P MASK SIX # MAKE IT EVEN AND SMALLER
054617,000076: 23,3513 54143 TS TEM3
054618,000077: 23,3514 50143 INDEX TEM3
054619,000078: 23,3515 31161 CA CDUSPOT
054620,000079: 23,3516 52155 DXCH MPAC # STORING 2'S COMP ANGLE, LOADING MPAC
054621,000080: 23,3517 52127 DXCH VBUF +4 # STORING MPAC FOR LATER RESTORATION
054622,000081: 23,3520 04744 TC USPRCADR
054623,000082: 23,3521 45566 CADR CDULOGIC
054624,000083: 23,3522 00006 EXTEND
054625,000084: 23,3523 30155 DCA MPAC
054626,000085: 23,3524 50143 INDEX TEM3
054627,000086: 23,3525 53162 DXCH CDUSPOT # STORING 1'S COMPLEMENT ANGLE
054628,000087: 23,3526 04744 TC USPRCADR
054629,000088: 23,3527 01514 CADR COSINE
054630,000089: 23,3530 52155 DXCH MPAC
054631,000090: 23,3531 50143 INDEX TEM3
054632,000091: 23,3532 53140 DXCH COSCDU # STORING COSINE
054633,000092: 23,3533 00006 EXTEND
054634,000093: 23,3534 50143 INDEX TEM3
054635,000094: 23,3535 31162 DCA CDUSPOT # LOADING 1'S COMPLEMENT ANGLE
054636,000095: 23,3536 04744 TC USPRCADR
054637,000096: 23,3537 01526 CADR SINE +1 # SINE +1 EXPECTS ARGUMENT IN A AND L
054638,000097: 23,3540 52127 DXCH VBUF +4 # BRINGING UP PRIOR MPAC TO BE RESTORED
054639,000098: 23,3541 52155 DXCH MPAC
054640,000099: 23,3542 50143 INDEX TEM3
054641,000100: 23,3543 53132 DXCH SINCDU
054642,000101: 23,3544 10143 CCS TEM3
054643,000102: 23,3545 13512 TCF TR*GL**P
054644,000103: 23,3546 00142 TC TEM2
054645,000104:
054646,000105:
054647,000106: # ****************************************************************************************************************
054648,000107:
054649,000108: # QUICTRIG, INTENDED FOR GUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS.
054650,000109: # QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2,
054651,000110: # AND CDUSPOT +4. UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN
054652,000111: # CDUSPOT. QUICTRIG'S EXECUTION TIME IS 4.1 MS; THIS IS 10 TIMES AS FAST AS CD*TR*GS. QUICTRIG MAY BE
054653,000112: # CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL.
054654,000113:
054655,000114: 23,3547 00004 QUICTRIG INHINT # INHINT SINCE DAP USES THE SAME TEMPS
054656,000115: 23,3550 00006 EXTEND
054657,000116: 23,3551 22061 QXCH ITEMP1
054658,000117: 23,3552 34777 CAF FOUR
054659,000118: 23,3553 76211 +4 MASK SIX
054660,000119: 23,3554 54062 TS ITEMP2
054661,000120: 23,3555 50062 INDEX ITEMP2
054662,000121: 23,3556 31161 CA CDUSPOT
054663,000122: 23,3557 05074 TC SPSIN
054664,000123: 23,3560 00006 EXTEND
054665,000124: 23,3561 74764 MP BIT14 # SCALE DOWN TO MATCH INTERPRETER OUTPUTS
054666,000125: 23,3562 50062 INDEX ITEMP2
054667,000126: 23,3563 53132 DXCH SINCDU
054668,000127: 23,3564 50062 INDEX ITEMP2
054669,000128: 23,3565 31161 CA CDUSPOT
054670,000129: 23,3566 05073 TC SPCOS
054671,000130: 23,3567 00006 EXTEND
054672,000131: 23,3570 74764 MP BIT14
054673,000132: 23,3571 50062 INDEX ITEMP2
054674,000133: 23,3572 53140 DXCH COSCDU
054675,000134: 23,3573 10062 CCS ITEMP2
054676,000135: 23,3574 13553 TCF QUICTRIG +4
054677,000136: 23,3575 30061 CA ITEMP1
054678,000137: 23,3576 00003 RELINT
054679,000138: 23,3577 00000 TC A
054680,000139:
054681,000140:
054682,000141: # ****************************************************************************************************************
054683,000142:
054684,000143: # THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
054685,000144: # INTERPRETIVE. LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
054686,000145:
054687,000146: # THESE INTERFACE ROUTINES ARE PERMANENT. ALL RESTORE USER'S EBANK
054688,000147: # SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL",
054689,000148: # RETURNING VIA QPRET. ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR-
054690,000149: # MED INTERPRETER-STYLE IN MPAC; COMPONENTS AT MPAC, MPAC +3, AND MPAC +5.
054691,000150:
054692,000151: # TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES
054693,000152: # AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4; ODD
054694,000153: # LOCATIONS NEED NOT BE ZEROED). TRG*NBSM DOES THE NB TO SM TRANSFOR-
054695,000154: # MATION; TRG*SMNB, VICE VERSA.
054696,000155:
054697,000156: # CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF
054698,000157: # THE CDU COUNTERS. OTHERWISE IT IS LIKE TRG*NBSM.
054699,000158:
054700,000159: # CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM.
054701,000160:
054702,000161: 23,3600 77776 CDU*SMNB EXIT
054703,000162: 23,3601 03501 TC CDUTRIGS
054704,000163: 23,3602 13605 TCF C*MM*N1
054705,000164:
054706,000165: 23,3603 77776 TRG*SMNB EXIT
054707,000166: 23,3604 03507 TC CD*TR*GS
054708,000167: 23,3605 07466 C*MM*N1 TC MPACVBUF # AX*SR*T EXPECTS VECTOR IN VBUF
054709,000168: 23,3606 46214 CS THREE # SIGNAL FOR SM TO NB TRANSFORMATION
054710,000169: 23,3607 03627 C*MM*N2 TC AX*SR*T
054711,000170: 23,3610 06006 TC INTPRET
054712,000171: 23,3611 43575 VLOAD RVQ
054713,000172: 23,3612 00123 VBUF
054714,000173:
054715,000174: 23,3613 77776 CDU*NBSM EXIT
054716,000175: 23,3614 03501 TC CDUTRIGS
054717,000176: 23,3615 13620 TCF C*MM*N3
054718,000177:
054719,000178: 23,3616 77776 TRG*NBSM EXIT
054720,000179: 23,3617 03507 TC CD*TR*GS
054721,000180: 23,3620 07466 C*MM*N3 TC MPACVBUF # FOR AX*SR*T
054722,000181: 23,3621 36214 CA THREE # SIGNAL FOR NB TO SM TRANSFORMATION
054723,000182: 23,3622 13607 TCF C*MM*N2
054724,000183:
054725,000184: # *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU
054726,000185: # AND COSCDU) RATHER THAN THE ANGLES THEMSELVES. OTHERWISE THEY ARE
054727,000186: # LIKE TRG*NBSM AND TRG*SMNB.
054728,000187:
054729,000188: # NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES
054730,000189: # OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM
054731,000190: # AND TRG*SMNB NEED BE CALLED FOR EACH SERIES. FOR SUBSEQUENT TRANSFOR-
054732,000191: # MATIONS USE *NBSM* AND *SMNB*.
054733,000192:
054734,000193: 23,3623 77776 *SMNB* EXIT
054735,000194: 23,3624 13605 TCF C*MM*N1
054736,000195:
054737,000196: 23,3625 77776 *NBSM* EXIT
054738,000197: 23,3626 13620 TCF C*MM*N3
054739,000198:
054740,000199: # AX*SR*T COMBINES THE OLD SMNB AND NBSM. FOR THE NB TO SM
054741,000200: # TRANSFORMATION, ENTER WITH +3 IN A. FOR SM TO NB, ENTER WITH -3.
054742,000201: # THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF.
054743,000202: # AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION
054744,000203: # AT SINCDU AND COSCDU, IN THE ORDER Y Z X. A CALL TO CD*TR*GS, WITH
054745,000204: # THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF
054746,000205: # THIS. HERE IS A SAMPLE CALLING SEQUENCE:-
054747,000206:
054748,000207: # TC CDUTRIGS
054749,000208: # CS THREE ("CA THREE" FOR NBSM)
054750,000209: # TC AX*SR*T
054751,000210:
054752,000211: # THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE
054753,000212: # THAN ONCE, UNLESS THE ANGLES HAVE CHANGED.
054754,000213:
054755,000214: # AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN
054756,000215: # UNITY. A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE
054757,000216: # HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS-
054758,000217: # FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED.
054759,000218:
054760,000219: 23,3627 54142 AX*SR*T TS DEXDEX # WHERE IT BECOMES THE INDEX OF INDEXES
054761,000220: 23,3630 00006 EXTEND
054762,000221: 23,3631 22145 QXCH RTNSAVER
054763,000222:
054764,000223: 23,3632 10142 R*TL**P CCS DEXDEX # +3 --> 0 -3 --> 2
054765,000224: 23,3633 40142 CS DEXDEX # THUS: +2 --> 1 -2 --> 1
054766,000225: 23,3634 66214 AD THREE # +1 --> 2 -1 --> 0
054767,000226: 23,3635 00006 EXTEND
054768,000227: 23,3636 50000 INDEX A
054769,000228: 23,3637 33716 DCA INDEXI
054770,000229: 23,3640 52144 DXCH DEXI
054771,000230:
054772,000231: 23,3641 35001 CA ONE
054773,000232: 23,3642 54130 TS BUF
054774,000233: 23,3643 00006 EXTEND
054775,000234: 23,3644 50143 INDEX DEX1
054776,000235: 23,3645 40123 DCS VBUF
054777,000236: 23,3646 13650 TCF LOOP1 # REALLY BE A SUBTRACT, AND VICE VERSA
054778,000237:
054779,000238: 23,3647 52131 LOOP2 DXCH BUF # LOADING VECTOR COMPONENT, STORING INDEX
054780,000239:
054781,000240: 23,3650 52155 LOOP1 DXCH MPAC
054782,000241: 23,3651 33714 CA SINESLOC
054783,000242: 23,3652 60143 AD DEX1
054784,000243: 23,3653 54116 TS ADDRWD
054785,000244:
054786,000245: 23,3654 07056 TC DMPSUB # MULTIPLY BY SIN(CDUANGLE)
054787,000246: 23,3655 10142 CCS DEXDEX
054788,000247: 23,3656 52155 DXCH MPAC # NBSM CASE
054789,000248: 23,3657 13662 TCF +3
054790,000249: 23,3660 00006 EXTEND # SMNB CASE
054791,000250: 23,3661 40155 DCS MPAC
054792,000251: 23,3662 52134 DXCH TERM1TMP
054793,000252:
054794,000253: 23,3663 36211 CA SIX # SINCDU AND COSCDU (EACH 6 WORDS) MUST
054795,000254: 23,3664 26116 ADS ADDRWD # BE CONSECUTIVE AND IN THAT ORDER
054796,000255:
054797,000256: 23,3665 00006 EXTEND
054798,000257: 23,3666 50130 INDEX BUF
054799,000258: 23,3667 50143 INDEX DEX1
054800,000259: 23,3670 30123 DCA VBUF
054801,000260: 23,3671 52155 DXCH MPAC
054802,000261: 23,3672 07056 TC DMPSUB # MULTIPLY BY COS(CDUANGLE)
054803,000262: 23,3673 52155 DXCH MPAC
054804,000263: 23,3674 20134 DAS TERM1TMP
054805,000264: 23,3675 52134 DXCH TERM1TMP
054806,000265: 23,3676 20001 DDOUBL
054807,000266: 23,3677 50130 INDEX BUF
054808,000267: 23,3700 50143 INDEX DEX1
054809,000268: 23,3701 52123 DXCH VBUF
054810,000269: 23,3702 52131 DXCH BUF # LOADING INDEX, STORING VECTOR COMPONENT
054811,000270:
054812,000271: 23,3703 10000 CCS A # 'CAUSE THAT'S WHERE THE INDEX NOW IS
054813,000272: 23,3704 13647 TCF LOOP2
054814,000273:
054815,000274: 23,3705 00006 EXTEND
054816,000275: 23,3706 26142 DIM DEXDEX # DECREMENT MAGNITUDE PRESERVING SIGN
054817,000276:
054818,000277: 23,3707 10142 TSTPOINT CCS DEXDEX # ONLY THE BRANCHING FUNCTION IS USED
054819,000278: 23,3710 13632 TCF R*TL**P
054820,000279: 23,3711 00145 TC RTNSAVER
054821,000280: 23,3712 13632 TCF R*TL**P
054822,000281: 23,3713 00145 TC RTNSAVER
054823,000282:
054824,000283: 23,3714 01131 SINESLOC ADRES SINCDU # FOR USE IN SETTING ADDRWD
054825,000284:
054826,000285: 23,3715 00004 INDEXI DEC 4 B-14 # ********** DON'T **********
054827,000286: 23,3716 00002 DEC 2 B-14 # ********** TOUCH **********
054828,000287: 23,3717 00000 DEC 0 B-14 # ********** THESE **********
054829,000288: 23,3720 00004 DEC 4 B-14 # ********** CONSTANTS **********
054830,000289:
054831,000290: # ****************************************************************************************************************
054832,000291:
054833,000292:
054834,000293: # THIS SUBROUTINE COMPUTES INCREMENTAL CHANGES IN CDU(GIMBAL) ANGLES FROM INCREMENTAL CHANGES ABOUT SM AXES. IT
054835,000294: # REQUIRES SM INCREMENTS AS A DP VECTOR SCALED AT ONE REVOLUTION(DTHETASM,+2,+4). SIN,COS(CDUY,Z,X) ARE IN
054836,000295: # SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY, SCALED TO ONE HALF. CDU INCREENTS ARE PLACED IN DCDU,+2,+4 SCALED TO
054837,000296: # ONE REVOLUTION.
054838,000297:
054839,000298: # * COS(IGA)SEC(MGA) 0 -SIN(IGA)SEC(MGA) *
054840,000299: # * *
054841,000300: # * -COS(IGA)TAN(MGA) 1 SIN(IGA)TAN(MGA) *
054842,000301: # * *
054843,000302: # * SIN(IGA) 0 COS(IGA) *
054844,000303:
054845,000304: 23,2000 SETLOC POWFLIT1
054846,000305: 23,2000 BANK
054847,000306: 23,3721 COUNT* $$/POWFL
054848,000307: 23,3721 41345 SMCDURES DLOAD DMP
054849,000308: 23,3722 03243 DTHETASM
054850,000309: 23,3723 01140 COSCDUY
054851,000310:
054852,000311: 23,3724 41325 PDDL DMP
054853,000312: 23,3725 03247 DTHETASM +4
054854,000313: 23,3726 01132 SINCDUY
054855,000314:
054856,000315: 23,3727 77621 BDSU
054857,000316: 23,3730 77671 DDV
054858,000317: 23,3731 01142 COSCDUZ
054859,000318: 23,3732 03235 STORE DCDU
054860,000319:
054861,000320: 23,3733 72405 DMP SL1 # SCALE
054862,000321: 23,3734 01134 SINCDUZ
054863,000322: 23,3735 77621 BDSU
054864,000323:
054865,000324: 23,3736 03245 DTHETASM +2
054866,000325: 23,3737 17237 STODL DCDU +2
054867,000326: 23,3740 03243 DTHETASM
054868,000327:
054869,000328: 23,3741 65205 DMP PDDL
054870,000329: 23,3742 01132 SINCDUY
054871,000330: 23,3743 03247 DTHETASM +4
054872,000331:
054873,000332: 23,3744 43205 DMP DAD
054874,000333: 23,3745 01140 COSCDUY
054875,000334: 23,3746 77752 SL1
054876,000335: 23,3747 03241 STORE DCDU +4
054877,000336: 23,3750 77616 RVQ
End of include-file POWERED_FLIGHT_SUBROUTINES.agc. Parent file is MAIN.agc