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

Quelle  P37_P70.agc  Sprache: unbekannt

 
# Copyright: Public domain.
# Filename: P37_P70.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: Jim Lawton <jim.lawton@gmail.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 890-933
# Mod history: 2009-05-11 JVL Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
# 2009-05-20 RSB Added missing label V2T179.  Fixed POODOO -> POODOO.
# 2009-05-23 RSB In RTD18, corrected a STOVL DELVLVC to
# STODL DELVLVC and a STODL 02D to STORE 02D.
#
# 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 890
  BANK 31
  SETLOC RTE1
  BANK

  EBANK= RTEDVD
  COUNT 31/P37

# PROGRAM DESCRIPTION:  P37, RETURN TO EARTH
#
# DESCRIPTION
# A RETURN TO EARTH TRAJECTORY IS COMPUTED PROVIDED THE CSM IS OUTSIDE THE LUNAR SPHERE OF INFLUENCE AT THE
# TIME OF IGNITION.  INITIALLY A CONIC TRAJECTORY IS DETERMINED AND RESULTING IGNITION AND REENTRY PARAMETERS ARE
#  DISPLAYED TO THE ASTRONAUT.  THEN IF THE ASTRONAUT SO DESIRES, A PRECISION TRAJECTORY IS DETERMINED WITH THE
#  RESULTING IGNITION AND REENTRY PARAMETERS DISPLAYED.  UPON FINAL ACCEPTANCE BY THE ASTRONAUT, THE PROGRAM
#  COMPUTES AND STORES THE TARGET PARAMETERS FOR RETURN TO EARTH FOR USE BY SPS PROGRAM (P40) OR RCS PROGRAM (P41).
#
# CALLING SEQUENCE
# L TC P37
#
# SUBROUTINES CALLED
# PREC100
# V2T100
# RTENCK2
# RTENCK3
# TIMERAD
# PARAM
# V2T100
# GAMDV10
# XT1LIM
# DVCALC
# RTENCK1
# INTSTALL
# INTEGRVS
# RTEVN
# RTEDISP
# TMRAD100
# AUGEKUGL
# LAT-LONG
# TMRAD100
# TIMERAD
# INVC100
# CSMPREC
# GETERAD
# TIMETHET
# P370ALRM
# VN1645
# POLY
#
# ERASABLE INITIALIZATION REQUIRED
# CSM STATE VECTOR
# Page 891
# NJETSFLG NUMBER OF JETS IF THE RCS PROPULSION SYSTEM SELECTED STATE FLAG 0=4 JETS  1=2 JETS
#
# ASTRONAUT INPUT
# SPRTETIG TIME OF IGNITION (OVERLAYS TIG) DP B28 CS
# VPRED DESIRED CHANGE IN VELOCITY AT TIG(PROGRM COMPUTED IF 0) DP B7 METERS/CS
# GAMMAEI DESIRED FLIGHT PATH ANGLE AT REENTRY (COMPUTED IF 0) DP B0 REVS + ABOVE HORIZ.
# OPTION2 PROPULSION SYSTEM OPTION SP B14 1=SPS, 2=RCS
#
# OUTPUT
#    CONIC OR PRECISION TRAJECTORY DISPLAY
# VPRED   VELOCITY MAGNITUDE AT 400,000 FT. ENTRY ALTITUDE DP B7 METERS/CS
# T3TOT4 TRANSIT TIME TO 400,000 FT. ENTRY ALTITUDE DP B28 CS
# GAMMAEI FLIGHT PATH ANGLE AT 400,00 FT. ENTRY ALTITUDE DP B0 REVS + ABOVE HORIZON
# DELVLVC INITIAL VELOCITY CHANGE VECTOR IN LOCAL VERTICAL COORD. VECTOR B7 METERS/CS
# LAT(SPL) LATITUDE OF THE LANDING SITE DP B0 REVS
# LNG(SPL) LONGITUDE OF THE LANDING SITE DP B0 REVS
#    TARGETING COMPUTATION DISPLAY
# TIG RECOMPUTED TIG BASED ON THRUST OPTION DP B28 CS
# TTOGO TIME FROM TIG DP B28 CS
# +MGA POSITIVE MIDDLE GIMBAL ANGLE DP B0 REVS -.02 IF REFSMFLG=0
#    THRUST PROGRAM COMMUNICATION
# XDELVFLG EXTERNAL DELTA V FLAG STATE FLAG SET 0 FOR LAMBERT AIMPT
# NORMSW LAMBERT AIMPT ROTATION SWITCH STATE FLAG SET 0 FOR NO ROTATION
# ECSTEER CROSS PRODUCT STEERING CONSTANT SP B2 SET 1
# RTARG CONICALLY INTEGRATED REENTRY POSITION VECTOR VECTOR B29 METERS
# TPASS4 REENTRY TIME DP B28 CS

P37  TC PHASCHNG # P37 IS NOT RESTARTABLE
  OCT 4

  TC INTPRET
  AXT,1 SXA,1
  OCT 04000
   ECSTEER
  DLOAD
   ZEROVECS
  STORE VPRED
  STORE GAMMAEI
  EXIT
  CAF V6N33RTE # INPUT TIG STORED IN SPRTETIG
  TCR P370GOF  # OVERLAYED WITH TIG
  TCF -2  # DISPLAY NEW DATA
  CAF V6N60RTE # INPUT REENTRY ANGLE IN GAMMAEI
  TCR P37GFRB1 # AND DESIRED DELTA V IN RTEDVD
  TCF -2  # DISPLAY NEW DATA
RTE299  TC INTPRET
  SSP DLOAD
   OVFIND
   0
   VPRED
# Page 892
  STODL RTEDVD
   GAMMAEI
  STODL RTEGAM2D
   1RTEB13
  STODL CONICX1
   C4RTE
  STCALL MAMAX1
   INVC100  # GET R(T1)/,V(T1)/,UR1/,UH/
  CLEAR DLOAD
   SLOWFLG
   RTEDVD
  BPL ABS
   RTE317
  STORE RTEDVD
  DLOAD DSU
   R(T1)
   K1RTE
  BMN SET
   RTE317
   SLOWFLG
RTE317  DLOAD EXIT
   R(T1)
  TC POLY
  DEC 2
  2DEC 181000434. B-31
  2DEC 1.50785145 B-2
  2DEC* -6.49993057 E-9 B27*
  2DEC* 9.76938926 E-18 B56*
  TC INTPRET
  SL1
  STODL MAMAX2  # C0+C1*R+C2*R**2+C3*R**3=MAMAX2 B30
   M9RTEB28
  STODL NN1A
   K2RTE
RTE320  STODL RCON  # RCON=K2
   RTEGAM2D
  BZE BDSU
   RTE340  # GOTORTE340 IF REENTRY ANGLE NOT INPUT
   1RTEB2
  PUSH COS  # PL02D
  PDDL SIN
  BDDV STADR  # PL00D
  STCALL X(T2)  # X(T2)=COT(GAM2D) B0
   RTE360
RTE340  DLOAD DSU
   R(T1)
# Page 893
   K1RTE
  BMN DLOAD
   RTE350
   K4RTE
  STCALL X(T2)  # X(T2)=K4
   RTE360
RTE350  DLOAD
   K3RTE
  STORE X(T2)  # X(T2)=K3
RTE360  CALL
   V2T100
  BZE GOTO
   RTE367
   RTEALRM
RTE367  VLOAD
   R(T1)/
  STODL RVEC
   RCON
  STOVL RDESIRED
   V2(T1)/
  STCALL VVEC
   TMRAD100
  DAD
   T1
  STODL T2
   RTEGAM2D
  BZE GOTO
   RTE369
   RTE372
