Apollo-11/Comanche055/P37_P70.agc

1951 lines
37 KiB
Plaintext

# 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