https://github.com/virtualagc/virtualagc
Revision 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC, committed by Ron Burkey on 07 August 2022, 15:04:04 UTC
assembly listings from yaASM and yaLEMAP. Added some debugging messages
to 'make install'.  Tweaked debugging messages that VirtualAGC embeds in
'simulate'.  Verified buildability in Mint 21, 20, 19, 17, and verified
buildability using clang in Mint 17.
1 parent 6bb1acc
Raw File
Tip revision: 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
REENTRY_CONTROL.agc
### FILE="Main.annotation"
## Copyright:	Public domain.
## Filename:	REENTRY_CONTROL.agc
## Purpose:	Part of the source code for Colossus 2A, AKA Comanche 055.
##		It is part of the source code for the Command Module's (CM)
##		Apollo Guidance Computer (AGC), for Apollo 11.
## Assembler:	yaYUL
## Contact:	Ron Burkey <info@sandroid.org>.
## Website:	www.ibiblio.org/apollo.
## Pages:	844-882
## Mod history:	2009-05-08 RSB	Adapted from the Colossus249/ file of the
##				same name, using Comanche055 page images.
##		2009-05-23 RSB	In a couple of 2OCT statements, removed the
##				space between the first and second octal words.
##		2010-08-28 JL	Added missing comment character. Fixed indentation. 
##		2016-12-18 RSB	Proofed comment text using octopus/ProoferComments
##				and corrected the errors found.
##		2017-01-18 RSB	Fixed comment-text errors noted while diff'ing
##				vs Colossus 249.
##		2021-05-30 ABS	Added empty page 882 to match scans.
##
## 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 055 of AGC program Comanche by NASA
##	2021113-051.  10:28 APR. 1, 1969  
##
##	This AGC program shall also be referred to as
##			Colossus 2A

## Page 844
# ENTRY INITIALIZATION ROUTINE
#  -----------------------------

		BANK	25
		SETLOC	REENTRY
		BANK
		
		COUNT*	$$/ENTRY
		EBANK=	RTINIT
		
EBENTRY		=	EBANK7
EBAOG		EQUALS	EBANK6
NTRYPRIO	EQUALS	PRIO20		# (SERVICER)
CM/FLAGS	EQUALS	STATE +6

STARTENT	EXIT			# MM = 63

					# COME HERE FROM CM/POSE.  RESTARTED IN CM/POSE.
		CS	ENTMASK		# INITIALIZE ALL SWITCHES TO ZERO
					# EXCEPT LATSW, ENTRYDSP AND GONEPAST.
					# GONEBY 112D BIT8 FLAG7, SELF INITIALIZING
		INHINT
		MASK	CM/FLAGS
					# ENTRYDSP = 92D B13
					# GONEPAST=95D B10,	RELVELSW=96D B9
					# EGSW = 97D B8		NOSWITCH = 98D B7
					# HIND=99D B6		INRLSW=100D B5
					# LATSW=101D B4		.05GSW=102D B3
					
		AD	ENTRYSW		# SET ENTRYDSP, LATSW, GONEPAST.
		TS	CM/FLAGS
		
		RELINT
		
		TC	INTPRET
		
		SLOAD
			LODPAD
		STORE	LOD
		
		SLOAD
			LADPAD
		STORE	LAD
		
		DMP			# L/DCMINR = LAD COS(15)
			COS15
		STODL	L/DCMINR
			LATSLOPE
		DMP	SR1		# KLAT = LAD/24
			LAD
## Page 845
		STODL	KLAT
			Q7F
		STODL	Q7		# Q7 = Q7F
			NEARONE		# 1.0 -1BIT
		STODL	FACTOR
			LAD
		SIGN	DCOMP
			HEADSUP		# MAY BE NOISE FOR DISPLAY P61
		STCALL	L/D		# L/D = - LAD SGN(HEADSUP)
		
			STARTEN1	# RETURN VIA GOTOADDR
		VLOAD	VXV
			VN		# (-7) M/CS
			UNITR		# .5 UNIT		REF COORDS
		UNIT	DOT
			RT		# RT/2 TARGET VECTOR	REF COORDS
		STORE	LATANG		# LATANG = UNI.RT /4
		DCOMP	RTB
			SIGNMPAC
		STODL	K2ROLL		# K2ROLL = -SGN(LATANG)
		
			LAD
		DMP	DAD
			Q21
			Q22
		STORE	Q2		# Q2 = -1152 + 500 LAD
		
		SSP	SSP
			GOTOADDR	# SET SELECTOR FOR INITIAL PASS
			INITROLL
			POSEXIT
			SCALEPOP	# SET CM/POSE TO CONTINUE AT SCALEPOP
			
		RTB
			SERVNOUT	# OMIT INITIAL DISPLAY, SINCE 1ST GUESSBAD
			
# CALCULATE THE INITIAL TARGET VECTOR: RTINIT, ALSO RTEAST, RTNORM AND RT.  ALL ARE .5 UNIT AND IN
# REFERENCE COORDINATES.

STARTEN1	STQ	VLOAD
			GOTOADDR
			LAT(SPL)	# TARGET COORDINATES
		CLEAR	CLEAR		# DO CALL USING PAD RADIUS.  WILL UNIT IT.
			ERADFLAG	# ANYWAY.
			LUNAFLAG
		STODL	LAT
			3ZEROS
			
		STODL	LAT +4		# SET ALT=0.
			PIPTIME		# ESTABLISH RTINIT AT TIME OF PRESENT
## Page 846
					# RN AND VN.
		STCALL	TIME/RTO	# SAVE TIME BASE OF RTINIT.
			LALOTORV	# C(MPAC) =TIME  (PIPTIME)
		UNIT			# ANSWER IN ALPHAV ALSO
		STODL	RTINIT		# .5 UNIT TARGET		REF COORDS
			500SEC		# NOMINAL ENTRY TIME FOR P63
					# TIME/RTO = PIPTIME, STILL.
		STCALL	DTEAROT		# INITIALIZE EARROT
			EARROT1		# GET RT
		DOT	SL1
			UNITR		# RT/2 IN MPAC
		ACOS
		STCALL	THETAH		# RANGE ANGLE /360
			GOTOADDR	# RETURN TO CALLER
			
500SEC		2DEC	50000 B-28	# CS

ENTMASK		OCT	11774
ENTRYSW		OCT	11010		# ENTRYDSP B13,  GONEPAST B10,  LATSW B4
## Page 847

SCALEPOP	CALL	
			TARGETNG
			
		EXIT
		
REFAZE10	TC	PHASCHNG
		OCT	10035		# SERVICER 5.3 RESTART AT REFAZE10
		
		TC	INTPRET
		
# JUMP TO PARTICULAR RE-ENTRY PHASE:
#				SEQUENCE
		GOTO
			GOTOADDR
			