RTE369  VLOAD ABVAL
   V(T2)/
  EXIT
  TC POLY
  DEC 2
  2DEC 0
  2DEC -4.8760771 E-2 B4
  2DEC 4.5419476 E-4 B11
  2DEC -1.4317675 E-6 B18

  TC INTPRET
  DAD
   RTED1
  SL3 GOTO  # X(T2),=D1+D2V2+D3V2**2+D4V2**3
   RTE373
RTE372  DLOAD   # X(T2),=X(T2)
   X(T2)
RTE373  DSU PUSH  # X(T2)ERR B0 PL02D
# Page 894
   X(T2)
  VLOAD UNIT
   R(T2)/  # B58
  STCALL ALPHAV
   GETERAD
  DAD
   E3RTE
  PUSH DSU  # RCON,=(E1/1+E2BETA11)**.5)+E3  B29 PL04D
   RCON
  ABS DSU
   EPC2RTE
  BMN GOTO
   RTE374
   RTE375
RTE374  DLOAD ABS
   00D
  DSU BMN
   EPC3RTE
   P37E
RTE375  DLOAD DAD
   NN1A
   1RTEB28
  BMN SLOAD
   RTE380
   OCT605
  GOTO
   RTEALRM  # TOO MANY ITERATIONS
RTE380  STORE NN1A
  DSU BZE
   M8RTEB28
   RTE385
  DLOAD DSU
   00D
   DRCON
  NORM PDDL  # X(T2)ERR-X(T2)ERR,=Z1 PL06D
   X1
   RPRE'
  DSU DDV  # X(T2)PRI-X(T2)=Z2 PL04D
   X(T2)
  DMP SL*  # DX(T2)=X(T2)ERR(Z2/Z1)
   00D
   0,1
  GOTO
   RTE390
RTE385  DLOAD   # DX(T2)=X(T2)ERR
   00D
RTE390  STODL 16D  # DX(T2) PL02D
  STADR
  STODL RCON  # RCON=RCON,
  BOV
# Page 895
   RTE360
  STODL DRCON  # X(T2)ERR,=X(T2)ERR
   X(T2)
  STODL RPRE'  # X(T2)PRI=X(T2)
   16D
  DAD
   X(T2)
  STCALL X(T2)  # X(T2)=X(T2)+DX(T2)
   RTE360  # REITERATE
P37E  CALL   # DISPLAY CONIC SOLUTION
   RTEVN
RTE505  DLOAD DMP
   PCON
   BETA1
  BDSU BZE
   RCON
   RTE510
  BMN DLOAD
   RTE510
   1RTEB2
  GOTO   # ENTRY NEAR APOGEE
   RTE515
RTE510  DLOAD DCOMP  # ENTRY NEAR PERIGEE
   1RTEB2
RTE515  STCALL PHI2
   PREC100  # PRECISION TRAJECTORY COMPUTATION
RTE625  BZE
   P37G
RTEALRM  CALL
   P370ALRM
  EXIT
  TCF P37  # RECYCLE AFTER ALARM DISPLAY

# RETURN TO EARTH DISPLAY SUBROUTINE

RTEVN  STQ CALL
   VNSTORE
   RTEDISP  # DISPLAY PREPARATION
  EXIT
  CAF V6N61RTE # LATITUDE,LONGITUDE,BLANK
  TCR P370GOFR #   IN LAT(SPL),LNG(SPL),-
  CAF FOUR
  TCR 37BLANK +1
  TCF +5
  TCF P37  # RECYCLE
  CAF V6N39RTE # T21 HRS,MIN,SEC IN T3TOT4
  TCR P370GOF
  TCF P37  # RECYCLE
  CAF V6N60RTE # DISPLAY BLANK,V(T2),FPA2
  TCR P37GFRB1 #   IN -,VPRED,GAMMAEI
# Page 896
  TCF P37  # RECYCLE
  CAF V6N81RTE # DISPLAY DELTA V (LV) IN DELVLVC
  TCR P370GOF
  TCF P37  # RECYCLE
  TCR INTPRET
  GOTO
   VNSTORE

# PRECISION DISPLAY, TARGETING COMPUTATION AND RTE END PROCESSING

P37G  CALL
   RTEVN
  EXIT
P37N  CAF SEVEN
  TS OPTION1
  CAF ONE
  TS OPTION2
  CAF V4N06RTE # DISPLAY RCS OR SPS OPTION  SPS ASSUMED
  TCR P370GOF
  TCF -2  # RECYCLE
  TC INTPRET  # PROCEED
  SETPD SLOAD
   00D
   OPTION2
  DSU BZE
   1RTEB13
   P37Q
  SLOAD NORM  # SPS
   EMDOT
   X1
  PDDL GOTO
   VCSPS
   P37T
P37Q  DLOAD BON  # RCS
   MDOTRCS
   NJETSFLG
   P37R
  SL1
P37R  SL1
  NORM PDDL
   X1
   VCRCS
P37T  PDDL DDV  # DV/VC B7 -B5 = B2  PL02D
   DV
  EXIT
  TC POLY
  DEC 1
  2DEC 5.66240507 E-4 B-3
  2DEC 9.79487897 E-1 B-1
# Page 897
  2DEC -.388281955 B1
  TC INTPRET
  PUSH SLOAD  # (1-E)**(-DV/VC)=A B3  PL04D
   WEIGHT/G
  DMP DDV  # DTB=(M0/MDOT)A B16+B3-B3=B16  PL00D
  SL* DMP
   0 -12D,1
   CSUBT
  BDSU
   T1
  STORE TIG  # TIG=T1-CT*DTB B28
  EXIT
  CAF V6N33RTE # DISPLAY BIASED TIG
  TCR P370GOF
  TCF -2
  CAF ZERO
  TS VHFCNT
  TS TRKMKCNT
  TC INTPRET
  CALL   # CONICALLY INTEGRATE FROM R1,V1 OVER T12
   RTENCK1
  VLOAD UNIT  # PL00D
   R(T2)/
  PDVL VXSC  # UR2 B1  PL06D
   UR1/
   MCOS7.5
  PDVL VXSC  # -UR1(COS7.5) B1  PL12D
   UH/
   MSIN7.5
  VAD DOT  # K/=-UR1(COS7.5)-UH(SIN7.5) B2  PL00D
  DAD BMN
   MCOS22.5
   P37W
  VLOAD DOT  # K/ . UR2 GR COS22.5
   UH/
   R(T2)/
  BMN DLOAD
   P37U
   THETA165
  PUSH GOTO
   P37V
P37U  DLOAD PUSH
   THETA210
P37V  SIN
  STODL SNTH
  COS CLEAR
   RVSW
  STOVL CSTH
   R(T1)/
# Page 898
  STOVL RVEC
   V2(T1)/
  STCALL VVEC
   TIMETHET
P37W  CLEAR CLEAR
   XDELVFLG
   NORMSW
  SET VLOAD
   FINALFLG
  STADR
  STODL RTARG
   T
  DAD
   T1
  STOVL TPASS4
   V2(T1)/
  VSU
   V(T1)/
  STCALL DELVSIN
   VN1645
  GOTO
   P37W

# SUBROUTINE TO GO TO GOFLASHR AND BLANK R1

P37GFRB1 EXTEND
  QXCH SPRTEX
  TCR P370GOFR
37BLANK  CAF ONE
  TCR BLANKET
  TCF ENDOFJOB
  TC SPRTEX  # RECYCLE
  TCF P37PROC  # PROCEED

# SUBROUTINE TO GO TO GOFLASHR

P370GOFR EXTEND
  QXCH RTENCKEX
  TCR BANKCALL
  CADR GOFLASHR
  TCF GOTOPOOH # TERMINATE
  TCF +3
  TCF +4
  TC RTENCKEX # IMMEDIATE RETURN
  INDEX RTENCKEX # PROCEED
  TCF 0 +4
  INDEX RTENCKEX # RECYCLE
  TCF 0 +3

# SUBROUTINE TO GO TO GOFLASH

