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
R60,R62.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    R60,R62.agc
## Purpose:     A section of LUM69 revision 2.
##              It is part of the reconstructed source code for the flown
##              version of the flight software for the Lunar Module's (LM)
##              Apollo Guidance Computer (AGC) for Apollo 10. The code has
##              been recreated from a copy of Luminary revsion 069, using
##              changes present in Luminary 099 which were described in
##              Luminary memos 75 and 78. The code has been adapted such
##              that the resulting bugger words exactly match those specified
##              for LUM69 revision 2 in NASA drawing 2021152B, which gives
##              relatively high confidence that the reconstruction is correct.
## Reference:   pp. 485-497
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2019-07-27 MAS  Created from Luminary 69.

## Page 485
# MOD NO: 0				DATE: 1 MAY 1968
# MOD BY: DIGITAL DEVEL GROUP		LOG SECTION R60,R62
#
# FUNCTIONAL DESCRIPTION:
#
# CALLED AS A GENERAL SUBROUTINE TO MANEUVER THE LM TO A SPECIFIED
# ATTITUDE.
#
# 1. IF THE 3-AXIS FLAG IS NOT SET THE FINAL CDU ANGLES ARE
# CALCULATED (VECPOINT).
#
# 2. THE FDAI BALL ANGLES (NOUN 18) ARE CALCULATED (BALLANGS).
#
# 3. REQUEST FLASHING DISPLAY V50 N18 PLEASE PERFORM AUTO MANEUVER.
#
# 4. IF PRIORITY DISPLAY FLAG IS SET DO A PHASECHANGE. THEN AWAIT
# ASTRONAUT RESPONSE.
#
# 5. DISPLAY RESPONSE RETURNS:
#
#	A. 	ENTER - RESET 3-AXIS FLAG AND RETURN TO CLIENT.
#
#	B.	TERMINATE - IF IN P00 GO TO STEP 5A. OTHERWISE CHECK IF R61 IS
#		THE CALLING PROGRAM. IF IN R61 AN EXIT IS MADE TO GOTOV56.  IF
#		NOT IN R61 AN EXIT IS DONE VIA GOTOP00H.
#
#	C.	PROCEED - CONTINUE WITH PROGRAM AT STEP 6.
#
# 6. IF THE 3-AXISFLAG IS NOT SET, THE FINAL CDU ANGLES ARE CALCULATED
# (VECPOINT).
#
# 7. THE FDAI BALL ANGLES (NOUN 18) ARE CALCULATED (BALLANGS).
#
# 8. IF THE G+N SWITCH IS NOT SET GO BACK TO STEP 3.
# 
# 9. IF THE AUTO SWITCH IS NOT SET GO BACK TO STEP 3.
#
# 10. NONFLASHING DISPLAY V06N18 (FDAI ANGLES).
#
# 11. DO A PHASECHANGE.
#
# 12. DO A MANEUVER CALCULATION AND ICDU DRIVE ROUTINE TO ACHIEVE FINAL
#
# GIMBAL ANGLES (GOMANUR).
# 13. AT END OF MANEUVER GO TO STEP 3.
#
#	IF SATISFACTORY MANEUVER STEP 5A EXITS R60.
#	FOR FURTHER ADJUSTMENT OF THE VEHICLE ATTITUDE ABOUT THE
#	DESIRED VECTOR, THE ROUTINE MAY BE PERFORMED AGAIN STARTING AT
## Page 486
#	STEP 5C.
#
# CALLING SEQUENCE:	TC	BANKCALL
#			CADR	R60LEM
#
# ERASABLE INITIALIZATION REQUIRED:	SCAXIS, POINTVSM (FOR VECPOINT)
#					3AXISFLG.
#
# SUBROUTINES CALLED:	VECPOINT, BALLANGS, GOPERF2R, LINUS, GODSPER,
#			GOMANUR, DOWNFLAG, PHASCHNG, UPFLAG
#
# NORMAL EXIT MODES:	CAE	TEMPR60		(CALLERS RETURN ADDRESS)
#			TC	BANKJUMP
#
# ALARMS: NONE
#
# OUTPUT: NONE
#
# DEBRIS: CPHI, CTHETA, CPSI, 3AXISFLG, TBASE2

		BANK	34
		SETLOC	MANUVER
		BANK
		
		EBANK=	TEMPR60
		
		COUNT*	$$/R06
