mirror of
				https://github.com/chrislgarry/Apollo-11.git
				synced 2025-10-26 04:16:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			1475 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1475 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Copyright:	Public domain.
 | |
| # Filename:	LUNAR_LANDING_GUIDANCE_EQUATIONS.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:	798-828
 | |
| # Mod history:	2009-05-23 HG	Transcribed from page images.
 | |
| #		2009-06-05 RSB	Fixed a goofy thing that was apparently
 | |
| #				legal in GAP but not in yaYUL.  Eliminated
 | |
| #				a couple of lines of code that shouldn't
 | |
| #				have survived from Luminary 131 to here.
 | |
| #		2009-06-07 RSB	Fixed a typo.
 | |
| #
 | |
| # 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 798
 | |
| 		EBANK=	E2DPS
 | |
| 		COUNT*	$$/F2DPS
 | |
| 
 | |
| # ********************************************************
 | |
| # LUNAR LANDING FLIGHT SEQUENCE TABLES
 | |
| # ********************************************************
 | |
| 
 | |
| # FLIGHT SEQUENCE TABLES ARE ARRANGED BY FUNCTION.  THEY ARE REFERENCED USING AS AN INDEX THE REGISTER WCHPHASE:
 | |
| #	WCHPHASE = -1 ---> IGNALG
 | |
| #	WCHPHASE =  0 ---> BRAKQUAD
 | |
| #	WCHPHASE =  1 ---> APPRQUAD
 | |
| #	WCHPHASE =  2 ---> VERTICAL
 | |
| 
 | |
| #*********************************************************
 | |
| 
 | |
| # ROUTINES FOR STARTING NEW GUIDANCE PHASES:
 | |
| 
 | |
| 		TCF	TTFINCR		# IGNALG
 | |
| NEWPHASE	TCF	TTFINCR		# BRAKQUAD
 | |
| 		TCF	STARTP64	# APPRQUAD
 | |
| 		TCF	P65START	# VERTICAL
 | |
| 
 | |
| # PRE-GUIDANCE COMPUTATIONS:
 | |
| 
 | |
| 		TCF	CALCRGVG	# IGNALG
 | |
| PREGUIDE	TCF	RGVGCALC	# BRAKQUAD
 | |
| 		TCF	REDESIG		# APPRQUAD
 | |
| 		TCF	RGVGCALC	# VERTICAL
 | |
| 
 | |
| # GUIDANCE EQUATIONS:
 | |
| 
 | |
| 		TCF	TTF/8CL		# IGNALG
 | |
| WHATGUID	TCF	TTF/8CL		# BRAKQUAD
 | |
| 		TCF	TTF/8CL		# APPRQUAD
 | |
| 		TCF	VERTGUID	# VERTICAL
 | |
| 
 | |
| # POST GUIDANCE EQUATION COMPUTATIONS:
 | |
| 
 | |
| 		TCF	CGCALC		# IGNALG
 | |
| AFTRGUID	TCF	CGCALC		# BRAKQUAD
 | |
| 		TCF	CGCALC		# APPRQUAD
 | |
| 		TCF	STEER?		# VERTICAL
 | |
| 
 | |
| # Page 799
 | |
| # WINDOW VECTOR COMPUTATIONS:
 | |
| 
 | |
| 		TCF	EXGSUB		# IGNALG
 | |
| WHATEXIT	TCF	EXBRAK		# BRAKQUAD
 | |
| 		TCF	EXNORM		# APPRQUAD
 | |
| 
 | |
| # DISPLAY ROUTINES:
 | |
| 
 | |
| WHATDISP	TCF	P63DISPS	# BRAKQUAD
 | |
| 		TCF	P64DISPS	# APPRQUAD
 | |
| 		TCF	VERTDISP	# VERTICAL
 | |
| 
 | |
| # ALARM ROUTINE FOR TTF COMPUTATION:
 | |
| 
 | |
| 		TCF	1406P00		# IGNALG
 | |
| WHATALM		TCF	1406ALM		# BRAKQUAD
 | |
| 		TCF	1406ALM		# APPRQUAD
 | |
| 
 | |
| # INDICES FOR REFERENCING TARGET PARAMETERS
 | |
| 
 | |
| 		OCT	0		# IGNALG
 | |
| TARGTDEX	OCT	0		# BRAKQUAD
 | |
| 		OCT	34		# APPRQUAD
 | |
| 
 | |
| #************************************************************************
 | |
| # ENTRY POINTS:  ?GUIDSUB FOR THE IGNITION ALGORITHM, LUNLAND FOR SERVOUT
 | |
| #************************************************************************
 | |
| 
 | |
| # IGNITION ALGORITHM ENTRY:  DELIVERS N PASSES OF QUADRATIC GUIDANCE
 | |
| 
 | |
| ?GUIDSUB	EXIT
 | |
| 		CAF	TWO		# N = 3
 | |
| 		TS	NGUIDSUB
 | |
| 		TCF	GUILDRET +2
 | |
| 
 | |
| GUIDSUB		TS	NGUIDSUB	# ON SUCCEEDING PASSES SKIP TTFINCR
 | |
| 		TCF	CALCRGVG
 | |
| 
 | |
| # NORMAL ENTRY:  CONTROL COMES HERE FROM SERVOUT
 | |
| 
 | |
| LUNLAND		TC	PHASCHNG
 | |
| 		OCT	00035		# GROUP 5:  RETAIN ONLY PIPA TASK
 | |
| 		TC	PHASCHNG
 | |
| 		OCT	05023		# GROUP 3:  PROTECT GUIDANCE WITH PRIO 21
 | |
| 		OCT	21000		#	JUST HIGHER THAN SERVICER'S PRIORITY
 | |
| 
 | |
| # Page 800
 | |
| #*******************************************************************
 | |
| # GUILDENSTERN:  AUTO-MODES MONITOR (R13)
 | |
| #*******************************************************************
 | |
| 
 | |
| 		COUNT*	$$/R13
 | |
| 
 | |
| # HERE IS THE PHILOSOPHY OF GUILDENSTERN:	ON EVERY APPEARANCE OR DISAPPEARANCE OF THE MANUAL THROTTLE
 | |
| # DISCRETE TO SELECT P67 OR P66 RESPECTIVELY:   ON EVERY APPEARANCE OF THE ATTITUDE-HOLD DISCRETE TO SELECT P66
 | |
| # UNLESS THE CURRENT PROGRAM IS P67 IN WHICH CASE THERE IS NO CHANGE
 | |
| 
 | |
| GUILDEN		EXTEND			# IS UN-AUTO-THROTTLE DISCRETE PRESENT?
 | |
| # STERN					# RSB 2009: Not originally a comment.
 | |
|  		READ CHAN30
 | |
| 		MASK	BIT5
 | |
|  		CCS	A
 | |
|  		TCF	STARTP67	# YES
 | |
| P67NOW?		TC	CHECKMM		# NO:  ARE WE IN P67 NOW?
 | |
| 		DEC	67
 | |
| 		TCF	STABL?		# NO
 | |
| STARTP66	TC	FASTCHNG	# YES
 | |
| 		TC	NEWMODEX
 | |
| DEC66		DEC	66
 | |
| 		EXTEND
 | |
| 		DCA	HDOTDISP	# SET DESIRED ALTITUDE RATE = CURRENT
 | |
| 		DXCH	VDGVERT		# 	ALTITUDE RATE.
 | |
| STRTP66A	TC	INTPRET
 | |
| 		SLOAD	PUSH
 | |
| 			PBIASZ
 | |
| 		SLOAD	PUSH
 | |
| 			PBIASY
 | |
| 		SLOAD	VDEF
 | |
| 			PBIASX
 | |
| 		VXSC	SET
 | |
| 			BIASFACT
 | |
| 			RODFLAG
 | |
| 		STOVL	VBIAS
 | |
| 			TEMX
 | |
| 		VCOMP
 | |
| 		STOVL	OLDPIPAX
 | |
| 			ZEROVECS
 | |
| 		STODL	DELVROD
 | |
| 			RODSCALE
 | |
| 		STODL	RODSCAL1
 | |
| 			PIPTIME
 | |
| 		STORE	LASTTPIP
 | |
| 		EXIT
 | |
| 		CAF	ZERO
 | |
| 		TS	FCOLD
 | |
| 		TS	FWEIGHT
 | |
| 		TS	FWEIGHT +1
 | |
| VRTSTART	TS	WCHVERT
 | |
| # Page 801
 | |
| 		CAF	TWO		# WCHPHASE = 2 ---> VERTICAL: P65,P66,P67
 | |
| 		TS	WCHPHOLD
 | |
| 		TS	WCHPHASE
 | |
| 		TC	BANKCALL	# TEMPORARY, I HOPE HOPE HOPE
 | |
| 		CADR	STOPRATE	# TEMPORARY, I HOPE HOPE HOPE
 | |
| 		TC	DOWNFLAG	# PERMIT X-AXIS OVERRIDE
 | |
| 		ADRES	XOVINFLG
 | |
| 		TC	DOWNFLAG
 | |