# Page 899
P370GOF  EXTEND
  QXCH SPRTEX
  TCR BANKCALL
  CADR GOFLASH
  TCF GOTOPOOH
  TCF +2
  TC SPRTEX
P37PROC  INDEX SPRTEX
  TCF 0 +1
V6N33RTE VN 0633
V4N06RTE VN 0406
V6N61RTE VN 0661
V6N39RTE VN 0639
V6N60RTE VN 0660
V6N81RTE VN 0681
  BANK 32
  SETLOC RTE
  BANK
  COUNT 32/RTE

# Page 900
# ALARM DISPLAY SUBROUTINE

P370ALRM STQ EXIT
   SPRTEX
  CA MPAC
  TC VARALARM
  CAF V5N09RTE
  TC BANKCALL
  CADR GOFLASH
  TCF GOTOPOOH
  TCF -4
  TC INTPRET
  GOTO
   SPRTEX
V5N09RTE VN 0509

# Page 901
# TIME RADIUS CALLING SUBROUTINE
#
# INPUT
# RVEC INITIAL POSITION VECTOR VECTOR B29 METERS
# VVEC INITIAL VELOCITY VECTOR VECTOR B7 METERS/CS
# RDESIRED FINAL RADIUS FOR WHICH TRANSFER TIME IS TO BE COMPUTED DP B29 METERS
# CONICX1 X1 SETTING FOR CONIC SUBROUTINES  -2=EARTH SP B14
#
# OUTPUT
# R(T2)/ FINAL POSITION VECTOR VECTOR B29  METERS
# V(T2)/ FINAL VELOCITY VECTOR VECTOR B7 METERS/CS
# T12 TRANSFER TIME TO FINAL RADIUS DP B28 CS

TMRAD100 STQ CLEAR
   RTENCKEX
   RVSW
  AXC,2 SXA,2
  OCT 20000
   SGNRDOT
  LXC,1 CALL
   CONICX1
   TIMERAD
  STOVL V(T2)/       PL00D
  STADR
  STODL R(T2)/
   T
  STCALL T12
   RTENCKEX

# Page 902
# DISPLAY CALCULATION SUBROUTINE
#
# DESCRIPTION
# OUTPUT FOR DISPLAY IS CONVERTED TO PROPER UNITS AND PLACED IN OUTPUT STORAGE REGISTERS.  LANDING SITE
# COMPUTATION FOR DETERMINING LANDING SITE LATITUDE AND LONGITUDE IS INCLUDED IN THE ROUTINE.
#
# CALLING SEQUENCE
# L CALL
# L+1 RTEDISP
#
# SUBROUTINES CALLED
# TMRAD100
# AUGEKUGL
# LAT-LONG
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# NONE
#    MPAC
# NONE
#    OTHER
# R(T2)/ FINAL POSITION VECTOR VECTOR B29 METERS
# V(T2)/ FINAL VELOCITY VECTOR VECTOR B7 METERS/CS
# T2 FINAL TIME DP B28 CS
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7 METERS/CS
# V(T1)/ INITIAL VELOCITY VECTOR VECTOR B7
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
#
# OUTPUT
# VPRED VELOCITY MAGNITUDE AT 400,000 FT. ENTRY ALTITUDE DP B7 METERS/CS
# T3TOT4 TRANSIT TIME TO 400,000 FT. ENTRY ALTITUDE DP B28 CS
# GAMMAEI FLIGHT PATH ANGLE AT 400,000 FT. ENTRY ALTITUDE DP B0 REVS + ABOVE HORIZ
# DELVLVC INITIAL VELOCITY CHANGE VECTOR IN LOCAL VERTICAL COORD. VECTOR B7 METERS/CS
# LAT(SPL) LATITUDE OF THE LANDING SITE DP B0 REVS
# LNG(SPL) LONGITUDE OF THE LANDING SITE DP B0 REVS

RTEDISP  STQ VLOAD  # DISPLAY
   SPRTEX
   V(T2)/
  UNIT PDDL
   36D
  STODL VPRED  # V(T2)
   T2
  DSU
   SPRTETIG
  STOVL T3TOT4  # T21
   R(T2)/
  UNIT DOT
  SL1

# Page 903
  ARCCOS BDSU
   1RTEB2
  STOVL GAMMAEI  # FLIGHT PATH ANGLE T2
   V2(T1)/
  VSU PUSH
   V(T1)/
  DOT DCOMP
   UR1/
  PDVL PUSH
  DLOAD PDVL
   ZERORTE
  DOT VDEF
   UH/
  VSL1
  STODL DELVLVC
   DELVLVC
  BOFF DCOMP
   RETROFLG
   RTD18
  STORE DELVLVC  # NEGATE X COMPONENT, RETROGRADE
RTD18  VLOAD ABVAL
   DELVLVC
  STOVL VGDISP
   R(T2)/
  STORE RVEC  # ***** LANDING SITE COMPUTATION *****
  ABVAL DSU
   30480RTE
  STOVL RDESIRED
   V(T2)/
  STCALL VVEC
   TMRAD100 # R3,V3,T23 FROM TIMERAD
  VLOAD UNIT
   R(T2)/
  PDVL UNIT  # UR3 PL06D
   V(T2)/
  DOT SL1  # GAMMAE=ARCSIN(UR3 . UV3) PL00D
  ARCSIN PDDL  # V(T3) PL02D
   36D
  PDDL ABS
  PUSH CALL  # /GAMMAE/ PL04D
   AUGEKUGL # PHIE PL06D
  DAD DAD
   T12  # T23
   T2
  STORE 02D  # T(LS)=T2&T23&TE
  SLOAD BZE
   P37RANGE
   RTD22
  STORE 04D  # OVERRIDE RANGE (PCR 261)
RTD22  DLOAD SIN

# Page 904
   04D
  STODL LNG(SPL) # LNG(SPL)=SIN(PHIE) PL04D
  COS
  STORE LAT(SPL) # LAT(SPL)=COS(PHIE)
  VLOAD UNIT
   R(T2)/
  PUSH PUSH
  PDVL UNIT  # PL22D
   V(T2)/
  PDVL VXV
  VXV UNIT  # UH3=UNIT(UR3 X UV3 X UR3) PL10D
  VXSC PDVL
   LNG(SPL)
  VXSC VAD  # PL04D
   LAT(SPL)
  CLEAR CLEAR  # T(LS) IN MPAC
   ERADFLAG
   LUNAFLAG
  STODL ALPHAV  # ALPHAV=UR3(COSPHIE)+UH3(SINPHIE)  PL02D
  CALL
   LAT-LONG
  DLOAD
   LAT
  STODL LAT(SPL) # LATITUDE LANDING SITE  *****
   LONG
  STCALL LNG(SPL) # LONGITUDE LANDING SITE *****
   SPRTEX
  COUNT* $$/RTE

# Page 905
# INITIAL VECTOR SUBROUTINE
#
# DESCRIPTION
# A PRECISION INTEGRATION OF THE STATE VECTOR TO THE TIME OF IGNITION IS PERFORMED. PRECOMPUTATIONS OCCUR.
#
# CALLING SEQUENCE
# L CALL
# L+1 INVC100
#
# NORMAL EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
#
# ALARM EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = OCTAL 612 FOR STATE VECTOR IN MOONS SPHERE OF INFLUENCE
#
# SUBROUTINES CALLED
# CSMPREC
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# NONE
#    MPAC
# NONE
#    OTHER
# SPRTETIG TIME OF IGNITION DP B28 CS
# CSM STATE VECTOR
#
# OUTPUT
# R(T1)/ INITIAL POSITION VECTOR AT TIG VECTOR B29 METERS
# V(T1)/ INITIAL VELOCITY VECTOR AT TIG VECTOR B7 METERS/CS
# T1 INITIAL VECTOR TIME (TIG) DP B28 CS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
# CFPA COSINE OF INITIAL FLIGHT PATH ANGLE DP B1

