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

Quelle  CSM_GEOMETRY.agc   Sprache: Apollo

 

# Copyright: Public domain.
# Filename: CSM_GEOMETRY.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 285-296
# Mod history: 2009-05-08 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# 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 055 of AGC program Comanche by NASA
# 2021113-051.  10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A

# Page 285
  BANK 22
  SETLOC COMGEOM1
  BANK

# THIS ROUTINE TAKES THE SHAFT AND TRUNNION ANGLES AS READ BY THE CM OPTICAL SYSTEM AND CONVERTS THEM INTO A  UNIT
# VECTOR REFERENCED TO THE NAVIGATION BASE COORDINATE SYSTEM AND COINCIDENT WITH THE SEXTANT LINE OF SIGHT.
#
# THE INPUTS ARE  1) THE SEXTANT SHAFT AND TRUNNION ANGLES ARE STORED SP IN LOCATIONS 3 AND 5 RESPECTIVELY OF THE
# MARK VAC AREA.  2) THE COMPLEMENT OF THE BASE ADDRESS OF THE MARK VAC AREA IS STORED SP AT LOCATION X1 OF YOUR
# JOB VAC AREA.
#
# THE OUTPUT IS A HALF-UNIT VECTOR IN NAVIGATION BASE COORDINATES AND STORED AT LOCATION 32D OF THE VAC AREA. THE
# OUTPUT IS ALSO AVAILABLE AT MPAC.


  COUNT 23/GEOM

SXTNB  SLOAD* RTB  # PUSHDOWN  00,02,04,(17D-19D),32D-36D
   5,1  # TRUNNION = TA
   CDULOGIC
  RTB PUSH
   SXTLOGIC
  SIN SL1
  PUSH SLOAD*  # PD2 = SIN(TA)
   3,1  # SHAFT = SA
  RTB PUSH  # PD4 = SA
   CDULOGIC

  COS DMP
   2
  STODL STARM  # COS(SA)SIN(TA)

  SIN DMP
  STADR
  STODL STARM +2 # SIN(SA)SIN(TA)

  COS
  STOVL STARM +4
   STARM  # STARM = 32D
  MXV VSL1
   NB1NB2
  STORE 32D
  RVQ


SXTLOGIC CAF 10DEGS-  # CORRECT FOR 19.775 DEGREE OFFSET
  ADS MPAC
  CAF QUARTER
  TC SHORTMP
  TC DANZIG
# Page 286
# CALCSXA COMPUTES THE SEXTANT SHAFT AND TRUNNION ANGLES REQUIRED TO POSITION THE OPTICS SUCH THAT A STAR LINE-
# OF-SIGHT LIES ALONG THE STAR VECTOR.  THE ROUTINE TAKES THE GIVEN STAR VECTOR AND EXPRESSES IT AS A VECTOR REF-
# ERENCED TO THE OPTICS COORDINATE SYSTEM.  IN ADDITION IT SETS UP THREE UNIT VECTORS DEFINING THE X,Y, AND Z AXES
# REFERENCED TO THE OPTICS COORDINATE SYSTEM.
#
# THE INPUTS ARE  1) THE STAR VECTOR REFERRED TO PRESENT STABLE MEMBER COORDINATES STORED AT STAR.  2) SAME ANGLE
# INPUT AS *SMNB*, I.E. SINES AND COSINES OF THE CDU ANGLES, IN THE ORDER Y Z X, AT SINCDU AND COSCDU.  A CALL
# TO CDUTRIG WILL PROVIDE THIS INPUT.
#
# THE OUTPUTS ARE THE SEXTANT SHAFT AND TRUNNION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY.  (LOW ORDER PART
# EQUAL TO ZERO).


