Raw File
P34-P35,_P74-P75.agc
### FILE="Main.annotation"
## Copyright:	Public domain.
## Filename:	P34-35_P74-75.agc
## Purpose:	Part of the source code for Artemis (i.e., Colossus 3),
##		build 072.  This is for the Command Module's (CM) 
##		Apollo Guidance Computer (AGC), for 
##		Apollo 15-17.
## Assembler:	yaYUL
## Contact:	Sergio Navarro <sergionavarrog@gmail.com>
## Website:	www.ibiblio.org/apollo/index.html
## Page Scans:	www.ibiblio.org/apollo/ScansForConversion/Artemis072/
## Mod history:	2009-08-19 SN	Adapted from corresponding Comanche 055 file.
## 		2009-09-03 JL	Fixed symbol names.
## 		2009-09-04 JL	Fixed a bunch of typos. Fixed page comments.
## 		2009-09-07 JL	Fixed typos.
## 		2010-01-31 JL	Fixed build errors.
##		2010-02-20 RSB	Un-##'d this header.
##		2011-05-07 JL	Removed workaround.
##		2017-02-07 RSB	Proofed comment text by diff'ing vs Comanche 55
##				and corrected errors found, and a little bit
##				of octopus/ProoferComments where the mismatch
##				in the diff was too great.

## Page 463
# TRANSFER PHASE INITIATION (TPI) PROGRAMS (P34 AND P74)
#
# MOD NO -1		LOG SECTION - P32-P35, P72-P75
# MOD BY WHITE.P	DATE 1JUNE67
#
# PURPOSE
#
#	(1) TO CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL CONDITIONS
#	    REQUIRED BY THE ACTIVE VEHICLE FOR EXECUTION OF THE TRANSFER
#	    PHASE INITIATION (TPI) MANEUVER, GIVEN -
#
#	    (A) TIME OF IGNITION TIG (TPI) OR THE ELEVATION ANGLE (E) OF
#		THE ACTIVE/PASSIVE VEHICLE LOS AT TIG (TPI).
#
#	    (B) CENTRAL ANGLE OF TRANSFER (CENTANG) FROM TIG (TPI) TO
#		INTERCEPT TIME (TIG (TPF)).
#
#	(2) TO CALCULATE TIG (TPI) GIVEN E OR E GIVEN TIG (TPI).
#
#	(3) TO CALCULATE THESE PARAMETERS BASED UPON MANEUVER DATA
#	    APPROVED AND KEYED INTO THE DSKY BY THE ASTRONAUT.
#
#	(4) TO DISPLAY TO THE ASTRONAUT AND THE GROUND CERTAIN DEPENDENT
#	    VARIABLES ASSOCIATED WITH THE MANEUVER FOR APPROVAL BY THE
#	    ASTRONAUT/GROUND.
#
#	(5) TO STORE THE TPI TARGET PARAMETERS FOR USE BY THE DESIRED
#	    THRUSTING PROGRAM.
#
# ASSUMPTIONS
#
#	(1) LM ONLY - THIS PROGRAM IS BASED UPON PREVIOUS COMPLETION OF
#	    THE CONSTANT DELTA ALTITUDE (CDH) PROGRAM (P33/P73).
#	    THEREFORE -
#
#	    (A) AT A SELECTED TPI TIME (NOW IN STORAGE) THE LINE OF SIGHT
#		BETWEEN THE ACTIVE AND PASSIVE VEHICLES WAS SELECTED TO BE
#		A PRESCRIBED ANGLE (E) (NOW IN STORAGE) FROM THE
#		HORIZONTAL PLANE DEFINED BY THE ACTIVE VEHICLE POSITION.
#
#	    (B) THE TIME BETWEEN CDH IGNITION AND TPI IGNITION WAS
#		COMPUTED TO BE GREATER THAN 10 MINUTES.
#
#	    (C) THE VARIATION OF THE ALTITUDE DIFFERENCE BETWEEN THE
#		ORBITS WAS MINIMIZED.
#
#	    (D) THE PERICENTER ALTITUDES OF ORBITS FOLLOWING CSI AND
#
#		CDH WERE COMPUTED TO BE GREATER THAN 35,000 FT FOR LUNAR
## Page 464
#		ORBIT OR 85 NM FOR EARTH ORBIT.
#
#	    (E) THE CSI AND CDH MANEUVERS WERE ASSUMED TO BE PARALLEL TO
#		THE PLANE OF THE PASSIVE VEHICLE ORBIT.  HOWEVER, CREW
#		MODIFICATION OF DELTA V (LV) COMPONENTS MAY HAVE RESULTED
#		IN AN OUT-OF-PLANE MANEUVER.
#
#	(2) STATE VECTOR UPDATED BY P27 ARE DISALLOWED DURING AUTOMATIC
#	    STATE VECTOR UPDATING INITIATED BY P20 (SEE ASSUMPTION (4)).
#
#	(3) THIS PROGRAM MUST BE DONE OVER A TRACKING STATION FOR REAL
#	    TIME GROUND PARTICIPATION IN DATA INPUT AND OUTPUT.  COMPUTED
#	    VARIABLES MAY BE STORED FOR LATER VERIFICATION BY THE GROUND.
#	    THESE STORAGE CAPABILITIES ARE LIMITED ONLY TO THE PARAMETERS
#	    FOR ONE THRUSTING MANEUVER AT A TIME EXCEPT FOR CONCENTRIC
#	    FLIGHT PLAN MANEUVER SEQUENCES.
#
#	(4) THE RENDEZVOUS RADAR MAY OR MAY NOT BE USED TO UPDATE THE LM
#	    OR CSM STATE VECTORS FOR THIS PROGRAM.  IF RADAR USE IS
#	    DESIRED THE RADAR WAS TURNED ON AND LOCKED ON THE CSM BY
#	    PREVIOUS SELECTION OF P20.  RADAR SIGHTING MARKS WILL BE MADE
#	    AUTOMATICALLY APPROXIMATELY ONCE A MINUTE WHEN ENABLED BY THE
#	    TRACK AND UPDATE FLAGS (SEE P20).  THE RENDEZVOUS TRACKING
#	    MARK COUNTER IS ZEROED BY THE SELECTION OF P20 AND AFTER EACH
#	    THRUSTING MANEUVER.
#
#	(5) THE ISS NEED NOT BE ON TO COMPLETE THIS PROGRAM.
#
#	(6) THE OPERATION OF THE PROGRAM UTILIZES THE FOLLOWING FLAGS -
#
#		ACTIVE VEHICLE FLAG - DESIGNATES THE VEHICLE WHICH IS
#		DOING RENDEZVOUS THRUSTING MANEUVERS TO THE PROGRAM WHICH
#		CALCULATES THE MANEUVER PARAMETERS.  SET AT THE START OF
#		EACH RENDEZVOUS PRE-THRUSTING PROGRAM.
#
#		FINAL FLAG - SELECTS FINAL PROGRAM DISPLAYS AFTER CREW HAS
#		SELECTED THE FINAL MANEUVER COMPUTATION CYCLE.
#
#		EXTERNAL DELTA V FLAG - DESIGNATES THE TYPE OF STEERING
#		REQUIRED FOR EXECUTION OF THIS MANEUVER BY THE THRUSTING
#		PROGRAM SELECTED AFTER COMPLETION OF THIS PROGRAM.
#
#	(7) ONCE THE PARAMETWRS REQUIRED FOR COMPUTION OF THE MANEUVER
#	    HAVE BEEN COMPLETELY SPECIFIED, THE VALUE OF THE ACTIVE
#	    VEHICLE CENTRAL ANGLE OF TRANSFER IS COMPUTED AND STORED.
#	    THIS NUMBER WILL BE AVAILABLE FOR DISPLAY TO THE ASTRONAUT
#	    THROUGH THE USE OF V06N52.
#
#	    THE ASTRONAUT WILL CALL THIS DISPLAY TO VERIFY THAT THE
#	    CENTRAL ANGLE OF TRANSFER OF THE ACTIVE VEHICLE IS NOT WITHIN
## Page 465
#	    170 TO 190 DEGREES.  IF THE ANGLE IS WITHIN THIS ZONE THE
#	    ASTRONAUT SHOULD REASSESS THE INPUT TARGETING PARAMETERS BASED
#	    UPON DELTA V AND EXPECTED MANEUVER TIME.
#
#	(8) THIS PROGRAM IS SELECTED BY THE ASTRONAUT BY DSKY ENTRY -
#
#		P34 IF THIS VEHICLE IS ACTIVE VEHICLE.
#
#		P74 IF THIS VEHICLE IS PASSIVE VEHICLE.
#
# INPUT
#
#	(1) TTPI	TIME OF THE TPI MANEUVER
#	(2) ELEV	DESIRED LOS ANGLE AT TPI
#	(3) CENTANG	ORBITAL CENTRAL ANGLE OF THE PASSIVE VEHICLE DURING
#			TRANSFER FROM TPI TO TIME OF INTERCEPT
#
# OUTPUT
#
#	(1) TRKMKCNT	NUMBER OF MARKS
#	(2) TTOGO	TIME TO GO
#	(3) +MGA	MIDDLE GIMBAL ANGLE
#	(4) TTPI	COMPUTED TIME OF TPI MANEUVER
#	     OR
#	    ELEV	COMPUTED LOS ANGLE AT TPI
#	(5) POSTTPI	PERIGEE ALTITUDE AFTER THE TPI MANEUVER
#	(6) DELVTPI	MAGNITUDE OF DELTA V AT TPI
#	(7) DELVTPF	MAGNITUDE OF DELTA V AT INTERCEPT
#	(8) DVLOS	DELTA VELOCITY AT TPI - LINE OF SIGHT
#	(9) DELVLVC	DELTA VELOCITY AT TPI - LOCAL VERTICAL COORDINATES
#
# DOWNLINK
#
#	(1) TTPI	TIME OF THE TPI MANEUVER
#	(2) TIG		TIME OF THE TPI MANEUVER
#	(3) ELEV	DESIRED LOS ANGLE AT TPI
#	(4) CENTANG	ORBITAL CENTRAL ANGLE OF THE PASSIVE VEHICLE DURING
#			TRANSFER FROM TPI TO TIME OF INTERCEPT
#	(5) DELVEET3	DELTA VELOCITY AT TPI - REFERENCE COORDINATES
#	(6) TPASS4	TIME OF INTERCEPT
#
# COMMUNICATION TO THRUSTING PROGRAMS
#
#	(1) TIG		TIME OF THE TPI MANEUVER
#	(2) RTARG	OFFSET TARGET POSITION
#	(3) TPASS4	TIME OF INTERCEPT
#	(4) XDELVFLG	RESET TO INDICATE LAMBERT (AIMPOINT) VG COMPUTATION
#
# SUBROUTINES USED
#
#	AVFLAGA
## Page 466
#	AVFLAGP
#	VNPOOH
#	DISPLAYE
#	SELECTMU
#	PRECSET
#	S33/34.1
#	ALARM
#	BANKCALL
#	GOFLASH
#	GOTOPOOH
#	TIMETHET
#	S34/35.2
#	PERIAPO1
#	SHIFTR1
#	S34/35.5
#	VN1645

		SETLOC	CSI/CDH
		BANK
		EBANK=	SUBEXIT
		COUNT*	$$/P3474