INVC100  STQ DLOAD
   SPRTEX
   SPRTETIG
  STCALL TDEC1
   CSMPREC  # PRECISION INTEGRATION  R0,V0 TO R1,V1
  VLOAD SXA,2
   RATT
   P(T1)
  STOVL R(T1)/
   VATT
  STODL V(T1)/
   TAT
  STORE T1
  SLOAD BZE
   P(T1)
# Page 906
   INVC109
INVC107  SLOAD GOTO
   OCT612
   RTEALRM  # R1,V1 NOT IN PROPER SPHERE OF INFLUENCE
INVC109  VLOAD UNIT
   R(T1)/
  STODL UR1/  # UR1/ B1
   36D
  STOVL R(T1)  # R(T1) B29
   V(T1)/
  UNIT
  STORE UV1/
  DOT SL1
   UR1/
  STORE CFPA  # CFPA B1
  ABS DSU
   EPC1RTE
  BMN DLOAD
   INVC115  # NOT NEAR RECTILINEAR
   1RTEB2
  PDDL PUSH
   ZERORTE
  VDEF PUSH  # N/ = (0,0,1)
  GOTO
   INVC120
INVC115  VLOAD VXV
   UR1/
   UV1/
  PUSH   # N/ = UR X UV B2
INVC120  CLEAR DLOAD
   RETROFLG
  PUSH BPL
   INVC125
  VLOAD VCOMP  # RETROGRADE ORBIT
  PUSH SET
   RETROFLG
INVC125  VLOAD
  VXV UNIT
   UR1/
  STORE UH/  # UH/ B1
  GOTO
   SPRTEX

# Page 907
# PRECISION TRAJECTORY COMPUTATION SUBROUTINE
#
# DESCRIPTION
# A NUMERICALLY INTEGRATED TRAJECTORY IS GENERATED WHICH FOR THE RETURN TO EARTH PROBLEM SATISFIES THE REENTRY
# CONSTRAINTS (RCON AND X(T2)) ACHIEVED BY THE INITIAL CONIC TRAJECTORY AND MEETS THE DVD REQUIREMENT AS CLOSELY
# AS POSSIBLE.
#
# CALLING SEQUENCE
# L CALL
# L+1 PREC100
#
# NORMAL EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
#
# ALARM EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC =
# OCTAL 605 FOR EXCESS ITERATIONS
# OCTAL 613 FOR REENTRY ANGLE OUT OF LIMITS
#
# SUBROUTINES CALLED
# INTSTALL
# RTENCK2
# RTENCK3
# TIMERAD
# PARAM
# V2T100
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# NONE
#    MPAC
# NONE
#    OTHER
# R(T1)/ INITIAL POSITION VECTOR VECTOR B29/B27 METERS
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# V(T1)/ INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# T1 INITIAL VECTOR TIME DP B28 CS
# T12 INITIAL TO FINAL POSITION TIME DP B28  CS
# RCON CONIC FINAL RADIUS DP B29/B27 METERS
# R(T1) MAGNITUDE OF INITIAL POSITION VECTOR DP B29/B27 METERS
# X(T2) COTANGENT OF FINAL FLIGHT PATH ANGLE DP B0
# X(T1) COTANGENT OF INITIAL FLIGHT PATH ANGLE DP B5
# RTEDVD DELTA VELOCITY DESIRED DP B7/B5 METERS/CS
# MAMAX1 MAJOR AXIS LIMIT FOR LOWER BOUND ON GAMDV ITERATOR DP B30/B28 METERS
# MAMAX2 MAJOR AXIS LIMIT FOR UPPER BOUND ON GAMDV ITERATOR DP B30/B28 METERS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
# BETA1 1+X(T2)**2 DP B1
# PHI2 PERIGEE OR APOGEE INDICATOR DP B2 -1 PERIGEE, +1 APOGEE
#
# Page 908
#
# OUTPUT
#     V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7 METERS/CS
# R(T2)/ FINAL POSITION VECTOR VECTOR B29 METERS
# V(T2)/ FINAL VELOCITY VECTOR VECTOR B7 METERS/CS
# T2 FINAL TIME DP B28 CENTISECONDS
#
# DEBRIS
# RD FINAL R DESIRED DP B29/B27 METERS
# R/APRE R/A DP B6
# P/RPRE P/R DP B4
# RPRE MAGNITUDE OF R(T2)/ DP B29/B27 METERS
# X(T2)PRE COTANGENT OF GAMMA2 DP B0
# DT12 CORRECTION TO FINAL TIME T2 DP B28 CENTISECONDS
# RCON FINAL RADIUS DP B29/B27 METERS
# DRCON DELTA RCON DP B29/B27 METERS

PREC100  STQ DLOAD
   SPRTEX
   10RTE
  STODL NN1A
   RCON
  STORE RD
PREC120  DLOAD
   2RTEB1
  STODL DT21PR  # DT21PR = POSMAX
   M15RTE
  STCALL NN2
   RTENCK3
PREC125  CALL
   PARAM
  DLOAD
   P
  STODL P/RPRE
   R1A
  STODL R/APRE
   R1
  STODL RPRE
   COGA
  SL
   5
  STORE X(T2)PRE
  DCOMP DAD
   X(T2)
  ABS DSU
   EPC4RTE
  BOV BMN
   PREC130
   PREC175

# DESIRED REENTRY ANGLE NOT ACHIEVED

# Page 909
PREC130  DLOAD BMN
   NN2
   PREC140
PREC132  SLOAD GOTO  # TOO MANY ITERATIONS
   OCT605  # EXIT WITH ALARM
   PRECX

# DETERMINE RADIUS AT WHICH THE DESIRED REENTRY ANGLE WILL BE ACHIEVED

PREC140  DLOAD BZE
   NN1A
   PREC162
PREC150  DLOAD SL2      B2
   P/RPRE
  DMP SL1  # BETA2=BETA1*P/R B2 PL02
   BETA1
  PUSH DLOAD
   R/APRE
  SL4 DMP
   00D
  BDSU BMN  # BETA3=1-BETA2*R/A
   1RTEB4
   PREC160
PREC155  SL2 SQRT
  DMP BDSU
   PHI2
   1RTEB3
  NORM PDDL
   X1
  SR1 DDV  # BETA4=BETA2/(1-PHI2*SQRT(BETA3))
  SL* GOTO      B1
   0 -1,1
   PREC165
PREC160  DLOAD NORM
   R/APRE
   X1
  BDDV SL*      B1
   1RTEB1
   0 -6,1
  GOTO
   PREC165
PREC162  DLOAD NORM
   RPRE
   X1
  BDDV SL*  # BETA4=RD/RPRE B1
   RD
   0 -1,1
PREC165  SETPD PUSH
   0
  DSU DCOMP
# Page 910
   1RTEB1
  STORE BETA12
  BMN DLOAD
   PREC168
   X(T2)PRE
  BMN DLOAD
   PREC167
   BETA12
  DCOMP
  STORE BETA12
PREC167  DLOAD
   BETA12
PREC168  ABS DSU
   EPC6RTE
  BMN DLOAD
   PREC175
  DMP SL1
   RPRE
  PUSH   # RF = NEW RADIUS
PREC170  DLOAD DAD
   NN2
   1RTEB28
  STORE NN2
  VLOAD SET
   R(T2)/
   RVSW
  STOVL RVEC
   V(T2)/
  SIGN
   BETA12
  STODL VVEC
   1RTEB1
  SIGN DCOMP
   BETA12
  LXA,2 DLOAD
   MPAC
  LXC,1 SXA,2
   CONICX1
   SGNRDOT
  STCALL RDESIRED # COMPUTED DT12 (CORRECTION TO TIME OF
   TIMERAD  # NEW RADIUS)
  DLOAD SIGN
   T
   BETA12
  PDDL NORM  # DT21=(PHI4)DT21 PL02D
   DT21PR
   X1
  BDDV SL*
   00D
   0 -3,1
