Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  ASCENT_GUIDANCE.agc   Sprache: Apollo

 

# Copyright: Public domain.
# Filename: ASCENT_GUIDANCE.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: Hartmuth Gutsche <hgutsche@xplornet.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 843-856
# Mod history: 2009-05-23 HG Transcribed from page images.
# 2009-06-05 RSB Fixed a couple of typos.
# 2009-06-07 RSB Corrected a typo.
#
# 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 843
  BANK 34
  SETLOC ASCFILT
  BANK

  EBANK= DVCNTR

  COUNT* $$/ASENT

ATMAG  TC PHASCHNG
  OCT 00035
  TC INTPRET
  BON
   FLRCS
   ASCENT
  DLOAD DSU
   ABDVCONV
   MINABDV
  BMN CLEAR
   ASCTERM4
   SURFFLAG
  CLEAR SLOAD
   RENDWFLG
   BIT3H
  DDV EXIT
   ABDVCONV
  DXCH MPAC
  DXCH 1/DV3
  DXCH 1/DV2
  DXCH 1/DV1
  DXCH 1/DV0
  TC INTPRET
  DLOAD DAD
   1/DV0
   1/DV1
  DAD DAD
   1/DV2
   1/DV3
  DMP DMP
   VE
   2SEC(9)
  SL3 PDDL
   TBUP
  SR1 DAD
  DSU
   6SEC(18)
  STODL TBUP
   VE
  SR1 DDV
   TBUP
  STCALL AT
# Page 844
   ASCENT
BIT3H  OCT 4

# Page 845
  BANK 30
  SETLOC ASENT
  BANK
  COUNT* $$/ASENT

ASCENT  VLOAD ABVAL
   R
  STOVL /R/MAG
   ZAXIS1
  DOT SL1
   V  # Z.V = ZDOT*2(-8).
  STOVL ZDOT  # ZDOT*2(-7)
   ZAXIS1
  VXV VSL1
   UNIT/R/  # Z X UR = LAXIS*2(-2)
  STORE LAXIS  # LAXIS*2(-1)
  DOT SL1
   V  # L.V = YDOT*2(-8).
  STCALL YDOT  # YDOT * 2(-7)
   YCOMP
  VLOAD
   GDT1/2  # LOAD GDT1/2*2(-7) M/CS.
  V/SC DOT
   2SEC(18)
   UNIT/R/  # G.UR*2(9) = GR*2(9).
  PDVL VXV  # STORE IN PDL(0)
   UNIT/R/  # LOAD UNIT/R/ *2(-1)
   V  # UR*2(-1) X V*2(-7) = H/R*2(-8).
  VSQ DDV  # H(2)/R(2)*2(-16).
   /R/MAG  # H(2)/R(3)*2(9).
  SL1 DAD
  STADR
  STODL GEFF  # GEFF*2(10)m/CS/CS.
   ZDOTD
  DSU
   ZDOT
  STORE DZDOT  # DZDOT = (ZDOTD - ZDOT) * 2(7) M/CS.
  VXSC PDDL
   ZAXIS1
   YDOTD
  DSU
   YDOT
  STORE DYDOT  # DYDOT = (YDOTD - YDOT) *2(7) M/CS.
  VXSC PDDL
   LAXIS
   RDOTD
# Page 846
  DSU
   RDOT
  STORE DRDOT  # DRDOT = (RDOTD - RDOT) * 2(7) M/CS.
  VXSC VAD
   UNIT/R/
  VAD VSL1
  STADR
  STORE VGVECT  # VG = (DRDOT)R + (DVDOT)L + (DZDOT)Z.
  DLOAD DMP  # LOAD TGO
   TGO  # TGO GEFF
   GEFF
  VXSC VSL1
   UNIT/R/  # TGO GEFF UR
  BVSU
   VGVECT  # COMPENSATED FOR GEFF
  STORE VGVECT  # STORE FOR DOWNLINK
  MXV VSL1  # GET VGBODY FOR N85 DISPLAY
   XNBPIP
  STOVL VGBODY
   VGVECT
  ABVAL BOFF  # MAGNITUDE OF VGVECT
   FLRCS  # IF FLRCS=0,D0 NORMAL GUIDANCE
   MAINENG
  DDV   # USE TGO=VG/AT WITH RCS
   AT/RCS
  STCALL TGO  # THIS WILL BE USED ON NEXT CYCLE
   ASCTERM2