CALCSXA  ITA VLOAD  # PUSHDOWN 00-26D,28D,30D,32D-36D
   28D
   STAR
  CALL
   *SMNB*
  MXV VSL1
   NB2NB1
  STOVL STAR
   HIUNITX
  STOVL XNB1
   HIUNITY
  STOVL YNB1
   HIUNITZ
  STCALL ZNB1
   SXTANG1
# Page 287
# SXTANG COMPUTES THE SEXTANT SHAFT AND TRUNNION ANGLES REQUIRED TO POSITION THE OPTICS SUCH THAT A STAR LINE-OF-
# SIGHT LIES ALONG THE STAR VECTOR.
#
# THE INPUTS ARE  1) THE STAR VECTOR REFERRED TO ANY COORDINATE SYSTEM STORED AT STAR.  2) THE NAVIGATION BASE
# COORDINATES REFERRED TO THE SAME COORDINATE SYSTEM.  THESE THREE HALF-UNIT VECTORS ARE STORED AT XNB, YNB, AND
# ZNB.
#
# THE OUTPUTS ARE THE SEXTANT SHAFT AND TRUNNION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY.  (LOW ORDER PART
# EQUAL TO ZERO).


SXTANG  ITA RTB  # PUSHDOWN  16D,18D,22D-26D,28D
   28D
   TRANSP1  # EREF WRT NB2
  VLOAD MXV
   XNB
   NB2NB1
  VSL1
  STOVL XNB1
   YNB
  MXV VSL1
   NB2NB1
  STOVL YNB1
   ZNB
  MXV VSL1
   NB2NB1
  STORE ZNB1

  RTB RTB
   TRANSP1
   TRANSP2

SXTANG1  VLOAD VXV
   ZNB1
   STAR
  BOV
   +1
  UNIT BOV
   ZNB=S1
  STORE PDA  # PDA = UNIT(ZNB X S)

  DOT DCOMP
   XNB1
  STOVL SINTH  # SIN(SA) = PDA . -XNB
   PDA

  DOT
   YNB1
  STCALL COSTH  # COS(SA) = PDA . YNB
   ARCTRIG
# Page 288
  RTB
   1STO2S
  STOVL SAC
   STAR
  BOV
   +1
  DOT SL1
   ZNB1
  ACOS
  BMN SL2
   SXTALARM # TRUNNION ANGLE NEGATIVE
  BOV DSU
   SXTALARM # TRUNNION ANGLE GREATER THAN 90 DEGREES
   20DEG-
  RTB
   1STO2S
  STORE PAC  # FOR FLIGHT USE, CULTFLAG IS ON IF
  CLRGO   # TRUNION IS GREATER THAN 90 DEG
   CULTFLAG
   28D
SXTALARM SETGO   # ALARM HAS BEEN REMOVED FROM THIS
   CULTFLAG
   28D  # SUBROUTINE,ALARM WILL BE SET BY MPI
ZNB=S1  DLOAD
   270DEG
  STODL SAC
   20DEGS-
  STORE PAC
  CLRGO
   CULTFLAG
   28D
# Page 289
# THESE TWO ROUTINES COMPUTE THE ACTUAL STATE VECTOR FOR LM, CSM BY ADDING
# THE CONIC R,V AND THE DEVIATIONSR,V.  THE STATE VECTORS ARE CONVERTED TO
# METERS B-29 AND METERS/CSEC B-7 AND STORED APPROPRIATELY IN RN,VN OR
# R-OTHER , V-OTHER FOR DOWNLINK.  THE ROUTINES NAMES ARE SWITCHED IN THE
# OTHER VEHICLES COMPUTER.
#
# INPUT
# STATE VECTOR IN TEMPORARY STORAGE AREA
# IF STATE VECTOR IS SCALED POS B27 AND VEL B5
# SET X2 TO +2
# IF STATE VECTOR IS SCALED POS B29 AND VEL B7
# SET X2 TO 0
#
# OUTPUT
# R(T) IN RN, V(T) IN VN, T IN PIPTIME
# OR
# R(T) IN R-OTHER, V(T) IN V-OTHER (T IS DEFINED BY T-OTHER)


  BANK 23
  SETLOC COMGEOM2
  BANK
  COUNT 10/GEOM
