Apollo-11/Comanche055/P20-P25.agc

3530 lines
70 KiB
Plaintext

# Copyright: Public domain.
# Filename: P20-P25.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: 562-534
# Mod history: 2009-05-10 RSB Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
# 2009-05-20 RSB Corrections: P2OS -> P20S, STO -> STQ,
# GOTOPOOH -> GOTOP00H, a duplicated EXTEND
# was fixed, P23.10 -> R23.10,
# S22B0X44 -> S22BOX44, S22SUBSCL -> 22SUBSCL,
# S22DPP -> S22DSPP, changed some instructions in
# P23.152.
#
# 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 562
# RENDEZVOUS NAVIGATION PROGRAM 20
#
# PROGRAM DESCRIPTION
#
# MOD NO -- 1
# MOD BY -- N. BRODEUR
#
# FUNCTIONAL DESCRIPTION
#
# TO CONTROL THE CSM ATTITUDE AND OPTICS TO ACQUIRE THE LEM IN THE S+T
# FIELD AND TO POINT THE CSM TRANSPONDER AT THE LEM. TO UPDATE EITHER THE
# LEM OR CSM STATE VECTOR (AS SPECIFIED BY THE ASTRONAUT BY THE DSKY
# ENTRY) ON THE BASIS OF OPTICAL TRACKING DATA (REQUESTED BY DSKY)
#
# CALLING SEQUENCE --
#
# ASTRONAUT REQUEST THROUGH DSKY V37E20E
#
# SUBROUTINES CALLED
#
# R02BOTH (IMU STATUS CHECK) BANKCALL
# FLAGUP 2PHCHNG LOADTIME
# R61CSM (PREFERRED TRACKING ATTITUDE) FLAGDOWN
# R52 (AUTO OPTICS POSITIONING ROUT) SETINTG
# R22 (REND TRACK DATA PROC ROUT) PRIOCHNG
# ENDOFJOB INTEGRV GRP2PC
# INTPRET MKRLEES FINDVAC
#
# NORMAL EXIT MODES --
#
# P20 MAY BE TERMINATED IN TWO WAYS -- ASTRONAUT SELECTION OF IDLING
# PROGRAM (P00) BY KEYING V37E00E OR BY KEYING IN V56E
#
# ALARM OR ABORT EXIT MODES --
#
# NONE DIRECTLY FROM P20
#
# OUTPUT
#
# TRKMKCNT = NO OF RENDEZVOUS TRACKING MARKS TAKEN (COUNTER)
# VHFCNT = NO OF VHF RANGING MARKS INCORPORATED (COUNTER)
#
# FLAGS SET + RESET
#
# RNDVZFLG,VEHUPFLG,UPDATFLG,TRACKFLG,TARG1FLG
# HOLDFLAG,WBODY,WBODY1,WBODY2,DELCDUX,DELCDUY,DELCDUZ
# STIKFLAG,PRFTRKAT,VINTFLAG,DIM0FLAG,R60FLAG,R61CNTR
BANK 33
SETLOC P20S
BANK
EBANK= ESTROKER
COUNT* $$/P20
PROG20 TC BANKCALL
CADR R02BOTH # IMU STATUS CHECK
# BLOCKING OF UPLINK IS DONE BY UPLINK PRG
CAF ZERO
TS TRKMKCNT # ZERO REND TRACKING MARK COUNTER
TS VHFCNT # ZERO REND VHF RNG MRK COUNTER
TC UPFLAG # SET PREF TRACK ATT FLAG
ADRES PRFTRKAT # BIT 10 FLAG 5
TC DOWNFLAG # LEM TO BE UPDATED. VEHUPFLG RESET.
ADRES VEHUPFLG # BIT 8 FLAG 1
# Page 563
TC UPFLAG # SET TRACKFLAG
ADRES TRACKFLG # BIT 5 FLAG 1
TC UPFLAG # SET UPDATFLG
ADRES UPDATFLG # BIT 7 FLAG 1
TC UPFLAG # SET RNDVZFLG
ADRES RNDVZFLG # BIT 7 FLAG 0
TC 2PHSCHNG
OCT 4
OCT 05022
OCT 26000
TC INTPRET
RTB
LOADTIME
STCALL MARKTIME
SETINTG # SET INTEGRATION FLAGS
BOFF SET
RENDWFLG
P20.1
DIM0FLAG # SET TO INTEGRATE THE W MATRIX
P20.1 BON CLEAR
VEHUPFLG
P20.2
VINTFLAG # SET FOR LM INTEGRATION
P20.2 CALL
INTEGRV
CALL
GRP2PC # GROUP 2 PHASE CHANGE
CALL
SETINTG # SET INTEGRATION FLAGS
BOFF CLEAR
VEHUPFLG
P20.3
VINTFLAG # SET FOR LM INTEGRATION
P20.3 CALL
INTEGRV
EXIT
CAF PRIO26
TC FINDVAC
EBANK= MRKBUF2
2CADR R22
TC 2PHSCHNG
OCT 00072
OCT 00111
PIKUP20 CAF PRIO14 # ALLOW HIGHER PRIO THAN LAMBERT
TC PRIOCHNG
CAF BIT5 # IS TRACK FLAG SET
MASK STATE +1
EXTEND
BZF ENDOFJOB # NO
# Page 564
CAF BIT13
MASK STATE +3 # IS REFSMFLG SET
EXTEND
BZF ENDOFJOB
CAF ZERO
TS R61CNTR # INITIALIZE R61 COUNTER
TC BANKCALL
CADR R61CSM
EBANK= QMIN
CAF EBANK5
TS EBANK
TC UPFLAG # SET TARGET FLAG TO LEM
ADRES TARG1FLG # BIT 10 FLAG 1
P20R52JB TC INTPRET
CALL
R52 # SET UP AUTO OPTICS JOB
EXIT
TC BANKCALL
CADR MKRLEES
CAF ONE # HOLD PRESENT ATTITUDE
TS HOLDFLAG
TC ENDOFJOB
OCT203 OCT 00203
FIRST3 EQUALS FURST3
# Page 565
# ORBITAL NAVIGATION PROGRAM 22
BANK 31
SETLOC P20S1
BANK
EBANK= LANDMARK
COUNT* $$/P22
PROG22 TC DOWNFLAG # RESET RNDVZFLG BIT 7 FLAG 0
ADRES RNDVZFLG
TC BANKCALL
CADR R02BOTH # IMU STATUS CHECK
TC INTPRET # COMPUTE ANGLE BETWEEN Y AND VXR SM
RTB
LOADTIME
STCALL TDEC1
CSMCONIC # INTEGRATE TO PRESENT TIME
VLOAD VXV # CROSS PRODUCT BETWEEN V AND R
VATT
RATT
UNIT DOT
REFSMMAT +6
ABS
SL1 ARCCOS
STORE +MGA
CLEAR EXIT
RENDWFLG
CAF V06N45B
TC BANKCALL
CADR GOFLASHR
TC GOTOPOOH # TERM P22
TC PROG22A # PROC
TC -5 # ENTER
CAF THREE
TC BLANKET # BLANK OUT R1 + R2
TC ENDOFJOB
PROG22A CS PRIO7 # RESULT=70777 SET OFFSET NO.=0
MASK LANDMARK
TS LANDMARK
TC INTPRET
CLEAR
P22MKFLG
SET BOFF
ERADFLAG
CMOONFLG
PROG22B # EARTH
SET # MOON
LUNAFLAG
DLOAD CALL # MPAC=V05N70,MPAC+1=NONZERO FOR N70
V05N7022
# Page 566
S22N7071
GOTO
CALLR52
PROG22B CLEAR SET # EARTH ORBIT
LUNAFLAG
KNOWNFLG
CALL # GET LAT/LONG/ALT FROM ASTRO
P22SUBRB
CALLR52 EXIT
TC 2PHSCHNG
OCT 00004
OCT 05022
OCT 13000
CAF FIVE
TS MARKINDX # SET MARK INDEX=5 FOR R52
TC UPFLAG
ADRES TARG2FLG # SET FOR SIGHTING LMK
TC DOWNFLAG
ADRES TARG1FLG # CLEAR FOR NON-LEM
TC INTPRET
CALL
R52
DOV5N71 SLOAD CALL # MPAC=V05N71,MPAC+1=0 FOR N71
V05N7122
S22N7071
PROG22C LXC,2 SLOAD*
MARKSTAT
QPRET,2
STCALL 8NN
S22.1 # ESTABLISH LANDMARK -- COMPUTE ORBITAL
P22OVER EXIT
TC PHASCHNG
OCT 04022
TC PROG22A # POINT A ON GSOP
V06N45B VN 0645
V05N7022 VN 00570
V05N7122 VN 00571
SETLOC P20S
BANK
SETLOC P20S1
BANK
S22LSITE RTB # CONVERT RLS FROM MOON-FIXED TO BASIC REF
LOADTIME
STOVL 6D # 6-7D= TIME
RLS
STODL 0D # 0-5D= LANDING SITE VECTOR
HIDPHALF # MPAC= ANY NON-ZERO FOR MOON
CALL
# Page 567
RP-TO-R # RLS IN BASIC REF B-27 IN MPAC
VSR2 # LUNAFLAG AND ERADFLAG SET ABOVE
STORE ALPHAV # SCALE RLS B-29 FOR LAT-LONG
RTB
LOADTIME # SET PRESENT TIME IN MPAC FOR LAT-LONG
CALL
LAT-LONG
GOTO
S22TOFF # EXIT
OBTAINLL CALL # GET LAT/LONG/ALT FROM ASTRO
P22SUBRB
GOTO
S22TOFF # EXIT
P22SUBRB STQ EXIT # GET LAT/LONG/ALT FROM ASTRO
S22TOFF +1
CAF V06N89B
TC BANKCALL
CADR GOFLASH
TC GOTOPOOH # TERMINATE
TC +2 # PROCEED
TC -5 # ENTER OR RECYCLE
TC INTPRET
DLOAD ABS # TEST LAT/LONG GREATER THAN 90
LANDLAT
BDSU BMN # 1/4 REV - LAT
DP1/4TH
N89ERRX
DLOAD ABS
LANDLONG
BDSU BPL
DP1/4TH
+4
N89ERRX EXIT
TC FALTON
TC P22SUBRB +2 # LONG GR. THAN 90 REDISPLAY
CALL
LLASRDA
GOTO
S22TOFF +1 # EXIT
S22N7071 STORE 8KK # 8KK=V05N71,V05N70 8KK+1=0 N71, NOT 0 N70
STQ EXIT
S22TOFF
S22DSPPA CA 8KK # V05N70 OR V05N71
TC BANKCALL
CADR GOFLASHR
TC GOTOPOOH # V34E TERMINATE
TC +5 # V33E PROCEED
TC -5 # V32E RECYCLE
CAF FIVE # IMMEDIATE RETURN BLANK OUT R1,R3
TC BLANKET
# Page 568
TC ENDOFJOB
CA LANDMARK
MASK PRIO7 # 07000
TS CXOFF # 08000 = OFFSET INDICATOR
CS PRIO5 # 5 8-5
AD CXOFF
EXTEND
BZMF +2 # OFF=0 THRU 5 OK
TC S22DSPP # OFF=6.7 ILLEGAL REDISPLAY
TC DOWNFLAG
ADRES KNOWNFLG # CLEAR KNOWNFLG
CA LANDMARK # MASK A FROM ABCDE
MASK 13,14,15
EXTEND
BZMF S22DSPP # A=0,4,5,6,7 ILLEGAL REDISPLAY
TS 22SUBSCL # TEMP
CS BIT14
AD 22SUBSCL
CCS A
S22DSPP TC FALTON # + A=3 ILLEGAL REDISPLAY
TC S22DSPPA # COMMON ERROR EXIT BACK TO DISPLAY
TC +2 # - A=1 KNOWN LMK CHECK DE
TC S22ABDE # -0 A=2 UNKNOWN LMK, DE MEANINGLESS
TC UPFLAG
ADRES KNOWNFLG # SET KNOWNFLG
CS HIGH9 # RESULT= 00077
MASK LANDMARK
TS 22SUBSCL # 000DE
CS BIT1
AD 22SUBSCL
EXTEND
BZMF S22ABDE # DE=0,1 OK FOR BOTH N70,N71
CA 8KK +1 # =0 FOR N71, NOT =0 FOR N70
EXTEND
BZF S22DSPP # N71 REDISPLAY DE MUST= 0 OR 1
CA BIT5 # N70 TEST DE= 50-57 OCTAL FOR ADV. ORBIT
AD OCT50 # SUM=00070
MASK 22SUBSCL # 00D0
CS A
AD OCT50
EXTEND
BZF DE-GR-50 # D=5 OR DE=50-57, OK FOR N70
TC S22DSPP # DE NOT 50-57 ILLEGAL, REDISPLAY
S22ABDE TC INTPRET
BOFF SLOAD
KNOWNFLG # UNKNOWN LMK, DE MEANINGLESS
S22TOFF
22SUBSCL # =0 GET LLA FROM ASTRO, NOT=0 USE RLS
BHIZ GOTO
OBTAINLL # GET LAT/LONG/ALT FROM ASTRO N89
# Page 569
S22LSITE # GET LAT/LONG/ALT FROM RLS
DE-GR-50 TC 2PHSCHNG
OCT 00004
OCT 05022
OCT 13000
CA FIVE
TS MARKINDX
TC UPFLAG
ADRES TARG2FLG
TC DOWNFLAG
ADRES TARG1FLG
TC INTPRET
CALL
ADVORB
GOTO
DOV5N71
# Page 570
# PROGRAM NAME: OPTICS CALIBRATION ROUTINE
# MOD NO: 1
# MOD BY: TOM KNATT
#
# FUNCTIONAL DESCRIPTION: TO MEASURE THE EFFECT OF SOLAR RADIATION ON
# THE SXT TRUNNON ANGLE AND STORE THE MEASURED TRUNNION BIAS FOR P23
#
# CALLING SEQUENCE: CALL
# R57
#
# SUBROUTINES CALLED: DISPLAY ROUTINES
#
# NORMAL EXIT MODES: VIA EGRESS
#
# ALARMS: NONE
#
# ABORT MODES: P23 ABORT IF MARKING SYSTEM OR EXTENDED VERB ACTIVE
#
# INPUT: NONE REQUIRED, NORMALLY CALLED BY P23
#
# OUTPUT: TRUNNION BIAS ANGLE: ANGLE DETERMINED WHEN SHAFT LINE OF SIGHT
# (SLOS) AND LANDMARK LINE OF SIGHT (LLOS) ARE SUPERIMPOSED. THIS ANGLE
# MAY NOT BE EXACTLY ZERO BECAUSE OF UNEVEN HEATING OF THE OPTICS, FOR
# EXAMPLE.
#
# ERASABLE INITIALIZATION REQUIRED: MRKBUF1, EXTVBACT
#
# DEBRIS: RUPTREGS USED BY MARKRUPT AND ERASABLES USED BY DISPLAYS.
BANK 33
SETLOC P20S
BANK
COUNT* $$/R57
EBANK= MRKBUF1
R57 STQ EXIT
EGRESS
CAF EBANK7
TS EBANK
CAF SIX # BIT2 = MARKING SYSTEM IN USE
MASK EXTVBACT # BIT3 = EXTENDED VERB IN PROGRESS
CCS A
TC P23ABRT # SET, THEREFORE ABORT
CAF BIT2 # NOT SET
ADS EXTVBACT # SET IT
R57A TC UPFLAG # SET V59FLAG (BIT 12 FLAG 5 TO INDICATE
ADRES V59FLAG # CALIBRATION MARK
CAF V59NB
TC BANKCALL
CADR GOMARKFR
TC GOTOPOOH # TERMINATE
TC ENDR57
TC ENDR57
CAF SEVEN
# Page 571
TC BLANKET # BLANK OUT R1,R2,R3
TC ENDOFJOB
# STORE TRUNNION ANGLE (OCDU)
MARKDISP CAF V06N87NB
TC BANKCALL
CADR GOMARKFR
TC GOTOPOOH # TERMINATE
TC R57B # PROCEED
TC R57A # ENTER (RECYCLE)
CAF FIVE
TC BLANKET # BLANK OUT R1,R3
TC ENDOFJOB
R57B CA 19.77DEG # PUT FIXED INTO ERASABLE FOR MSU
TS L # INSTRUCTION COMING UP
CA MRKBUF1 +5 # CONTAINS TRUNNION
EXTEND
MSU L # CONNECTS TRUNBIAS FROM 2'S TO 1'S
TS TRUNBIAS
ENDR57 TC DOWNFLAG # RESET V59FLAG
ADRES V59FLAG # BIT 12 FLAG 5
CAF EBANK5
TS EBANK
CAF PRIO14
TC NOVAC # THIS JOB CLEARS BIT IN
EBANK= MARKSTAT
2CADR ENDMARK # MARKING IN R57 SO R53 CAN TAKE OVER
TC INTPRET
GOTO
EGRESS
P23ABRT TC BAILOUT
OCT 01211
V06N87NB VN 0687
V59NB VN 5900
V51NB VN 5100
19.77DEG OCT 61740
# Page 572
# PROGRAM DESCRIPTION
# MOD NO: 1
# MOD BY: N. BRODEUR
#
# FUNCTIONAL DESCRIPTION
#
# TO PERFORM SIGHTING MARKS IN CONJUNCTION WITH THE RENDEZVOUS NAVIG-
# ATION PROGRAM. CALLED BY ASTRONAUT VIA EXTENDED VERB.
#
# CALLING SEQUENCE:
#
# R21 VIA V57
# R23 VIA V 54
#
# SUBROUTINES CALLED:
#
# FLAGUP FLAGDOWN BANKCALL
# ENDOFJOB GOMARK2 GOMARKF
# INTPRET GENTRAN KLEENEX
# ENDMARK
#
# NORMAL EXIT MODES:
#
# MARKRUPT USED BY SXTMARK HAS BEEN MODIFIED TO STORE MARK IN MRKBUF2
# FOR USE BY R22. WHEN ASTRONAUT IS FINISHED TAKING MARKS, HE HITS AN
# PROCEED, R21 IS TERMINATED THUS CAUSING THE FINAL MARK TO BE TRANSFRD
# TO MRKBUF2 FOR PROCESSING BY R22
#
# ALARM OR ABORT EXIT MODES:
#
# NONE
#
# OUTPUT:
#
# 7 REGISTER MRKBUF2 CONTAINING TIME2,TIME1,CDUY,OPTICS X,CDUZ, OPTICS Y,
# CDUX.
#
# ERASABLE INITIALIZATION REQUIRED
#
# FLAGS SET AND RESET
# R21MARK (COMMUNICATION TO MARKRUPT TO STORE MARKS IN MRKBUF1 +2)
# R23FLG INDICATES COAS MARKING
#
# DEBRIS
EBANK= MRKBUF1
SETLOC RENDEZ
BANK
COUNT* $$/R21
R21CSM TC UPFLAG # SET R21MARK
ADRES R21MARK # BIT 14 FLAG 2
R23CSM CA NEGONE
TS MRKBUF1
TS MRKBUF2
CA FLAGWRD1
MASK R23BIT # TEST R23FLG
EXTEND
BZF R21C1 # NOT SET REGULAR R21 MARKING
CAF V0694 # R23 BACKUP MARKING
TC BANKCALL # DISPLAY SHAFT + TRUNNION
CADR GOMARKF
TC R21END # TERM
TC +2 # PROC
# Page 573
TC -5 # ENTER
R23CSM1 CAF V53 # PERFORM ALT LOST SIGHT MARK
TC BANKCALL
CADR GOMARK2
TC R21END # V34: TERMINATE R23
TCF R21CSMA # PROCEED: END BACK UP MARKING (R23)
CAF SIX # TRANSFER MRKBUF1 TO MRKBUF2
TC GENTRAN
ADRES MRKBUF1
ADRES MRKBUF2
EXTEND
DCA TIME2
DXCH MRKBUF1 # READ TIME
CA CDUY # READ CDU ANGLES
TS MRKBUF1 +2
CA CDUZ
TS MRKBUF1 +4
CA CDUX
TS MRKBUF1 +6
RELINT
TC R23CSM1
R21C1 CAF V51NB
TC BANKCALL
CADR GOMARK2
TC R21END # V34: TERMINATE R21
TCF R21CSMA # PROCEED: END R21
TCF R21C1 # RECYCLE
R21CSMA CA MRKBUF1 # IF -1 NO MARK
AD ONE
EXTEND
BZF R21END # ZERO = NO MARK
CAF SIX # MARK THEREFORE TRANSFER IT TO MRKBUF2
R21CSM1 TC GENTRAN # TRANSFER MRKBUF1 TO MRKBUF2
ADRES MRKBUF1
ADRES MRKBUF2
RELINT
R21END TC BANKCALL
CADR KLEENEX
TC DOWNFLAG # RESET R21MARK
ADRES R21MARK # BIT 14 FLAG 2
TC ENDMARK # END MARKING AND ENDJOB
V53 VN 5300
V0694 VN 0694
# Page 574
# PREFERRED TRACKING ATTITUDE ROUTINE R61CSM
#
# PROGRAM DESCRIPTION
# MOD NO: 2
# MOD BY: N. BRODEUR
#
# FUNCTIONAL DESCRIPTION:
#
# TO COMPUTE THE PREFERRED TRACKING ATTITUDE OF THE CSM TO ENABLE OPTICS
# TRACKING OF THE LM AND TO PERFORM THE MANEUVER TO THE PREFERRED
# OR X-AXIS TRACKING ATTITUDE.
#
# CALLING SEQUENCE:
#
# TC BANKCALL
# CADR R61CSM
#
# SUBROUTINE CALLED
#
# MAKECADR BANKCALL
# INTPRET FLAGUP FLAGDOWN
# BANKJUMP CRS61.1 R60CSM
# PHASCHNG
#
# NORMAL EXIT MODES:
#
# NORMAL RETURN TO CALLER + 1
#
# OUTPUT:
#
# SEE OUTPUT FOR CRS61.1 & ATTITUDE MANEUVER ROUTINE (R60CSM)
#
# ERASABLE INITIALIZATION REQUIRED
#
# GENRET USED TO SAVE Q FOR RETURN
# R61CNTR MUST BE PRESET TO ZERO
#
# FLAGS SET + RESET
#
# 3-AXIS FLAG
#
# DEBRIS
#
# SEE SUBROUTINES
EBANK= GENRET
COUNT* $$/R61 # ROUTINES -- NAVIGATION -- PREF. TR. 9TT=
R61CSM CAF EBANK6 # SWITCH TO EBANK 6
XCH EBANK
TS SAVBNK # SAVE EBANK
TC MAKECADR
TS GENRET
CCS R61CNTR # TEST R61DNTR
TC DECRM61 # NOT READY TO DO R61
TC +2 # DO R61
TC DECRM61 +1
TC INTPRET
CALL
CRS61.1 # LOS DETERMINATION + VEH ATTITUDE
EXIT
INDEX MPAC
TC +1
TC R61END # SUBROUTINE DRIVING DAP (EXIT R61)
# OR AUTO MODE NOT SET (EXIT R61)
# OR SKIKFLAG SET (EXIT R61)
R61C1 TC DOWNFLAG # RESET 3-AXIS FLAG
ADRES 3AXISFLG # BIT 6 FLAG 5
# Page 575
CS ONE # SET R61CNTR NEG. TO INDICATE KALCMANU
TS R61CNTR
TC UPFLAG # SET FLAG FOR PRIORITY DISPLAYS FOR R60
ADRES PDSPFLAG # BIT 12 FLAG 4
TC BANKCALL
CADR R60CSM
TC DOWNFLAG # RESET FLAG FOR PRIORITY DISPLAYS IN R60
ADRES PDSPFLAG # BIT 12 FLAG 4
TC PHASCHNG
OCT 00111
CAF ZERO
TC DECRM61
R61END CAF THREE
DECRM61 TS R61CNTR
CAE GENRET
LXCH A # RETURN IS IN L
CA SAVBNK # RESTORE EBANK
XCH EBANK
LXCH A # RETURN IS NOW BACK IN A
TC BANKJUMP # EXIT R61
BANK 13
SETLOC P20S2
BANK
EBANK= MRKBUF1
# Page 576
# BVECTOR PERFORMS COMPUTATIONS FOR
#
# DELTAQ, THE MEASURED DEVIATION BASED ON THE DIFFERENCE BETWEEN THE CSM-LEM
# STATE VECTOR ESTIMATES AND THE ACTUAL TRACKING MEASUREMENT.
#
# US, THE MODIFIED FICTITIOUS STAR DIRECTION VECTOR
# GEOMETRY VECTORY B ASSOCIATED WITH EACH TRACKING MEASUREMENT.
#
# INPUT
#
# UM,1/2 UNIT VECTOR ALONG THE CSM-LM LINE-OF-SIGHT (BASIC REF. SYSTEM)
#
# USTAR,FICTITIOUS STAR DIRECTION (1/2 UNIT VECTOR)
#
# RCLP,RELATIVE CSM TO LM POSITION VECTOR
#
# OUTPUT
#
# USTAR,MODIFIED FICTITIOUS STAR DIRECTION (1/2 UNIT VECTOR)
#
# BVECTOR = 9 DIMENSIONAL BVECTOR (1/2 UNIT VEC.)
#
# DELTAQ = MEASURED DEVIATION
#
# CALLING SEQUENCE
#
# L CALL BVECTORS
#
# NORMAL EXIT
#
# L+1 OF CALLING SEQUENCE
COUNT 23/20SUB
BVECTORS STQ
EGRESS
VLOAD UNIT
RCLP # RELATIVE POSITION VECTOR
STODL 26D # RCLP UNIT VEC
36D # RCLP ABS VALUE
STOVL TEMPOR1 # MOVE TO SAFE LOCATION
USTAR
VXV UNIT
26D # USTAR = UNIT(US X UCL)
STCALL BVECTOR
GRP2PC # PHASE CHANGE
VLOAD
BVECTOR
STORE USTAR
DOT SL1
UM # USTAR DOT UM
ACOS DSU
DP1/4TH
NORM DMP
X1
PI/4.0
DMP SRR*
TEMPOR1 # RCLP ABS VALUE
0 -3,1 # ADJUST SCALING
STOVL DELTAQ
ZEROVECS
STORE BVECTOR +6
STORE BVECTOR +12D
GOTO
# Page 577
EGRESS
PI/4.0 2DEC .785398164
# Page 578
# GETUM: DETERMINES THE LINE OF SIGHT UNIT VECTOR UM IN THE BASIC REFERENCE
# COORDINATE SYSTEM FROM THE OPTICS SHAFT AND TRUNNION ANGLES AND THE IMU
# GIMBAL ANGLES.
#
# INPUT
#
# MARKDATA, BASE ADDRESS OF MARK DATA
# REFSMMAT, ROTATION MATRIX FROM STABLE MEMBER TO BASIC REF. COORD. SYSTEM
#
# SUBROUTINES CALLED-
#
# SXTNB -- SEXT. ANGULAR READINGS TO NAV. BASE COOR.
# NBSM -- TRANSFORM FROM NAV. BASE TO STABLE MEMBER
#
# OUTPUT
#
# MPAC = LINE OF SIGHT 1/2 UNIT VECTOR IN BASIC REFERENCE SYSTEM
#
# CALLING SEQUENCE
#
# L CALL GETUM
#
# NORMAL EXIT
#
# L+1 OF CALLING SEQUENCE
GETUM STQ SETPD
EGRESS
0
LXC,1 VLOAD*
MARKDATA # CONTAINS ADDRESS OF MARK DATA
1,1
STODL* MARKDOWN +1 # TRANSFER DATA FROM WORKING STORAGE
0,1 # TO MARKDOWN ARRAY FOR DOWNLINK
STORE MARKDOWN
AXT,2
2
XSU,2 SXA,2
X1 # X1 = MARKDATA
S1 # S1 = MARKDATA(ADR) +2
CALL
SXTNB # SEXT. ANGULAR READINGS TO NAV. BASE COOR.
CALL
NBSM # TRANSFORM FROM NAV. BASE TO STABLE MEM.
VXM VSL1
REFSMMAT
GOTO # MPAC = (UM) LINE OF SIGHT VECTOR
EGRESS # EXIT
# Page 579
# RENDEZVOUS TRACKING DATA PROCESSING ROUTINE (R22)
#
# PURPOSE (1) TO PROCESS RENDEZVOUS SIGHTING MARK DATA TO UPDATE THE STATE VECTOR OF EITHER THE CSM OR LM AS
# DEFINED BY THE RENDEZVOUS NAVIGATION PROGRAM (P20).
#
# ASSUMPTIONS (1) THIS ROUTINE IS MANUALLY SELECTED BY THE ASTRONAUT BY V55E WHENEVER RENDEZVOUS SIGHTING MARKS
# ARE DESIRED. ITS SELECTION, HOWEVER, IS LIMITED TO PERIODS WHEN THE CMC IS HOLDING FOR A V/N FLASHING
# DATA DISPLAY. THIS ROUTINE RETURNS TO THE ORIGINAL PROGRAM AT THE INTERRUPTED DISPLAY.
BANK 34
SETLOC P20S3
BANK
COUNT 34/R22
R22 CAF PRIO26
TS PHSPRDT2
TC PRIOCHNG
CA NEG3
TS MRKBUF2
TC INTPRET
RTB
LOADTIME
STORE VHFTIME # PRESENT TIME
REND1 CALL
GRP2PC
CALL
WAITONE
REND1A EXIT
CA MRKBUF2
EXTEND
BZF REND2
EXTEND
BZMF REND3A
REND2 CAF SIX
TC GENTRAN
ADRES MRKBUF2
ADRES MARKTIME # MARKTIME MUST BE CONTIGUOUS WITH VTEMP
CAF NEG3 # NEG VALUE TO INDICATE VALUES USED
TS MRKBUF2
RELINT
TC INTPRET
CLEAR CALL
SOURCFLG # 0 = OPTICS DATA
GRP2PC
SSP GOTO
MARKDATA
ECADR VTEMP -2
REND4
REND3A TC INTPRET
REND3 CALL
# Page 580
GRP2PC
CALL
WAITONE
BOFF
VHFRFLAG
REND1A
RTB
LOADTIME # PRESENT TIME
DSU DSU
60SECDP # 1 MIN
VHFTIME # LAST READING OF RADAR
BMN CALL
REND1A
RANGERD # READ RADAR RANGE
DLOAD
MARKTIME
STORE VHFTIME # FOR DOWNLINK
REND4 CALL
SETINTG # SET INTEGRV FLAGS
BON CALL
VEHUPFLG
CSMUPP # BRANCH IF CSM UPDATE
INTEGRV
CALL
GRP2PC # PHASE CHANGE
CALL
SETINTG # SET INTEGRV FLAGS
CLEAR
VINTFLAG # SET INTEGRATION VEHICLE TO LM
REND5 BOFF SET
RENDWFLG
REND5A # DO NOT INTEGRATE W IF FLAG = 0
DIM0FLAG
REND5A CALL
INTEGRV
CALL
SHIFTNDX # SET EARTH MOON SCALING INDEX
CALL
CMPOS # SET CSM POSITION
SET CALL
INCORFLG # SET FOR 1ST PASS
LMPOS # SET LM POSITION
CLEAR BON
ORBWFLAG # CLEAR FOR ORBITAL AND CISLUNAR
RENDWFLG
REND6
DLOAD
WRENDPOS
STCALL 0 # 0 = WRENDPOS 1 = WRENDVEL
INITIALW # INTIIALIZE W MATRIX
# Page 581
DLOAD
ZEROVECS
STORE VHFCNT # ZERO OUT VHFCNT AND TRKMKCNT
REND6 SET
RENDWFLG
VLOAD VSU
LEMPOS
CSMPOS
STORE RCLP # LM - CSM
REND7 UNIT BON
SOURCFLG
REND14 # BRANCH IF DATA IS RADAR
STORE UCL
BOFF CALL
INCORFLG
REND9
GETUM # CALCULATE UM LINE OF SIGHT
STOVL UM
UCL
VXV BOV
UM # UCL X UM
REND8
REND8 UNIT BOV
REND3 # BRANCH IF OVERFLOW IGNORE MARK
STORE USTAR
REND9 CALL
BVECTORS
BON VLOAD
VEHUPFLG
REND9A
BVECTOR
VCOMP
STORE BVECTOR
REND9A CALL
GRP2PC
BON
R23FLG
REND15 # BRANCH IF BACKUP OPTICS (R23 WORKING)
DLOAD DAD
SXTVAR
IMUVAR
REND10 STOVL VARIANCE # TEMP STORAGE FOR VARIANCE CALC.
RCLP
ABVAL NORM
X1
DSQ DMP
VARIANCE
XAD,1 CALL
X1
SHIFTNDX # GET EARTH MOON SCALING INDEX
# Page 582
XAD,1 XAD,1
X2
X2
SR* TLOAD
0 -2,1 # ADJUST SCALING TO B-40
MPAC
STORE VARIANCE
SLOAD SR
INTVAR # INTEGRATION VARIANCE SCALED B-15
25D # SCALE IT B-40
TAD RTB
VARIANCE
TPMODE
STORE VARIANCE
BOFF TAD
SOURCFLG # BRANCH IF NOT VHF RADAR
REND10A
RVARMIN # VHF RADAR MIN. VARIANCE
BPL TLOAD
REND10A
RVARMIN
ABS # MIN. VALUE WAS STORED AS NEG.
STORE VARIANCE # STORE MIN. VALUE
REND10A CLEAR CALL
DMENFLG # CLEAR FOR 6 X 6 W MATRIX
INCORP1 # CALCULATE UPDATE
CALL
GRP2PC
BOFF CALL
INCORFLG
REND12
SHIFTNDX # GET EARTH MOON SCALING INDEX
VLOAD ABVAL
DELTAX +6
SR*
0,2
STOVL N49DISP +2
DELTAX
ABVAL SR*
0,2
STORE N49DISP
SLOAD
RMAX
SR DSU
10D
N49DISP
BMN SLOAD
RENDISP # BRANCH IF POS UP. GREATER THAN MAX.
VMAX
DSU BMN
# Page 583
N49DISP +2
RENDISP # BRANCH IF VEL. UPDATE GREATER THAN MAX.
REND12 CALL
INCORP2 # INCORPORATE UPDATE VALUES INTO STATE VEC
BON BOFF
SOURCFLG
REND16 # BRANCH IF DATA IS RADAR
INCORFLG
REND17
CALL
SHIFTNDX # GET EARTH MOON SCALING INDEX
BON CALL
VEHUPFLG
REND18 # BRANCH IF CSM UPDATE
LMPOS # GET LM POSITION
REND13 CALL
GRP2PC # PHASE CHANGE
VLOAD VSU
LEMPOS
CSMPOS
STORE RCLP # LM - CSM
CLRGO
INCORFLG
REND7 # BRANCH FOR 2ND PASS THIS OPTICS MARK
CSMUPP CLEAR CALL
VINTFLAG # SET INTEGRATION VEHICLE EQ LM
INTEGRV
CALL
GRP2PC # PHASE CHANGE
CALL
SETINTG # SET FLAGS FOR INTEGRATION
GOTO
REND5
REND14 STOVL BVECTOR # VHF RADAR BVECTOR
ZEROVECS
STORE BVECTOR +6
STOVL BVECTOR +12D
RCLP
UNIT DLOAD
VHFRANGE # VHFRANGE SCALED B-27
BON SR2
MOONTHIS
+1
DSU SET
36D # ABVAL (RCLP)
INCORFLG
STORE DELTAQ
BOFF VLOAD
VEHUPFLG
REND14A
# Page 584
BVECTOR
VCOMP
STORE BVECTOR
REND14A CALL
GRP2PC
DLOAD GOTO
RVAR
REND10
REND15 SLOAD DAD # GET ALT LOS VARIANCE
ALTVAR # BACKUP OPTICS
IMUVAR # IMU VARIANCE
GOTO
REND10
REND16 LXA,1 INCR,1
VHFCNT # VHF RADAR UPDATE COUNT
DEC 1
SXA,1 GOTO
VHFCNT # UPDATE COUNT
REND1
REND17 LXA,1 INCR,1
TRKMKCNT # OPTICS MARK COUNT
DEC 1
SXA,1 GOTO
TRKMKCNT # UPDATE COUNT
REND3
REND18 CALL
CMPOS # GET CSM POSITION
GOTO
REND13
CMPOS VLOAD VSR*
DELTACSM
7,2
VAD
RCVCSM
STORE CSMPOS # CSM POSITION SCALED B-27 OR B-29
RVQ
LMPOS VLOAD VSR*
DELTALEM
7,2
VAD
RCVLEM
STORE LEMPOS # LM POSITION SCALED B-27 OR B-29
RVQ
RENDISP EXIT
CA FLAGWRD9
MASK SOURCBIT
EXTEND
BZF +3
CA BIT2
TC +2
# Page 585
CA BIT1
TS N49DISP +4
CAF ZERO # SET TEMPOR1 > ZERO TO INDICATE
TS TEMPOR1 # V06 N49 DISPLAY HASN'T BEEN ANSWERED
TC PHASCHNG
OCT 04022
CAF PRIO27 # SET UP DISPLAY JOB WITH HIGHER PRIORITY
TC NOVAC
EBANK= MRKBUF1 # THAN PRESENT JOB
2CADR RENDISP2
RENDISP7 TC INTPRET
STORE MPAC
SLOAD BZE
TEMPOR1
RENDISP7 +1 # DISPLAY HAS NOT BEEN ANSWERED YET
BMN GOTO
REND12 # NEG INDICATES PROCEED
RENDISP3 # POS INDICATES RECYCLE
RENDISP2 CAF V06N49
TC BANKCALL
CADR PRIODSP
TC GOTOV56 # TERM EXIT P20 VIA V56
CS ONE # NEG INDICATES PROCEED RENDISP7 JOB
TS TEMPOR1 # POS INDICATES RECYCLE RENDISP7 JOB
TC ENDOFJOB # GO COMPLETE ABOVE JOB
RENDISP3 BON
SOURCFLG
REND1 # DATA WAS RADAR GO LOOK FOR OPTICS NEXT
EXIT
EBANK= MRKBUF1
INHINT
CAF BUFBANK
TS BBANK
CA NEGONE
TS MRKBUF1 # ERASE MARK ONE BUFFER
TS MRKBUF2 # ERASE MARK TWO BUFFER
RELINT
RENDISP4 TC INTPRET
GOTO
REND3
SXTVAR 2DEC 0.04 E-6 B+16 # SXT ERROR VARIANCE = .04 (MR)SQ
IMUVAR 2DEC 0.04 E-6 B+16 # IMU ERROR VARIANCE = .04 (MR)SQ
V06N49 VN 0649
EBANK= MRKBUF1
BUFBANK BBCON RENDISP3
BANK 31
SETLOC R22S1
# Page 586
BANK
SETINTG STQ CALL
EGRESS
INTSTALL # RESERVE INTEGRATION
DLOAD SET
MARKTIME
STATEFLG
STORE TDEC1 # MARKTIME
CLEAR CLEAR
INTYPFLG # PRECISION INTEGRATION
DIM0FLAG
SET CLRGO
VINTFLAG # SET VEHICLE EQ. CSM
D6OR9FLG # SET W MATRIX DIM. EQ 6
EGRESS # EXIT
CNTCHK STQ
POINTEX
CONTCHK BOFF
REFSMFLG # BRANCH TO END OF JOB IF REFSMMAT NO GOOD
ENDPLAC
SLOAD BMN
R61CNTR
WAITONE1
BON BOFF # IS TRACK FLAG SET
UPDATFLG
POINTEX
TRACKFLG
ENDPLAC
EXIT
REDOR22 TC PHASCHNG
OCT 00132
CAF PRIO26
TC PRIOCHNG
TC WAITONE +3
WAITONE STQ
POINTEX
WAITONE1 EXIT
CAF 4SECS # WAIT 4 SECS.
TC BANKCALL
CADR DELAYJOB
TC INTPRET
GOTO
CONTCHK # CHECK AGAIN NOW
RANGERD EXIT
INHINT
CS OCT17
EXTEND
WAND CHAN13 # ZERO OUT BITS 1-4 OF CHANNEL 13
CAF OCT11
EXTEND
# Page 587
WOR CHAN13 # GENERAGE SHIFT PULSES TO RADR, SET R. BIT
RELINT
EXTEND
DCA TIME2
DXCH MARKTIME # READ PRESENT TIME
TC DOWNFLAG
ADRES SKIPVHF
TC BANKCALL
CADR RADSTALL # WAIT FOR RANGE COMPLETE
TC LIGHTON # BAD DATA GOOD BIT
TC TRFAILOF # TURN TRACKER LIGHT OFF
RANGERD1 CCS RM # 15 BIT UNSIGNED RANGE
TC RANGERD4 # GR + 0
TC LIGHTON +4 # = + 0
TC RANGERD3 # L - 0
TC RANGERD3 # = - 0
RANGERD4 TC INTPRET
SLOAD DMP
RM
CONVRNGE # CONVERT RANGE TO METERS B-27
RANGERD2 STORE VHFRANGE
SET RVQ
SOURCFLG # SOURCE OF DATA TO VHF RADAR
RANGERD3 CA RM
MASK POSMAX
TS MPAC # MASK OUT NEG. SIGN BIT
TC INTPRET
DMP
CONVRNGE # CONVERT FROM NM TO METERS AND SCALE B-27
DAD GOTO
RANGEB14 # VALUE IN METERS OF SIGN BIT SCALED B-27
RANGERD2
LIGHTON CA VHFRANGE
EXTEND
BZF +2
TC TRFAILON
TC INTPRET
DLOAD
MARKTIME
STORE VHFTIME
GOTO
REND1
RANGEB14 2DEC 303431.7 B-27 # 16384 X 18.52 SCALED B-27
OCT17 OCT 00017
OC40200 OCT 40200
CONVRNGE 2DEC 18.52 B-13 # VHF INPUT RANGE CONV. FROM .01 NM TO M
VHFREAD EXTEND
ROR SUPERBNK # MUST SAVE SBANK BECAUSE OF RUPT
# Page 588
TS BANKRUPT # EXITS VIA TASKOVER BADEND OR GOODEND
CS ZERO
TS RUPTAGN
EXTEND
QXCH QRUPT
CS STATE +2
MASK SKIPVBIT # SKIPVHF FLAG
EXTEND
BZF TASKOVER # BRANCH IF VHF RESTART BIT SET
CAF UPDATBIT
MASK STATE +1 # UPDATEFLG
EXTEND
BZF BYPASS1
CS STATE +4
MASK PDSPFBIT # PDSPFLAG
EXTEND
BZF BYPASS1
CA RNRAD
TS RM # SAVE RANGE
CAF BIT2
EXTEND
RAND CHAN33 # READ DATA GOOD BIT
EXTEND
BZF VHFGOOD # BRANCH IF DATA GOOD BIT EQUALS GOOD
BYPASS TS VHFRANGE # STORE NON ZERO VALUE
CAF TWO
TC POSTJUMP
CADR BADEND
BYPASS1 CAF ZERO
TC BYPASS
VHFGOOD CAF TWO
TC POSTJUMP
CADR GOODEND
SHIFTNDX AXT,2 BON
0
VEHUPFLG
SHIFTA # VEHICLE IS CSM
BON RVQ
LMOONFLG
+1
INCR,2 RVQ
DEC -2
SHIFTA BON RVQ
CMOONFLG
+1 # MOON ORB.
INCR,2 RVQ
DEC -2
INITIALW AXT,1 SSP
36D
S1
# Page 589
6
VLOAD
ZEROVECS
INITA STORE W +36D,1 # CLEAR 0 - 35
TIX,1 AXT,1
INITA
36D
INITB STORE W +90D,1 # CLEAR 54 - 89
TIX,1 SLOAD
INITB
0 # POSITION VALUE
STORE W # INITIALIZE DIAGONAL W POSITION
STORE W +8D
STORE W +16D
SLOAD
1 # VELOCITY VALUE
STORE W +72D # INITIALIZE DIAGONAL W VELOCITY
STORE W +80D
STORE W +88D
RVQ
# Page 590
# CRS61.1 R/10/68
#
# TO COMPUTE THE PREFERRED TRACKING ATTITUDE OF THE CSM WHICH ENABLES
# OPTICS TRACKING OF THE LEM AND LM TRACKING OF THE CSM RADAR TRANSPONDER
# AND TO COMPUTE THE X-AXIS TRACKING ATTITUDE OF THE CSM WHICH ENABLES
# COAS TRACKING OF THE LM.
#
# TO PERFORM THE MANEUVER TO THE SELECTED TRACKING ATTITUDE IF THE
# MANEUVER IS LESS THAN 10 DEGREES BUT TO CALL R60 IF THE MANEUVER IS
# GREATER THAN 10 DEGREES BUT TO CALL R60 IF THE MANEUVER IS
# GREATER THAN 10 DEGREES OR IF THE R60 FLAG IS SET.
#
# (1) EXTRAPOLATE LM AND CSM STATE VECTORS TO PRESENT TIME USING
# CONIC EQUATIONS.
#
# (2) CALCULATE LOS FROM CSM TO LM = RL - RC.
#
# (3) THE PRERFERRED TRACKING ATTITUDE IS DEFINED AS FOLLOWS:
# THE TRACK AXIS (I) IS ALIGNED ALONG THE LOS TO THE LM. THE
# TRACK AXIS (I) IS DEFINED AS:
#
# UNIT(I)=UNIT(Z )COS55 & UNIT(X )SIN55
# - -SC -SC
#
# (4) COMPUTE DESIRED CDU ANGLES, USING VECPOINT.
#
# (Sorry, I don't know where (5) and (6) are. --- RSB 2009.)
# (7) FORM DIFFERENCE BETWEEN DESIRED AND ACTUAL CDUS.
# IF ANY OF THE THREE ANGLE DIFFERENCES EXCEEDS 10 DEGREES,
# GROSS MANEUVER IS REQUIRED. SIGNAL R61 (SET MPAC=1) TO
# OPERATE KALCMANU AND EXIT CRS61.1.
# IF ALL DIFFERENCES ARE LESS THAN 10 DEGREES, CONTINUE.
#
# (8) CALCULATE ORTHOGONAL LOS RATE IN REF COORDS AS
#
# OMEGATH = (UNITLOS(B1) X UNITDV(B1))(ABSDV(B7)/ABSLOS(B29))
#
# CONVERSION FACTOR OF 100/2PI (B4) REV CSEC PER RAD SEC IS
# APPLIED TO YIELD UNITS OF REVS/SEC. SCALE IS CARRIED AS
# B+1+1+7-29+4+1 PLUS RESULTS OF NORMALIZING ABSDV, ABSLOS.
# THE EXTRA B+1 RESULTS FROM RESCALING ABSDV B8 AFTER NORM
# TO AVOID OVFLOW ON DIVIDE.
#
# UNITLOS = UNIT( RL - RC ) B1.
# UNITDY = UNIT( VL - VC ) B1.
# ABSLOS = LENGTH OF LOS, METERS B29.
# ABSDV = LENGTH OF DV, METERS/CSEC B7.
#
# (9) OBTAIN RATE IN SM COORDS.
#
# OMETATHSM = (REFSMMAT)(OMEGATH).
#
# (10) OBTAIN GIMBAL ANGLE INCREMENTS FOR 0.1 SECOND.
#
# DTHETASM = (0.1)(OMEGATHSM)
#
# (11) OBTAIN DELCDUX,Y,Z USING SUBR SMCDURES.
# Page 591
# INPUT CONSISTS OF
#
# (A) VECTOR OF ANGULAR INCREMENTS, DTHETASM, STORED
# IN V(DTHETASM).
# (B) SIN,COS CDUX,Y,Z FROM SUBR CDUTRIG.
#
# TRANSFER OUTPUT OF SMCDURES FROM V(DCDU) TO VAC14D.
#
# (12) CALCULATE ANG LOS RATE IN BODY(NB) COORDS USING SUBR SMNB.
#
# OMEGANB = (SMNB)(OMETATHSM)
#
# SUBR SMNB REQUIRES OMEGATHSM IN V(VAC32D) AND ACTUAL CDUS
# (Y,X,Z ORDER) IN V(VAC20D) WITH S1 OF VAC = BASE ADDRESS
# OF CDUS (FIXLOC + 20D).
#
# (13) CALCULATE ANG LOS RATE IN CONTROL COORDS AS FOLLOWS
#
# WBODY = (MBDYTCTL)(OMEGANB) UNITS=REVS/SEC(B0) (?).
#
# ( 0.5 0 0 ) BODY TO
# MBDYTCTL(B1) = ( 0 COS(7.25)B1 -SIN(7.25)B1 ) = CONTROL
# ( 0 SIN(7.25)B1 COS(7.25)B1 ) AXES
# CONVERSION
# MATRIX
#
# (14) RESCALE WBODY TO UNITS OF 460 DEG/SEC BY APPLYING FACTOR
# OF 0.8 TO REVS/SEC.
#
# (15) ADDRESS LIVE AUTOPILOT REGISTERS IN BASIC (UNDER INHINT).
#
# TRANSFER DESIRED CDUS, SCALED 180 DEGREES, FROM T(SAVEDCDU)
# TO V(CDUXD).
#
# TRANSFER DELCDUS, SCALED 180 DEG, FROM V(VAC14D)
# TO V(DELCDUX).
#
# TRANSFER OMEGA CONTROL, SCALED 450 DEG/SEC, FROM V(MPAC)
# TO V(WBODY).
#
# RELINT, SET MPAC=0, EXIT CRS61.1.
#
# CALL: L CALL CRS61.1
#
# RETURNS: ALL TO L+1.
#
# (1) S(MPAC)=0. NORMAL EXIT. 3 SETS OF INPUTS FED TO DAP.
# (2) S(MPAC)=1. CALCULATED DESIRED CDUS,SP, SET IN T(CPHI)
# FOR KALCMANU. ABS(ACDU - DCDU) EXCEEDS 10 DEGREES.
# (3) S(MPAC)=2. GNCS AUTO MODE NOT SELECTED (BIT10=1).
# (4) S(MPAC)=3. DAP HOLD FLAG (HOLDFLAG) NOT EQUAL -1.
# Page 592
#
# INPUT: (1) TIME2,TIME1. COMPUTER CLOCK TIME,DP, CENTISEC B28.
# (2) CDUX,Y,Z. PRESENT CDU ANGLES,SP,2S COMPL HALF-REVS B0.
# (3) M(REFSMMAT), STABLE MEMBER COORDS B1.
#
# OUTPUT: NORMAL. EXIT WITH S(MPAC) = 0.
#
# (1) CDUXD,CDUYD,CDUZD, DESIRED OUTER, INNER, MIDDLE CDU ANGLES,
# DP, IS COMPL, SCALED 180 DEGREES (HALF-REVS B0).
# (2) DELCDUX,DELCDUY,DELCDUZ. 0.1 SEC DCU ANGULAR INCREMENTS,
# DP, IS COMPL, SCALED 180 DEG.
# (3) WBODY,WBODY1,WBODY2. LOS ANGULAR RATE IN CONTROL COORDS,
# DP, IS COMPL, SCALED 450 DEG/SEC.
#
# SPECIAL. EXIT WITH S(MPAC) = 1.
#
# (1) CPHI,CTHETA,CPSI. DESIRED OUTER, INNER, MIDDLE CDU ANGLES,
# SP, 2'S COMPL, SCALED 180 DEGREES.
#
# EXTERNAL SUBROUTINES USED (B)=BASIC
#
# (1) CALCGA (5) LOADTIME(B) (9) SMNB
# (2) CDUTRIG (6) MATMOVE
# (3) CSMCONIC (7) RCDUS(B)
# (4) LEMCONIC (8) SMCDURES
#
# ERASABLE
#
# (1) S(Q611),EBANK7 CRS61.1 EXIT.
# (2) S(Q6111),EBANK7 CALCDCDU EXIT.
# (3) T(SAVEDCDU),E6 SP VECTOR OF CDUDS.
# (4) V(SAVEPOS),E7 CSM POS VEC AND D(SAVEPOS)= LENGTH OF LOS.
# (5) V(SAVEVEL),E7 CSM VEL VEC.
#
# FLAGWDS: HOLDFLAG. USED, NOT SET.
#
# MISC: (1) ERASABLE ITEMP1 USED TO TEMP STORE EBANK UNDER INHINT.
# (2) ERASABLE P21TIME USED AS TEMP STORE DURING CRS61.1
# (3) ERAS DTHETASM USED AS TEMP STORE DURING EARLY CRS61.1
#
# DEBRIS -- CURRENT VAC AREA, CRS61.1 ERASABLES, ITEMP1, P21TIME
BANK 24
SETLOC P20S4
BANK
EBANK= CDUXD
COUNT* $/CRS61
CRS61.1 STQ SETPD
Q611
0
RTB
# Page 593
LOADTIME # LOAD CLOCK TIME2,1 INTO MPAC.
STORT STCALL P21TIME # STORE CLOCK TIME FOR SUBR R63
R63 # SUBR TO CALC DCDU (T=PRESENT,PASS1)
TLOAD
THETAD # SAVE DCDU(T) FROM CALCDCDU FOR STEP4.
STORE SAVEDCDU
EXIT
TC STEP2CK
AUTOCK CAF PRIO30
EXTEND
RXOR CHAN31
MASK FURST3
EXTEND # AUTO MODE SELECTED (BITS 15-13=011)
BZF DAPCK # YES -- CONTINUE.
TC ASET
DAPCK CS FLAGWRD1 # IS STIKFLAG SET (I.E., IS SOMEONE ON RHC)
MASK STIKBIT
CCS A
TC STEP3CK
ASET CAF ZERO
TS MPAC
TC INTPRET # EXIT CRS61.1
GOTO
Q611
STEP2CK TC BANKCALL
CADR UPACTOFF
CAF TWO # SET TEMPORARY INDEX DTHETASM = 2
CDULOOP TS DTHETASM
INDEX DTHETASM
CA CDUX # SET A = ACTUAL CDU (ACDU).
EXTEND
INDEX DTHETASM # SET INDEX TO ACCESS DESIRED CDU (DCDU).
MSU THETAD # A = DIFF = ACDU - DCDU.
TS MPAC # RETURN TO INTERPRETER FOR 10 DEGREE CK.
TC INTPRET # (DP APPROX SP OK FOR ROUGH CHECK)
ABS DSU
DEGREE10 # IS (ACDU - DCDU) MORE THAN 10 DEGREES.
BPL EXIT # NO -- OK, CONTINUE CHECKING OTHER ANGLES.
STKTEST # TEST STICK FLAG
CCS DTHETASM # HAVE ALL 3 ANGLE DIFFS BEEN CHECKED.
TC CDULOOP # NO -- DIM COUNT, CHECK NEXT ANGLE DIFF.
TC AUTOCK
STKTEST EXIT
CS FLAGWRD1
MASK STIKBIT
# Page 594
CCS A
TC MANUEXIS # STIKFLAG IS NOT SET (DO R63)
CAF BIT3
EXTEND # STIKFLG IS SET
WOR DSALMOUT # TURN ON UPACTY LIGHT
TC ASET # EXIT AND SET R61CNTR
STEP3CK TC INTPRET
SETPD
0 # *
# NOW HAVE DCDUS STORED IN T(SAVEDCDU).
# GO CALC OTHER DAP INPUTS (DELCDU,WBODY)
CRS61.2 VLOAD VSU
DCDU
SAVEVEL # DV = VL - VC
UNIT VCOMP # V(MPAC)=-UNITDV. VAC36D=ABSDV.
VXV VXSC # (-UNITDV)CROSS(UNITLOS).
SAVEPOS
RVCS/RDS # (UNITLOS B1)(UNITDV B1)(CONST B4)=CROSS.
PUSH # HOLD CROSS IN PUSHLIST0. SCALED B6.
DLOAD NORM # OBTAIN ABS VALUE OF LOS.
P21TIME # P21TIME IS TEMP STORE FOR ABSLOS.
X1
PUSH # NORM ABSLOS(DENOM) AND HOLD IN PUSH1.
DLOAD NORM
36D # NORM ABS VALUE OF DV(NUM).
S1
XSU,1 SR1 # X1 = X1(N DENOM)-S1(N NUM).
S1 # SR1 TO AVOID OFLOW ON DOV.
DDV VXSC # ABSDV(MPAC)/ABSLOS(PUSH1) = QUOT.
SXA,1 # QUOT(MPAC) X CROSS(PUSH0)
Q6111 # SAVE SCALE OF RESULT (R-15,1X).
# X1= NORM OF QUOT. QTUOT SCALE B7-B29=B-22
# CROSS IS SCALED B6. NEED SL1 TO RECOVER
# SR1 SO THAT -22+6+1=-15. MPAC NOW HOLDS
# ORTHO LOS RATE (OMEGA TH, B-15,X1).
MXV VSL1 # OBTAIN RATE IN SM COORDS (OMEGTHSM) AND
REFSMMAT # ADJUST FOR REFSMMAT SCALE OF B1.
STORE 20D # OMEGTHSM = VAC20D
# DELTA THETA SM = OMEGTHSM * .1B-3.
VXSC
TENTH
STORE DTHETASM # STORE SM INCREM ANGLES FOR SMCDURES.
CALL
CDUTRIG # OBTAIN SIN,COSCDUS FOR SMCDURES.
SETPD CALL # SMCDURES USES PUSH
0
SMCDURES # OBTAIN DELCDU IN V(DCDU).
# Page 595
LXA,1 # RELOAD X1
Q6111
VLOAD VSL* # RECOVER SCALE.
DCDU # (B-15,X1) + TENTH(B-3) + HALFREVS(B1)
0 -17D,1 # EQUALS B-17D,1 TO OBTAIN HALFREVS B0.
STORE 14D # HOLD DELS IN V(VAC14D) FOR AUTOPILOT.
CALL # COMPUTES SINES AND COSINES FOR *SMNB*
CDUTRIG
VLOAD CALL # LOAD VECTOR AND CALL TRANSFORMATION
20D # VECTOR FOR TRG*SMNB INTO MPAC
*SMNB* # OBTAIN ANG. RATE REFERRED TO NB (BODY)
MXV
MBDYTCTL # CONVERT RATE(OMEGA) TO CONTROL COORDS.
VXSC # MULT. BY 0.8 TO RESCALE REVS TO 450 DEG.
POINT8 # RECOVER SCALE.
LXA,1 VSL* # RELOAD X1 TO RECOVER NORMALIZ.
Q6111 # (B-15,X1) + MBDYTCTL(B1) = B-14D,1 TO
0 -14D,1 # OBTAIN REVS SCALED AT 450 DEGREES.
CRS61.2A EXIT
INHINT
CAF ZERO # TRANSFER DESIRED GIMBAL ANGLES
TS CDUXD +1 # FROM T(SAVEDCDU) TO V(CDUXD).
TS CDUYD +1
TS CDUZD +1
CA SAVEDCDU
TS CDUXD
CA SAVEDCDU +1
TS CDUYD
CA SAVEDCDU +2
TS CDUZD
EXTEND # TRANSFER OMEGA CONTROL (ANG. LOS RATE)
DCA MPAC # FROM V(MPAC) TO V(WBODY)
DXCH WBODY
EXTEND
DCA MPAC +3
DXCH WBODY1
EXTEND
DCA MPAC +5
DXCH WBODY2
EXTEND # TRANSFER CDU INCREMENTS
INDEX FIXLOC # FROM V(VAC14D) TO V(DELCDUX)
DCA 14D
DXCH DELCDUX
EXTEND
INDEX FIXLOC
DCA 16D
# Page 596
DXCH DELCDUY
EXTEND
INDEX FIXLOC
DCA 18D
DXCH DELCDUZ
CS ONE # NOW DAP VARIABLES LOADED. SET HOLDFLAG.
TS HOLDFLAG # TO -1.
RELINT
TC ASET
MANUEXIS TC INTPRET
MANUEXIT TLOAD # ENTER FROM STEP2. ACDU-DCDU EXCEEDS
SAVEDCDU # 10 DEG. STORE DCDU(T) IN CPHI,CTHETA,
STORE CPHI # CPSI FOR KALCMANU.
SLOAD GOTO # SPECIAL RETURN (MPAC+0 = 1)
LOONE # OCTAL 00001
Q611
R63 STQ DLOAD # SUBR TO CALC DCDUS(T)
Q6111
P21TIME
STCALL TDEC1
CSMCONIC
HOLDATT VLOAD # HOLD EXTRAPOLATED CSM POSITION AND
RATT # VELOCITY
STOVL SAVEPOS
VATT
STORE SAVEVEL
CALCLEM DLOAD # EXTRAPOLATE LEM STATE VECTOR TO SAVE
P21TIME # TIME AS CSM USING LEMCONIC
STCALL TDEC1
LEMCONIC
VLOAD
VATT
STOVL DCDU # STORE VATT IN DCDU TEMPORARILY
RATT # LOS = RL RC
VSU UNIT
SAVEPOS
STORE SAVEPOS # SAVE UNITLOS FOR CRS61.2 RATE CALC.
MXV VSL1
REFSMMAT # CONVERT TO STABLE MEMBER
STODL POINTVSM
36D # HOLD ABS VAL OF LOS (VAC 36D)
STORE P21TIME # IN D(P21TIME) FOR CRS61.2 RATE CALC.
VLOAD
UNITX
STCALL SCAXIS # TRACK AXIS UNIT VECTOR
VECPOINT # FOR +X-AXIS TRACKING ATTITUDE
STORE CPHIX # STORE ANGLES FOR N96 DISPLAY
VLOAD
PRFUNIT
# Page 597
STCALL SCAXIS
VECPOINT
STORE PRAXIS # STORE ANGLES FOR N95 DISPLAY
BOFF
PRFTRKAT
CRSTOR1
CRSTOR STORE THETAD # STORE ANGLES FOR N18 DISPLAY
GOTO
Q6111
CRSTOR1 VLOAD
UNITX
STORE SCAXIS
TLOAD GOTO
CPHIX
CRSTOR
PRFUNIT 2DEC .40957602 # 55 DEG TRACK AXIS UNIT VECTOR
2DEC 0.0 # FOR USE WITH VECPOINT
2DEC .28678822
DEGREE10 DEC .05556 # 10 DEG IN REVS STEP2
RVCS/RDS 2DEC 15.915494 B-4 # 100/2PI REV-CSEC/RAD-SEC.
TENTH 2DEC .1 B+3 # .1 B-3 (TO SCALE ANG. RATE TO .1 INREMS)
MAT1B1 2DEC 1.0 B-1
MBDYTCTL 2DEC .5 # 7.25 DEG NEGATIVE
2DEC 0 # X-AXIS ROTATION MATRIX
2DEC 0 # CONVERTS BODY TO CTL
2DEC 0 # AXES. CAME AS QUADROT
2DEC .99200495 B-1 # COS7.25 B1 BUT SCALED B
2DEC -.12619897 B-1 # -SIN7.25 B1
2DEC 0
2DEC .12619897 B-1 # SIN7.25 B1
2DEC .99200495 B-1 # COS7.25 B1
LOONE OCT 00001 # TO SET MPAC = 00001 FOR SPECIAL EXIT.
FURST3 EQUALS 13,14,15 # CONSTANT FOR AUTOCK (OCT 70000).
# Page 598
# ..... S22.1 ORBITAL NAVIGATION ROUTINE
# MOD 1
#
# FUNCTIONAL DESCRIPTION
# 1. UPDATE CSM STATE VECTOR
# 2. UPDATE LANDMARK POSITION
# 3. CONVERT W MATRIX FROM 9 TO 6 DIMENSIONS
#
# SUBROUTINES CALLED
# INTSTALL,INTEGRV,GETNUM,SETRE,R-TO-TP,RP-TO-R,BVECTORS,INCORP1,INCORP2
# LALOTORV,S22F2410,LAT-LONG,ROWDOT
#
# ERASABLE INITIALIZATION
# W=9X9 MATRIX
# ORBWFLAG=0 FOR INVALID W MATRIX, =1 FOR VALID W MATRIX
# ASTRONAUT ENTRY OF KNOWN,L,OFF
# 8NN= NUMBER OF MARKS, DECIMAL INTEGER B-14
# REFSMMAT= TRANSFORMATION MATRIX
# MARKSTAT= ADDRESS OF START OF MARK DATA (MARK DATA OF EACH MARK IS
# STORED AS FOLLOWS: TIME,AIG,SA,AMG,PA,AOG) TIME IS IN DOUBLE
# PRECISION, ALL OTHERS ARE IN SINGLE PRECISION
# CSM STATE VECTOR
#
# OUTPUT
# UPDATED CSM STATE VECTOR
# UPDATED LANDMARK POSITION
# NEW 6 DIMENSIONAL W MATRIX
#
# DEBRIS
# PUSH LIST,CSMPOS,ALPHAV,ERADM,UM,RCLP,USTAR,VARIANCE,X789,BVECTOR,8KK,
# S22LOC,SVMRKDAT TABLE,22SUBSCL,LANDMARK,CXOFF,S22C,LAT,LOG,ALT,
# TEMPOR1,S22TOFF,S221OFF,DSPTEM1,S22EORM,S22TPRIM
BANK 13
SETLOC P20S6
BANK
EBANK= LANDMARK
COUNT 35/LUORB
S22.1 STQ SSP
S22RTNEX
S1
DEC 6
SSP SSP # SET I=1 ITEM 8KK IS I
8KK
DEC 1
S22LOC
ECADR SVMRKDAT # SET MARK DATA ADDRESS INTO S22LOC
# Page 599
LXC,2 AXT,1
MARKSTAT
DEC 36
S22.111 VLOAD* # MOVE MARK DATA (5 SETS FROM ADDR. IN
0,2 # MARKSTAT TO SVMRKDAT TABLE TO AVOID LOSS
STORE SVMRKDAT +36D,1 # IF RESTART OCCURS
INCR,2 TIX,1
DEC -6
S22.111
SET EXIT
P22MKFLG # DOWNLINKED SVMRKDAT HOLDS PRESENT MARKS
TC BANKCALL # RELEASE VAC AREA WHERE MARK DATA WAS
CADR MKRELEAS
TC 2PHSCHNG
OCT 00004
OCT 05022
OCT 13000
TC INTPRET
AXT,1 BOFF
0D
CMOONFLG # =0 EARTH, =1 MOON
S22SHIFT
INCR,1
DEC -2
S22SHIFT SXA,1 SETPD
S22EORM # SET =0 EARTH, =-2 MOON FOR SHIFTING
0D
FIG2EXIT CALL
INTSTALL
CALL
S22FLGS
# FLOWCHART D=0 THEN DIM0FLAG=0, D6O9FLG NOT TESTED
# FLOWCHART D=6 THEN DIM0FLAG=1, D60R9FLG=0
# FLOWCHART D=9 THEN DIM0FLAG=1, D6OR9FLG=1
BOFF CLRGO
ORBWFLAG
SETWW5D # BRANCH TO SET W0-W5,ORBWFLAG,D
D6OR9FLG # FLOWCHART D=6 PATH
SETVANDI
SETWW5D CLEAR
DIM0FLAG # FLOWCHART D=0 PATH
AXT,1 SSP
DEC 108
S1
DEC 6
CLEAR VLOAD
RENDWFLG # GSOP CHANGE 8/18/67
ZEROVECS
CLEARWW5 STORE W +108D,1
# Page 600
TIX,1 SLOAD
CLEARWW5
WORBPOS
STORE W # SET DIAGONALS OF W0
STORE W +8D
STORE W +16D
SLOAD
WORBVEL
STORE W +72D # SET DIAGONALS OF W4
STORE W +80D
STORE W +88D
SETVANDI CLEAR
DMENFLG # 0=6X6W, 1=9X9W
S22NXTIN CALL
GETTF
STCALL TDEC1
INTEGRV
CALL
S22CALRC # CALC. RC B-29 OR B-27 (CSMPOS)
LXA,1 SXA,1
S22LOC # SETUP ADDR. OF MARK DATA FOR GETUM SUBR.
MARKDATA
CALL # COMPUTE UM
S2GETUM GETUM
STORE UM
DMPINTEG SLOAD PUSH # TEST OFF=I
8KK
SLOAD SR3 # CXOFF SCALED B-5, MUST MOVE TO B-14
CXOFF # BEFORE SUBT.
SR3 SR3
DSU
BHIZ BON
S22OFF=I # BRANCH HERE IF OFF=I
DMENFLG # 0=6X6W, 1=9X9W
S22D=9
CALL
GRP2PC
SET
ORBWFLAG
SET SET
DMENFLG # =0 ON FIRST PASS THRU HERE FOR D=0, OR 6
22DSPFLG # =1 TO DISPLAY DR,DV ON FIRST PASS
SET BON
ERADFLAG # =1 TO COMPUTE FISCHER RADIUS
KNOWNFLG
S22BOX22
VLOAD UNIT # UNIT ALSO PUTS ABVAL(RC) IN 36D
CSMPOS
STORE ALPHAV # ALPHAV +4=SINL FOR SETRE
CLEAR BOFF
# Page 601
LUNAFLAG
CMOONFLG
S22C=I
SET
LUNAFLAG
S22C=I CALL # ERADM= R0 METERS B-29 BOTH EARTH/MOON
SETRE
CALL # COMPUTE RL FROM EQUATION 2.4.10
S22F2410 # STORED IN X789,MPAC B-27,B-29
BOFF VSR2 # SCALE RL B-29 FOR BOTH EARTH/MOON
CMOONFLG
+1
STORE S22RL
DOT SL1
UM
STOVL S22D # D=UM RL B-29
ZEROVECS
SETPD PUSH
0D
PUSH PDDL # SET 0-18D = I BACKWARDS
HIDPHALF # PD 18
SR2 # B-3
STORE 4D
STORE 8D
STOVL 12D
UM # B-1
STOVL S223X1
S22RL # B-29
CALL # (UM)(RL T) B-30 STORED IN S22UMRL THRU
S2231X13 # S22UMRL +17D
AXT,1 SSP
DEC 18
S1
DEC 6
S22NXTU VLOAD* VSR2 # (UM)(RL T) B-32
S22UMRL +18D,1
V/SC
S22D # D B-29
BVSU STADR # SUBTRACT FROM I B-3
STORE S22UMRL +18D,1 # U MATRIX B-3
TIX,1 AXT,1 # PD 0 AFTER TIX
S22NXTU
DEC 36 # S1 STILL 6 FROM ABOVE
S22NXTWI VLOAD* MXV
W +36D,1 # B-19
S22UMRL # B-3
VSL3
STORE W +144D,1 # W(I+18)= UW(I) B-19
TIX,1 DLOAD
S22NXTWI
# Page 602
S22RHO # B-28,B-30
BOFF SR2 # MAKE RHO B-30
CMOONFLG
+1
NORM XAD,2
X2
X2
DSQ DMP
SCTVAR # B+16
SR1 # ACCOUNTS FOR 1/2 IN NEXT FORMULA
STORE S22RHO # 1/2(RHO SQ)(VARSCT)
AXT,1
DEC 18 # S1 STILL 6 FROM ABOVE
S22NXXA VLOAD* MXV
S22UMRL +18D,1 # B-3
S22UMRL # B-3
VXSC VSR*
S22RHO
0 -12D,2 # WITH VARRP SCALED B-28
STORE S22UUT +18D,1 # 1/2(RHO SQ)(VARSCT)(U)(U T)
TIX,1 VLOAD
S22NXXA
UM
STCALL S223X1 # UM ALSO IN MPAC FOR S2231X13 SUBR.
S2231X13 # (UM)(UM T) B-2 IN S22UMRL,P17D
DLOAD SR3
ERADM # B0 B-29
DDV DSQ
S22D # B-29
DMP
RPVAR # ***** METERS SQ
STORE S22RHO # TEMP (VARRP)(R0/D)
AXT,1
DEC 18 # S1 STILL 6 FROM ABOVE
S22NXXB VLOAD* VXSC
S22UMRL +18D,1 # (UM)(UM T) B-2
S22RHO
VAD*
S22UUT +18D,1
STORE S22UUT +18D,1 # SMALL E MATRIX
VLOAD
ZEROVECS
STORE W +162D,1 # CLEAR W8
TIX,1 BOV
S22NXXB
+1
DLOAD BMN
S22UUT +16D # E5
S22W76X
SQRT BZE
# Page 603
S22W76X
STODL W +148D # W74= SQ ROOT E5
S22UUT +14D # E4
DDV BOV
W +148D
S22W72X
STORE W +146D # W73= E4/W74
S22W72X DLOAD DDV
S22UUT +12D # E3
W +148D
BOV
S22W76X
STORE W +144D # W72= E4/W74
S22W76X DLOAD DSQ
W +146D # W73
BDSU BMN
S22UUT +8D # E2
S22W78X
SQRT BZE
S22W78X
STODL W +152D # W76= SQ ROOT (E2-W73 SQ)
W +144D # W72
DMP BDSU
W +146D # W73
S22UUT +6D # E1
DDV BOV
W +152D # W76
S22W78X
STORE W +150D # W75= (E1-W72W73)/W76
S22W78X DLOAD DSQ
W +150D
PDDL DSQ
W +144D # W72
DAD
BDSU BMN
S22UUT # E0
S22SCLW
SQRT
STORE W +156D # W78= SQ RT(E0-W72 SQ-W75 SQ)
S22SCLW VLOAD VSR1 # SCALE W6 METERS B-19
W +144D
STOVL W +144D
W +150D
VSR1
STOVL W +150D
W +156D
VSR1
STORE W +156D
S22SAVET CALL
GETTF
# Page 604
STORE S22TPRIM # SAVE PRESENT TIME FOR PIOS
S22I=N EXIT # TEST I=N
TC PHASCHNG
OCT 04022
CS 8KK
AD 8NN
EXTEND
BZMF S22F244X # EXIT TO FIGURE 2.4-4
CA 8KK # I=I+1
AD ONE
TS TEMPOR1
CA S22LOC # ADD 7 TO LOC TO GET ADDR. OF NEXT MARK
AD SEVEN
TS TEMPOR1 +1
TC PHASCHNG
OCT 04022
CA TEMPOR1
TS 8KK
CA TEMPOR1 +1
TS S22LOC
TC INTPRET
CALL # FOR ALL INTEGRATIONS OTHER THAN FIRST
S2INTS1 INTSTALL
CALL
S22FLGS
BON CLEAR
DMENFLG
S22NXTIN # RETURN ALWAYS EXCEPT OFFSET POINT MARK 1
DIM0FLAG
BOFF SET
ORBWFLAG
S22NXTIN # OFFSET POINT MARK 1, NO W INTEGRATION
DIM0FLAG
CLRGO
D6OR9FLG
S22NXTIN # OFFSET POINT MARK 1, INTEGRATE W 6X6
S22OFF=I CALL
GETTF
STOVL S22TOFF # TIME SUB OFF
UM
STCALL S22UOFF # U SUB OFF
S22I=N # TEST I=N
S22D=9 VLOAD # D=9 PATH
X789
STODL 0D # CALL PIOS TWICE TO TRANSFORM RL TO TIME
S22TPRIM # T(SUB F) FROM TIME T PRIME
STORE 6D
SLOAD CALL
S22EORM # 0=EARTH, NON-ZERO=MOON
S2RTRP R-TO-RP
# Page 605
PUSH CALL # R-TO-RP LEAVES PUSHLOC AT 0
GETTF
STORE 6D
SLOAD CALL
S22EORM
S2RPTR RP-TO-R
S22BOX32 STORE X789
SET BOV
INCORFLG # FLAG=1
+1 # CLEAR OVERFLOW
VSU
CSMPOS
STORE RCLP # RCL=RL-RC
UNIT VXV # USTAR=UNIT(UNIT(RCL)XUM)
UM
UNIT BOV
S22SAVET # COMPUTATION OVERFLOW, SAVE TF
STORE USTAR
S22BOX12 SET SET
DMENFLG # =1 FOR 9X9 W
VEHUPFLG # =1 FOR CSM
DLOAD DAD
SCTVAR # B+18
IMUVARR # B+18
STOVL VARIANCE
RCLP # B-29 OR B-27
ABVAL NORM
X1
DSQ DMP
VARIANCE
XAD,1 XAD,1
X1 # DOUBLE NORM SHIFT SINCE RCLP WAS SQUARED
S22EORM # DOUBLE EARTH OR MOON SHIFT, SAME REASON
XAD,1 SR*
S22EORM
0,1 # SCALE VARIANCE B-40 FOR BOTH EARTH, MOON
TLOAD # CHANGE MODE TO TRIPLE
MPAC
STCALL VARIANCE # CALC B0,B1,DELTAQ, NEW USTAR
S2BVTRS BVECTORS
VLOAD VCOMP
BVECTOR
STCALL BVECTOR +12D # B2=-B0
S2INCP1 INCORP1
CALL
GRP2PC
BOFF CLEAR
22DSPFLG # =1 DISPLAY DELTA R,V =0 DO NOT
S22BOX42
22DSPFLG
# Page 606
CALL
GRP2PC
VLOAD ABVAL
DELTAX # DELTA R
LXA,1 SR*
S22EORM # SCALE DELTA R ALWAYS METERS B-29
0,1
STOVL N49DISP
DELTAX +6 # DELTA V
ABVAL SR* # DELTA V=METERS/CSEC B-7 ALWAYS
0,1
STORE N49DISP +2
EXIT
CAF V06N49EE
TC BANKCALL
CADR GOFLASHR
TC GOTOPOOH # V34E TERMINATE
TC +5 # INCORPORATE CHANGES
TC S22EXEX # V32E RECYCLE
CAF BIT3
TC BLANKET
TC ENDOFJOB
TC INTPRET
S22BOX42 CALL
INCORP2
CALL # CSMPOS=RC B-29 OR B-27
S22CALRC
DMPINCP2 BOFF CALL
INCORFLG
S22SAVET # SAVE TF AND TEST I=N
GRP2PC
CLEAR VLOAD
INCORFLG # FLAG=0
X789
VSU
CSMPOS
STCALL RCLP # RCL=RL-RC
S22BOX12
S22BOX22 AXT,1 SSP # CLEAR W6,W7,W8. (27 ELEMENTS 54 REGS)
DEC 54
S1
DEC 6
VLOAD
ZEROVECS
CLRW678 STORE W +162D,1
TIX,1 SLOAD
CLRW678
S22WSUBL
STORE W +144D
STORE W +152D
# Page 607
STORE W +160D
CLEAR BOFF # SET LUNAFLAG, TIME FOR LALOTORV
LUNAFLAG # ERADFLAG,LAT,LONG,ALT SET PREVIOUSLY
CMOONFLG # CHECK SCALING OF ITEMS,ALT INPUT AND
S22BX22A # RL OUTPUT IN ALPHAV BOTH B-29
SET
LUNAFLAG
S22BX22A CALL
GETTF
CALL # COMPUTE RL
LALOTORV
VLOAD BOFF
ALPHAV # RL B-29
CMOONFLG
S22BX22B
VSL2 # SCALE RL B-27 FOR MOON
S22BX22B GOTO
S22BOX32
S22F244X TC INTPRET
S22F244 SLOAD BHIZ # FIG 2.4-4 TEST OFF=0
CXOFF
S22BOX44
SR # SCALE OFFSET B-14 THEN GET GR. 8NN
9D
STORE ALPHAV # TEMP
SLOAD DSU
8NN
ALPHAV
BMN CALL # OFFSET GR. NO. MARKS. FORGET IT
S22BOX44
GRP2PC # GROUP 2 PHASE CHANGE
DLOAD
S22TOFF
STCALL TDEC1 # CALC RC AT OFFSET TIME
CSMPREC
VLOAD
RATT1 # RC METERS B-29 OR B-27
STOVL CSMPOS
S22UOFF
STOVL UM # U=UOFF
X789
ABVAL BOFF
CMOONFLG
+2
SR2 # SCALE MOON R0 B-29 FOR S22F2410 SUBR
STCALL ERADM
S22F2410
GOTO
S22BX44A
S22BOX44 CALL
# Page 608
GETTF
STORE S22TOFF # PRESENT TIME FOR LAT-LONG SETUP
S22BX44A CLEAR VLOAD
LUNAFLAG
X789
BOFF SET
CMOONFLG
S22BX44B
LUNAFLAG # SET = 1 FOR LAT-LONG
VSR2 # SCALE RL MOON B-29 FOR LAT-LONG
S22BX44B STODL ALPHAV # RL SCALED B-29 FOR LAT-LONG
S22TOFF # EITHER PRESENT OR OFFSET TIME
CALL
LAT-LONG # **** ALT OUTPUT ALWAYS B-29
CALL # DISPLAY LAT/LONG/ALT
LLASRD
EXIT
CAF V06N89B
TC BANKCALL
CADR GOFLASH
TC S22GTP # V34E TERMINATE
TC +2 # PROCEED SAVE LANDING SITE COORD
TC S22.981X # RECYCLE POINT A IN GSOP
TC INTPRET
DLOAD
S22TOFF # EITHER PRESENT OR OFFSET TIME
STOVL 6D # 6-7D= LANDING SITE TIME FOR R-TO-RP
X789
STORE 0D # 0-5D= LANDING SITE VEC FOR R-TO-RP
SLOAD CALL
HIDPHALF # ANY NON-ZERO FOR MOON
R-TO-RP # CONVERT RLS TO MOON-FIXED COORD
STORE RLS # LANDING SITE VECTOR
EXIT
S22.981X TC INTPRET
CALL
9DWTO6DW
EXIT # GO TO POINT A IN CHAPTER 5
S22EXEX TC INTPRET # WITHOUT CONVERTING W
GOTO
S22RTNEX
S22GTP TC INTPRET # CONVERT W BEFORE TC GOTOPOOH
CALL
9DWTO6DW
EXIT
TC GOTOPOOH
S22F2410 SETPD VLOAD # COMPUTE FORMULA 2.4.10
0D
CSMPOS # RC B-29 EARTH, B-27 MOON
# Page 609
UNIT DOT # UNIT ALSO SETS 36D=ABVAL(RC) USED BELOW
UM
SL1 DCOMP # GSOP CHANGE 8/18/67
PUSH # PD 2D 8D=COSA=-(UM.RC)/ABVAL(RC) B-1
DSQ BDSU
DEC1B2
PDDL BOFF # PD 4D 2D=1-COSA SQ=SINA SQ B-2
ERADM # R0 ALWAYS B-29 FROM SETRE
CMOONFLG
+2
SL2 # SCALE R0 B-27 FOR MOON
SR1R DDV # (R0/RC) B-1
36D
DSQ DSU # PD 2D (RP/RC) SQ - SINA SQ B-2
SQRT BDSU # PD 0D COSA-SQRT((R0/RC)SQ-SINA SQ) B-1
DMP # DMP RESULT B-28 MOON, B-30 EARTH
36D # VXSC RESULT B-29 MOON, B-31 EARTH
STORE S22RHO # RHO FOR W INIT. OF UNKNOWN LMK B-28,B-30
VXSC
UM
VSL2 VAD # SCALE B-27 MOON, B-29 EARTH AND ADD RC
CSMPOS
STORE X789
RVQ # B-27 FOR EARTH OR B-29 FOR MOON
S22CALRC LXA,1 VLOAD # COMPUTE RC B-29 OR B-27
S22EORM # =0 FOR EARTH, -2 FOR MOON
DELTACSM
VSR* VAD
7,1
RCVCSM
STORE CSMPOS
RVQ
SETLOC P22S
BANK
S2231X13 STORE S221X3 # MULT 3X1 BY 1X3, STORE RESULTING 3X3 IN
SSP AXT,2 # S22UMRL - S22UMRL+17D
S2
DEC 2
DEC 6
AXT,1
DEC 18
S2231NXT VLOAD VXSC*
S221X3
S223X1 +6,2
STORE S22UMRL +18D,1
INCR,1 TIX,2
DEC -6
S2231NXT
RVQ
# Page 610
GETTF LXC,1 DLOAD* # SET MPAC= TF
S22LOC
0,1
RVQ
S22FLGS SET SET # INTEGRATION FLAGS
DIM0FLAG
D6OR9FLG
SET SET
VINTFLAG
STATEFLG
CLEAR RVQ
INTYPFLG
# SUBROUTINE TO MODIFY ALT AND STORE LAT TO LAT+5 IN LANDLAT TO LANDLAT+5
# PRIOR TO DISPLAY.
LLASRD DLOAD # ALT, LANDALT METERS B-29
ALT
STODL LANDALT
LONG
SR1
STORE LANDLONG
RVQ
# SUBROUTINE TO MODIFY LANDALT AND STORE LANDALT TO LANDALT+5 IN LAT TO
# LAT+5 AFTER LMK DATA LOADED BY ASTRONAUT.
LLASRDA DLOAD # ALT, LANDALT METERS B-29
LANDALT
STODL ALT
LANDLONG
SL1
STORE LONG
RVQ
SETLOC P20S6
BANK
9DWTO6DW STQ SETPD
9DWXX
0D
VLOAD PUSH # CLEAR WORKING AREA OF PUSHLIST
HI6ZEROS # INCLUDING P
PUSH PUSH # PD 18D
SSP
9DWJ # J=29 USE 2*29 FOR DP WORDS
DEC 58
9DWI=J LXA,1 SXA,1 # SET I=J
9DWJ
9DWI
9DWEPCAL CALL
# Page 611
ROWDOT
LXA,1 # P VARIES 0-20 INSTEAD OF 20-0
9DWP
STORE EMATRIX +40D,1
INCR,1 SXA,1
DEC 2
9DWP
SLOAD BHIZ # TEST I=0
9DWI
9DWTESTJ
DSU # I=I-1
9DWID
STORE 9DWI
DSU BHIZ # TEST I=26
9DW26D
9DWSETI2
GOTO # NEXT E SUB P
9DWEPCAL
9DWSETI2 SSP GOTO # I=2
9DWI
DEC 4
9DWEPCAL
9DWTESTJ SLOAD BHIZ # TEST J=0
9DWJ
9DWFIG6
DSU
9DWID
STORE 9DWJ # J=J-1
DSU BHIZ # TEST J=26
9DW26D
9DWSETJ2
GOTO
9DWI=J
9DWSETJ2 SSP GOTO # SET J=2
9DWJ
DEC 4
9DWI=J
9DWFIG6 CALL
GRP2PC
SSP VLOAD # START OF FIGURE 2.4-6
9DWJ # J=29
DEC 58
HI6ZEROS
STORE 9DWP # P,N,I=0
AXT,1 SSP
DEC 108 # CLEAR W0 TO W54
S1
6
CLEARW54 STORE W +108D,1
TIX,1
# Page 612
CLEARW54
9DWI=JA LXA,1 SXA,1 # I=J
9DWJ
9DWI
CALL
ROWDOT
LXA,1 BDSU*
9DWP
EMATRIX +40D,1
INCR,1 SXA,1 # -(P+1)
2
9DWP
LXC,1 XSU,1 # -(I+N)
9DWI
9DWN
BPL DLOAD # TEST WSQ LTE 0
9DWAAA
HI6ZEROS # W=0
GOTO
9DWAAB
9DWAAA SQRT # W= SQRT(WSQ)
9DWAAB STORE W,1
STODL WORKW
9DWJ # TEST J=0
BHIZ
9DWEXITX # EXIT
TST2I=0 SLOAD BHIZ # TEST I=0
9DWI
9DWN=N+3
DSU
9DWID
STORE 9DWI # I=I-1
DSU BHIZ # TEST I=26
9DW26D
9DWAAC
GOTO
9DWNEXEP
9DWAAC SSP # I=2
9DWI
4
9DWNEXEP CALL
ROWDOT
LXA,1 BDSU* # (EP-ROWI*ROWJ)/W
9DWP
EMATRIX +40D,1
DDV INCR,1 # P=P+1
WORKW
2
SXA,1 LXC,1
9DWP
# Page 613
9DWI
XSU,1 BOV # -(I+N)
9DWN
SETWIN=0
GOTO
9DWSETWX
SETWIN=0 DLOAD # W(I+N)=0
HI6ZEROS
9DWSETWX STORE W,1
GOTO
TST2I=0
9DWN=N+3 LXA,1 INCR,1 # N=N+3
9DWN
6
SXA,1 SLOAD # J=J-1
9DWN
9DWJ
DSU
9DWID
STORE 9DWJ
DSU BHIZ # TEST J=26
9DW26D
SETJ=2A
GOTO
9DWI=JA
SETJ=2A SSP GOTO # J=2
9DWJ
4
9DWI=JA
9DWEXITX CALL
GRP2PC
AXT,1 SSP # CLEAR W6,W7,W8 USED TEMP FOR EMATRIX
DEC 54
S1
6
VLOAD
HI6ZEROS
9DWEXXXA STORE W +162D,1
TIX,1 GOTO
9DWEXXXA
9DWXX
ROWDOT SSP BOV
XTMP1
OCT 377
+1
LXC,1 LXC,2
9DWI
9DWJ
DLOAD PUSH
HI6ZEROS
# Page 614
ROWDOT1 DLOAD* DMPR*
W,1
W,2
DAD PUSH
BOV INCR,1
ROWDOT3
DEC -6
INCR,2 SLOAD
DEC -6
XTMP1
BHIZ SR1
ROWDOT2
STORE XTMP1
GOTO
ROWDOT1
ROWDOT2 DLOAD
RVQ
ROWDOT3 CLRGO
ORBWFLAG
ROWDOT2
WORKW = 0D
XTMP1 = 6D
9DWP = 8D # P
9DWI = 10D # I
9DWN = 12D # N
9DWJ = 14D # J
9DWXX = S22UOFF
S22UMRL = BVECTOR # 18
S22UUT = DELTAX # 18
S223X1 = 18D # 6
S221X3 = 24D # 6
S22D = 30D # 2
S22RHO = 32D # 2
S22RL = W +156D # 6
9DW26D 2DEC 52 B-14
9DWID 2DEC 2 B-14
SCTVAR 2DEC 1.0 E-6 B+18
IMUVARR 2DEC 0.04 E-6 B+18
DEC1B2 2DEC 1 B-2
V06N49EE VN 00649
V06N89B VN 00689
S22UOFF = LEMPOS # 6 U SUB OFF
SETLOC P20S2
BANK
# Page 615
# Nothing on this page. --- RSB 2009.
# Page 616
# SUBROUTINE NAME: V89CALL
# MOD NO: 0 DATE: 8 FEB 1968
# MOD BY: DIGITAL DEVEL GROUP LOG SECTION: P20-P25
#
# FUNCTIONAL DESCRIPTION:
#
# CALLED BY VERB 89 ENTER DURING P00. PRIO 10 USED. CALCULATES AND
# DISPLAYS FINAL GIMBAL ANGLES TO POINT CSM +X AXIS OR PREFERRED AXIS
# (UNIT(Z)COS55 DEG + UNIT(X)SIN55 DEG) AT LM.
#
# 1. KEY IN V89 E ONLY IF IN PROG 00. IF NOT IN P00, OPERATOR ERROR AND
# EXIT R63, OTHERWISE CONTINUE.
#
# 2. IF IN P00, DO IMU STATUS CHECK (R02BOTH). IF IMU ON AND ITS
# ORIENTATION KNOWN TO CGC, CONTINUE.
#
# 3. FLASH DISPLAY V 04 N 06. R2 INDICATES WHICH SPACECRAFT AXIS IS TO
# BE POINTED AT LM. INITIAL CHOICE IS PREFERRED AXIS. (R2=1).
# ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT= 1) BY V22 E 2 E. CONTINUE
# AFTER KEYING IN PROCEED.
#
# 4. SET PREFERRED ATTITUDE FLAG ACCORDING TO OPTION DESIRED. SET FLAG
# FOR PREFERRED AXIS. RESET FLAG FOR X AXIS.
#
# 5. CURRENT TIME IS STORED AND R63COMP IS CALLED
#
# R63COMP JOB:
#
# UPDATE CSM AND LM STATE VECTORS USING CONIC EQUATIONS
#
# CALCULATES BOTH PREFERRED AND X AXIS TRACKING ATT FROM CSM TO LM.
#
# DESIRED GIMBAL ANGLES AS INDICATED BY PREFERRED ATTITUDE FLAG
# ARE STORED FOR LATER R60CSM CALL.
#
# 6. FLASH DISPLAY V 06 N18 AND AWAIT RESPONSE.
#
# 7. RECYCLE: RETURN TO STEP 5.
# TERMINATE: EXIT R63 ROUTINE
# PROCEED: RESET 3AXISFLG AND CALL R60CSM FOR ATTITUDE MANEUVER.
#
# CALLING SEQUENCE: V 89 E
#
# SUBROUTINES CALLED: CHKP00H, R02BOTH, GOXDSPF, R63COMP, R60CSM
#
# ALARMS 1. OPERATOR ERROR IF NOT IN P00
# 2. PROGRAM ALARM IF IMU IS OFF
# 3. PROGRAM ALARM IF IMU ORIENTATION IS UNKNOWN
# Page 617
#
# ERASABLE INITIALIZATION REQUIRED: NONE
#
# DEBRIS: OPTION1, OPTION1+1, PRFTEXAT(PREF ATT FLAG), P21TIME, 3AXISFLG
DP1MIN 2DEC 6000
EBANK= P21TIME
BANK 34
SETLOC P20S4
BANK
COUNT* $$/R63
V89CALL TC BANKCALL # IMU STATUS CHECK. RETURNS IF ORIENTATION
CADR R02BOTH # KNOWN. ALARMS IF NOT.
CAF THREE # ALLOW ASTRONAUT TO SELECT DESIRED
TS OPTION1 # TRACKING ATTITUDE AXIS.
CAF ONE
TS OPTION1 +1
CAF VB04N06 # V 04 N 06
TC BANKCALL
CADR GOFLASH
TC ENDEXT # TERMINATE
TC +2 # PROCEED
TC -5 # DATA IN. OPTION1 +1 = 1 FOR PREF AXIS
# = 2 FOR X AXIS
CS OPTION1 +1 # 1 FOR PREF AXIS. 2 FOR X AXIS.
AD ONE
EXTEND
BZF SETPAF
RSTPAF TC DOWNFLAG # RESET PREF ATT FLAG FOR R63COMP
ADRES RNGSCFLG # TO DO X AXIS. RESET BIT 10 FLAG 5
V89RECL TC INTPRET
RTB DAD
LOADTIME # READ PRESENT TIME
DP1MIN # INTEGRATE TO 1 MIN FROM NOW
STCALL P21TIME # STORE TIME FOR CALL TO R63COMP. R63COMP
R63COMP # LEAVES DESIRED GIM ANGS IN THETAD, LOS IN
EXIT # POINTVSM, AND SELECTED AXIS IN SCAXIS.
CAF VB06N18 # V 06 N 18
TC BANKCALL # NOUN 18 REFERS TO THE DESIRED GIMBAL
CADR GOFLASH
TC ENDEXT # TERMINATE
TC +2 # PROCEED
TC V89RECL # RECYCLE
TC DOWNFLAG # RESET 3 AXIS FLAG
ADRES 3AXISFLG # RESET BIT 6 FLAG 5
# Page 618
TC BANKCALL # PERFORMS CSM MANEUVER TO ALIGN SELECTED
CADR R60CSM # SPACECRAFT AXIS TO LOS.
TCF ENDEXT
SETPAF TC UPFLAG # SET PREFERRED ATT FLAG FOR R63COMP
ADRES RNGSCFLG # TO DO PREF AXIS. SET BIT 10 FLAG 5.
TC V89RECL
VB04N06 VN 0406
VB06N18 VN 0618
R63COMP EQUALS R63
# Page 619
# PROGRAM NAME: P23 CISLUNAR MIDCOURSE NAVIGATION
# MOD NO:
# MOD BY: TOM KNATT
#
# FUNCTIONAL DESCRIPTION: DO MIDCOURSE NAVIGATION BY INCORPORATION OF
# STAR/EARTH AND STAR/MOON OPTICAL MEASUREMENTS.
#
# CALLING SEQUENCE: ASTRONAUT OPERATED
#
# SUBROUTINES CALLED: R52,R53,R57,R60,ORBITAL INTEGRATION (INTEGRV)
# INCORP1,INCORP2,LALOTORV,LUNLMKLD, AND DISPLAY INTERFACE ROuTINES.
#
# N0RMAL EXIT MODES: VIA R00
#
# ALARMS: NONE
#
# ABORT MODES: NONE
#
# ERASABLE INITIALIZATION REQUIRED: PAD-LOADED ERASABLES, ORBWFLAG RESET,
# REFSMFLG=0 IF IMU OFF AND REFSMFLG=1 IF IMU ONE
#
# INPUTS BY USER REQUIRED: STAR NUMBER, LANDMARK LAT, LONG/2, ALT OR ID NUMB.
# IF LANDMARK IS USED, NEAR OR FAR HORIzON IF HORIZON IS USED, AND
# BODY TO BE MARKED ON (EARTH OR MOON). SEE GSOP CHAPT 4.
#
# OUTPUT: UPDATED CMC STATE VECTOR. VECTOR FROM S/C TO HORIZON OR LANDMARK
# IN POINTAXS. POINTAXS CAN BE USED TO GENERATE THIS VECTOR APART FROM
# P23 IF DESIRED.
#
# DEBRIS: NO USABLE DEBRIS IS GENERATED. RENDWFLG IS RESET FOR P20 UPON
# COMPLETION OF P23. RUPTREGS AND ERASABLES USED BY DISPLAYS ARE DEBRIS.
BANK 31
SETLOC RT23
BANK
COUNT 31/S23
EBANK= W
P23 TC DOWNFLAG
ADRES RNDVZFLG
TC 2PHSCHNG
OCT 00004 # LEAVE GROUP 4
OCT 00012 # ENTER GROUP 2
CAF PRIO13
TS PHSPRDT2
TC INTPRET
SSP CLEAR
MARKINDX
1
TARG2FLG # TARGET FLAG USED R52 AND R53
CLEAR SSP
TARG1FLG
STARIND
0
SSP CLEAR
BESTI
0
R57FLAG # SET = DO NOT REPERFORM R57
CLEAR EXIT
V94FLAG # SET = ALLOW V94
P23.00 TC INTPRET
# Page 620
BON CALL
REFSMFLG # SET NOW AS INPUT, NORMALLY EXTERNAL CONT
P23.05 # WHEN ALIGNED, PERFORM MEASUREMENT
R57 # DO OPTICS CALIBRATION IF IMU NOT ALIGNED.
CALL
R53
GOTO
P23.60
P23.05 CLEAR EXIT
SAVECFLG # USED TO SAVE SPACE IN P23.65
P23.06 CAF V05N70
TC BANKCALL # IDENTIFICATION: STAR, HOR IDENT.
CADR GOFLASH
TC GOTOPOOH # TERMINATE
TC P23.15
TC -5 # REDISPLAY
P23.15 CA LANDMARK # IF C=2, LUNAFLAG=1. IF C=1, LUNAFLAG=0
EXTEND
BZF P23.151
CA HORIZON
EXTEND
BZF +2
TC R23.10 # OPERATOR DSKY ERROR
CA LANDMARK
TC P23.152
P23.151 CA HORIZON
EXTEND
BZF R23.10
P23.152 MASK BITS7-9 # IS C EQUAL TO 1 OR 2
AD NEG100
EXTEND
BZF P23.16
AD NEG100
EXTEND
BZF +2
TC R23.10
TC UPFLAG
ADRES LUNAFLAG
TCF +3
P23.16 TC DOWNFLAG
ADRES LUNAFLAG
CA STARCODE # IS STARCODE GREATER THAN OR
EXTEND # EQUAL TO 0 AND LESS THAN 37
BZF P23.176
EXTEND
BZMF R23.10
AD NEG37
EXTEND
BZMF +2
TC R23.10
# Page 621
TC INTPRET
P23.17 SLOAD BZE
STARCODE
P23.175
PUSH
SLOAD DMP
SPSIX
LXA,1 SXA,1
MPAC +1
BESTI # BESTI = 6 X STAR NUMBER
CALL
LOWMEMRY # NEEDED TO RETRIEVE STAR VECTOR FROM LOW
STORE STARSAV2 # STORE FOR R53,P23. US(IN P23)=STARSAV2
P23.175 EXIT
P23.176 CA HORIZON
EXTEND
BZF P23.20
MASK BITS4-6
AD -OCT10
EXTEND
BZF P23.18
AD -OCT10
EXTEND
BZF +2
TC R23.10
TC UPFLAG
ADRES NORFHOR
TC P23.30
P23.18 TC DOWNFLAG
ADRES NORFHOR
TC P23.30
P23.20 TC INTPRET
CALL
P22SUBRB
EXIT
P23.30 TC INTPRET
SLOAD BZE
STARCODE
LDPLANET
P23.31 BON EXIT
SAVECFLG
P23.85
CAF V50N25P
TC BANKCALL
CADR GOPERF1 # GOPERF1 BLANKS OUT R2 AND R3
TC GOTOPOOH
TC V94ENTER # PROCEED. AUTOCONTROL CMC
P23.55 TC INTPRET
GOTO
P23.56
# Page 622
# VERB 94 BEGINS HERE
V94ENTER TC INTPRET
RTB
LOADTIME # READ CLOCK
STCALL MARKTIME
POINTAXS # RETURN LOS IN RCLL AND MPAC
MXV UNIT
REFSMMAT
STOVL POINTVSM
JCAXIS
STORE SCAXIS
EXIT
TC DOWNFLAG # CLEAR AND GO TO VECPOINT IN R60
ADRES 3AXISFLG # BIT 6 FLAG 5
CAF R60ADRS
TS TEMPFLSH
TC PHASCHNG
OCT 00012
R60CALL TC BANKCALL
CADR R60CSM
TC PHASCHNG
OCT 04022
TC INTPRET
BON
R57FLAG
P23.57 # DO NOT REPERFORM R57
P23.56 CALL
R57
P23.57 SET SET
V94FLAG
R57FLAG
CALL
R52
CLEAR CLEAR
V94FLAG
R57FLAG
P23.60 EXIT
INHINT
CA MARKSTAT
MASK LOW10
TS MARKDATA
EXTEND
INDEX MARKDATA
DCA 0
DXCH MARKTIME
INDEX MARKDATA
CA 5
XCH TRUNION
RELINT
TC INTPRET
# Page 623
LXC,1 VLOAD*
MARKDATA
1,1
STODL* MARKDOWN +1
0,1
STORE MARKDOWN
EXIT
CAF V05N71
TC BANKCALL
CADR GOFLASH
TC GOTOPOOH # TERMINATE
TC P23.65 # STORE DATA
TC -5 # REDISPLAY
P23.65 TC INTPRET
SET EXIT
SAVECFLG
TC P23.15
P23.85 CLEAR CALL
RENDWFLG
POINTAXS
GOTO
R23.55
# WE BEGIN CALCULATIONS HERE
# POINTAXIS SUBROUTINE
POINTAXS STQ
POINTEX
R23.05 BON DLOAD
ORBWFLAG
R23.1
WMIDPOS
STCALL 0
INITIALW # INITIALIZE W-MATRIX FIRST PASS IN P23
R23.1 CALL
SETINTG # SETUP FOR CSM INTEGRATION
BOF SET
ORBWFLAG
R23.2
DIM0FLAG
R23.2 SET CALL
ORBWFLAG
INTEGRV # INTEGRATE CSM STATE VEC. TO MARKTIME
EXIT
TC PHASCHNG
OCT 04022
TC INTPRET
CALL
RECT.1 # PICKUP CSM STATE VECTOR FROM PERM
BOFF
ZMEASURE # IN SPHERE OF INFLUENCE OF PRIMARY BODY
R23.3
# Page 624
DLOAD CALL
MARKTIME
LUNPOS
BON VCOMP
CMOONFLG
+1
VAD
RZC
STORE RZC
R23.3 SLOAD BHIZ
LANDMARK # IF LANDMARK = 0, USE HORIZ SUBR
R23.4
SET
ERADFLAG
DLOAD CALL
MARKTIME
LALOTORV
GOTO
R23.5
R23.4 CALL
HORIZ
R23.5 VSU SETPD
RZC
0
GOTO
POINTEX
# Page 625
R23.55 UNIT PUSH # RCLL IS IN MPAC
VLOAD
34D # RCLL * RCLL
STOVL 30D # PUSH 30-31 =RCLL*RCLL 32-33=ABVAL RCLL
VZC
VXSC VSR
ONE/C
15D
VAD # PUSH UP RCLL(UNIT)
UNIT
STOVL UCLSTAR
VZC
VSR2 VSU
VESO
VXSC VSR
ONE/C
13D
VAD UNIT
US
STORE USSTAR
DOT SL1
UCLSTAR
PUSH VLOAD # PD 0,1 = USSTAR(DOT)UCLSTAR
UCLSTAR
VXSC VCOMP
VSL1 VAD
USSTAR
UNIT
STOVL BVECTOR # USSTAR - COSQ(UCLSTAR)
ZEROVECS
STORE BVECTOR +6
STODL BVECTOR +12D
0
ACOS DCOMP
PUSH DLOAD
ZEROVECS
EXIT
CA VARSUBL # PUT FIXED INTO ERASABLE FOR MSU
TS L # INSTRUCTION COMING UP
CA TRUNION # REQUIRED TO CHANGE 2'S COMPLEMENT
EXTEND # TRUNION TO 1'S COMPLEMENT
MSU L # TRUNION (2'S)-00000 CONVERTS TRUNION TO
TS MPAC # 1'S. VARSUBL=00000.
TC INTPRET
PUSH SLOAD # PUSH IS DP. WHEN BDSU IS EXECUTED, 2ND
TRUNBIAS # HALF OF PUSHLIST IS GUARANTEED ZERO FROM
BDSU # DLOAD ZEROVECS ABOVE
SR3 DAD
DAD DMP
# Page 626
TRUN19
32D
DMP SL3
PI/4.0
BOFF SL2
CMOONFLG
R23.51
R23.51 STODL DELTAQ
30D # RCLL * RCLL
DMP RTB
TRUNVAR
TPMODE
TAD
VARSUBL
STORE VARIANCE
CLEAR CALL
DMENFLG
INCORP1
CALL
GRP2PC
VLOAD ABVAL
DELTAX +6
BOF SR2 # DISPLAY IS 2-27 IF IN LUNAR SPHERE.
CMOONFLG
R23.52
R23.52 STOVL N49DISP +2
DELTAX
ABVAL
BOF SR2
CMOONFLG
R23.53
R23.53 STORE N49DISP
EXIT
R23.6 CAF V6N49
TC BANKCALL
CADR GOFLASHR
TC GOTOPOOH
TC R23.7 # INCORPORATE DATA
TC GOTOPOOH
CAF BIT3 # BLAN OUT R3
TC BLANKET
TC PHASCHNG
OCT 00012
TC ENDOFJOB
R23.7 TC INTPRET
R23.8 SET CALL
VEHUPFLG
INCORP2
EXIT
R23.END TC GOTOPOOH
# Page 627
R23.10 TC FALTON
TC P23.06
HORIZ STQ SETPD
SRRETURN
0
DLOAD PDDL # PUSH 0-1 = -AYO SCALED B0
-AYO
AXO
PDDL PDVL # PUSH 2-3 = +AX SCALED B0
DPPOSMAX
US
VXV UNIT
RZC
STOVL UBAR2
VXV UNIT # PUSH UP
UBAR2
STOVL UBAR0
UBAR2
VXV UNIT
UBAR0
STORE UBAR1
BON DOT
LUNAFLAG
HORIZ.6
0 # UBAR1 DOT UZ
STCALL ALPHAV +4
GETERAD
DAD PDDL # MPAC HAS RADIUS OF FISCHER ELLIPSOID
HORIZALT # PUSH 0-1 = BH SCALED B29
AEARTH
DAD PUSH # PUSH 2-3 = AH B29
HORIZALT
HORIZ.1 VLOAD MXV
RZC # B29
UBAR0 # B1
VSL1 PDVL # PUSH 4-9 = RH(XH,YH,ZH) B29
US
MXV VSL1
UBAR0
PDDL # PUSH 10-15 = USH B1
2 # AH
STODL 34D
4 # XH
CALL
DIVIDE
SR* DMP
8D,1 # NOW SCALED B9
MPAC
STODL 30D
0
# Page 628
STODL 34D
6 # YH
CALL
DIVIDE
SR* DMP
8D,1 # B9
MPAC # B18
DAD PUSH # PUSH 16-17 =A SCALED B18
30D
DSU SQRT
1.0B18
PDDL # PUSH 18-19 SQRT(A-1) B9
16D
STODL 34D
4 # XH
CALL
DIVIDE
SR* PDDL
17D,1 # PUSH 20-21 = XH/A B29
6 # YH
CALL
DIVIDE
SR* PDDL
17D,1 # PUSH 22-23 = YH/A B29
16D # A
STODL 34D
18D # SQRT(A-1)
CALL
DIVIDE
SR*
8D,1
STODL 28D
0 # BH
STODL 34D
2 # AH
CALL
DIVIDE
SR* DMP # AH/BH SCALED B1
0,1
28D # SQRT(A-1)/A
DMP SL1
6 # YH
PDDL
2 # AH
STODL 34D
0
CALL
DIVIDE
SR* DMP # BH/AH SCALED B1
0,1
# Page 629
28D # SQRT (A-1)/A
DMP SL1
4 # XH
PDDL DAD
20D # XH/A
24D # ALPHA
PDDL DSU
22D # YH/A
26D # BETA
PUSH SETPD
16D
DLOAD DSU
20D # XH/A
24D # ALPHA
PDDL DAD
22D # YH/A
26D # BETA
PDDL PUSH
ZEROVECS
STOVL 32D # ZERO THIRD COMP. OF T-0 VECTOR
28D
VSU UNIT
4 # RH VECTOR
DOT PDVL # PUSH 22-23 A-SUB-ZERO
10D # USH VECTOR
16D # T1 VECTOR
VSU UNIT
4 # RH VECTOR
DOT PUSH # PUSH 24-25 A-SUB-ONE
10D
BDSU BMN
22D # A-SUB-ZERO
HORIZ.3
BON
NORFHOR
HORIZ.4
HORIZ.2 VLOAD GOTO
28D # T-0 VECTOR
HORIZ.5
HORIZ.3 BON GOTO
NORFHOR
HORIZ.2
HORIZ.4
HORIZ.4 VLOAD
16D # T1 VECTOR
HORIZ.5 VXM VSL1
UBAR0
GOTO
SRRETURN
HORIZ.6 DLOAD PUSH
# Page 630
RADMOON
PUSH GOTO
HORIZ.1
DIVIDE NORM SR1
X1
STODL 36D
34D
NORM BDDV
S1
36D
XSU,1 RVQ
S1
RECT.1 BOFF AXT,2 # SR TO SET ZMEASURE = 0 IF MEASUREMENT
CMOONFLG # PLANET AND PRIMARY PLANET ARE THE SAME.
RECT.3 # OTHERWISE = 1
DEC -2
BOFF # VEC. AND SCALE B29 AND B7
LUNAFLAG
RECT.4
RECT.2 CLEAR GOTO
ZMEASURE
RECT.5
RECT.3 AXT,2 BOFF
0
LUNAFLAG
RECT.2
RECT.4 SET
ZMEASURE
RECT.5 VLOAD VSR7
DELTACSM # SCALED B22 OR B18
VSR* VAD
0,2
RCVCSM # SCALED B29 OR B27
VSR*
0,2
STOVL RZC # NOW SCALED B29
NUVCSM # SCALED B3 OR B-1
VSR4 VSR*
0,2
VAD VSR*
VCVCSM # SCALED B7 OR B5
0,2
STORE VZC # NOW SCALED B7
RVQ
ONE/C 2DEC* .333564049 E-6 B+21*
AEARTH 2DEC 6378166 B-29 # A AXIS OF EARTH (METERS B-29)
RADMOON 2DEC 1738090 B-29 # RADIUS MOON IN METERS
# Page 631
TRUN19 OCT 01604
TRUN19A OCT 00000
1.0B18 2DEC 1.0 B-18
VARSUBL DEC 0
VARSUBL3 2DEC* 3.4299040 E+6 B-26*
TRUNVAR 2DEC 2.5 E-9 B+18
V6N49 VN 0649
V05N70 VN 0570
V05N71 VN 0571
OCT00077 OCT 00077
V50N25P OCT 00202
SPSIX OCT 00006
JCAXIS 2DEC .2688190620 # 1/2(SIN 32.523 DEG) TRACK AXIS
2DEC 0
2DEC .4215878460 # 1/2(COS 32.523 DEG)
R60ADRS CADR R60CALL +3
NEG37 DEC -37
BITS7-9 OCT 700
BITS4-6 OCT 70
SETLOC RT53
BANK
LOWMEMRY VLOAD* RVQ
CATLOG,1
BANK 37
SETLOC P23S1
BANK
LDPLANET EXIT # KEEP THIS OPEN SUBROUTINE IN EBANK=5
CAF VNPLAN23 # BECAUSE STAR IS EBANK=5
TC BANKCALL # LDPLANET ALLOWS VECTOR TO PLANET TO BE
CADR GOFLASH # STORED IN STARSAV2 IF STORED STARS ARE
TC GOTOPOOH # NOT VISIBLE
TC +2
TC -5
TC INTPRET
VLOAD
STARSAV3
VXSC UNIT
1/SQR3
STORE STARSAV2
GOTO
P23.31
VNPLAN23 VN 0688
BLOCK 02
GOTOV56 EXTEND # P20 TERMINATES BY GOTOV56 INSTEAD OF
# Page 632
DCA VB56CADR # GOTOPOOH
TCF SUPDXCHZ
EBANK= WHOCARES
VB56CADR 2CADR TRACKTRM
SETLOC FFTAG2
BANK
COUNT* $$/P20
BANK 40
SETLOC ENDPINS1
BANK
COUNT* $$/EXTVB
V67CALL TC INTPRET
CALL
V67WW
EXIT
V06N99DS CAF V06N99A
TC BANKCALL
CADR GOXDSPF
TCF ENDEXT
TC V06N9933
TC V06N99DS
V06N9933 TC INTPRET
SLOAD BHIZ # IF R3 OF V67 = 0 EXIT
WWOPT
+3
GOTO
V6N99INP
EXIT
TCF ENDEXT
V6N99INP LXA,1 LXA,2
WWPOS
WWVEL
SLOAD DSU
WWOPT
V67DEC2
BHIZ BPL
V67WORB
V67WMID
SXA,1 SXA,2
WRENDPOS
WRENDVEL
GOTO
V67EXITX
V67WORB SXA,1 SXA,2
WORBPOS
WORBVEL
GOTO
V67EXITX
V67WMID SXA,1 SXA,2
# Page 633
WMIDPOS
WMIDVEL
V67EXITX CLEAR CLEAR
ORBWFLAG
RENDWFLG
EXIT
TCF ENDEXT
V67WW STQ BOV
S2
+1
CALL
INTSTALL
SSP DLOAD
S1
DEC 6
ZEROVECS
STORE WWPOS
STORE WWVEL
STORE WWOPT
AXT,1
DEC 36
NXPOSVEL VLOAD* VSQ
W +36D,1
DAD
WWPOS
STORE WWPOS
VLOAD* VSQ
W +90D,1
DAD
WWVEL
STORE WWVEL
TIX,1 SQRT
NXPOSVEL
STODL WWVEL
WWPOS
SQRT
STORE WWPOS
BOV GOTO
+2
V67XXX
DLOAD
DPPOSMAX
STORE WWPOS
STORE WWVEL
V67XXX DLOAD DSU
WWPOS
FT99999
BMN DLOAD
+3
FT99999
# Page 634
STORE WWPOS
LXA,1 SXA,1
S2
QPRET
EXIT
TC POSTJUMP
CADR INTWAKE
WWPOS = RANGE
WWVEL = RRATE
WWOPT = RTHETA
V06N99A VN 0699
FT99999 2DEC 30479 B-19
V67DEC2 2DEC 2 B-14
SBANK= LOWSUPER