P34		TC	AVFLAGA
		TC	P34/P74A
P74		TC	AVFLAGP
P34/P74A	TC	P20FLGON
		TC	INTPRET
		CLEAR	DLOAD
			TPIMNFLG
			130DEG
		STODL	CENTANG
			ZEROVECS
		STORE	ELEV
		STORE	NN
		EXIT

		CAF	V06N37
		TC	VNFLASH
		CAF	V06N55
		TC	VNFLASH
		TC	INTPRET
		CLEAR	DLOAD
			ETPIFLAG
			TTPI
		STODL	TIG
			ELEV
		BZE	SET
			P34/P74B
			ETPIFLAG
P34/P74B	CALL
			SELECTMU
## Page 467
DELELO		EQUALS	26D
P34/P74C	DLOAD	SET
			ZEROVECS
			ITSWICH
		BON	CLEAR
			ETPIFLAG
			SWCHSET
			ITSWICH
SWCHSET		STORE	NOMTPI
INTLOOP		DLOAD	DAD
			TTPI
			NOMTPI
		STCALL	TDEC1
			PRECSET
		CALL
			S33/34.1
		BZE	EXIT
			SWCHCLR
INTALM		TC	ALARM
		OCT	611
		CAF	V05N09
		TC	BANKCALL
		CADR	GOFLASH
		TC	GOTOPOOH
		TC	P34/P74A	# PROCEED
		TC	INTALM		# V32
SWCHCLR		BONCLR	BON
			ITSWICH
			INTLOOP
			ETPIFLAG
			P34/P74D	# DISPLAY TTPI
		EXIT
		CAF	V06N55
		TC	VNFLASH
		TC	INTPRET
		GOTO
			P34/74E
P34/P74D	EXIT
		CAF	V06N37		# TTPI
		TC	VNFLASH
P34/P74E	TC	INTPRET
		BOFF	BOFF
			FINALFLG
			P34/74E		# LAST PASS
			AUTOSEQ
			P34/74E
		DLOAD	CLEAR		# IT IS FINAL COMP IN MINKEY
			ZEROVECS	#   SET UP FOR TIG OPTION
			ETPIFLAG
		STODL	ELEV
## Page 468
			TTPI
		STCALL	TIG
			P34/P74C
P34/74E		SETPD	DLOAD
			0D
			RTX1
		STODL	X1
			CENTANG
		PUSH	COS
		STODL	CSTH
		SIN
		STOVL	SNTH
			RPASS3
		VSR*
			0,2
		STOVL	RVEC
			VPASS3
		VSR*	SET
			0,2
			RVSW
		STCALL	VVEC
			TIMETHET
		DLOAD
			TTPI
		STORE	INTIME		# FOR INITVEL
		DAD
			T		# RENDEZVOUS TIME
		STCALL	TPASS4		# FOR INITVEL
			S34/35.2
		VLOAD	ABVAL
			DELVEET3
		STOVL	DELVTPI
			VPASS4
		VSU	ABVAL
			VTPRIME
		STOVL	DELVTPF
			RACT3
		PDVL	CALL
			VIPRIME
			PERIAPO1
		CALL
			SHIFTR1
		STODL	POSTTPI
			TTPI
		STORE	TIG
		EXIT
		CAF	V06N58
		TC	VNFLASH
		TC	INTPRET
		CALL
## Page 469
			S34/35.5
		CALL
			VN1645
		GOTO
			P34/P74C
130DEG		OCT	13434		# 13  DEG - CENTANG
		OCT	16163