#          GOTOADDR CONTAINS THE ADDRESS OF THE ROLL COMMAND EQUATIONS APPROPRIATE TO THE CURRENT PHASE OF
# RE-ENTRY.  SEQUENCING IS AS FOLLOWS:
#
# INITROLL	ADDRESS IS SET HERE INITIALLY.  HOLDS INITIAL ROLL ATTITUDE UNTIL  KAT  IS EXCEEDED.  THEN HOLDS NEW ROLL
#		ATTITUDE UNTIL  VRTHRESH  IS EXCEEDED.  THEN BRANCHES TO
#
# HUNTEST	THIS SECTION CHECKS TO SEE IF THE PREDICTED RANGE AT NOMINAL   L/D FROM PRESENT CONDITIONS IS LESS
#		THAN THE DESIRED RANGE.
#			IF NOT - A ROLL COMMAND IS GENERATED BY THE CONSTANT DRAG CONTROLLER.
#			IF SO  - CONTROL AND GOTOADDR ARE SET TO UPCONTRL.
#		USUALLY NO ITERATION IS INVOLVED EXCEPT IF THE RANGE DESIRED IS TOO LONG ON THE FIRST PASS THROUGH
#		HUNTEST.
#
# UPCONTRL	CONTROLS ROLL DURING THE SUPER-CIRCULAR PHASE.  UPCONTRL IS TERMINATED EITHER
#			(A) WHEN THE DRAG (AS MEASURED BY THE PIPAS) FALLS BELOW Q7, OR
#			(B) IF RDOT IS NEGATIVE AND REFERENCE VL EXCEEDS V.
#		IN CASE (A),  GOTOADDR  IS SET TO  KEP2  AND IN CASE (B), TO  PREDICT3  SKIPPING THE KEPLER PHASE OF
#		ENTRY.
#
# KEP2		GOTOADDR IS SET HERE DURING THE KEPLER PHASE TO MONITOR DRAG.  THE SPACECRAFT IS INSTANTANEOUSLY
#		TRIMMED IN PITCH AND YAW TO THE COMPUTED RELATIVE VELOCITY.  THE LAST COMPUTED ROLL ANGLE IS MAINTAINED.
#		WHEN THE MEASURED DRAG EXCEEDS Q7 +0.5,  GOTOADDR  IS SET TO
#
# PREDICT3	THIS CONTROLS THE FINAL SUB-ORBITAL PHASE. ROLL COMMANDS CEASE
#		WHEN  V  IS LESS THAN  VQUIT .  AN EXIT IS MADE TO
#
# P67.1		THE LAST COMPUTED ROLL ANGLE IS MAINTAINED.  RATE DAMPING IS DONE IN PITCH AND YAW.  PRESENT LATITUDE
#		AND LONGITUDE ARE COMPUTED FOR DISPLAY.
#		ENTRY IS TERMINATED WHEN DISKY RESPONSE IS MADE TO TO THIS FINAL FLASHING DISPLAY.

## Page 848
# PROCESS AVERAGE G OUTPUT...SCALE IT AND GET INPUT DATA

# * START  TARGETING ...

		EBANK=	RTINIT
		
					# TARGETNG IS CALLED BY P61, FROM GROUP 4.
					# TARGETNG IS CALLED BY ENTRY, FROM GROUP 5.
			
					# ALL MM COME HERE.		
TARGETNG	BOFF	VLOAD		# ENTER WITH PROPER EB FROM CM/POSE(TEST)
			RELVELSW	# RELVELSW = 96D BIT9
			GETVEL		# WANT INERTIAL VEL.  GO GET IT.
			-VREL		# NEW V IS RELATIVE, CONTINUE
			
		VCOMP	GOTO		# (VREL) = (V) + KWE UNITR*UNITW
			GETUNITV -1	# - VREL WAS LEFT BY CM/POSE
			
GETVEL		VLOAD	VXSC		# INERTIAL V WANTED
			VN		# KVSCALE = (12800 / .3048) / 2VS
			KVSCALE		# KVSCALE = .81491944
		STORE	VEL		# V/2 VS
		
GETUNITV	UNIT	STQ
			60GENRET
		STODL	UNITV
			34D
		STORE	VSQUARE		# VSQ/4
		
		DSU			# LEQ = VSQUARE - 1
			FOURTH		# 4 G-S FULL SCALE
		STODL	LEQ		# LEQ/4
		
			36D
		STOVL	V		# V/2 VS = VEL/2 VS
		
			VEL
		DOT	SL1		# RDOT= V.UNITR
			UNITR
		STOVL	RDOT		# RDOT /2 VS
		
			DELV		# PIPA COUNTS IN PLATFORM COORDS.
		ABVAL	DMP
			KASCALE
		SL1	BZE
			SETMIND
DSTORE		STOVL	D		# ACCELERATION USED TO APPROX DRAG
			VEL
		VXV	UNIT		# UNI = UNIT(V*R)
## Page 849
			UNITR
		STORE	UNI		# .5 UNI		REF COORDS.
		
		BOFF	DLOAD
			RELVELSW
			GETETA
			3ZEROS
UPDATERT	DSU	DAD		# PIPTIME-TIME/RTO =ELAPSED TIME SINCE
					# RTINIT WAS ESTABLISHED.
			TIME/RTO
			PIPTIME
		STCALL	DTEAROT		# GET PREDICTED TARGET VECTOR RT
		
			EARROT2
		DOT	SETPD		# SINCE (RT) UNIT VECT, THIS IS 1/4 MAX
			UNI		# LATANG = RT.UNI
			0
		STOVL	LATANG		# LATANG = MAC LATANG / 4
		
			RT
		CLEAR
			GONEBY		# SHOW HAVE NOT GONE PAST TARGET.
		VXV	DOT		# IF RT*UNITR.UNI NEG, GONEBY=1
			UNITR		# GONEPAST IS CONDITIONAL SW SET IN
			UNI		# FINAL PHASE.
		BPL	SET
			+2
			GONEBY		# SHOW HAVE GONE PAST TARGET.
			
		VLOAD
			RT
GETANGLE	DOT	DSU		# THETA = ARCCOS(RT.UNITR)
			UNITR
			NEAR1/4		# TO IMPROVE ACCURACY, CALC RANGE BY
		BPL	DAD		# TINYTHET IF HIGH ORDER PART OF
			TINYTHET	# ARCCOS ARGUMENT IS ZERO
			NEAR1/4
		SL1	ACOS
THETDONE	STORE	THETAH		# THETAH/360
					# HI WORD, LO BIT =1.32 NM=360 60/16384
					
		BON	DCOMP
			GONEBY		# =1 IF HAVE GONE PAST TARGET.
					# (SIGN MAY BECOME ERRATIC VERY NEAR
					# TARGET DUE TO LOSS OF PRECISION.)
			+1
		STODL	RTGON67		# RANGE ERROR:  NEG IF WILL FALL SHORT.
		
			D
		DSU	BMN
## Page 850
			.05G
			NO.05G
		SET	VLOAD
			.05GSW
			DELVREF
		PUSH	DOT
			UXA/2
		SL1	DSQ
		PDVL	VSQ		# EXCHANGE WITH PDL.
		DSU	DDV
			0
		BOV	SQRT
			NOLDCALC	# OVFL LAST CLEARED IN EARROT2 ABOVE.
		STORE	L/DCALC
		
NOLDCALC	GOTO
			60GENRET
			
NO.05G		CLEAR	GOTO		# THIS WAY FOR DAP. (MAY INTERRUPT)
			.05GSW		# .05GSW = 102D B3
			NOLDCALC	# KEEP SINGLE EXIT FOR TARGETNG