| 		ADRES	REDFLAG
 | |
| 		TCF	VERTGUID
 | |
| 
 | |
| STARTP67	TC	NEWMODEX	# NO HARM IN "STARTING" P67 OVER AND OVER
 | |
| 		DEC	67		# SO NO NEED FOR A FASTCHNG AND NO NEED
 | |
| 		CAF	ZERO		# TO SEE IF ALREADY IN P67.
 | |
| 		TS	RODCOUNT
 | |
| 		CAF	TEN
 | |
| 		TCF	VRTSTART
 | |
| 
 | |
| STABL?		CAF	BIT13		# IS UN-ATTITUDE-HOLD DISCRETE PRESENT?
 | |
| 		EXTEND
 | |
| 		RAND	CHAN31
 | |
| 		CCS	A
 | |
| 		TCF	GUILDRET	# YES ALL'S WELL
 | |
| 
 | |
| P66NOW?		CS	MODREG
 | |
| 		AD	DEC66
 | |
| 		EXTEND
 | |
| 		BZF	RESTART?
 | |
| 
 | |
| 		CA	RODCOUNT	# NO. HAS THE ROD SWITCH BEEN "CLICKED"?
 | |
| 		EXTEND
 | |
| 		BZF	GUILDRET	# NO. CONTINUE WITH AUTOMATIC LANDING
 | |
| 		TCF	STARTP66	# YES. SWITCH INTO THE ROD MODE.
 | |
| 
 | |
| RESTART?	CA	FLAGWRD1	# HAS THERE BEEN A RESTART?
 | |
| 		MASK	RODFLBIT
 | |
| 		EXTEND
 | |
| 		BZF	STRTP66A	# YES.  REINITIALIZE BUT LEAVE VDGVERT AS
 | |
| 					#	IS.
 | |
| 
 | |
| 		TCF	VERTGUID	# NO: CONTINUE WITH R.O.D.
 | |
| 
 | |
| # *******************************************************************************
 | |
| # INITIALIZATION FOR THIS PASS
 | |
| # *******************************************************************************
 | |
| 
 | |
| 		COUNT*	$$/F2DPS
 | |
| 
 | |
| GUILDRET	CAF	ZERO
 | |
| 		TS	RODCOUNT
 | |
| 
 | |
| # Page 802
 | |
|  +2		EXTEND
 | |
|  		DCA	TPIP
 | |
| 		DXCH	TPIPOLD
 | |
| 
 | |
| 		TC	FASTCHNG
 | |
| 
 | |
| 		EXTEND
 | |
| 		DCA	PIPTIME1
 | |
| 		DXCH	TPIP
 | |
| 
 | |
| 		EXTEND
 | |
| 		DCA	TTF/8
 | |
| 		DXCH	TTF/8TMP
 | |
| 
 | |
| 		CCS	FLPASS0
 | |
| 		TCF	TTFINCR
 | |
| 
 | |
| BRSPOT1		INDEX	WCHPHASE
 | |
| 		TCF	NEWPHASE
 | |
| 
 | |
| # ******************************************************************
 | |
| # ROUTINES TO START NEW PHASES
 | |
| # ******************************************************************
 | |
| 
 | |
| P65START	TC	NEWMODEX
 | |
| 		DEC	65
 | |
| 		CS	TWO
 | |
| 		TS	WCHVERT
 | |
| 		TC	DOWNFLAG	# PERMIT X-AXIS OVERRIDE
 | |
| 		ADRES	XOVINFLG
 | |
| 		TCF	TTFINCR
 | |
| 
 | |
| STARTP64	TC	NEWMODEX
 | |
| 		DEC	64
 | |
| 		CA	DELTTFAP	# AUGMENT TTF/8
 | |
| 		ADS	TTF/8TMP
 | |
| 		CA	BIT12		# ENABLE RUPT10
 | |
| 		EXTEND
 | |
| 		WOR	CHAN13
 | |
| 		TC	DOWNFLAG	# INITIALIZE REDESIGNATION FLAG
 | |
| 		ADRES	REDFLAG
 | |
| 
 | |
| 
 | |
| #		(CONTINUE TO TTFINCR)
 | |
| 
 | |
| # *********************************************************************************
 | |
| # INCREMENT TTF/8, UPDATE LAND FOR LUNAR ROTATION, DO OTHER USEFUL THINGS
 | |
| # *********************************************************************************
 | |
| #
 | |
| #	TTFINCR COMPUTATIONS ARE AS FOLLOWS --
 | |
| # Page 803
 | |
| #		TTF/8 UPDATED FOR TIME SINCE LAST PASS:
 | |
| #			TTF/8 = TTF/8 + (TPIP - TPIPOLD)/8
 | |
| #		LANDING SITE VECTOR UPDATED FOR LUNAR ROTATION:
 | |
| #			____               ____   ____                   __
 | |
| #			LAND = /LAND/ UNIT(LAND - LAND(TPIP - TPIPOLD) * WM)
 | |
| #		SLANT RANGE TO LANDING SITE, FOR DISPLAY:
 | |
| #			                 ____   _
 | |
| #			RANGEDSP = ABVAL(LAND - R)
 | |
| 
 | |
| TTFINCR		TC	INTPRET
 | |
| 		DLOAD	DSU
 | |
| 			TPIP
 | |
| 			TPIPOLD
 | |
| 		SLR	PUSH		# SHIFT SCALES DELTA TIME TO 2(17) CSECS
 | |
| 			11D
 | |
| 		VXSC	VXV
 | |
| 			LAND
 | |
| 			WM
 | |
| 		BVSU	RTB
 | |
| 			LAND
 | |
| 			NORMUNIT
 | |
| 		VXSC	VSL1
 | |
| 			/LAND/
 | |
| 		STODL	LANDTEMP
 | |
| 		EXIT
 | |
| 
 | |
| 		DXCH	MPAC
 | |
| 		DAS	TTF/8TMP	# NOW HAVE INCREMENTED TTF/8 IN TTF/8TMP
 | |
| 
 | |
| 		TC	FASTCHNG
 | |
| 
 | |
| 		EXTEND
 | |
| 		DCA	TTF/8TMP
 | |
| 		DXCH	TTF/8
 | |
| 
 | |
| 		EXTEND
 | |
| 		DCA	LANDTEMP
 | |
| 		DXCH	LAND
 | |
| 		EXTEND
 | |
| 		DCA	LANDTEMP +2
 | |
| 		DXCH	LAND     +2
 | |
| 		EXTEND
 | |
| 		DCA	LANDTEMP +4
 | |
| 		DXCH	LAND	 +4
 | |
| 
 | |
| # Page 804
 | |
| 		TC	TDISPSET
 | |
| 		TC	FASTCHNG	# SINCE REDESIG MAY CHANGE LANDTEMP
 | |
| 
 | |
| BRSPOT2		INDEX	WCHPHASE
 | |
| 		TCF	PREGUIDE
 | |
| 
 | |
| # *********************************************************************
 | |
| # LANDING SITE PERTURBATION EQUATIONS
 | |
| # *********************************************************************
 | |
| 
 | |
| REDESIG		CA	FLAGWRD6	# IS REDFLAG SET?
 | |
| 		MASK	REDFLBIT
 | |
| 		EXTEND
 | |
| 		BZF	RGVGCALC	# NO:  SKIP REDESIGNATION LOGIC
 | |
| 
 | |
| 		CA	TREDES		# YES:  HAS TREDES REACHED ZERO?
 | |
| 		EXTEND
 | |
| 		BZF	RGVGCALC	# YES:  SKIP REDESIGNATION LOGIC
 | |
| 
 | |
| 		INHINT
 | |
| 		CA	ELINCR1
 | |
| 		TS	ELINCR
 | |
| 		CA	AZINCR1
 | |
| 		TS	AZINCR
 | |
| 		TC	FASTCHNG
 | |
| 
 | |
| 		CA	ZERO
 | |
| 		TS	ELINCR1
 | |
| 		TS	AZINCR1
 | |
| 		TS	ELINCR	+1
 | |
| 		TS	AZINCR  +1
 | |
| 
 | |
| 		CA	FIXLOC		# SET PD TO 0
 | |
| 		TS	PUSHLOC
 | |
| 
 | |
| 		TC	INTPRET
 | |
| 		VLOAD	VSU
 | |
| 			LAND
 | |
| 			R		#                 ____   _
 | |
| 		RTB	PUSH		# PUSH DOWN UNIT (LAND - R)
 | |
| 			NORMUNIT
 | |
| 		VXV	VSL1
 | |
| 			YNBPIP		#                    ___        ____   _
 | |
| 		VXSC	PDDL		# PUSH DOWN - ELINCR(YNB * UNIT(LAND - R))
 | |
| 			ELINCR
 | |
| 			AZINCR
 | |
| 		VXSC	VSU
 | |
| 			YNBPIP
 | |
| 		VAD	PUSH		# RESULTING VECTOR IS 1/2 REAL SIZE
 | |
| 
 | |
| # Page 805
 | |
| 
 | |
| 		DLOAD	DSU		# MAKE SURE REDESIGNATION IS NOT
 | |