R60LEM		TC	MAKECADR
		TS	TEMPR60
		
REDOMANN	CAF	3AXISBIT
		MASK	FLAGWRD5	# IS 3-AXIS FLAG SET
		CCS	A
		TCF	TOBALL		# YES
		TC	INTPRET
		CALL
			VECPOINT	# TO COMPUTE FINAL ANGLES
		STORE	CPHI		# STORE FINAL ANGLES - CPHI, CTHETA, CPSI
		EXIT
		
TOBALL		TC	BANKCALL
		CADR	BALLANGS	# TO CONVERT ANGLES TO FDAI
TOBALLA		CAF	V06N18
		TC	BANKCALL
		CADR	GOPERF2R	# DISPLAY PLEASE PERFORM AUTO MANEUVER
		TC	R61TEST
		TC	REDOMANC	# PROCEED
		TC	ENDMANU1	# ENTER I.E. FINISHED WITH R60
## Page 487
		TC	CHKLINUS	# TO CHECK FOR PRIORITY DISPLAYS
		TC	ENDOFJOB
		
REDOMANC	CAF	3AXISBIT
		MASK	FLAGWRD5	# IS 3-AXIS FLAG SET
		CCS	A
		TCF	TOBALLC		# YES
		TC	INTPRET
		CALL
			VECPOINT	# TO COMPUTE FINAL ANGLES
		STORE	CPHI		# STORE ANGLES
		EXIT
		
TOBALLC		TC	BANKCALL
		CADR	BALLANGS	# TO CONVERT ANGLES TO FDAI
		TC	G+N,AUTO	# CHECK AUTO MODE
		CCS	A
		TCF	TOBALLA		# NOT AUTO, GO REREQUEST AUTO MANEUVER.
		
AUTOMANV	CAF	V06N18		# STATIC DISPLAY DURING AUTO MANEUVER
		TC	BANKCALL	#					-
		CADR	GODSPR		#					-
		TC	CHKLINUS	# TO CHECK FOR PRIORITY DISPLAYS
		
STARTMNV	TC	BANKCALL	# PERFORM MANEUVER VIA KALCMANU
		CADR	GOMANUR
		
ENDMANUV	TCF	TOBALLA		# FINISHED MANEUVER.
ENDMANU1	TC	DOWNFLAG	# RESET 3-AXIS FLAG
		ADRES	3AXISFLG
		CAE	TEMPR60		#					-
		TC	BANKJUMP	#					-
		
CHKLINUS	CS	FLAGWRD4
		MASK	PDSPFBIT	# IS PRIORITY DISPLAY FLAG SET?
		CCS	A		#					-
		TC	Q		# NO - EXIT
		CA	Q
		TS	MPAC +2		# SAVE RETURN
		CS	THREE		# OBTAIN LOCATION FOR RESTART
		AD	BUF2		# HOLDS Q OF LAST DISPLAY
		TS	TBASE2
		
		TC	PHASCHNG
		OCT	00132
		
		CAF	BIT7
		TC	LINUS		# GO SET BITS FOR PRIORITY DISPLAY	-
		TC	MPAC +2
		
## Page 488		
RELINUS		CAF	PRIO26		# RESTORE ORIGINAL PRIORITY
		TC	PRIOCHNG
		
		CAF	TRACKBIT	# DON'T CONTINUE R60 UNLESS TRACKFLAG ON.
		MASK	FLAGWRD1
		CCS	A
		TCF	RER60
		
		CAF	RNDVZBIT	# IS IT P20?
		MASK	FLAGWRD0
		CCS	A
		TC	+4		# YES
		TC	PHASCHNG	# NO, MUST BE P25, SET 2.11 SPOT
		OCT	40112
		
		TC	ENDOFJOB
		
		TC	PHASCHNG	# SET 2.7 SPOT FOR P20
		OCT	40072
		
		TC 	ENDOFJOB
		
RER60		TC	UPFLAG		# SET PRIO DISPLAY FLAG AFTER RESTART
		ADRES	PDSPFLAG
		
		TC	TBASE2
		
R61TEST		CA	MODREG		# IF WE ARE IN P00 IT MUST BE V49 OR V89
		EXTEND
		BZF	ENDMANU1	# THUS WE GO TO ENDEXT VIA USER
		
		CA	FLAGWRD4	# ARE WE IN R61 (P20 OR P25)
		MASK	PDSPFBIT
		EXTEND
		BZF	GOTOPOOH	# NO
		TC	GOTOV56		# YES
		