# Page 911
  PUSH BMN  # BETA13=(DT21)/(DT21PR) R3  PL04D
   PREC172
  DLOAD PDDL  # BETA14=1 B0  PL04D
   2RTEB1
  GOTO
   PREC173
PREC172  DLOAD PDDL  # BETA14=.6 B0  PL04D
   M.6RTE
PREC173  DDV DSU
   02D
   1RTEB3
  BMN DLOAD
   PREC174
  DMP
   DT21PR
  STORE 00D  # DT21=(BETA14)DT21PR B28
PREC174  DLOAD PUSH
   00D
  STCALL DT21PR
   RTENCK2
  GOTO
   PREC125
PREC175  DLOAD DSU
   RPRE
   RD
  PUSH ABS  # RPRE-RD = RERR
  DSU BMN
   EPC7RTE
   PREC220

# DESIRED RADIUS HAS NOT BEEN ACHIEVED

  DLOAD BZE
   NN1A
   PREC132  # TOO MANY ITERATIONS
  DSU BZE
   10RTE
   PREC207
PREC205  DLOAD DSU  # NOT FIRST PASS OF ITERATION
   RPRE'
   RPRE  # RPRE'-RPRE B29/B27
  NORM BDDV
   X2
   DRCON
  SL* PUSH  # DRCON/(RPRE'-RPRE)=S B2
   0 -2,2
  DAD BOV  # S GR +4 OR LS -4
   1RTEB1
   PREC205M
  ABS DSU
# Page 912
   1RTEB1
  BMN
   PREC206
PREC205M DLOAD DCOMP  # S GR 0 OR LS -4
   2RTEB1
  PDDL   # S=-4 B2
PREC206  DLOAD DMP
  SL2
  STORE DRCON  # DRCON=S(RERR) B29
  DAD
   RCON
  STORE RCON  # RCON+DRCON=RCON
  GOTO
   PREC210
PREC207  DLOAD DSQ  # FIRST PASS OF ITERATION
   RD
  NORM SR1
   X1
  PDDL NORM
   RPRE
   X2
  XSU,1 BDDV
   X2
  SR*
   0 -1,1
  STORE RCON  # RD**2/RPRE=RCON
  DSU
   RD
  STORE DRCON  # RCON-RD=DRCON
PREC210  DLOAD   # PREPARE FOR NEXT ITERATION
   RPRE
  STODL RPRE'
   NN1A
  DSU
   1RTEB28
  STCALL NN1A
   V2T100
  BHIZ GOTO
   PREC120
   PRECX

# DESIRED RADIUS ACHIEVED

  SETLOC RTE2
  BANK
PREC220  DLOAD DSU
   X(T2)
   X(T2)PRE
  ABS DSU
   EPC8RTE
# Page 913
  BMN SLOAD
   PREC225
   OCT613
  GOTO
   PRECX  # IF REENTRY ANGLE OUT OF LIMITS

EPC8RTE  2DEC .002

OCT613  OCT 613

# DESIRED FINAL ANGLE HAS BEEN REACHED.

  SETLOC RTE
  BANK
PREC225  DLOAD
   ZERORTE
PRECX  GOTO
   SPRTEX

# Page 914
# INTEGRATION CALLING SUBROUTINE
#
# DESCRIPTION
# PERFORMS CONIC AND PRECISION INTEGRATIONS USING SUBROUTINE INTEGRVS.  THERE ARE THREE ENTRANCES (RTENCK1,
# RTENCK2, AND RTENCK3) FOR DIFFERENT SOURCES OF INPUT AND DIFFERENT OPTIONS.  THERE IS A COMMON SET OF OUTPUT
#  WHICH INCLUDES SET UP OF INPUT FOR THE PARAM SUBROUTINE.
#
# RTENCK1 (CONIC INTEGRATION)
#
#    CALLING SEQUENCE
# L CALL
# L+1 RTENCK1
#
#    ERASABLE INITIALIZATION REQUIRED
# SAME AS FOR THE RTENCK3 ENTRANCE
#
# RTENCK2 (PRECISION INTEGRATION)
#
#    CALLING SEQUENCE
# L CALL
# L+1 RTENCK2
#
#    ERASABLE INITIALIZATION REQUIRED
# PUSHLIST
#     PUSHLOC-2 INTEGRATION TIME DT12 (CORRECTION TO T2) DP B28 CS
# OTHER
#     R(T2)/ FINAL POSITION VECTOR VECTOR B29 METERS
#     V(T2)/ FINAL VELOCITY VECTOR VECTOR B7 METERS/CS
#     T2 FINAL TIME DP B28 CS
#
# RTENCK3 (PRECISION INTEGRATION)
#
#    CALLING SEQUENCE
# L CALL
# L+1 RTENCK3
#
#    ERASABLE INITIALIZATION REQUIRED
# R(T1)/ INITIAL POSITION VECTOR VECTOR B29 METERS
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7 M/CS
# T1 INITIAL VECTOR TIME DP B28 CS
# T2 FINAL TIME DP B28 CS
#
# EXIT MODE
# AT L+2 OF CALLING SEQUENCE
#
# SUBROUTINES CALLED
# INTSTALL
# INTEGRVS
#
# OUTPUT
#    PUSHLIST
# Page 915
# PUSHLOC-6 FINAL POSITION VECTOR R(T2)/ VECTOR B29 METERS
# X1 CONICS MUTABLE ENTRY FOR EARTH (-2) SP B14
#    MPAC
# FINAL VELOCITY VECTOR V(T2)/ VECTOR B7 M/CS
#    OTHER
# R(T2)/ AS IN PUSHLIST
# V(T2)/ AS IN MPAC
# T2 FINAL TIME DP B28 CS

  SETLOC RTE3
  BANK
RTENCK1  STQ CALL
   RTENCKEX
   INTSTALL
  VLOAD SET
   R(T1)/
   INTYPFLG
  GOTO
   RTENCK3B

RTENCK2  STQ CALL
   RTENCKEX
   INTSTALL
  CLEAR VLOAD
   INTYPFLG
   R(T2)/
  STOVL RCV
   V(T2)/
  STODL VCV
   T2
  STORE TET
  DAD
  GOTO
   RTENCK3D

RTENCK3  STQ CALL
   RTENCKEX
   INTSTALL
RTENCK3A VLOAD CLEAR
   R(T1)/
   INTYPFLG
RTENCK3B STOVL RCV
   V2(T1)/
  STODL VCV
   T1
  STODL TET
   T2
# Page 916
RTENCK3D STORE TDEC1
  CLEAR CALL
   MOONFLAG
   INTEGRVS
  VLOAD
   RATT
  STORE R(T2)/
  PDDL LXC,1
   TAT
   CONICX1
  STOVL T2
   VATT
  STORE V(T2)/
  GOTO
   RTENCKEX
  SETLOC RTE
  BANK