## Page 470
# RENDEZVOUS MID-COURSE MANEUVER PROGRAMS (P35 AND P75)
#
# MOD NO -1		LOG SECTION - P32-P35, P72-P75
# MOD BY WHITE.P	DATE  1JUNE67
#
# PURPOSE
#
#	(1) TO CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL CONDITIONS
#	    REQUIRED BY THE ACTIVE VEHICLE FOR EXECUTION OF THE NEXT
#	    MIDCOURSE CORRECTION OF THE TRANSFER PHASE OF AN ACTIVE
#	    VEHICLE RENDEZVOUS.
#
#	(2) TO DISPLAY TO THE ASTRONAUT AND THE GROUND CERTAIN DEPENDENT
#	    VARIABLES ASSOCIATED WITH THE MANEUVER FOR APPROVAL BY THE
#	    ASTRONAUT/GROUND.
#
#	(3) TO STORE THE TPM TARGET PARAMETERS FOR USE BY THE DESIRED
#	    THRUSTING PROGRAM.
#
# ASSUMPTIONS
#
#	(1) THE ISS NEED NOT BE ON TO COMPLETE THIS PROGRAM.
#
#	(2) STATE VECTOR UPDATES BY P27 ARE DISALLOWED DURING AUTOMATIC
#	    STATE VECTOR UPDATING INITIATED BY P20 (SEE ASSUMPTION (3)).
#
#	(3) THE RENDEZVOUS RADAR IS ON AND IS LOCKED ON THE CSM.  THIS WAS
#	    DONE DURING PREVIOUS SELECTION OF P20.  RADAR SIGHTING MARKS
#	    WILL BE MADE AUTOMATICALLY APPROXIMATELY ONCE A MINUTE WHEN
#	    ENABLED BY THE TRACK AND UPDATE FLAGS (SEE P20). THE
#	    RENDEZVOUS TRACKING MARK COUNTER IS ZEROED BY THE SELECTION OF
#	    P20 AND AFTER EACH THRUSTING MANEUVER.
#
#	(4) THE OPERATION OF THE PROGRAM UTILIZES THE FOLLOWING FLAGS -
#
#		ACTIVE VEHICLE FLAG - DESIGNATES THE VEHICLE WHICH IS
#		DOING RENDEZVOUS THRUSTING MANEUVERS TO THE PROGRAM WHICH
#		CALCULATES THE MANEUVER PARAMETERS.  SET AT THE START OF
#		EACH RENDEZVOUS PRE-THRUSTING PROGRAM.
#
#		FINAL FLAG - SELECTS FINAL PROGRAM DISPLAYS AFTER CREW HAS
#		SELECTED THE FINAL MANEUVER COMPUTATION CYCLE.
#
#		EXTERNAL DELTA V FLAG - DESIGNATES THE TYPE OF STEERING
#		REQUIRED FOR EXECUTION OF THIS MANEUVER BY THE THRUSTING
#		PROGRAM SELECTED AFTER COMPLETION OF THIS PROGRAM.
#
#	(5) THE TIME OF INTERCEPT (T(INT)) WAS DEFINED BY PREVIOUS
#	    COMPLETION OF THE TRANSFER PHASE INITIATION (TPI) PROGRAM
#	    (P34/P74) AND IS PRESENTLY AVAILABLE IN STORAGE.
#
## Page 471
#	(6) ONCE THE PARAMETERS REQUIRED FOR COMPUTION OF THE MANEUVER
#	    HAVE BEEN COMPLETELY SPECIFIED, THE VALUE OF THE ACTIVE
#	    VEHICLE CENTRAL ANGLE OF TRANSFER IS COMPUTED AND STORED.
#	    THIS NUMBER WILL BE AVAILABLE FOR DISPLAY TO THE ASTRONAUT
#	    THROUGH THE USE OF V06N52.
#
#	    THE ASTRONAUT WILL CALL THIS DISPLAY TO VERIFY THAT THE
#	    CENTRAL ANGLE OF TRANSFER OF THE ACTIVE VEHICLE IS NOT WITHIN
#	    170 TO 190 DEGREES.  IF THE ANGLE IS WITHIN THIS ZONE THE
#	    ASTRONAUT SHOULD REASSESS THE INPUT TARGETING PARAMETERS BASED
#	    UPON DELTA V AND EXPECTED MANEUVER TIME.
#
#	(7) THIS PROGRAM IS SELECTED BY THE ASTRONAUT BY DSKY ENTRY -
#
#		P35 IF THIS VEHICLE IS ACTIVE VEHICLE.
#
#		P75 IF THIS VEHICLE IS PASSIVE VEHICLE.
#
# INPUT
#
#	(1) TPASS4	TIME OF INTERCEPT - SAVED FROM P34/P74
#
# OUTPUT
#
#	(1) TRKMKCNT	NUMBER OF MARKS
#	(2) TTOGO	TIME TO GO
#	(3) +MGA	MIDDLE GIMBAL ANGLE
#	(4) DVLOS	DELTA VELOCITY AT MID - LINE OF SIGHT
#	(5) DELVLVC	DELTA VELOCITY AT MID - LOCAL VERTICAL COORDINATES
#
# DOWNLINK
#
#	(1) TIG		TIME OF THE TPM MANEUVER
#	(2) DELVEET3	DELTA VELOCITY AT TPM - REFERENCE COORDINATES
#	(3) TPASS4	TIME OF INTERCEPT
#
# COMMUNICATION TO THRUSTING PROGRAMS
#
#	(1) TIG		TIME OF THE TPM MANEUVER
#	(2) RTARG	OFFSET TARGET POSITION
#	(3) TPASS4	TIME OF INTERCEPT
#	(4) XDELVFLG	RESET TO INDICATE LAMBERT (AIMPOINT) VG COMPUTATION
#
# SUBROUTINES USED
#
#	AVFLAGA
#	AVFLAGP
#	LOADTIME
#	SELECTMU
#	PRECSET
#	S34/35.1
#	S34/35.2
## Page 472
#	S34/35.5
#	VN1645

		COUNT*	$$/P3575
		EBANK=	KT

P35		TC	AVFLAGA
		EXTEND
		DCA	ATIGINC
		TC	P35/P75A
P75		TC	AVFLAGP
		EXTEND
		DCA	PTIGINC
P35/P75A	DXCH	KT
		TC	P20FLGON	# SET UPDATFLG, TRACKFLG
		TC	INTPRET
		CALL
			SELECTMU
P35/P75B	RTB
			LOADTIME
		STORE	TSTRT
		DAD
			KT
		STORE	TIG
		STORE	INTIME		# FOR INITVEL
		STCALL	TDEC1
			PRECSET		# ADVANCE BOTH VEHICLES
		CALL
			S34/35.1	# GET NORM AND LOS FOR TRANSFORM
		CALL
			S34/35.2	# GET DELTA V(LV)
		CALL
			S34/35.5
		BOFF	SET
			FINALFLG
			+2
			P35FLAG
		CALL
			VN1645
		GOTO
			P35/P75B
## Page 473
# ..... S33/34.1  .....

S33/34.1	STQ	SSP
			NORMEX
			TITER
		OCT	40000
		DLOAD	SETPD
			MAX250
			0D
		STOVL	SECMAX
			RACT3
		STOVL	RAPREC
			VACT3
		STOVL	VAPREC
			RPASS3
		STOVL	RPPREC
			VPASS3
		STORE	VPPREC
