# Copyright: Public domain. # Filename: R30.agc # Purpose: Part of the source code for Luminary 1A build 099. # It is part of the source code for the Lunar Module's (LM) # Apollo Guidance Computer (AGC), for Apollo 11. # Assembler: yaYUL # Contact: Ron Burkey <info@sandroid.org>. # Website: www.ibiblio.org/apollo. # Pages: 712-722 # Mod history: 2009-05-19 RSB Adapted from the corresponding # Luminary131 file, using page # images from Luminary 1A. # 2009-06-07 RSB Removed a space between two components of # a 2OCT that isn't legal in yaYUL. # # This source code has been transcribed or otherwise adapted from # digitized images of a hardcopy from the MIT Museum. The digitization # was performed by Paul Fjeld, and arranged for by Deborah Douglas of # the Museum. Many thanks to both. The images (with suitable reduction # in storage size and consequent reduction in image quality as well) are # available online at www.ibiblio.org/apollo. If for some reason you # find that the images are illegible, contact me at info@sandroid.org # about getting access to the (much) higher-quality images which Paul # actually created. # # Notations on the hardcopy document read, in part: # # Assemble revision 001 of AGC program LMY99 by NASA 2021112-061 # 16:27 JULY 14, 1969
# Page 712 # SUBROUTINE NAME: V82CALL # MOD NO: 0 DATE: 16 FEB 67 # MOD BY: R. R. BAIRNSFATHER LOG SECTION: R30 # MOD NO: 1 MOD BY: R. R. BAIRNSFATHER DATE: 11 APR 67 SR30.1 CHANGED TO ALLOW MONITOR OPERN # MOD NO: 2 MOD BY: ALONSO DATE: 11 DEC 67 VB82 PROGRAM REWRITTEN # MOD NO: 3 MOD BY: ALONSO DATE: 26 MAR 68 PROG MOD TO HANDLE DIF EARTH/MOON SCALE # # NEW FUNCTIONAL DESCRIPTION: CALLED BY VERB 82 ENTER. PRIORITY 10. # USED THROUGHOUT. CALCULATE AND DISPLAY ORBITAL PARAMETERS # # 1. IF AVERAGE G IS OFF: # FLASH DISPLAY V04N06. R2 INDICATES WHICH SHIP'S STATE VECTOR IS # TO BE UPDATED. INITIAL CHOICE IS THIS SHIP (R2=1). ASTRONAUT # CAN CHANGE TO OTHER SHIP BY V22EXE, WHERE X NOT EQ 1. # SELECTED STATE VECTOR UPDATED BY THISPREC (OTHPREC). # CALLS SR30.1 (WHICH CALLS TFFCONMU + TFFRP/RA) TO CALCULATE # RPER (PERIGEE RADIUS), RAPO (APOGEE RADIUS), HPER (PERIGEE # HEIGHT ABOVE LAUNCH PAD OR LUNAR LANDING SITE), HARD (APOGEE # HEIGHT AS ABOVE), TPER (TIME TO PERIGEE), TFF (TIME TO # INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE). # FLASH MONITOR V16N44 (HAPO, HPER, TFF).TFF IS -59M59S IF IT WAS # NOT COMPUTABLE, OTHERWISE IT INCREMENTS ONCE PER SECOND. # ASTRONAUT HAS OPTION TO MONITOR TPER BY KEYING IN N 32 E. # DISPLAY IS IN HMS, IS NEGATIVE (AS WAS TFF), AND INCREMENTS # ONCE PER SECOND ONLY IF TFF DISPLAY WAS -59M59S. # # 2. IF AVERAGE G IS ON: # CALLS SR30.1 APPROX EVERY TWO SECS. STATE VECTOR IS ALWAYS # FOR THIS VEHICLE. V82 DOES NOT DISTURB STATE VECTOR. RESULTS # OF SR30.1 ARE RAPO, RPER, HAPO, HPER, TPER, TFF. # FLASH MONITOR V16N44 (HAPO, HPER, TFF). # ADDENDUM: HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE # ABOVE REMARKS. # # CALLING SEQUENCE: VERB 82 ENTER. # # SUBROUTINES CALLED: SR30.1, GOXDSPF # MAYBE - THISPREC , OTHPREC, LOADTIME, DELRSPL # NORMAL EXIT MODES: TC ENDEXT # # ALARMS: NONE # # OUTPUT: HAPOX (-29) M # HPERX (-29) M # RAPO (-29) M EARTH # (-27) M MOON # RPER (-29) M EARTH # (-27) M MOON # TFF (-28) CS CONTAINS NEGATIVE QUANTITY # -TPER (-28) CS CONTAINS NEGATIVE QUANTITY # Page 713 # # ERASABLE INITIALIZATION REQUIRED: STATE VECTOR. # # DEBRIS: QPRET, RONE, VONE,TFF/RTMU, HPERMIN, RPADTEM, V82EMFLG. # MAYBE: TSTART82, V82FLAGS, TDEC1.
java.lang.StringIndexOutOfBoundsException: Range [19, 14) out of bounds for length 19 BANK
PRIO7TCFINDVAC #EBANK TFF # UPDATE AND ORBIT CALCULATIONS FOR BANK COUNT* $$/R30
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
BON GOTO
AVEGFLAG
V82GON # IF AVERAGE G ON
V82GOFF # IF AVERAGE G OFF
V82GOFF FLAGGON CAF TWO # DESIRED FOR ORBITAL PARAMETERS TSTCBANKCALL CAF TC CAF CAF V16N44 java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 CADR# TERM THIS TELLS TICKTEST TO KILL ITSELFTC# PROCEED DITTO
ENDEXT # TERMINATE TC +2# PROCEED TC -5# DATA IN. OPTION1+1 = 1 FOR THIS VEHICLE. # UNEQ 1 FOR OTHER VEHICLE. CAF BIT4 # 80 MS
LOADTIME EBANK=TFF 2CADR TICKTEST
RELINT
V82GOFLP CAF TFFBANK # MAJOR RECYCLE LOOP ENTRY TSEBANK CAF ZERO TS V82FLAGS # ZERO FLAGS FOR TICKTEST, INHIBITS # DECREMENTING OF TFF AND -TPER. CAF PRIO7 TC FINDVAC # V82GOFF1 WILL EXECUTE STATE VECTOR EBANK= TFF # UPDATE AND ORBIT CALCULATIONS FOR 2CADR V82GOFF1 # SELECTED VEHICLE ABOUT PROPER BODY.
RELINT
V82STALL CAF THREE # STALL IN THIS LOOP AND WITHOLD V 16 N 44 # Page 714 MASK V82FLAGS EXIT
A # OUR FLAG BITS. TC FLAGGON # EXIT FROM STALL LOOP. CAF1SEC TC BANKCALL CADRDELAYJOB
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
FLAGGON RATT # TO BE CALLED BY SR30.1.
STRONE CADR GOXDSPF TC VATT STORE VONE # TC V82GOFLP DLOAD
OPTIONVN VN412
V16N44 VN1644
TFFBANK ECADR TFF
V82GOFF1 TC INTPRET
RTB
LOADTIME STORE TDEC1 # TIME FOR STATE VECTOR UPDATE. STORE TSTART82 # TIME FOR INTERNAL USE. EXIT CS OPTIONX +1# 1 FOR THIS VEHICLE, NOT 1 FOR OTHER. ADDLOAD* # AS LEFT BY THISPREC OR OTHPREC. EXTEND BZF THISSHIP
OTHSHIP TC INTPRET CALL HPERMIN TFFRTMU, HPERMIN AND RPADTEM ARE ALL
OTHPREC
BOTHSHIP VLOAD # MOVE RESULTS INTO TFFCONIC STORAGE AREASX2
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 10
THISPREC
VATT STORE BOTHSHIP
1/RTMUE,2# X2 IS 0 FOR EARTH CENTERED STATE VEC STORETFFRTMU # X2 IS 2 FOR MOON DLOAD* # AS LEFT BY THISPREC OR OTHPREC.
MINPERE,java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
HPERMIN # TFFRTMU, HPERMIN AND RPADTEM ARE ALL SLOAD V82EMFLG#
X2
EARTHPAD
GOTO
MOONPAD # Page 715
THISSHIP TC INTPRET CALL# CALL STATE VECTOR UPDATE FOR THIS SHIP.
GOTO
BOTHSHIP
# THE FOLLOWING CONSTANTS ARE PAIRWISE INDEXED. DO NOT SEPARATE PAIRS.
MINPERM 2EC10668 -27#35 PERIGEEHEIGHT (27)
MINPERE 2DECSR30.1# CALCULATE ORBITAL PARAMETERS
EARTHPAD DLOAD CLRGO # PAD 37-B RADIUS. SCALED AT (-29)M.
RPAD STORETSTART82 # SAVE IT
BOTHPAD
MOONPAD VLOAD # COMPUTE MOON PAD RADIUS FROM RLS VECTOR.
RLS # SCALED AT (-27)M.
SET
V82EMFLG # INDICATE MOON SCALING FOR SR30.1
BOTHPAD STCALL RPADTEM TPER BUT WAS SET TO 59M59S.DONT TICK TFF, DO STORE -TPER # -TPER CORRECTED FOR TIME SINCE V82GOFF1
RTB DSU CAFBIT1
V82FLAGS # INFORMS TICKTEST TO INCREMENT ONLY -TPER STORE TSTART82 # SAVE IT DLOADTICKTIFFDLOAD DAD # (-TPER=0) TFF WAS COMPUTED.TICK TFF.
-TPER TSTART82 # -TPER.
TICKTIFF # (-TPER = 0)
COMPUTED.
-TPEREXIT# BEGAN.
TSTART82 STORE TPER # -TPER CORRECTED FOR TIME SINCE V82GOFF1
TICKTESTCAF #java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 CAFBIT1 TSTC DOTICK TCTCNOVAC # TERMINATE V 82.CANT CALL ENDEXT IN RUPT.
TICKTIFF DLOAD DAD EBANK= EXTVBACTEBANK=EXTVBACT
TFF # DO NOT TICK -TPER.DISPLAY TFF, BUT NOT
DOTICK 1SEC # RE-REQUEST TICKTEST. TC EXIT # . CAF BIT2 2 TC
# Page 716
BIT5 # THIS WAITLIST PROGRAM PERPETUATES ITSELF # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0. CCS + TC DOTICK CAF PRIO25 TCNOVAC# TERMINATE V 82.CANT CALL ENDEXT IN RUPT.
TC TP 2CADRCAF1# ONLY BIT 2 SET. INCR TFF BY 1 SEC.
TCTASKOVER 1SEC RE-REQUEST TICKTEST. TC WAITLIST EBANK=TPERTICK 1SEC
L
DAS-
INDEX A# Page 717
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 7 TC TASKOVER # IF NO FLAGBITS SET DONT CHANGE TFF OR # -TPER, BUT CONTINUE LOOP. TC TPERTICK # ONLY BIT 1 SET. INCR -TPER BY 1 SEC.
TFFTICK CAF1SEC # ONLY BIT 2 SET. INCR TFF BY 1 SEC. TS L CAF ZERO DAS TFF TC TASKOVER
TPERTICK CAF1SEC TS L CAF ZERO DAS -TPER TCTCFINDVAC # V82GON1 WILL PERFORM ORBIT CALCULATIONS
# Page 717
V82GON EXIT# AVERAGE G ON. USE CURRENT STATE VECTOR # FOR ORBITAL PARAMETER CALCULATIONS. CAF# LESS THAN LAMBERT TCTCV82REDSP # RECYCLE
V82GON1 TCINTPRET # THIS EXEC PROGRAMPERPETUATES ITSELF 2CADR V82GON1
RELINT CCS NEWJOB # WITHOLD V16 N44 UNTIL FIRST ORBIT CALC TC CHANG1 # IS DONE. NOTE: V82GON1 (PRIO7, FINDVAC # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0. # NOVAC JOB). CAF# MONITOR HAPO, HPER, TFF TC# STATE VECTOR UPDATE. CADR GOXDSPF TC B5OFF # TERM THIS TELLS V82GON1 TO KILL ITSELF. TC B5OFF # PROC DITTO. TC V82REDSP # RECYCLE
V82GON1 TC INTPRET # THIS EXEC PROGRAM PERPETUATES ITSELF # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
VLOAD MOONTHIS#java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
RN EARTHGON # IF SET - MOON , IF RESET - EARTH.IF - IF - EARTH.
NEXTLINE # STATE VECTOR UPDATE.
NEXTLINE STOVL RONE # RN AT (-29)M FOR EARTH OR MOON VN STORE VONE # VN AT (-7)M/CS FOR EARTH OR MOON
BON V82EMFLG # INDICATE MOON SCALING FOR SR30.1
MOONTHIS # FLAG INDICATES BODY ABOUT WHICH ORBITAL 1/RTMUM # LUNAR PARAMETERS LOADED HERE FOR SR30.1
EARTHGON # IF SET - MOON , IF RESET - EARTH.
MOONGON SET DLOAD
V82EMFLG # INDICATE MOON SCALING FOR SR30.1 # LUNAR PARAMETERS LOADED HERE FOR SR30.1 STODL TFF/RTMU
MINPERM STOVL HPERMIN STOVL HPERMIN
ABVAL GOTO
V82GON2
EARTHGON CLEAR DLOAD
V82EMFLG # INDICATE EARTH SCALING FOR SR30.1 RLS # SCALED AT (-27)M. 1/RTMUE # EARTH PARAMETERS LOADED HERE FOR SR30.1 STODL ABVAL GOTO
MINPERE STODL HPERMIN
RPAD
V82GON2 STCALL
SR30.1 # Page 718 EXIT
V82GON3 CAF V82EMFLG # IND EARTHSCALING FOR SR30.1 MASKEXTVBACT # SEE IF ASTRONAUT HAS SIGNALLED TERMINATE EXTEND BZF ENDEXT # YES, TERMINATE VB 82 LOOPSTODL / CAF1SEC
R RPAD
V82GON2 STCALL RPADTEM #java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 12
SPLRET = V82GON3
# Page 719 # SUBROUTINE NAME: SR30.1 # MOD NO: 0 DATE: 16 FEB 67 # MOD BY: R. R. BAIRNSFATHER LOG SECTION: R32 # MOD NO: 1 MOD BY: R. R. BAIRNSFATHER DATE: 11 APR 67 SR30.1 CHANGED TO ALLOW MONITOR OPERN # MOD NO: 2 MOD BY: R. R. BAIRNSFATHER DATE: 14 APR 67 ADD OVFL CK FOR RAPO # MOD NO: 3 MOD BY ALONSO DATE: 11 DEC 67 SUBROUTINE REWRITTEN # MOD NO: 4 MOD BY ALONSO DATE: 26 MAR 68 PROG MOD TO HANDLE DIF EARTH/MOON SCALE # MOD NO: 5 MOD BY: R. R. BAIRNSFATHER DATE: 6 AUG 68 OVFL CK FOR HAPO & HPER. VOIDS MOD #2. # # NEW FUNCTIONAL DESCRIPTION: ORBITAL PARAMETERS DISPLAY FOR NOUNS 32 AND 44. # SR30.1 CALLS TFFCONMU AND TFFRP/RA TO CALCULATE RPER (PERIGEE RADIUS), # RAPO (APOGEE RADIUS), HPER (PERIGEE HEIGHT ABOVE LAUNCH PAD OR LUNAR # LANDING SITE), HAPO (APOGEE HEIGHT AS ABOVE), TPER (TIME TO PERIGEE), # TFF (TIME TO INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE). # IF HPER IS GREATER THAN OR EQUAL TO HPERMIN, CALCULATES TPER AND STORES # NEGATIVE IN -TPER. OTHERWISE STORES +0 IN -TPER. WHENEVER TPER IS # CALCULATED, TFF IS NOT COMPUTABLE AND DEFAULTS TO -59MIN 59SEC. IF HAPO # WOULD EXCEED 9999.9 NM, IT IS LIMITED TO THAT VALUE FOR DISPLAY. # # ADDENDUM: HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE # ABOVE REMARKS. # # CALLING SEQUENCE: CALL # SR30.1 # # SUBROUTINES CALLED: TFFCONMU, TFFRP/RA, CALCTPER, CALCTFF # # NORMAL EXIT MODE: CALLING LINE +1 (STILL IN INTERPRETIVE MODE) # # ALARMS: NONE # # OUTPUT: RAPO (-29) M EARTH APOGEE RADIUS EARTH CENTERED COORD. # (-27) M MOON MOON CENTERED COORD. # RPER (-29) M EARTH PERIGEE RADIUS EARTH CENTERED COORD. # (-27) M MOON MOON CENTERED COORD. # HAPOX (-29) M APOGEE ALTITUDE ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM. # HPERX (-29) M PERIGEE ALT. ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM. # TFF (-28) CS TIME TO 300KFT OR 35KFT ALTITUDE # -TPER (-28) CS TIME TO PERIGEE # # ERASABLE INITIALIZATION REQUIRED -- # TFF/RTMU (+17) EARTH RECIPROCAL OF PROPER GRAV CONSTANT FOR # (+14) MOON EARTH OR MOON = 1/SQRT(MU). # RONE (-29) M STATE VECTOR # VONE (-7) M/CS STATE VECTOR # RPADTEM (-29) M EARTH RADIUS OF LAUNCH PAD OR LUNAR LANDING # (-27) M MOON SITE. # HPERMIN (-29) M EARTH (300 OR 35) KFT MINIMUM PERIGEE ALTITUDE # (-27) M MOON ABOVE LAUNCH PAD OR LUNAR LANDING SITE. # V82EMFLG (INT SW BIT) RESET FOR EARTH, SET FOR MOON. # # DEBRIS: QPREG, PDL, S2
# Page 720 COUNT* $$/SR30S
SR30.1 SETPD STQ# -TPER (-28) CS TIME TO PERIGEE # ERASABLE INITIALIZATION REQUIRED --
S2 # SR30.1 INPUT: RONE AT (-29)M EARTH/MOON # VONE AT (-7)M/CS# RONE (-29) M STATE VECTOR
# RPADTEM (-29) # (-27) M# HPERMIN (-29) M EARTH (300 OR 35) KFT MINIMUM PERIGEE ALTITUDE # V82EMFLG (INT SW BIT) RESET FOR EARTH, SET FOR MOON. # EARTH CENTERED (NO RESCALING REQUIRED) # RONE SCALED TO B-29 M# Page 720
# MOON CENTERED (RESCALING REQUIRED)
SR301 SETPD STQ 0
BOFFVLOAD
V82EMFLG # OFF FOR EARTH, ON FOR MOON.
TFFCALLS
RONE
VSL2 STOVL RONE
VONE
VSL2 STORE VONE
TFFCALLS CALL
# CALLS REQUIRE:
CENTEREDREQUIRED # RETURNS WITH RAPO IN D(MPAC).
RPADTEM # NEED HAPO AT (-29)M FOR DISPLAY. # IF MOON CENTERED, RESCALE FROM (-27)M.
RONE
java.lang.StringIndexOutOfBoundsException: Range [41, 11) out of bounds for length 41
+1 CALL# IF RAPO > MAXNM, SET RAPO =9999.9 NM.IF RAPO>MAXNM, SET RAPO=9999.9 NM
MAXCHK #java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
STORHAPOSTODL HAPOX
RPER
DSU
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
+ #
BOFF SR2R # NEED HPER AT (-29)M FOR DISPLAY.
java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 # IF EARTH CENTERED ALREADY AT (-29)M.
V82EMFLG # OFF FOR EARTH, ON FOR MOON.
+1 CALL# IF RAPO > MAXNM, SET RAPO =9999.9 NM.
MAXCHK # Page 721
STORHPER STODL HPERX # STORE (RPER - RPADTEM) INTO HPERX.
MPAC +4
DSU BPL # HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
STORHAPO STODL HAPOX
DOTPER # THEN ZERO INTO -TPER. RPER DLOAD GOTO RPADTEM # GIVES HPER AT (-29)M EARTH, (-27)M MOON.
HI6ZEROS
SKIPTPER
DOTPER DLOADCALL
RPER
CALCTPER
DCOMP # TPER IS PUT NEG INTO -TPER.
SKIPTPER # IF EARTH CENTERED ALREADY AT (-29)M.IFEARTH CENTERED AT(29Mjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
HPERMIN # HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
DAD CALL
RPADTEM # RPADTEM AT (-29)M FOR EARTH, (-27)M MOON
CALCTFF # GIVES 59M59S FOR TFF IF HPER G/STORHPER STODL HPERX # STORE (RPER - RPADTEM) INTO HPERX.
DCOMP # HPERMIN + RPADTEM. (TPER WAS NON ZERO)
STCALL TFF # OTHERWISE COMPUTES TFF. (GOTO)
S2
MAXCHK DSU BPL # IF C(MPAC) > 9999.9 NM. MPAC = 9999.9 NM.
SKIPTPER
+3R DLOADCALL
DAD RVQ
MAXNM
+3 java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 STODLTPER
MAXNM 2OCT0106505603
# Page 722 (empty page)
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-10-13)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.