| 			0		# 	TOO CLOSE TO THE HORIZON.
 | |
| 			DEPRCRIT
 | |
| 		BMN	DLOAD
 | |
| 			REDES1
 | |
| 			DEPRCRIT
 | |
| 		STORE	0
 | |
| REDES1		DLOAD	DSU
 | |
| 			LAND
 | |
| 			R
 | |
| 		DDV	VXSC
 | |
| 			0
 | |
| 		VAD	UNIT
 | |
| 			R
 | |
| 		VXSC	VSL1
 | |
| 			/LAND/
 | |
| 		STORE	LANDTEMP
 | |
| 		EXIT			# LOOKANGL WILL BE COMPUTED AT RGVGCALC
 | |
| 
 | |
| 		TC	FASTCHNG
 | |
| 
 | |
| 		EXTEND
 | |
| 		DCA	LANDTEMP
 | |
| 		DXCH	LAND
 | |
| 		EXTEND
 | |
| 		DCA	LANDTEMP +2
 | |
| 		DXCH	LAND +2
 | |
| 		EXTEND
 | |
| 		DCA	LANDTEMP +4
 | |
| 		DXCH	LAND +4
 | |
| 
 | |
| 		TCF	RGVGCALC
 | |
| 
 | |
| # *********************************************************************
 | |
| # COMPUTE STATE IN GUIDANCE COORDINATES
 | |
| # *********************************************************************
 | |
| #
 | |
| #	RGVGCALC COMPUTATIONS ARE AS FOLLOWS:--
 | |
| #	VELOCITY RELATIVE TO THE SURFACE:
 | |
| #		_______   _   _   __
 | |
| #		ANGTERM = V + R * WM
 | |
| #	STATE IN GUIDANCE COORDINATES:
 | |
| #		___   *   _   ____
 | |
| #		RGU = CG (R - LAND)
 | |
| #		___   *   _   __   _
 | |
| #		VGU = CG (V - WM * R)
 | |
| # Page 806 actually starts one line earlier but that would separate the markers from their variables
 | |
| #
 | |
| #	HORIZONTAL VELOCITY FOR DISPLAY
 | |
| #
 | |
| #		VHORIZ = 8 ABVAL (0, VG , VG )
 | |
| #		                       2    1
 | |
| # 	DEPRESSION ANGLE FOR DISPLAY:
 | |
| #		                       _   ____  ______
 | |
| #		LOOKANGL = ARCSIN(UNIT(R - LAND).XMBPIP)
 | |
| 
 | |
| CALCRGVG	TC	INTPRET		# IN IGNALG, COMPUTE V FROM INTEGRATION
 | |
| 		VLOAD	MXV		#	OUTPUT AND TRIM CORRECTION TERM
 | |
| 			VATT1		#	COMPUTED LAST PASS AND LEFT IN UNFC/2
 | |
| 			REFSMMAT
 | |
| 		VSR1	VAD
 | |
| 			UNFC/2
 | |
| 		STORE	V
 | |
| 		EXIT
 | |
| 
 | |
| RGVGCALC	TC	INTPRET		# ENTER HERE TO RECOMPUTE RG AND VG
 | |
| 		VLOAD	VXV
 | |
| 			R
 | |
| 			WM
 | |
| 		VAD	VSR2		# RESCALE TO UNITS OF 2(9) M/CS
 | |
| 			V
 | |
| 		STORE	ANGTERM
 | |
| 		MXV
 | |
| 			CG		# NO SHIFT SINCE ANGTERM IS DOUBLE SIZED
 | |
| 		STORE	VGU
 | |
| 		PDDL	VDEF		# FORM (0,VG ,VG ) IN UNITS OF 2(10) M/CS
 | |
| 			ZEROVECS	#           2   1
 | |
| 		ABVAL	SL3
 | |
| 		STOVL	VHORIZ		# VHORIZ FOR DISPLAY DURING P65.
 | |
| 			R		#           _   ____
 | |
| 		VSU	PUSH		# PUSH DOWN R - LAND
 | |
| 			LAND
 | |
| 		MXV	VSL1
 | |
| 			CG
 | |
| 		STORE	RGU
 | |
| 		ABVAL
 | |
| 		STOVL	RANGEDSP
 | |
| 		RTB	DOT		# NOW IN MPAC IS SINE(LOOKANGL)/4
 | |
| 			NORMUNIT
 | |
| 			XNBPIP
 | |
| 		EXIT
 | |
| 
 | |
| 		CA	FIXLOC		# RESET PUSH DOWN POINTER
 | |
| 		TS	PUSHLOC
 | |
| 
 | |
| # Page 807
 | |
| 		CA	MPAC		# COMPUTE LOOKANGLE ITSELF
 | |
| 		DOUBLE
 | |
| 		TC	BANKCALL
 | |
| 		CADR	SPARCSIN -1
 | |
| 		AD	1/2DEG
 | |
| 		EXTEND
 | |
| 		MP	180DEGS
 | |
| 		TS	LOOKANGL	# LOOKANGL FOR DISPLAY DURING P64
 | |
| 
 | |
| BRSPOT3		INDEX	WCHPHASE
 | |
| 		TCF	WHATGUID
 | |
| 
 | |
| # **************************************************************************
 | |
| # TTF/8 COMPUTATION
 | |
| # **************************************************************************
 | |
| 
 | |
| TTF/8CL		TC	INTPRETX
 | |
| 		DLOAD*
 | |
| 			JDG2TTF,1
 | |
| 		STODL*	TABLTTF +6	# A(3) = 8 JDG  TO TABLTTF
 | |
| 			ADG2TTF,1	#             2
 | |
| 		STODL	TABLTTF +4	# A(2) = 6 ADG  TO TABLTTF
 | |
| 			VGU 	+4	#             2
 | |
| 		DMP	DAD*
 | |
| 			3/4DP
 | |
| 			VDG2TTF,1
 | |
| 		STODL*	TABLTTF +2	# A(1) = (6 VGU  + 18 VDG )/8 TO TABLTTF
 | |
| 			RDG +4,1	#              2         2
 | |
| 		DSU	DMP
 | |
| 			RGU +4
 | |
| 			3/8DP
 | |
| 		STORE	TABLTTF		# A(0) = -24 (RGU  - RDG )/64 TO TABLTTF
 | |
| 		EXIT			#                2      2
 | |
| 
 | |
| 		CA	BIT8
 | |
| 		TS	TABLTTF +10	# FRACTIONAL PRECISION FOR TTF TO TABLE
 | |
| 
 | |
| 		EXTEND
 | |
| 		DCA	TTF/8
 | |
| 		DXCH	MPAC		# LOADS TTF/8 (INITIAL GUESS) INTO MPAC
 | |
| 		CAF	TWO		# DEGREE - ONE
 | |
| 		TS	L
 | |
| 		CAF	TABLTTFL
 | |
| 		TC	ROOTPSRS	# YIELDS TTF/8 IN MPAC
 | |
| 		INDEX	WCHPHASE
 | |
| 		TCF	WHATALM
 | |
| 
 | |
| 		EXTEND			# GOOD RETURN
 | |
| 		DCA	MPAC		# FETCH TTF/8 KEEPING IT IN MPAC
 | |
| 		DXCH	TTF/8		# CORRECTED TTF/8
 | |
| 
 | |
| # Page 808
 | |
| 		TC	TDISPSET
 | |
| 
 | |
| # 		(CONTINUE TO QUADGUID)
 | |
| 
 | |
| # *********************************************************************************
 | |
| # MAIN GUIDANCE EQUATION
 | |
| # *********************************************************************************
 | |
| #
 | |
| #	AS PUBLISHED --
 | |
| #		              ___   __       ___   __
 | |
| #		___   ___   6(VDG + VG)   12(RDG - RG)
 | |
| #		ACG = ADG + ----------- + ------------
 | |
| #		                TTF        (TTF)(TTF)
 | |
| #	AS HERE PROGRAMMED --
 | |
| #		             ___   __
 | |
| #		      3 (1/4(RDG - RG)   ___   __)
 | |
| #		      - (------------- + VDG + VG)
 | |
| #		___   4 (    TTF/8               )   ___
 | |
| #		ACG = ---------------------------- + ADG
 | |
| #		                  TTF/8
 | |
| 
 | |
| QUADGUID	CS	TTF/8
 | |
| 		AD	LEADTIME	# LEADTIME IS A NEGATIVE NUMBER
 | |
| 		AD	POSMAX		# SAFEGUARD THE COMPUTATIONS THAT FOLLOW
 | |
| 		TS	L		#	BY FORCING -TTF*LEADTIME > OR = ZERO
 | |
| 		CS	L
 | |
| 		AD	L
 | |
| 		ZL
 | |
| 		EXTEND
 | |
| 		DV	TTF/8
 | |
| 		TS	BUF		# - RATIO OF LAG-DIMINISHED TTF TO TTF
 | |
| 		EXTEND
 | |
| 		SQUARE
 | |
| 		TS	BUF +1
 | |
| 		AD	BUF
 | |