MAINENG  DDV PUSH  # VG/VE IN PDL(0) (2)
   VE
  DMP BDSU  # 1 - KT VG/VE
   KT1
   NEARONE
  DMP DMP  # TBUP VG(1-KT VG/VE)/VE (0)
   TBUP  #  = TGO
  DSU   # COMPENSATE FOR TAILOFF
   TTO
  STORE TGO
  SR DCOMP
   11D
  STODL TTOGO  # TGO *2(-28) CS
   TGO
  BON DSU
   IDLEFLAG
   T2TEST
   4SEC(17) # ( TGO - 4 )*2(-17) CS.
  BMN
   ENGOFF
T2TEST  DLOAD
   TGO
  DSU BMN  # IF TGO - T2 NEG., GO TO CMPONENT
# Page 847
   T2A
   CMPONENT
  DLOAD DSU
   TBUP
   TGO
  DDV CALL  # 1- TGO/TBUP
   TBUP
   LOGSUB
  SL PUSH  # -L IN PDL(0) (2)
   5
  BDDV BDSU  # -TGO/L*2(-17)
   TGO
   TBUP  # TBUP + TGO/L = D12*2(-17)
  PUSH BON  # STORE IN PDL(2) (4)
   FLPC  # IF FLPC = 1, GO TO CONST
   NORATES
  DLOAD DSU
   TGO
   T3
  BPL SET  # FLPC=1
   RATES
   FLPC
NORATES  DLOAD
   HI6ZEROS
  STORE PRATE  # B = 0
  STORE YRATE  # D = 0
  GOTO
   CONST  # GO TO CONST
RATES  DLOAD DSU
   TGO
   02D  # TGO - D12 = D21*2(-17)
  PUSH SL1  # IN PDL(4) (6)
  BDSU SL3  # (1/2TGO - D21)*2(-13) = E * 2(-13)
   TGO  # (8)
  PDDL DMP  # IN PDL(6)
   TGO
   RDOT  # RDOT TGO * 2(-24)
  DAD DSU  # R + RDOT TGO
   /R/MAG  # R + RDOT TGO - RCO
   RCO  # MPAC = -DR *2(-24).
  PDDL DMP  # -DR IN PDL(8) (10)
   DRDOT
   04D  # D21 DRDOT*2(-24)
  DAD SL2  # (D21 DRDOT-DR)*2(-22) (8)
  DDV DDV
   06D  # (D21 DRDOT-DR)/E*2(-9)
   TGO
  STORE PRATE  # B * 2(8)
  BMN DLOAD  # B>0 NOT PERMITTED
   CHKBMAG
# Page 848
   HI6ZEROS
  STCALL PRATE
   PROK
CHKBMAG  SR4 DDV  # B*2(4)
   TBUP  # (B / TAU) * 2(21)
  DSU BPL
   PRLIMIT  # ( B / TAU ) = 2(21) MAX.
   PROK
  DLOAD DMP
   PRLIMIT
   TBUP  # B MAX. * 2(4)
  SL4   # BMAX*2(8)
  STORE PRATE
PROK  DLOAD
   TGO
  DMP DAD  # YDOT TGO
   YDOT
   Y  # Y + YDOT TGO
  DSU PDDL  # Y + YDOT TGO - YCO
   YCO  # MPAC = - DY*(-24.) IN PDL(8) (10)
   DYDOT
  DMP DAD  # D21 DYDOT - DY (8)
   04D
  SL2 DDV  # (D21 DYDOT - DY)/E*2(-9)
  DDV SETPD  # (D21 DYDOT - DY)/E TGO*2(8)
   TGO  # = D*2(8)
   04
  STORE YRATE
