Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Asm/Apollo-11/Luminary099/     Datei vom 11.9.2026 mit Größe 19 kB image not shown  

SSL INFLIGHT_ALIGNMENT_ROUTINES.agc   Sprache: Apollo

 

# 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-061
# 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 DP 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)


Messung V0.5 in Prozent
C=52 H=100 G=79

¤ Dauer der Verarbeitung: 1.353 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.