ELCALC		CALL
			S34/35.1	# NORMAL AND LOS
		VXV	PDVL
			RACT3		# (RA*VA)*RA 0D
		PDVL	UNIT		# ULOS AT 6D
			RACT3
		PDVL	VPROJ		# XCHNJ AND UP
		VSL2	BVSU
			ULOS
		UNIT	PDVL		# UP AT 0D
		DOT	PDVL		# UP.UN*RA AT 0D
			0D		# UP IN MPAC
		DOT	SIGN
			ULOS
		SL1	ACOS
		PDVL	DOT		# EA AT 0D
			ULOS
			RACT3
		BPL	DLOAD
			TESTY
			DPPOSMAX
		DSU	PUSH
TESTY		BOFF	DLOAD
			ITSWICH
			ELEX
			DELEL
		STODL	DELELO
		DSU
			ELEV
		STORE	DELEL
		ABS	DSU
			ELEPS
## Page 474
		BMN
			TIMEX		# COMMERCIALS EVERYWHERE
FIGTIME		SLOAD	SR1
			TITER
		BHIZ	LXA,1
			NORMEX		# TOO MANY ITERATIONS
			MPAC
		SXA,1	VLOAD
			TITER
			RPASS3
		UNIT	PDDL
			36D
		PDVL	UNIT
			RACT3
		PDDL
		PDDL	PUSH
			36D
		BDSU
			12D
		STODL	30D		# RP - RA MAGNITUDES
			DPHALF
		DSU	PUSH
			ELEV
		SIGN	BMN
			30D
			NORMEX
		DLOAD	COS
		DMP	DDV
			14D
			12D
		DCOMP			# SINCE COS(180-A)=-COS A
		STORE	28D
		ABS	BDSU
			DPHALF
		BMN	VLOAD
			NORMEX
			UNRM
		VXV	UNIT
			6D		# UN*RA
		DOT	DMP
			VACT3
			12D
		PDVL	VXV
			0D
			VPASS3
		VXV	UNIT
			0D		# (RP*VP)*RP
		DOT	DMP
			VPASS3
			14D
## Page 475
		BDSU
		NORM	PDVL		# NORMALIZED WA - WP 12D
			X1
			6D
		VXV	DOT
			0D
			UNRM		# RA*RP.UN 14D
		PDVL	DOT
			0D
			6D
		SL1	ACOS
		SIGN
		DSU	DAD		#   ALPHA   PI
			DPHALF
			ELEV
		PDDL	ACOS
			28D
		BDSU	SIGN
			DPHALF
			30D		# CONTAINS RP-RA
		DAD
		DMP	DDV
			TWOPI
		DMP
		SL*	DMP
			0 -3,1
		PUSH	ABS
		DSU	BMN
			SECMAX
			OKMAX
		DLOAD	SIGN		# REPLACE TIME WITH MAX TIME SIGNED
			SECMAX
		PUSH
OKMAX		SLOAD	BPL		# TEST FIRST ITERATION
			TITER
			REPETE
		SSP	DLOAD
			TITER
		OCT	37777
		GOTO
			STORDELT
REPETE		DLOAD	DMP
			DELEL
			DELELO
		BPL	DLOAD
			NEXTES
			SECMAX
		DMP
			THIRD
		STODL	SECMAX
## Page 476
		ABS	SR1		# CROSSED OVER SOLUTION
		DCOMP	GOTO		# DT=(-SIGN(DTO)//DT//)/2
			RESIGN
NEXTES		DLOAD	ABS
			DELEL
		PDDL	ABS
			DELELO
		DSU
		BMN	DLOAD
			REVERS		# WRONG DIRECTION
		ABS
RESIGN		SIGN 	GOTO
			DELTEEO
			STORDELT
REVERS		DLOAD	DCOMP
			DELTEEO
		PUSH	SR1
		STORE	DELTEEO
		DAD
		GOTO
			ADTIME
STORDELT	STORE	DELTEEO
ADTIME		DAD
			NOMTPI		# SUM OF DELTA T:S
		STORE	NOMTPI
		VLOAD	PDVL
			VAPREC
			RAPREC
		CALL
			GOINT
		CALL
			ACTIVE		# STORE NEW RACT3 VACT3
		VLOAD	PDVL
			VPPREC
			RPPREC
		CALL
			GOINT
		CALL
			PASSIVE		# STORE NEW RPASS3 VPASS3
		GOTO
			ELCALC
ELEX		DLOAD	DAD
			TTPI
			NOMTPI
		STODL	TTPI
		BON
			ETPIFLAG
			TIMEX
		STORE	ELEV
TIMEX		DLOAD	GOTO
## Page 477
			ZEROVECS
			NORMEX

## Page 478
# ..... S34/35.1  .....

# COMPUTE UNIT NORMAL AND LINE OF SIGHT VECTORS GIVEN THE ACTIVE AND
# PASSIVE POS AND VEL AT TIME T3

		SETLOC	S3435LOC
		BANK

		COUNT*	$$/P3474
S34/35.1	VLOAD	VSU
			RPASS3
			RACT3
		UNIT	PUSH
		STOVL	ULOS
			RACT3
		VXV	UNIT
			VACT3
		STORE	UNRM
		RVQ

## Page 479
# ..... S34/35.2  .....

# ADVANCE PASSIVE VEH TO RENDEZVOUS TIME AND GET REQ VEL FROM LAMBERT

		SETLOC	CSI/CDH
		BANK

		COUNT*	$$/P3474		
S34/35.2 	STQ	VLOAD
			SUBEXIT
			VPASS3
		PDVL	PDDL
			RPASS3
			INTIME
		PDDL	PDDL
			TPASS4
			TWOPI		# CONIC
		PDDL	BHIZ
			NN
			S3435.23
		DLOAD	PDDL
			ZEROVECS	# PRECISION
S3435.23	CALL
			INTINT		# GET TARGET VECTOR
S3435.25	STOVL	RTARG
			VATT
		STOVL	VPASS4
			RTARG
# COMPUTE PHI = PI + (ACOS(UNIT RA.UNIT RP)-PI)SIGN(RA*RP.U)
		UNIT	PDVL		# UNIT RP
			RACT3
		UNIT	PUSH		# UNIT RA
		VXV	DOT
			0D
			UNRM		# RA*RP.U
		PDVL
		DOT	SL1		# UNIT RA.UNIT RP
			0D
		ACOS	SIGN
		BPL	DAD
			NOPIE
			DPPOSMAX	# REASONABLE TWO PI
NOPIE		STODL	ACTCENT
			TPASS4
		DSU
			INTIME
		STORE	DELLT4
		SLOAD	SETPD
			NN		# NUMBER OF OFFSETS
			0D
		PDDL	PDVL
## Page 480
			EPSFOUR
			RACT3
		STOVL	RINIT
			VACT3
		STCALL	VINIT
			INITVEL
		CALL
			LOMAT
		VLOAD	MXV
			DELVEET3
			0D
		VSL1
		STCALL	DELVLVC
			SUBEXIT

## Page 481
# ..... S34/35.3  .....

S34/35.3	STQ	CALL
			NORMEX
			LOMAT		# GET MATRIX IN PUSH LIST
		VLOAD	VXM
			DELVLVC		# NEW DEL V TPI
			0D
		VSL1
		STORE	DELVEET3	# SAVE FOR TRANSFORM
		VAD	PDVL
			VACT3		# NEW V REQ
			RACT3
		PDDL	PDDL
			TIG
			TPASS4
		PDDL	PUSH
			DPPOSMAX
		CALL			# INTEG. FOR NEW TARGET VEC
			INTINT
		VLOAD
			RATT
		STORE	RTARG