BIT14+7		OCT	20100		#					-
OCT203		OCT	203
V06N18		VN	0618

# SUBROUTINE TO CHECK FOR G+N CONTROL, AUTO STABILIZATION
#
# RETURNS WITH C(A) = + 	IF NOT SET FOR G+N, AUTO
# RETURNS WITH C(A) = +0	IF SWITCHES ARE SET

G+N,AUTO	EXTEND
		READ	CHAN30
		MASK	BIT10
		CCS	A
		TC	Q		# NOT IN G+N	C(A) = +
## Page 489		
ISITAUTO	EXTEND			# CHECK FOR AUTO MODE
		READ	CHAN31
		MASK	BIT14
		TC	Q		# (+) = NOT IN AUTO, (+0) = AOK
		
## Page 490
# PROGRAM DESCRIPTION BALLANGS
# MOD NO.         LOG SECTION R60,R62
#
# WRITTEN BY RAMA M. AIYAWAR
# FUNCTIONAL DESCRIPTION
#
# COMPUTES LM FDAI BALL DISPLAY ANGLES
# CALLING SEQUENCE
#
#          TC     BALLANGS
# NORMAL EXIT MODE
#
#          TC     BALLEXIT        (SAVED Q)
#
# ALARM OR EXIT MODE  NIL
# SUBROUTINES CALLED
#          CD*TR*G
#          ARCTAN
#
# INPUT
#
# CPHI,CTHETA,CPSI  ARE  THE ANGLES CORRESPONDING TO AOG,AIG,AMG. THEY ARE
# SP,2S COMPLIMENT SCALED TO HALF REVOLUTION.
# OUTPUT
#
# FDAIX, FDAIY, FDAIZ ARE THE REQUIRED BALL ANGLES SCALED TO HALF REVOLUTION
# SP,2S COMPLIMENT.
# THESE ANGLES WILL BE DISPLAYED AS DEGREES AND HUNDREDTHS, IN THE ORDER ROLL, PITCH, YAW, USING NOUNS 18 & 19.
#
# ERASABLE INITIALIZATION REQUIRED
#
# CPHI,CTHETA,CPSI EACH A SP REGISTER
# DEBRIS
#
# A,L,Q,MPAC,SINCDU,COSCDU,PUSHLIST,BALLEXIT
#
# NOMENCLATURE:	 CPHI, CTHETA, & CPSI REPRESENT THE OUTER, INNER, & MIDDLE GIMBAL ANGLES, RESPECTIVELY; OR
# EQUIVALENTLY, CDUX, CDUY, & CDUZ.
#
# NOTE:  ARCTAN CHECKS FOR OVERFLOW AND SHOULD BE ABLE TO HANDLE ANY SINGULARITIES.

		SETLOC	BAWLANGS
		BANK
		
		COUNT*	$$/BALL
BALLANGS	TC	MAKECADR
		TS	BALLEXIT
		CA	CPHI
## Page 491
		TS	CDUSPOT +4
		CA	CTHETA
		TS	CDUSPOT
		CA	CPSI
		TS	CDUSPOT +2
		
		TC	INTPRET
		SETPD	CALL
			0D
			CD*TR*G
			
		DLOAD	DMP
			SINCDUX		# SIN (OGA)
			COSCDUZ		# COS (MGA)
			
		SL1	DCOMP		# SCALE
		ARCSIN	PDDL		# YAW = ARCSIN(-SXCZ) INTO 0 PD
			SINCDUZ		
		STODL	SINTH		# (SINTH = 18D IN PD)
			COSCDUZ
		DMP	SL1		# RESCALE
			COSCDUX
		STCALL	COSTH		# (COSTH= 16D IN PD)
			ARCTAN
		PDDL	DMP		# ROLL = ARCTAN(SZ/CZCX) INTO 2 PD
			SINCDUZ
			SINCDUX
		SL2	PUSH		# SXSZ INTO 4 PD
		DMP	PDDL		# SXSZCY INTO 4 PD
			COSCDUY
		DMP	PDDL		# SXSZSY INTO 6 PD
			SINCDUY
			COSCDUX
		DMP	SL1		# CXCY
			COSCDUY
		DSU	STADR		# PULL UP FROM 6 PD
		STODL	COSTH		# COSTH = CXCY - SXSZSY
			SINCDUY
		DMP	SL1
			COSCDUX		# CXSY
		DAD	STADR		# PULL UP FROM 4 PD
		STCALL	SINTH		# SINTH = CXSY + SXSZCY
			ARCTAN		# RETURNS WITH D(MPAC) = PITCH
		PDDL	VDEF		# PITCH INTO 2 PD, ROLL INTO MPAC FROM 2 PD
		RTB			# VDEF MAKES V(MPAC) = ROLL, PITCH, YAW
			V1STO2S
		STORE	FDAIX		# MODE IS TP
		EXIT
		
