# 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. # # CALLING SEQUENCE: VERB 82 ENTER. # MAYBE: TSTART82, V82FLAGS, TDEC1.
V82CALL TC INTPRET
BON GOTO
AVEGFLAG
V82GON # IF AVERAGE G ON
V82GOFF # IF AVERAGE G OFF
V82GOFF EXIT# ALLOW ASTRONAUT TO SELECT VEHICLE CAF TWO # DESIRED FOR ORBITAL PARAMETERS TS OPTIONX # CALCULATION AND DISPLAY. CAF ONE TS OPTIONX +1 CAF OPTIONVN # V 04 N 06 TC BANKCALL CADR GOXDSPF TC ENDEXT # TERMINATE TC +2# PROCEED TC -5# DATA IN. OPTION1+1 = 1 FOR THIS VEHICLE. # UNEQ 1 FOR OTHER VEHICLE. CAF BIT4 # 80 MS TC WAITLIST EBANK= TFF 2CADR TICKTEST
RELINT
V82GOFLP CAF TFFBANK # MAJOR RECYCLE LOOP ENTRY TSEBANK CAF ZERO BANK31 # DECREMENTING OF TFF AND -TPER. CAFPRIO7 # V82GOFF1 WILL EXECUTE STATE VECTOR EBANK= # 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
CCS TC# EXIT FROM STALL LOOP. CAF1SEC TC CADR DELAYJOB ONE
V82STALL
= 2java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 16
CCSA CADR EXTEND BZF THISSHIP
OTHSHIP TC INTPRET CALL# CALL STATE VECTOR UPDATE FOR OTHER SHIP.
OTHPREC
BOTHSHIP VLOAD # MOVE RESULTS INTO TFFCONIC STORAGE AREAS
RATT # TO BE CALLED BY SR30.1.
OVL # RATT AT (-29)M FOR EARTH OR MOON
VATT AT (-7)M/CS FOR EARTH OR MOON
*
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 41 DLOADjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
OTHSHIP TCINTPRET STORE # SLOAD BHIZ # EARTH/MOON PARAMETERS AS SET HERE.
EARTHPAD
GOTO
MOONPAD # Page 715
THISSHIP TC INTPRET CALL# CALL STATE VECTOR UPDATE FOR THIS SHIP.
GOTO
1/RTMUE,2 # X2 IS 0 FOR EARTH CENTERED STATE VEC
MINPERM 2DEC10668STORE /TMU# X2 IS 2 FOR MOON
MINPERE2
EARTHPAD DLOAD CLRGO # PAD 37-B RADIUS. SCALED AT (-29)M. STOREHPERMIN # TFFRTMU, HPERMIN AND RPADTEM ARE ALL
V82EMFLG # INDICATE EARTH SCALING FOR SR30.1
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 6
MOONPAD THISPREC
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
SET
D 10668 B2735KFTMIN PERIGEE HEIGHTFORMOON(-M
BOTHPAD STCALL
SR301 PARAMETERS
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
LOADTIME
TSTART82
DLOAD BZE # SR30.1 SETS -TPER=0 IF HPER L/
- ABVAL
TICKTIFF # (-TPER = 0)RLS
java.lang.StringIndexOutOfBoundsException: Range [3, 2) out of bounds for length 47
-PER#
TSTART82 # TICK -TPER. DISPLAY BOTH. STORE -TPER # -TPER CORRECTED FOR TIME SINCE V82GOFF1 EXIT# BEGAN.
TSV82FLAGSjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 TC ENDOFJOB
TICKTIFF DAD
TFF # DO NOT TICK -TPER.DISPLAY TFF, BUT NOT
TSTART82#java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 STORE TFF # TFF CORRECTED FOR TIME SINCE V82GOFF1
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 CAFBIT2
- TC ENDOFJOB
# Page 716
TICKTEST BIT5 # THIS WAITLIST PROGRAM PERPETUATES ITSELF MASK EXTVBACT # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0. CCSCAF TC DOTICK CAF PRIO25
java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 EBANK 2CADR ENDEXT
TC TASKOVER
DOTICKCAF1# RE-REQUEST TICKTEST.
WAITLIST EBANK# BEGAN. BEGANjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
CADR TICKTEST
F THREE MASK # PageTICKTESTCAF INDEXMASK EXTVBACT # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0. TC+java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 TCTC NOVAC # TERMINATE V 82.CANT CALL ENDEXT IN RUPT. # -TPER, BUT CONTINUE LOOP.
ERTICK # ONLY BIT 1 SET. INCR -TPER BY 1 SEC.
TFFTICK SEC # ONLY BIT 2 SET. INCR TFF BY 1 SEC. TS L CAF ZERO TC
DOTICKCAF1 #java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
TPERTICKCAF1 TS CAF
-TPER TCTASKOVER
# Page 717
V82GON EXIT # FOR ORBITAL PARAMETER CALCULATIONS. CAF PRIO7 # LESS THAN LAMBERT
EBANK= java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 2CADRCAFPRIO7 # LESS THAN LAMBERT
RELINT CCS NEWJOB # WITHOLD V16 N44 UNTIL FIRST ORBIT CALC TC CHANG1 # IS DONE. NOTE: V82GON1 (PRIO7, FINDVAC # JOB) IS COMPLETED BEFORE V82GON (PRIO7, # NOVAC JOB).
V82REDSP CAF V16N44 # MONITOR HAPO, HPER, TFF TC BANKCALL CADR GOXDSPF TC B5OFF # TERM THIS TELLS V82GON1 TO KILL ITSELF. TC B5OFF # PROC DITTO.
V82REDSP# RECYCLE
THIS EXEC PROGRAM PERPETUATES ITSELF java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 59
java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
V82REDSP V16N44 # MONITOR HAPO, HPER, TFF
RN # VN FETCH SO RN , VN ARE FROM SAME
NEXTLINE
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 TCjava.lang.StringIndexOutOfBoundsException: Range [23, 13) out of bounds for length 23
BON GOTO
MOONTHIS FLAG INDICATES BODY ABOUT WHICH ORBITAL
MOONGON # CALCULATIONS ARE TO BE PERFORMED.
# SET-MOON,IFRESET EARTHjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
MOONGONjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Range [46, 11) out of bounds for length 46 1java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
1/RTMUM# LUNAR PARAMETERS LOADED HERE FOR SR30.1
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 12
SR30java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
ICATE SR301 1/RTMUE MASK #java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
TFFRTMU
MINPERE STODLCAF1SEC
V82GON2STCALL RPADTEM COMMON CODE FOR EARTH & MOON.
SR30.1 # Page 718
TC V82GON1
V82GON3 CAF BIT5 MASK EXTVBACT # SEE IF ASTRONAUT HAS SIGNALLED TERMINATE EXTEND BZF ENDEXT # YES, TERMINATE VB 82 LOOP# SUBROUTINE NAME: SR30.1 CAF1SEC TC BANKCALL # WAIT ONE SECOND BEFORE REPEATING CADR DELAYJOB # ORBITAL PARAMETER COMPUTATION.# MOD NO: 2 MOD BY: R. R. BAIRNSFATHER DATE: 14 APR 67 ADD OVFL CK FOR RAPO TC V82GON1
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* # VONE SCALED TO B-7 M/CS
SR30.1 STQ # INITIALIZE PUSHDOWN LIST. 0
VLOAD # SR30.1 INPUT: RONE AT (-29)M EARTH/MOON #java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
# TFFCONMU, TFFRP/RA, CALCTPER, AND CALCTFF
# java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
# EARTH (NO RESCALING REQUIRED) # RONE SCALED TO B-29 M # VONE SCALED TO B-7 M/CS
DSU # RONE SCALED TO B-27 M # VONE SCALED TO B-5 M/CS
BOFF BOFF SR2R
V82EMFLG # OFF FOR EARTH, ON FOR MOON.
TFFCALLS
RONE
V82EMFLG # OFF FOR EARTH, ON FOR MOON. STOVL RONE
VONE
VSL2 STORE VONE
TFFCALLS CALL
TFFCONMU
# RAPO SET 99999 .
TFFRP/MAXCHK # OTHERWISE STORE (RAPO-RPADTEM) IN HAPO. # RETURNS WITH RAPO IN D(MPAC).STODL
DSU
RPADTEM
BOFF SR2R # NEED HAPO AT (-29)M FOR DISPLAY.STORE MPAC + SAVE THIS FOR COMPARISON TO HPERMIN. # IF MOON CENTERED, RESCALE FROM (-27)M. # IF EARTH CENTERED ALREADY AT (-29)M. # OFF FOR EARTH, ON FOR MOON.
+1 # IF RAPO > MAXNM, SET RAPO =9999.9 NM.
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
RPER
DSU
RPADTEMjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 STORE MPAC +
BOFF SR2R # NEED HPER AT (-29)M FOR DISPLAY.
DCOMP # TPER IS PUT NEG INTO -TPER.
# IF ALREADY -).
V82EMFLG # OFF FOR EARTH, ON FOR MOON.
+1 CALL java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
MAXCHK # Page 721
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 58
MPAC +4
DSU java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 5
HPERMIN # IF HPER L/ HPERMIN (300 OR 35)KFT,
DOTPER # THEN ZERO INTO -TPER. DLOAD GOTO # OTHERWISE CALCULATE TPER.
HI6ZEROS
R java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 18
RPER
CALCTPER
DCOMP # TPER IS PUT NEG INTO -TPER.
SKIPTPER -java.lang.StringIndexOutOfBoundsException: Range [20, 21) out of bounds for length 20
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/
DCOMP # HPERMIN + RPADTEM. (TPER WAS NON ZERO)
STCALL TFF # OTHERWISE COMPUTES TFF. (GOTO)
S2
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.