NOVRWRT		VLOAD	PUSH
			ULOS
		VXV	VCOMP
			UNRM
		UNIT	PUSH
		VXV	VSL1
			ULOS
		PDVL
		PDVL	MXV
			DELVEET3
			0D
		VSL1
		STCALL	DVLOS
			NORMEX

## Page 482
# ..... S34/35.4  .....

S34/35.4	STQ	SETPD		# NO ASTRONAUT OVERWRITE
			NORMEX
			0D
		GOTO
			NOVRWRT

## Page 483
# ..... LOMAT     .....

LOMAT		VLOAD	VCOMP
			UNRM
		STOVL	6D		# Y
			RACT3
		UNIT	VCOMP
		STORE	12D
		VXV	VSL1
			UNRM		# Z*-Y
		STORE	0D
		SETPD	RVQ
			18D
GOINT		PDDL	PDDL		# DO
			ZEROVECS	#   NOT
			NOMTPI		#
		PUSH	PUSH		#		ORDER OR INSERT BEFORE INTINT
INTINT		STQ	CALL
			RTRN
			INTSTALL
		CLEAR	DLOAD
			INTYPFLG
		BZE	SET
			+2
			INTYPFLG
		DLOAD	STADR
		STODL	TDEC1
		SET	LXA,2
			MOONFLAG
			RTX2
		BON	CLEAR
			CMOONFLG
			ALLSET
			MOONFLAG
ALLSET		STOVL	TET
		VSR*
			0,2
		STOVL	RCV
		VSR*
			0,2
		STCALL	VCV
			INTEGRVS
		VLOAD	GOTO
			RATT
			RTRN

## Page 484
# ..... S34/35.5  .....
#
# SUBROUTINES USED
#
#	BANKCALL
#	GOFLASH
#	GOTOPOOH
#	S34/35.3
#	S34/35.4
#	VNPOOH

S34/35.5	STQ	BON
			SUBEXIT
			FINALFLG
			FLAGON
		SET	GOTO
			UPDATFLG
			FLAGON +2
FLAGON		SET
			TPIMNFLG	# INDICATE TPI MANEUVER DONE
 +2		VLOAD
			DELVLVC
		STORE	VTPRIME		# SAVE DELTA V BEFORE DISPLAY
		EXIT	
		CAF	V06N81
		TC	VNFLASH
		TC	INTPRET
		VLOAD	VSU		# TEST FOR OVERWRITE OF COMPUTED
			DELVLVC		#                      DELTA V
			VTPRIME
		ABVAL	BZE
			FLAGOFF
		CALL
			S34/35.3	# COMPUTE NEW TARGET VECTOR
# TRANSFER OF DELVEET3 TO DELVSIN OUT...THEY SHARE SAME ERASABLE.
FLAGOFF		CALL
			S34/35.4
FLAGEND		GOTO
			SUBEXIT

## Page 485
# ..... VN1645    .....
#
# SUBROUTINES USED
#
#	P3XORP7X
#	GET+MGA
#	BANKCALL
#	DELAYJOB
#	COMPTGO
#	GOFLASHR
#	GOTOPOOH
#	FLAGUP

VN1645		STQ	DLOAD
			SUBEXIT
			DP-.01
		STORE	+MGA		# MGA = -.01
		BOFF	DLOAD
			FINALFLG
			GET45
			DP-.01
		DAD
			DP-.01
		STORE	+MGA		# MGA = -.02
		BOFF	EXIT
			REFSMFLG
			GET45
		TC	P3XORP7X
		TC	+2		# P3X
		TC	GET45 +1	# P7X
		TC	INTPRET
		VLOAD	PUSH
			DELVSIN
		CALL			# COMPUTE MGA
			GET+MGA
GET45		EXIT
 +1		TC	COMPTGO		# INITIATE TASK TO UPDATE TTOGO
		CA	SUBEXIT
		TS	QSAVED
		TC	BANKCALL
		CADR	1SECDELY
		CAF	V16N45		# TRKMKCNT, TTOGO, +MGA
		TC	BANKCALL
		CADR	GOFLASH
		TC	GOTOPOOH	# TERMINATE
		TC	N45PROC		# PROCEED
		TC	CLUPDATE	# RECYCLE - RETURN FOR INITIAL COMPUTATION
N45PROC		CS	FLAGWRD2
		MASK	FINALBIT
		EXTEND
## Page 486
		BZF	N45ENAJ		# FINAL FLAG SET - FINAL PASS
N45NORM		TC	PHASCHNG
		OCT	04024
		TC	UPFLAG		# SET
		ADRES	FINALFLG	# FINALFLG
CLUPDATE	TC	DOWNFLAG
		ADRES	TIMRFLAG	# TERMINATE CLOKTASK
		CAF	VN1645AD	# CHANGE BACK TO 4.1 FOR
		TS	TEMPFLSH	# FUTURE DISPLAYS
		TC	PHASCHNG
		OCT	14

VN1645R		TC	INTPRET
		CLEAR	GOTO
			UPDATFLG
 +3 			QSAVED
N45ENAJ		TC	PHASCHNG	# PROTECT MANEVFLG, WRENDPOS
		OCT	04024
		TC	INTPRET
		DLOAD
			TIG
		STORE	NOMTIG
		BON	SET
			PCFLAG
			CHGRMS
			MANEUFLG	# DONT SET FLAG IF PC MANEUVER
CHGRMS		BOFF	DLOAD
			AUTOSEQ
			SAMERMS
			POSVEL2		# CHANGE RMS ONLY IN MINKEY
		STORE	WRENDPOS
SAMERMS		EXIT
		TCF	MNKGOPOO
POSVEL2		DEC	608 B-19	# 2000 FT IN METERS
POSVEL3		DEC	.00608		# 2 FT/SEC IN M/CS
VN1645AD	CADR	VN1645R	+3

## Page 487
# ..... P3XORP7X  .....

P3XORP7X	CAF	HIGH9
		MASK	MODREG
		TCF	INCRQCK
		SETLOC	P30SUBS
		BANK

		COUNT*	$$/P3474

## Page 488
# ..... CONSTANTS .....

V06N37		VN	0637
V06N55		VN	0655
V06N58		VN	0658
V06N81		VN	0681
V16N45		VN	1645
V04N06		VN	0406

		SETLOC	CSI/CDH
		BANK

		COUNT*	$$/P3474
TWOPI		2DEC	6.283185307 B-4
MAX250		2DEC	25 E3 
THIRD		2DEC	.333333333
ELEPS		2DEC	.27777777 E-3
DECTWO		DEC	2
DP-.01		OCT	77777		# CONSTANTS
		OCT	61337		# ADJACENT	-.01 FOR MGA DSP
EPSFOUR		2DEC	.0416666666
V06N59		VN	0659