| 		XCH	BUF +1		# RATIO SQUARED - RATIO
 | |
| 		AD	BUF +1
 | |
| 		TS	MPAC		# COEFFICIENT FOR VGU TERM
 | |
| 		AD	BUF +1
 | |
| 		INDEX	FIXLOC
 | |
| 		TS	26D		# COEFFICIENT FOR RDG-RGU TERM
 | |
| 		AD	BUF +1
 | |
| 		INDEX	FIXLOC
 | |
| 		TS	28D		# COEFFICIENT FOR VDG TERM
 | |
| 		AD	BUF
 | |
| 		AD	POSMAX
 | |
| # Page 809
 | |
| 		AD	BUF +1
 | |
| 		AD	BUF +1
 | |
| 		INDEX	FIXLOC
 | |
| 		TS	30D		# COEFFICIENT FOR ADG TERM
 | |
| 
 | |
| 		CAF	ZERO
 | |
| 		TS	MODE
 | |
| 
 | |
| 		TC	INTPRETX
 | |
| 		VXSC	PDDL
 | |
| 			VGU
 | |
| 			28D
 | |
| 		VXSC*	PDVL*
 | |
| 			VDG,1
 | |
| 			RDG,1
 | |
| 		VSU	V/SC
 | |
| 			RGU
 | |
| 			TTF/8
 | |
| 		VSR2	VXSC
 | |
| 			26D
 | |
| 		VAD	VAD
 | |
| 		V/SC	VXSC
 | |
| 			TTF/8
 | |
| 			3/4DP
 | |
| 		PDDL	VXSC*
 | |
| 			30D
 | |
| 			ADG,1
 | |
| 		VAD
 | |
| AFCCALC1	VXM	VSL1		# VERGUID COMES HERE
 | |
| 			CG
 | |
| 		PDVL	V/SC
 | |
| 			GDT/2
 | |
| 			GSCALE
 | |
| 		BVSU	STADR
 | |
| 		STORE	UNFC/2		# UNFC/2 NEED NOT BE UNITIZED
 | |
| 		ABVAL
 | |
| AFCCALC2	STODL	/AFC/		# MAGNITUDE OF AFC FOR THROTTLE
 | |
| 			UNFC/2		# VERTICAL COMPONENT
 | |
| 		DSQ	PDDL
 | |
| 			UNFC/2 +2	# OUT-OF-PLANE
 | |
| 		DSQ	PDDL
 | |
| 			HIGHESTF
 | |
| 		DDV	DSQ
 | |
| 			MASS		#                        2    2    2
 | |
| 		DSU	DSU		# AMAXHORIZ = SQRT(ATOTAL - A  - A  )
 | |
| 		BPL	DLOAD		#                            1    0
 | |
| 			AFCCALC3
 | |
| 			ZEROVECS
 | |
| AFCCALC3	SQRT	DAD
 | |
| 			UNFC/2 +4
 | |
| # Page 810
 | |
| 		BPL	BDSU
 | |
| 			AFCCLEND
 | |
| 			UNFC/2 +4
 | |
| 		STORE	UNFC/2 +4
 | |
| AFCCLEND	EXIT
 | |
| 		TC	FASTCHNG
 | |
| 
 | |
| 		CA	WCHPHASE	# PREPARE FOR PHASE SWITCHING LOGIC
 | |
| 		TS	WCHPHOLD
 | |
| 		INCR	FLPASS0		# INCREMENT PASS COUNTER
 | |
| 
 | |
| BRSPOT4		INDEX	WCHPHASE
 | |
| 		TCF	AFTRGUID
 | |
| 
 | |
| # ***********************************************************************
 | |
| # ERECT GUIDANCE-STABLE MEMBER TRANSFORMATION MATRIX
 | |
| # ***********************************************************************
 | |
| 
 | |
| CGCALC		CAF	EBANK5
 | |
| 		TS	EBANK
 | |
| 		EBANK=	TCGIBRAK
 | |
| 		EXTEND
 | |
| 		INDEX	WCHPHASE
 | |
| 		INDEX	TARGTDEX
 | |
| 		DCA	TCGFBRAK
 | |
| 		INCR	BBANK
 | |
| 		INCR	BBANK
 | |
| 		EBANK=	TTF/8
 | |
| 		AD	TTF/8
 | |
| 		XCH	L
 | |
| 		AD	TTF/8
 | |
| 		CCS	A
 | |
| 		CCS	L
 | |
| 		TCF	EXTLOGIC
 | |
| 		TCF	EXTLOGIC
 | |
| 		NOOP
 | |
| 
 | |
| 		TC	INTPRETX
 | |
| 		VLOAD	UNIT
 | |
| 			LAND
 | |
| 		STODL	CG
 | |
| 			TTF/8
 | |
| 		DMP*	VXSC
 | |
| 			GAINBRAK,1	# NUMERO MYSTERIOSO
 | |
| 			ANGTERM
 | |
| 		VAD
 | |
| 			LAND
 | |
| 		VSU	RTB
 | |
| 			R
 | |
| 			NORMUNIT
 | |
| # Page 811
 | |
| 		VXV	RTB
 | |
| 			LAND
 | |
| 			NORMUNIT
 | |
| 		STOVL	CG +6		# SECOND ROW
 | |
| 			CG
 | |
| 		VXV	VSL1
 | |
| 			CG +6
 | |
| 		STORE	CG +14
 | |
| 		EXIT
 | |
| 
 | |
| #		(CONTINUE TO EXTLOGIC)
 | |
| #
 | |
| # ***********************************************************************
 | |
| # PREPARE TO EXIT
 | |
| # ***********************************************************************
 | |
| #
 | |
| # DECIDE (1) HOW TO EXIT, AND (2) WHETHER TO SWITCH PHASES
 | |
| #
 | |
| EXTLOGIC	INDEX	WCHPHASE	# WCHPHASE = 1   APPRQUAD
 | |
| 		CA	TENDBRAK	# WCHPHASE = 0   BRAKQUAD
 | |
| 		AD	TTF/8
 | |
| 
 | |
| EXSPOT1		EXTEND
 | |
| 		INDEX	WCHPHASE
 | |
| 		BZMF	WHATEXIT
 | |
| 
 | |
| 		TC	FASTCHNG
 | |
| 
 | |
| 		CA	WCHPHOLD
 | |
| 		AD	ONE
 | |
| 		TS	WCHPHASE
 | |
| 		CA	ZERO
 | |
| 		TS	FLPASS0		# RESET FLPASS0
 | |
| 
 | |
| 		INDEX	WCHPHOLD
 | |
| 		TCF	WHATEXIT
 | |
| 
 | |
| # ***********************************************************************
 | |
| # ROUTINES FOR EXITING FROM LANDING GUIDANCE
 | |
| # ***********************************************************************
 | |
| #
 | |
| # 1.	EXGSUB IS THE RETURN WHEN GUIDSUB IS CALLED BY THE IGNITION ALGORITHM.
 | |
| # 2.	EXBRAK IN THE EXIT USED DURING THE BRAKING PHASE.  IN THIS CASE UNIT(R) IS THE WINDOW POINTING VECTOR.
 | |
| # 3.	EXNORM IS THE EXIT USED AT OTHER TIMES DURING THE BURN.
 | |
| # (EXOVFLOW IS A SUBROUTINE OF EXBRAK AND EXNORM CALLED WHEN OVERFLOW OCCURRED ANYWHERE IN GUIDANCE.)
 | |
| 
 | |
| EXGSUB		TC	INTPRET		# COMPUTE TRIM VELOCITY CORRECTION TERM.
 | |
| # Page 812
 | |
| 		VLOAD	RTB
 | |
| 			UNFC/2
 | |
| 			NORMUNIT
 | |
| 		VXSC	VXSC
 | |
| 			ZOOMTIME
 | |
| 			TRIMACCL
 | |
| 		STORE	UNFC/2
 | |
| 		EXIT
 | |
| 
 | |
| 		CCS	NGUIDSUB
 | |
| 		TCF	GUIDSUB
 | |
| 		CCS	NIGNLOOP
 | |
| 		TCF	+3
 | |
| 		TC	ALARM
 | |
| 		OCT	01412
 | |
| 
 | |
|  +3		TC	POSTJUMP
 | |
|  		CADR	DDUMCALC
 | |
| 
 | |
| EXBRAK		TC	INTPRET
 | |
| 		VLOAD
 | |
| 			UNIT/R/
 | |
| 		STORE	UNWC/2
 | |
| 		EXIT
 | |
| 		TCF	STEER?
 | |
| 
 | |
| EXNORM		TC	INTPRET
 | |
| 		VLOAD	VSU
 | |
| 			LAND
 | |
| 			R
 | |
| 		RTB
 | |
| 			NORMUNIT
 | |
| 		STORE	UNWC/2		# UNIT(LAND - R) IS TENTATIVE CHOICE
 | |
| 		VXV	DOT
 | |
| 			XNBPIP
 | |
| 			CG +6
 | |
| 		EXIT			# WITH PROJ IN MPAC 1/8 REAL SIZE
 | |