# Page 917
# V2(T1) COMPUTATION SUBROUTINE
#
# DESCRIPTION
# A POST IMPULSE VELOCITY VECTOR (V2(T1)) IS COMPUTED WHICH EITHER
# (1) MEETS THE INPUT VELOCITY CHANGE DESIRED (RTEDVD) IN A MINIMUM TIME OR
# (2) IF A VELOCITY CHANGE ISN'T SPECIFIED (RTEDVD = 0), A V2(T1) IS COMPUTED WHICH MINIMIZES THE IMPULSE (DV)
# AND CONSEQUENTLY FUEL.
#
# CALLING SEQUENCE
# L CALL
# L+1 V2T100
#
# NORMAL EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
#
# ALARM EXIT MODE
# AT L+2 OF CALLING SEQUENCE WITH MPAC = OCTAL 605 FOR EXCESS ITERATIONS.
#
# SUBROUTINES CALLED
# GAMDV10
# XT1LIM
# DVCALC
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# NONE
#    MPAC
# NONE
#    OTHER
# R(T1) MAGNITUDE OF INITIAL POSITION VECTOR DP B29/B27 METERS
# RCON MAGNITUDE OF FINAL POSITION VECTOR DP B29/B27 METERS
# V(T1)/ INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# RTEDVD DELTA VELOCITY DESIRED DP B7/B5 METERS/CS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
# X(T2) COTANGENT OF FINAL FLIGHT PATH ANGLE DP B0
# X(T1) COTANGENT OF INITIAL FLIGHT PATH ANGLE (INPUT FOR PREC) DP B5
# CFPA COSINE OF INITIAL FLIGHT PATH ANGLE DP B1
# MAMAX1 MAJOR AXIS LIMIT FOR LOWER BOUND ON GAMDV ITERATOR DP B30/B28 METERS
# MAMAX2 MAJOR AXIS LIMIT FOR UPPER BOUND ON GAMDV ITERATOR DP B30/B28 METERS
# PHI2 REENTRY NEAR PERIGEE OR APOGEE INDICATE (RTE ONLY) DP B2 -1 PERIGEE, +1 APOGEE
# N1 CONIC OR PRECISION ITERATION OPERATOR DP B28 NEGATIVE CONIC, PLUS PREC
#
# OUTPUT
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# DV INITIAL VELOCITY CHANGE DP B7/B5 METERS/CS
# X(T1) COTANGENT OF INITIAL FLIGHT PATH ANGLE (POST IMPULSE) DP B5
# PCON SEMI-LATUS RECTUM DP B28/B26 METERS
# BETA1 1+X(T2)**2 DP B1
#
# Page 918
#
# DEBRIS
#    PUSHLIST
# 00D X(T1),,=PREVIOUS PRECISION X(T1) DP B5
# 02D THETA1=BETA5*LAMBDA-1 TP B17
# 05D THETA2=2*R(T1)*(LAMBDA-1) TP B38/B36
# 08D THETA3=MU**.5/R(T1) DP B-4/B-5
# 10D X(T1)MIN=LOWER BOUND ON X(T1) IN GAMDV ITERATOR DP B5
# 12D DX(T1)MAX=MAXIMUM DELTA X(T1) DP B5
# 14D X(T1)MAX=UPPER BOUND ON X(T1) IN GAMDV ITERATOR DP B5
# 16D DX(T1)=ITERATOR INCREMENT DP B5
# 31D GAMDV10 SUBROUTINE RETURN ADDRESS
# 32D DVCALC SUBROUTINE RETURN ADDRESS
# 33D V2T100 SUBROUTINE RETURN ADDRESS

V2T100  STQ DLOAD
   33D
   RCON
  BMN DSU  # ABORT IF RCON NEGATIVE
   V2TERROR
   R(T1)
  BMN
   V2T101
V2TERROR EXIT   # OR IF LAMBDA LESS THAN ONE
  TC POODOO  # NO SOLUTION IF LAMBDA LESS THAN 1
  OCT 00610
V2T101  SETPD CLEAR
   0  # PL00D
   F2RTE
  DLOAD NORM
   RCON
   X1
  PDDL NORM
   R(T1)
   S1
  STORE 10D
  SR1 DDV  # R1/RCON = LAMBDA B1
  XSU,1 PDDL  # PL02D
   S1
   X(T2)
  DSQ
  SR1 DAD
   1RTEB1
  STORE BETA1  # 1+X(T2)**2 = BETA1 B1
  DMP
   00D
  STORE 28D  # BETAI*LAMBDA = BETA5
  DMP SL*
   00D
   0 -7,1
  SL* DSU
# Page 919
   0 -7,1
   1RTEB17
  RTB PDDL  # BETA5*LAMBDA-1 = THETA1 B17 PL05D
   TPMODE
   1RTEB1
  SR* DCOMP
   0,1
  DAD DMP
   00D
   R(T1)
  SL* RTB
   0 -7D,1
   TPMODE
  PDDL   # 2*R(T1)*(LAMBDA-1)=THETA2 B38/B36 PL08D
   RTMURTE
  NORM SR1
   X2
  XSU,2 DDV
   S1
   10D
  SR* PDDL  # MU**.5/R(T1)=THETA3 B-4/B-5 PL10D
   6,2
   MAMAX1
  PUSH PUSH  # MAMAX1=MA
  CALL
   XT1LIM
  DCOMP PUSH  # X(T1)MIN B5  PL12D
  DCOMP SR4
  PDDL PUSH  # DX(T1)MAX B5  PL14D
   MAMAX2
  PUSH CALL
   XT1LIM
  PDDL BMN  # X(T1)MAX B5  PL16D
   NN1A
   V2T102
  GOTO
   V2T110

# PROCEED HERE IF NOT PRECISION COMPUTATION

V2T102  DLOAD
   RTEDVD
  BZE GOTO
   V2T105
   V2T140
V2T105  DLOAD BMN
   CFPA
   V2T140
  GOTO
   V2T145
# Page 920
# DURING A PRECISION TRAJECTORY ITERATION CONSTRAIN THE INDEPENDENT
# VARIABLE TO INSURE THAT ALL CONICS PASS THROUGH RCON ON THE SAME PASS
# THROUGH X(T2)

V2T110  DLOAD RTB
   1RTEB17
   TPMODE
  DCOMP PDDL  # -1 B17  PL19D
   2RTEB1
  SR* DSU
   0,1
   00D
  DMP SL*
   28D
   0 -7,1
  SL* TAD
   0 -7,1
  RTB PDDL  # BETA5(2-LAMBDA)-1=BETA6 B17  PL19D
   TPMODE
   X(T1)
  STORE 00D  # X(T1),, B5
  TLOAD   # PL16D
  BMN BZE
   V2T115
   V2T115
  SL GOTO
   7
   V2T120
V2T115  DLOAD BMN
   PHI2
   V2T125
  DCOMP
  STODL PHI2
   10RTE
  STORE NN1A
  GOTO
   V2T125
V2T120  SQRT RTB
   DPMODE
  PDDL BMN  # BETA6**.5=X(T1)LIM B5  PL18D
   PHI2
   V2T130
  DLOAD STADR
  STORE 14D  # X(T1)LIM = X(T1)MAX
  DCOMP
  STORE 10D  # -X(T1)LIM = X(T1)MIN
V2T125  DLOAD BZE
   X(T1)
   V2T140
  BMN GOTO
# Page 921
   V2T140
   V2T145
V2T130  DLOAD BZE
   X(T1)
   V2T135
  BMN DLOAD  # PL16D
   V2T135
  STADR
  STORE 10D  # X(T1)LIM = X(T1)MIN
  GOTO
   V2T145
V2T135  DLOAD DCOMP  # PL16D
  STADR
  STORE 14D  # -X(T1)LIM = X(T1)MAX
V2T140  DLOAD
   10D
  STODL X(T1)  # X(T1)MIN = X(T1)
   12D
  PUSH GOTO  # DX(T1)MAX = DX(T1) PL18D
   V2T150
V2T145  DLOAD
   14D
  STODL X(T1)  # X(T1)MAX = X(T1)
   12D
  DCOMP PUSH  # -DX(T1)MAX = DX(T1) PL18D
V2T150  CALL   # GOTO X(T1)-DV ITERATOR
   GAMDV10
  DLOAD BZE  # EXIT IF MINIMUM FUEL MODE
   RTEDVD
   V2T1X

# CONTINUE IF TIME CRITICAL MODE

  DSU BMN
   DV
   V2T155
  GOTO
   V2T175
V2T155  DLOAD BMN
   NN1A
   V2T160
  GOTO
   V2T185

# CONIC TRAJECTORY COMPUTATION

V2T160  DLOAD BZE
   X(T1)
   V2T165
  BMN GOTO
# Page 922
   V2T165
   V2T300