## Page 489
# ..... INITVEL .....
#
# MOD NO -1		LOG SECTION - P34-P35, P74-P75
# MOD BY WHITE.P	DATE  21NOV67
#
# FUNCTIONAL DESCRIPTION
#
#	THIS SUBROUTINE COMPUTES THE REQUIRED INITIAL VELOCITY VECTOR FOR
#	A TRAJECTORY OF SPECIFIED TRANSFER TIME BETWEEN SPECIFIED INITIAL
#	AND TARGET POSITIONS.  THE TRAJECTORY MAY BE EITHER CONIC OR
#	PRECISION DEPENDING ON AN INPUT PARAMETER (NAMELY, NUMBER OF
#	OFFSETS).  IN ADDITION, IN THE PRECISION TRAJECTORY CASE, THE
#	SUBROUTINE ALSO COMPUTES AN OFFSET TARGET VECTOR, TO BE USED
#	DURING PURE-CONIC CROSS-PRODUCT STEERING.  THE OFFSET TARGET
#	VECTOR IS THE TERMINAL POSITION VECTOR OF A CONIC TRAJECTORY WHICH
#	HAS THE SAME INITIAL STATE AS A PRECISION TRAJECTORY WHOSE
#	TERMINAL POSITION VECTOR IS THE SPECIFIED TARGET VECTOR.
#
#	IN ORDER TO AVOID THE INHERENT SINGULARITIES IN THE 180 DEGREE
#	TRANSFER CASE WHEN THE (TRUE OR OFFSET) TARGET VECTOR MAY BE
#	SLIGHTLYOUT OF THE ORBITAL PLANE, THIS SUBROUTINE ROTATES THIS
#	VECTOR INTO A PLANE DEFINED BY THE INPUT INITIAL POSITION VECTOR
#	AND ANOTHER INPUT VECTOR (USUALLY THE INITIAL VELOCITY VECTOR),
#	WHENEVER THE INPUT TARGET VECTOR LIES INSIDE A CONE WHOSE VERTEX
#	IS THE ORIGIN OF COORDINATES, WHOSE AXIS IS THE 180 DEGREE
#	TRANSFER DIRECTION, AND WHOSE CONE ANGLE IS SPECIFIED BY THE USER.
#
#	THE LAMBERT SUBROUTINE IS UTILIZED FOR THE CONIC COMPUTATIONS AND
#	THE COASTING INTEGRATION SUBROUTINE IS UTILIZED FOR THE PRECISION
#	TRAJECTORY COMPUTATIONS.
#
# CALLING SEQUENCE
#
#	L	CALL
#	L+1		INITVEL
#	L+2	(RETURN - ALWAYS)
#
# INPUT
#
#	(1) RINIT	INITIAL POSITION RADIUS VECTOR
#	(2) VINIT	INITIAL POSITION VELOCITY VECTOR
#	(3) RTARG	TARGET POSITION RADIUS VECTOR
#	(4) DELLT4	DESIRED TIME OF FLIGHT FROM RINIT TO RTARG
#	(5) INTIME	TIME OF RINIT
#	(6) 0D		NUMBER OF ITERATIONS OF LAMBERT/INTEGRVS
#	(7) 2D		ANGLE TO 180 DEGREES WHEN ROTATION STARTS
#	(8) RTX1	-2 FOR EARTH, -10D FOR LUNAR
#	(9) RTX2	COORDINATE SYSTEM ORIGIN - 0 FOR EARTH, 2 FOR LUNAR
#	PUSHLOC SET AT 4D
#
## Page 490
# OUTPUT
#
#	(1) RTARG	OFFSET TARGET POSITION VECTOR
#	(2) VIPRIME	MANEUVER VELOCITY REQUIRED
#	(3) VTPRIME	VELOCITY AT TARGET AFTER MANEUVER
#	(4) DELVEET3	DELTA VELOCITY REQUIRED FOR MANEUVER
#
# SUBROUTINES USED
#
#	LAMBERT
#	INTSTALL
#	INTEGRVS

		SETLOC	INTVEL
		BANK

		COUNT*	$$/INITV
INITVEL		SET			# COGA GUESS NOT AVAILABLE
			GUESSW
HAVEGUES	VLOAD	STQ
			RTARG
			NORMEX
		STORE	RTARG1
		SLOAD	BHIZ
			RTX2
			INITVEL1
		VLOAD	VSL2
			RINIT		# B29
		STOVL	RINIT		# B27
			VINIT		# B7
		VSL2
		STOVL	VINIT		# B5
			RTARG1
		VSL2
		STORE	RTARG1

# INITIALIZATION

INITVEL1	SSP	DLOAD		# SET ITCTR TO -1,LOAD MPAC WITH E4(PL 2D)
			ITCTR
			0 -1
		COSINE	SR1		# CALCULATE COSINE (E4) (+2)
		STODL	COZY4		# SET COZY4 TO COSINE (E4) 	   (PL 0D)
		LXA,2	SXA,2
			MPAC
			VTARGTAG	# SET VTARGTAG TO 0D (SP)
		VLOAD
			RINIT
		STOVL	R1VEC		# R1VEC EQ RINIT
			RTARG1
		STODL	R2VEC		# R2VEC EQ RTARG
## Page 491
			DELLT4
		STORE	TDESIRED	# TDESIRED EQ DELLT4
		SETPD	VLOAD
			0D		# INITIALIZE PL TO 0D
			RINIT		# MPAC EQ RINIT (+29)
		UNIT	PUSH		# UNIT(RI)  (+1)		   (PL 6D)
		VXV	UNIT
			VINIT		# MPAC EQ UNIT(RI) X VI   (+8)
		STOVL	UN
			RTARG1
		UNIT	DOT		# TEMP=URT.URI (+2)		   (PL 0D)
		DAD	CLEAR
			COZY4
			NORMSW
		STORE	COZY4
INITVEL2	BPL	SET
			INITVEL3	# UN CALCULATED IN LAMBERT
			NORMSW

# ROTATE RC INTO YC PLANE - SET UNIT NORMAL TO YC

		VLOAD	PUSH		#				   (PL 6D)
			R2VEC		# RC TO 6D (+29)
		ABVAL	PDVL		# RC TO MPAC, ABVAL(RC) (+29) TO OD(PL 2D)
		PUSH	VPROJ		#                                  (PL 8D)
			UN
		VSL2	BVSU
		UNIT	VXSC		#                                  (PL 0D)
		VSL1
		STORE	R2VEC
		TLOAD	SLOAD
			ZEROVEC
			ITCTR
		BPL	VLOAD
			INITVEL3
			R2VEC
		STORE	RTARG1
INITVEL3	DLOAD	PDVL		#				   (PL 2D)
			MUEARTH		# POSITIVE VALUE
			R2VEC
		UNIT	PDVL		# 2D = UNIT(R2VEC)		   (PL 8D)
			R1VEC
		UNIT	PUSH		# 8D = UNIT(R1VEC)		   (PL14D)
		VXV	VCOMP		# -N = UNIT(R2VEC) X UNIT(R1VEC)
			2D
		PUSH			#				   (PL20D)
		LXA,1	DLOAD
			RTX1
			18D
		BMN	INCR,1
			+2
## Page 492
		DEC	-8
		INCR,1	SLOAD
			10D
			X1
		BHIZ	VLOAD		#				   (PL14D)
			+2
		VCOMP	PUSH		#				   (PL20D)
		VLOAD			#				   (PL14D)
		VXV	DOT		#				   (PL 2D)
		BPL	DLOAD		#				   (PL 0D)
			INITVEL4
		DCOMP	PUSH		#				   (PL 2D)
INITVEL4	LXA,2	SXA,2
			0D
			GEOMSGN

# SET INPUTS UP FOR LAMBERT

		LXA,1	CALL
			RTX1

#  OPERATE THE LAMBERT CONIC ROUTINE (COASTFLT SUBROUTINE)

			LAMBERT

		CLEAR	VLOAD
			GUESSW
			VVEC