ENDBALL		CA	BALLEXIT

## Page 492
		TC	BANKJUMP

## Page 493
# PROGRAM DESCRIPTION - VECPOINT
#
#          THIS INTERPRETIVE SUBROUTINE MAY BE USED TO POINT A SPACECRAFT AXIS IN A DESIRED DIRECTION.  THE AXIS
# TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN SUCCESSIVE LOCATIONS OF ERASABLE MEMORY
# BEGINNING WITH THE LOCATION CALLED SCAXIS.  THE COMPONENTS OF THIS VECTOR ARE GIVEN IN SPACECRAFT COORDINATES.
# THE DIRECTION IN WHICH THIS AXIS IS TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN
# SUCCESSIVE LOCATIONS OF ERASABLE MEMORY BEGINNING WITH THE ADDRESS CALLED POINTVSM.  THE COMPONENTS OF THIS
# VECTOR ARE GIVEN IN STABLE MEMBER COORDINATES.  WITH THIS INFORMATION VECPOINT COMPUTES A SET OF THREE GIMBAL
# ANGLES (2S COMPLEMENT) CORESPONDING TO THE CROSS-PRODUCT ROTATION BETWEEN SCAXIS AND POINTVSM AND STORES THEM
# IN T(MPAC) BEFORE RETURNING TO THE CALLER.
#          THIS ROTATION, HOWEVER, MAY BRING THE S/C INTO GIMBAL LOCK.  WHEN POINTING A VECTOR IN THE Y-Z PLANE,
# THE TRANSPONDER AXIS, OR THE AOT FOR THE LEM, THE PROGRAM WILL CORRECT THIS PROBLEM BY ROTATING THE CROSS-
# PRODUCT ATTITUDE ABOUT POINTVSM BY A FIXED AMOUNT SUFFICIENT TO ROTATE THE DESIRED S/C ATTITUDE OUT OF GIMBAL
# LOCK.  IF THE AXIS TO BE POINTED IS MORE THAN 40.6 DEGREES BUT LESS THAN 60.5 DEG FROM THE +X (OR -X) AXIS,
# THE ADDITIONAL ROTATION TO AVOID GIMAL LOCK IS 35 DEGREES.  IF THE AXIS IS MORE THAN 60.5 DEGEES FROM +X (OR -X)
# THE ADDITIONAL ROTATION IS 35 DEGREES.  THE GIMBAL ANGLES CORRESPONDING TO THIS ATTITUDE ARE THEN COMPUTED AND
# STORED AS 2S COMPLIMENT ANGLES IN T(MPAC) BEFORE RETURNING TO THE CALLER.
#          WHEN POINTING THE X-AXIS, OR THE THRUST VECTOR, OR ANY VECTOR WITHIN 40.6 DEG OF THE X-AXIS, VECPOINT
# CANNOT CORRECT FOR A CROSS-PRODUCT ROTATION INTO GIMBAL LOCK.  IN THIS CASE A PLATFORM REALIGNMENT WOULD BE
# REQUIRED TO POINT THE VECTOR IN THE DESIRED DIRECTION.  AT PRESENT NO INDICATION IS GIVEN FOR THIS SITUATION
# EXCEPT THAT THE FINAL MIDDLE GIMBAL ANGLE IN MPAC +2 IS GREATER THAN 59 DEGREES.
#
#          CALLING SEQUENCE -
#              1) LOAD SCAXIS, POINTVSM
#              2) CALL
#                      VECPOINT
#
#          RETURNS WITH
#
#              1) DESIRED OUTER GIMBAL ANGLE IN MPAC
#              2) DESIRED INNER GIMBAL ANGLE IN MPAC +1
#              3) DESIRED MIDDLE GIMBAL ANGLE IN MPAC +2
#
# ERASABLES USED -
#
#     1) SCAXIS           6
#     2) POINTVSM         6
#     3) MIS             18
#     4) DEL             18
#     5) COF              6
#     6) VECQTEMP         1
#     7) ALL OF VAC AREA 43
#
#              TOTAL     99

		SETLOC	VECPT
		BANK