V2T165  DLOAD BZE
   CFPA
   V2T300
  BMN DLOAD
   V2T300
   14D
  STODL X(T1)  # X(T1)MAX=X(T1)
   12D
  DCOMP
  STCALL 16D  # -DX(T1)MAX=DX(T1)
   GAMDV10
  DLOAD DSU
   RTEDVD
   DV
  BMN
   V2T300
V2T175  SET DLOAD
   F2RTE
   X(T1)
  BOFF
   SLOWFLG
   V2T177
  STODL 10D  # X(T1)MIN
   12D  # DX(T1)MAX
  GOTO
   V2T179
V2T177  STODL 14D
   12D
  DCOMP
V2T179  STCALL 16D  # DX(T1)
   GAMDV10
  DLOAD BMN
   NN1A
   V2T300

# PREVENT A LARGE CHANGE IN INDEPENDENT VARIABLE DURING AN ITERATION FOR A
# PRECISION TRAJECTORY

V2T185  DLOAD DSU
   X(T1)
   00D
  ABS PDDL  # /X(T1)-X(T1),,/ = BETA7
   12D
  SL1 BDSU
  BMN DLOAD
   V2T300
   00D  # CONTINUE IF BETA7 LARGER THAN 2DX(T1)MAX
  STORE X(T1)  # X(T1),, = X(T1)
# Page 923
  DSU BMN
   14D
   V2T195
  DLOAD
   14D
  STORE X(T1)  # X(T1)MAX = X(T1)
  GOTO
   V2T205
V2T195  DLOAD DSU
   X(T1)
   10D
  BMN GOTO
   V2T200
   V2T205
V2T200  DLOAD
   10D
  STORE X(T1)  # X(T1)MIN = X(T1)
V2T205  CALL
   DVCALC
V2T300  DLOAD
   ZERORTE
V2T1X  GOTO
   33D

# Page 924
# X(T1)-DV ITERATOR SUBROUTINE
#
# DESCRIPTION
# COMPUTES A POST IMPULSE VELOCITY VECTOR (V2(T1)) WHICH REQUIRES A MINIMUM DV.
#
# CALLING SEQUENCE
# L CALL
# L+1 GAMDV10
#
# NORMAL EXIT MODE
# AT L+2 OF CALLING SEQUENCE
#
# ALARM EXIT MODE
# AT V2T1X WITH MPAC = OCTAL 605 FOR EXCESS ITERATIONS
#
# SUBROUTINES CALLED
# DVCALC
#
# ERASABLE INITIALIZATION REQUIRED
#    PUSHLIST
# 02D THETA1=BETA5*LAMBDA-1 TP B17
# 05D THETA2=2*R(T1)*(LAMBDA-1) TP B38/B36
# 08D THETA3=MU**.5/R(T1) DP B-4/B-5
# 10D X(T1)MIN=LOWER BOUND ON INDEPENDENT VARIABLE X(T1) DP B5
# 12D DX(T1)MAX=MAXIMUM DX(T1) DP B5
# 14D X(T1)MAX=UPPER BOUND ON INDEPENDENT VARIABLE X(T1) DP B5
# 16D DX(T1)=ITERATOR INCREMENT DP B5
#    MPAC
# NONE
#    OTHER
# V(T1)/ INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# RTEDVD DELTA VELOCITY DESIRED DP B7/B5 METERS/CS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
# X(T1) COTANGENT OF INITIAL FLIGHT PATH ANGLE (FROM VERTICAL) DP B5
# F2RTE TIME CRITICAL OR MINIMUM FUEL MODE INDICATOR STATE AREA 0 MIN. FUEL, 1 MIN. TIME
#
# OUTPUT
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# DV INITIAL VELOCITY CHANGE DP B7/B5 METERS/CS
# X(T1) COTANGENT OF INITIAL FPA MEASURED FROM VERTICAL DP B5
# PCON SEMI-LATUS RECTUM DP B28/B26 METERS
#
# DEBRIS
#    PUSHLIST
# 00D X(T1),,
# 02D THETA1
# 05D THETA2
# 08D THETA3
# 10D X(T1)MIN
# 12D DX(T1)MAX
# Page 925
# 14D X(T1)MAX
# 16D DX(T1)
# 22D DV,=PREVIOUS DV DP B7/B5
# 24D BETA9=X(T1)+1.1DX(T1) DP B5
# 31D GAMDV10 SUBROUTINE RETURN ADDRESS
# 32D DVCALC SUBROUTINE RETURN ADDRESS
# 33D V2T100 SUBROUTINE RETURN ADDRESS

GAMDV10  STQ
   31D
  SETPD CALL
   18D  # PL18D
   DVCALC
  DLOAD DSU
   14D
   10D
  BOV
   GAMDV20
  PUSH DSU  # X(T1)MAX-X(T1)MIN=BETA8 B5  PL20D
   EPC9RTE
  BMN DLOAD
   GAMDVX  # BOUNDS CLOSE TOGETHER
   18D
  DSU BMN  # BETA8-DX(T1)MAX
   12D
   GAMDV15
  SETPD GOTO  # PL18D
   18D
   GAMDV20
GAMDV15  DLOAD   # PL18D
  SIGN SR1
   16D
  STORE 16D  # BETA8(SIGNDX(T1))/2=DX(T1)
GAMDV20  DLOAD
   M144RTE
  STORE NN2
GAMDV25  DLOAD DAD
   NN2
   1RTEB28
  BMN SLOAD
   GAMDV30
   OCT605
  GOTO
   V2T1X
GAMDV30  STORE NN2  # NN2=NN2+1
  DLOAD PDDL  # X(T1)=X(T1), B5  PL20D
   X(T1)
   DV
  PDDL DAD  # DV=DV, B7/B5  PL22D
   X(T1)
   16D
# Page 926
  STCALL X(T1)  # X(T1)+DX(T1)=X(T1) B5
   DVCALC
  BON DLOAD
   F2RTE
   GAMDV35
   DV
  DSU BMN  # CONTINUE IF FUEL CRITICAL MODE
   20D
   GAMDV33
GAMDV32  DLOAD DCOMP
   16D
  SR1
  STORE 16D
GAMDV33  SETPD GOTO
   18D  # PL18D
   GAMDV50

# TIME CRITICAL MODE

GAMDV35  DLOAD DSU
   RTEDVD
   DV
  PDDL PUSH  # DVD-DV=DVERR B7/B5  PL22D
GAMDV40  DLOAD ABS  # DV, PL24D
   20D
  DSU BMN
   EPC10RTE
   GAMDVX
GAMDV45  BOVB DLOAD
   TCDANZIG # ASSURE OVFIND IS 0
  BDSU NORM
   DV
   X2
  PDDL   # DV-DV, B7/B5-N2 PL22D
  NORM SR1  # DVERR B8/B6-N1
   X1
  DDV PDDL  # DVERR/ DV - DV
  BDSU DMP  # PL18D
   X(T1)
  XSU,1
   X2
  STORE 16D  # PRESERVE SIGN IF OVERFLOW
  SR* BOV
   0 -1,1
   GAMDV47
  STORE 16D  # (X(T1)-X(T1),)DVERR/(DV-DV,)=DX(T1)
  ABS DSU
   12D
  BMN
   GAMDV50
# Page 927
GAMDV47  DLOAD SIGN
   12D
   16D
  STORE 16D  # DX(T1)MAX(SIGNDX(T1))=DX(T1)

# CHECK TO KEEP INDEPENDENT VARIABLE IN BOUNDS

GAMDV50  DLOAD DMP
   16D
   1.1RTEB1
  SL1 DAD
   X(T1)
  STORE 24D  # X(T1)+1.1DX(T1)=BETA9 B5
  DSU BMN
   14D
   GAMDV55
  DLOAD DSU
   14D
   X(T1)
  SR1
  STCALL 16D  # (X(T1)MAX-X(T1))/2=DX(T1) B5
   GAMDV65