# STORE CALCULATED INITIAL VELOCITY REQUIRED IN VIPRIME

		STODL	VIPRIME		# INITIAL VELOCITY REQUIRED (+7)

# IF NUMIT IS ZERO, CONTINUE AT INITVELB, OTHERWISE
# SET UP INPUTS FOR ENCKE INTEGRATION (INTEGRVS).

			VTARGTAG
		BHIZ	CALL
			INITVEL7
			INTSTALL
		SLOAD	CLEAR
			RTX2
			MOONFLAG
		BHIZ	SET
			INITVEL5
			MOONFLAG
INITVEL5	VLOAD
			RINIT
		STORE	R1VEC
		STOVL	RCV
			VIPRIME
		STODL	VCV
			INTIME
## Page 493
		STORE	TET
		DAD	CLEAR
			DELLT4
			INTYPFLG
		STCALL	TDEC1
			INTEGRVS
		VLOAD
			VATT1
		STORE	VTARGET

# IF ITERATION COUNTER (ITCTR) EQ NO. ITERATIONS (NUMIT), CONTINUE AT
# INITVELC, OTHERWISE REITERATE LAMBERT AND ENCKE

		LXA,2	INCR,2
			ITCTR
			1D		# INCREMENT ITCTR
		SXA,2	XSU,2
			ITCTR
			VTARGTAG
		SLOAD	BHIZ		# IF SP(MPAC) EQ 0, CONTINUE AT INITVELC
			X2
			INITVEL6

# OFFSET CONIC TARGET VECTOR

		VLOAD	VSU
			RTARG1
			RATT1
		VAD
			R2VEC
		STODL	R2VEC
			COZY4
		GOTO
			INITVEL2	# CONTINUE ITERATING AT INITVEL2
		SETLOC	INTVEL1
		BANK

		COUNT*	$$/INITV

# COMPUTE THE DELTA VELOCITY

INITVEL6	VLOAD
			R2VEC
		STORE	RTARG1
INITVEL7	VLOAD	VSU
			VIPRIME
			VINIT
		STOVL	DELVEET3	# DELVEET3 = VIPRIME-VINIT  (+7)
			VTARGET
		STCALL	VTPRIME
			INITVEL8
		SETLOC	INTVEL
## Page 494
		BANK

		COUNT*	$$/INITV
INITVEL8	SLOAD	BHIZ
			RTX2
			INITVELX
		VLOAD	VSR2
			VTPRIME
		STOVL	VTPRIME
			VIPRIME
		VSR2
		STOVL	VIPRIME
			RTARG1
		VSR2
		STOVL	RTARG1
			DELVEET3
		VSR2
		STORE	DELVEET3
INITVELX	SETPD	VLOAD
			0D
			RTARG1
		STORE	RTARG
		CLRGO
			XDELVFLG
			NORMEX

# ..... END OF INITVEL ROUTINE .....

## Page 495

# MIDDLE GIMBAL ANGLE COMPUTATION.

		SETLOC	MGIM
		BANK

		COUNT*	$$/MIDG

HALFREV		2DEC	1 B-1

GET+MGA		VLOAD	UNIT		# (PL 0D) V (+7) TO MPAC, UNITIZE  UV (+1)
		DOT	SL1		# DOT UV WITH Y(STABLE MEMBER) AND RESCALE
			REFSMMAT +6	#  FROM +2 TO +1 FOR ASIN ROUTINE
		ARCSIN	BPL
			SETMGA
		DAD	DAD		# CONVERT -MGA TO +MGA BY
			HALFREV		# ADDING ONE REVOLUTION
			HALFREV
SETMGA		STORE	+MGA
		RVQ

		SETLOC	MIDDGIM
		BANK

		COUNT*	$$/MIDG

# TRANSFORM INPUT VECTOR INTO LOCAL VERTICAL COORDINATES.
			
GET.LVC		VLOAD	UNIT		# (PL 6D)   R (+29) IN MPAC, UNITIZE  UR
			RINIT
		VCOMP			# U(-R)
		STORE	18D		# U(-R) TO 18D
		VXV	UNIT		# U(-R)*V EQ V*U(R), U(V*R)
			VINIT
		STORE	12D		# U(V*R) TO 12D
		VXV	UNIT		# U(V*R)*U(-R), U((V*R)*(-R))
			18D
		STOVL	6D		# TRANSFORMATION MATRIX IS IN 6D (+1)
			0D		# DELTA V (+7) IN 0D
		MXV	VSL1		# CONVERT FROM INER COOR TO LV COOR (+8)
			6D		#  AND SCALE +7 IN MPAC
		STORE	DELVLVC		# STORE IN DELVLVC (+7)
		RVQ

## Page 496
SELECTMU	AXC,1	AXT,2
			2D
			0D
		BOFF
			CMOONFLG
			SETMUER
		AXC,1	AXT,2
			10D
			2D
SETMUER		DLOAD*	SXA,1
			MUTABLE +4,1
			RTX1
		STODL*	RTSR1/MU
			MUTABLE -2,1
		BOFF	SR
			CMOONFLG
			RTRNMU
			6D
RTRNMU		STORE	RTMU
		SXA,2	CLEAR
			RTX2
			FINALFLG
		BON	GOTO
			PCFLAG
			P36A
			VN1645

## Page 497
# ..... PERIAPO .....
# MOD NO -1		LOG SECTION - P34-P35, P74-P75
# MOD BY WHITE.P	DATE  18JAN68
#
# FUNCTIONAL DESCRIPTION
#
#	THIS SUBROUTINE COMPUTES THE TWO BODY APOCENTER AND PERICENTER
#	ALTITUDES GIVEN THE POSITION AND VELOCITY VECTORS FOR A POINT ON
#	THE TRAJECTORY AND THE PRIMARY BODY.
#
#	SETRAD IS CALLED TO DETERMINE THE RADIUS OF THE PRIMARY BODY.
#
#	APSIDES IS CALLED TO SOLVE FOR THE TWO BODY RADII OF APOCENTER AND
#	PERICENTER AND THE ECCENTRICITY OF THE TRAJECTORY.
#
# CALLING SEQUENCE
#
#	L	CALL
#	L+1		PERIAPO
#	L+2	(RETURN - ALWAYS)
#
# INPUT
#
#	(1) RVEC	POSITION VECTOR IN METERS
#			SCALE FACTOR - EARTH +29, MOON +27
#	(2) VVEC	VELOCITY VECTOR IN METERS/CENTISECOND
#			SCALE FACTOR - EARTH +7, MOON +5
#	(3) X1		PRIMARY BODY INDICATOR
#			EARTH -2, MOON -10
#
# OUTPUT
#
#	(1) 2D		APOCENTER RADIUS IN METERS
#			SCALE FACTOR - EARTH +29, MOON +27
#	(2) 4D		APOCENTER ALTITUDE IN METERS
#			SCALE FACTOR - EARTH +29, MOON P27
#	(3) 6D		PERICENTER RADIUS IN METERS
#			SCALE FACTOR - EARTH +29, MOON +27
#	(4) 8D		PERICENTER ALTITUDE IN METERS
#			SCALE FACTOR - EARTH +29, MOON +27
#	(5) ECC		ECCENTRICITY OF CONIC TRAJECTORY
#			SCALE FACTOR - +3
#	(6) XXXALT	RADIUS OF THE PRIMARY BODY IN METERS
#			SCALE FACTOR - EARTH +29, MOON +27
#	(7) PUSHLOC	EQUALS 10D
#
# SUBROUTINES USED
#
#	SETRAD
## Page 498
#	APSIDES

		SETLOC	APOPERI
		BANK

		COUNT*	$$/PERAP