## Page 494
		COUNT*	$$/VECPT
		
		EBANK=	BCDU
		
VECPOINT	STQ	BOV		# SAVE RETURN ADDRESS
			VECQTEMP
			VECLEAR		# AND CLEAR OVFIND
VECLEAR		AXC,2	RTB
			MIS		# READ THE PRESENT CDU ANGLES AND
			READCDUK	# STORE THEM IN PD25, 26, 27
		STCALL	25D
			CDUTODCM	# S/C AXES TO STABLE MEMBER AXES (MIS)
		VLOAD	VXM
			POINTVSM	# RESOLVE THE POINTING DIRECTION VF INTO
			MIS		# INITIAL S/C AXES (VF = POINTVSM)
		UNIT
		STORE	28D
					# PD 28 29 30 31 32 33
		VXV	UNIT		# TAKE THE CROSS PRODUCT VF X VI
			SCAXIS		# WHERE VI = SCAXIS
		BOV	VCOMP
			PICKAXIS
		STODL	COF		# CHECK MAGNITUDE
			36D		# OF CROSS PRODUCT
		DSU	BMN		# VECTOR, IF LESS
			DPB-14		# THAN B-14 ASSUME
			PICKAXIS	# UNIT OPERATION
		VLOAD	DOT		#          INVALID.
			SCAXIS
			28D
		SL1	ARCCOS
COMPMATX	CALL			# NOW COMPUTE THE TRANSFORMATION FROM
			DELCOMP		# FINAL S/C AXES TO INITIAL S/C AXES  MFI
		AXC,1	AXC,2
			MIS		# COMPUTE THE TRANSFORMATION FROM FINAL
			KEL		# S/C AXES TO STABLE MEMBER AXES
		CALL			# MFS = MIS MFI
			MXM3		# (IN PD LIST)
			
		DLOAD	ABS
			6		# MFS6 = SIN(CPSI)			$2
		DSU	BMN
			SINGIMLC	# = SIN(59 DEGS)			$2
			FINDGIMB	# /CPSI/ LESS THAN 59 DEGS
					# I.E. DESIRED ATTITUDE NOT IN GIMBAL LOCK
					
		DLOAD	ABS		# CHECK TO SEE IF WE ARE POINTING
			SCAXIS		# THE THRUST AXIS
		DSU	BPL
			SINVEC1		# SIN 49.4 DEGS				$2
## Page 495
			FINDGIMB	# IF SO, WE ARE TRYING TO POINT IT INTO
		VLOAD			# GIMBAL LOCK, ABORT COULD GO HERE
		STADR
		STOVL	MIS +12D
		STADR			# STORE MFS (IN PD LIST) IN MIS
		STOVL	MIS +6
		STADR
		STOVL	MIS
			MIS +6          # INNER GIMBAL AXIS IN FINAL S/C AXES
		BPL	VCOMP		# LOCATE THE IG AXIS DIRECTION CLOSEST TO
			IGSAMEX		# FINAL X S/C AXIS
			
IGSAMEX		VXV	BMN		# FIND THE SHORTEST WAY OF ROTATING THE 
			SCAXIS		# S/C OUT OF GIMBAL LOCK BY A ROTATION 
			U=SCAXIS	# ABOUT +- SCAXIS, I.E. IF  (IG (SGN MFS3)
					# X SCAXIS . XF) LESS THAN 0, U = SCAXIS
					# OTHERWISE U = -SCAXIS
					
		VLOAD	VCOMP
			SCAXIS
		STCALL	COF		# ROTATE ABOUT -SCAXIS
			CHEKAXIS
U=SCAXIS	VLOAD
			SCAXIS
		STORE	COF		# ROTATE ABOUT + SCAXIS
