Initial commit of source code.
This commit is contained in:
		
							
								
								
									
										302
									
								
								CM_BODY_ATTITUDE.s
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										302
									
								
								CM_BODY_ATTITUDE.s
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,302 @@ | ||||
| # Copyright:    Public domain. | ||||
| # Filename:     CM_BODY_ATTITUDE.s | ||||
| # Purpose:      Part of the source code for Comanche, build 055. It | ||||
| #               is part of the source code for the Command Module's | ||||
| #               (CM) Apollo Guidance Computer (AGC), Apollo 11. | ||||
| # Assembler:    yaYUL | ||||
| # Reference:    pp. 883-889 | ||||
| # Contact:      Ron Burkey <info@sandroid.org> | ||||
| # Website:      http://www.ibiblio.org/apollo. | ||||
| # Mod history:  2009-05-12 RSB	Adapted from Colossus249 file of the same | ||||
| #				name and Comanche 055 page images. | ||||
| # | ||||
| # The contents of the "Comanche055" files, in general, are transcribed  | ||||
| # from scanned documents.  | ||||
| # | ||||
| #       Assemble revision 055 of AGC program Comanche by NASA | ||||
| #       2021113-051.  April 1, 1969.   | ||||
| # | ||||
| #       This AGC program shall also be referred to as Colossus 2A | ||||
| # | ||||
| #       Prepared by | ||||
| #                       Massachussets Institute of Technology | ||||
| #                       75 Cambridge Parkway | ||||
| #                       Cambridge, Massachusetts | ||||
| # | ||||
| #       under NASA contract NAS 9-4065. | ||||
| # | ||||
| # Refer directly to the online document mentioned above for further | ||||
| # information.  Please report any errors to info@sandroid.org. | ||||
|  | ||||
| # Page 883 | ||||
| 		BANK	35 | ||||
| 		 | ||||
| 		SETLOC	BODYATT | ||||
| 		BANK | ||||
| 		 | ||||
| 		COUNT	37/CMBAT | ||||
| 		 | ||||
| # PDL 12D - 15D SAFE. | ||||
|  | ||||
| # VALUE OF GIMBAL AND BODY ANGLES VALID AT PIP TIME ARE SAVED DURING  READACCS. | ||||
|  | ||||
| 		EBANK=	RTINIT		# LET INTERPRETER SET EB | ||||
| 		 | ||||
| CM/POSE		TC	INTPRET		# COME HERE VIA AVEGEXIT. | ||||
|  | ||||
| 		SETPD	VLOAD | ||||
| 			0 | ||||
| 			VN		# KVSCALE = (12800/ .3048) /2VS | ||||
| 		VXSC	PDVL | ||||
| 			-KVSCALE	# KVSCALE = .81491944 | ||||
| 			UNITW		# FULL UNIT VECTOR | ||||
| 		VXV	VXSC		# VREL = V - WE*R | ||||
| 			UNITR | ||||
| 			KWE | ||||
| 		VAD	STADR | ||||
| 		STORE	-VREL		# SAVE FOR ENTRY GUIDANCE.	REF COORDS | ||||
| 		 | ||||
| 		UNIT	LXA,1 | ||||
| 			36D		# ABVAL( -VREL) TO X1 | ||||
| 		STORE	UXA/2		# -UVREL			REF COORDS | ||||
| 		 | ||||
| 		VXV	VCOMP | ||||
| 			UNITR		# .5 UNIT			REF COORDS | ||||
| 		UNIT	SSP		# THE FOLLOWING IS TO PROVIDE A STABLE | ||||
| 			S1		# UN FOR THE END OF THE TERMINAL PHASE. | ||||
| SPVQUIT		DEC	.019405		# 1000/ 2 VS | ||||
| 		TIX,1	VLOAD		# IF V-VQUIT POS, BRANCH. | ||||
| 			CM/POSE2	# SAME UYA IN OLDUYA | ||||
| 			OLDUYA		# OTHERWISE CONTINUE TO USE OLDUYA | ||||
| CM/POSE2	STORE	UYA/2		#				REF COORDS | ||||
|  | ||||
| 		STORE	OLDUYA		# RESTORE, OR SAVE AS CASE MAY BE. | ||||
| 		 | ||||
| 		VXV	VCOMP | ||||
| 			UXA/2		# FINISH OBTAINING TRAJECTORY TRIAD. | ||||
| 		VSL1 | ||||
| 		STORE	UZA/2		#				REF COORDS | ||||
| # Page 884 | ||||
| 		TLOAD			# PICK UP CDUX, CDUY, CDUZ CORRESPONDING | ||||
| 			AOG/PIP		# TO PIPUP TIME IN 2'S C AND SAVE. | ||||
| CM/TRIO		STODL	24D | ||||
| 			25D		# AIG/PIP | ||||
| 			 | ||||
| 		RTB	PUSH		# TO PDL0 | ||||
| 			CDULOGIC | ||||
| 		COS | ||||
| 		STODL	UBX/2		# CI /2 | ||||
| 					# AIG/PIP FROM PDL 0 | ||||
| 		SIN	DCOMP | ||||
| 		STODL	UBX/2 +4	# -SI /2 | ||||
| 			26D		# AMG/PIP | ||||
| 		RTB	PUSH		# TO PDL 0 | ||||
| 			CDULOGIC	 | ||||
| 		SIN	PDDL		# XCH PDL 0.  SAVE SM /2 | ||||
| 		COS	PDDL		# CM /2 TO PDL 2 | ||||
| 			0		# SM /2 | ||||
| 		DCOMP	VXSC | ||||
| 			UBX/2 | ||||
| 		VSL1			# NOISE WON'T OVFL | ||||
| 		STODL	UBY/2		# =(-SMCI, NOISE, SMSI)/2 | ||||
| 			2		# CM /2 REPLACES NOISE | ||||
| 		STODL	UBY/2 +2	# UBY/2=(-SMCI, CM, SMSI)/2 | ||||
| 			24D		# AOG/PIP | ||||
| 		RTB	PUSH		# TO PDL 4 | ||||
| 			CDULOGIC | ||||
| 		SIN	PDDL		# XCH PDL 4.  SAVE SO /2 | ||||
| 		COS	VXSC		# CO /2 | ||||
| 			UBY/2 | ||||
| 		STODL	UBY/2		# UBY/2=(-COSMCI, COCM, COSMSI)/4 | ||||
| 			4D		# SO /2 | ||||
| 		DMP	DCOMP | ||||
| 			UBX/2 +4	# -SI /2 | ||||
| 		DAD | ||||
| 			UBY/2		# INCREMENT BY (SOSI /4) | ||||
| 		STODL	UBY/2 | ||||
| 					# SO /2 FROM PDL 4 | ||||
| 		DMP	DAD | ||||
| 			UBX/2		# CI /2 | ||||
| 			UBY/2 +4 | ||||
| 		STOVL	UBY/2 +4	# YB/4				PLATFORM COORDS | ||||
| 		 | ||||
| 					# YB = (-COSMCI + SOSI , COCM , COSMSI + SOCI ) | ||||
| 					 | ||||
| 			UBY/2 | ||||
| 		VXM	VSL2 | ||||
| 			REFSMMAT	# .5 UNIT | ||||
| 		STODL	UBY/2		# YB/2 DONE			REF COORDS | ||||
| # Page 885 | ||||
| 					# CM /2 FROM PDL 2 | ||||
| 		VXSC	VSL1 | ||||
| 			UBX/2 | ||||
| 		STODL	UBX/2		# =( CMCI, NOISE, -CMSI)/2 | ||||
| 		STADR			# SM /2 FROM PDL 0 | ||||
| 		STOVL	UBX/2 +2	# SM /2 REPLACES NOISE | ||||
| 			UBX/2		# XB/2				PLATFORM COORDS | ||||
| 			 | ||||
| 					# XB = ( CMCI , SM , -CMSI ) | ||||
| 					 | ||||
| 		VXM	VSL1 | ||||
| 			REFSMMAT	# .5 UNIT | ||||
| 		STORE	UBX/2		# XB/2 DONE			REF COORDS | ||||
| 		 | ||||
| 		VXV	VSL1 | ||||
| 			UBY/2 | ||||
| 		STOVL	UBZ/2		# ZB/2 DONE			REF COORDS | ||||
| 		 | ||||
| 					# EQUIVALENT TO | ||||
| 					# ZB = ( SOSMCI + COSI , -SOCM , -SOSMSI + COCI ) | ||||
| 					 | ||||
| 			UXA/2		# -UVREL/2 = -UVA/2 | ||||
| 		VXV	UNIT		# GET UNIT(-UVREL*UBY)/2 = UL/2 | ||||
| 			UBY/2		# YB/2 | ||||
| 		PUSH	DOT		# UL/2 TO PDL 0,5 | ||||
| 			UZA/2		# UNA/2 | ||||
| 		STOVL	COSTH		# COS(ROLL)/4 | ||||
| 			0		# UL/2 | ||||
| 			 | ||||
| 		DOT | ||||
| 			UYA/2 | ||||
| 		STCALL	SINTH		# -SIN(ROLL)/4 | ||||
| 			ARCTRIG | ||||
| 		STOVL	6D		# -(ROLL/180) /2 | ||||
| 			UBY/2 | ||||
| 		DOT	SL1		# -UVA.UBY = -SIN(BETA) | ||||
| 			UXA/2		# -UVREL/2 | ||||
| 		ARCSIN | ||||
| 		STOVL	7D		# -(BETA/180) /2 | ||||
| 			UBX/2		# XB/2 | ||||
| 		DOT			# UL.UBX = -SIN(ALFA) | ||||
| 			0		# UL/2 | ||||
| 		STOVL	SINTH		# -SIN(ALFA)/4 | ||||
| 		DOT			# UL/2 FROM PDL 0 | ||||
| 			UBZ/2 | ||||
| 		STCALL	COSTH		# COS(ALFA)/2 | ||||
| 			ARCTRIG | ||||
| 		STOVL	8D		# -(ALFA/180) /2 | ||||
| 			UNITR		# UR/2				REF COORDS | ||||
| 		DOT	SL1 | ||||
| # Page 886 | ||||
| 			UZA/2		# MORE ACCURATE AT LARGE ARG. | ||||
| 		ARCCOS | ||||
| 		STORE	10D		# (-GAMA/180)/2 | ||||
| 		 | ||||
| 		TLOAD	EXIT		# ANGLES IN MPAC IN THE ORDER | ||||
| 					# -( (ROLL, BETA, ALFA) /180)/2 | ||||
| 			6D		# THESE VALUES CORRECT AT PIPUP TIME. | ||||
|  | ||||
| # Page 887 | ||||
| # BASIC SUBROUTINE TO UPDATE ATTITUDE ANGLES | ||||
|  | ||||
| 		EBANK=	AOG | ||||
| 		 | ||||
| CM/ATUP		CA	EBAOG | ||||
| 		TS	EBANK | ||||
| CMTR1		INDEX	FIXLOC | ||||
| 		CS	10D		# (GAMA/180)/2 | ||||
| 		XCH	GAMA | ||||
| 		TS	L | ||||
| 		 | ||||
| 		INHINT | ||||
| 					# MUST REMAIN INHINTED UNTIL UPDATE OF BODY | ||||
| 					# ANGLES, SO THAT GAMDIFSW IS VALID FIRST PASS | ||||
| 					# INDICATOR. | ||||
| 					 | ||||
| 		CS	CM/FLAGS | ||||
| 		MASK	BIT11		# GAMDIFSW=94D BIT11	INITLY=0 | ||||
| 		EXTEND			# DON'T CALC GAMA DOT UNTIL HAVE FORMD | ||||
| 					# ONE DIFFERENCE. | ||||
| 		BZF	DOGAMDOT	# IS OK, GO ON. | ||||
| 		ADS	CM/FLAGS	# KNOW BIT IS 0 | ||||
| 		TC	NOGAMDOT	# SET GAMDOT = 0 | ||||
| 		 | ||||
| DOGAMDOT	CS	L | ||||
| 		AD	GAMA		# DEL GAMA/360= T GAMDOT/360 | ||||
| 		EXTEND | ||||
| 		MP	TCDU		# TCDU = .1 SEC, T = 2 SEC. | ||||
| 		TS	GAMDOT		# GAMA DOT TCDU / 180 | ||||
| 		 | ||||
| 		EXTEND			# IGNORE GAMDOT IF LEQ .5 DEG/SEC | ||||
| 		BZMF	+2 | ||||
| 		COM | ||||
| 		AD	FIVE | ||||
| 		EXTEND | ||||
| 		BZMF	+3		# SET GAMDOT=+0 AS TAG IF TOO SMALL. | ||||
| 		 | ||||
| NOGAMDOT	CA	ZERO		# COME HERE INHINTED | ||||
| 		TS	GAMDOT | ||||
| 					# FOR NOW LEAVE IN 2'S C | ||||
| 					# UPDATE ANGLES BY CORRECTING EULER ANG | ||||
| 					# FOR ACCRUED INCREMENT SINCE PIPUP | ||||
| 					# R = R EUIL + R(NOW) - R(PIPUP) | ||||
| 		CS	MPAC		# GET (R EUL/180) /2 | ||||
| 		DOUBLE			# POSSIBLE OVERFLOW | ||||
| 		TC	CORANGOV	# CORRECT FOR OVFL IF ANY | ||||
| 		EXTEND | ||||
| 		SU	ROLL/PIP	# GET INCR SINCE PIPUP | ||||
| 		AD	ROLL/180	# ONLY SINGLE OVFL POSSIBLE. | ||||
| 		TC	CORANGOV	# CORRECT FOR OVFL IF ANY | ||||
| # Page 888 | ||||
| 		TS	TEMPROLL | ||||
| 		 | ||||
| 		CS	MPAC +2		# GET (ALFA EUL/180) /2 | ||||
| 		DOUBLE			# SAME AS FOR ROLL.  NEEDED FOR EXT ATM DAP | ||||
| 		TC	CORANGOV	# CORRECT FOR OVFL IF ANY | ||||
| 		EXTEND | ||||
| 		SU	ALFA/PIP | ||||
| 		AD	ALFA/180 | ||||
| 		TC	CORANGOV	# CORRECT FOR OVFL IF ANY | ||||
| 		TS	TEMPALFA | ||||
| 		 | ||||
| 		CS	MPAC +1		# GET (BETA EUL/180) /2 | ||||
| CMTR2		DOUBLE | ||||
| 		EXTEND | ||||
| 		SU	BETA/PIP | ||||
| 		AD	BETA/180 | ||||
| 		XCH	TEMPBETA	# OVFL NOT EXPECTED. | ||||
| 		 | ||||
| 		CA	EBANK3 | ||||
| 		TS	EBANK | ||||
| 		 | ||||
| 		EBANK=	PHSNAME5 | ||||
| 		EXTEND | ||||
| 		DCA	REPOSADR	# THIS ASSUMES THAT THE		TC  PHASCHNG | ||||
| 		DXCH	PHSNAME5	# IS NOT CHANGED IN		OCT 10035 | ||||
| 					# SERVICER. | ||||
| 					 | ||||
| 		CA	EBAOG | ||||
| 		TS	EBANK | ||||
| 		 | ||||
| 		EBANK=	AOG | ||||
| REDOPOSE	EXTEND			# RE-STARTS COME HERE | ||||
| 		DCA	TEMPROLL | ||||
| 		DXCH	ROLL/180 | ||||
| 		CA	TEMPBETA | ||||
| 		TS	BETA/180 | ||||
| 		 | ||||
| 		RELINT | ||||
| 		 | ||||
| 		TC	INTPRET		# CAN'T TC DANZIG AFTER PHASCHNG. | ||||
| CM/POSE3	VLOAD	ABVAL		# RETURN FROM CM/ATUP.	(RESTART) | ||||
| 			VN		# 2(-7) M/CS | ||||
| 		STORE	VMAGI		# FOR DISPLAY ON CALL. | ||||
| 		 | ||||
| 		GOTO | ||||
| 			POSEXIT		# ENDEXIT, STARTENT, OR SCALEPOP. | ||||
| 			 | ||||
| CORANGOV	TS	L | ||||
| 		TC	Q | ||||
| 		INDEX	A | ||||
| # Page 889 | ||||
| 		CA	LIMITS | ||||
| 		ADS	L | ||||
| 		TC	Q		# COSTS 2 MCT TO USE.  SEE ANGOVCOR. | ||||
| 		 | ||||
| -KVSCALE	2DEC	-.81491944	# -12800/(2 VS .3048) | ||||
|  | ||||
| TCDU		DEC	.1		# TCDU = .1 SEC. | ||||
|  | ||||
| 		EBANK=	AOG | ||||
| REPOSADR	2CADR	REDOPOSE | ||||
|  | ||||
							
								
								
									
										1474
									
								
								LUNAR_LANDING_GUIDANCE_EQUATIONS.s
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1474
									
								
								LUNAR_LANDING_GUIDANCE_EQUATIONS.s
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user