CONST  DLOAD DMP  # LOAD B*2(8)
   PRATE  # B D12*2(-9)
   02D
  PDDL DDV  # D12 B IN PDL(4) (6)
   DRDOT  # LOAD DRDOT*2(-7)
   00D  # -DRDOT/L*2(-7)
  SR2 DSU  # (-DRDOT/L-D12 B)=A*2(-9) (4)
  STADR
  STODL PCONS
   YRATE  # D*2(8)
  DMP PDDL  # D12 D,EXCH WITH -L IN PDL(0) (2,2)
  BDDV SR2  # -DYDOT/L*2(-9)
   DYDOT
  DSU   # (-DYDOT/L-D12 D)=C*2(-9)
   00D
  STORE YCONS
CMPONENT SETPD DLOAD
   00D
    100CS
   DMP
   PRATE  # B(T-T0)*2(-9)
  DAD DDV  # (A+B(T-T0))*2(-9)
# Page 849
   PCONS  # (A+B(T-T0))/TBUP*2(8)
   TBUP
  SL1 DSU
   GEFF  # ATR*2(9)
  STODL ATR
   100CS
  DMP DAD
   YRATE
   YCONS  # (C+D(T-T0))*2(-9)
  DDV SL1
   TBUP
  STORE ATY  # ATY*2(9)
  VXSC PDDL  # ATY UY*2(8) (6)
   LAXIS
   ATR
  VXSC VAD
   UNIT/R/
  VSL1 PUSH  # AH*2(9) IN PDL(0) (6)
  ABVAL PDDL  # AH(2) IN PDL(34)
   AT  # AHMAG IN PDL(6) (8)
  DSQ DSU  # (AT(2)-AH(2))*2(18)
   34D  # =ATP2*2(18)
  PDDL PUSH  # (12)
   AT
  DSQ DSU  # (AT(2)KR(2)-AH(2))*2(18) (10)
   34D  # =ATP3*2(18)
  BMN DLOAD  # IF ATP3 NEG,GO TO NO-ATP
   NO-ATP  # LOAD ATP2, IF ATP3 POS
   8D
  SQRT GOTO  # ATP*2(9)
   AIMER
NO-ATP  DLOAD BDDV  # KR AT/AH = KH (8)
   6D
  VXSC   # KH AG*2(9)
   00D
  STODL 00D  # STORE NEW AH IN PDL(0)
   HI6ZEROS
AIMER  SIGN
   DZDOT
  STORE ATP
  VXSC
   ZAXIS1  # ATP ZAXIS *2(8).
  VSL1 VAD  # AT*2(0)
   00D
  STORE UNFC/2  # WILL BE OVERWRITTEN IF IN VERT. RISE.
  SETPD BON
   00D
   FLPI
   P12RET
  BON
# Page 850
   FLVR
   CHECKALT
MAINLINE VLOAD VCOMP
   UNIT/R/
  STODL UNWC/2
   TXO
  DSU BPL
   PIPTIME
   ASCTERM
  BON
   ROTFLAG
   ANG1CHEK
CLRXFLAG CLEAR CLEAR
   NOR29FLG # START r29 IN ASCENT PHASE.
   XOVINFLG # ALLOW X-AXIS OVERRIDE
ASCTERM  EXIT
  CA FLAGWRD9
  MASK FLRCSBIT
  CCS A
  TCF ASCTERM3
  TC INTPRET
  CALL
   FINDCDUW -2
