Source Code
![]() |
These source-code files were transcribed from scans made from Don Eyles's personal
copy of Luminary 069. They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Onno Hommes. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are prefixed with a single '#' symbol,
whereas comments added later are prefixed by "##" or "###". In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the Luminary 69 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 069 OF AGC PROGRAM LUMINARY BY NASA 2021112-011 19:02 NOV. 25,1968Note that the date is the date of the printout, not the date of the program revision. |
028882,000002: ## Copyright: Public domain.
028883,000003: ## Filename: GENERAL_LAMBERT_AIMPOINT_GUIDANCE.agc
028884,000004: ## Purpose: The main source file for Luminary revision 069.
028885,000005: ## It is part of the source code for the original release
028886,000006: ## of the flight software for the Lunar Module's (LM) Apollo
028887,000007: ## Guidance Computer (AGC) for Apollo 10. The actual flown
028888,000008: ## version was Luminary 69 revision 2, which included a
028889,000009: ## newer lunar gravity model and only affected module 2.
028890,000010: ## This file is intended to be a faithful transcription, except
028891,000011: ## that the code format has been changed to conform to the
028892,000012: ## requirements of the yaYUL assembler rather than the
028893,000013: ## original YUL assembler.
028894,000014: ## Reference: pp. 661-663
028895,000015: ## Assembler: yaYUL
028896,000016: ## Contact: Ron Burkey <info@sandroid.org>.
028897,000017: ## Website: www.ibiblio.org/apollo/index.html
028898,000018: ## Mod history: 2016-12-13 MAS Created from Luminary 99.
028899,000019: ## 2016-12-14 MAS Updated from comment-proofed Luminary 99 version.
028900,000020: ## 2016-12-17 RRB Updated for Luminary 69.
028901,000021: ## 2017-01-28 RSB Proofed comment text using octopus/prooferComments
028902,000022: ## and fixed errors found.
028903,000023:
![]() |
Page 661 |
028905,000025:
028906,000026: # GENERAL LAMBERT AIMPOINT GUIDANCE **
028907,000027: # WRITTEN BY RAMA M AIYAWAR
028908,000028:
028909,000029: # PROGRAM P-31 DESCRIPTION **
028910,000030:
028911,000031: # 1. TO ACCEPT TARGETING PARAMETERS OBTAINED FROM A SOURCE EXTERNAL
028912,000032: # TO THE LEM AND COMPUTE THERE FROM THE REQUIRED-VELOCITY AND
028913,000033: # OTHER INITIAL CONDITIONS REQUIRED BY LM FOR DESIRED MANEUVER.
028914,000034: # THE TARGETING PARAMETERS ARE TIG (TIME OF IGNITION), TARGET
028915,000035: # VECTOR (RTARG), AND THE TIME FROM TIG UNTIL THE TARGET IS
028916,000036: # REACHED(DELLT4), DESIRED TIME OF FLIGHT FROM RINIT TO RTARG..
028917,000037:
028918,000038: # ASSUMPTIONS **
028919,000039:
028920,000040: # 1. THE TARGET PARAMETERS MAY HAVE BEEN LOADED PRIOR TO THE
028921,000041: # EXECUTION OF THIS PROGRAM.
028922,000042: # 2. THIS PROGRAM IS APPLICABLE IN EITHER EARTH OR LUNAR ORBIT.
028923,000043: # 3. THIS PROGRAM IS DESIGNED FOR ONE-MAN OPERATION, AND SHOULD
028924,000044: # BE SELECTED BY THE ASTRONAUT BY DSKY ENTRY V37 E31.
028925,000045:
028926,000046: # SUBROUTINES USED **
028927,000047: #
028928,000048: # MANUPARM, TTG/N35, R02BOTH, MIDGIM, DISPMGA, FLAGDOWN, BANKCALL,
028929,000049: # GOTOPOOH, ENDOFJOB, PHASCHNG, GOFLASHR, GOFLASH.
028930,000050:
028931,000051: # MANUPARM CALCULATES APOGEE, PERIGEE ALTITUDES AND DELTAV DESIRED
028932,000052: # FOR THE MANEUVER.
028933,000053:
028934,000054: # TTG/N35 CLOCKTASK - UPDATES CLOCK.
028935,000055:
028936,000056: # MIDGIM CALCULATES MIDDLE GIMBAL ANGLE FOR DISPLAY.
028937,000057:
028938,000058: # R02BOTH IMU - STATUS CHECK ROUTINE.
028939,000059:
028940,000060: # DISPLAYS USED IN P-31LM **
028941,000061:
028942,000062: # V06N33 DISPLAY SOTRED TIG (IN HRS. MINS. SECS)
028943,000063: # V06N42 DISPLAY APOGEE, PERIGEE, DELTAV.
028944,000064: # V16N35 DISPLAY TIME FROM TIG.
028945,000065: # V06N45 TIME FROM IGNITION AND MIDDLE GIMBAL ANGLE.
028946,000066:
028947,000067: # ERASABLE INITIALIZATION REQUIRED **
028948,000068:
028949,000069: # TIG TIME OF IGNITION DP (B+28) CS.
028950,000070:
028951,000071: # DELLT4 DESIRED TIME OF FLIGHT DP (B+28) CS
028952,000072: # FROM RINIT TO RTARG.
028953,000073: # RTARG RADIUS VECTOR OF TARGET POSITION VECTOR
028954,000074: # RADIUS VECTOR SCALED TO (B+29)METERS IF EARTH ORBIT
![]() |
Page 662 |
028956,000076: # RADIUS VECTOR SCALED TO (B+27)METERS IF MOON ORBIT
028957,000077:
028958,000078: # OUTPUT **
028959,000079:
028960,000080: # HAPO APOGEE ALTITUDE
028961,000081: # HPER PERIGEE ALTITUDE
028962,000082: # VGDISP MAG.OF DELTAV FOR DISPLAY ,SCALING B+7 M/CS EARTH
028963,000083: # MAG.OF DELTAV FOR DISPLAY, SCALING B+5 M/CS MOON
028964,000084: # MIDGIM MIDDLE GIMBAL ANGLE
028965,000085: # XDELVFLG RESETS XDELVFLG FOR LAMBERT VG COMPUTATIONS
028966,000086:
028967,000087: # ALARMS OR ABORTS NONE **
028968,000088:
028969,000089: # RESTARTS ARE VIA GROUP 4 **
028970,000090:
028971,000091: 35,2000 SETLOC GLM
028972,000092: 35,2000 BANK
028973,000093:
028974,000094: 35,2414 E7,1466 EBANK= SUBEXIT
028975,000095:
028976,000096: 35,2414 COUNT* $$/P31
028977,000097: 35,2414 02325 P31 TC P20FLGON
028978,000098: 35,2415 32025 CAF V06N33 # TIG
028979,000099: 35,2416 03651 TC VNPOOH
028980,000100: 35,2417 06036 TC INTPRET
028981,000101: 35,2420 71214 CLEAR DLOAD
028982,000102: 35,2421 00670 UPDATFLG
028983,000103: 35,2422 03440 TIG
028984,000104: 35,2423 34041 STCALL TDEC1 # INTEGRATE STATE VECTORS TO TIG
028985,000105: 35,2424 27057 LEMPREC
028986,000106: 35,2425 40375 VLOAD SETPD
028987,000107: 35,2426 00001 RATT
028988,000108: 35,2427 00001 0D
028989,000109: 35,2430 03640 STORE RTIG
028990,000110: 35,2431 26327 STOVL RINIT
028991,000111: 35,2432 00007 VATT
028992,000112: 35,2433 03646 STORE VTIG
028993,000113: 35,2434 16335 STODL VINIT
028994,000114: 35,2435 32364 P30ZERO
028995,000115: 35,2436 65206 PUSH PDDL # E4 AND NUMIT = 0
028996,000116: 35,2437 03450 DELLT4
028997,000117: 35,2440 66015 DAD SXA,1
028998,000118: 35,2441 03440 TIG
028999,000119: 35,2442 03375 RTX1
029000,000120: 35,2443 03627 STORE TPASS4
029001,000121: 35,2444 45134 SXA,2 CALL
029002,000122: 35,2445 03376 RTX2
029003,000123: 35,2446 22000 INITVEL
029004,000124: 35,2447 41575 VLOAD PUSH
![]() |
Page 663 |
029006,000126: 35,2450 03366 DELVEET3
029007,000127: 35,2451 03654 STORE DELVSIN
029008,000128: 35,2452 43046 ABVAL CLEAR
029009,000129: 35,2453 01267 XDELVFLG
029010,000130: 35,2454 37662 STCALL VGDISP
029011,000131: 35,2455 20021 GET.LVC
029012,000132: 35,2456 63375 VLOAD PDVL
029013,000133: 35,2457 03640 RTIG
029014,000134: 35,2460 02343 VIPRIME
029015,000135: 35,2461 77624 CALL
029016,000136: 35,2462 46277 PERIAPO1
029017,000137: 35,2463 77624 CALL
029018,000138: 35,2464 46407 SHIFTR1
029019,000139: 35,2465 77624 CALL # LIMIT DISPLAY TO 9999.9 N. MI.
029020,000140: 35,2466 45636 MAXCHK
029021,000141: 35,2467 16325 STODL HPER
029022,000142: 35,2470 00005 4D
029023,000143: 35,2471 77624 CALL
029024,000144: 35,2472 46407 SHIFTR1
029025,000145: 35,2473 77624 CALL # LIMIT DISPLAY TO 9999.9 N. MI.
029026,000146: 35,2474 45636 MAXCHK
029027,000147: 35,2475 02323 STORE HAPO
029028,000148: 35,2476 77776 EXIT
029029,000149: 35,2477 33666 CAF V06N81 # DELVLVC
029030,000150: 35,2500 03651 TC VNPOOH
029031,000151: 35,2501 32026 CAF V06N42 # HAPO, HPER, VGDISP
029032,000152: 35,2502 03651 TC VNPOOH
029033,000153: 35,2503 06036 TC INTPRET
029034,000154: 35,2504 45014 REVN1645 SET CALL # TRKMKCNT, TTOGO, +MGA
029035,000155: 35,2505 01071 FINALFLG
029036,000156: 35,2506 73542 VN1645
029037,000157: 35,2507 77650 GOTO
029038,000158: 35,2510 72504 REVN1645
End of include-file GENERAL_LAMBERT_AIMPOINT_GUIDANCE.agc. Parent file is MAIN.agc