## Page 851
# SUBROUTINES CALLED BY SCALEPOP (TARGETING):

		BANK	26
		SETLOC	REENTRY1
		BANK
		
		COUNT*	$$/ENTRY
		
GETETA		DLOAD	DDV		# D = D +D(-RDOT/HS -2D/V)  DT/2
					# DT/2 = 2/2 =1
			RDOT
			-HSCALED
		PDDL	DMP
			D
			-KSCALE
		DDV	DAD
			V
					# -RDOT/HS FROM PDL.
		DMP	DAD
			D
			D
		STORE	D
		
		BON	DLOAD		# EGSW INDICATES FINAL PHASE.
			EGSW
			SUBETA
			THETAH
		DMP	GOTO
			KTETA		# = 1000X2PI/(2)E14 163.84
			UPDATERT
			
SUBETA		DLOAD	DSU		# SWITCH FROM INERTIAL TO RELATIVE VEL.
			V
			VMIN
		BPL	SET
			SUBETA2
			RELVELSW
			
SUBETA2		DLOAD	DMP

			THETAH
			KT1		# KT1 = KT
		DDV	GOTO
			V		# KT = RE(2 PI)/2 VS 16384 163.84/ 2 VSAT
			UPDATERT
			
SETMIND		DLOAD	GOTO
			1BITDP
			DSTORE
			
## Page 852
TINYTHET	DSU	ABS		# ENTER WITH X-.249
			1BITDP +1	# GET 1/4 - MPAC
		SL	SQRT		# SCALE UP BEFORE SQRT
			13D		# HAS FACTOR FOR UP SCALING
		DMP	GOTO
			KACOS
			THETDONE
			
## Page 853
# * START	INITIAL ROLL ...

		BANK	25
		SETLOC	REENTRY
		BANK
		
		COUNT*	$$/ENTRY
		
					# MM = 63, 64 ..
INITROLL	BON	BOFF		# IF D- .05G NEG, GO TO LIMITL/D
			INRLSW
			INITRL1
			.05GSW
			LIMITL/D
			
					# MM = 64, NOW
					#	      3
					# KA = KA1 LEQ  + KA2
		DLOAD	DSQ
			LEQ
		DMP	DDV
			LEQ
			1/KA1		# = 25 /(64  1.8)
		DAD	RTB
			KA2		# = .2
			P64		# ROLLC		VI		RDOT
					# XXX.XX DEG	XXXXX. FPS	XXXXX. FPS
		STORE	KAT
		
		DSU	BMN
			KALIM
			+4
		DLOAD	
			KALIM
		STORE	KAT
		DLOAD	DSU		# IF V-VFINAL1 NEG, GO TO FINAL PHASE.
			V
			VFINAL1
		CLEAR	BPL		# (CAN'T CLEAR INRLSW AFTER HERE: RESTARTS)
			GONEPAST	# GONEPAST WAS INITIALLY SET=1 TO FORCE
					# ROLLC TO REMAIN AS DEFINED BY HEADSUP
					# UNTIL START OF P64.  (UNTIL D > .05G)
			D0EQ
		SSP	GOTO
			GOTOADDR
			KEP2		# AND IDLE UNTIL D > 0.2 G.  (NO P66 HERE)
			INROLOUT	# GO TO LIMITL/D AFTER SETTING INRLSW.
			
D0EQ		DLOAD	DMP		# D0 = KA3 LEQ + KA4
## Page 854
			LEQ
			KA3
		DAD
			KA4
		STORE	D0		# D0/805
		BDDV	BOV
			C001		# (-4/25 G) B-8
			+1		# CLEAR OVFIND, IF ON.
		STODL	C/D0		# (-4/D0) B-8
			LAD		# IF V-VFINAL +K(RDOT/V)CUBED POS,L/D=-LAD
		STODL	L/D
			RDOT
		DDV	PUSH
			V
		DSQ	DMP
		DDV	DSU
			1/K44
			VFINAL
					#		    3
					# V-VFINAL +(RDOT/V)  / K44	OVFL $
					
		DAD	BOV
			V
			INROLOUT	# GO TO LIMITL/D AFTER SETTING INRLSW.
		BMN	DLOAD
			INROLOUT	# GO TO LIMITL/D AFTER SETTING INRLSW.
			LAD
		DCOMP
		STORE	L/D
		
					# SET INRLSW AT END FOR RESTART PROTECTION
INROLOUT	BOFSET			# END OF PRE .05G PATH OF INITROLL.
			INRLSW		# SWITCH IS ZERO INITIALLY.
			LIMITL/D	# (GO TO)
			
KATEST		DLOAD	DSU		# IF KAT - D POS, GO TO CONSTD
			KAT
			D		# IF POS, OUT WITH COMMAND VIA LIMITL/D
		BPL	GOTO
			LIMITL/D
			CONSTD
			
INITRL1		DLOAD	DAD		# IF RDOT + VRCONT POS, GO TO HUNTEST
			RDOT
			VRCONT
		BMN	CALL		# IF POSITIVE, FALL INTO HUNTEST.
			KATEST
			
			FOREHUNT	# INITIALIZE HUNTEST.
			
## Page 855
# * START	HUNT TEST ..
					# MM = 64
		SSP			# INITIALIZE HUNTEST ON FIRST PASS
			GOTOADDR
			HUNTEST		# MUST GO AFTER FOREHUNT FOR RESTARTS.
			
HUNTEST		DLOAD
			D
		STODL	A1		# A1/805 = A1/25G
		
			LAD
		STODL	TEM1B
			RDOT
		BMN	DLOAD		# IF RDOT NEG,TEM1B=LAD, OTHERWISE = LEWD
			A0CALC
			LEWD
		STODL	TEM1B
		
			RDOT
A0CALC		DDV	DAD		# V1 = V + RDOT/TEM1B
			TEM1B
			V
		STODL	V1		# V1/2 VS
		
			RDOT
		DSQ	DDV		# A0=(V1/V)SQ(D+RDOT SQ/(TEM1B 2 C1 HS)
			TEM1B
		DDV	DAD
			2C1HS
			D
		DMP	DMP
			V1
			V1
		DDV
			VSQUARE
		STODL	A0		# A0/805 = A0/25G
		
			RDOT
		BPL	DLOAD
			V1LEAD
			A0
		STORE	A1		# A1/25G
		
V1LEAD		DLOAD	BPL		# IF L/D NEG, V1=V1 - 1000
			L/D
			HUNTEST1
			
		DLOAD	DSU
			V1
## Page 856
			VQUIT
		STORE	V1
		
HUNTEST1	DLOAD	DMP		# ALP = 2 C1 HS A0/LEWD V1 V1
			A0
			2C1HS
		DDV	SETPD
			V1
			0
		DDV	DDV
			V1
			LEWD
		STORE	ALP
		
		BDSU	BDDV		# FACT1 = V1 / (1 - ALP)
			BARELY1
			V1
		STODL	FACT1		# FACT1 / 2VS
		
			ALP
		DSU	DMP		# FACT2 = ALP(ALP - 1) / A0
			BARELY1
			ALP
		DDV
			A0
		STORE	FACT2		# FACT2 (25G)
		
		DMP	DAD
			Q7		# Q7 / 805 = Q7 / 25G
			ALP		# VL=FACT1 (1-SQRT(Q7 FACT2 +ALP) )
		SQRT	BDSU
			BARELY1
		DMP
			FACT1
		STORE	VL		# VL / 2 VS
		
		BDSU	DMP		# GAMMAL1 = LEWD (V1-VL)/VL
			V1
			LEWD
		DDV
			VL
		STODL	GAMMAL1		# GAMMAL1 USED IN UPCONTROL
		
					# GAMMAL1 = PDL 22D.
			VL
		DSU	BMN		# IF VL-VLMIN NEG, GO TO PREFINAL
			VLMIN
			PREFINAL
			
		DLOAD	DSQ