CHEKAXIS	DLOAD	ABS
			SCAXIS		# SEE IF WE ARE POINTING THE AOT
		DSU	BPL
			SINVEC2		# SIN 29.5 DEGS				$2
			PICKANG1	# IF SO, ROTATE 50 DEGS ABOUT +- SCAXIS
		DLOAD	GOTO		# IF NOT, MUST BE POINTING THE TRANSPONDER
			VECANG2		# OR SOME VECTOR IN THE Y, OR Z PLANE
			COMPMFSN	# IN THIS CASE ROTATE 35 DEGS TO GET OUT
					# OF GIMBAL LOCK (VECANG2  $360)
PICKANG1	DLOAD
			VECANG1		# = 50 DEGS				$360
COMPMFSN	CALL
			DELCOMP		# COMPUTE THE ROTATION ABOUT SCAXIS TO
		AXC,1	AXC,2		# BRING MFS OUT OF GIMBAL LOCK
			MIS
			KEL
		CALL			# COMPUTE THE NEW TRANSFORMATION FROM
			MXM3		# DESIRED S/C AXES TO STABLE MEMBER AXES
					# WHICH WILL ALIGN VI WITH VF AND AVOID
					# GIMBAL LOCK
FINDGIMB	AXC,1	CALL
			0		# EXTRACT THE COMMANDED CDU ANGLES FROM
			DCMTOCDU	# THIS MATRIX
		RTB	SETPD
			V1STO2S		# CONVERT TO 2:S COMPLEMENT
## Page 496
			0
		GOTO
			VECQTEMP	# RETURN TO CALLER
			
PICKAXIS	VLOAD	DOT		# IF VF X VI = 0, FIND VF . VI
			28D
			SCAXIS
		BMN	TLOAD
			ROT180
			25D
		GOTO			# IF VF = VI, CDU DESIRED = PRESENT CDU
			VECQTEMP	# PRESENT CDU ANGLES
			
		BANK	35
		SETLOC	MANUVER1
		BANK
ROT180		VLOAD	VXV		# IF VF, VI ANTIPARALLEL, 108 DEG ROTATION
			MIS 	+6	# IS REQUIRED. Y STABLE MEMBER AXIS IN
			HIDPHALF	# INITIAL S/C AXES.
		UNIT	VXV		# FIND Y(SM) X X(I)
			SCAXIS		# FIND UNIT(VI X UNIT(Y(SM) X X(I)))
		UNIT	BOV		# I.E. PICK A VECTOR IN THE PLANE OF X(I),
			PICKX		# Y(SM) PERPENDICULAR TO VI
		STODL	COF
			36D		# CHECK MAGNITUDE
		DSU	BMN		# OF THIS VECTOR.
			DPB-14		# IF LESS THAN B-14,
			PICKX		# PICK X-AXIS.
		VLOAD
			COF
XROT		STODL	COF
			HIDPHALF
		GOTO
			COMPMATX
PICKX		VLOAD	GOTO		# PICK THE XAXIS IN THIS CASE
			HIDPHALF
			XROT
SINGIMLC	2DEC	.4285836003	# = SIN(59)				$2

SINVEC1		2DEC	.3796356537	# = SIN(49.4)				$2

SINVEC2		2DEC	.2462117800	# = SIN(29.5)				$2

VECANG1		2DEC	.1388888889	# = 50 DEGREES				$360

VECANG2		2DEC	.09722222222	# = 35 DEGREES				$360

1BITDP		OCT	0		# KEEP THIS BEFORE DPB(-14)	   *********
DPB-14		OCT	00001
		OCT	00000
		
## Page 497
# ROUTINE FOR INITIATING AUTOMATIC MANEUVER VIA KEYBOARD (V49)

		BANK	34
		SETLOC	R62
		BANK
		EBANK=	BCDU
		
		COUNT*	$$/R62
		
R62DISP		EQUALS	R62FLASH

R62FLASH	CAF	V06N22		# FLASH V06N22 AND
		TC	BANKCALL	# ICDU ANGLES
		CADR	GOFLASH
		TCF	ENDEXT		# TERMINATE
		TCF	GOMOVE		# PROCEED
		TCF	R62FLASH	# ENTER
		
					# ASTRONAUT MAY LOAD NEW ICDUS AT THIS
					# POINT
GOMOVE		TC	UPFLAG		# SET FOR 3-AXIS MANEUVER
		ADRES	3AXISFLG
		
		TC	BANKCALL
		CADR	R60LEM
		TCF	ENDEXT		# END R62
		
back to top