SVDWN1  BOF RVQ   # SW=1=AVETOMID DOING W-MATRIX INTEG
   AVEMIDSW
   +1
  VLOAD VSL*
   TDELTAV
   0 -7,2
  VAD VSL*
   RCV
   0,2
  STOVL RN
   TNUV
  VSL* VAD
   0 -4,2
   VCV
  VSL*
   0,2
  STODL VN
   TET
  STORE PIPTIME
  RVQ

SVDWN2  VLOAD VSL*
   TDELTAV
   0 -7,2
  VAD VSL*
   RCV
# Page 290
   0,2
  STOVL R-OTHER
   TNUV
  VSL* VAD
   0 -4,2
   VCV
  VSL*
   0,2
  STORE V-OTHER
  RVQ
# Page 291
# SUBROUTINE TO COMPUTE THE NATURAL LOG OF C(MPAC, MPAC +1).
#
# ENTRY: CALL
# LOG
#
# SUBROUTINE RETURNS WITH -LOG IN DP MPAC.
#
# EBANK IS ARBITRARY..

  BANK 14
  SETLOC POWFLIT2
  BANK
  COUNT 23/GEOM

LOG  NORM BDSU  # GENERATES LOG BY SHIFTING ARG
   MPAC +3 # UNTIL IT LIES BETWEEN .5 AND 1.
   NEARLY1  # THE LOG OF THIS PART IS FOUND AND THE
  EXIT   # LOG OF THE SHIFTED PART IS COMPUTED

  TC POLY  # AND ADDED IN.  SHIFT COUNT STORED

  DEC 2  # (N-1, SUPPLIED BY SMERZH)
  2DEC 0  # IN MPAC +3.
  2DEC .031335467
  2DEC .0130145859
  2DEC .0215738898

  CAF ZERO
  TS MPAC +2
  EXTEND
  DCA CLOG2/32
  DXCH MPAC
  DXCH MPAC +3
  COM   # LOAD POSITIVE SHIFT COUNT IN A.
  TC SHORTMP  # MULTIPLY BY SHIFT COUNT.

  DXCH MPAC +1
  DXCH MPAC
  DXCH MPAC +3
  DAS MPAC
  TC INTPRET  # RESULT IN MPAC, MPAC +1

  RVQ

NEARLY1  2DEC .999999999

# Page 292
CLOG2/32 2DEC .0216608494