## Page 857
			VL
		STODL	VBARS		# VBARS / 4 VS VS
		
			HALVE		# IF VSAT-VL NEG, GO TO CONSTD
		DSU	BMN
			VL
			BECONSTD	# SET MODE=HUNTEST, CONTINUE IN CONSTD
		STODL	DVL		# DVL / 2VS
		
			HALVE
		STORE	VS1		# VS1 = VSAT
		
		DSU	BMN		# IF V1 GREATER THAN VSAT, GO ON
			V1
			GETDHOOK
		BDSU
			DVL
		STODL	DVL		# DVL = DVL - (VSAT-V1) = V1 - VL
			V1
		STORE	VS1		# VS1 = V1, IN THIS CASE
		
GETDHOOK	DLOAD	CALL		# DHOOK=((1-VS1/FACT1) SQ -ALP)/FACT2
			VS1		# VS1 / 2 VS
			DHOOKYQ7	# GO CALC DHOOK
		STORE	DHOOK		# DHOOK / 25G
		
		SR	DDV
			6		# CHOOK
			Q7
		DSU	
			CHOOK		# = .25/16 = (-6)
		STORE	AHOOKDV
		
		DAD	DMP		# GAMMAL= GAMMAL1-CH1 DVL SQ(1+AHOOK DVL)
			1/16TH
			CH1
		DMP	DMP
			DVL
			DVL
		DDV	DDV
			DHOOK
			VBARS
		BDSU	BMN
			GAMMAL1
			NEGAMA
HUNTEST3	STORE	GAMMAL

		DSU			# GAMMAL1=GAMMAL1 +Q19 (GAMMAL-GAMMAL1)
			GAMMAL1
		DMP	DAD
## Page 858
			Q19
			GAMMAL1
		STODL	GAMMAL1
			GAMMAL

## Page 859
# *START	RANGE PREDICTION ...
					# C(MPAC) = GAMMAL
RANGER		DSQ	SR2		# COSG = 1-GAMMAL SQ/2, TRUNCATED SERIES
		BDSU
			HALVE
		STODL	COSG/2
			VBARS		# E=SQRT(1+VBARS........
			
		DSU	DMP
			HALVE
			VBARS
		DMP	DMP
			COSG/2
			COSG/2
		SL2	DAD
			C1/16		# C1/16 = 1/16
		SQRT	PDDL		# E/4 INTO PDL
		
			VBARS
		DMP	DMP		# ASKEP/2 = ARCSIN(VBARS COSG SING/E)
			COSG/2
			GAMMAL
		DDV	ASIN
		SL1	PUSH		# ASKEP TO PDL 0.
		STODL	ASKEP		# BALLISTIC RANGE	ASKEP/2PI
		
					# FOR TM, STORE RANGE COMPONENTS OVERLAPPING (SP)
			VL
		DMP	DAD		# ASP1 = Q2 + Q3 VL
			Q3
			Q2
		STORE	ASP1		# FINAL PHASE RANGE	ASP1/2 PI
		
		PDDL	DSQ		# ASP1 TO PDL 2.
			V1
					#		    2
					# ASPUP= -C12 LOG(V1 Q7/VBARS A0)/GAMMAL1
		DMP	DDV
			Q7
			VBARS
		DDV	CALL
			A0
			LOG		# RETURN WITH -LOG IN MPAC
			
		DMP	DDV
			C12
			GAMMAL1
		STORE	ASPUP		# UP PHASE RANGE	ASPUP / 2 PI
## Page 860
		PDDL	DMP		# ASPUP TO PDL 4.
			KC3		# KC3 = -4 VS VS / 2 PI 805 RE
					# ASPDWN = KC3 RDOT V / A0
			RDOT
		DMP	DDV
			V
			A0
		DDV	PUSH		# ASPDWN TO PDL 6.
			LAD
		STODL	ASPDWN		# RANGE TO PULL OUT	ASPDWN /2 PI
		
			Q6
		DSU	DMP		# ASP3 = Q5(Q6-GAMMAL)
			GAMMAL
			Q5
		STOVL	ASP3		# GAMMA CORRECTION	ASP3/2PI
		
			ASKEP		# GET HI-WD AND
		STODL	ASPS(TM)	# SAVE HI-WORD OF ASP'S FOR TM.
		
			ASP3
		DAD	DAD
					# ASPDWN FROM PDL 6.
					# ASPUP FROM PDL 4.
		DAD	DAD
					# ASP1 FROM PDL 2.
					# ASKEP FROM PDL 0.
		DSU	BOVB		# CLEAR OVFIND.
			THETAH
			TCDANZIG
		STORE	DIFF		# DIFF = (ASP-THETAH) / 2 PI
					# ASP=ASKEP+ASP1+ASPUP+ASP3+ASPDWN = TOTAL RANGE
					
		ABS	DSU		# IF ABS(THETAH-ASP) -25NM NEG, GO TO UPSY
			25NM
		BMN	BON
			GOTOUPSY
			HIND
			GETLEWD
			
		DLOAD	BPL
			DIFF
			DCONSTD		# EVENTUALLY SETS MODE = HUNTEST.
GETLEWD		DLOAD	DMP
					# DLEWD = DLEWD (DIFF/(DIFFOLD-DIFF))
			DLEWD
			DIFF
		PDDL	DSU
			DIFFOLD
			DIFF
## Page 861
		BDDV
LWDSTORE	STADR
		STORE	DLEWD
		DAD	BMN		# IF LEWD+DLEWD NEG, DLEWD=-LEWD/2
			LEWD
			LEWDPTR
		BOV
			LEWDOVFL
		STORE	LEWD
		
SIDETRAK	EXIT

		CA	EBENTRY
		TS	EBANK
		
		CA	PRIO16		# DROP GRP 5 RESTART PRIO TO 1 LESS THAN
		TS	PHSPRDT5	# GRP 4.
		
		TC	PHASCHNG
		OCT	00474		# RESTART GRP 4 AT PRE-HUNT.
					# FORCE RESTART TO PICK UP IN GRP 4:
					# USE PRIO 17 FOR GRP 4 (< SERVICER PRIO)
		CA	PRIO16		# CONTINUE GRP 5 AT LOWER PRIO THAN EITHER
					# GRP 4 OR SERVICER.
		TC	PRIOCHNG
		
		CAF	ADENDEXT	# SIDETRACK NEXT PASS UNTIL THIS ONE DONE.
		TS	GOTOADDR	# ONLY AFTER RESTART IS LEFT AFTER DETOUR.
		
		TC	INTPRET
		
		DLOAD	SET
			DIFF
			HIND
		STODL	DIFFOLD		# DIFFOLD / 2 PI
		
			Q7F
		STCALL	Q7		# Q7 / 805 FPSS
			HUNTEST		# (GO TO)
			