| 
 | |
| 		CS	MPAC		# GET COEFFICIENT FOR CG +14
 | |
| 		AD	PROJMAX
 | |
| 		AD	POSMAX
 | |
| 		TS	BUF
 | |
| 		CS	BUF
 | |
| 		ADS	BUF		# RESULT IS 0 IF PROJMAX - PROJ NEGATIVE
 | |
| 
 | |
| 		CS	PROJMIN		# GET COEFFICIENT FOR UNIT(LAND - R)
 | |
| 		AD	MPAC
 | |
| 		AD	POSMAX
 | |
| 		TS	BUF +1
 | |
| 		CS	BUF +1
 | |
| # Page 813
 | |
| 		ADS	BUF +1		# RESULT IS 0 IF PROJ - PROJMIN NEGATIVE
 | |
| 
 | |
| 		CAF	FOUR
 | |
| UNWCLOOP	MASK	SIX
 | |
| 		TS	Q
 | |
| 		CA	EBANK5
 | |
| 		TS	EBANK
 | |
| 		EBANK=	CG
 | |
| 		CA	BUF
 | |
| 		EXTEND
 | |
| 		INDEX	Q
 | |
| 		MP	CG +14
 | |
| 		INCR	BBANK
 | |
| 		EBANK=	UNWC/2
 | |
| 		INDEX	Q
 | |
| 		DXCH	UNWC/2
 | |
| 		EXTEND
 | |
| 		MP	BUF +1
 | |
| 		INDEX	Q
 | |
| 		DAS	UNWC/2
 | |
| 		CCS	Q
 | |
| 		TCF	UNWCLOOP
 | |
| 
 | |
| 		INCR	BBANK
 | |
| 		EBANK=	PIF
 | |
| 
 | |
| STEER?		CA	FLAGWRD2	# IF STEERSW DOWN NO OUTPUTS
 | |
| 		MASK	STEERBIT
 | |
| 		EXTEND
 | |
| 		BZF	RATESTOP
 | |
| 
 | |
| EXVERT		CA	OVFIND		# IF OVERFLOW ANYWHERE IN GUIDANCE
 | |
| 		EXTEND			#	DON'T CALL THROTTLE OR FINDCDUW
 | |
| 		BZF	+13
 | |
| 
 | |
| EXOVFLOW	TC	ALARM		# SOUND THE ALARM NON-ABORTIVELY
 | |
| 		OCT	01410
 | |
| 
 | |
| RATESTOP	CAF	BIT13		# ARE WE IN ATTITUDE-HOLD?
 | |
| 		EXTEND
 | |
| 		RAND	CHAN31
 | |
| 		EXTEND
 | |
| 		BZF	DISPEXIT	# YES
 | |
| 
 | |
| 		TC	BANKCALL	# NO:  DO A STOPRATE
 | |
| 		CADR	STOPRATE
 | |
| 
 | |
| 		TCF	DISPEXIT
 | |
| 
 | |
| GDUMP1		TC	THROTTLE
 | |
| # Page 814
 | |
| 		TC	INTPRET
 | |
| 		CALL
 | |
| 			FINDCDUW -2
 | |
| 		EXIT
 | |
| 
 | |
| # 		(CONTINUE TO DISPEXIT)
 | |
| 
 | |
| # ***********************************************************************
 | |
| # GUIDANCE LOOP DISPLAYS
 | |
| # ***********************************************************************
 | |
| 
 | |
| DISPEXIT	EXTEND			# KILL GROUP 3:  DISPLAYS WILL BE
 | |
| 		DCA	NEG0		#	RESTORED BY NEXT GUIDANCE CYCLE.
 | |
| 		DXCH	-PHASE3
 | |
| 
 | |
|  +3		CS	FLAGWRD8	# IF FLUNDISP IS SET, NO DISPLAY THIS PASS
 | |
|  		MASK	FLUNDBIT
 | |
| 		EXTEND
 | |
| 		BZF	ENDLLJOB	# TO PICK UP THE TAG
 | |
| 
 | |
| 		INDEX	WCHPHOLD
 | |
| 		TCF	WHATDISP
 | |
| 
 | |
| -2		TC	PHASCHNG	# KILL GROUP 5
 | |
| 		OCT	00035
 | |
| 
 | |
| P63DISPS	CAF	V06N63
 | |
| DISPCOMN	TC	BANKCALL
 | |
| 		CADR	REGODSPR
 | |
| 
 | |
| ENDLLJOB	TCF	ENDOFJOB
 | |
| 
 | |
| P64DISPS	CA	TREDES		# HAS TREDES REACHED ZERO?
 | |
| 		EXTEND
 | |
| 		BZF	RED-OVER	# YES: CLEAR REDESIGNATION FLAG
 | |
| 
 | |
| 		CS	FLAGWRD6	# NO:  IS REDFLAG SET?
 | |
| 		MASK	REDFLBIT
 | |
| 		EXTEND
 | |
| 		BZF	REDES-OK	# YES:  DO STATIC DISPLAY
 | |
| 
 | |
| 		CAF	V06N64		# OTHERWISE USE FLASHING DISPLAY
 | |
| 		TC	BANKCALL
 | |
| 		CADR	REFLASHR
 | |
| 		TCF	GOTOPOOH	# TERMINATE
 | |
| 		TCF	P64CEED		# PROCEED	PERMIT REDESIGNATIONS
 | |
| 		TCF	P64DISPS	# RECYCLE
 | |
| # Page 815
 | |
| 		TCF	ENDLLJOB
 | |
| 
 | |
| P64CEED		CAF	ZERO
 | |
| 		TS	ELINCR1
 | |
| 		TS	AZINCR1
 | |
| 
 | |
| 		TC	UPFLAG		# ENABLE REDESIGNATION LOGIC
 | |
| 		ADRES	REDFLAG
 | |
| 
 | |
| 		TCF	ENDOFJOB
 | |
| 
 | |
| RED-OVER	TC	DOWNFLAG
 | |
| 		ADRES	REDFLAG
 | |
| REDES-OK	CAF	V06N64
 | |
| 		TCF	DISPCOMN
 | |
| 
 | |
| 
 | |
| VERTDISP	CAF	V06N60
 | |
| 		TCF	DISPCOMN
 | |
| 
 | |
| 
 | |
| # **************************************************************************
 | |
| # GUIDANCE FOR P65
 | |
| # **************************************************************************
 | |
| 
 | |
| VERTGUID	CCS	WCHVERT
 | |
| 		TCF	P67VERT		# POSITIVE NON-ZERO ---> P67
 | |
| 		TCF	P66VERT		# +0
 | |
| #
 | |
| # 	THE P65 GUIDANCE EQUATION IS AS FOLLOWS --
 | |
| #		      ____   ___
 | |
| #		      V2FG - VGU
 | |
| #		ACG = ----------
 | |
| #		        TAUVERT
 | |
| 
 | |
| P65VERT		TC	INTPRET
 | |
| 		VLOAD	VSU
 | |
| 			V2FG
 | |
| 			VGU
 | |
| 		V/SC	GOTO
 | |
| 			TAUVERT
 | |
| 			AFCCALC1
 | |
| # Page 816
 | |
| # **********************************************************
 | |
| # GUIDANCE FOR P66
 | |
| # **********************************************************
 | |
| 
 | |
| P66VERT		TC	POSTJUMP
 | |
| 		CADR	P66VERTA
 | |
| 
 | |
| P67VERT		TC	PHASCHNG	# TERMINATE GROUP 3.
 | |
| 		OCT	00003
 | |
| 
 | |
| 		TC	INTPRET
 | |
| 		VLOAD	GOTO
 | |
| 			V
 | |
| 			VHORCOMP
 | |
| 
 | |
| 		SETLOC	P66LOC
 | |
| 		BANK
 | |
| 		COUNT*	$$/F2DPS
 | |
| 
 | |
| RODTASK		CAF	PRIO22
 | |
| 		TC	FINDVAC
 | |
| 		EBANK=	DVCNTR
 | |
| 		2CADR	RODCOMP
 | |
| 
 | |
| 		TCF	TASKOVER
 | |
| 
 | |
| P66VERTA	TC	PHASCHNG	# TERMINATE GROUP 3.
 | |
| 		OCT	00003
 | |
| 
 | |
| 		CAF	1SEC
 | |
| 		TC	TWIDDLE
 | |
| 		ADRES	RODTASK
 | |
| 
 | |
| RODCOMP		INHINT
 | |
| 		CAF	ZERO
 | |
| 		XCH	RODCOUNT
 | |
| 		EXTEND
 | |
| 		MP	RODSCAL1
 | |
| 		DAS	VDGVERT		# UPDATE DESIRED ALTITUDE RATE.
 | |
| 
 | |
| 		EXTEND			# SET OLDPIPAX,Y,Z = PIPAX,Y,Z
 | |
| 		DCA	PIPAX
 | |
| 		DXCH	OLDPIPAX
 | |
| 		DXCH	RUPTREG1	# SET RUPTREG1,2,3 = OLDPIPAX,Y,Z
 | |
