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

Quellcode-Bibliothek 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
  # 00605  NUMBER OF ITERATIONS EXCEEDS LOOP MAXIMUM P32,P72,P37# 00606 DV EXCEEDS MAXIMUM P32,P72                 VARALARM

  # 00607      * NO SOLN FROM TIME-THETA OR TIME-RADIUS  TIMETHET,TIMERAD                 # Page 24

# 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  # 00777 PIPA FAIL CAUSED ISS WARNING. T4RUPT                 VARALARM
   S2  # XDC = (XD1 XD2 XD3)
   XDC  # 01103      * UNUSED CCS BRANCH EXECUTED ABORT                 POODOO
  PDDL PDDL  # 01104      * DELAY ROUTINE BUSY EXEC                 BAILOUT
   HI6ZEROS
   XDC  +4
  DCOMP VDEF# 01105 DOWNLINK TOO FAST T4RUPT                 ALARM
  UNIT
  STODL ZPRIME  # ZP = UNIT(-XD3 0 XD1) = (ZP1 ZP2 ZP3)# 01106 UPLINK TOO FAST T4RUPT                 ALARM
   ZPRIME

  SR1
  STODL SINTH  # SIN(IGC) = ZP1
#  ERASABLE MEMORY IS DESTROYED
  SR1
  # 01201      * EXECUTIVE OVERFLOW-NO VAC AREAS          EXEC                   BAILOUT
   ARCTRIG

  STODL IGC  # Y GYRO TORQUING ANGLE   FRACTION OF REV.
   XDC  +2
  SR1
  STODL SINTH  # SIN(MGC) = XD2
   ZPRIME

  DMP PDDL
   XDC # 01204      * NEGATIVE OR ZERO WAITLIST CALL WAITLIST                 POODOO
   ZPRIME    * SECOND JOB ATTEMPTS TO GO TO SLEEP  PINBALL                   POODOO

  DMP DSU
   XDC  # MPAC = (ZP3)(XD1)
  STADR
  STCALL # 01207      * NO VAC AREA FOR MARKS    SXTMARK                   BAILOUT
   ARCTRIG
# Page 1250
  STOVL MGC  # Z GYRO TORQUING ANGLE   FRACTION OF REV.
   ZPRIME
  DOT
   # 01211      * ILLEGAL INTERRUPT OF EXTENDED VERB  SXTMARK                   BAILOUT
  STOVL COSTH  # COS(OGC) = ZP . ZDC
   ZPRIME
  # 01302      * SQRT CALLED WITH NEGATIVE ARGUMENT.ABORT INTERPRETER                  POODOO
   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 # 01502      * ILLEGAL FLASHING DISPLAY   GOPLAY                   POODOO
   SINTH
  DSU BMN
   QTSN45  # ABS(SIN/4) - SIN(45)/4
   TRIG1  # IF (-45,45) OR (135,-135)

  DLOAD SL1  # (45,135) OR (-135,-45)
   # 01600  OVERFLOW IN DRIFT TEST    OPT PRE ALIGN CALIB                 ALARM
  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
   # 03777  ICDU FAIL CAUSED THE ISS WARNING  T4RUPT                   VARALARM

  DLOAD RVQ
   THETA  # X = ARCSIN(SIN)   (-45,45)

TRIG2# 07777  IMU FAIL CAUSED THE ISS WARNING   T4RUPT                   VARALARM
   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)#               PLEASE REPORT ANY DEFICIENCIES IN THIS LIST TO JOHN SUTHERLAND
   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
 #
   ARCTRIG
  STOVL # 00014  KEY IN  FINE ALIGNMENT OPTION
   0

  VXV DOT  # PROVISION FOR MG ANGLE OF 90 DEGREES
   XNB
   YSM
  SL1
  # 00041  SWITCH  CM/SM SEPARATION TO UP
   YSM
  DOT
   XNB
  STCALL # 00202 PERFORM  GNCS AUTOMATIC MANEUVER
   # 00203  SWITCH  TO CMC-AUTO
  STORE MGC

  ABS DSU
   .# 00403  SWITCH  OPTICS TO MANUAL OR ZERO
  #                   SWITCH DENOTES CHANGE POSITION OF A CONSOLE SWITCH
   GIMLOCK1 # IF ANGLE GREATER THAN 60 DEGREES#                   PERFORM DENOTES START OR END OF A TASK

#                    KEY IN DENOTES KEY IN OF DATA THRU THE DSKY
   ZSM
   0
  STOVL COSTH  # COS(IG) = ZSM . MGA
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# Page 1254
  DOT STADR
  STCALL SINTH  # SIN(IG) = XSM . MGA
  # OPTION

  STOVL IGC
   OGC# CODE PURPOSE INPUT FOR COMPONENT 2 PROGRAM(S) APPLICABILITY
  RTB
   java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
  STCALL THETAD
   S2

# 00003  SPECIFY TRACKING ATTITUDE  1=PREFERRED 2=OTHER  R63  ALL
  TC ALARM
  OCT 00401
  TC UPFLAG  # GIMBAL LOCK HAS OCCURRED
  00006  SPECIFY RR COARSE ALIGN OPTION  1=LOCKON 2=CONTINUOUS DESIG. V41N72  SUNDANCE# 00007 SPECIFY PROPULSION SYSTEM 1=SPS 2=RCS P37 COLOSSUS

  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

¤ 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.1.594Bemerkung:  ¤

*Bot Zugriff






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.