Source Code
|
These source-code files are part of a reconstructed copy of Luminary 178, the
final release of the Apollo 14 Lunar Module (LM) Apollo Guidance Computer
(AGC) software.
The reconstruction began with source code of Zerlina 56, Luminary 210, and Luminary 131, previously transcribed from digitized copies of those programs. The code was created by combining the three, using Zerlina 56 as a base, since it was based off of Luminary 183. The differences between the three were carefully merged using the Luminary memos as a guide, with all changes made after Luminary 178 being backed out. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152N. Note that page numbers in the reconstructed code match those for the baseline log section mentioned in each file's changelog; the page numbers for a real Luminary 178 listing would be different. 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. |
026533,000002: ## Copyright: Public domain.
026534,000003: ## Filename: P30,P37.agc
026535,000004: ## Purpose: A section of Luminary revision 178.
026536,000005: ## It is part of the reconstructed source code for the final
026537,000006: ## release of the flight software for the Lunar Module's
026538,000007: ## (LM) Apollo Guidance Computer (AGC) for Apollo 14. The
026539,000008: ## code has been recreated from copies of Zerlina 56, Luminary
026540,000009: ## 210, and Luminary 131, as well as many Luminary memos.
026541,000010: ## It has been adapted such that the resulting bugger words
026542,000011: ## exactly match those specified for Luminary 178 in NASA
026543,000012: ## drawing 2021152N, which gives relatively high confidence
026544,000013: ## that the reconstruction is correct.
026545,000014: ## Reference: pp. 612-615
026546,000015: ## Assembler: yaYUL
026547,000016: ## Contact: Ron Burkey <info@sandroid.org>.
026548,000017: ## Website: www.ibiblio.org/apollo/index.html
026549,000018: ## Mod history: 2019-08-14 MAS Created from Zerlina 56.
026550,000019:
|
Page 612 |
026552,000021: # PROGRAM DESCRIPTION P30 DATE 3-6-67
026553,000022:
026554,000023: # MOD.1 BY RAMA AIYAWAR
026555,000024: # FUNCTIONAL DESCRIPTION
026556,000025: # ACCEPT ASTRONAUT INPUTS OF TIG,DELV(LV)
026557,000026: # CALL IMU STATUS CHECK ROUTINE (R02)
026558,000027: # DISPLAY TIME TO GO, APOGEE, PERIGEE, DELV(MAG), MGA AT IGN
026559,000028: # REQUEST BURN PROGRAM
026560,000029:
026561,000030: # CALLING SEQUENCE VIA JOB FROM V37
026562,000031:
026563,000032: # EXIT VIA V37 CALL OR TO GOTOPOOH (V34E)
026564,000033:
026565,000034: # SUBROUTINE CALLS-FLAGUP, PHASCHNG, BANKCALL, ENDOFJOB, GOFLASH, GOFLASHR
026566,000035: # GOPERF3R, INTPRET, BLANKET, GOTOPOOH, R02BOTH, S30.1,
026567,000036: # TTG/N35, MIDGIM, DISPMGA
026568,000037:
026569,000038: # ERASABLE INITIALIZATION- STATE VECTOR
026570,000039:
026571,000040: # OUTPUT-RINIT, VINIT, +MGA, VTIG, RTIG, DELVSIN, DELVSAB, DELVSLV, HAPO,
026572,000041: # HPER, TTOGO
026573,000042:
026574,000043: # DEBRIS- A, L, MPAC, PUSHLIST
026575,000044:
026576,000045: 32,2550 BANK 32
026577,000046: 35,2000 SETLOC P30S
026578,000047: 35,2000 BANK
026579,000048: 35,2000 E4,1652 EBANK= +MGA
026580,000049: 35,2000 COUNT* $$/P30
026581,000050: 35,2000 05515 P30 TC UPFLAG # SET UPDATE FLAG
026582,000051: 35,2001 00027 ADRES UPDATFLG
026583,000052: 35,2002 05515 TC UPFLAG # SET TRACK FLAG
026584,000053: 35,2003 00031 ADRES TRACKFLG
026585,000054:
026586,000055: 35,2004 32032 P30N33 CAF V06N33 # T OF IGN
026587,000056: 35,2005 03627 TC VNPOOH # RETURNS ON PROCEED, POOH ON TERMINATE
026588,000057:
026589,000058: 35,2006 33644 CAF V06N81 # DISPLAY DELTA V (LV)
026590,000059: 35,2007 03627 TC VNPOOH # REDISPLAY ON RECYCLE
026591,000060:
026592,000061: 35,2010 05527 TC DOWNFLAG # RESET UPDATE FLAG
026593,000062: 35,2011 00027 ADRES UPDATFLG
026594,000063: 35,2012 06042 TC INTPRET
026595,000064: 35,2013 77624 CALL
026596,000065: 35,2014 70000 S30.1
026597,000066: 35,2015 43014 SET SET
026598,000067: 35,2016 00470 UPDATFLG
026599,000068: 35,2017 01067 XDELVFLG
026600,000069: 35,2020 77776 EXIT
026601,000070: 35,2021 32033 PARAM30 CAF V06N42 # DISPLAY APOGEE,PERIGEE ,DELTA V
026602,000071:
|
Page 613 |
026604,000073: 35,2022 03627 TC VNPOOH
026605,000074:
026606,000075: 35,2023 06042 TC INTPRET
026607,000076: 35,2024 77614 SET
026608,000077: 35,2025 01071 FINALFLG
026609,000078: 35,2026 77624 REVN1645 CALL
026610,000079: 35,2027 73523 VN1645
026611,000080: 35,2030 77650 GOTO # COMES HERE ON RECYCLE RESPONSE
026612,000081: 35,2031 72026 REVN1645
026613,000082:
026614,000083: 35,2032 01441 V06N33 VN 0633
026615,000084: 35,2033 01452 V06N42 VN 0642
026616,000085:
|
Page 614 |
026618,000087: # PROGRAM DESCRIPTION S30.1 DATE 9NOV66
026619,000088:
026620,000089: # MOD NO 1 LOG SECTION P30,P37
026621,000090: # MOD BY RAMA AIYAWAR **
026622,000091: # FUNCTIONAL DESCRIPTION
026623,000092: # BASED ON STORED TARGET PARAMETERS(R OF IGNITION(RTIG),V OF
026624,000093: # IGNITION(VTIG),TIME OF IGNITION (TIG)),COMPUTE PERIGEE ALTITUDE
026625,000094: # APOGEE ALTITUDE AND DELTAV REQUIRED(DELVSIN).
026626,000095: # CALLING SEQUENCE
026627,000096: # L CALL
026628,000097: # L+1 S30.1
026629,000098: # NORMAL EXIT MODE
026630,000099: # AT L+2 OR CALLING SEQUENCE (GOTO L+2)
026631,000100: # SUBROUTINES CALLED
026632,000101: # LEMPREC
026633,000102: # PERIAPO
026634,000103: # ALARM OR ABORT EXIT MODES
026635,000104: # NONE
026636,000105: # ERASABLE INITIALIZATION REQUIRED
026637,000106: # TIG TIME OF IGNITION DP B28CS
026638,000107: # DELVSLV SPECIFIED DELTA-V IN LOCAL VERT.
026639,000108: # COORDS. OF ACTIVE VEHICLE AT
026640,000109: # TIME OF IGNITION VECTOR B+7 METERS/CS
026641,000110: # OUTPUT
026642,000111: # RTIG POSITION AT TIG VECTOR B+29 METERS
026643,000112: # VTIG VELOCITY AT TIG VECTOR B+29 METERS/CS
026644,000113: # PDL 4D APOGEE ALTITUDE DP B+29 M , B+27 METERS.
026645,000114: # HAPO APOGEE ALTITUDE DP B+29 METERS
026646,000115: # PDL 8D PERIGEE ALTITUDE DP B+29 M , B+27 METERS.
026647,000116: # HPER PERIGEE ALTITUDE DP B+29 METERS
026648,000117: # DELVSIN SPECIFIED DELTA-V IN INERTIAL
026649,000118: # COORD. OF ACTIVE VEHICLE AT
026650,000119: # TIME OF IGNITION VECTOR B+7 METERS/CS
026651,000120: # DELVSAB MAG. OF DELVSIN VECTOR B+7 METERS/CS
026652,000121: # DEBRIS QTEMP TEMP. ERASABLE
026653,000122: # QPRET,MPAC
026654,000123: # PUSHLIST
026655,000124:
026656,000125: 34,2000 SETLOC P30S1
026657,000126: 34,2000 BANK
026658,000127:
026659,000128: 34,2000 COUNT* $$/S30S
026660,000129:
026661,000130: 34,2000 71220 S30.1 STQ DLOAD
026662,000131: 34,2001 03632 QTEMP
026663,000132: 34,2002 03442 TIG # TIME IGNITION SCALED AT 2(+28)CS
026664,000133: 34,2003 34041 STCALL TDEC1
026665,000134: 34,2004 27056 LEMPREC # ENCKE ROUTINE FOR LEM
026666,000135:
026667,000136: 34,2005 67175 VLOAD SXA,2
026668,000137:
|
Page 615 |
026670,000139: 34,2006 00001 RATT
026671,000140: 34,2007 02777 RTX2
026672,000141: 34,2010 03642 STORE RTIG # RADIUS VECTOR AT IGNITION TIME
026673,000142: 34,2011 57456 UNIT VCOMP
026674,000143: 34,2012 27656 STOVL DELVSIN # ZRF/LV IN DELVSIN SCALED AT 2
026675,000144: 34,2013 00007 VATT # VELOCITY VECTOR AT TIG, SCALED 2(7) M/CS
026676,000145: 34,2014 03650 STORE VTIG
026677,000146: 34,2015 53435 VXV UNIT
026678,000147: 34,2016 03642 RTIG
026679,000148: 34,2017 66001 SETPD SXA,1
026680,000149: 34,2020 00001 0
026681,000150: 34,2021 02776 RTX1
026682,000151: 34,2022 47206 PUSH VXV # YRF/LV PDL 0 SCALED AT 2
026683,000152: 34,2023 03656 DELVSIN
026684,000153: 34,2024 63372 VSL1 PDVL
026685,000154: 34,2025 63315 PDVL PDVL # YRF/LV PDL 6 SCALED AT 2
026686,000155: 34,2026 03656 DELVSIN # ZRF/LV PDL 12D SCALED AT 2
026687,000156: 34,2027 03434 DELVSLV
026688,000157: 34,2030 76505 VXM VSL1
026689,000158: 34,2031 00001 0
026690,000159: 34,2032 03656 STORE DELVSIN # DELTAV IN INERT. COOR. SCALED TO B+7M/CS
026691,000160: 34,2033 77646 ABVAL
026692,000161: 34,2034 27664 STOVL DELVSAB # DELTA V MAG.
026693,000162: 34,2035 03642 RTIG # (FOR PERIAPO)
026694,000163: 34,2036 53315 PDVL VAD # VREQUIRED = VTIG + DELVSIN (FOR PERIAPO)
026695,000164: 34,2037 03650 VTIG
026696,000165: 34,2040 03656 DELVSIN
026697,000166: 34,2041 77624 CALL
026698,000167: 34,2042 46335 PERIAPO1
026699,000168: 34,2043 77624 CALL
026700,000169: 34,2044 46445 SHIFTR1 # RESCALE IF NEEDED
026701,000170: 34,2045 77624 CALL # LIMIT DISPLAY TO 9999.9 N. MI.
026702,000171: 34,2046 45636 MAXCHK
026703,000172: 34,2047 16321 STODL HPER # PERIGEE ALT 2(29) METERS, FOR DISPLAY
026704,000173: 34,2050 00005 4D
026705,000174: 34,2051 77624 CALL
026706,000175: 34,2052 46445 SHIFTR1 # RESCALE IF NEEDED
026707,000176: 34,2053 77624 CALL # LIMIT DISPLAY TO 9999.9 N. MI.
026708,000177: 34,2054 45636 MAXCHK
026709,000178: 34,2055 36317 STCALL HAPO # APOGEE ALT 2(29) METERS, FOR DISPLAY
026710,000179: 34,2056 03632 QTEMP
End of include-file P30,P37.agc. Parent file is MAIN.agc