LEWDOVFL	DLOAD
			NEARONE
		STCALL	LEWD
			DCONSTD		# (GO TO)  ALSO WILL SET MODE = HUNTEST
			
LEWDPTR		DLOAD	SR1
			LEWD
		DCOMP	GOTO
			LWDSTORE

## Page 862
# NEGAMA IS PART OF HUNTEST ...

NEGAMA		DMP	DMP		# ENTER WITH GAMMAL IN MPAC

			VL
			1/3RD
		PDDL	DMP		# PUSH GAMMAL VL/3
			LEWD
			1/3RD
		PDDL	DAD		# PUSH LEWD/3
			AHOOKDV
			1/24TH
		DMP	DMP		# DEL VL = (GAMMAL VL/3)/(LEWD/3-DVL
			DVL		# (2/3 + AHOOKDV)(CH1 GS/DHOOK VL))
			CH1
		DDV	DDV
			DHOOK
			VL
		BDSU	BDDV
					# LEWD/3
					# GAMMAL VL /3
		DAD
			VL
		STCALL	VL		# VL/2 VS
		
			DHOOKYQ7	# GO CALC Q7
					# Q7=((1-VL/FACT1)SQ - ALP)/FACT2
		STODL	Q7		# Q7 / 25G
		
			VL
		DSQ
		STODL	VBARS		# VBARS / 4 VS VS
		
			3ZEROS
		GOTO			# SET GAMMAL = 0
			HUNTEST3
			
DHOOKYQ7	SR1	DDV		# SUBROUTINE TO CALC DHOOK OR Q7)
			FACT1
		BDSU	SL1
			HALVE
		DSQ	DSU
			ALP
		DDV	RVQ
			FACT2
			
## Page 863
					# COME TO PRE-HUNT WHEN RESTART OCCURS AFTER
					# HUNTEST IS SIDE-TRACKED AT SIDETRAK.
					# PICK UP IN GROUP 4.
					
PRE-HUNT	TC	INTPRET
		CLEAR	CALL
			HIND		# HIND	99D BIT 6 FLAG 6
			FOREHUNT	# RE-INITIALIZE HUNTEST AFTER RE-START.
		GOTO
			HUNTEST
			
FOREHUNT	DLOAD			# INITIALIZE HUNTEST.
			3ZEROS
		STODL	DIFFOLD
			DLEWD0
		STODL	DLEWD
			LEWD1
		STORE	LEWD
		RVQ
		
ADENDEXT	CADR	ENDEXIT

## Page 864
# * START	UP CONTROL ...
					# MM = 65
GOTOUPSY	RTB			# END OF HUNTEST
			P65		# HUNTEST USE OF GRP4 IS DISABLED BY P65
					# USE FOR DISPLAY.
					# SET MODE = UPCONTRL.
					# RETURN FROM P65 DIRECTLY TO UPCONTRL
					# VIA THE GOTOADDR AT REFAZE10.
					
UPCONTRL	DLOAD	DSU		# IF D-140 POS, NOSWITCH =1
			D		# (SUPPRESS LATERAL SWITCH)
			C21
		BMN	SET
			+2
			NOSWITCH
			
		DLOAD	DSU		# IF V-V1 POS, GO TO DOWN CONTROL.
			V
			V1
		BPL	DLOAD
			DOWNCNTL
			D
		DSU	BMN		# IF D- Q7 NEG, GO TO KEP
			Q7
			KEP
		DLOAD	BPL		# IF RDOT NEG, DO VLTEST
			RDOT
			CONT1
			
VLTEST		DLOAD	DSU		# IF V-VL-C18 NEG,EGSW=1,MODE=PREDICT3
			V
			VL
		DSU	BMN
			C18
			PREFINAL
			
CONT1		DLOAD			# IF D-A0 POS, L/D = LAD, GO TO LIMITL/D
			D
		DSU	BMN
			A0
			CONT3
		DLOAD	GOTO
			LAD
			STOREL/D
			
CONT3		DLOAD	DMP		# VREF=FACT1(1-SQRT(FACT2 D + ALP))
			D
			FACT2
## Page 865
		DAD	SQRT
			ALP
		BDSU	DMP
			BARELY1
			FACT1
		STORE	VREF		# VREF / 2VS
		
		BDSU	DMP		# RDOTREF = LEWD(V1-VREF)
			V1
			LEWD
		STODL	RDOTREF		# RDOTREF / 2VS
		
			VS1
		DSU	BMN		# IF VSAT-VREF NEG, GO TO CONTINU2
			VREF
			CONTINU2
			
		PUSH	PUSH		# VS1-VREF  TO PDL TWICE
		DMP	DDV		# RDHOOK=CH1(1+DV AHOOKDV/DVL) DV DV
			AHOOKDV		#	/DHOOK VREF
			DVL		# WHERE  DV = (VS1-VREF)
		DAD	DMP
			1/16TH
			CH1
		DMP	DMP
					# VS1-VREF  FROM PDL TWICE.
		DDV
			DHOOK
		DDV	BDSU
			VREF
			RDOTREF		# C(RDOTREF)= LEWD (V1-VREF)
		STORE	RDOTREF		# RDOTREF = RDOTREF - RDHOOK
		
CONTINU2	DLOAD	DSU
			D
			Q7MIN
		BOVB	BMN
			TCDANZIG	# CLEAR OVFL IND, IF ON.
			UPCNTRL3
		DLOAD	DSU
			A1
			Q7
		PDDL	DSU
			D
			Q7
		DDV	STADR
		STORE	FACTOR		# FACTOR / 25G
		
## Page 866
# SKIPPER
					# DELTA L/D=-((RDOT-RDOTREF)F1 KB1+V-VREF)F1 KB2
					#	WHERE F1 = FACTOR
					
UPCNTRL3	DLOAD
			RDOT
		DSU	DMP		# L/D = LEWD
			RDOTREF		# -((RDOT-RDOTREF)F1/KB1+V-VREF)F1/KB2
			FACTOR
		DDV	DAD
			1/KB1
			V
		DSU	DMP
			VREF
			FACTOR
		DDV	PUSH
		
			-1/KB2		# DELTA L/D INTO PDL
		BOV	ABS		# NONLINEAR CIRCUIT FOR REDUCING HIGH GAIN
			GOMAXL/D
		DSU	BMN
			PT1/16
			NEXT1
		DMP	DAD
			POINT1
			PT1/16
		SIGN	PUSH		# ATTACH SIGN OF PUSH TO MPAC THEN PUSH
		
NEXT1		DLOAD	SL4
					# DELTA L/D FROM PDL.
					
		DAD
			LEWD
NEGTESTS	BOV	PUSH		# L/D TO PDL FOR USE IN NEGTESTS.
			GOMAXL/D
		STODL	L/D
					# IF D-C20 POS, LATSW =0
					# AND IF L/D NEG, L/D = 0.
			D
		DSU	BMN
			C20
			LIMITL/D
		CLEAR	DLOAD
			LATSW		# =21D.  ROLL OVER TOP, REGARDLESS.
					# L/D FROM PDL.
		BPL	DLOAD
			LIMITL/D
			3ZEROS
		STCALL	L/D
			LIMITL/D	# (GO TO)