# Page 293
# SUBROUTINE NAME:  EARTH ROTATOR (EARROT1 OR EARROT2) DATE:   15 FEB 67
# MOD NO:  N +1 LOG SECTION:   POWERED FLIGHT SUBROS
# MOD BY:  ENTRY GROUP (BAIRNSFATHER)
# FUNCTIONAL DESCRIPTION:  THIS ROUTINE PROJECTS THE INITIAL EARTH TARGET VECTOR RTINIT AHEAD THROUGH
# THE ESTIMATED TIME OF FLIGHT.  INITIAL CALL RESOLVES THE INITIAL TARGET VECTOR RTINIT INTO EASTERLY
# AND NORMAL COMPONENTS RTEAST AND RTNORM .  INITIAL AND SUBSEQUENT CALLS ROTATE THIS VECTOR
# ABOUT THE (FULL) UNIT POLAR AXIS UNITW THROUGH THE ANGLE WIE DTEAROT TO OBTAIN THE ROTATED
# TARGET VECTOR RT .  ALL VECTORS EXCEPT UNITW ARE HALF UNIT.
# THE EQUATIONS ARE
# -    -        -                      -
# RT = RTINIT + RTNORM (COS(WT) - 1) + RTEAST SIN(WT)
# WHERE WT = WIE DTEAROT
# RTINIT = INITIAL TARGET VECTOR
# -        -       -
# RTEAST = UNITW*RTINIT
# -        -        -
# RTNORM = RTEAST*UNITW
#
# FOR CONTINUOUS UPDATING, ONLY ONE ENTRY TO EARROT1 IS REQUIRED, WITH SUBSEQUENT ENTRIES AT EARROT2.
# CALLING SEQUENCE: FIRST CALL SUBSEQUENT CALL
# STCALL DTEAROT STCALL DTEAROT
# EARROT1 EARROT2
# C(MPAC) UNSPECIFIED C(MPAC) = DTEAROT
# PUSHLOC = PDL+0, ARBITRARY.  6 LOCATIONS USED.
#
# SUBROUTINES USED:  NONE
# NORMAL EXIT MODES:  RVQ
# ALARMS:  NONE
# OUTPUT:  RTEAST (-1) .5 UNIT VECTOR EAST, COMPNT OF RTINIT LEFT BY FIRST CALL
#    RTNORM (-1) .5 UNIT VECTOR NORML, COMPNT OF RTINIT LEFT BY FIRST CALL
#    RT   (-1) .5 UNIT TARGET VECTOR, ROTATED LEFT BY ALL CALLS
#    DTEAROT  (-28) CS MAY BE CHANGED BY EARROT2, IF OVER 1 DAY
# ERASABLE INITIALIZATION REQUIRED:
#    UNITW  (0) UNIT POLAR VECTOR PAD LOADED
#    RTINIT (-1) .5 UNIT INITIAL TARGET VECTOR LEFT BY ENTRY
#    DTEAROT  (-28) CS TIME OF FLIGHT LEFT BY CALLER
# DEBRIS:  QPRET, PDL+0 ... PDL+5
# Page 294
  EBANK= RTINIT

EARROT1  VLOAD VXV
   UNITW  # FULL UNIT VECTOR
   RTINIT  # .5 UNIT
  STORE RTEAST  # .5 UNIT

  VXV
   UNITW  # FULL UNIT
  STODL RTNORM  # .5 UNIT
   DTEAROT  # (-28) CS

EARROT2  BOVB DDV
   TCDANZIG # RESET OVFIND, IF ON
   1/WIE
  BOV PUSH
   OVERADAY
  COS DSU
   HIDPHALF
  VXSC PDDL  # XCH W PUSH LIST
   RTNORM  # .5 UNIT
  SIN VXSC
   RTEAST  # .5 UNIT
  VAD VSL1
  VAD UNIT  # INSURE THAT RT IS 'UNIT'.
   RTINIT  # .5 UNIT
  STORE RT  # .5 UNIT TARGET VECTOR

  RVQ

OVERADAY DLOAD SIGN
   1/WIE
   DTEAROT
  BDSU
   DTEAROT
  STORE DTEAROT

  GOTO
   EARROT2

#WIE 2DEC .1901487997
1/WIE  2DEC 8616410
NB2NB1  2DEC +.8431756920 B-1
  2DEC 0
  2DEC -.5376381241 B-1
# Page 295
ZERINFLT 2DEC 0
HALFNFLT 2DEC .5
  2DEC 0
  2DEC +.5376381241 B-1
  2DEC 0
  2DEC +.8431756920 B-1
NB1NB2  2DEC +.8431756920 B-1
  2DEC 0
  2DEC +.5376381241 B-1
  2DEC 0
  2DEC .5
  2DEC 0
  2DEC -.5376381241 B-1
  2DEC 0
  2DEC +.8431756920 B-1

# Page 296
10DEGS-  DEC 3600

270DEG  OCT 60000  # SHAFT 270 DEGREES 2S COMP.
  OCT 00000

20DEGS-  DEC -07199
  DEC -00000

20DEG-  DEC 03600
  DEC 00000

Messung
CHZG
100100100100

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet am  2026-11-04) ¤

*© 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.