| 		CA	PIPAZ
 | |
| 		XCH	OLDPIPAZ
 | |
| 		XCH	RUPTREG3
 | |
| 
 | |
| 		EXTEND			# SNAPSHOT TIME OF PIPA READING.
 | |
| 		DCA	TIME2
 | |
| # Page 817
 | |
| 		DXCH	THISTPIP
 | |
| 
 | |
| 		CA	OLDPIPAX
 | |
| 		AD	PIPATMPX
 | |
| 		TS	MPAC		# MPAC(X) = PIPAX + PIPATMPX
 | |
| 		CA	OLDPIPAY
 | |
| 		AD	PIPATMPY
 | |
| 		TS	MPAC +3		# MPAC(Y) = PIPAY + PIPATMPY
 | |
| 		CA	OLDPIPAZ
 | |
| 		AD	PIPATMPZ
 | |
| 		TS	MPAC +5		# MPAC(Z) = PIPAZ + PIPATMPZ
 | |
| 
 | |
| 		CS	OLDPIPAX
 | |
| 		AD	TEMX
 | |
| 		AD	RUPTREG1
 | |
| 		TS	DELVROD
 | |
| 		CS	OLDPIPAY
 | |
| 		AD	TEMY
 | |
| 		AD	RUPTREG2
 | |
| 		TS	DELVROD +2
 | |
| 		CS	OLDPIPAZ
 | |
| 		AD	TEMZ
 | |
| 		AD	RUPTREG3
 | |
| 		TS	DELVROD +4
 | |
| 
 | |
| 		CAF	ZERO
 | |
| 		TS	MPAC +1		# ZERO LO-ORDER MPAC COMPONENTS
 | |
| 		TS	MPAC +4
 | |
| 		TS	MPAC +6
 | |
| 		TS	TEMX		# ZERO TEMX, TEMY, AND TEMZ SO WE WILL
 | |
| 		TS	TEMY		#	KNOW WHEN READACCS CHANGES THEM.
 | |
| 		TS	TEMZ
 | |
| 		CS	ONE
 | |
| 		TS	MODE
 | |
| 		TC	INTPRET
 | |
| ITRPNT1		VXSC	PDDL		# SCALE MPAC TO M/CS *2(-7) AND PUSH 	(6)
 | |
| 			KPIP1
 | |
| 			THISTPIP
 | |
| 		DSU
 | |
| 			PIPTIME
 | |
| 		STORE	30D		# 30-31D CONTAINS TIME IN CS SINCE PIPTIME
 | |
| 		DDV	PDVL		#					(8)
 | |
| 			4SEC(28)
 | |
| 			GDT/2
 | |
| 		VSU	VXSC		#					(6)
 | |
| 			VBIAS
 | |
| 		VSL2	VAD
 | |
| 			V
 | |
| 		VAD	STADR		#					(0)
 | |
| 		STOVL	24D		# STORE UPDATED VELOCITY IN 24-29D
 | |
| # Page 818
 | |
| 			R
 | |
| 		UNIT
 | |
| 		STORE	14D
 | |
| 		DOT	SL1
 | |
| 			24D
 | |
| 		STODL	HDOTDISP	# UPDATE HDOTDISP RATE FOR NOUN 63.
 | |
| 			30D
 | |
| 		SL	DMP
 | |
| 			11D
 | |
| 			HDOTDISP
 | |
| 		DAD	DSU
 | |
| 			36D
 | |
| 			/LAND/
 | |
| 		STODL	HCALC1		# UPDATE HCALC1 FOR NOUN 63.
 | |
| 			HDOTDISP
 | |
| 		BDSU	DDV
 | |
| 			VDGVERT
 | |
| 			TAUROD
 | |
| 		PDVL	ABVAL		#				(2)
 | |
| 			GDT/2
 | |
| 		DDV	SR2
 | |
| 			GSCALE
 | |
| 		STORE	20D
 | |
| 		DAD			#				(0)
 | |
| 		PDVL	CALL		#				(2)
 | |
| 			UNITX
 | |
| 			CDU*NBSM
 | |
| 		DOT
 | |
| 			14D
 | |
| 		STORE	22D
 | |
| 		BDDV	STADR		#				(0)
 | |
| 		STOVL	/AFC/
 | |
| 			DELVROD
 | |
| 		VXSC	VAD
 | |
| 			KPIP1
 | |
| 			VBIAS
 | |
| 		ABVAL	PDDL		#				(2)
 | |
| 			THISTPIP
 | |
| 		DSU	PDDL		#				(4)
 | |
| 			LASTTPIP
 | |
| 			THISTPIP
 | |
| 		STODL	LASTTPIP	#				(2)
 | |
| 		DDV	BDDV		#				(0)
 | |
| 			SHFTFACT
 | |
| 		PDDL	DMP		#				(2)
 | |
| 			FWEIGHT
 | |
| 			BIT1H
 | |
| 		DDV	DDV
 | |
| 			MASS
 | |
| 			SCALEFAC
 | |
| # Page 819
 | |
| 		DAD	PDDL		#				(4)
 | |
| 			0D
 | |
| 			20D
 | |
| 		DDV	DSU		#				(2)
 | |
| 			22D
 | |
| 		DMP	DAD
 | |
| 			LAG/TAU
 | |
| 			/AFC/
 | |
| 		PDDL	DDV		#				(4)
 | |
| 			MAXFORCE
 | |
| 			MASS
 | |
| 		PDDL	DDV		#				(6)
 | |
| 			MINFORCE
 | |
| 			MASS
 | |
| 		PUSH	BDSU		#				(8)
 | |
| 			2D
 | |
| 		BMN	DLOAD		#				(6)
 | |
| 			AFCSPOT
 | |
| 		DLOAD	PUSH		#				(6)
 | |
| 		BDSU	BPL
 | |
| 			2D
 | |
| 			AFCSPOT
 | |
| 		DLOAD			#				(4)
 | |
| AFCSPOT		DLOAD			#				(2), (4), OR (6)
 | |
| 		SETPD			#				(2)
 | |
| 			2D
 | |
| 		STODL	/AFC/		#				(0)
 | |
| ITRPNT2		EXIT
 | |
| 		DXCH	MPAC		# MPAC = MEASURED ACCELERATION.
 | |
| 		TC	BANKCALL
 | |
| 		CADR	THROTTLE +3
 | |
| 		TC	INTPRET
 | |
| 		VLOAD			# PICK UP UPDATED VELOCITY VECTOR.
 | |
| 			24D
 | |
| VHORCOMP	VSL2	VAD
 | |
| 			DELVS
 | |
| 		VSR2	PDVL
 | |
| 			R
 | |
| 		UNIT	VXSC
 | |
| 			HDOTDISP
 | |
| 		VSL1	BVSU
 | |
| 		ABVAL
 | |
| 		STORE	VHORIZ
 | |
| 		EXIT
 | |
| 		TC	BANKCALL	# PUT UP V06N60 DISPLAY BUT AVOID PHASCHNG
 | |
| 		CADR	DISPEXIT +3
 | |
| 
 | |
| BIT1H		OCT	00001
 | |
| SHFTFACT	2DEC	1 B-17
 | |
| # Page 820
 | |
| BIASFACT	2DEC	655.36 B-28
 | |
| 
 | |
| # *********************************************************************************
 | |
| # REDESIGNATOR TRAP
 | |
| # *********************************************************************************
 | |
| 
 | |
| 		BANK	11
 | |
| 		SETLOC	F2DPS*11
 | |
| 		BANK
 | |
| 
 | |
| 		COUNT*	$$/F2DPS
 | |
| 
 | |
| PITFALL		XCH	BANKRUPT
 | |
| 		EXTEND
 | |
| 		QXCH	QRUPT
 | |
| 
 | |
| 		TC	CHECKMM		# IF NOT IN P64, NO REASON TO CONTINUE
 | |
| 		DEC	64
 | |
| 		TCF	RESUME
 | |
| 
 | |
| 		EXTEND
 | |
| 		READ	CHAN31
 | |
| 		COM
 | |
| 		MASK	ALL4BITS
 | |
| 		TS	ELVIRA
 | |
| 		CAF	TWO
 | |
| 		TS	ZERLINA
 | |
| 		CAF	FIVE
 | |
| 		TC	TWIDDLE
 | |
| 		ADRES	REDESMON
 | |
| 		TCF	RESUME
 | |
| 
 | |
| # REDESIGNATOR MONITOR (INITIATED BY PITFALL)
 | |
| 
 | |
| PREMON1		TS	ZERLINA
 | |
| PREMON2		CAF	SEVEN
 | |
| 		TC	VARDELAY
 | |
| REDESMON	EXTEND
 | |
| 		READ	31
 | |
| 		COM
 | |
| 		MASK	ALL4BITS
 | |
| 		XCH	ELVIRA
 | |
| 		TS	L
 | |
| 		CCS	ELVIRA		# DO ANY BITS APPEAR THIS PASS?
 | |
| 		TCF	PREMON2		# Y:	CONTINUE MONITOR
 | |
| 
 | |
