Source Code
|
These source-code files are part of a reconstructed copy of LUM69 Revision 2, the
flown Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction began with source code of Luminary 69 revision 0 previously transcribed from a digitized copy of that program. The code was then updated by back-porting the R-2 lunar potential model from previously-transcribed source code of Luminary 99. These required changes were described in the original Luminary memos 75 and 78. The reconstructed code was verified by matching memory-bank checksums to those listed in drawing 2021152G. Note that page numbers in the reconstructed code match those on the Luminary 069 printout, although the added code would likely have changed page numbers for a real LUM69 Revision 2 listing. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
053868,000002: ## Copyright: Public domain.
053869,000003: ## Filename: POWERED_FLIGHT_SUBROUTINES.agc
053870,000004: ## Purpose: A section of LUM69 revision 2.
053871,000005: ## It is part of the reconstructed source code for the flown
053872,000006: ## version of the flight software for the Lunar Module's (LM)
053873,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
053874,000008: ## been recreated from a copy of Luminary revsion 069, using
053875,000009: ## changes present in Luminary 099 which were described in
053876,000010: ## Luminary memos 75 and 78. The code has been adapted such
053877,000011: ## that the resulting bugger words exactly match those specified
053878,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
053879,000013: ## relatively high confidence that the reconstruction is correct.
053880,000014: ## Reference: pp. 1254-1261
053881,000015: ## Assembler: yaYUL
053882,000016: ## Contact: Ron Burkey <info@sandroid.org>.
053883,000017: ## Website: www.ibiblio.org/apollo/index.html
053884,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
053885,000019:
|
Page 1254 |
053887,000021: 14,3711 BANK 14 # SAME FBANK AS THE FINDCDUD SUB-PROGRAM
053888,000022: 23,2000 SETLOC POWFLITE
053889,000023: 23,2000 BANK
053890,000024:
053891,000025: 23,3443 0142 EBANK= DEXDEX
053892,000026: 23,3443 COUNT* $$/POWFL
053893,000027:
053894,000028: # CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*TR*GS ALL COMPUTE THE SINES AND
053895,000029: # COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE
053896,000030: # PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU. AN
053897,000031: # ADDITIONAL OUTPUT IS THE 1'S COMPLEMENT ANGLES AT CDUSPOT. THESE
053898,000032: # ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT,
053899,000033: # EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2. THEY DIFFER ONLY IN
053900,000034: # WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING.
053901,000035:
053902,000036: # CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE
053903,000037: # SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS.
053904,000038: # THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY
053905,000039: # CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS.
053906,000040:
053907,000041: # CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC.
053908,000042:
053909,000043: # CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP. THIS
053910,000044: # ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL
053911,000045: # ANGLES IN AN ORDER OTHER THAN X Y Z. A CALL TO THIS ROUTINE IS
053912,000046: # NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO
053913,000047: # MODES (SMNB OR NBSM). SINCE AX*SR*T EXPECTS TO FIND THE SINES AND
053914,000048: # COSINES IN THE ORDER Y Z X THE ANGLES MUST HAVE BEEN PLACED IN CDUSPOT
053915,000049: # IN THIS ORDER. CD*TR*GS NEED NOT BE REPEATED WHEN AX*SR*T IS CALLED
053916,000050: # MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED. NOTE THAT SINCE
053917,000051: # IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE
053918,000052: # CALLED USING BANKCALL. SORRY.
053919,000053:
053920,000054: # CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN
053921,000055: # INTERPRETIVE.
053922,000056:
053923,000057: 23,3443 77776 CDUTRIG EXIT
053924,000058: 23,3444 03453 TC CDUTRIGS
053925,000059: 23,3445 06036 TC INTPRET
053926,000060: 23,3446 77616 RVQ
053927,000061:
053928,000062: 23,3447 77776 CD*TR*G EXIT
053929,000063: 23,3450 03461 TC CD*TR*GS
053930,000064: 23,3451 06036 TC INTPRET
053931,000065: 23,3452 77616 RVQ
053932,000066:
053933,000067: 23,3453 30032 CDUTRIGS CA CDUX
053934,000068: 23,3454 54772 TS CDUSPOT +4
053935,000069: 23,3455 30033 CA CDUY
053936,000070: 23,3456 54766 TS CDUSPOT
|
Page 1255 |
053938,000072: 23,3457 30034 CA CDUZ
053939,000073: 23,3460 54770 TS CDUSPOT +2
053940,000074:
053941,000075: 23,3461 00006 CD*TR*GS EXTEND
053942,000076: 23,3462 22142 QXCH TEM2
053943,000077: 23,3463 34751 CAF FOUR
053944,000078: 23,3464 76241 TR*GL**P MASK SIX # MAKE IT EVEN AND SMALLER
053945,000079: 23,3465 54143 TS TEM3
053946,000080: 23,3466 50143 INDEX TEM3
053947,000081: 23,3467 30766 CA CDUSPOT
053948,000082: 23,3470 52155 DXCH MPAC # STORING 2'S COMP ANGLE, LOADING MPAC
053949,000083: 23,3471 52127 DXCH VBUF +4 # STORING MPAC FOR LATER RESTORATION
053950,000084: 23,3472 04713 TC USPRCADR
053951,000085: 23,3473 21465 CADR CDULOGIC
053952,000086: 23,3474 00006 EXTEND
053953,000087: 23,3475 30155 DCA MPAC
053954,000088: 23,3476 50143 INDEX TEM3
053955,000089: 23,3477 52767 DXCH CDUSPOT # STORING 1'S COMPLEMENT ANGLE
053956,000090: 23,3500 04713 TC USPRCADR
053957,000091: 23,3501 01517 CADR COSINE
053958,000092: 23,3502 52155 DXCH MPAC
053959,000093: 23,3503 50143 INDEX TEM3
053960,000094: 23,3504 52745 DXCH COSCDU # STORING COSINE
053961,000095: 23,3505 00006 EXTEND
053962,000096: 23,3506 50143 INDEX TEM3
053963,000097: 23,3507 30767 DCA CDUSPOT # LOADING 1'S COMPLEMENT ANGLE
053964,000098: 23,3510 04713 TC USPRCADR
053965,000099: 23,3511 01531 CADR SINE +1 # SINE +1 EXPECTS ARGUMENT IN A AND L
053966,000100: 23,3512 52127 DXCH VBUF +4 # BRINGING UP PRIOR MPAC TO BE RESTORED
053967,000101: 23,3513 52155 DXCH MPAC
053968,000102: 23,3514 50143 INDEX TEM3
053969,000103: 23,3515 52737 DXCH SINCDU
053970,000104: 23,3516 10143 CCS TEM3
053971,000105: 23,3517 13464 TCF TR*GL**P
053972,000106: 23,3520 00142 TC TEM2
|
Page 1256 |
053974,000108: # ****************************************************************************************************************
053975,000109: # QUICTRIG, INTENDED FOR GUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS.
053976,000110: # QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2,
053977,000111: # AND CDUSPOT +4. UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN
053978,000112: # CDUSPOT. QUICTRIG'S EXECUTION TIME IS 4.1 MS; THIS IS 10 TIMES AS FAST AS CD*TR*GS. QUICTRIG MAY BE
053979,000113: # CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL.
053980,000114:
053981,000115: 23,3521 00004 QUICTRIG INHINT # INHINT SINCE DAP USES THE SAME TEMPS
053982,000116: 23,3522 00006 EXTEND
053983,000117: 23,3523 22061 QXCH ITEMP1
053984,000118: 23,3524 34751 CAF FOUR
053985,000119: 23,3525 76241 +4 MASK SIX
053986,000120: 23,3526 54062 TS ITEMP2
053987,000121: 23,3527 50062 INDEX ITEMP2
053988,000122: 23,3530 30766 CA CDUSPOT
053989,000123: 23,3531 05033 TC SPSIN
053990,000124: 23,3532 00006 EXTEND
053991,000125: 23,3533 74736 MP BIT14 # SCALE DOWN TO MATCH INTERPRETER OUTPUTS
053992,000126: 23,3534 50062 INDEX ITEMP2
053993,000127: 23,3535 52737 DXCH SINCDU
053994,000128: 23,3536 50062 INDEX ITEMP2
053995,000129: 23,3537 30766 CA CDUSPOT
053996,000130: 23,3540 05032 TC SPCOS
053997,000131: 23,3541 00006 EXTEND
053998,000132: 23,3542 74736 MP BIT14
053999,000133: 23,3543 50062 INDEX ITEMP2
054000,000134: 23,3544 52745 DXCH COSCDU
054001,000135: 23,3545 10062 CCS ITEMP2
054002,000136: 23,3546 13525 TCF QUICTRIG +4
054003,000137: 23,3547 30061 CA ITEMP1
054004,000138: 23,3550 00003 RELINT
054005,000139: 23,3551 00000 TC A
054006,000140:
|
Page 1257 |
054008,000142: # ****************************************************************************************************************
054009,000143: # THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
054010,000144: # INTERPRETIVE. LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
054011,000145:
054012,000146: # THESE INTERFACE ROUTINES ARE PERMANENT. ALL RESTORE USER'S EBANK
054013,000147: # SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL",
054014,000148: # RETURNING VIA QPRET. ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR-
054015,000149: # MED INTERPRETER-STYLE IN MPAC; COMPONENTS AT MPAC, MPAC +3, AND MPAC +5.
054016,000150:
054017,000151: # TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES
054018,000152: # AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4; ODD
054019,000153: # LOCATIONS NEED NOT BE ZEROED). TRG*NBSM DOES THE NB TO SM TRANSFOR-
054020,000154: # MATION; TRG*SMNB, VICE VERSA.
054021,000155:
054022,000156: # CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF
054023,000157: # THE CDU COUNTERS. OTHERWISE IT IS LIKE TRG*NBSM.
054024,000158:
054025,000159: # CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM.
054026,000160:
054027,000161: 23,3552 77776 CDU*SMNB EXIT
054028,000162: 23,3553 03453 TC CDUTRIGS
054029,000163: 23,3554 13557 TCF C*MM*N1
054030,000164:
054031,000165: 23,3555 77776 TRG*SMNB EXIT
054032,000166: 23,3556 03461 TC CD*TR*GS
054033,000167: 23,3557 07531 C*MM*N1 TC MPACVBUF # AX*SR*T EXPECTS VECTOR IN VBUF
054034,000168: 23,3560 46244 CS THREE # SIGNAL FOR SM TO NB TRANSFORMATION
054035,000169: 23,3561 03601 C*MM*N2 TC AX*SR*T
054036,000170: 23,3562 06036 TC INTPRET
054037,000171: 23,3563 43575 VLOAD RVQ
054038,000172: 23,3564 00123 VBUF
054039,000173:
054040,000174: 23,3565 77776 CDU*NBSM EXIT
054041,000175: 23,3566 03453 TC CDUTRIGS
054042,000176: 23,3567 13572 TCF C*MM*N3
054043,000177:
054044,000178: 23,3570 77776 TRG*NBSM EXIT
054045,000179: 23,3571 03461 TC CD*TR*GS
054046,000180: 23,3572 07531 C*MM*N3 TC MPACVBUF # FOR AX*SR*T
054047,000181: 23,3573 36244 CA THREE # SIGNAL FOR NB TO SM TRANSFORMATION
054048,000182: 23,3574 13561 TCF C*MM*N2
054049,000183:
054050,000184: # *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU
054051,000185: # AND COSCDU) RATHER THAN THE ANGLES THEMSELVES. OTHERWISE THEY ARE
054052,000186: # LIKE TRG*NBSM AND TRG*SMNB.
054053,000187:
054054,000188: # NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES
054055,000189: # OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM
|
Page 1258 |
054057,000191: # AND TRG*SMNB NEED BE CALLED FOR EACH SERIES. FOR SUBSEQUENT TRANSFOR-
054058,000192: # MATIONS USE *NBSM* AND *SMNB*.
054059,000193:
054060,000194: 23,3575 77776 *SMNB* EXIT
054061,000195: 23,3576 13557 TCF C*MM*N1
054062,000196:
054063,000197: 23,3577 77776 *NBSM* EXIT
054064,000198: 23,3600 13572 TCF C*MM*N3
054065,000199:
054066,000200: # AX*SR*T COMBINES THE OLD SMNB AND NBSM. FOR THE NB TO SM
054067,000201: # TRANSFORMATION, ENTER WITH +3 IN A. FOR SM TO NB, ENTER WITH -3.
054068,000202: # THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF.
054069,000203: # AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION
054070,000204: # AT SINCDU AND COSCDU, IN THE ORDER Y Z X. A CALL TO CD*TR*GS, WITH
054071,000205: # THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF
054072,000206: # THIS. HERE IS A SAMPLE CALLING SEQUENCE:-
054073,000207: # TC CDUTRIGS
054074,000208: # CS THREE ("CA THREE" FOR NBSM)
054075,000209: # TC AX*SR*T
054076,000210: # THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE
054077,000211: # THAN ONCE, UNLESS THE ANGLES HAVE CHANGED.
054078,000212:
054079,000213: # AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN
054080,000214: # UNITY. A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE
054081,000215: # HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS-
054082,000216: # FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED.
054083,000217:
054084,000218: 23,3601 54142 AX*SR*T TS DEXDEX # WHERE IT BECOMES THE INDEX OF INDEXES
054085,000219: 23,3602 00006 EXTEND
054086,000220: 23,3603 22145 QXCH RTNSAVER
054087,000221:
054088,000222: 23,3604 10142 R*TL**P CCS DEXDEX # +3 --> 0 -3 --> 2
054089,000223: 23,3605 40142 CS DEXDEX # THUS: +2 --> 1 -2 --> 1
054090,000224: 23,3606 66244 AD THREE # +1 --> 2 -1 --> 0
054091,000225: 23,3607 00006 EXTEND
054092,000226: 23,3610 50000 INDEX A
054093,000227: 23,3611 33670 DCA INDEXI
054094,000228: 23,3612 52144 DXCH DEXI
054095,000229:
054096,000230: 23,3613 34753 CA ONE
054097,000231: 23,3614 54130 TS BUF
054098,000232: 23,3615 00006 EXTEND
054099,000233: 23,3616 50143 INDEX DEX1
054100,000234: 23,3617 40123 DCS VBUF
054101,000235: 23,3620 13622 TCF LOOP1 # REALLY BE A SUBTRACT, AND VICE VERSA
054102,000236:
054103,000237: 23,3621 52131 LOOP2 DXCH BUF # LOADING VECTOR COMPONENT, STORING INDEX
|
Page 1259 |
054105,000239: 23,3622 52155 LOOP1 DXCH MPAC
054106,000240: 23,3623 33666 CA SINSLOC
054107,000241: 23,3624 60143 AD DEX1
054108,000242: 23,3625 54116 TS ADDRWD
054109,000243:
054110,000244: 23,3626 07106 TC DMPSUB # MULTIPLY BY SIN(CDUANGLE)
054111,000245: 23,3627 10142 CCS DEXDEX
054112,000246: 23,3630 52155 DXCH MPAC # NBSM CASE
054113,000247: 23,3631 13634 TCF +3
054114,000248: 23,3632 00006 EXTEND # SMNB CASE
054115,000249: 23,3633 40155 DCS MPAC
054116,000250: 23,3634 52160 DXCH TERM1TMP
054117,000251:
054118,000252: 23,3635 36241 CA SIX # SINCDU AND COSCDU (EACH 6 WORDS) MUST
054119,000253: 23,3636 26116 ADS ADDRWD # BE CONSECUTIVE AND IN THAT ORDER
054120,000254:
054121,000255: 23,3637 00006 EXTEND
054122,000256: 23,3640 50130 INDEX BUF
054123,000257: 23,3641 50143 INDEX DEX1
054124,000258: 23,3642 30123 DCA VBUF
054125,000259: 23,3643 52155 DXCH MPAC
054126,000260: 23,3644 07106 TC DMPSUB # MULTIPLY BY COS(CDUANGLE)
054127,000261: 23,3645 52155 DXCH MPAC
054128,000262: 23,3646 20160 DAS TERM1TMP
054129,000263: 23,3647 52160 DXCH TERM1TMP
054130,000264: 23,3650 20001 DDOUBL
054131,000265: 23,3651 50130 INDEX BUF
054132,000266: 23,3652 50143 INDEX DEX1
054133,000267: 23,3653 52123 DXCH VBUF
054134,000268: 23,3654 52131 DXCH BUF # LOADING INDEX, STORING VECTOR COMPONENT
054135,000269:
054136,000270: 23,3655 10000 CCS A # 'CAUSE THAT'S WHERE THE INDEX NOW IS
054137,000271: 23,3656 13621 TCF LOOP2
054138,000272:
054139,000273: 23,3657 00006 EXTEND
054140,000274: 23,3660 26142 DIM DEXDEX # DECREMENT MAGNITUDE PRESERVING SIGN
054141,000275:
054142,000276: 23,3661 10142 TSTPOINT CCS DEXDEX # ONLY THE BRANCHING FUNCTION IS USED
054143,000277: 23,3662 13604 TCF R*TL**P
054144,000278: 23,3663 00145 TC RTNSAVER
054145,000279: 23,3664 13604 TCF R*TL**P
054146,000280: 23,3665 00145 TC RTNSAVER
054147,000281:
054148,000282: 23,3666 00736 SINSLOC ADRES SINCDU # FOR USE IN SETTING ADDRWD
054149,000283:
054150,000284: 23,3667 00004 INDEXI DEC 4 B-14 # ********** DON'T **********
054151,000285: 23,3670 00002 DEC 2 B-14 # ********** TOUCH **********
054152,000286: 23,3671 00000 DEC 0 B-14 # ********** THESE **********
|
Page 1260 |
054154,000288: 23,3672 00004 DEC 4 B-14 # ********** CONSTANTS **********
054155,000289:
054156,000290: # ****************************************************************************************************************
|
Page 1261 |
054158,000292: # THIS SUBROUTINE COMPUTES INCREMENTAL CHANGES IN CDU(GIMBAL) ANGLES FROM INCREMENTAL CHANGES ABOUT SM AXES. IT
054159,000293: # REQUIRES SM INCREMENTS AS A DP VECTOR SCALED AT ONE REVOLUTION(DTHETASM,+2,+4). SIN,COS(CDUY,Z,X) ARE IN
054160,000294: # SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY,SCALED TO ONE HALF. CDU INCREENTS ARE PLACED IN DCDU,+2,+4 SCALED TO
054161,000295: # ONE REVOLUTION.
054162,000296:
054163,000297: # * COS(IGA)SEC(MGA) 0 -SIN(IGA)SEC(MGA) *
054164,000298: # * *
054165,000299: # * -COS(IGA)TAN(MGA) 1 SIN(IGA)TAN(MGA) *
054166,000300: # * *
054167,000301: # * SIN(IGA) 0 COS(IGA) *
054168,000302:
054169,000303: 14,3711 BANK 14
054170,000304: 23,2000 SETLOC POWFLIT1
054171,000305: 23,2000 BANK
054172,000306: 23,3673 41345 SMCDURES DLOAD DMP
054173,000307: 23,3674 01265 DTHETASM
054174,000308: 23,3675 00745 COSCDUY
054175,000309:
054176,000310: 23,3676 41325 PDDL DMP
054177,000311: 23,3677 01271 DTHETASM +4
054178,000312: 23,3700 00737 SINCDUY
054179,000313:
054180,000314: 23,3701 77621 BDSU
054181,000315: 23,3702 77671 DDV
054182,000316: 23,3703 00747 COSCDUZ
054183,000317: 23,3704 03234 STORE DCDU
054184,000318:
054185,000319: 23,3705 72405 DMP SL1 # SCALE
054186,000320: 23,3706 00741 SINCDUZ
054187,000321: 23,3707 77621 BDSU
054188,000322:
054189,000323: 23,3710 01267 DTHETASM +2
054190,000324: 23,3711 17236 STODL DCDU +2
054191,000325: 23,3712 01265 DTHETASM
054192,000326:
054193,000327: 23,3713 65205 DMP PDDL
054194,000328: 23,3714 00737 SINCDUY
054195,000329: 23,3715 01271 DTHETASM +4
054196,000330:
054197,000331: 23,3716 43205 DMP DAD
054198,000332: 23,3717 00745 COSCDUY
054199,000333: 23,3720 77752 SL1
054200,000334: 23,3721 03240 STORE DCDU +4
054201,000335: 23,3722 77616 RVQ
054202,000336:
End of include-file POWERED_FLIGHT_SUBROUTINES.agc. Parent file is MAIN.agc