RPAD		2DEC	6373338 B-29	# STANDARD RADIUS  OF PAD 37-B.
					# = 20 909 901.57 FT

PERIAPO1	LXA,2	VSR*
			RTX2
			0,2
		STOVL	VVEC
		LXA,1	VSR*
			RTX1
			0,2
		STORE	RVEC
PERIAPO		STQ	CALL
			NORMEX
			SETRAD
		STCALL	XXXALT
			APSIDES
		SETPD	PUSH		# 2D = APOCENTER RADIUS		B29 OR B27
			2D
		DSU	PDDL		# 4D = APOGEE ALTITUDE 		B29 OR B27
			XXXALT
			0D
		PUSH	DSU		# 6D = PERICENTER RADIUS	B29 OR B27
			XXXALT
		PUSH	GOTO		# 8D = PERIGEE ALTITUDE 	B29 OR B27
			NORMEX
## Page 499
# SETRAD
SETRAD		DLOAD	PUSH
			RPAD
		SXA,1	INCR,2
			X2
			2D
		SLOAD	BHIZ
			X2
			SETRADX
		VLOAD	ABVAL
			RLS
		PDDL
SETRADX		DLOAD	RVQ

## Page 500
# PRECSET
PRECSET		STQ
			NORMEX
		STCALL	TDEC2
			LEMCONIC	# CONIC INTEG
		CALL
			LEMSTORE
		DLOAD
			TDEC2
		STCALL	TDEC1
			CSMCONIC	# CONIC INTEG
		CALL
			CSMSTORE
		VLOAD	UNIT
			RPASS3
		VXV	UNIT
			VPASS3
		STOVL	UP1		# UNIT(RPASS3) X VPASS3
			VACT3
		DOT	SL1
			UP1
		STOVL	CMYDOT		# -YDOT (CSM)
			RACT3
		DOT	SL1
			UP1
		STOVL	AUTOY		# -Y(CSM)
			RACT3
		VXV	UNIT
			VACT3
		STOVL	UNRM
			VPASS3
		DOT	SL1
			UNRM		# RACT3 X VACT3
		STCALL	LMYDOT		# -YDOT(LM)
			NORMEX
LEMSTORE	VLOAD	BOFF
			RATT
			AVFLAG
			PASSIVE
ACTIVE		STOVL	RACT3
			VATT
		STORE	VACT3
		RVQ
CSMSTORE	VLOAD	BOFF
			RATT
			AVFLAG
			ACTIVE
PASSIVE		STOVL	RPASS3
			VATT
		STORE	VPASS3
## Page 501
		RVQ

## Page 502

# VECSHIFT
VECSHIFT	LXA,2	VSR*
			RTX2
			0,2
		LXA,1	PDVL
			RTX1
		VSR*	PDVL
			0,2
		RVQ

## Page 503
# SHIFTR1
SHIFTR1		LXA,2	SL*
			RTX2
			0,2
		RVQ

## Page 504
# PROGRAM DESCRIPTION
# SUBROUTINE NAME	R36  OUT-OF-PLANE RENDEZVOUS ROUTINE
# MOD NO.  3	  DATE    18 NOVEMBER 1969
# MOD BY   T.E.CROCKER
#
# FUNCTIONAL DESCRIPTION
#
# TO DISPLAY AT ASTRONAUT REQUEST LGC CALCULATED RENDEZVOUS
# 	OUT-OF-PLANE PARAMETERS (YDOT CSM,YDOT LEM,Y).  
#
# CALLING SEQUENCE
#
# ASTRONAUT REQUEST THROUGH DSKY  V 90 E
#
# SUBROUTINES CALLED
#
# EXDSPRET  TIMEOPT
# GOMARKF   VEHOPT
# CSMCONIC
# LEMCONIC
# LOADTIME
#
# NORMAL EXIT MODES
#
# ASTRONAUT REQUEST THROUGH DSKY TO TERMINATE PROGRAM V 34 E
#
# ALARM OR ABORT EXIT MODES
#
# NONE
#
# OUTPUT
# 
# DECIMAL DISPLAY OF YDOT CSM, YDOT LEM, Y, TIME.
# DISPLAYED VALUES YDOT, YDOT, Y ARE STORED IN ERASABLE
# REGISTERS RRATE, RRATE2, RANGE RESPECTIVELY.
#
# ERASABLE INITIALIZATION REQUIRED
#
# CSM AND LEM STATE VECTORS
#
# DEBRIS
#
# CENTRALS A,Q,L
#
# OTHER  THOSE USED BY THE ABOVE LISTED SUBROUTINES

		SETLOC	R36CM
		BANK

		EBANK=	TIG
		COUNT*	$$/R36

R36		TC	INTPRET
## Page 505

		DLOAD	CALL
			TIG
			TIMEOPT
R36A		CALL
			LEMCONIC
		VLOAD	PDVL		# VL TO PDLO
			VATT
			RATT
		UNIT	PDVL		# UNIT RL TO PDL0, VL TO MPAC
		STADR
		STORE	VPASS36		# VL TO VPASS36
		VXV	UNIT		# VL(MPAC) X RL(PDL0)
		STADR
		STODL	UNP36		# UNIT(VL X RL) TO UNP36
			TAT
		STCALL	TDEC1
			CSMCONIC
		VLOAD	PDVL		# VC TO PDL0
			VATT
			RATT
		STORE	6D		# RC TO PDL6
		UNIT	PDVL		# UNIT(RC) TO PDL0, VC TO MPAC
		STADR
		STORE	12D		# VC TO PDL12
		VXV	UNIT		# VC(MPAC) X RC(PDL0)
		STADR
		STOVL	UNA36		# UNIT(VC X RC) TO UNA36
			6D		# RC TO MPAC
		DOT	SL1
			UNP36		# RC . UNIT(VL X RL)
		STOVL	RANGE		#  EQUALS RANGE
			12D		# VC TO MPAC
		DOT	SL1
			UNP36		# VC . UNIT(VL X RL)
		STOVL	RRATE		#  EQUALS R. RATE OF CSM
			VPASS36		# VL TO MPAC
		DOT	SL1
			UNA36
		STORE	RRATE2		# VL . UNIT(VC X RC)
		EXIT			#  EQUALS R. RATE OF LEM
		CAF	V06N96		# DISPLAY Y, YDOTCM,YDOTLM
		TC	BANKCALL
		CADR	GOMARKF
		TCF	ENDEXT		# T OR
		TCF	ENDEXT		#  P....EXIT R36
					#   R...DISPLAY TIME
		TC	INTPRET
		CALL
			TIMEOPT	+1
		GOTO
## Page 506
			R36A
V06N16N		VN	0616
VEHOPT		STQ	EXIT		# ALLOW VEHICLE OPTION
			VEHRET
		EXTEND
		DCA	TWO
		DXCH	OPTIONX
		CAF	OPTIONVN
		TC	BANKCALL
		CADR	GOXDSPF
		TC	ENDEXT
		TC	+2
		TC	-5

		TC	INTPRET
		GOTO
			VEHRET
OPTIONVN	VN	0412
V06N96		VN	0696

		SBANK=	LOWSUPER
back to top