Initial commit of source code.
This commit is contained in:
parent
a6f6fe22e1
commit
491ec007d6
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
Loading…
Reference in New Issue
Block a user