## Page 867
DCONSTD		DLOAD			# TWO RANGER ENTRIES TO CONSTD HERE
			DIFF
					# SAVE OLD VALUE OF DIFF FOR NEXT PASS.
		STODL	DIFFOLD		# DIFFOLD / 2 PI
		
			Q7F
		STORE	Q7
		
BECONSTD	SSP	RTB		# A HUNTEST ENTRY INTO CONSTD.
			GOTOADDR	# RESET MODE TO HUNTEST
			HUNTEST
			KILLGRP4	# DEACTIVATE GRP4 FROM HUNTEST.
			
CONSTD		BOVB	
			TCDANZIG	# CLEAR OVF IND IF ON.
			
		DLOAD	DMP
			LEQ
			C/D0		# C/D0 = -4/D0 B-8
		PDDL	DMP		# LEQ C/D0 INTO PDL
			2HS		# 2HS / 4 VS VS
			D0
		DDV	DAD		# RDOTREF = -2 HS D0/V
			V
			RDOT
		DMP	DAD
			K2D		# C/D0 LEQ + K2D(RDOT-RDOTREF) INTO PD
		PDDL
			D0		# D0 /805
			
CONSTD1		BDSU			# ENTER WITH DREF IN MPAC
			D
		DMP	DAD
			K1D		# K2D TERM FROM PUSH
		SL	GOTO
			8D
			NEGTESTS	# (GO TO)
			
DOWNCNTL	BOVB			# INITIAL PART OF UPCONTROL.
			TCDANZIG	# CLEAR OVFIND, IF ON.
			
		DLOAD	SR
			LAD
			8D
		PDDL	DSU		# RDTR = LAD(V1-V)
			V
			V1
		DMP	DAD
			LAD
## Page 868
			RDOT
		DMP	DAD
			K2D
					# PUSH UP LAD.
		PDDL	DSU		# LAD + K2D(RDOT-RDTR) INTO PD
			V1
			V
		DSQ	DMP
			LAD
		DDV	PDDL		# (V1-V)SQ LAD/(2 C1 HS) INTO PD
			2C1HS
			V1
		DSQ	DDV
			VSQUARE
		BDDV	DSU		# DREF = (V/V1)SQ A0 - PD
			A0
					# PUSH UP HERE
		GOTO			# C(MPAC) = DREF
			CONSTD1
			
					#              2           2
					# DREF = (V/V1)  A0 -(V-V1)  LAD/2 C1 HS
## Page 869
# * START	BALLISTIC PHASE ...
					# MM = 66	UPCONTRL ENTRY INTO KEP2.
KEP		RTB	SSP
			P66		# DISPLAY TRIM GIMBAL ANGLE VALUES.
			GOTOADDR	# SET GOTOADDR TO KEPLER PHASE.
			KEP2
			
					# KEP2 CAN ALSO BE STARTED UP DIRECTLY FROM INITROLL
					# IN P64.  PROGRAM WILL IDLE IN P64 UNTIL D EXCEEDS
					# .2 G BEFORE GOING ON TO P67.
					
KEP2		DLOAD	DSU		# IF Q7F+KDMIN -D NEG, GO TO FINAL PHASE.
			Q7FKDMIN	# (Q7F + KDMIN)/805
			D
		BMN	TLOAD
			PREFINAL
					# SET ROLLHOLD = ROLLC, IN CASE CMDAPMOD
			ROLLC		# = +1 EVER ENTERED.
		BON	TLOAD		# IF D > .05G, KEEP PRESENT ROLL COMMAND.
			.05GSW		# IF D < .05G, SET ROLL COMMAND = 0.
			+2
			3ZEROS		# SET ROLLC & ROLLHOLD =0.
 +2		STCALL	ROLLC		# (SP ROLLHOLD FOLLOWS DP ROLLC)
			P62.3		# CALC DESIRED GIMBAL ANGLES AT PRESENT
					# RN, VN TO YIELD TRIM ATTITUDE.
					# AVAILABLE IN CPHI'S FOR N22.
## Page 870
# START FINAL PHASE ..
					# MM = 67
PREFINAL	SSP	RTB
			GOTOADDR	# RESTART PROTECT: RESET GOTOADDR IF CAME
			PREFINAL	# FROM HUNTEST.
			P67		# DISABLES GRP4.  FINE IF FROM HUNTEST. BUT 
					# MAY ALSO REMOVE RESTART PROTECTION OF
					# N69 (P65).
					# ROLLC		XRNGERR		DNRNGERR
					# XXX.XX DEG	XXXX.X NM	XXXX.X NM
					
		SET	SSP
			EGSW
			GOTOADDR
			PREDICT3
			
PREDICT3	DLOAD	DSU		# IF V-VQUIT NEG, STOP STEERING
			V
			VQUIT
		BMN	EXIT
			STEEROFF
			
		CA	EBENTRY		# PRECAUTIONARY.
		TS	EBANK
		
		CA	TWELVE
BACK		TS	JJ

		CS	V
		INDEX	JJ
		AD	VREFER		# VREF - V, HIGHEST VREF AT END OF TABLE.
		CCS	A		# IF VREF-V POS LOOP BACK
		CCS	JJ		# DECREMENT JJ, JJ CANNOT BE ZERO
		TCF	BACK
		AD	ONE
		TS	TEM1B		# V-VREF IN TEM1B (MUST BE POSITIVE NUM)
		
		INDEX	JJ
		CS	VREFER
		INDEX	JJ
		AD	VREFER +1	# V(K+1) - V(K)			(POS NUM)
		XCH	TEM1B
		ZL	
		EXTEND
		DV	TEM1B
		TS	GRAD		# GRAD = (V-VREF)/(VK+1 - VK)	(POS NUM
		
		CAF	FIVE

## Page 871
BACK2		TS	MM
		CAF	THIRTEEN
		ADS	JJ
		INDEX	A
		CS	VREFER
		INDEX	JJ
		AD	VREFER	 +1	# X(K+1) - X(K)
		EXTEND
		MP	GRAD
		INDEX	JJ
		AD	VREFER
		INDEX	MM
		TS	FX		# FX = AK + GRAD (AK+1 - AK)
		CCS	MM
		TCF	BACK2
		XCH	FX 	+1	# ZERO FX +1 AND GET DREFR
		AD	D
		EXTEND
		MP	FX	+5	# F1
		DXCH	MPAC		# MPAC = F1(D-DREF)
		
		EXTEND
		DCS	RDOT		# FORM RDOTREF - RDOT
		DDOUBL
		DDOUBL
		DDOUBL			# SCALE UP BY 8 FOR THIS PHASE.
		AD	FX 	+3	# RDOTREF
		EXTEND
		MP	FX 	+4	# F2
		AD	FX	+2	# RTOGO
		DAS	MPAC		# ADD F2(DADV1-DADVR)
		CA	MPAC
		TS	PREDANG
					# L/D = LOD + (THETA- PREDANG)/ Y
		TC	INTPRET
		
		SR3	DSU
			THETAH
		BON	BOFF
			GONEPAST
			GONEGLAD
			GONEBY
			HAVDNRNG
		DLOAD	SET		# SET GONEPAST IF GONEBY SET & LATCH IN-
			MAXRNG		# DISPLAY = 9999.9 IF GONEBY	   PLACE
			GONEPAST
		STCALL	DNRNGERR
			GONEGLAD
			