| 		CCS	L		# N:	ANY LAST PASS?
 | |
| 		TCF	COUNT'EM	#	Y: 	COUNT 'EM, RESET RUPT, TERMINATE
 | |
| # Page 821
 | |
| 		CCS	ZERLINA		#	N: 	HAS ZERLINA REACHED ZERO YET?
 | |
| 		TCF	PREMON1		#		N:	DIMINISH ZERLINA, CONTINUE
 | |
| RESETRPT	CAF	BIT12		#		Y:	RESET RUPT. TERMINATE
 | |
| 		EXTEND
 | |
| 		WOR	CHAN13
 | |
| 		TCF	TASKOVER
 | |
| 
 | |
| COUNT'EM	CAF	BIT13		# ARE WE IN ATTITUDE-HOLD?
 | |
| 		EXTEND
 | |
| 		RAND	CHAN31
 | |
| 		EXTEND
 | |
| 		BZF	RESETRPT	# YES: SKIP REDESIGNATION LOGIC.
 | |
| 
 | |
| 		CA	L		# NO.
 | |
| 		MASK 	-AZBIT
 | |
| 		CCS	A
 | |
| -AZ		CS	AZEACH
 | |
| 		ADS	AZINCR1
 | |
| 		CA	L
 | |
| 		MASK	+AZBIT
 | |
| 		CCS	A
 | |
| +AZ		CA	AZEACH
 | |
| 		ADS	AZINCR1
 | |
| 		CA	L
 | |
| 		MASK	-ELBIT
 | |
| 		CCS	A
 | |
| -EL		CS	ELEACH
 | |
| 		ADS	ELINCR1
 | |
| 		CA	L
 | |
| 		MASK	+ELBIT
 | |
| 		CCS	A
 | |
| +EL		CA	ELEACH
 | |
| 		ADS	ELINCR1
 | |
| 		TCF	RESETRPT
 | |
| 
 | |
| # THESE EQUIVALENCES ARE BASED ON GSOP CHAPTER 4, REVISION 16 OF P64LM
 | |
| 
 | |
| +ELBIT		=	BIT2		# -PITCH
 | |
| -ELBIT		=	BIT1		# +PITCH
 | |
| +AZBIT		=	BIT5
 | |
| -AZBIT		=	BIT6
 | |
| 
 | |
| # Page 822
 | |
| ALL4BITS	OCT	00063
 | |
| AZEACH		DEC	.03491		# 2 DEGREES
 | |
| ELEACH		DEC	.00873		# 1/2 DEGREE
 | |
| 
 | |
| # ****************************************************************
 | |
| # R.O.D. TRAP
 | |
| # ****************************************************************
 | |
| 
 | |
| 		BANK	20
 | |
| 		SETLOC	RODTRAP
 | |
| 		BANK
 | |
| 		COUNT*	$$/F2DPS	# ************************
 | |
| 
 | |
| DESCBITS	MASK	BIT7		# COME HERE FROM MARKRUPT CODING WITH BIT
 | |
| 		CCS	A		#	7 OR 6 OF CHANNEL 16 IN A; BIT 7 MEANS
 | |
| 		CS	TWO		#	- RATE INCREMENT, BIT 6 + INCREMENT.
 | |
| 		AD	ONE
 | |
| 		ADS	RODCOUNT
 | |
| 		TCF	RESUME		# TRAP IS RESET WHEN SWITCH IS RELEASED
 | |
| 
 | |
| 		BANK	31
 | |
| 		SETLOC	F2DPS*31
 | |
| 		BANK
 | |
| 
 | |
| 		COUNT*	$$/F2DPS
 | |
| 
 | |
| # ***********************************************************************************
 | |
| # DOUBLE PRECISION ROOT FINDER SUBROUTINE (BY ALLAN KLUMPP)
 | |
| # ***********************************************************************************
 | |
| #
 | |
| #	                                               N        N-1
 | |
| #	ROOTPSRS FINDS ONE ROOT OF THE POWER SERIES A X  + A   X    + ... + A X + A
 | |
| #	                                             N      N-1              1     0
 | |
| # USING NEWTON'S METHOD STARTING WITH AN INITIAL GUESS FOR THE ROOT.  THE ENTERING DATA MUST BE AS FOLLOWS:
 | |
| #	A	SP	LOC-3		ADRES FOR REFERENCING PWR COF TABL
 | |
| #	L	SP	N-1		N IS THE DEGREE OF THE POWER SERIES
 | |
| #	MPAC	DP	X		INITIAL GUESS FOR ROOT
 | |
| #
 | |
| #	LOC-2N	DP	A(0)
 | |
| #		...
 | |
| #	LOC	DP	A(N)
 | |
| #	LOC+2	SP	PRECROOT	 PREC RQD OF ROOT (AS FRACT OF 1ST GUESS)
 | |
| #
 | |
| # Page 823
 | |
| # THE DP RESULT IS LEFT IN MPAC UPON EXIT, AND A SP COUNT OF THE ITERATIONS TO CONVERGENCE IS LEFT IN MPAC+2.
 | |
| # RETURN IS NORMALLY TO LOC(TC ROOTPSRS)+3.  IF ROOTPSRS FAILS TO CONVERGE TO IN 8 PASSES, RETURN IS TO LOC+1 AND
 | |
| # OUTPUTS ARE NOT TO BE TRUSTED.
 | |
| #
 | |
| # PRECAUTION:  ROOTPSRS MAKES NO CHECKS FOR OVERFLOW OR FOR IMPROPER USAGE.  IMPROPER USAGE COULD
 | |
| # PRECLUDE CONVERGENCE OR REQUIRE EXCESSIVE ITERATIONS.  AS A SPECIFIC EXAMPLE, ROOTPSRS FORMS A DERIVATIVE
 | |
| # COEFFICIENT TABLE BY MULTIPLYING EACH A(I) BY I, WHERE I RANGES FROM 1 TO N.  IF AN ELEMENT OF THE DERIVATIVE
 | |
| # COEFFICIENT TABLE = 1 OR >1 IN MAGNITUDE, ONLY THE EXCESS IS RETAINED.  ROOTPSRS MAY CONVERGE ON THE CORRECT
 | |
| # ROOT NONETHELESS, BUT IT MAY TAKE AN EXCESSIVE NUMBER OF ITERATIONS.  THEREFORE THE USER SHOULD RECOGNIZE:
 | |
| #	1.  USER'S RESPONSIBILITY TO ASSUR THAT I X A(I) < 1 IN MAGNITUDE FOR ALL I.
 | |
| #	2.  USER'S RESPONSIBILITY TO ASSURE OVERFLOW WILL NOT OCCUR IN EVALUATING EITHER THE RESIDUAL OR THE DERIVATIVE
 | |
| #	    POWER SERIES.  THIS OVERFLOW WOULD BE PRODUCED BY SUBROUTINE POWRSERS, CALLED BY ROOTPSRS, AND MIGHT NOT
 | |
| #	    PRECLUDE EVENTUAL CONVERGENCE.
 | |
| #	3.  AT PRESENT, ERASABLE LOCATIONS ARE RESERVED ONLY FOR N UP TO 5.  AN N IN EXCESS OF 5 WILL PRODUCE CHAOS.
 | |
| #	    ALL ERASABLES USED BY ROOTPSRS ARE UNSWITCHED LOCATED IN THE REGION FROM MPAC-33 OCT TO MPAC+7.
 | |
| #	4.  THE ITERATION COUNT RETURNED IN MPAC+2 MAY BE USED TO DETECT ABNORMAL PERFORMANCE.
 | |
| 
 | |
| 					# STORE ENTERING DATA, INITIALIZE ERASABLES
 | |
| ROOTPSRS	EXTEND
 | |
| 		QXCH	RETROOT		# RETURN ADRES
 | |
| 		TS	PWRPTR		# PWR TABLE POINTER
 | |
| 		DXCH	MPAC +3		# PWR TABLE ADRES, N-1
 | |
| 		CA	DERTABLL
 | |
| 		TS	DERPTR		# DER TABL POINTER
 | |
| 		TS	MPAC +5		# DER TABL ADRES
 | |
| 		CCS	MPAC +4		# NO POWER SERIES DEGREE 1 OR LESS
 | |
| 		TS	MPAC +6		# N-2
 | |
| 		CA	ZERO		# MODE USED AS ITERATION COUNTER.  MODE
 | |
| 		TS	MODE		# MUST BE POS SO ABS WON'T COMP MPAC+3 ETC.
 | |
| 
 | |
| 					# COMPUTE CRITERION TO STOP ITERATING
 | |
| 		EXTEND
 | |
| 		DCA	MPAC		# FETCH ROOT GUESS, KEEPING IT IN MPAC
 | |
| 		DXCH	ROOTPS		# AND IN ROOTPS
 | |
| 		INDEX	MPAC +3		# PWR TABLE ADRES
 | |
| 		CA	5		# PRECROOT TO A
 | |
| 		TC	SHORTMP		# YIELDS DP PRODUCT IN MPAC
 | |
| 		TC	USPRCADR
 | |
