https://github.com/virtualagc/virtualagc
Raw File
Tip revision: 66d8e606a8d996ded60bc81d5edf319142a5fad9 authored by Ron Burkey on 04 October 2021, 11:49 UTC
Merge branch 'master' of https://github.com/virtualagc/virtualagc
Tip revision: 66d8e60
### FILE="Main.annotation"
## 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.
##		2016-12-13 RSB	GOTOP00H -> GOTOPOOH
##		2016-12-16 RSB	Proofed text comments with octopus/ProoferComments
##				and corrected the errors found.
##		2017-03-13 RSB	Comment-text fixes noted in proofing Luminary 116.
##		2017-03-16 RSB	Comment-text fixes identified in 5-way
##				side-by-side diff of Luminary 69/99/116/131/210.

## 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-61
##	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 FLPASSO
		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)
## Page 787
#                                                       2        0
# 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

back to top