GAMDV55  DLOAD DSU
   24D
   10D
  BMN GOTO
   GAMDV60
   GAMDV65
GAMDV60  DLOAD DSU
   10D
   X(T1)
  SR1
  STORE 16D  # (X(T1)MIN-X(T1))/2=DX(T1) B5
GAMDV65  DLOAD ABS
   16D
  DSU BMN
   EPC9RTE
   GAMDVX
  GOTO
   GAMDV25
GAMDVX  GOTO
   31D

# Page 928
# DV CALCULATION SUBROUTINE
#
# INPUT
#    PUSHLIST
# 02D THETA1=BETA5*LAMBDA-1 TP B17
# 05D THETA2=2*R(T1)*(LAMBDA-1) TP B38/B36
# 08D THETA3=MU**.5/R(T1) DP B-4/B-5
#    OTHER
# X(T1) COTANGENT OF POST IMPULSE INITIAL FLIGHT PATH ANGLE DP B5
# V(T1)/ INITIAL VELOCITY VECTOR (PRE IMPULSE) VECTOR B7/B5 METERS/CS
# UR1/ UNIT INITIAL VECTOR VECTOR B1
# UH/ UNIT HORIZONTAL VECTOR VECTOR B1
#
# OUTPUT
# V2(T1)/ POST IMPULSE INITIAL VELOCITY VECTOR VECTOR B7/B5 METERS/CS
# DV INITIAL VELOCITY CHANGE DP B7/B5 METERS/CS
# PCON SEMI-LATUS RECTUM DP B28/B26 METERS
#
# DEBRIS
# 28D THETA3*PCON**.5 DP B10/B8-N1
# C(PUSHLOC) THETA3(PCON**.5)*X(T1)*UR1/ VECTOR B7/B5
# 32D DVCALC SUBROUTINE RETURN ADDRESS
# X1 NORMALIZATION FACTOR FOR VALUE IN 28D
#
# PUSHLOC IS RESTORED TO ITS ENTRANCE VALUE UPON EXITING DVCALC

DVCALC  STQ DLOAD
   32D
   X(T1)
  DSQ SR
   7
  DCOMP TAD
   02D
  NORM PUSH
   X1
  TLOAD NORM
   05D
   X2
  RTB SR1
   DPMODE
  XSU,2 DDV
   X1
  SR*
   6,2
  STORE PCON  # THETA2/(THETA1-X(T1)**2)=PCON B28/26
  SQRT DMP
   08D
  NORM
   X1
  STODL 28D  # THETA3*PCON**.5 B10/B8 -N1
# Page 929
   X(T1)
  NORM VXSC
   X2
   UR1/  # X(T1)*UR1/ B5+B1 -N2
  XAD,2 VXSC
   X1
   28D
  VSR* PDVL  # THETA3(PCON**.5)X(T1)*UR1/ B7/B5
   0 -9D,2  # +
   UH/
  VXSC VSR*  # THETA3(PCON**.5)UH/ B7/B5
   28D
   0 -4,1  # =
  VAD STADR
  STORE V2(T1)/  # V2(T1)/ B7/B5
  VSU ABVAL
   V(T1)/
  STORE DV  # ABVAL(V2(T1)/-V1(T)/)=DV B7/B5
  GOTO
   32D

# Page 930
# SUBROUTINE TO COMPUTE BOUNDS ON INDEPENDENT VARIABLE X(T1)
#
# INPUT
#    PUSHLIST
# PUSHLOC -4 MAJOR AXIS (MA) DP B30/B28
# PUSHLOC -2 MAJOR AXIS (MA) AGAIN DP B30/B28
# 28D BETA5=LAMBDA*BETA1 DP B9
#    OTHER
# RCON DP B29/B27
# R(T1) DP B29/B27
#
# OUTPUT
#    MPAC
# X(T1)LIM LIMIT ON INDEPENDENT VARIABLE X(T1) DP B5
#
# DEBRIS
#    PUSHLIST
# C(PUSHLOC) MA-RCON DP (B30/28)-N1
# C(PUSHLOC) +2 MA DP B30/B28
# X1 NORMALIZATION FACTOR FOR MA-RCON
# 20D XT1LIM SUBROUTINE RETURN ADDRESS
#
# PUSHLOC IS RESTORED TO ITS ENTRANCE VALUE UPON EXITING XT1LIM

XT1LIM  STQ DLOAD
   20D
   RCON
  SR1 BDSU
  NORM PDDL  # MA-RCON B30-N1
   X2
  PDDL SR1
   R(T1)
  BDSU DDV
  SL* DMP
   0 -3,2
   28D
  SL* DSU  # BETA10=BETA5(MA-RT)/(MA-RC)-1 B11
   0 -6,1
   1RTEB25 +1 # 1.0 B-11
  SL1 BOV
   XT1LIM2
  BMN GOTO
   XT1LIM5
   XT1LIM3
XT1LIM2  DLOAD   # BETA10=POSMAX IF OVERFLOW
   2RTEB1
XT1LIM3  SQRT GOTO  # X(T1)=SQRT(BETA10)
   XT1LIMX
XT1LIM5  DLOAD
   ZERORTE
XT1LIMX  GOTO
   20D

# Page 931
# CONSTANTS FOR THE P37 AND P70 PROGRAMS AND SUBROUTINES

  BANK 36
  SETLOC RTECON1
  BANK

1RTEB1  2DEC 1. B-1
1RTEB2  2DEC 1. B-2
1RTEB3  2DEC 1. B-3
1RTEB4  2DEC 1. B-4
1RTEB10  2DEC 1. B-10
1RTEB12  2DEC 1. B-12
1RTEB13  2DEC 1. B-13
1RTEB17  2DEC 1. B-17
1RTEB25  2DEC 1. B-25
# * * B25 AND B28 MUST BE CONSECUTIVE * *
1RTEB28  2DEC 1. B-28
ZERORTE  2DEC 0
M144RTE  2DEC -144. B-28
M15RTE  2DEC -15
10RTE  2DEC 10
M.6RTE  2DEC -.6
1.1RTEB1 2DEC 1.1 B-1
M6RTEB28 2DEC -6
2RTEB1  2OCT 3777737777
M9RTEB28 2DEC -9
M8RTEB28 2DEC -8
30480RTE 2DEC 30480. B-29
VCSPS  2DEC 31.510396 B-5 # (SEE 2VEXHUST)
# Page 932
VCRCS  2DEC 27.0664 B-5
MDOTRCS  2DEC .0016375 B-3
CSUBT  2DEC .5
OCT605  OCT 00605
OCT612  OCT 00612
MCOS7.5  2DEC -.99144486
MSIN7.5  2DEC -.13052619
MCOS22.5 2DEC -.92387953 B-2
THETA165 2DEC .4583333333
THETA210 2DEC .5833333333
EPC1RTE  2DEC .99966 B-1
EPC2RTE  2DEC 100. B-29
EPC3RTE  2DEC .001
EPC4RTE  2DEC .00001
EPC5RTE  2DEC .01 B-6
EPC6RTE  2DEC .000007 B-1
EPC7RTE  2DEC 1000. B-29
EPC9RTE  2DEC 1. B-25
EPC10RTE 2DEC .0001 B-7

  BANK 35
  SETLOC RTECON1
  BANK

C4RTE  2DEC -6.986643 E7 B-30
K1RTE  2DEC 7. E6 B-29
K2RTE  2DEC 6495000. B-29
K3RTE  2DEC -.06105
K4RTE  2DEC -.10453
RTMURTE  2DEC 199650.501 B-18
# Page 933
E3RTE  2DEC 121920. B-29


Messung V0.5 in Prozent
C=61 H=100 G=82

[Dauer der Verarbeitung: 0.25 Sekunden, vorverarbeitet 2026-10-12]