| 		CADR	ABS		# YIELDS ABVAL OF CRITERION ON DX IN MPAC
 | |
| 		DXCH	MPAC
 | |
| 		DXCH	DXCRIT		# CRITERION
 | |
| 
 | |
| 					# SET UP DER COF TABL
 | |
| # Page 824
 | |
| 		EXTEND
 | |
| 		INDEX	PWRPTR
 | |
| 		DCA	3
 | |
| 		DXCH	MPAC		# A(N) TO MPAC
 | |
| 
 | |
| 		CA	MPAC +4		# N-1 TO A
 | |
| 
 | |
| DERCLOOP	TS	PWRCNT		# LOOP COUNTER
 | |
| 		AD	ONE
 | |
| 		TC	DMPNSUB		# YIELDS DERCOF = I X A(I) IN MPAC
 | |
| 		EXTEND
 | |
| 		INDEX	PWRPTR
 | |
| 		DCA	1
 | |
| 		DXCH	MPAC		# (I-1) TO MPAC, FETCHING DERCOF
 | |
| 		INDEX	DERPTR
 | |
| 		DXCH	3		# DERCOF TO DER TABLE
 | |
| 		CS	TWO
 | |
| 		ADS	PWRPTR		# DECREMENT PWR POINTER
 | |
| 		CS	TWO
 | |
| 		ADS	DERPTR		# DECREMENT DER POINTER
 | |
| 		CCS	PWRCNT
 | |
| 		TCF	DERCLOOP
 | |
| 
 | |
| 					# CONVERGE ON ROOT
 | |
| ROOTLOOP	EXTEND
 | |
| 		DCA	ROOTPS		# FETCH CURRENT ROOT
 | |
| 		DXCH	MPAC		# LEAVE IN MPAC
 | |
| 		EXTEND
 | |
| 		DCA	MPAC +5		# LOAD A, L WITH DER TABL ADRES, N-2
 | |
| 		TC	POWRSERS	# YIELDS DERIVATIVE IN MPAC
 | |
| 
 | |
| 		EXTEND
 | |
| 		DCA	ROOTPS
 | |
| 		DXCH	MPAC		# CURRENT ROOT TO MPAC, FETCHING DERIVATIVE
 | |
| 		DXCH	BUF		# LEAVE DERIVATIVE IN BUF AS DIVISOR
 | |
| 		EXTEND
 | |
| 		DCA	MPAC +3		# LOAD A, L WITH PWR TABL ADRES, N-1
 | |
| 		TC	POWRSERS	# YIELDS RESIDUAL IN MPAC
 | |
| 
 | |
| 		TC	USPRCADR
 | |
| 		CADR	DDV/BDDV	# YIELDS -DX IN MPAC
 | |
| 
 | |
| 		EXTEND
 | |
| 		DCS	MPAC		# FETCH DX, LEAVING -DX IN MPAC
 | |
| 		DAS	ROOTPS		# CORRECTED ROOT NOW IN ROOTPS
 | |
| 
 | |
| 		TC	USPRCADR
 | |
| 		CADR	ABS		# YIELDS ABS(DX) IN MPAC
 | |
| 		EXTEND
 | |
| # Page 825
 | |
| 		DCS	DXCRIT
 | |
| 		DAS	MPAC		# ABS(DX)-ABS(DXCRIT) IN MPAC
 | |
| 
 | |
| 		CA	MODE
 | |
| 		MASK	BIT4		# KLUMPP SAYS GIVE UP AFTER EIGHT PASSES
 | |
| 		CCS	A
 | |
| BADROOT		TC	RETROOT
 | |
| 
 | |
| 		INCR	MODE		# INCREMENT ITERATION COUNTER
 | |
| 		CCS	MPAC		# TEST HI ORDER DX
 | |
| 		TCF	ROOTLOOP
 | |
| 		TCF	TESTLODX
 | |
| 		TCF	ROOTSTOR
 | |
| TESTLODX	CCS	MPAC +1		# TEST LO ORDER DX
 | |
| 		TCF	ROOTLOOP
 | |
| 		TCF	ROOTSTOR
 | |
| 		TCF	ROOTSTOR
 | |
| ROOTSTOR	DXCH	ROOTPS
 | |
| 		DXCH	MPAC
 | |
| 		CA	MODE
 | |
| 		TS	MPAC +2		# STORE SP ITERATION COUNT IN MPAC+2
 | |
| 		INDEX	RETROOT
 | |
| 		TCF	2
 | |
| 
 | |
| DERTABLL	ADRES	DERCOFN -3
 | |
| 
 | |
| # ****************************************************************************
 | |
| # TRASHY LITTLE SUBROUTINES
 | |
| # ****************************************************************************
 | |
| 
 | |
| INTPRETX	INDEX	WCHPHASE	# SET X1 ON THE WAY TO THE INTERPRETER
 | |
| 		CS	TARGTDEX
 | |
| 		INDEX	FIXLOC
 | |
| 		TS	X1
 | |
| 		TCF	INTPRET
 | |
| 
 | |
| TDISPSET	CA	TTF/8
 | |
| 		EXTEND
 | |
| 		MP	TSCALINV
 | |
| 		DXCH	TTFDISP
 | |
| 
 | |
| 		CA	EBANK5		# TREDES BECOMES ZERO TWO PASSES
 | |
| 		TS	EBANK		#	BEFORE TCGFAPPR IS REACHED
 | |
| 		EBANK=	TCGFAPPR
 | |
| 		CA	TCGFAPPR
 | |
| 		INCR	BBANK
 | |
| 		INCR	BBANK
 | |
| 		EBANK=	TTF/8
 | |
| # Page 826
 | |
| 		AD	TTF/8
 | |
| 		EXTEND
 | |
| 		MP	TREDESCL
 | |
| 		AD	-DEC103
 | |
| 		AD	NEGMAX
 | |
| 		TS	L
 | |
| 		CS	L
 | |
| 		AD	L
 | |
| 		AD	+DEC99
 | |
| 		AD	POSMAX
 | |
| 		TS	TREDES
 | |
| 		CS	TREDES
 | |
| 		ADS	TREDES
 | |
| 		TC	Q
 | |
| 
 | |
| 1406P00		TC	POODOO
 | |
| 		OCT	01406
 | |
| 1406ALM		TC	ALARM
 | |
| 		OCT	01406
 | |
| 		TCF	RATESTOP
 | |
| 
 | |
| # *********************************************************************
 | |
| # SPECIALIZED "PHASCHNG" SUBROUTINE
 | |
| # *********************************************************************
 | |
| 
 | |
| 		EBANK=	PHSNAME2
 | |
| FASTCHNG	CA	EBANK3		# SPECIALIZED 'PHASCHNG' ROUTINE
 | |
| 		XCH	EBANK
 | |
| 		DXCH	L
 | |
| 		TS	PHSNAME3
 | |
| 		LXCH	EBANK
 | |
| 		EBANK=	E2DPS
 | |
| 		TC	A
 | |
| 
 | |
| # *************************************************************************************
 | |
| # PARAMETER TABLE INDIRECT ADDRESSES
 | |
| # *************************************************************************************
 | |
| 
 | |
| RDG		=	RBRFG
 | |
| VDG		=	VBRFG
 | |
| ADG		=	ABRFG
 | |
| VDG2TTF		=	VBRFG*
 | |
| ADG2TTF		=	ABRFG*
 | |
| JDG2TTF		=	JBRFG*
 | |
| 
 | |
| # *************************************************************************************
 | |
| # LUNAR LANDING CONSTANTS
 | |
| # *************************************************************************************
 | |
| 
 | |
| # Page 827
 | |
| TABLTTFL	ADRES	TABLTTF +3	# ADDRESS FOR REFERENCING TTF TABLE
 | |
| TTFSCALE	=	BIT12
 | |
| TSCALINV	=	BIT4
 | |
| -DEC103		DEC	-103
 | |
| +DEC99		DEC	+99
 | |
| TREDESCL	DEC	-.08
 | |
| 180DEGS		DEC	+180
 | |
| 1/2DEG		DEC	+.00278
 | |
| PROJMAX		DEC	.42262 B-3	# SIN(25')/8 TO COMPARE WITH PROJ
 | |
| PROJMIN		DEC	.25882 B-3	# SIN(15')/8 TO COMPARE WITH PROJ
 | |
| V06N63		VN	0663		# P63
 | |
| V06N64		VN	0664		# P64
 | |
| V06N60		VN	0660		# P65, P66, P67
 | |
| 
 | |
| 		BANK	22
 | |
| 		SETLOC	LANDCNST
 | |
| 		BANK
 | |
| 		COUNT*	$$/F2DPS
 | |
| 
 | |
| HIGHESTF	2DEC	4.34546769 B-12
 | |
| GSCALE		2DEC	100 B-11
 | |
| 3/8DP		2DEC	.375
 | |
| 3/4DP		2DEC	.750
 | |
| DEPRCRIT	2DEC	-.02 B-1
 | |
| 
 | |
| # Page 828
 | |
| # **************************************************************************
 | |
| # **************************************************************************
 |