HAVDNRNG	STORE	DNRNGERR	# = (PREDANG - THETA) /360
## Page 872
		DCOMP			# FALL SHORT IF NEG, OVERSHOOT IF POS
		BOVB	DDV
			TCDANZIG	# CLEAR OVFIND IF ON.
			FX		# FX= DRANGE/D L/D = Y
		SL	BOV
			5
			GOMAXL/D
		DAD	BOV
			LOD
			GOMAXL/D
		STCALL	L/D
			GLIMITER	# (GO TO)
			
# GONEGLAD AND GOPOSMAX ENTRY POINTS FOR GLIMITER ...

GONEGLAD	DLOAD			# SET L/D = -LAD
			GONEGLAD	# (ANY NEGATIVE NUMBER WILL DO)
			
GOMAXL/D	RTB	DMP		# L/D = LAD SIGN(MPAC)
			SIGNMPAC
			LAD
		STORE	L/D		# AND FALL INTO GLIMITER SECTION
		
GLIMITER	DLOAD	DSU		# IF GMAX/2-D POS, GO TO LIMITL/D
			GMAX/2
			D
		BPL	DAD		# IF GMAX  -D NEG, GO TO GOPOSLAD
			LIMITL/D
			GMAX/2
		BMN	DMP
			GOPOSLAD
			2HS
		PDDL	DMP		# 2HS(GMAX-D) INTO PD
			LEQ
			1/GMAX
		DAD	DMP
			LAD
		PDDL	DDV		# 2HS(GMAX-D) (LEQ/GMAX+LAD) INTO PD
			2HSGMXSQ
			VSQUARE
		DAD	SQRT		# XLIM = SQRT(PD+(2HSGMAX/V)SQ)
		DAD	BPL		# IF RDOT+XLIM POS, GO TO LIMITL/D
			RDOT
			LIMITL/D
			
GOPOSLAD	DLOAD
			LAD
STOREL/D	STORE	L/D

## Page 873
LIMITL/D	DLOAD
			L/D
		STODL	L/D1
			VSQUARE
			
		BON			# NO LATERAL CONTROL IF PAST TARGET
			GONEPAST
			L355
		DMP	DAD		# Y= KLAT VSQUARE + LATBIAS
			KLAT
			LATBIAS		# Y INTO PD
L350		PDDL	ABS		# IF ABS(L/D)-L/DCMINR NEG, GO TO L353
			L/D
		DSU	BMN
			L/DCMINR
			L353
		DLOAD	SIGN		# IF K2ROLL LATANG NEG, GO TO L357
			LATANG
			K2ROLL
		BMN	DLOAD
			L357
		SR1	PUSH		# Y = Y/2
L353		DLOAD	SIGN		# IF LATANG SIGN(K2ROLL)-Y POS, SWITCH
			LATANG
			K2ROLL
		DSU
		BMN	DLOAD
			L355
			K2ROLL
		BONCLR	DCOMP		# IF NOSWITCH =1, K2ROLL= K2ROLL
			NOSWITCH
			L355
		STORE	K2ROLL		# K2ROLL = -K2ROLL
		
L355		DLOAD	DDV		# ROLLC = ACOS( (L/D1) / LAD)
			L/D1
			LAD		# MPAC SET TO +-1 IF OVERFLOW***
		SR1	ACOS
		SIGN	CLEAR
			K2ROLL
			NOSWITCH
		STORE	ROLLC
		
ENDEXIT		EXIT

OVERNOUT	CA	BIT13		# ENTRYDSP =92D B13
		MASK	CM/FLAGS
		EXTEND
		BZF	NODISKY		# OMIT DISPLAY.
## Page 874
		CA	ENTRYVN		# ALL ENTRY DISPLAYS ARE DONE HERE.
		TC	BANKCALL
		CADR	REGODSPR	# NO ABORT IF DISKY IN USE
		
NODISKY		INHINT
		CCS	NEWJOB		# PROTECT READACCS GRP 5, IF SIDETRACKED.
		TC	CHANG1
SERVNOUT	TC	POSTJUMP	# ( COME HERE FROM P67.3 )
		CADR	SERVEXIT	# AND END AVERAGEG JOB VIA  ENDOFJOB.

## Page 875
# DISPLAY WHEN V IS LESS THAN VQUIT.

STEEROFF	EXIT
		CA	EBENTRY		# PRECAUTIONARY.
		TS	EBANK
		
		CA	PRIO16		# 2 LESS THAN NTRYPRIO.
		TC	NOVAC
		EBANK=	AOG		# ANY EB HERE
		2CADR	P67.1		# START UP REMAINDER OF P67
		
					# RTOGO		LAT		LONG
					# XXXX.X NM	XXX.XX DEG	XXX.XX DEG
					
		TC	2PHSCHNG	# INHINT/RELINT DONE.
		OCT	00414		# 4.41 RESTART FOR P67.1 DISPLAY JOB.
		OCT	10035		# SERVICER 5.3 RESTART.
		
		CA	P67.2CAD	# HEREAFTER, DO LAT, LONG.
		TS	GOTOADDR
		
		TC	INTPRET
		GOTO
P67.2CAD		P67.2		# CONTINUE FOR LAT, LONG THIS TIME.

L357		DLOAD	SIGN		# L/D = L/DCMINR SIGN(L/D)
			L/DCMINR
			L/D
		STCALL	L/D1
			L355		# (GO TO)

## Page 876
# TABLE USED FOR SUB-ORBITAL REFERENCE TRAJECTORY CONTROL.

VREFER		DEC	.019288		# REFERENCE VELOCITY SCALED V/51532.3946
		DEC	.040809		# 13 POINTS ARE STORED AS THE INDEPENDENT
		DEC	.076107		# VARIABLE AND THEN SIX 13 POINT FUNCTIONS
		DEC	.122156		# OF V ARE STORED CONSECUTIVELY
		DEC	.165546
		DEC	.196012
		DEC	.271945
		DEC	.309533
		DEC	.356222
		DEC	.404192
		DEC	.448067
		DEC	.456023
		DEC	.67918		# HIGHVELOCITY FOR SAFETY
		
		DEC	-.010337	# DRANGE/DA	SCALED DRDA/(2700/805)
		DEC	-.016550
		DEC	-.026935
		DEC	-.042039
		DEC	-.058974
		DEC	-.070721
		DEC	-.098538
		DEC	-.107482
		DEC	-.147762
		DEC	-.193289
		DEC	-.602557
		DEC	-.99999
		DEC	-.99999
		
		DEC	-.0478599 B-3	# -DRANGE/DRDOT
		DEC	-.0683663 B-3	# SCALED ((2VS/8 2700) DR/DRDOT)
		DEC	-.1343468 B-3
		DEC	-.2759846 B-3
		DEC	-.4731437 B-3
		DEC	-.6472087 B-3
		DEC	-1.171693 B-3
		DEC	-1.466382 B-3
		DEC	-1.905171 B-3
		DEC	-2.547990 B-3
		DEC	-4.151220 B-3
		DEC	-5.813617 B-3
		DEC	-5.813617 B-3

