755e658332
* LYM99 -> LMY99 * 2021112-61 -> 2021112-061
336 lines
7.3 KiB
Plaintext
336 lines
7.3 KiB
Plaintext
# Copyright: Public domain.
|
|
# Filename: THE_LUNAR_LANDING.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: Hartmuth Gutsche<hgutsche@xplornet.com>.
|
|
# Website: www.ibiblio.org/apollo.
|
|
# Pages: 785-792
|
|
# Mod history: 2009-05-20 HG Transcribed from page images.
|
|
#
|
|
# 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 785
|
|
BANK 32
|
|
SETLOC F2DPS*32
|
|
BANK
|
|
|
|
EBANK= E2DPS
|
|
|
|
# *************************************
|
|
# P63: THE LUNAR LANDING, BRAKING PHASE
|
|
# *************************************
|
|
|
|
COUNT* $$/P63
|
|
|
|
P63LM TC PHASCHNG
|
|
OCT 04024
|
|
|
|
TC BANKCALL # DO IMU STATUS CHECK ROUTINE R02
|
|
CADR R02BOTH
|
|
|
|
CAF P63ADRES # INITIALIZE WHICH FOR BURNBABY
|
|
TS WHICH
|
|
|
|
CAF DPSTHRSH # INITIALIZE DVMON
|
|
TS DVTHRUSH
|
|
CAF FOUR
|
|
TS DVCNTR
|
|
|
|
CS ONE # INITIALIZE WCHPHASE AND FLPASS0
|
|
TS WCHPHASE
|
|
|
|
CA ZERO
|
|
TS FLPASS0
|
|
|
|
CS BIT14
|
|
EXTEND
|
|
WAND CHAN12 # REMOVE TRACK-ENABLE DISCRETE.
|
|
|
|
FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING
|
|
CLEAR CLEAR
|
|
NOTHROTL
|
|
REDFLAG
|
|
CLEAR SET
|
|
LRBYPASS
|
|
MUNFLAG
|
|
CLEAR CLEAR
|
|
P25FLAG # TERMINATE P25 IF IT IS RUNNING.
|
|
RNDVZFLG # TERMINATE P20 IF IT IS RUNNING
|
|
|
|
# ********************************
|
|
|
|
IGNALG SETPD VLOAD # FIRST SET UP INPUTS FOR RP-TO-R:-
|
|
# Page 786
|
|
0 # AT 0D LANDING SITE IN MOON FIXED FRAME
|
|
RLS # AT 6D ESTIMATED TIME OF LANDING
|
|
PDDL PUSH # MPAC NON-ZERO TO INDICATE LUNAR CASE
|
|
TLAND
|
|
STCALL TPIP # ALSO SET TPIP FOR FIRST GUIDANCE PASS
|
|
RP-TO-R
|
|
VSL4 MXV
|
|
REFSMMAT
|
|
STCALL LAND
|
|
GUIDINIT # GUIDINIT INITIALIZES WM AND /LAND/
|
|
DLOAD DSU
|
|
TLAND
|
|
GUIDDURN
|
|
STCALL TDEC1 # INTEGRATE STATE FORWARD TO THAT TIME
|
|
LEMPREC
|
|
SSP VLOAD
|
|
NIGNLOOP
|
|
40D
|
|
UNITX
|
|
STOVL CG
|
|
UNITY
|
|
STOVL CG +6
|
|
UNITZ
|
|
STODL CG +14
|
|
99999CON
|
|
STOVL DELTAH # INITIALIZE DELTAH FOR V16N68 DISPLAY
|
|
ZEROVECS
|
|
STODL UNFC/2 # INITIALIZE TRIM VELOCITY CORRECTION TERM
|
|
HI6ZEROS
|
|
STORE TTF/8
|
|
|
|
IGNALOOP DLOAD
|
|
TAT
|
|
STOVL PIPTIME1
|
|
RATT1
|
|
VSL4 MXV
|
|
REFSMMAT
|
|
STCALL R
|
|
MUNGRAV
|
|
STCALL GDT/2
|
|
?GUIDSUB # WHICH DELIVERS N PASSES OF GUIDANCE
|
|
|
|
# DDUMCALC IS PROGRAMMED AS FOLLOWS:-
|
|
# 2 ___
|
|
# (RIGNZ - RGU )/16 + 16(RGU )KIGNY/B8 + (RGU - RIGNX)KIGNX/B4 + (ABVAL(VGU) - VIGN)KIGNV/B4
|
|
# 2 1 0
|
|
# DDUM = -------------------------------------------------------------------------------------------
|
|
# 10
|
|
# 2 (VGU - 16 VGU KIGNX/B4)
|
|
# 2 0
|
|
# Page 787 new page is actually one line earlier but this would put the indices on a separate line
|
|
# disconnected from their respective variables
|
|
# THE NUMERATOR IS SCALED IN METERS AT 2(28). THE DENOMINATOR IS A VELOCITY IN UNITS OF 2(10) M/CS.
|
|
# THE QUOTIENT IS THUS A TIME IN UNITS OF 2(18) CENTISECONDS. THE FINAL SHIFT RESCALES TO UNITS OF 2(28) CS.
|
|
# THERE IS NO DAMPING FACTOR. THE CONSTANTS KIGNX/B4, KIGNY/B8 AND KIGNV/B4 ARE ALL NEGATIVE IN SIGN.
|
|
|
|
DDUMCALC TS NIGNLOOP
|
|
TC INTPRET
|
|
DLOAD DMPR # FORM DENOMINATOR FIRST
|
|
VGU
|
|
KIGNX/B4
|
|
SL4R BDSU
|
|
VGU +4
|
|
PDDL DSU
|
|
RIGNZ
|
|
RGU +4
|
|
SR4R PDDL
|
|
RGU +2
|
|
DSQ DMPR
|
|
KIGNY/B8
|
|
SL4R PDDL
|
|
RGU
|
|
DSU DMPR
|
|
RIGNX
|
|
KIGNX/B4
|
|
PDVL ABVAL
|
|
VGU
|
|
DSU DMPR
|
|
VIGN
|
|
KIGNV/B4
|
|
DAD DAD
|
|
DAD DDV
|
|
SRR
|
|
10D
|
|
|
|
PUSH DAD
|
|
PIPTIME1
|
|
STODL TDEC1 # STORE NEW GUESS FOR NEXT INTEGRATION
|
|
ABS DSU
|
|
DDUMCRIT
|
|
BMN CALL
|
|
DDUMGOOD
|
|
INTSTALL
|
|
SET SET
|
|
INTYPFLG
|
|
MOONFLAG
|
|
DLOAD
|
|
PIPTIME1
|
|
STOVL TET # HOPEFULLY ?GUIDSUB DID NOT
|
|
RATT1 # CLOBBER RATT1 AND VATT1
|
|
# Page 788
|
|
STOVL RCV
|
|
VATT1
|
|
STCALL VCV
|
|
INTEGRVS
|
|
GOTO
|
|
IGNALOOP
|
|
|
|
DDUMGOOD SLOAD SR
|
|
ZOOMTIME
|
|
14D
|
|
BDSU
|
|
TDEC1
|
|
STOVL TIG # COMPUTE DISTANCE LANDING SITE WILL BE
|
|
V # OUT OF LM'S ORBITAL PLANE AT IGNITION:
|
|
VXV UNIT # SIGN IS + IF LANDING SITE IS TO THE
|
|
R # RIGHT, NORTH; - IF TO THE LEFT, SOUTH.
|
|
DOT SL1
|
|
LAND
|
|
R60INIT STOVL OUTOFPLN # INITIALIZATION FOR CALCMANU
|
|
UNFC/2
|
|
STORE R60VSAVE # STORE UNFC/2 TEMPORARILY IN R60SAVE
|
|
EXIT
|
|
# *******************************************
|
|
|
|
IGNALGRT TC PHASCHNG # PREVENT REPEATING IGNALG
|
|
OCT 04024
|
|
|
|
ASTNCLOK CS ASTNDEX
|
|
TC BANKCALL
|
|
CADR STCLOK2
|
|
TCF ENDOFJOB # RETURN IN NEW JOB AND IN EBANK FIVE
|
|
|
|
ASTNRET TC INTPRET
|
|
SSP RTB # GO PICK UP DISPLAY AT END OF R51:
|
|
QMAJ # "PROCEED" WILL DO A FINE ALIGNMENT
|
|
FCADR P63SPOT2 # " ENTER " WILL RETURN TO P63SPOT2
|
|
R51P63
|
|
P63SPOT2 VLOAD UNIT # INITIALIZE KALCMANU FOR BURN ATTITUDE
|
|
R60VSAVE
|
|
STOVL POINTVSM
|
|
UNITX
|
|
STORE SCAXIS
|
|
EXIT
|
|
|
|
CAF EBANK7
|
|
TS EBANK
|
|
|
|
INHINT
|
|
TC IBNKCALL
|
|
CADR PFLITEDB
|
|
# Page 789
|
|
RELINT
|
|
|
|
TC BANKCALL
|
|
CADR R60LEM
|
|
|
|
TC PHASCHNG # PREVENT RECALLING R60
|
|
OCT 04024
|
|
|
|
P63SPOT3 CA BIT6 # IS THE LR ANTENNA IN POSITION 1 YET
|
|
EXTEND
|
|
RAND CHAN33
|
|
EXTEND
|
|
BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1
|
|
|
|
CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
|
|
TC BANKCALL # SILLY THING AROUND
|
|
CADR GOPERF1
|
|
TCF GOTOPOOH # TERMINATE
|
|
TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
|
|
|
|
P63SPOT4 TC BANKCALL # ENTER INITIALIZE LANDING RADAR
|
|
CADR SETPOS1
|
|
|
|
TC POSTJUMP # OFF TO SEE THE WIZARD...
|
|
CADR BURNBABY
|
|
|
|
# ---------------------------------
|
|
|
|
# CONSTANTS FOR P63LM AND IGNALG
|
|
|
|
P63ADRES GENADR P63TABLE
|
|
|
|
ASTNDEX = MD1 # OCT 25: INDEX FOR CLOKTASK
|
|
|
|
CODE500 OCT 00500
|
|
|
|
99999CON 2DEC 30479.7 B-24
|
|
|
|
GUIDDURN 2DEC +66440 # GUIDDURN +6.64400314 E+2
|
|
DDUMCRIT 2DEC +8 B-28 # CRITERION FOR IGNALG CONVERGENCE
|
|
|
|
# Page 790
|
|
# --------------------------------
|
|
|
|
# Page 791
|
|
# *************************
|
|
# P68: LANDING CONFIRMATION
|
|
# *************************
|
|
|
|
BANK 31
|
|
SETLOC F2DPS*31
|
|
BANK
|
|
|
|
COUNT* $$/P6567
|
|
|
|
LANDJUNK TC PHASCHNG
|
|
OCT 04024
|
|
|
|
INHINT
|
|
TC BANKCALL # ZERO ATTITUDE ERROR
|
|
CADR ZATTEROR
|
|
|
|
TC BANKCALL # SET 5 DEGREE DEADBAND
|
|
CADR SETMAXDB
|
|
|
|
TC INTPRET # TO INTERPRETIVE AS TIME IS NOT CRITICAL
|
|
SET CLEAR
|
|
SURFFLAG
|
|
LETABORT
|
|
SET VLOAD
|
|
APSFLAG
|
|
RN
|
|
STODL ALPHAV
|
|
PIPTIME
|
|
SET CALL
|
|
LUNAFLAG
|
|
LAT-LONG
|
|
SETPD VLOAD # COMPUTE RLS AND STORE IT AWAY
|
|
0
|
|
RN
|
|
VSL2 PDDL
|
|
PIPTIME
|
|
PUSH CALL
|
|
R-TO-RP
|
|
STORE RLS
|
|
EXIT
|
|
CAF V06N43* # ASTRONAUT: NOW LOOK WHERE YOU ENDED UP
|
|
TC BANKCALL
|
|
CADR GOFLASH
|
|
TCF GOTOPOOH # TERMINATE
|
|
TCF +2 # PROCEED
|
|
TCF -5 # RECYCLE
|
|
|
|
TC INTPRET
|
|
# Page 792
|
|
VLOAD # INITIALIZE GSAV AND (USING REFMF)
|
|
UNITX # YNBSAV, ZNBSAV AND ATTFLAG FOR P57
|
|
STCALL GSAV
|
|
REFMF
|
|
EXIT
|
|
|
|
TCF GOTOPOOH # ASTRONAUT: PLEASE SELECT P57
|
|
|
|
V06N43* VN 0643
|
|
|