missing Luminary099 files retrieved from virtualagc at https://github.com/rburkey2005/virtualagc/tree/master/Luminary099
This commit is contained in:
300
Luminary099/INFLIGHT_ALIGNMENT_ROUTINES.agc
Normal file
300
Luminary099/INFLIGHT_ALIGNMENT_ROUTINES.agc
Normal file
@ -0,0 +1,300 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INFLIGHT_ALIGNMENT_ROUTINES.agc
|
||||
# Purpose: Part of the source code for Luminary 1A build 099.
|
||||
# It is part of the source code for the Lunar Module's (LM)
|
||||
# Apollo Guidance Computer (AGC), for Apollo 11.
|
||||
# Assembler: yaYUL
|
||||
# Contact: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1249-1258
|
||||
# Mod history: 2009-05-26 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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 001 of AGC program LMY99 by NASA 2021112-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1249
|
||||
BANK 22
|
||||
SETLOC INFLIGHT
|
||||
BANK
|
||||
|
||||
EBANK= XSM
|
||||
|
||||
# CALCGTA COMPUTES THE GYRO TORQUE ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
|
||||
#
|
||||
# THE INPUT IS THE DESIRED STABLE MEMBER COORDINATES REFERRED TO PRESENT STABLE MEMBER COORDINATES. THE THREE
|
||||
# HALF-UNIT VECTORS ARE STORED AT XDC, YDC, AND ZDC.
|
||||
#
|
||||
# THE OUTPUTS ARE THE THREE GYRO TORQUE ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC,
|
||||
# MGC, AND OGC RESPECTIVELY.
|
||||
|
||||
COUNT* $$/INFLT
|
||||
CALCGTA ITA DLOAD # PUSHDOWN 00-03, 16D-27D, 34D-37D
|
||||
S2 # XDC = (XD1 XD2 XD3)
|
||||
XDC # YDC = (YD1 YD2 YD3)
|
||||
PDDL PDDL # ZDC = (ZD1 ZD2 ZD3)
|
||||
HI6ZEROS
|
||||
XDC +4
|
||||
DCOMP VDEF
|
||||
UNIT
|
||||
STODL ZPRIME # ZP = UNIT(-XD3 0 XD1) = (ZP1 ZP2 ZP3)
|
||||
ZPRIME
|
||||
|
||||
SR1
|
||||
STODL SINTH # SIN(IGC) = ZP1
|
||||
ZPRIME +4
|
||||
SR1
|
||||
STCALL COSTH # COS(IGC) = ZP3
|
||||
ARCTRIG
|
||||
|
||||
STODL IGC # Y GYRO TORQUING ANGLE FRACTION OF REV.
|
||||
XDC +2
|
||||
SR1
|
||||
STODL SINTH # SIN(MGC) = XD2
|
||||
ZPRIME
|
||||
|
||||
DMP PDDL
|
||||
XDC +4 # PD00 = (ZP1)(XD3)
|
||||
ZPRIME +4
|
||||
|
||||
DMP DSU
|
||||
XDC # MPAC = (ZP3)(XD1)
|
||||
STADR
|
||||
STCALL COSTH # COS(MGC) = MPAC - PD00
|
||||
ARCTRIG
|
||||
# Page 1250
|
||||
STOVL MGC # Z GYRO TORQUING ANGLE FRACTION OF REV.
|
||||
ZPRIME
|
||||
DOT
|
||||
ZDC
|
||||
STOVL COSTH # COS(OGC) = ZP . ZDC
|
||||
ZPRIME
|
||||
DOT
|
||||
YDC
|
||||
STCALL SINTH # SIN(OGC) = ZP . YDC
|
||||
ARCTRIG
|
||||
|
||||
STCALL OGC # X GYRO TORQUING ANGLE FRACTION OF REV.
|
||||
S2
|
||||
|
||||
# Page 1251
|
||||
# ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE.
|
||||
#
|
||||
# THE INPUTS ARE SIN/4 AND COS/4 STORED UP AT SINTH AND COSTH.
|
||||
#
|
||||
# THE OUTPUT IS THE CALCULATED ANGLE BETWEEN +.5 AND -.5 REVOLUTIONS AND STORED AT THETA. THE OUTPUT IS ALSO
|
||||
# AVAILABLE AT MPAC.
|
||||
|
||||
ARCTRIG DLOAD ABS # PUSHDOWN 16D-21D
|
||||
SINTH
|
||||
DSU BMN
|
||||
QTSN45 # ABS(SIN/4) - SIN(45)/4
|
||||
TRIG1 # IF (-45,45) OR (135,-135)
|
||||
|
||||
DLOAD SL1 # (45,135) OR (-135,-45)
|
||||
COSTH
|
||||
ACOS SIGN
|
||||
SINTH
|
||||
STORE THETA # X = ARCCOS(COS) WITH SIGN(SIN)
|
||||
RVQ
|
||||
|
||||
TRIG1 DLOAD SL1 # (-45,45) OR (135,-135)
|
||||
SINTH
|
||||
ASIN
|
||||
STODL THETA # X = ARCSIN(SIN) WITH SIGN(SIN)
|
||||
COSTH
|
||||
BMN
|
||||
TRIG2 # IF (135,-135)
|
||||
|
||||
DLOAD RVQ
|
||||
THETA # X = ARCSIN(SIN) (-45,45)
|
||||
|
||||
TRIG2 DLOAD SIGN # (135,-135)
|
||||
HIDPHALF
|
||||
SINTH
|
||||
DSU
|
||||
THETA
|
||||
STORE THETA # X = .5 WITH SIGN(SIN) - ARCSIN(SIN)
|
||||
RVQ # (+) - (+) OR (-) - (-)
|
||||
|
||||
# Page 1252
|
||||
# SMNB, NBSM, AND AXISROT, WHICH USED TO APPEAR HERE, HAVE BEEN
|
||||
# COMBINED IN A ROUTINE CALLED AX*SR*T, WHICH APPEARS AMONG THE POWERED
|
||||
# FLIGHT SUBROUTINES.
|
||||
|
||||
# Page 1253
|
||||
# CALCGA COMPUTES THE CDU DRIVING ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
|
||||
#
|
||||
# THE INPUTS ARE 1) THE NAVIGATION BASE COORDINATES REFERRED TO ANY COORDINATE SYSTEM. THE THREE HALF-UNIT
|
||||
# VECTORS ARE STORED AT XNB, YNB, AND ZNB. 2) THE DESIRED STABLE MEMBER COORDINATES REFERRED TO THE SAME
|
||||
# COORDINATE SYSTEM ARE STORED AT XSM, YSM, AND ZSM.
|
||||
#
|
||||
# THE OUTPUTS ARE THE THREE CDU DRIVING ANGLES AND ARE STORED SP AT THETAD, THETAD +1, AND THETAD +2.
|
||||
|
||||
CALCGA SETPD # PUSHDOWN 00-05, 16D-21D, 34D-37D
|
||||
0
|
||||
VLOAD VXV
|
||||
XNB # XNB = OGA (OUTER GIMBAL AXIS)
|
||||
YSM # YSM = IGA (INNER GIMBAL AXIS)
|
||||
UNIT PUSH # PD0 = UNIT(OGA X IGA) = MGA
|
||||
|
||||
DOT ITA
|
||||
ZNB
|
||||
S2
|
||||
STOVL COSTH # COS(OG) = MGA . ZNB
|
||||
0
|
||||
DOT
|
||||
YNB
|
||||
STCALL SINTH # SIN(OG) = MGA . YNB
|
||||
ARCTRIG
|
||||
STOVL OGC
|
||||
0
|
||||
|
||||
VXV DOT # PROVISION FOR MG ANGLE OF 90 DEGREES
|
||||
XNB
|
||||
YSM
|
||||
SL1
|
||||
STOVL COSTH # COS(MG) = IGA . (MGA X OGA)
|
||||
YSM
|
||||
DOT
|
||||
XNB
|
||||
STCALL SINTH # SIN(MG) = IGA . OGA
|
||||
ARCTRIG
|
||||
STORE MGC
|
||||
|
||||
ABS DSU
|
||||
.166...
|
||||
BPL
|
||||
GIMLOCK1 # IF ANGLE GREATER THAN 60 DEGREES
|
||||
|
||||
CALCGA1 VLOAD DOT
|
||||
ZSM
|
||||
0
|
||||
STOVL COSTH # COS(IG) = ZSM . MGA
|
||||
XSM
|
||||
# Page 1254
|
||||
DOT STADR
|
||||
STCALL SINTH # SIN(IG) = XSM . MGA
|
||||
ARCTRIG
|
||||
|
||||
STOVL IGC
|
||||
OGC
|
||||
RTB
|
||||
V1STO2S
|
||||
STCALL THETAD
|
||||
S2
|
||||
|
||||
GIMLOCK1 EXIT
|
||||
TC ALARM
|
||||
OCT 00401
|
||||
TC UPFLAG # GIMBAL LOCK HAS OCCURRED
|
||||
ADRES GLOKFAIL
|
||||
|
||||
TC INTPRET
|
||||
GOTO
|
||||
CALCGA1
|
||||
|
||||
# Page 1255
|
||||
# AXISGEN COMPUTES THE COORDINATES OF ONE COORDINATE SYSTEM REFERRED TO ANOTHER COORDINATE SYSTEM.
|
||||
#
|
||||
# THE INPUTS ARE 1) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM A STORED AT STARAD. 2) THE STAR2 VECTOR
|
||||
# REFERRED TO COORDINATE SYSTEM A STORED AT STARAD +6. 3) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM B STORED
|
||||
# AT LOCATION 6 OF THE VAC AREA. 4) THE STAR2 VECTOR REFERRED TO COORDINATE SYSTEM B STORED AT LOCATION 12D OF
|
||||
# THE VAC AREA.
|
||||
#
|
||||
# THE OUTPUT DEFINES COORDINATE SYSTEM A REFERRED TO COORDINATE SYSTEM B. THE THREE HALF-UNIT VECTORS ARE STORED
|
||||
# AT LOCATIONS XDC, XDC +6, XDC +12D, AND STARAD, STARAD +6, STARAD +12D.
|
||||
|
||||
AXISGEN AXT,1 SSP # PUSHDOWN 00-30D, 34D-37D
|
||||
STARAD +6
|
||||
S1
|
||||
STARAD -6
|
||||
|
||||
SETPD
|
||||
0
|
||||
AXISGEN1 VLOAD* VXV* # 06D UA = S1
|
||||
STARAD +12D,1 # STARAD +00D UB = S1
|
||||
STARAD +18D,1
|
||||
UNIT # 12D VA = UNIT(S1 X S2)
|
||||
STORE STARAD +18D,1 # STARAD +06D VB = UNIT(S1 X S2)
|
||||
VLOAD*
|
||||
STARAD +12D,1
|
||||
|
||||
VXV* VSL1
|
||||
STARAD +18D,1 # 18D WA = UA X VA
|
||||
STORE STARAD +24D,1 # STARAD +12D WB = UB X VB
|
||||
|
||||
TIX,1
|
||||
AXISGEN1
|
||||
|
||||
AXC,1 SXA,1
|
||||
6
|
||||
30D
|
||||
|
||||
AXT,1 SSP
|
||||
18D
|
||||
S1
|
||||
6
|
||||
|
||||
AXT,2 SSP
|
||||
6
|
||||
S2
|
||||
2
|
||||
|
||||
AXISGEN2 XCHX,1 VLOAD*
|
||||
30D # X1=-6 X2=+6 X1=-6 X2=+4 X1=-6 X2=+2
|
||||
0,1
|
||||
|
||||
# Page 1256
|
||||
VXSC* PDVL* # J=(UA)(UB1) J=(UA)(UB2) J=(UA)(UB3)
|
||||
STARAD +6,2
|
||||
6,1
|
||||
VXSC*
|
||||
STARAD +12D,2
|
||||
STOVL* 24D # K=(VA)(VB1) J=(VA)(VB2) J=(VA)(VB3)
|
||||
12D,1
|
||||
|
||||
VXSC* VAD
|
||||
STARAD +18D,2 # L=(WA)(WB1) J=(WA)(WB2) J=(WA)(WB3)
|
||||
VAD VSL1
|
||||
24D
|
||||
XCHX,1 UNIT
|
||||
30D
|
||||
STORE XDC +18D,1 # XDC = L+J+K YDC = L+J+K ZDC = L+J+K
|
||||
|
||||
TIX,1
|
||||
AXISGEN3
|
||||
|
||||
AXISGEN3 TIX,2
|
||||
AXISGEN2
|
||||
|
||||
VLOAD
|
||||
XDC
|
||||
STOVL STARAD
|
||||
YDC
|
||||
STOVL STARAD +6
|
||||
ZDC
|
||||
STORE STARAD +12D
|
||||
|
||||
RVQ
|
||||
|
||||
# Page 1257
|
||||
QTSN45 2DEC .1768
|
||||
|
||||
.166... 2DEC .1666666667
|
||||
|
||||
# Page 1258 (empty page)
|
||||
|
Reference in New Issue
Block a user