## Page 877
		DEC	-.0134001  B3	# RDOTREF	SCALED (8 RDT/2VS)
		DEC	-.013947   B3
		DEC	-.013462   B3
		DEC	-.011813   B3
		DEC	-.0095631  B3
		DEC	-.00806946 B3
		DEC	-.006828   B3
		DEC	-.00806946 B3
		DEC	-.0109791  B3
		DEC	-.0151498  B3
		DEC	-.0179817  B3
		DEC	-.0159061  B3
		DEC	-.0159061  B3
		
		DEC	.0008067	# RANGE TO GO SCALED RTOGO/2700
		DEC	.0032963	#	8.9
		DEC	.0081852	#	22.1
		DEC	.017148
		DEC	.027926
		DEC	.037
		DEC	.063298
		DEC	.077889
		DEC	.098815
		DEC	.127519
		DEC	.186963
		DEC	.238148
		DEC	.294185185
		
		DEC	-.051099	# -AREF/805
		DEC	-.074534
		DEC	-.101242
		DEC	-.116646
		DEC	-.122360
		DEC	-.127081
		DEC	-.147453
		DEC	-.155528
		DEC	-.149565
		DEC	-.118509
		DEC	-.034907
		DEC	-.007950
		DEC	-.007950

## Page 878
		DEC	.004491		# DRANGE/D L/D SCALED Y/2700
		DEC	.008081
		DEC	.016030
		DEC	.035815
		DEC	.069422
		DEC	.104519
		DEC	.122
		DEC	.172407
		DEC	.252852
		DEC	.363148
		DEC	.512963
		DEC	.558519
		DEC	.558519		# END OF STORED REFERENCE
		
## Page 879
# REENTRY CONSTANTS.

# DEFINED BY EQUALS

DEC15		=	LOW4
#GAMMAL1	=	22D

MAXRNG		2OCT	1663106755	# DNRNGERR = 9999.9 IF GONEPAST=1

		BANK	26
		SETLOC	REENTRY1
		BANK
		
		COUNT*	$$/ENTRY
		
BARELY1		=	NEARONE		# COMMON TO BOTH DISK,DANCE.DEFND IN TFF
#1BITDP					COMMON TO BOTH DISK AND DANCE. DEFND IN VECPOINT.

1/12TH		DEC	.083333		# DP 1/12 USES HI WORD IN 1/3 BELOW
1/3RD		2DEC	.3333333333	# DP 1/3

1/16TH		=	DP2(-4)

# BELOW:  VS = VSAT = 25766.1973 FT/SEC

#	  RE = 21,202,900 FEET

LEWD1		2DEC	.15

POINT1		2DEC	.1

POINT2		2DEC	.2		# .2

DLEWD0		2DEC	-.05		# -.05

GMAX/2		2DEC	.16		# 8 GS / 2

3ZEROS		EQUALS	HI6ZEROS
NEAR1/4		2OCT	0777700000	# 1/4 LESS 1 BIT IN UPPER PART.

C18		2DEC	.0097026346	# 500/2VS

Q7FKDMIN	2DEC	.0080745342	# 6.5/805  (Q7F +KDMIN) = 6 + .5)

C1/16		=	DP2(-4)

Q3		2DEC	.167003132	# .07 2VS/21600
## Page 880
Q5		2DEC	.326388889	# .3 23500/21600

Q6		2DEC	.0349		# 2 DEG, APPROX 820/23500

Q7F		2DEC	.0074534161	# 6/805  (VALUE OF Q7 IN FIXED MEM.)

Q19		=	HALVE		# Q19 = .5

Q21		2DEC	.0231481481	# 500/21600

Q22		2DEC	-.053333333	# -1152/21600

VLMIN		2DEC	.34929485	# 18000/2 VS

VMIN		=	FOURTH		# (VS/2) / 2VS
C12		2DEC	.00684572901	# 32 28500/(21202900 2 PI)

1/KB1		2DEC	.29411765	# 1 / 3.4

-1/KB2		2DEC	-.0057074322 B4	# = -1/(.0034 2 VS) EXP +4

VQUIT		2DEC	.019405269	# 1000 /2VS

C20		2DEC	.21739130	# (175 FPSS) LIFT UP IF ABOVE C20

C21		2DEC	.17391304	# 140/805

25NM		2DEC	.0011574074	# 25/21600	(25 NAUT MILES)

K1D		2DEC	.0314453125	# =C16 805/256 = .01 805/256

K2D		2DEC	-.201298418	# -C17 2VS/256 = -.001 2VS/256

KVSCALE		2DEC	.81491944	# 12800/(2 VS .3048)

KASCALE		2DEC	.97657358	# 5.85 16384/(4 .3048 100 805)

KTETA		2DEC*	.383495203 E2 B-14* # 1000 2PI/16384(163.84)

KT1		2DEC*	.157788327 E2 B-14* # RE(2PI)/2 VS(16384) 163.84

.05G		2DEC	.002		# .05/25

LATBIAS		2DEC	.00003		# APPRX .5 NM/ 4(21600/2 PI)

KWE		2DEC	.120056652 B-1

KACOS		2DEC	.004973592	# 1/32(2PI)

CHOOK		2DEC	1 B-6		# .25/16
## Page 881
1/24TH		2DEC	.0833333333 B-1

CH1		2DEC	.32 B1		# 16 CH1/25 = 16 (1) /25

KC3		2DEC	-.0247622232	# -(4 VS VS/ 2 PI 805 RE)

VRCONT		2DEC	.0135836886	# 700/2 VSAT

HALVE		EQUALS	HIDPHALF
FOURTH		EQUALS	HIDP1/4

1/GMAX		EQUALS	HALVE		# 4/GMAX = 4 / 8
2HS		2DEC	.0172786611	# 2 28500 25 32.2/(4 VS VS)

2HSGMXSQ	2DEC	.0000305717	# (2 28500 8 32.2/ 4 VS VS)SQ

C001		2DEC	-.000625	# -(4/25)/256	LEQ/D0 CONST

POINT8		2DEC	.8

2C1HS		2DEC	.0215983264	# 2 1.25 28500 805/(2 VS)SQ

PT1/16		2DEC	.1 B-4

1/K44		2DEC	.00260929464	# 2 VS/19749550

VFINAL		2DEC	.51618016	# 26600/2 VS

VFINAL1		2DEC	.523942273	# = 27000 / 2 VS

1/KA1		2DEC	.30048077	# 25/(1.3 64)

KA2		2DEC	.008		# .2/25

KA3		2DEC	.44720497	# = 90 4/805

KA4		2DEC	.049689441	# 40/805

KALIM		2DEC	.06		# 1.5/25

Q7MIN		=	KA4		# = 40/805 = .049689441
-HSCALED	2DEC	-.55305018	# -28500/2 VS

-KSCALE		2DEC	-.0312424837	# -805/VS 

COS15		2DEC	.965 

LATSLOPE	EQUALS	1/12TH
# ... END OF RE-ENTRY CONSTANTS ...

## Page 882
## Empty page.
back to top