Source Code
![]() |
These source-code files derive from a printout of Luminary 210 (Apollo 15-17
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Jim Lawton, and transcribed to source code by a
team of volunteers. This colorized, syntax-highlighted form was created
by assembling that transcribed source code. Note that the full page images
are available on the
Virtual AGC project page at archive.org, while reduced-size images
are presented at the VirtualAGC project website. Report or fix any
transcription errors at
the Virtual AGC project code repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY BY NASA 2021112-161 17:11 MAR. 19,1971Note that the date is the date of the printout, not the date of the program revision. |
027233,000002: ## Copyright: Public domain.
027234,000003: ## Filename: P30,P37.agc
027235,000004: ## Filename: P30,P37.agc
027236,000005: ## Purpose: A section of Luminary revision 210.
027237,000006: ## It is part of the source code for the Lunar Module's (LM)
027238,000007: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
027239,000008: ## This file is intended to be a faithful transcription, except
027240,000009: ## that the code format has been changed to conform to the
027241,000010: ## requirements of the yaYUL assembler rather than the
027242,000011: ## original YUL assembler.
027243,000012: ## Reference: pp. 620-623
027244,000013: ## Assembler: yaYUL
027245,000014: ## Contact: Ron Burkey <info@sandroid.org>.
027246,000015: ## Website: www.ibiblio.org/apollo/index.html
027247,000016: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
027248,000017: ## 2016-11-28 HG Transcribed
027249,000018: ## 2016-12-07 HG fix P00 -> POO
027250,000019: ## 2016-12-25 RSB Comment-text proofed using ProoferComments
027251,000020: ## and corrected errors found.
027252,000021: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
027253,000022:
![]() |
Page 620 |
027255,000024: # PROGRAM DESCRIPTION P30 DATE 3-6-67
027256,000025:
027257,000026: # MOD.1 BY RAMA AIYAWAR
027258,000027: # FUNCTIONAL DESCRIPTION
027259,000028: # ACCEPT ASTRONAUT INPUTS OF TIG,DELV(LV)
027260,000029: # CALL IMU STATUS CHECK ROUTINE (R02)
027261,000030: # DISPLAY TIME TO GO, APOGEE, PERIGEE, DELV(MAG), MGA AT IGN
027262,000031: # REQUEST BURN PROGRAM
027263,000032:
027264,000033: # CALLING SEQUENCE VIA JOB FROM V37
027265,000034:
027266,000035: # EXIT VIA V37 CALL OR TO GOTOPOOH (V34E)
027267,000036:
027268,000037: # SUBROUTINE CALLS-FLAGUP, PHASCHNG, BANKCALL, ENDOFJOB, GOFLASH, GOFLASHR
027269,000038: # GOPERF3R, INTPRET, BLANKET, GOTOPOOH, R02BOTH, S30.1,
027270,000039: # TTG/N35, MIDGIM, DISPMGA
027271,000040:
027272,000041: # ERASABLE INITIALIZATION- STATE VECTOR
027273,000042:
027274,000043: # OUTPUT-RINIT, VINIT, +MGA, VTIG, RTIG, DELVSIN, DELVSAB, DELVSLV, HAPO,
027275,000044: # HPER, TTOGO
027276,000045:
027277,000046: # DEBRIS- A, L, MPAC, PUSHLIST
027278,000047:
027279,000048: 32,2570 BANK 32
027280,000049: 35,2000 SETLOC P30S
027281,000050: 35,2000 BANK
027282,000051: 35,2000 E4,1643 EBANK= +MGA
027283,000052: 35,2000 COUNT* $$/P30
027284,000053: 35,2000 05506 P30 TC UPFLAG # SET UPDATE FLAG
027285,000054: 35,2001 00027 ADRES UPDATFLG
027286,000055: 35,2002 05506 TC UPFLAG # SET TRACK FLAG
027287,000056: 35,2003 00031 ADRES TRACKFLG
027288,000057:
027289,000058: 35,2004 32032 P30N33 CAF V06N33 # T OF IGN
027290,000059: 35,2005 03622 TC VNPOOH # RETURNS ON PROCEED, POOH ON TERMINATE
027291,000060:
027292,000061: 35,2006 33637 CAF V06N81 # DISPLAY DELTA V (LV)
027293,000062: 35,2007 03622 TC VNPOOH # REDISPLAY ON RECYCLE
027294,000063:
027295,000064: 35,2010 05520 TC DOWNFLAG # RESET UPDATE FLAG
027296,000065: 35,2011 00027 ADRES UPDATFLG
027297,000066: 35,2012 06060 TC INTPRET
027298,000067: 35,2013 77624 CALL
027299,000068: 35,2014 70000 S30.1
027300,000069: 35,2015 43014 SET SET
027301,000070: 35,2016 00470 UPDATFLG
027302,000071: 35,2017 01067 XDELVFLG
027303,000072: 35,2020 77776 EXIT
027304,000073: 35,2021 32033 PARAM30 CAF V06N42 # DISPLAY APOGEE,PERIGEE ,DELTA V
027305,000074:
![]() |
Page 621 |
027307,000076: 35,2022 03622 TC VNPOOH
027308,000077:
027309,000078: 35,2023 06060 TC INTPRET
027310,000079: 35,2024 77614 SET
027311,000080: 35,2025 01071 FINALFLG
027312,000081: 35,2026 77624 REVN1645 CALL
027313,000082: 35,2027 73516 VN1645
027314,000083: 35,2030 77650 GOTO # COMES HERE ON RECYCLE RESPONSE
027315,000084: 35,2031 72026 REVN1645
027316,000085:
027317,000086: 35,2032 01441 V06N33 VN 0633
027318,000087: 35,2033 01452 V06N42 VN 0642
027319,000088:
![]() |
Page 622 |
027321,000090: # PROGRAM DESCRIPTION S30.1 DATE 9NOV66
027322,000091:
027323,000092: # MOD NO 1 LOG SECTION P30,P37
027324,000093: # MOD BY RAMA AIYAWAR **
027325,000094: # FUNCTIONAL DESCRIPTION
027326,000095: # BASED ON STORED TARGET PARAMETERS(R OF IGNITION(RTIG),V OF
027327,000096: # IGNITION(VTIG),TIME OF IGNITION (TIG)),COMPUTE PERIGEE ALTITUDE
027328,000097: # APOGEE ALTITUDE AND DELTAV REQUIRED(DELVSIN).
027329,000098: # CALLING SEQUENCE
027330,000099: # L CALL
027331,000100: # L+1 S30.1
027332,000101: # NORMAL EXIT MODE
027333,000102: # AT L+2 OR CALLING SEQUENCE (GOTO L+2)
027334,000103: # SUBROUTINES CALLED
027335,000104: # LEMPREC
027336,000105: # PERIAPO
027337,000106: # ALARM OR ABORT EXIT MODES
027338,000107: # NONE
027339,000108: # ERASABLE INITIALIZATION REQUIRED
027340,000109: # TIG TIME OF IGNITION DP B28CS
027341,000110: # DELVSLV SPECIFIED DELTA-V IN LOCAL VERT.
027342,000111: # COORDS. OF ACTIVE VEHICLE AT
027343,000112: # TIME OF IGNITION VECTOR B+7 METERS/CS
027344,000113: # OUTPUT
027345,000114: # RTIG POSITION AT TIG VECTOR B+29 METERS
027346,000115: # VTIG VELOCITY AT TIG VECTOR B+29 METERS/CS
027347,000116: # PDL 4D APOGEE ALTITUDE DP B+29 M , B+27 METERS.
027348,000117: # HAPO APOGEE ALTITUDE DP B+29 METERS
027349,000118: # PDL 8D PERIGEE ALTITUDE DP B+29 M , B+27 METERS.
027350,000119: # HPER PERIGEE ALTITUDE DP B+29 METERS
027351,000120: # DELVSIN SPECIFIED DELTA-V IN INERTIAL
027352,000121: # COORD. OF ACTIVE VEHICLE AT
027353,000122: # TIME OF IGNITION VECTOR B+7 METERS/CS
027354,000123: # DELVSAB MAG. OF DELVSIN VECTOR B+7 METERS/CS
027355,000124: # DEBRIS QTEMP TEMP. ERASABLE
027356,000125: # QPRET,MPAC
027357,000126: # PUSHLIST
027358,000127:
027359,000128: 34,2000 SETLOC P30S1
027360,000129: 34,2000 BANK
027361,000130:
027362,000131: 34,2000 COUNT* $$/S30S
027363,000132:
027364,000133: 34,2000 71220 S30.1 STQ DLOAD
027365,000134: 34,2001 03632 QTEMP
027366,000135: 34,2002 03442 TIG # TIME IGNITION SCALED AT 2(+28)CS
027367,000136: 34,2003 34041 STCALL TDEC1
027368,000137: 34,2004 27115 LEMPREC # ENCKE ROUTINE FOR LEM
027369,000138:
027370,000139: 34,2005 67175 VLOAD SXA,2
027371,000140:
![]() |
Page 623 |
027373,000142: 34,2006 00001 RATT
027374,000143: 34,2007 02777 RTX2
027375,000144: 34,2010 03642 STORE RTIG # RADIUS VECTOR AT IGNITION TIME
027376,000145: 34,2011 57456 UNIT VCOMP
027377,000146: 34,2012 27656 STOVL DELVSIN # ZRF/LV IN DELVSIN SCALED AT 2
027378,000147: 34,2013 00007 VATT # VELOCITY VECTOR AT TIG, SCALED 2(7) M/CS
027379,000148: 34,2014 03650 STORE VTIG
027380,000149: 34,2015 53435 VXV UNIT
027381,000150: 34,2016 03642 RTIG
027382,000151: 34,2017 66001 SETPD SXA,1
027383,000152: 34,2020 00001 0
027384,000153: 34,2021 02776 RTX1
027385,000154: 34,2022 47206 PUSH VXV # YRF/LV PDL 0 SCALED AT 2
027386,000155: 34,2023 03656 DELVSIN
027387,000156: 34,2024 63372 VSL1 PDVL
027388,000157: 34,2025 63315 PDVL PDVL # YRF/LV PDL 6 SCALED AT 2
027389,000158: 34,2026 03656 DELVSIN # ZRF/LV PDL 12D SCALED AT 2
027390,000159: 34,2027 03434 DELVSLV
027391,000160: 34,2030 76505 VXM VSL1
027392,000161: 34,2031 00001 0
027393,000162: 34,2032 03656 STORE DELVSIN # DELTAV IN INERT. COOR. SCALED TO B+7M/CS
027394,000163: 34,2033 77646 ABVAL
027395,000164: 34,2034 27664 STOVL DELVSAB # DELTA V MAG.
027396,000165: 34,2035 03642 RTIG # (FOR PERIAPO)
027397,000166: 34,2036 53315 PDVL VAD # VREQUIRED = VTIG + DELVSIN (FOR PERIAPO)
027398,000167: 34,2037 03650 VTIG
027399,000168: 34,2040 03656 DELVSIN
027400,000169: 34,2041 77624 CALL
027401,000170: 34,2042 46337 PERIAPO1
027402,000171: 34,2043 77624 CALL
027403,000172: 34,2044 46447 SHIFTR1 # RESCALE IF NEEDED
027404,000173: 34,2045 77624 CALL # LIMIT DISPLAY TO 9999.9 N. MI.
027405,000174: 34,2046 45640 MAXCHK
027406,000175: 34,2047 16312 STODL HPER # PERIGEE ALT 2(29) METERS, FOR DISPLAY
027407,000176: 34,2050 00005 4D
027408,000177: 34,2051 77624 CALL
027409,000178: 34,2052 46447 SHIFTR1 # RESCALE IF NEEDED
027410,000179: 34,2053 77624 CALL # LIMIT DISPLAY TO 9999.9 N. MI.
027411,000180: 34,2054 45640 MAXCHK
027412,000181: 34,2055 36310 STCALL HAPO # APOGEE ALT 2(29) METERS, FOR DISPLAY
027413,000182: 34,2056 03632 QTEMP
End of include-file P30,P37.agc. Parent file is MAIN.agc