ASCTERM1 EXIT
 +1  CA FLAGWRD9 # INSURE THAT THE NOUN 63 DISPLAY IS
   MASK FLRCSBIT # BYPASSED IF WE ARE IN THE RCS TRIMMING
  CCS A  # MODE OF OPERATION
  TCF ASCTERM3
  CA FLAGWRD8 # BYPASS DISPLAYS IF ENGINE FAILURE IS
  MASK FLUNDBIT # INDICATED.
  CCS A
  TCF ASCTERM3
  CAF V06N63*
  TC BANKCALL
  CADR GODSPR
  TCF ASCTERM3
ASCTERM2 EXIT
ASCTERM3 TCF ENDOFJOB
ASCTERM4 EXIT
  INHINT
  TC IBNKCALL # NO GUIDANCE THIS CYCLE -- HENCE ZERO
  CADR ZATTEROR # THE DAP COMMANDED ERRORS.
  TCF ASCTERM1 +1

CHECKALT DLOAD DSU
   /R/MAG
   /LAND/
  DSU BMN  # IF H LT 25K CHECK Z AXIS ORIENTATION
   25KFT
   CHECKYAW
# Page 851
EXITVR  CLEAR BON
   FLVR
   ROTFLAG
   MAINLINE
  DLOAD DAD
   PIPTIME
   10SECS
  STCALL TXO
   MAINLINE
EXITVR1  CLRGO
   ROTFLAG
   EXITVR

  SETLOC ASENT1
  BANK
  COUNT* $$/ASENT

ANG1CHEK VLOAD DOT
   UNFC/2
   XNBPIP
  DSU BPL
   COSTHET1
   OFFROT
  VLOAD DOT
   XNBPIP
   UNIT/R/
  DSU BMN
   COSTHET2
   KEEPVR1
OFFROT  CLRGO
   ROTFLAG
   CLRXFLAG

  BANK 7
  SETLOC ASENT2
  BANK
  COUNT* $$/ASENT

SETXFLAG = CHECKYAW

CHECKYAW SET
   XOVINFLG # PROHIBIT X-AXIS OVERRIDE
  DLOAD VXSC
   ATY
   LAXIS
  PDDL VXSC
   ATP
   ZAXIS1
  VAD UNIT
  PUSH DOT
# Page 852
   YNBPIP
  ABS DSU
   SIN5DEG
  BPL DLOAD
   KEEPVR
   RDOT
  DSU BPL
   40FPS
   EXITVR1
  GOTO
   KEEPVR

  BANK 5
  SETLOC ASENT3
  BANK
  COUNT* $$/ASENT

SIN5DEG  2DEC 0.08716 B-2
40FPS  2DEC 0.12192 B-7

  BANK 14
  SETLOC ASENT4
  BANK
  COUNT* $$/ASENT

KEEPVR  VLOAD STADR  # RECALL LOSVEC FROM PUSHLIST
  STORE UNWC/2
KEEPVR1  VLOAD
   UNIT/R/
  STCALL UNFC/2
   ASCTERM

ENGOFF  RTB
   LOADTIME
  DSU DAD
   PIPTIME
   TTOGO
  DCOMP EXIT
  TC TPAGREE  # FORCE SIGN AGREEMENT ON MPAC, MPAC +1.
  CAF EBANK7
  TS EBANK
  EBANK= TGO
  INHINT
  CCS MPAC +1
  TCF +3  # C(A) = DT - 1 BIT
  TCF +2  # C(A) = 0
  CAF ZERO  # C(A) = 0
  AD BIT1  # C(A) = 1 BIT OR DT.
# Page 853
  TS ENGOFFDT
  TC TWIDDLE
  ADRES ENGOFF1
  TC PHASCHNG
  OCT 47014
  -GENADR ENGOFFDT
  EBANK= TGO
  2CADR ENGOFF1

  TC INTPRET
  SET GOTO
   IDLEFLAG # DISABLE DELTA-V MONITOR
   T2TEST

ENGOFF1  TC IBNKCALL # SHUT OFF THE ENGINE.
  CADR ENGINOF2

  CAF PRIO17  # SET UP A JOB FOR THE ASCENT GUIDANCE
  TC FINDVAC  # POSTBURN LOGIC.
  EBANK= WHICH
  2CADR CUTOFF

  TC PHASCHNG
  OCT  07024
  OCT 17000
  EBANK= TGO
  2CADR CUTOFF

  TCF TASKOVER

CUTOFF  TC UPFLAG  # SET FLRCS FLAG.
  ADRES FLRCS

 -5  CAF V16N63
   TC BANKCALL
  CADR GOFLASH
  TCF +3
  TCF CUTOFF1
  TCF -5

 +3  TC POSTJUMP
   CADR TERMASC

CUTOFF1  INHINT
  TC IBNKCALL # ZERO ATTITUDE ERRORS BEFORE REDUCINT DB.
  CADR ZATTEROR
  TC IBNKCALL
  CADR SETMINDB
  TC POSTJUMP
  CADR CUTOFF2
# Page 854

V16N63  VN 1663
  BANK 30
  SETLOC ASENT5
  BANK
  COUNT* $$/ASENT

CUTOFF2  TC PHASCHNG
  OCT 04024

  CAF V16N85C
  TC BANKCALL
  CADR GOFLASH
  TCF TERMASC
  TCF +2  # PROCEED
  TCF CUTOFF2

TERMASC  TC PHASCHNG
  OCT 04024

  INHINT   # RESTORE DEADBAND DESIRED BY ASTRONAUT.
  TC IBNKCALL
  CADR RESTORDB
  TC DOWNFLAG # DISALLOW ABORTS AT THIS TIME.
  ADRES LETABORT
  TCF GOTOPOOH

V16N85C  VN 1685

  BANK 27
  SETLOC ASENT1
  BANK
  COUNT* $$/ASENT

YCOMP  VLOAD DOT
   UNIT/R/
   QAXIS
  SL2 DMP
   RCO
  STORE Y
  RVQ

  BANK 30
  SETLOC ASENT
  BANK
# Page 855
100CS  EQUALS 2SEC(18)
T2A  EQUALS 2SEC(17)
4SEC(17) 2DEC 400 B-17
2SEC(17) 2DEC 200 B-17
T3  2DEC 1000 B-17
6SEC(18) 2DEC 600 B-18
BIT4H  OCT 10
2SEC(9)  2DEC 200 B-9
V06N63*  VN 0663
V06N76  VN 0676
V06N33A  VN 0633

  BANK 33
  SETLOC ASENT6
  BANK
  COUNT* $$/ASENT

KT1  2DEC 0.5000
PRLIMIT  2DEC -.0639  # (B/TBUP)MIN=-.1FT.SEC(-3)
MINABDV  2DEC .0356 B-5 # 10 PERCENT BIGGER THAN GRAVITY
1/DV0  = MASS1

# Page 856
# THE LOGARITHM SUBROUTINE

  BANK 24
  SETLOC FLOGSUB
  BANK

# INPUT ..... X IN MPAC
# OUTPUT ..... -LOG(X) IN MPAC

LOGSUB  NORM BDSU
   MPAC +6
   NEARONE
  EXIT
  TC POLY
  DEC 6
  2DEC .0000000060
  2DEC -.0312514377
  2DEC -.0155686771
  2DEC -.0112502068
  2DEC -.0018545108
  2DEC -.0286607906
  2DEC .0385598563
  2DEC -.0419361902

  CAF ZERO
  TS MPAC +2
  EXTEND
  DCA CLOG2/32
  DXCH MPAC
  DXCH BUF +1
  CA MPAC +6
  TC SHORTMP
  DXCH MPAC +1
  DXCH MPAC
  DXCH BUF +1
  DAS MPAC
  TC INTPRET
  DCOMP RVQ

CLOG2/32 2DEC .0216608494


Messung V0.5 in Prozent
C=73 H=100 G=87

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-10-12) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1128594
#Domains=1976912