https://github.com/virtualagc/virtualagc
Revision 62edbcc8c6021789df156749d71229308ba4313a authored by Ronald Burkey on 08 August 2021, 00:25:00 UTC, committed by GitHub on 08 August 2021, 00:25:00 UTC
yaAGCb1: Fixed a few errors identified by SELF-CHECK
2 parent s 1bd6f8f + b8b57e2
Raw File
Tip revision: 62edbcc8c6021789df156749d71229308ba4313a authored by Ronald Burkey on 08 August 2021, 00:25:00 UTC
Merge pull request #1149 from virtualagc/yagcb1_fixes
Tip revision: 62edbcc
P20-P25.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    P20-P25.agc
## Purpose:     A section of Luminary revision 163.
##              It is part of the reconstructed source code for the first
##              (unflown) release of the flight software for the Lunar
##              Module's (LM) Apollo Guidance Computer (AGC) for Apollo 14.
##              The code has been recreated from a reconstructed copy of
##              Luminary 173, as well as Luminary memos 157 amd 158.
##              It has been adapted such that the resulting bugger words
##              exactly match those specified for Luminary 163 in NASA
##              drawing 2021152N, which gives relatively high confidence
##              that the reconstruction is correct.
## Reference:   pp. 500-611
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2019-08-21 MAS  Created from Luminary 173. Removed setting and
##                              clearing of R12RDFLG from R12READ.

## Page 500
# RENDEZVOUS NAVIGATION PROGRAM 20
# PROGRAM DESCRIPTION
# MOD NO - 2
# BY  P. VOLANTE
# FUNCTIONAL DESCRIPTION
#
#   THE PURPOSE OF THIS PROGRAM IS TO CONTROL THE RENDEZVOUS RADAR FROM
# STARTUP THROUGH ACQUISITION AND LOCKON TO THE CSM AND TO UPDATE EITHER 
# THE LM OR CSM STATE VECTOR (AS SPECIFIED BY THE ASTRONAUT BY DSKY ENTRY)
# ON THE BASIS OF THE RR TRACKING DATA.
# CALLING SEQUENCE -
#
# ASTRONAUT REQUEST THROUGH DSKY V37E20E
# SUBROUTINES CALLED
#   R02BOTH (IMU STATUS CHECK)               FLAGUP
#   GOFLASH (PINBALL-DISPLAY)                FLAGDOWN
#   R23LEM  (MANUAL ACQUISITION)             BANKCALL
#   LS201   (LOS DETERMINATION)              TASKOVER
#   LS202   (RANGE LIMIT TEST)
#   R61LEM  (PREFERRED TRACKING ATTITUDE)
#   R21LEM  (RR DESIGNATE)                   ENDOFJOB
#   R22LEM  (DATA READ)                      GOPERF1
#   R31LEM  (RENDEZVOUS PARAMETER DISPLAY)    
#   PRIOLARM (PRIORITY DISPLAY)
# 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-
#   RANGE GREATER THAN 400 NM DISPLAY
# OUTPUT
#   TRKMKCNT = NO OF RENDEZVOUS TRACKING MARKS TAKEN (COUNTER)
# ERASABLE INITIALIZATION REQUIRED
# FLAGS SET + RESET
#   SRCHOPT,RNDVZFLG,ACMODFLG,VEHUPFLG,UPDATFLG,TRACKFLG,
# DEBRIS
#   CENTRALS-A,Q,L
                SBANK=  LOWSUPER        # FOR LOW 2CADR'S.
                
                BANK    33
                SETLOC  P20S
                BANK
                
                EBANK=  LOSCOUNT
                COUNT*  $$/P20
PROG22          =       PROG20
PROG20          TC      2PHSCHNG
                OCT     4
                OCT     05022
                OCT     26000           # PRIORITY 26
                TC      LUNSFCHK        # CHECK IF ON LUNAR SURFACE
## Page 501
                TC      ORBCHGO         # YES
                TC      PROG20A -2      # NO - CONTINUE WITH P20
ORBCHGO         TC      UPFLAG          # SET VEHUPFLG - CSM STATE
                ADRES   VEHUPFLG        # VECTOR TO BE UPDATED
                CAF     ONE             # SET R2 FOR OPTION CSM WILL NOT
                TS      OPTION2         # CHANGE PRESENT ORBIT
                CAF     OCT00012
                TC      BANKCALL        # DISPLAY ASSUMED CSM ORBIT OPTION
                CADR    GOPERF4
                TC      GOTOPOOH        # TERMINATE
                TC      ORBCHG1         # PROCEED VALUE OF ASSUMED OPTION OK
                TC      -5              # R2 LOADED THRU DSKY
ORBCHG1         CS      ONE
                AD      OPTION2
                EXTEND
                BZF     PROG20A
                CAF     V06N33*
                TC      BANKCALL        # FLASH VERB-NOUN TO REQUEST ESTIMATED
                CADR    GOFLASH         # TIME OF LAUNCH
                TC      GOTOPOOH        # TERMINATE
                TC      ORBCHG2         # PROCEED VALUES OK
                TC      -5              # TIME LOADED THRU DSKY
ORBCHG2         TC      INTPRET
                GOTO
                        ORBCHG3
                BANK    32
                SETLOC  P20S4
                BANK
                COUNT*  $$/P20
                
ORBCHG3         CALL
                        INTSTALL
                DLOAD   
                        TIG
                STORE   LNCHTM
                STORE   TDEC1           # ESTIMATED LAUNCH TIME
                CLEAR   CLEAR
                        VINTFLAG        # LM INTEGRATION
                        INTYPFLG        # PRECISION - ENCKE
                CLEAR   CLEAR
                        DIM0FLAG        # NO W-MATRIX
                        D6OR9FLG
                CALL
                        INTEGRV         # PLANETARY INERTIAL ORIENTATION
                CALL
                        GRP2PC
                VLOAD
                        RATT1
                STODL   RSUBL           # SAVE LM POSITION
                        TAT
## Page 502
                STCALL  TDEC1
                        INTSTALL
                SET     CLEAR
                        VINTFLAG        # CSM INTEGRATION
                        INTYPFLG
                CLEAR   BOFF
                        DIM0FLAG
                        RENDWFLG        # W MATRIX VALID
                        NOWMATX         # NO
                SET     SET             # YES - SET FOR W MATRIX
                        DIM0FLAG
                        D6OR9FLG
NOWMATX         CALL
                        INTEGRV         # CSM INTEGRATION
                CALL
                        GRP2PC
                VLOAD
                        VATT1
                STOVL   VSUBC           # SAVE CSM VELOCITY
                        RATT1
                STORE   RSUBC           # SAVE CSM POSITION
                VXV     UNIT            # COMPUTE NORMAL TO CSM ORBITAL PLANE
                        VSUBC           # NSUB1=UNIT(R(CM) CROSS V(CM)
                STOVL   20D             # SAVE NSUB1
                        RSUBL           # COMPUTE ESTIMATED ORBITAL
                VXV     UNIT            # PLANE CHANGE
                        20D             # UCSM = UNIT(R(LM) CROSS NSUB1)
                STOVL   UCSM
                        RSUBC           # COMPUTE ANGLE BETWEEN UCSM
                UNIT    DOT             # AND RSUBC
                        UCSM            # COS A = UCSM DOT UNIT (R(CM))
                SL1
                STORE   CSTH            # SAVE DOE TIME-THETA SUBROUTINE
                DSQ     BDSU            # COMPUTE SINE A
                        ONEB-2
                SQRT
                STOVL   SNTH            # SAVE FOR TIME-THETA SUBROUTINE
                        RSUBC           # POSITION OF CSM AT EST. LAUNCH
                STOVL   RVEC            # TIME FOR TIME-THETA   B-27
                        VSUBC           # VELOCITY OF CSM AT EST. LAUNCH
                VCOMP
                STORE   VVEC            # TIME FOR TIME THETA   B-5
                CLEAR   CALL
                        RVSW
                        TIMETHET
                VCOMP
                STORE   NEWVEL          # TERMINAL VELOCITY OF CSM
                DLOAD
                        T
                STOVL   TRANSTM         # TRANSFER TIME
## Page 503
                        NEWVEL
                ABVAL
                STOVL   20D
                        0D
                STORE   NEWPOS          # TERMINAL POSITION OF CSM
                VXV     UNIT            # COMPUTE NORMAL TO CSM ORBITAL PLANE
                        RSUBL           # NSUB2 = UNIT(NEWPOS CROSS R(LM))
                VXV     UNIT            # ROTATE TERMINAL VEL INTO DESIRED
                        NEWPOS          # ORBITAL PLANE
                VXSC    VSL1            # VSUBC = ABVAL(NEWVEL) $ UNIT( NSUB2
                        20D
                STCALL  NCSMVEL         # NEW CSM VELOCITY
                        GRP2PC
                CALL
                        INTSTALL
                DLOAD   BDSU
                        TRANSTM         # LAUNCH TIME - TRANSFER TIME
                        LNCHTM
                STOVL   TET
                        NEWPOS
                STORE   RCV
                STOVL   RRECT
                        NCSMVEL
                STCALL  VRECT
                        MINIRECT
                AXT,2   CALL
                        2
                        ATOPCSM
                CALL
                        INTWAKE0
                EXIT
                TC      BANKCALL
                CADR    PROG20A
                BANK    24
                SETLOC  P20S
                BANK
                COUNT*  $$/P20
                
                TC      DOWNFLAG        # RESET VEHUPFLG- LM STATE VECTOR
                ADRES   VEHUPFLG        # TO BE UPDATED
PROG20A         TC      BANKCALL
                CADR    R02BOTH
                TC      UPFLAG
                ADRES   UPDATFLG        # SET UPDATE FLAG
                TC      UPFLAG
                ADRES   TRACKFLG        # SET TRACK FLAG
                TC      UPFLAG
                ADRES   RNDVZFLG        # SET RENDEZVOUS FLAG
                TC      DOWNFLAG
                ADRES   SRCHOPTN        # INSURE SEARCH OPTION OFF
## Page 504
                TC      DOWNFLAG        # ALSO MANUAL ACQUISITION FLAG RESET
                ADRES   ACMODFLG
                TC      DOWNFLAG        # TURN OFF R04FLAG TO ENSURE GETTING
                ADRES   R04FLAG         # ALARM 521 IF CANT READ RADAR
                TC      DOWNFLAG        # ENSURE R25 GIMBAL MONITOR IS ENABLED
                ADRES   NORRMON         # (RESET NORRMON FLAG)
                TC      DOWNFLAG        # RESET LOS BEING COMPUTED FLAG
                ADRES   LOSCMFLG
                TC      CLRADMOD
                TC      UPFLAG
                ADRES   FSPASFLG        # SET FIRST PASS FLAG FOR ALARM
P20LEM1         TC      PHASCHNG
                OCT     04022
                CAF     ZERO            # ZERO MARK COUNTER
                TS      MARKCTR
P20LEM2         TC      INTPRET         # LOS DETERMINATION ROUTINE
                RTB
                        LOADTIME
                STCALL  TDEC1
                        LPS20.1
                CALL
                        LPS20.2         # TEST RANGE R/UTINE
                EXIT
                INDEX   MPAC
                TC      +1
                TC      P20LEMA         # NORMAL RETURN WITHIN 400 N M
526ALARM        TC      INTPRET
                VLOAD   UNIT
                        RRANGE
                DOT     SL1
                        VELLOS
                STODL   RRATE           # RANGE RATE FOR NOUN 54 B-7
                        36D
                DSU     BPL             # IF RANGE>999.99,DISPLAY 999.99
                        999.99NM
                        TOOBIG
                DLOAD
                        36D
526ALRM1        STODL   RANGE           #  RANGE FOR NOUN 54 B-29
                        ZEROVECS
                STORE   RTHETA          # ZERO THETA FOR NOUN 54
                BOFF    BOFF
                        FSPASFLG        # FIRST PASS
                        P20LEMC5        # NO
                        SURFFLAG        # ON LUNAR SURFACE
                        ALRMLT          # NO
                DLOAD   BPL
                        RRATE
                        ENDRN
                EXIT                    # YES

## Page 505
                TC      PHASCHNG        # IN CASE OF RESTART
                OCT     04022           # REACTIVATE DISPLAY
                CAF     V16N5420
                TC      BANKCALL        # TURN ON V16N54 - DISPLAY
                CADR    GODSPR          # RANGE AND RANGE RATE
                TC      P20LEM5


TOOBIG          DLOAD   GOTO
                        999.99NM
                        526ALRM1

ENDRN           EXIT
                TC      GOTOV56

ALRMLT          EXIT
                TC      PHASCHNG
                OCT     04022
                TC      ALARM           # TURN ON ALARM LIGHT P20
                OCT     526
                TC      P20LEM5
P20LEMC5        EXIT
P20LEM5         TC      DOWNFLAG
                ADRES   FSPASFLG
                CAF     500DEC          # WAIT 5SECS
                TC      BANKCALL
                CADR    DELAYJOB
                TC      P20LEM2


P20LEM3         TC      BANKCALL
                CADR    CLEANDSP


                TC      P20LEMB
P20LEMA         TC      PHASCHNG
                OCT     04022
                TC      LUNSFCHK        # CHECK LUNAR SURFACE FLAG (P22 FLAG)
                TC      P20LEM3
                TC      BANKCALL
                CADR    R61LEM          # PREFERRED TRACKING ATTITUDE ROUTINE
P20LEMB         TC      PHASCHNG
                OCT     05022           # RESTART AT PRIORITY 10 TO ALLOW V37
                OCT     10000           # REQUESTED PROGRAM TO RUN FIRST
                CAF     PRIO26          # RESTORE PRIORITY 26
                TC      PRIOCHNG
                CA      FLAGWRD1        # IS THE TRACK FLAG SET
                MASK    TRACKBIT
                EXTEND
                BZF     P20LEMWT        #  BRANCH - NO - WAIT FOR IT TO BE SET

## Page 506
P20LEMB7        CAF     BIT2            # IS RR AUTO MODE DISCRETE PRESENT
                EXTEND
                RAND    CHAN33
                EXTEND
                BZF     P20LEMB3        # YES - DO AUTOMATIC ACQUISITION (R21)

                
P20LEMB5        CS      OCT24           # RADAR NOT IN AUTO CHECK IF
                AD      MODREG          # MAJOR MODE IS 20
                EXTEND
                BZF     P20LEMB6        # BRANCH - YES-OK TO DO PLEASE PERFORM
                

                AD      NEG2            # ALSO CHECK FOR P22
                EXTEND
                BZF     P20LEMB6        # BRANCH - YES OK TO DO PLEASE PERFORM
                CAF     ALRM514         # TRACK FLAG SET-FLASH PRIORITY ALARM 514-
                TC      BANKCALL        # RADAR GOES OUT OF AUTO MODE WHILE IN USE
                CADR    PRIOLARM
                TC      GOTOV56         # TERMINATE EXITS VIA V56
                TC      P20LEMB         # PROCEED AND ENTER BOTH GO BACK
                TC      P20LEMB         # TO CHECK AUTO MODE AGAIN
                TC      ENDOFJOB
P20LEMB6        CAF     OCT201          # REQUEST RR AUTO MODE SELECTION
                TC      BANKCALL
                CADR    GOPERF1
                TC      GOTOV56         # TERMINATE EXITS P20 VIA V56 CODING
                TC      P20LEMB         # PROCEED CHECKS AUTO MODE DISCRETE AGAIN
                TC      LUNSFCHK        # ENTER INDICATES MANUAL ACQUISITION (R23)
                TC      P20LEMB2        # YES - R23 NOT ALLOWED-TURN ON OPR ERROR
                TC      R23LEM          # NO - DO MANUAL ACQUISITION
                

P20LEMB1        TC      UPFLAG          # RETURN FROM R23 - LOCKON ACHIEVED
                ADRES   ACMODFLG        # SET MANUAL FLAG AND GO BACK TO CHECK
                TC      P20LEMB         # RR AUTO MODE

                
P20LEMB2        TC      FALTON          # TURNS ON OPERATOR ERROR LIGHT ON DSKY
                TC      P20LEMB         # AND GOES BACK TO CHECK AUTO MODE

                
P20LEMB3        CS      RADMODES        # ARE RR CDUS BEING ZEROED
                MASK    RCDU0BIT
                EXTEND
                BZF     P20LEMB4        # BRANCH - YES - WAIT
                CAF     BIT13-14        # IS SEARCH OR MANUAL ACQUISITION FLAG SET
                MASK    FLAGWRD2
                EXTEND
                BZF     P20LEMC3        # ZERO MEANS AUTOMATIC RR ACQUISTION
## Page 507
                TC      DOWNFLAG        # RESET TO AUTO MODE
                ADRES   SRCHOPTN
                TC      DOWNFLAG
                ADRES   ACMODFLG
                TC      P20LEMWT        # WAIT 2.5 SECONDS THEN GO TO RR DATA READ

                
P20LEMB4        CAF     250DEC
                TC      BANKCALL        # WAIT 2.5 SECONDS WHILE RR CDUS ARE BEING
                CADR    DELAYJOB        # ZEROED-THEN GO BACK AND CHECK AGAIN
                TC      P20LEMB3

                
P20LEMC3        TC      INTPRET
                RTB
                        LOADTIME
                STCALL  TDEC1
                        UPPSV
P20LEMC4        EXIT
P20LEMC         TC      PHASCHNG
                OCT     04022
                CAE     FLAGWRD0        # IS THE RENDEZVOUS FLAG SET
                MASK    RNDVZBIT
                EXTEND
                BZF     ENDOFJOB        # NO - EXIT P20
                CAE     FLAGWRD1        # IS TRACK FLAG SET  (BIT 5 FLAGWORD 1)
                MASK    TRACKBIT
                EXTEND
                BZF     P20LEMD         # BRANCH-TRACK FLAG NOT ON-WAIT 15 SECONDS
P20LEMF         TC      R21LEM


P20LEMWT        CAF     250DEC
                TC      TWIDDLE         # USE INSTEAD OF WAITLIST SINCE SAME BANK
                ADRES   P20LEMC1        # WAIT 2.5 SECONDS
                CAE     FLAGWRD1        # IS TRACK FLAG SET
                MASK    TRACKBIT
                EXTEND
                BZF     ENDOFJOB        # NO-EXIT WITHOUT DOING 2.7 PHASE CHANGE
P20LMWT1        TC      PHASCHNG
                OCT     40072
                TC      ENDOFJOB

                
P20LEMC1        CAE     FLAGWRD0        # IS RENDEZVOUS FLAG SET
                MASK    RNDVZBIT
                EXTEND
                BZF     TASKOVER        # NO - EXIT P20/R22
                CAE     FLAGWRD1        # IS TRACK FLAG SET
                MASK    TRACKBIT
## Page 508
                EXTEND
                BZF     P20LEMC2        # NO-DONT SCHEDULE R22 JOB
                CAF     PRIO26          # YES-SCHEDULE R22 JOB (RR DATA READ)
                TC      FINDVAC
                EBANK=  LOSCOUNT
                2CADR   R22LEM42
                
                TC      TASKOVER

                
P20LEMC2        TC      FIXDELAY        # TRACK FLAG NOT SET ,WAIT 15 SECONDS
                DEC     1500            # AND CHECK AGAIN
                
                TC      P20LEMC1
                
P20LEMD         CAF     1500DEC
                TC      TWIDDLE         # WAITLIST FOR 15 SECONDS
                ADRES   P20LEMD1
                TC      ENDOFJOB

                
P20LEMD1        CAE     FLAGWRD1        # IS TRACK FLAG SET
                MASK    TRACKBIT
                CCS     A
                TCF     P20LEMD2        # YES-SCHEDULE DESIGNATE JOB
                TC      FIXDELAY        # NO-WAIT 15 SECONDS
                DEC     1500
                TC      P20LEMD1

                
P20LEMD2        CAF     PRIO26          # SCHEDULE JOB TO DO R21
                TC      FINDVAC
                EBANK=  LOSCOUNT
                2CADR   P20LEMC3        # START AT PERM. MEMORY INTEGRATION
                
                TC      TASKOVER

                
250DEC          DEC     250
ALRM526         OCT     00526
OCT201          OCT     00201
ALRM514         OCT     514
MAXTRIES        DEC     60
OCT00012        EQUALS  BINCON
ONEB-2          EQUALS  DP1/4TH
V06N33*         VN      0633
500DEC          DEC     500
999.99NM        2DEC    1851982 B-29

V16N5420        VN      1654

## Page 509
UPPSV           STQ     CALL            # UPDATES PERMANENT STATE VECTORS
                        LS21X           #  TO PRESENT TIME
                        INTSTALL
                CALL
                        SETIFLGS
                BOF     SET             # IF W-MATRIX INVALID,DONT INTEGRATE IT
                        RENDWFLG
                        UPPSV1
                        DIM0FLAG        # SET DIMOFLAG TO INTEGRATE W-MATRIX
                BON     SET
                        SURFFLAG        # IF ON LUNAR SURFACE W IS 6X6
                        UPPSV5
                        D6OR9FLG        # OTHERWISE 9X9
UPPSV5          BOF
                        VEHUPFLG
                        UPPSV3
UPPSV1          SET
                        VINTFLAG
                CALL
                        INTEGRV
                CALL                    # GROUP 2 PHASE CHANGE
                        GRP2PC          # TO PROTECT INTEGRATION
                CALL
                        INTSTALL
                DLOAD   CLEAR           # GET TETCSM TO STORE IN TDEC FOR LM INT.
                        TETCSM
                        VINTFLAG
UPPSV4          CALL                    # INTEGRATE OTHER VEHICLE
                        SETIFLGS        #  WITHOUT W-MATRIX
                STCALL  TDEC1
                        INTEGRV
                BOFF    VLOAD
                        SURFFLAG
                        P20LEMC4
                        RCVLEM
                VSR2
                STOVL   LMPOS
                        VCVLEM
                VSR2
                STORE   LMVEL
                GOTO
                        LS21X

                        
UPPSV3          CLEAR   CALL
                        VINTFLAG
                        INTEGRV
                CALL
                        GRP2PC
                CALL
## Page 510
                        INTSTALL
                SET     DLOAD
                        VINTFLAG
                        TETLEM          # GET TETLEM TO STORE IN TDEC FOR CSM INT.
                GOTO
                        UPPSV4


                EBANK=  LOSCOUNT
                COUNT*  $$/P22
                
## Page 511
# PROGRAM DESCRIPTION
# PREFERRED TRACKING ATTITUDE PROGRAM P25
# MOD NO - 3
# BY  P. VOLANTE
# FUNCTIONAL DESCRIPTION
#
#   THE PURPOSE OF THIS PROGRAM IS TO COMPUTE THE PREFERRED TRACKING
# ATTITUDE OF THE LM TO CONTINUOUSLY POINT THE LM TRACKING BEACON AT THE
# CSM AND TO PERFORM THE MANEUVER TO THE PREFERRED TRACKING ATTITUDE AND
# CONTINUOUSLY MAINTAIN THIS ATTITUDE WITHIN PRESCRIBED LIMITS
# CALLING SEQUENCE -
#   ASTRONAUT REQUEST THROUGH DSKY V37E25E
# SUBROUTINES CALLED -
#   BANKCALL                      FLAGUP
#   R02BOTH  (IMU STATUS CHECK)   ENDOFJOB
#   R61LEM   (PREF TRK ATT ROUT)  WAITLIST
#   TASKOVER                      FINDVAC
# NORMAL EXIT MODES  -
#   P25 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
# OUTPUT
# ERASABLE INITIALIZATION REQUIRED
# FLAGS SET + RESET
#   TRACKFLG,P25FLAG
# DEBRIS
#   NONE
                EBANK=  LOSCOUNT
                COUNT*  $$/P25
PROG25          TC      2PHSCHNG
                OCT     4               # MAKE GROUP 4 INACTIVE (VERB 37)
                OCT     05022
                OCT     26000           # PRIORITY 26
                
                TC      BANKCALL
                CADR    R02BOTH         # IMU STATUS CHECK
                TC      UPFLAG
                ADRES   TRACKFLG        # SET TRACK FLAG
                TC      UPFLAG
                ADRES   P25FLAG         # SET P25FLAG
                TC      DOWNFLAG
                ADRES   RNDVZFLG
P25LEM1         TC      PHASCHNG
                OCT     04022
                CAF     P25FLBIT
                MASK    STATE           # IS P25FLAG SET
                EXTEND
                BZF     ENDOFJOB
                CAF     TRACKBIT        # IS TRACKFLAG SET?
## Page 512
                MASK    STATE +1
                EXTEND
                BZF     P25LMWT1        # NO-SKIP PHASE CHANGE AND WAIT 1 MINUTE
                CAF     SEVEN           # CALL R65 - FINE PREFERRED
                TS      R65CNTR
                TC      BANKCALL        # TRACKING ATTITUDE ROUTINE
                CADR    R65LEM
                TC      P25LEM1         # THEN GO CHECK FLAGS
P25LMWT1        CAF     60SCNDS
                TC      TWIDDLE         # WAIT ONE MINUTE THEN CHECK AGAIN
                ADRES   P25LEM2
                TC      ENDOFJOB
P25LEM2         CAF     PRIO14
                TC      FINDVAC
                EBANK=  LOSCOUNT
                2CADR   P25LEM1
                
                TC      TASKOVER
60SCNDS         DEC     6000

## Page 513
# DATA READ ROUTINE 22 (LEM)
# PROGRAM DESCRIPTION
# MOD NO - 2
# BY P VOLANTE
# FUNCTIONAL DESCRIPTION
#
#   TO PROCESS AUTOMATIC RR MARK DATA TO UPDATE THE STATE VECTOR OF EITHER
# LM OR CSM AS DEFINED IN THE RENDEZVOUS NAVIGATION PROGRAM (P20)
# CALLING SEQUENCE -
#          TC     BANKCALL
#          CADR   R22LEM
# SUBROUTINES CALLED -
#   LSR22.1           GOFLASH        WAITLIST
#   LSR22.2           PRIOLARM       BANKCALL
#   LSR22.3           R61LEM
# NORMAL EXIT MODES-
#   R22 WILL CONTINUE TO RECYCLE,UPDATING STATE VECTORS WITH RADAR DATA
# UNTIL P20 CEASES TO OPERATE (RENDEZVOUS FLAG SET TO ZERO) AT WHICH TIME
# R22 WILL TERMINATE SELF.
# ALARM OR ABORT EXIT MODES-
#   PRIORITY ALARM
# PRIORITY ALARM 525 LOS NOT WITHIN 3 DEGREE LIMIT
# OUTPUT
#   SEE OUTPUT FROM LSR22.3
# ERASABLE INITIALIZATION REQUIRED
#   SEE LSR22.1,LSR22.2,LSR22.3
# FLAGS SET + RESET
#   NOANGFLG
# DEBRIS
#   SEE LSR22.1,LSR22.2,LSR22.3
                EBANK=  LRS22.1X
                COUNT*  $$/R22
R22LEM          TC      PHASCHNG
                OCT     04022
                CAF     RNDVZBIT        # IS RENDESVOUS FLAG SET?
                MASK    STATE
                EXTEND
                BZF     ENDOFJOB        # NO-EXIT R22 AND P20
                CAF     TRACKBIT        # IS TRACKFLAG SET?
                MASK    STATE +1
                EXTEND
                BZF     R22WAIT         # NO WAIT
R22LEM12        CAF     BIT14           # IS RR AUTO TRACK ENABLE DISCRETE STILL
                EXTEND                  # ON (A MONITOR REPOSITION BY R25 CLEARSIT
                RAND    CHAN12
                EXTEND
                BZF     P20LEMA         # NO - RETURN TO P20
                CAF     BIT2            # YES
                EXTEND                  # IS RR AUTO MODE DISCRETE PRESENT
                RAND    CHAN33
## Page 514
                EXTEND
                BZF     +2              # YES CONTINUE
                TC      P20LEMB5        # NO - SET IT
                CS      RADMODES        # ARE RR CDUS BEING ZEROED
                MASK    RCDU0BIT
                EXTEND
                BZF     R22LEM42        # CDUS BEING ZEROED
                TC      PHASCHNG        # IF A RESTART OCCURS,AN EXTRA RADAR
                OCT     00152           # READING IS TAKEN,SO BAD DATA ISN'T USED
                TC      BANKCALL        # YES READ DATA + CALCULATE LOS
                CADR    LRS22.1         # DATA READ SUBROUTINE
                INDEX   MPAC
                TC      +1
                TC      R22LEM2         # NORMAL RETURN (GOOD DATA)
                TC      P20LEMC         # COULD NOT READ RADAR-TRY TO REDESIGNATE
                CAF     ALRM525         # RR LOS NOT WITHIN 3 DEGREES (ALARM)
                TC      BANKCALL
                CADR    PRIOLARM
                TC      GOTOV56         # TERMINATE EXITS P20 VIA V56 CODING
                TC      R22LEM1         # PROC (DISPLAY DELTA THETA)
                TC      -5              # ENTER(ILLEGAL OPTION)
                TC      ENDOFJOB


R22LEM1         TC      PHASCHNG
                OCT     04022
                CAF     V06N05          # DISPLAY DELTA THETA
                TC      BANKCALL
                CADR    PRIODSP
                TC      GOTOV56         # TERMINATE EXITS P20 VIA V56 CODING
                TC      R22LEM2         # PROC (OK CONTINUE)
                TC      P20LEMC         # ENTER(RECYCLE)
R22LEM2         TC      PHASCHNG
                OCT     04022
                TC      LUNSFCHK        # CHECK IF ON LUNAR SURFACE (P22FLAG SET)
                TC      R22LEM3         # YES-BYPASS FLAG CHECKS AND LRS22.2
                CA      FLAGWRD1        # IS TRACK FLAG SET
                MASK    TRACKBIT
                EXTEND
                BZF     R22WAIT         # NO - WAIT
                TC      BANKCALL        # YES
                CADR    LRS22.2         # CHECKS RR BORESIGHT WITHIN 30 DEG OF +Z
                INDEX   MPAC
                TC      +1
                TC      R22LEM3         # NORMAL RETURN(LOS WITHIN 30  OF Z-AXIS)
                TC      BANKCALL
                CADR    R61LEM
                TC      R22WAIT         # NOT WITHIN 30 DEG OF Z-AXIS
R22LEM3         CS      FLAGWRD1        # SHOULD WE BYPASS STATE VECTOR UPDATE
                MASK    NOUPFBIT        # (IS NOUPDATE FLAG SET?)
## Page 515
                EXTEND
                BZF     R22LEM42        # BRANCH-YES
                CA      FLAGWRD1        # IS UPDATE FLAG SET
                MASK    UPDATBIT
                EXTEND
                BZF     R22LEM42        # UPDATE FLAG NOT SET
                CAF     PRIO26          # INSURE HIGH PRIO IN RESTART
                TS      PHSPRDT2
                
                TC      INTPRET
                GOTO
                        LSR22.3
R22LEM93        EXIT                    # NORMAL EXIT FROM LSR22.3
                TC      PHASCHNG        # PHASE CHANGE TO PROTECT AGAINST
                OCT     04022           # CONFLICT WITH GRP2PC ERASEABLE
                TCF     R22LEM44
R22LEM96        EXIT
                CAF     ZERO            # SET N49FLAG = ZERO TO INDICATE
                TS      N49FLAG         # V06 N49 DISPLAY HASNT BEEN ANSWERED
                TC      PHASCHNG
                OCT     04022           # TO PROTECT DISPLAY
                CAF     PRIO27          # PROTECT DISPLAY
                TC      NOVAC
                EBANK=  N49FLAG
                2CADR   N49DSP
                
                TC      INTPRET
                SLOAD
                        N49FLAG
                BZE     BMN             # LOOP TO CHECK IF FLAG
                        -3              # SETTING CHANGED-BRANCH - NO
                        R22LEM7         # PROCEED
                GOTO                    # DISPLAY ANSWERED BY RECYCLE-INCORPORATE
                        LGRET           #       NEXT MEASUREMENT
V34TON49        CS      TWO
                TS      N49FLAG
                TC      ENDOFJOB
R22LEM7         EXIT
                CA      N49FLAG         # WAS ANSWER TO DISPLAY PRO OR TERM
                AD      TWO
                EXTEND
                BZF     R22LEM          # BRANCH - TERM - TAKE ANOTHER RR READING
                TC      INTPRET
                CALL
                        GRP2PC          # PHASE CHANGE AND
                GOTO                    # GO TO INCORPORATE DATA.
                        ASTOK
R22LEM44        INCR    MARKCTR         # INCREMENT COUNT OF MARKS INCORPORATED.
                TC      LUNSFCHK        # ARE WE ON LUNAR SURFACE
                TC      R22LEM46        # YES - WAIT 2 SECONDS
## Page 516
                CA      FIVE            # NOT ON LUNAR SURFACE
                TC      R22LEM45        # R65COUNTER = 5
R22LEM42        TC      LUNSFCHK        # CHECK IF ON LUNAR SURFACE (P22FLAG SET)
                TC      R22LEM46        # YES - WAIT 2 SECONDS
                CA      TWO             # NO-SET R65COUNTER = 2
R22LEM45        TS      R65CNTR
                TC      BANKCALL
                CADR    R65LEM          # FINE PREFERRED TRACKING ATTITUDE
                TC      R22LEM
R22WAIT         CAF     1500DEC
                TC      P20LEMWT +1


R22LEM46        TC      BANKCALL
                CADR    2SECDELY        # WAIT 2 SECONDS AND TAKE ANOTHER MARK
                TC      R22LEM
                
N49DSP          CAF     V06N49NB
                TC      BANKCALL        # EXCESSIVE STATE VECTOR UPDATE - FLASH
                CADR    PRIODSP         # VERB 06 NOUN 49 R1=DELTA R, R2=DELTA V
                TC      V34TON49        # TERMINATE - SET N49FLAG = -2
                CS      ONE             # PROCEED - N49FLAG = -1
                TS      N49FLAG         # RECYCLE - N49FLAG = + VALUE
                TC      ENDOFJOB
R22RSTRT        TC      PHASCHNG        # IF A RESTART OCCURS WHILE READING RADAR
                OCT     00152           # COME HERE TO TAKE A RANGE-RATE READING
                TC      BANKCALL        # WHICH ISNT USED TO PREVENT TAKING A BAD
                CADR    RRRDOT          # READING AND TRYING TO INCORPORATE THE
                TC      BANKCALL        # BAD DATA
                CADR    RADSTALL        # WAIT FOR READ COMPLETE
                TC      P20LEMC         # COULD NOT READ RADAR-TRY TO REDESIGNATE
                TC      R22LEM          # READ SUCCESSFUL-CONTINUE AT R22

                
ALRM525         OCT     00525
V06N05          VN      00605
V06N49NB        VN      00649
1500DEC         DEC     1500
# LUNSFCHK-CLOSED SUBROUTINE TO CHECK IF ON LUNAR SURFACE (P22FLAG)
#          RETURNS TO CALLER +1 IF P22FLAG SET
#                  TO CALLER +2 IF P22FLAG NOT SET


                COUNT*  $$/P22
LUNSFCHK        CS      FLAGWRD8        # CHECK IF ON LUNAR SURFACE
                MASK    SURFFBIT        # IS SURFFLAG SET?
                CCS     A               # BRANCH - P22FLAG SET
                INCR    Q               # NOT SET
                TC      Q               # RETURN
                
## Page 517
# RR DESIGNATE ROUTINE (R21LEM)
# PROGRAM DESCRIPTION
# MOD NO - 2
# BY P VOLANTE
# FUNCTIONAL DESCRIPTION
#
#   TO POINT THE RENDEZVOUS RADAR AT THE CSM UNTIL AUTOMATIC ACQUISITION
# OF THE CSM IS ACCOMPLISHED BY THE RADAR. ROUTINE IS CALLED BY P20.
# CALLING SEQUENCE -
#          TC     BANKCALL
#          CADR   R21LEM
# SUBROUTINES CALLED -
#   FINDVAC        FLAGUP           ENDOFJOB        PRIOLARM
#   NOVAC          INTPRET          LPS20.1         PHASCHNG
#   WAITLIST       JOBSLEEP         JOBWAKE         FLAGDOWN
#   TASKOVER       BANKCALL         RADSTALL        RRDESSM
# NORMAL EXIT MODES
#   WHEN LOCK-ON IS ACHIEVED,BRANCH WILL BE TO P20 WHERE R22 (DATA READ
# WILL BE SELECTED OR A NEED FOR A MANEUVER(BRANCH TO P20LEMA)
# ALARM OR ABORT EXIT MODES-
#   PRIORITY ALARM 503 WHEN LOCK-ON HASN:T BEEN ACHIEVED AFTER 30SECS -
# THIS REQUIRES ASTRONAUT INTERFACE- SELECTION OF SEARCH OPTION OF
# ACQUISITION
# OUTPUT
#   SEE LPS20.1,RRDESSM
# ERASABLE INITIALIZATION REQUIRED
#   RRTARGET,RADMODES ARE USED BY LPS20.1 AND RRDESSM
# FLAGS SET + RESET
#   LOSCMFLG      LOKONSW
# DEBRIS
#   SEE LPS20.1,RRDESSM
                EBANK=  LOSCOUNT
                COUNT*  $$/R21
R21LEM          CS      BIT14           # REMOVE RR SELF TRACK ENABLE
                EXTEND
                WAND    CHAN12
                TC      LUNSFCHK
                TC      R21LEM5
                CAF     ZERO            #      COMMAND ANTENNA TO MODE CENTER
                TS      TANG            # IF NOT ON SURFACE-MODE 1-(T=0,S=0)
                TS      TANG +1
                TC      R21LEM6
R21LEM5         CAF     BIT12
                MASK    RADMODES
                CCS     A
                TC      R21LEM10
                CAF     BIT15
                TS      TANG
                CS      HALF
                TS      TANG +1
## Page 518
R21LEM6         TC      DOWNFLAG
                ADRES   LOKONSW
                TC      BANKCALL
                CADR    RRDESNB
                TC      +1
                TC      BANKCALL
                CADR    RADSTALL
                TC      R21-503         # BAD RETURN FROM DESIGNATE -ISSUE ALARM
R21LEM10        TC      UPFLAG
                ADRES   LOSCMFLG        # EVERY FOURTH PASS THRU DODES
                CAF     MAXTRIES        # ALLOW 60 PASSES (APPROX 45 SECONDS)
                TS      DESCOUNT        # TO DESIGNATE AND LOCK ON
R21LEM2         CAF     THREE
                TS      LOSCOUNT
R21LEM1         TC      INTPRET
                RTB     DAD
                        LOADTIME
                        HALFSEC         # EXTRAPOLATE TO PRESENT TIME + .5 SEC.
                STCALL  TDEC1           # LOS DETERMINATION ROUTINE
                        LPS20.1
                EXIT
R21LEM3         TC      UPFLAG          # SET LOKONSW TO RADAR-ON DESIRED
                ADRES   LOKONSW
                TC      DOWNFLAG
                ADRES   NORRMON
                TC      INTPRET
                CALL                    # INPUT (RRTARGET UPDATED BY LPS20.1)
                        RRDESSM         # DESIGNATE ROUTINE
                EXIT
                TC      R21LEM4         # LOS NOT IN MODE 2 COVERAGE
                                        # ON LUNAR SURFACE
                TC      P20LEMA         # VEHICLE MANEUVER REQUIRED.
                TC      BANKCALL        # NO VEHICLE MANEUVER REQUIRED
                CADR    RADSTALL        # WAIT FOR DESIGNATE COMPLETE - LOCKON OR
                TC      +2              # BADEND-LOCKON NOT ACHIEVED IN 60 TRIES
                TC      R21END          # EXIT ROUTINE RETURN TO P20 (LOCK-ON)
R21-503         CAF     ALRM503         # ISSUE ALARM 503
                TC      BANKCALL
                CADR    PRIOLARM
                TC      GOTOV56         # TERMINATE EXITS P20 VIA V56 CODING
                TC      R21SRCH         # PROC
                TC      P20LEMC3
                TC      ENDOFJOB
R21END          TC      DOWNFLAG
                ADRES   LOSCMFLG        # RESET LOSCMFLG
                TC      LUNSFCHK        # ARE WE ON LUNAR SURFACE
                TC      P20LEMWT        # YES - BYPASS V 50 N 72 DISPLAY
                TC      R21DISP         # PUT UP VERIFY MAIN LOBE LOCKON DISPLAY
R21SRCH         TC      PHASCHNG
                OCT     04022
## Page 519
                TC      R24LEM          # SEARCH ROUTINE
ALRM503         OCT     00503
ALRM527         OCT     527


R21LEM4         CAF     MAXTRIES        # SET UP COUNTER FOR
                TS      REPOSCNT        # 60 PASSES (APPROX 600 SECS.)
                TC      UPFLAG
                ADRES   FSPASFLG        # SET FIRST TIME FLAG
                TC      DOWNFLAG        # RESET LOS BEING
                ADRES   LOSCMFLG        # COMPUTED FLAG
                TC      INTPRET
R21LEM12        RTB
                        LOADTIME
R21LEM00        DAD
                        TENSEC          # TIME T = T + 10 SECS.
                STORE   REPOSTM         # SAVE FOR LONGCALL AND UPPSV
                STCALL  TDEC1
                        LPS20.1         # COMPUTE LOS AT TIME T
                CALL
                        RRDESSM
                EXIT
                TC      R21LEM13        # LOS NOT IN MODE 2 COVERAGE
                TC      ENDOFJOB        # VEHICLE MANEUVER REQUIRED
                TC      KILLTASK
                CADR    BEGDES
                TC      INTPRET
                BOF     CLRGO
                        FSPASFLG        # FIRST TIME THRU REPOSITION
                        R21LEM8         # NO-GO TO CONTINUOUS DESIGNATE
                        FSPASFLG        # YES-RESET FIRST TIME FLAG
                        R21LEM50
R21LEM13        CCS     REPOSCNT        # HAVE WE TRIED 60 TIMES?
                TC      R21LEM7         # NO-ADD 10 SECS. RECOMPUTE LOS
                TC      R21LEM11        # YES-PUT OUT ALARM 530
R21LEM7         TS      REPOSCNT
                TC      INTPRET
R21LEM50        DLOAD   GOTO
                        REPOSTM
                        R21LEM00
R21LEM8         DLOAD
                        REPOSTM
                STCALL  TDEC1
                        UPPSV
                EXIT
                TC      UPFLAG          # SET RADMODES BIT 15 FOR
                ADRES   CDESFLAG        # CONTINUOUS DESIGNATION
                TC      DOWNFLAG
                ADRES   LOKONSW
                TC      UPFLAG
## Page 520
                ADRES   NORRMON
                TC      BANKCALL
                CADR    RRDESNB
                TC      +1
                TC      INTPRET
                RTB     BDSU
                        LOADTIME        # COMPUTE DELTA TIME
                        REPOSTM         # FOR LONGCALL
                STORE   DELTATM
                EXIT
                EXTEND
                DCA     DELTATM
                TC      LONGCALL
                EBANK=  LOSCOUNT
                2CADR   R21LEM9
                
                TC      ENDOFJOB
R21LEM9         TC      KILLTASK
                CADR    STDESIG
                TC      CLRADMOD
                CAF     PRIO26
                TC      FINDVAC
                EBANK=  LOSCOUNT
                2CADR   R21LEM10
                
                TC      TASKOVER
R21LEM11        CAF     ALRM530         # ALARM 530-LOS NOT IN COVERAGE
                TC      BANKCALL        # AFTER TRYING TO DESIGNATE FOR
                CADR    PRIOLARM        # 600 SECS.
                TC      GOTOV56
                TC      GOTOV56
                TC      GOTOV56
                TC      ENDOFJOB
ALRM530         OCT     00530
TENSEC          2DEC    1000 B-28

HALFSEC         2DEC    50

R21DISP         TC      PHASCHNG
                OCT     04022
                CAF     V06N72PV        # FLASH V 50 N 72 - PLEASE PERFORM RR
                TC      BANKCALL        # MAIN LOBE LOCKON VERIFICATION
                CADR    GOPERF2R
                TC      GOTOV56         # TERMINATE EXITS VIA V 56
                TC      P20LEMWT        # PROCEED CONTINUES TO R22
                TC      -5              # ENTER ILLEGAL
                CAF     BIT7
                TC      LINUS           # SET BITS TO MAKE THIS A PRIORITY DISPLAY
                TC      ENDOFJOB
## Page 521
V06N72PV        VN      00672

## Page 522
# MANUAL ACQUISITION ROUTINE R23LEM
# PROGRAM DESCRIPTION
# MOD NO - 2
# BY P VOLANTE
# FUNCTIONAL DESCRIPTION
#
#   TO ACQUIRE THE CSM BY MANUAL OPERATION OF THE RENDEZVOUS RADAR
# CALLING SEQUENCE -
#          TC     R23LEM
# SUBROUTINES CALLED
#   BANKCALL        R61LEM
#   SETMINDB        GOPERF1
# NORMAL EXIT MODES -
#   IN RESPONSE TO THE GOPERF1 ,SELECTION OF ENTER WILL RECYCLE R23
#                              ,SELECTION OF PROC  WILL CONTINUE R23
#                              ,SELECTION OF TERM  WILL TERMINATE R23 +P20
# ALARM OR ABORT EXIT MODES -
#   SEE NORMAL EXIT MODES ABOVE
# OUTPUT
#   N.A.
# ERASABLE INITIALIZATION REQUIRED-
#   ACMODFLG MUST BE SET TO 1 (MANUAL MODE)
                EBANK=  GENRET
                COUNT*  $$/R23
R23LEM          TC      UPFLAG          # SET NO ANGLE MONITOR FLAG
                ADRES   NORRMON
                INHINT
                TC      IBNKCALL        # SELECT MINIMUM DEADBAND
                CADR    SETMINDB
                RELINT
R23LEM1         CAF     BIT14           # ENABLE TRACKER
                EXTEND
                WOR     CHAN12
                CAF     OCT205
                TC      BANKCALL
                CADR    GOPERF1
                TC      R23LEM2         # TERMINATE
                TC      R23LEM11        # PROCEDE
                TC      R23LEM3         # ENTER- DO ANOTHER MANUVER
R23LEM11        INHINT
                TC      RRLIMCHK        # YES - CHECK IF ANTENNA IS WITHIN LIMITS
                ADRES   CDUT
                TC      OUTOFLIM        # NOT WITHIN LIMITS
                TC      IBNKCALL        # RESTORE DEADBAND TO
                CADR    RESTORDB        # ASTRONAUT SELECTED VALUE
                RELINT
                TC      DOWNFLAG        # CLEAR NO ANGLE MONITOR FLAG
                ADRES   NORRMON
                TC      P20LEMB1        # RADAR IS LOCKED ON CONTINUE IN P20
OUTOFLIM        RELINT
## Page 523
                CAF     OCT501PV
                TC      BANKCALL        # ISSUE ALARM - RR ANTENNA NOT WITHIN
                CADR    PRIOLARM        # LIMITS
                TC      R23LEM2         # TERMINATE - EXIT R23 TO R00 (GO TO POOH)
                TC      OUTOFLIM +1     # PROCEED ILLEGAL
                TC      R23LEM3         # RECYCLE- DO ANOTHER MANUVER
                TC      ENDOFJOB
R23LEM2         TC      DOWNFLAG        # CLEAR NO ANGLE MONITOR FLAG
                ADRES   NORRMON
                TC      GOTOV56         # AND EXIT VIA V56
R23LEM3         TC      BANKCALL
                CADR    R61LEM
                TC      R23LEM1
                

OCT501PV        OCT     501
OCT205          OCT     205

## Page 524
# SEARCH ROUTINE R24LEM
# PROGRAM DESCRIPTION
# MOD NO - 2
# BY  P. VOLANTE
# FUNCTIONAL DESCRIPTION
#
#   TO ACQUIRE THE CSM BY A SEARCH PATTERN WHEN THE RENDEZVOUS RADAR HAS
# FAILED TO ACQUIRE THE CSM IN THE AUTOMATIC TRACKING MODE AND TO ALLOW
# THE ASTRONAUT TO CONFIRM THAT REACQUISITION HAS NOT BEEN BY SIDELOBE.
# CALLING SEQUENCE
#          CAF    PRIONN
#          TC     FINDVAC
#          EBANK= DATAGOOD
#          2CADR  R24LEM
# SUBROUTINES CALLED
#   FLAGUP        FLAGDOWN      BANKCALL
#   R61LEM        GOFLASHR      FINDVAC
#   ENDOFJOB      NOVAC         LSR24.1
# NORMAL EXIT MODES-
#   ASTRONAUT RESPONSE TO DISPLAY OF OMEGA AND DATAGOOD.HE CAN EITHER
# REJECT BY TERMINATING (SEARCH OPTION AND RESELECTING P20) OR ACCEPT BY
# PROCEEDING (EXIT ROUTINE AND RETURN TO AUTO MODE IN P20)
# ALARM OR ABORT EXIT MODES-
#   SEE NORMAL EXIT MODES ABOVE
# OUTPUT -
#   SEE OUTPUT FROM LSR24.1 + R61LEM
# ERASABLE INITIALIZATION REQUIRED
#   SEE INPUT FOR LSR24.1
# FLAGS SET + RESET
#   SRCHOPT,ACMODFLG
                EBANK=  DATAGOOD
                COUNT*  $$/R24
R24LEM          TC      UPFLAG
                ADRES   SRCHOPTN        # SET SRCHOPT FLAG
                TC      DOWNFLAG        # RESET LOS BEING COMPUTED FLAG TO MAKE
                ADRES   LOSCMFLG        # SURE DODES DOESN'T GO TO R21
R24LEM1         CAF     ZERO
                TS      DATAGOOD        # ZERO OUT DATA INDICATOR
                TS      OMEGAD          # ZERO OMEGA DISPLAY REGS
                TS      OMEGAD +1       # ZERO OMEGA DISPLAY REGS
R24LEM2         TC      PHASCHNG
                OCT     04022
                CAF     V16N80
                TC      BANKCALL
                CADR    PRIODSPR
                TC      GOTOV56
                TC      R24END          # PROCEED EXIT R24 TO P20LEM1
                

                TC      R24LEM3         # RECYCLE - CALL R61 TO MANEUVER S/C
## Page 525
                TC      BANKCALL
                CADR    LRS24.1
R24END          TC      KILLTASK
                CADR    CALLDGCH
                TC      CLRADMOD        # CLEAR BITS 10 & 15 OF RADMODES.
                TCF     P20LEM1         # AND GO TO 400 MI. RANGE CHECK IN P20.
                
                BLOCK   3
                SETLOC  FFTAG6
                BANK
                COUNT*  $$/R24
                
CLRADMOD        CS      BIT10+15
                INHINT
                MASK    RADMODES
                TS      RADMODES
                CS      BIT2            # DISABLE RR ERROR COUNTERS
                EXTEND
                WAND    CHAN12          # USER WILL RELINT

                TC      Q

                
BIT10+15        OCT     41000
                BANK    24
                SETLOC  P20S
                BANK
                COUNT*  $$/R24
                
R24LEM3         TC      PHASCHNG
                OCT     04022
                TC      KILLTASK
                CADR    CALLDGCH        # KILL WAITLIST FOR NEXT POINT IN PATTERN
                TC      CLRADMOD        # CLEAR BITS 10 + 15 OF RADMODES
                CAF     .5SEC
                TC      BANKCALL        # WAIT FOR DESIGNATE LOOP TO DIE
                CADR    DELAYJOB
                TC      LUNSFCHK        # CHECK IF ON LUNAR SURFACE
                TC      R24LEM4         # YES-DONT DO ATTITUDE MANEUVER
                TC      BANKCALL        # CALL R61 TO DO PREFERRED TRACKING
                CADR    R61LEM          # ATTITUDE MANEUVER
R24LEM4         CAF     ZERO            # ZERO OUT RADCADR (WHICH WAS SET BY
                TS      RADCADR         # ENDRADAR WHEN DESIGNATE STOPPED) SO THAT
                                        # RRDESSM  WILL RETURN TO CALLER
                TC      R24LEM2         # AND GO BACK TO PUT UP V16 N80 DISPLAY
                

V16N80          VN      01680
                
## Page 526
# PREFERRED TRACKING ATTITUDE ROUTINE R61LEM
# PROGRAM DESCRIPTION
# MOD NO : 3                      DATE : 4-11-67
# MOD BY : P VOLANTE  SDC


# FUNCTIONAL DESCRIPTION-
#   TO COMPUTE THE PREFERRED TRACKING ATTITUDE OF THE LM TO ENABLE RR
# TRACKING OF THE CSM AND TO PERFORM THE MANEUVER TO THE PREFERRED
# ATTITUDE.
# CALLING SEQUENCE-
#          TC     BANKCALL
#          CADR   R61LEM
# SUBROUTINES CALLED
#     LPS20.1       VECPOINT
#     KALCMAN3


# NORMAL EXIT MODES-
#   NORMAL RETURN IS TO CALLER + 1
# ALARM OR ABORT EXIT MODES-
#   TERMINATE P20 + R61 BY BRANCHING TO P20END IF BOTH TRACKFLAG +
# RENDEZVOUS FLAG ARE NOT SET.
# OUTPUT -
#   SEE OUTPUT FOR LPS20.1 + ATTITUDE MANEUVER ROUTINE (R60)
# ERASABLE INITIALIZATION REQUIRED
#   GENRET USED TO SAVE Q FOR RETURN
# FLAGS SET + RESET
#   3AXISFLG
# DEBRIS
#   SEE SUBROUTINES
                SETLOC  R61
                BANK
                EBANK=  LOSCOUNT
                COUNT*  $$/R61
R61LEM          TC      MAKECADR
                TS      GENRET
                TC      UPFLAG          # SET R61 FLAG
                ADRES   R61FLAG
                TC      R61C+L02
R65LEM          TC      MAKECADR
                TS      GENRET
                TC      DOWNFLAG        # RESET R61 FLAG
                ADRES   R61FLAG
R61C+L01        CAF     BIT4            # BYPASS RADAR READING IF DATA
                EXTEND                  # GOOD NOT PRESENT
                RAND    CHAN33
                CCS     A
## Page 527
                TCF     R61C+L02        # NO DATA GOOD
                TC      BANKCALL        # READ RR RANGE AND RDOT
                CADR    RRRDOT          #  EVERY R65 PASS (3 TIMES
                TC      BANKCALL        #  BEFORE FIRST MARK, ONCE
                CADR    RADSTALL        #  DURING ANY MARK PROCESSING,
                NOOP
                TC      BANKCALL
                CADR    RRRANGE
                TC      BANKCALL
                CADR    RADSTALL
                NOOP
R61C+L02        CAF     TRACKBIT        # TRACKFLAG
                MASK    STATE +1
                EXTEND
                BZF     R65WAIT         # NOT SET
R61C+L03        TC      INTPRET
                VLOAD
                        HIUNITZ
                STORE   SCAXIS          # TRACK AXIS UNIT VECTOR
R61LEM1         RTB     DAD
                        LOADTIME        # EXTRAPOLATE FORWARD TO CENTER
                        3SECONDS        # SIX SECOND PERIOD.
                STCALL  TDEC1
                        LPS20.1         # LOS DETERMINATION + VEH ATTITUDE
                VLOAD
                        RRTARGET
                STORE   POINTVSM
                RTB     CALL            #    GET DESIRED CDU'S FOR VECPNT1
                        READCDUD
                        VECPNT1         # COMPUTES FINAL ANGLES FROM PRESENT CDUDS
                STORE   CPHI            # STORE FINAL ANGLES - CPHI,CTHETA,CPSI
                EXIT
                TC      PHASCHNG
                OCT     04022
                CAF     TRACKBIT        #  IS TRACK FLAG SET
                MASK    FLAGWRD1
                EXTEND
                BZF     R65WAIT
                TC      BANKCALL
                CADR    G+N,AUTO        # CHECK FOR AUTO MODE
                CCS     A
                TC      R61C+L04        # NOT IN AUTO
                TC      INTPRET
                VLOAD   CALL
                        RRTARGET
                        CDU*SMNB
                DLOAD   DSU             # GET PHI - ARCCOS OF Z-COMPONENT OF LOS
                        MPAC +5
                        COS15DEG
R61LEM2         BMN     EXIT            # BRANCH - PHI > 15 DEGREES
## Page 528
                        R61C+L05        # PHI GRE 10DEG
                EBANK=  CDUXD
                CAF     EBANK6
                TS      EBANK
                INHINT
                EXTEND
                DCA     CPHI
                DXCH    CDUXD
                CA      CPSI
                TS      CDUZD
                RELINT
                EBANK=  LOSCOUNT
                CAF     EBANK7
                TS      EBANK
                TC      R61C+L06
R61C+L05        EXIT
                INHINT
                TC      IBNKCALL
                FCADR   ZATTEROR
                TC      IBNKCALL
                FCADR   SETMINDB        # REDUCE ATTITUDE ERROR
                TC      DOWNFLAG
                ADRES   3AXISFLG
                TC      UPFLAG
                ADRES   PDSPFLAG        # SET PRIORITY DISPLAY FLAG
                TC      BANKCALL
                CADR    R60LEM
                INHINT
                TC      IBNKCALL
                FCADR   RESTORDB
                TC      PHASCHNG
                OCT     04022
                TC      DOWNFLAG
                ADRES   PDSPFLAG        # RESET PRIORITY DISPLAY FLAG
R61C+L06        CA      FLAGWRD1
                MASK    R61FLBIT
                CCS     A
                TC      R61C+L4
                CCS     R65CNTR
                TC      +2
                TC      R61C+L4         # R65CNTR = 0 - EXIT ROUTINE
                TS      R65CNTR
                CAF     06SEC
                TC      TWIDDLE
                ADRES   R61C+L2
                TC      ENDOFJOB
R61C+L2         CAF     PRIO26
                TC      FINDVAC
                EBANK=  LOSCOUNT
                2CADR   R61C+L01
                
## Page 529
                TC      TASKOVER
R61C+L04        TC      BANKCALL        # TO CONVERT ANGLES TO FDAI
                CADR    BALLANGS
                TC      R61C+L06
R61C+L4         CAE     GENRET
                TCF     BANKJUMP        # EXIT R61
R61C+L1         CAF     BIT7+9PV        # IS RENDEZVOUS OR P25FLAG SET
                MASK    STATE
                EXTEND
                BZF     ENDOFJOB        # NO-EXIT ROUTINE AND PROGRAM.
                TC      R61C+L06        # YES EXIT ROUTINE
R65WAIT         TC      POSTJUMP
                CADR    P20LEMWT

                
BIT7+9PV        OCT     00500
COS15DEG        2DEC    0.96593 B-1

06SEC           DEC     600
PHI             EQUALS  20D
READCDUD        INHINT                  # READS DESIRED CDU'S AND STORES IN
                CAF     EBANK6          # MPAC TP EXITS WITH MODE SET TO TP
                XCH     EBANK
                TS      RUPTREG1
                EBANK=  CDUXD
                CA      CDUXD
                TS      MPAC
                EXTEND
                DCA     CDUYD
                DXCH    MPAC +1
                CA      RUPTREG1
                TS      EBANK
                RELINT
                TCF     TMODE
                BLOCK   02
                SETLOC  RADARFF
                BANK
                
                EBANK=  LOSCOUNT
                COUNT*  $$/RRSUB

## Page 530
# THE FOLLOWING SUBROUTINE RETURNS TO CALLER + 2 IF THE ABSOLUTE VALUE OF VALUE OF C(A) IS GREATER THAN THE
# NEGATIVE OF THE NUMBER AT CALLER +1. OTHERWISE IT RETURNS TO CALLER +3. MAY BE CALLED IN RUPT OR UNDER EXEC.

MAGSUB          EXTEND
                BZMF    +2
                TCF     +2
                COM
                
                INDEX   Q
                AD      0
                EXTEND
                BZMF    Q+2             # ABS(A) <= CONST GO TO L+3
                TCF     Q+1             # ABS(A) >  CONST GO TO L+2
                
## Page 531
# PROGRAM NAME_  RRLIMCHK                                                  ARE IN THE LIMITS OF THE CURRENT MODE.

# FUNCTIONAL DESCRIPTION_
# RRLIMCHK CHECKS RR DESIRED GIMBAL ANGLES TO SEE IF THEY ARE WITHIN
# THE LIMITS OF THE CURRENT MODE. INITIALLY THE DESIRED TRUNNION AND
# SHAFT ANGLES ARE STORED IN ITEMP1 AND ITEMP2. THE CURRENT RR
# ANTENNAE MODE (RADMODES BIT 12) IS CHECKED WHICH IS = 0 FOR
# MODE 1 AND =1 FOR MODE 2.
# MODE 1 - THE TRUNNION ANGLE IS CHECKED AT MAGSUB TO SEE IF IT IS
# BETWEEN -55 AND +55 DEGREES. IF NOT, RETURN TO L +2. IF WITHIN LIMITS,
# THE SHAFT ANGLE IS CHECKED TO SEE IF IT IS BETWEEN -70 AND +59 DEGREES.
# IF NOT, RETURN TO L +2. IF IN LIMITS, RETURN TO L +3.
# MODE 2 - THE SHAFT ANGLE IS CHECKED AT MAGSUB TO SEE IF IT IS
# BETWEEN -139 AND -25 DEGREES. IF NOT, RETURN TO L +2. IF WITHIN
# LIMITS, THE TRUNNION ANGLE IS CHECKED TO SEE IF IT IS BETWEEN +125
# AND -125 (+235) DEGREES. IF NOT, RETURN TO L +2. IF IN LIMITS, RETURN
# TO L +3.

# CALLING SEQUENCE:
# L  TC  RRLIMCHK (WITH INTERRUPT INHIBITED)
# L +1  ADRES T,S   (DESIRED TRUNNION ANGLE ADDRESS)

# ERASABLE INITIALIZATION REQUIRED:
# RADMODES, MODEA, MODEB (OR DESIRED TRUNNION AND SHAFT
# ANGLES ELSEWHERE IN CONSECUTIVE LOCATIONS - UNSWITCHED ERASABLE OR
# CURRENT EBANK).

# SUBROUTINES CALLED_  MAGSUB

# JOBS OR TASKS INITIATED_  NONE

# ALARMS_  NONE

# EXIT_  L + 2 (EITHER OR BOTH ANGLES NOT WITHIN LIMITS OF CURRENT MODE)
# L + 3 (BOTH ANGLES WITHIN LIMITS OF CURRENT MODE)

RRLIMCHK        EXTEND
                INDEX   Q
                INDEX   0
                DCA     0
                INCR    Q
                DXCH    ITEMP1
                LXCH    Q               # L(CALLER +2) TO L.
                
                CAF     ANTENBIT        # SEE WHICH MODE RR IS IN.
                MASK    RADMODES
                CCS     A
                TCF     MODE2CHK
                
                CA      ITEMP1          # MODE 1 IS DEFINED AS
## Page 532
                TC      MAGSUB          #     1. ABS(T) L 55 DEGS.
                DEC     -.30555         #     2. ABS(S + 5.5 DEGS) L 64.5 DEGS
                TC      L               #         (SHAFT LIMITS AT +59, -70 DEGS)
                
                CAF     5.5DEGS
                AD      ITEMP2          # S
                TC      MAGSUB
                DEC     -.35833         # 64.5 DEGS
                TC      L
                TC      RRLIMOK         # IN LIMITS.
                
MODE2CHK        CAF     82DEGS          # MODE 2 IS DEFINED AS
                AD      ITEMP2          #     1. ABS(T) G 125 DEGS.
                TC      MAGSUB          #     2. ABS(S + 82 DEGS) L 57 DEGS
                DEC     -.31667         #         (SHAFT LIMITS AT -25, -139 DEGS)
                TC      L
                
                CA      ITEMP1
                TC      MAGSUB
                DEC     -.69444         # 125 DEGS
                
RRLIMOK         INDEX   L
                TC      L               # ( = TC 1)
                
5.5DEGS         DEC     .03056
82DEGS          DEC     .45556

## Page 533
# PROGRAM NAME_  SETTRKF                                                  . IF EITHER:

# FUNCTIONAL DESCRIPTION_
# SETTRKF UPDATES THE TRACKER FAIL LAMP ON THE DSKY.                      HER THE ALT OR VEL INFORMATION.
# INITIALLY THE LAMP TEST FLAG (IMODES33 BIT 1) IS CHECKED.
# IF A LAMP TEST IS IN PROGRESS, THE PROGRAM EXITS TO L +1.
# IF NO LAMP TEST THE FOLLOWING IS CHECKED SEQUENTIALLY_
# 1) RR CDU:S BEING ZEROED, RR CDU OK, AND RR NOT IN
# AUTO MODE (RADMODES BITS 13, 7, 2).
# 2) LR VEL DATA FAIL AND NO LR POS DATA (RADMODES BITS
# 8,5)
# 3) NO RR DATA (RADMODES BIT 4)
# THE ABSENCE OF ALL THREE SIMULTANEOUSLY IN (1), THE PRESENCE OF BOTH
# IN (2), AND THE PRESENCE OF (3) RESULTS IN EITHER THE TRACKER FAIL
# LAMP (DSPTAB +11D BIT 8) BEING TURNED ON OR LEFT ON. OTHERWISE,
# THE TRACKER FAIL LAMP IS TURNED OFF OR IS LEFT OFF. THEREFORE, THE
# TRACKER FAIL LAMP IS TURNED ON IF_
# A ) RR CDU FAILED WITH RR IN AUTO MODE AND RR CDU:S NOT BEING ZEROED.
# B) N SAMPLES OF LR DATA COULD NOT BE TAKEN IN 2N TRIES WITH
# EITHER THE ALT OR VEL INFORMATION
# C) N SAMPLES OF RR DATA COULD NOT BE OBTAINED FROM 2N TRIES
# WITH EITHER THE AL

# CALLING SEQUENCE:
# L  TC  SETTRKF

# ERASABLE INITIALIZATION REQUIRED: IMODES33, RADMODES, DSPTAB +11D
# SUBROUTINES CALLED_  NONE

# JOBS OR TASKS INITIATED_  NONE

# ALARMS_  TRACKER FAIL LAMP

# EXIT_  L +1 (ALWAYS)                                                         ED.

SETTRKF         CAF     BIT1            # NO ACTION IF DURING LAMP TEST.
                MASK    IMODES33
                CCS     A
                TC      Q
                
RRTRKF          CA      BIT8
                TS      L

                CAF     13,7,2          # SEE IF CDU FAILED.
                MASK    RADMODES
                EXTEND
                BZF     TRKFLON         # CONDITION 3 ABOVE.
                
RRCHECK         CAF     RRDATABT        # SEE IF RR DATA FAILED.
                MASK    RADMODES
## Page 534
                CCS     A
TRKFLON         CA      L
                AD      DSPTAB +11D     # HALF ADD DESIRED AND PRESENT STATES.
                MASK    L
                EXTEND
                BZF     TCQ             # NO CHANGE.
                
FLIP            CA      DSPTAB +11D     # CANT USE LXCH DSPTAB +11D (RESTART PROB)
                EXTEND
                RXOR    LCHAN
                MASK    POSMAX
                AD      BIT15
                TS      DSPTAB +11D
                TC      Q
                
13,7,2          OCT     10102
ENDRMODF        EQUALS

## Page 535
# PROGRAM NAME_  RRTURNON

# FUNCTIONAL DESCRIPTION_

# RRTURNON IS THE TURN-ON SEQUENCE WHICH, ALONG WITH
# RRZEROSB, ZEROS THE CDU:S AND DETERMINES THE RR MODE.
# INITIALLY, CONTROL IS TRANSFERRED TO RRZEROSB FOR THE
# ACTUAL TURN-ON SEQUENCE. UPON RETURN THE PROGRAM
# WAITS 1 SECOND BEFORE REMOVING THE TURN-ON FLAG
# (RADMODES BIT1) SO THE REPOSITION ROUTINE WON:T
# INITIATE PROGRAM ALARM 00501. A CHECK IS THEN MADE
# TO SEE IF A PROGRAM IS USING THE RR (STATE BIT 7). IF
# SO, THE PROGRAM EXITS TO ENDRADAR SO THAT THE RR CDU
# FAIL FLAG (RADMODES BIT 7) CAN BE CHECKED BEFORE
# RETURNING TO THE WAITING PROGRAM. IF NOT, THE PROGRAM EXITS
# TO TASKOVER.

# CALLING SEQUENCE: WAITLIST TASK FROM RRAUTCHK IF THE RR POWER ON AUTO
# BIT (CHAN 33 BIT 2) CHANGES TO 0 AND NO PROGRAM WAS USING 
# THE RR (STATE BIT 7).

# ERASABLE INITIALIZATION REQUIRED:
# RADMODES, STATE

# SUBROUTINES CALLED_  RRZEROSB, FIXDELAY, TASKOVER, ENDRADAR

# JOBS OR TASKS INITIATED_
# NONE

# ALARMS_  NONE (SEE RRZEROSB)

# EXIT_  TASKOVER, ENDRADAR (WAITING PROGRAM)

                BANK    24
                SETLOC  P20S1
                BANK
                
                EBANK=  LOSCOUNT
                COUNT*  $$/RSUB
RRTURNON        TC      RRZEROSB
                TC      FIXDELAY        # WAIT 1 SEC BEFORE REMOVING TURN ON FLAG
                DEC     100             # SO A MONITOR REPOSITION WONT ALARM.
                CS      TURNONBT
                MASK    RADMODES
                TS      RADMODES
                TCF     TASKOVER

## Page 536
# PROGRAM NAME_  RRZEROSB

# FUNCTIONAL DESCRIPTION_
# RRZEROSB IS A CLOSED SUBROUTINE TO ZERO THE RR CDU:S,
# DETERMINE THE RR MODE, AND TURNS ON THE TRACKER FAIL
# LAMP IF REQUIRED. INITIALLY THE RR CDU ZERO BIT (CHAN 12
# BIT 1) IS SET. FOLLOWING A 20 MILLISECOND WAIT, THE LGC
# RR CDU COUNTERS (OPTY, OPTX) ARE SET = 0 AFTER 
# WHICH THE RR CDU ZERO DISCRETE (CHAN 12 BIT 1) IS
# REMOVED. A 4 SECOND WAIT IS SET TO ALL THE RR CDU:S
# TO REPEAT THE ACTUAL TRUNNION AND SHAFT ANGLES. THE
# RR CDU ZERO FLAG (RADMODES BIT 13) IS REMOVED. THE
# CONTENTS OF OPTY IS THEN CHECKED TO SEE IF THE TRUNNION
# ANGLE IS LESS THAN 90 DEGREES. IF NOT, BIT 12 OF
# RADMODES IS SET = 1 TO INDICATE RR ANTENNA MODE 2.
# IF LESS THAN 90 DEGREES, BIT 12 OF RADMODES IS SET = 0 TO
# INDICATE RR ANTENNA MODE 1. SETTRKF IS THEN CALLED TO
# SEE IF THE TRACKER FAIL LAMP SHOULD BE TURNED ON.

# CALLING SEQUENCE: L  TC  RRZEROSB (FROM RRTURNON AND RRZERO)
# ERASABLE INITIALIZATION REQUIRED:
# RADMODES (BIT 13 SET), DSPTAB +11D

# SUBROUTINES CALLED_  FIXDELAY, MAGSUB, SETTRKF

# JOBS OR TASKS INITIATED_
# NONE

# ALARMS_  TRACKER FAIL

# EXIT_  L +1 (ALWAYS)

RRZEROSB        EXTEND
                QXCH    RRRET
                CAF     BIT1            # BIT 13 OF RADMODES MUST BE SET BEFORE
                EXTEND                  # COMING HERE.
                WOR     CHAN12          # TURN ON ZERO RR CDU
                TC      FIXDELAY
                DEC     2
                
                CAF     ZERO
                TS      CDUT
                TS      CDUS
                CS      ONE             # REMOVE ZEROING BIT.
                EXTEND
                WAND    CHAN12
                TC      FIXDELAY
                DEC     1000            # RESET FAIL INHIBIT IN 10 SECS - D.281
                
                CS      RCDU0BIT        # REMOVE ZEROING IN PROCESS BIT.
## Page 537
                MASK    RADMODES
                TS      RADMODES
                
                CA      CDUT
                TC      MAGSUB
                DEC     -.5
                TCF     +3              # IF MODE 2.
                
                CAF     ZERO
                TCF     +2
                CAF     ANTENBIT
                XCH     RADMODES
                MASK    -BIT12
                ADS     RADMODES
                
                TC      SETTRKF         # TRACKER LAMP MIGHT GO ON NOW.
                
                TC      RRRET           # DONE.

-BIT12          EQUALS  -1/8            # IN SPROOT

## Page 538
# PROGRAM NAME_  DORREPOS
# FUNCTIONAL DESCRIPTION_
# DORREPOS IS A SEQUENCE OF TASKS TO DRIVE THE RENDEZVOUS RADAR
# TO A SAFE POSITION. INITIALLY SETRRECR IS CALLED WHERE THE RR
# ERROR COUNTERS (CHAN 12 BIT 2) ARE ENABLED AND LASTYCMD
# AND LASTXCMD SET = 0 TO INDICATE THE DIFFERENCE BETWEEN THE
# DESIRED STATE AND PRESENT STATE OF THE COMMANDS. THE RR
# TURN-ON FLAG (RADMODES BIT 1) IS CHECKED AND IF NOT PRESENT,
# PROGRAM ALARM 00501 IS REQUESTED BEFORE CONTINUING. IN EITHER
# CASE, FOLLOWING A 20 MILLISECOND WAIT THE PROGRAM CHECKS THE CURRENT
# RR ANTENNA MODE (RADMODES BIT 12). RRTONLY IS THEN CALLED
# TO DRIVE THE TRUNNION ANGLE TO 0 DEGREES IF IN MODE 1 AND TO 180
# DEGREES IF IN MODE 2. UPON RETURN, THE CURRENT RR ANTENNA
# MODE (RADMODES BIT 12) IS AGAIN CHECKED. RRSONLY IS THEN
# CALLED TO DRIVE THE SHAFT ANGLE TO 0 DEGREES IF IN MODE 1 AND TO
# -90 DEGREES IF IN MODE 2. IF DURING RRTONLY OR RRSONLY A
# REMODE HAS BEEN REQUESTED (RADMODES BIT 14), AND ALWAYS
# FOLLOWING COMPLETION OF RRSONLY, CONTROL IS TRANSFERRED TO
# REPOSRPT. HERE THE REPOSITION FLAG (RADMODES BIT 11) IS 
# REMOVED. A CHECK IS THEN MADE ON THE DESIGNATE FLAG (RADMODES
# BIT 10). IF PRESENT, CONTROL IS TRANSFERRED TO BEGDES. IF NOT PRESENT
# INDICATING NO FURTHER ANTENNA CONTROL REQUIRED, THE RR ERROR
# COUNTER BIT (CHAN 12 BIT 2) IS REMOVED AND THE ROUTINE EXITS TO
# TASKOVER.

# CALLING SEQUENCE:
# WAITLIST CALL FROM RRGIMON IF TRUNNION AND SHAFT CDU ANGLES
# NOT WITHIN LIMITS OF CURRENT MODE.

# ERASABLE INITIALIZATION REQUIRED:
# RADMODES

# SUBROUTINES CALLED_
# RRTONLY, RRSONLY, BEGDES (EXIT)

# JOBS OR TASKS INITIATED_
# NONE

# ALARMS-  NONE

# EXIT_  TASKOVER, BEGDES

DORREPOS        TC      SETRRECR        # SET UP RR CDU ERROR COUNTERS.

# ALARM 501 DELETED IN DANCE 279 PER PCR 97.

                TC      FIXDELAY
                DEC     2
                
                CAF     ANTENBIT        # MANEUVER TRUNNION ANGLE TO NOMINAL POS.
## Page 539
                MASK    RADMODES
                CCS     A
                CAF     BIT15           # 0 FOR MODE 1 AND 180 FOR MODE 2.
                TC      RRTONLY
                
                CAF     ANTENBIT        # NOW PUT SHAFT IN RIGHT POSITION
                MASK    RADMODES
                CCS     A
                CS      HALF            # -90 FOR MODE 2.
                TC      RRSONLY
                
REPOSRPT        CS      REPOSBIT        # RETURNS HERE FROM RR1AXIS IF REMODE
                                        # REQUESTED DURING REPOSITION.
                MASK    RADMODES        # REMOVE REPOSITION BIT.
                TS      RADMODES
                MASK    DESIGBIT        # SEE IF SOMEONE IS WAITING TO DESIGNATE.
                CCS     A
                TCF     BEGDES
                CS      BIT2            # IF NO FURTHER ANTENNA CONTROL REQUIRED,
                EXTEND                  # REMOVE ERROR COUNTER ENABLE.
                WAND    CHAN12
                TCF     TASKOVER
                
SETRRECR        CAF     BIT2            # SET UP RR ERROR COUNTERS.
                EXTEND
                RAND    CHAN12
                CCS     A               # DO NOT CLEAR LAST COMMAND IF
                TC      Q               # ERROR COUNTERS ARE ENABLED.
                
                TS      LASTYCMD
                TS      LASTXCMD
                CAF     BIT2
                EXTEND
                WOR     CHAN12          # ENABLE RR CDU ERROR COUNTERS.
                TC      Q
## Page 540
# PROGRAM NAME_  REMODE                                                   IVES SHAFT TO -45, AND FINALLY DRIVES
#
# FUNCTIONAL DESCRIPTION_                                                 S DONE WITH SINGLE AXIS ROTATIONS (SEE
# REMODE IS THE GENERAL REMODING SUBROUTINE. IT DRIVES THE
# TRUNNION ANGLE TO 0 DEGREES IF THE CURRENT MODE IS MODE 1,
# 180 DEGREES FOR MODE 2, THEN DRIVES THE SHAFT ANGLE TO -45
# DEGREES, AND FINALLY DRIVES THE TRUNNION ANGLE TO -130 DEGREES,
# TO PLACE THE RR IN MODE 2, -50 DEGREES FOR MODE 1, BEFORE
# INITIATING 2-AXIS CONTROL. ALL REMODING IS DONE WITH SINGLE
# AXIS ROTATIONS (RR1AXIS). INITIALLY THE RR ANTENNA MODE FLAG
# (RADMODES BIT 12) IS CHECKED. CONTROL IS THEN TRANSFERRED TO
# RRTONLY TO DRIVE THR TRUNNION ANGLE TO 0 DEGREES IF IN MODE 1
# OR 180 DEGREES IF IN MODE 2. RRSONLY IS THEN CALLED TO DRIVE
# THE SHAFT ANGLE TO -45 DEGREES. THE RR ANTENNA MODE FLAG
# (RADMODES BIT 12) IS CHECKED AGAIN. CONTROL IS AGAIN
# TRANSFERRED TO RRTONLY TO DRIVE THE TRUNNION ANGLE TO -130
# DEGREES TO PLACE THE RR IN MODE 2 IF CURRENTLY IN MODE 1 OR TO
# -50 DEGREES IF IN MODE 2 TO PLACE THE RR IN MODE 1. RMODINV
# IS THEN CALLED TO SET RADMODES BIT 12 TO INDICATE THE NEW
# RR ANTENNA MODE. THE REMODE FLAG (RADMODES BIT 14)
# IS REMOVED TO INDICATE THAT REMODING IS COMPLETE. THE PROGRAM
# THEN EXITS TO STDESIG TO BEGIN 2-AXIS CONTROL.

# CALLING SEQUENCE:
# FROM BEGDES WHEN REMODE FLAG (RADMODES BIT 14) IS SET.
# THIS FLAG MAY BE SET IN RRDESSM AND RRDESNB IF RRLIMCHK
# DETERMINES THAT THE DESIRED ANGLES ARE WITHIN THE LIMITS OF THE
# OTHER MODE.

# ERASABLE INITIALIZATION REQUIRED:
# RADMODES

# SUBROUTINES CALLED_
# RRTONLY, RRSONLY, RMODINV (ACTUALLY PART OF)

# JOBS OR TASKS INITIATED_
# NONE

# ALARMS_  NONE

# EXIT_  STDESIG

REMODE          CAF     ANTENBIT        # DRIVE TRUNNION TO 0 (180)
                MASK    RADMODES        # (ERROR COUNTER ALREADY ENABLED)
                CCS     A
                CAF     BIT15
                TC      RRTONLY
                
                CAF     -45DEGSR
                TC      RRSONLY
## Page 541
                CS      RADMODES
                MASK    ANTENBIT
                CCS     A
                CAF     -80DEGSR        # GO TO T = -130 (-50).
                AD      -50DEGSR
                TC      RRTONLY
                
                CS      RADMODES
                MASK    ANTENBIT
                CCS     A
                CAF     BIT15           # GO TO T = -180 (+0).
                TC      RRTONLY
                
                CS      RADMODES        # GO TO S = -90 (+0).
                MASK    ANTENBIT
                CCS     A
                CS      HALF
                TC      RRSONLY
                
                TC      RMODINV

                CS      REMODBIT        # END OF REMODE.
                MASK    RADMODES
                TS      RADMODES
                
                CAF     DESIGBIT        # WAS REMODE CALLED DURING DESIGNATE?
                MASK    RADMODES        # (BIT10 RADMODES = 1)
                EXTEND
                BZF     RGOODEND        # NO-RETURN TO CALLER WAITING IN RADSTALL
                TC      STDESIG         # YES - RETURN TO DESIGNATE
-45DEGSR        =       13,14,15
-50DEGSR        DEC     -.27778
-80DEGSR        DEC     -.44444

RMODINV         LXCH    RADMODES        # INVERT THE MODE STATUS.
                CAF     ANTENBIT
                EXTEND
                RXOR    LCHAN
                TS      RADMODES
                TC      Q
                
## Page 542
# PROGRAM NAMES_  RRTONLY, RRSONLY

# FUNCTIONAL DESCRIPTION_
# RRTONLY AND RRSONLY ARE SUBROUTINES FOR DOING SINGLE AXIS
# RR MANEUVERS FOR REMODE AND REPOSITION. IT DRIVES TO
# WITHIN 1 DEGREE. INITIALLY, AT RR1AX2, THE REMODE AND REPOSITION
# FLAGS (RADMODES BITS 14, 11) ARE CHECKED. IF BOTH EXIST,
# THE PROGRAM EXITS TO REPOSRPT (SEE DORREPOS). THIS INDICATES
# THAT SOMEONE POSSIBLY REQUESTED A DESIGNATE (RADMODES BIT 10)
# WHICH REQUIRES A REMODE (RADMODES BIT 14) AND THAT A
# REPOSITION IS IN PROGRESS (RADMODES BIT 11). IF NONE
# OR ONLY ONE OF THE FLAGS EXIST, REMODE OR REPOSITION, MAGSUB
# IS CALLED TO SEE IF THE APPROPRIATE ANGLE IS WITHIN 1 DEGREE. IF YES,
# CONTROL RETURNS TO THE CALLING ROUTINE. IF NOT, CONTROL IS
# TRANSFERRED TO RROUT FOR SINGLE AXIS MANEUVERS WITH THE OTHER
# ANGLE SET = 0. FOLLOWING A .5 SECOND WAIT, THE ABOVE PROCEDURE IS
# REPEATED.

# CALLING SEQUENCE: L-1 CAF *ANGLE*  (DESIRED ANGLE SCALED PI)
# L  TC  RRTONLY (TRUNNION ONLY)
# RRSONLY (SHAFT ONLY)
# RRTONLY IS CALLED BY PREPOS29;
# RRTONLY AND RRSONLY ARE CALLED BY DORREPOS AND REMODE

# ERASABLE INITIALIZATION REQUIRED:
# C(A) = DESIRED ANGLE, RADMODES

# SUBROUTINES CALLED_
# FIXDELAY, REPOSRPT, MAGSUB, RROUT

# JOBS OR TASKS INITIATED_
# NONE

# ALARMS_  NONE

# EXIT_  REPOSRPT (REMODE AND REPOSITION FLAGS PRESENT - RADMODES
# BITS 14, 11)
# L+1  (ANGLE WITHIN ONE DEGREE OR RR OUT OF AUTO MODE)

RRTONLY         TS      RDES            # DESIRED TRUNION ANGLE.
                CAF     ZERO
                TCF     RR1AXIS
                
RRSONLY         TS      RDES            # SHAFT COMMANDS ARE UNRESOLVED SINCE THIS
                CAF     ONE             # ROUTINE ENTERED ONLY WHEN T = 0 OR 180.
                
RR1AXIS         TS      RRINDEX
                EXTEND
                QXCH    RRRET
                TCF     RR1AX2

## Page 543
NXTRR1AX        TC      FIXDELAY
                DEC     50              # 2 SAMPLES PER SECOND.
                
RR1AX2          CS      RADMODES        # IF SOMEONE REQUESTES AS DESIGNATE WHICH
                MASK    PRIO22          # REQUIRES A REMODE AND A REPOSITION IS IN
                EXTEND                  # PROGRESS, INTERRUPT IT AND START THE
                BZF     REPOSRPT        # REMODE IMMEDIATELY.
                
                CA      RDES
                EXTEND
                INDEX   RRINDEX
                MSU     CDUT
                TS      ITEMP1          # SAVE ERROR SIGNAL.
                EXTEND
                MP      RRSPGAIN        # TRIES TO NULL .7 OF ERROR OVER NEXT .5
                TS      L
                CA      RADMODES
                MASK    AUTOMBIT
                XCH     ITEMP1          # STORE RR-OUT-OF-AUTO-MODE BIT.
                TC      MAGSUB          # SEE IF WITHIN ONE DEGREE.
                DEC     -.00555         # SCALED IN HALF-REVS.
                
                CCS     ITEMP1          # NO.  IF RR OUT OF AUTO MODE, EXIT.
                TC      RRRET           # RETURN TO CALLER.
                
                CCS     RRINDEX         # COMMAND FOR OTHER AXIS IS ZERO.
                TCF     +2              # SETTING A TO 0.
                XCH     L
                DXCH    TRUNNCMD
                TC      RROUT
                
                TCF     NXTRR1AX        # COME BACK IN .5 SECONDS.

RRSPGAIN        DEC     .59062          # NULL .7 ERROR IN .5 SEC.

## Page 544
# PROGRAM NAME_  RROUT                                                    RROR COUNTER SCALING. RROUT LIMITS THEM

# FUNCTIONAL DESCRIPTION_
# RROUT RECEIVES RR GYRO COMMANDS IN TANG, TANG +1 IN RR
# ERROR COUNTER SCALING. RROUT THEN LIMITS THEM AND
# GENERATES COMMANDS TO THE CDU TO ADJUST THE ERROR COUNTERS
# TO THE DESIRED VALUES. INITIALLY MAGSUB CHECKS THE MAGNITUDE OF
# THE COMMAND (SHAFT ON 1ST PASS) TO SEE IF IT IS GREATER THAN
# 384 PULSES. IF NOT, CONTROL IS TRANSFERRED TO RROUTLIM TO
# LIMIT THE COMMAND TO +384 OR -384 PULSES. THE DIFFERENCE IS
# THEN CALCULATED BETWEEN THE DESIRED STATE AND THE PRESENT STATE OF
# THE ERROR COUNTER AS RECORDED IN LASTYCMD AND LASTXCMD.
# THE RESULT IS STORED IN OPTXCMD (1ST PASS) AND OPTYCMD (2ND
# PASS). FOLLOWING THE SECOND PASS, FOR THE TRUNNION COMMAND, THE
# OCDUT AND OCDUS ERROR COUNTER DRIVE BITS (CHAN 14 BITS 12, 11)
# ARE SET. THIS PROGRAM THEN EXITS TO THE CALLING PROGRAM.

# CALLING SEQUENCE:
# L TC RROUT (WITH RUPT INHIBITED) RROUT IS CALLED BY
# RRTONLY, RRSONLY, AND DODES

# ERASABLE INITIALIZATION REQUIRED:
# TANG, TANG +1 (DESIRED COMMANDS), LASTYCMD, LASTXCMD
# (1ST PASS = 0), RR ERROR COUNTER ENABLE SET (CHAN 12 BIT 2).

# SUBROUTINES CALLED_
# MAGSUB

# JOBS OR TASKS INITIATED_
# NONE

# ALARMS_  NONE

# EXIT_  L+1 (ALWAYS)                                                     SIRED VALUES. RUPT MUST BE INHIBITED.

RROUT           LXCH    Q               # SAVE RETURN.
                CAF     ONE             # LOOP TWICE.
RROUT2          TS      ITEMP2
                INDEX   A
                CA      TRUNNCMD
                TS      ITEMP1          # SAVE SIGN OF COMMAND FOR LIMITING.
                
                TC      MAGSUB          # SEE IF WITHIN LMITS.
-RRLIMIT        DEC     -384
                TCF     RROUTLIM        # LIMIT COMMAND TO MAG OF 384.
                
SETRRCTR        CA      ITEMP1          # COUNT OUT DIFFERENCE BETWEEN DESIRED
                INDEX   ITEMP2          # STATE AND PRESENT STATE AS RECORDED IN
                XCH     LASTYCMD        # LASTYCMD AND LASTXCMD
                COM
## Page 545
                AD      ITEMP1
                AD      NEG0            # PREVENT +0 IN OUTCOUNTER
                INDEX   ITEMP2
                TS      CDUTCMD
                
                CCS     ITEMP2          # PROCESS BOTH INPUTS.
                TCF     RROUT2
                
                CAF     PRIO6           # ENABLE COUNTERS.
                EXTEND
                WOR     CHAN14          # PUT ON CDU DRIVES S AND T
                TC      L               # RETURN.
                
RROUTLIM        CCS     ITEMP1          # LIMIT COMMAND TO ABS VAL OF 384.
                CS      -RRLIMIT
                TCF     +2
                CA      -RRLIMIT
                TS      ITEMP1
                TCF     SETRRCTR +1

## Page 546
#          ROUTINE TO ZERO THE RR CDUS AND DETERMINE THE ANTENNA MODE.

RRZERO          CAF     BIT11+1         # SEE IF MONITOR REPOSITION OR NOT IN AUTO
                MASK    RADMODES        # IF SO, DONT RE-ZERO CDUS.
                CCS     A
                TCF     RADNOOP         # (IMMEDIATE TASK TO RGOODEND).
                
                INHINT
                CS      RCDU0BIT        # SET FLAG TO SHOW ZEROING IN PROGRESS.
                MASK    RADMODES
                AD      RCDU0BIT
                TS      RADMODES
                
                CAF     ONE
                TC      WAITLIST
                EBANK=  LOSCOUNT
                2CADR   RRZ2

                
                CS      RADMODES        # SEE IF IN AUTO MODE.
                MASK    AUTOMBIT
                CCS     A
                TCF     ROADBACK
                TC      ALARM           # AUTO DISCRETE NOT PRESENT - TRYING
                OCT     510
ROADBACK        RELINT
                TCF     SWRETURN
                
RRZ2            TC      RRZEROSB        # COMMON TO TURNON AND RRZERO.
                TCF     ENDRADAR
                
BIT11+1         OCT     02001

## Page 547
# PROGRAM NAME_  RRDESSM                                                  R (HALF-UNIT) IN RRTARGET. REMODES IF

# FUNCTIONAL DESCRIPTION_
# THIS INTERPRETIVE ROUTINE WILL DESIGNATE, IF DESIRED ANGLES ARE
# WITHIN THE LIMITS OF EITHER MODE, TO A LINE-OF SIGHT (LOS) VECTOR
# (HALF-UNIT) KNOWN WITH RESPECT TO THE STABLE MEMBER PRESENT
# ORIENTATION. INITIALLY THE IMU CDU:S ARE READ AND CONTROL
# TRANSFERRED TO SMNB TO TRANSFORM THE LOS VECTOR FROM STABLE
# MEMBER TO NAVIGATION BASE COORDINATES (SEE STG MEMO -699)
# RRANGLES IS THEN CALLED TO CALCULATE THE RR GIMBAL ANGLES,
# TRUNNION AND SHAFT, FOR BOTH THE PRESENT AND ALTERNATE MODE.
# RRLIMCHK IS CALLED TO SEE IF THE ANGLES CALCULATED FOR THE
# PRESENT MODE ARE WITHIN LIMITS. IF WITHIN LIMITS, THE RETURN
# LOCATION IS INCREMENTED, INASMUCH AS NO VEHICLE MANEUVER IS
# REQUIRED, BEFORE EXITING TO STARTDES. IF NOT WITHIN LIMITS OF THE
# CURRENT MODE, TRYSWS IS CALLED. FOLLOWING INVERTING OF THE RR
# ANTENNA MODE FLAG (RADMODES BIT 12), RRLIMCHK IS CALLED
# TO SEE IF THE ANGLES CALCULATED FOR THE ALTERNATE MODE ARE WITHIN
# LIMITS. IF YES, THE RR ANTENNA MODE FLAG IS AGAIN INVERTED,
# THE REMODE FLAG (RADMODES BIT 14) SET, AND THE RETURN LOCATION
# INCREMENTED, TO INDICATE NO VEHICLE MANEUVER IS REQUIRED, BEFORE
# EXITING TO STARTDES. IF THESE ANGLES ARE NOT WITHIN LIMITS
# OF THE ALTERNATE MODE, THE RR ANTENNA MODE FLAG (RADMODES
# BIT 12) IS INVERTED BEFORE RETURNING DIRECTLY TO THE CALLING PROGRAM
# TO INDICATE THAT A VEHICLE MANEUVER IS REQUIRED.

# CALLING SEQUENCE:
# L  STCALL  RRTARGET  (LOS HALF-UNIT VECTOR IN SM COORDINATES)
# L+1  RRDESSM
# L+2  BASIC  (VEHICLE MANEUVER REQUIRED)
# L+3  BASIC  (NO VEHICLE MANEUVER REQUIRED)

# ERASABLE INITIALIZATION REQUIRED:
# RRTARGET, RADMODES

# SUBROUTINES CALLED_
# READCDUS, SMNB, RRANGLES, RRLIMCHK, TRYSWS (ACTUALLY
# PART OF), RMODINV

# JOBS OR TASKS INITIATED_
# NONE

# ALARMS_  NONE

# EXIT_  L+2 (NEITHER SET OF ANGLES ARE WITHIN LIMITS OF RELATED MODE)
# STARTDES (DESIGNATE POSSIBLE AT PRESENT VEHICLE ATTITUDE-RETURNS
# TO L+3 FROM STARTDES)                                                   CAN BE DONE IN PRESENT VEH ATTITUDE.

RRDESSM         STQ     CLEAR
                        DESRET
## Page 548
                        RRNBSW
                CALL                    # COMPUTES SINES AND COSINES, ORDER Y Z X
                        CDUTRIG
                VLOAD   CALL            # LOAD VECTOR AND CALL TRANSFORMATION
                        RRTARGET
                        *SMNB*
                        
                CALL                    # GET RR GIMBAL ANGLES IN PRESENT AND
                        RRANGLES        # ALTERNATE MODE.
                EXIT
                
                INHINT
                TC      RRLIMCHK
                ADRES   MODEA           # CONFIGURATION FOR CURRENT MODE.
                TC      +3              # NOT IN CURRENT MODE
OKDESSM         INCR    DESRET          # INCREMENT SAYS NO VEHICLE MANEUVER REQ.
                TC      STARTDES        # SHOW DESIGNATE REQUIRED
                CS      FLAGWRD8
                MASK    SURFFBIT        # CHECK IF ON LUNAR SURFACE (SURFFLAG=P22F
                EXTEND
                BZF     NORDSTAL        # BRANCH-YES-CANNOT DESIGNATE IN MODE 2
                TC      TRYSWS


LUNDESCH        CS      FLAGWRD8        # OVERFLOW RETURN FROM RRANGLES
                MASK    SURFFBIT        # CHECK IF ON LUNAR SURFACE
                EXTEND
                BZF     NORDSTAL        # BRANCH-YES-RETURN TO CALLER - ALARM 527
                CA      STATE
                MASK    RNDVZBIT
                CCS     A               # TEST RNDVZFLG.
                TC      NODESSM         # NOT ON MOON-CALL FOR ATTITUDE MANEUVER
                TCF     ENDOFJOB        # ...BUT NOT IN R29.
                
## Page 549
# PROGRAM NAME_  STARTDES                                                 STORED AS A HALF-UNIT VECTOR IN RRTARGET

# FUNCTIONAL DESCRIPTION_                                                 CKON IS DESIRED. BIT14 OF RADMODES IS
# STARTDES IS ENTERED WHEN WE ARE READY TO BEGIN DESIGNATION.             OR REPOSITION OPERATION. IN THIS
# BIT 14 OF RADMODES IS ALREADY SET IF A REMODE IS REQUIRED.              THE REPOSITION WILL BE INTERRUPTED.
# AT THIS TIME, THE RR ANTENNA MAY BE IN A REPOSITION                     GINS.
# OPERATION. IN THIS CASE, IF A REMODE IS REQUIRED IT MAY HAVE
# ALREADY BEGUN BUT IN ANY CASE THE REPOSITION WILL BE INTERRUPTED.
# OTHERWISE, THE REPOSITION WILL BE COMPLETED BEFORE 2-AXIS
# DESIGNATION BEGINS. INITIALLY DESCOUNT IS SET = 60 TO INDICATE
# THAT 30 SECONDS WILL BE ALLOWED FOR THE RR DATA GOOD INBIT
# (CHAN 33 BIT 4) IF LOCK-ON IS DESIRED (STATE BIT 5). BIT 10
# OF RADMODES IS SET TO SHOW THAT A DESIGNATE IS REQUIRED.
# THE REPOSITION FLAG (RADMODES BIT 11) IS CHECKED. IF SET,
# THE PROGRAM EXITS TO L+3 OF THE CALLING PROGRAM (SEE RRDESSM
# AND RRDESNB). THE PROGRAM WILL BEGIN DESIGNATING TO THE DESIRED
# ANGLES FOLLOWING THE REPOSITION OR REMODE IF ONE WAS
# REQUESTED. IF THE REPOSITION FLAG IS NOT SET, SETRRECR IS CALLED
# WHICH SETS THE RR ERROR COUNTER ENABLE BIT (CHAN 12 BIT 2)
# AND SETS LASTYCMD AND LASTXCMD = 0 TO INDICATE THE
# DIFFERENCE BETWEEN THE PRESENT AND DESIRED STATE OF THE ERROR
# COUNTERS. A 20 MILLISECOND WAITLIST CALL IS SET FOR BEGDES
# AFTER WHICH THE PROGRAM EXITS TO L+3 OF THE CALLING PROGRAM.

# CALLING SEQUENCE:
# FROM RRDESSM AND RRDESNB WHEN ANGLES WITHIN LIMITS.

# ERASABLE INITIALIZATION REQUIRED:
# RADMODES, (SEE DODES)

# SUBROUTINES CALLED_
# SETRRECR, WAITLIST

# JOBS OR TASKS INITIATED_
# BEGDES

# ALARMS_  NONE

# EXIT_  L+3 OF CALLING PROGRAM (SEE RRDESSM)
# L+2 OF CALLING PROGRAM (SEE RRDESNB)

STARTDES        INCR    DESRET
                CS      RADMODES
                MASK    DESIGBIT
                ADS     RADMODES
                MASK    REPOSBIT        # SEE IF REPOSITIONING IN PROGRESS.
                CCS     A
                TCF     DESRETRN        # ECTR ALREADY SET UP.
                
                TC      SETRRECR        # SET UP ERROR COUNTERS.
## Page 550
                CAF     TWO
                TC      WAITLIST
                EBANK=  LOSCOUNT
                2CADR   BEGDES
                

DESRETRN        CA      RADCADR         # FIRST PASS THRU DESIGNATE
                EXTEND
                BZF     DESRTRN         # YES   SET EXIT
                TC      ENDOFJOB        # NO
DESRTRN         RELINT
                INCR    DESRET
                CA      DESRET
                TCF     BANKJUMP
                

NORDSTAL        CAF     ZERO            # ZERO RADCADR TO WIPE  OUT ANYONE
                TS      RADCADR         # WAITING IN RADSTALL SINCE WE ARE NOW
                TCF     DESRTRN         # RETURNING TO P20 AND MAY DO NEW RADSTALL
                
## Page 551
#          SEE IF RRDESSM CAN BE ACCOMPLISHED AFTER A REMODE.

TRYSWS          TC      RMODINV         # (NOTE RUPT INHIBIT)
                TC      RRLIMCHK        # TRY DIFFERENT MODE.
                ADRES   MODEB
                TCF     NODESSM         # VEHICLE MANEUVER REQUIRED.
                
                TC      RMODINV         # RESET BIT12
                CAF     REMODBIT        # SET FLAG FOR REMODE.
                ADS     RADMODES
                
                TCF     OKDESSM
                
NODESSM         TC      RMODINV         # RE-INVERT MODE AND RETURN
                INCR    DESRET          # TO CALLER +2
                TCF     NORDSTAL
                
MAXTRYS         DEC     60

## Page 552
#          DESIGNATE TO SPECIFIC RR GIMBAL ANGLES (INDEPENDENT OF VEHICLE MOTION). ENTER WITH DESIRED ANGLES IN
# TANG AND TANG +1.

RRDESNB         TC      MAKECADR
                TS      DESRET
                
                TC      DOWNFLAG        # RESET FLAG TO PREVENT DODES FROM GOING
                ADRES   LOSCMFLG        # BACK TO R21
                CA      MAXTRYS         # SET TIME LIMIT COUNTER
                TS      DESCOUNT        # FOR DESIGNATE
                INHINT                  # SEE IF CURRENT MODE OK.
                TC      RRLIMNB         # DO SPECIAL V41 LIMIT CHECK
                ADRES   TANG
                TCF     TRYSWN          # SEE IF IN OTHER MODE.
                
OKDESNB         RELINT
                EXTEND
                DCA     TANG
                DXCH    TANGNB
                TC      INTPRET
                
                CALL                    # GET LOS IN NB COORDS.
                        RRNB
                STORE   RRTARGET
                
                SET     EXIT
                        RRNBSW
                        
                INHINT
                TCF     STARTDES +1
TRYSWN          TC      RMODINV         # SEE IF OTHER MODE WILL DO.
                TC      RRLIMNB         # DO SPECIAL V41 LIMIT CHECK
                ADRES   TANG
                TCF     NODESNB         # NOT POSSIBLE.
                
                TC      RMODINV
                CAF     REMODBIT        # CALL FOR REMODE.
                ADS     RADMODES
                TCF     OKDESNB
                
NODESNB         TC      RMODINV         # REINVERT MODE BIT.
                TC      ALARM           # BAD INPUT ANGLES.
                OCT     502
                TC      CLRADMOD
                TC      ENDOFJOB        # AVOID 503 ALARM.
                
RRLIMNB         INDEX   Q               # THIS ROUTINE IS IDENTICAL TO RRLIMCHK
                CAF     0               # EXCEPT THAT THE MODE 1 SHAFT LOWER
                INCR    Q               # LIMIT IS -85 INSTEAD OF -70 DEGREES
                EXTEND
## Page 553
                INDEX   A               # READ GIMBAL ANGLES INTO ITEMP STORAGE
                DCA     0
                DXCH    ITEMP1
                LXCH    Q               # L(CALLER +2) TO L
                
                CAF     ANTENBIT        # SEE WHICH MODE RR IS IN.
                MASK    RADMODES
                CCS     A
                TCF     MODE2CHK        # MODE 2 CAN USE RRLIMCHK CODING
                CA      ITEMP1
                TC      MAGSUB          # MODE 1 IS DEFINED AS
                DEC     -.30555         #   1. ABS(T) L 55 DEGS
                TC      L               #   2  SHAFT LIMITS AT +59, -85 DEGS
                
                CA      ITEMP2          # LOAD SHAFT ANGLE
                EXTEND
                BZMF    NEGSHAFT        # IF NEGATIVE SHAFT ANGLE, ADD 20.5 DEGS
                AD      5.5DEGS
SHAFTLIM        TC      MAGSUB
                DEC     -.35833         # 64.5 DEGREES
                TC      L               # NOT IN LIMITS
                TC      RRLIMOK         # IN LIMITS
NEGSHAFT        AD      20.5DEGS        # MAKE NEGATIVE SHAFT LIMIT -85 DEGREES
                TCF     SHAFTLIM
                

20.5DEGS        DEC     .11389

## Page 554
# PROGRAM NAME_  BEGDES

# FUNCTIONAL DESCRIPTION_
# BEGDES CHECKS VARIOUS DESIGNATE REQUESTS AND REQUESTS THE
# ACTUAL RR DESIGNATION. INITIALLY A CHECK IS MADE TO SEE IF A
# REMODE (RADMODES BIT 14) IS REQUESTED OR IN PROGRESS. IF SO,
# CONTROL IS TRANSFERRED TO STDESIG AFTER ROUTINE REMODE IS
# EXECUTED. IF NO REMODE, STDESIG IS IMMEDIATELY CALLED WHERE
# FIRST THE REPOSITION FLAG (RADMODES BIT 11) IS CHECKED. IF
# PRESENT, THE DESIGNATE FLAG (RADMODES BIT 10) IS REMOVED
# AFTER WHICH THE PROGRAM EXITS TO RDBADEND. IF THE REPOSITION
# FLAG IS NOT PRESENT, THE CONTINUOUS DESIGNATE FLAG (RADMODES
# BIT 15) IS CHECKED. IF PRESENT, ON EXECUTIVE CALL IS IMMEDIATELY
# MADE FOR DODES AFTER WHICH A .5 SECOND WAIT IS INITIATED BEFORE
# REPEATING AT STDESIG. IF THE RR SEARCH ROUTINE (LRS24.1) IS DESIGNATING
# TO A NEW POINT (NEWPTFLG SET) THE CURRENT DESIGNATE TASK IS TERMINATED.
# IF CONTINUOUS DESIGNATE IS NOT WANTED, THE DESIGNATE FLAG (RADMODES
# BIT 10) IS CHECKED. IF NOT PRESENT, THE PROGRAM EXITS TO ENDRADAR TO
# CHECK RR CDU FAIL BEFORE RETURNING TO THE CALLING PROGRAM. IF DESIGNATE
# IS STILL REQUIRED, DESCOUNT IS CHECKED TO SEE IF THE 30 SECONDS HAS
# EXPIRED BEFORE RECEIVING THE RR DATA GOOD (CHAN 33 BIT 4)
# SIGNAL. IF OUT OF TIME, PROGRAM ALARM 00503 IS REQUESTED, THE
# RR AUTO TRACKER ENABLE AND RR ERROR COUNTER ENABLE
# (CHAN 12 BITS 14,2) BITS REMOVED, AND THE DESIGNATE FLAG
# (RADMODES BIT 10) REMOVED BEFORE EXITING TO RDBADEND. IF
# TIME HAS NOT EXPIRED, DESCOUNT IS DECREMENTED, THE
# EXECUTIVE CALL MADE FOR DODES, AND A .5 SECOND WAIT INITIATED
# BEFORE REPEATING THIS PROCEDURE AT STDESIG.

# CALLING SEQUENCE:
# WAITLIST CALL FROM STARTDES
# TCF BEGDES FROM DORREPOS
# TC STDESIG RETURNING, FROM REMODE

# ERASABLE INITIALIZATION REQUIRED:
# DESCOUNT, RADMODES

# SUBROUTINES CALLED_
# ENDRADAR, FINDVAC

# JOBS OR TASKS INITIATED_  DODES

# ALARMS_  PROGRAM ALARM 00503 (30 SECONDS HAVE EXPIRED) WITH NO RR DATA
# GOOD (CHAN 33 BIT 4) RECEIVED WHEN LOCK-ON (STATE BIT 5) WAS REQUESTED.

# EXIT_  TASKOVER (SEARCH PATTERN DESIGNATING TO NEW POINT)
# ENDRADAR (NO DESIGNATE - RADMODES BIT 10)
# RDBADEND (REPOSITION OR 30 SECONDS EXPIRED)

BEGDES          CS      RADMODES
## Page 555
                MASK    REMODBIT
                CCS     A
                TC      STDESIG
                TC      REMODE
DESLOOP         TC      FIXDELAY        # 2 SAMPLES PER SECOND.
                DEC     50
                
STDESIG         CAF     REPOSBIT
                MASK    RADMODES        # SEE IF GIMBAL LIMIT MONITOR HAS FOUND US
                CCS     A               # OUT OF BOUNDS. IF SO, THIS BIT SHOWS A
                TCF     BADDES          # REPOSITION TO BE IN PROGRESS.
                
                CCS     RADMODES        # SEE IF CONTINUOUS DESIGNATE WANTED.
                TCF     +3              # IF SO, DONT CHECK BIT 10 TO SEE IF IN
                TCF     +2              # LIMITS BUT GO RIGHT TO FINDVAC ENTRY.
                TCF     MOREDES +1
                
                CS      RADMODES        # IF NON-CONTINUOUS, SEE IF END OF
                MASK    DESIGBIT        # PROBLEM (DATA GOOD IF LOCK-ON WANTED OR
                CCS     A               # WITHIN LIMITS IF NOT). IF SO, EXIT AFTER
                TCF     ENDRADAR        # CHECKING RR CDU FAIL.
                
STDESIG1        CCS     DESCOUNT        # SEE IF THE TINE LIMIT HAS EXPIRED
                TCF     MOREDES
                
                CS      B14+B2          # IF OUT OF TIME, REMOVE ECR ENABLE + TRKR
                EXTEND
                WAND    CHAN12
BADDES          TC      DOWNFLAG
                ADRES   DESIGFLG
                TCF     RDBADEND
                
MOREDES         TS      DESCOUNT
                CAF     PRIO26          # UPDATE GYRO TORQUE COMMANDS.
                TC      FINDVAC
                EBANK=  LOSCOUNT
                2CADR   DODES
                

                TCF     DESLOOP
                
B14+B2          OCT     20002

## Page 556
# PROGRAM NAME_  DODES

# FUNCTIONAL DESCRIPTION_
# DODES CALCULATES AND REQUESTS ISSUANCE OF RR GYRO TORQUE
# COMMANDS. INITIALLY THE CURRENT RR CDU ANGLES ARE STORED AND
# THE LOS HALF-UNIT VECTOR TRANSFORMED FROM STABLE MEMBER TO
# NAVIGATION BASE COORDINATES VIA SMNB IF NECESSARY. THE
# SHAFT AND TRUNNION COMMANDS ARE THEN CALCULATED AS FOLLOWS_
# + SHAFT = LOS  . (COS(S), 0, -SIN (S)) (DOT PRODUCT)
# -TRUNNION = LOS  . (SIN (T) SIN (S), COS (T), SIN (T) COS (S) )
# THE SIGN OF THE SHAFT COMMAND IS THEN REVERSED IF IN MODE 2
# (RADMODES BIT 12) BECAUSE A RELAY IN THE RR REVERSES THE 
# POLARITY OF THE COMMAND. AT RRSCALUP EACH COMMAND IS
# SCALED AND IF EITHER, OR BOTH, OF THE COMMANDS IS GREATER THAN
# .5 DEGREES, MPAC +1 IS SET POSITIVE. IF A CONTINUOUS DESIGNATE 
# (RADMODES BIT 15) IS DESIRED AND THE SEARCH ROUTINE IS NOT OPERATING,
# THE RR AUTO TRACKER ENABLE BIT (CHAN 12 BIT 14) IS CLEARED AND RROUT
# CALLED TO PUT OUT THE COMMANDS PROVIDED NO REPOSITION (RADMODES BIT 11)
# IS IN PROGRESS. IF A CONTINUOUS DESIGNATE AND THE SEARCH ROUTINE IS
# OPERATING (SRCHOPT FLAG SET) THE TRACK ENABLE IS NOT CLEARED. IF NO
# CONTINUOUS DESIGNATE AND BOTH COMMANDS ARE NOT LESS THAN .5 DEGREES AS
# INDICATED BY MPAC +1, THE RR AUTO TRACKER ENABLE BIT (CHAN 12 BIT 14) IS
# CLEARED AND RROUT CALLED TO PUT OUT THE COMMANDS PROVIDED NO REPOSITION
# (RADMODES BIT 11) IS IN PROGRESS. IF BOTH COMMANDS ARE LESS THAN .5
# DEGREES AS INDICATED BY MPAC+1, THE RR AUTO TRACKER ENABLE BIT
# (CHAN 12 BIT 14) IS CLEARED AND RROUT CALLED TO PUT OUT THE
# COMMANDS PROVIDED NO REPOSITION (RADMODES BIT 11) IS IN
# PROGRESS. IF BOTH COMMANDS ARE LESS THAN .5 DEGREES, THE
# LOCK-ON FLAG (STATE BIT 5) IS CHECKED. IF NOT PRESENT, THE
# DESIGNATE FLAG (RADMODES BIT 10) IS CLEARED, THE RR ERROR
# COUNTER ENABLE BIT (CHAN 12 BIT 2) IS CLEARED, AND ENDOFJOB
# CALLED. IF LOCK-ON IS DESIRED, THE RR AUTO TRACKER (CHAN 12
# BIT 14) IS ENABLED FOLLOWED BY A CHECK OF THE RECEIPT OF THE
# RR DATA GOOD (CHAN 33 BIT 4) SIGNAL. IF RR DATA GOOD
# PRESENT, THE DESIGNATE FLAG (RADMODES BIT 10) IS CLEARED,
# THE RR ERROR COUNTER ENABLE BIT (CHAN 12 BIT 2) IS CLEARED,
# AND ENDOFJOB CALLED. IF RR DATA GOOD IS NOT PRESENT, RROUT
# IS CALLED TO PUT OUT THE COMMANDS PROVIDED NO REPOSITION
# (RADMODES BIT 11) IS IN PROGRESS AFTER WHICH THE JOB IS TERMINATED
# VIA ENDOFJOB.

# CALLING SEQUENCE:
# EXECUTIVE CALL EVERY .5 SECONDS FROM BEGDES.

# ERASABLE INITIALIZATION REQUIRED:
# RRTARGET (HALF-UNIT LOS VECTOR IN EITHER SM OR NB COORDINATES),
# LOKONSW (STATE BIT 5), RRNBSW (STATE BIT 6), RADMODES

# SUBROUTINES CALLED_
# READCDUS, SMNB, CDULOGIC, MAGSUB, RROUT

## Page 557
# JOBS OR TASKS INITIATED_
# NONE

# ALARMS_  NONE

# EXIT_  ENDOFJOB (ALWAYS)

DODES           EXTEND
                DCA     CDUT
                DXCH    TANG
                
                TC      INTPRET
                
                SETPD   VLOAD
                        0
                        RRTARGET
                BON     VXSC
                        RRNBSW
                        DONBRD          # TARGET IN NAV-BASE COORDINATES
                        MLOSV           # MULTIPLY UNIT LOS BY MAGNITUDE
                VSL1    PDVL
                        LOSVEL
                VXSC    VAD             # ADD ONE SECOND RELATIVE VELOCITY TO LOS
                        MCTOMS
                UNIT    CALL
                        CDUTRIG
                CALL
                        *SMNB*
                        
DONBRD          STODL   32D
                        TANG +1
                RTB     PUSH            # SHAFT COMMAND = V(32D).(COS(S), 0,
                        CDULOGIC        #      (-SIN(S)).
                SIN     PDDL            # SIN(S) TO 0 AND COS(S) TO 2.
                COS     PUSH
                DMP     PDDL
                        32D
                        36D
                DMP     BDSU
                        0
                STADR
                STORE   TANG +1         # SHAFT COMMAND
                
                SLOAD   RTB
                        TANG
                        CDULOGIC
                PUSH    COS             # COS(T) TO 4.
                PDDL    SIN
                PUSH    DMP             # SIN(T) TO 6.
                        2
                SL1     PDDL            # DEFINE VECTOR U = (SIN(T)SIN(S))
                        4               #                   (COS(T)      )
## Page 558
                PDDL    DMP             #                   (SIN(T)COS(S))
                        6
                        0
                SL1     VDEF
                DOT     EXIT            # DOT U WITH LOS TO GET TRUNNION COMMAND.
                        32D
                        
## Page 559
#          AT THIS POINT WE HAVE A ROTATION VECTOR IN DISH AXES LYING IN THE TS PLANE. CONVERT THIS TO A
# COMMANDED RATE AND ENABLE THE TRACKER IF WE ARE WITHIN .5 DEGREES OF THE TARGET.

                CS      MPAC            # DOT WAS NEGATIVE OF DESIRED ANGLE.
                EXTEND
                MP      RDESGAIN        # SCALING ON INPUT ANGLE WAS 4 RADIANS.
                TS      TRUNNCMD        # TRUNNION COMMAND FOR RROUT
                CS      RADMODES        # A RELAY IN THE RR REVERSES POLARITY OF
                MASK    BIT12           # THE SHAFT COMMANDS IN MODE 2 SO THAT A
                EXTEND                  # POSITIVE TORQUE APPLIED TO THE SHAFT
                BZF     +3              # GYRO CAUSES A POSITIVE CHANGE IN THE
                CA      TANG +1         # SHAFT ANGLE. COMPENSATE FOR THIS SWITCH
                TCF     +2              # BY CHANGING THE POLARITY OF OUR COMMAND.
 +3             CS      TANG +1
                EXTEND
                MP      RDESGAIN        # SCALING ON INPUT ANGLE WAS 4 RADIANS.
                TS      SHAFTCMD        # SHAFT COMMAND FOR RROUT
                TC      INTPRET
                
                DLOAD   DMP
                        2               # COS(S).
                        4               # COS(T).
                SL1     PDDL            # Z COMPONENT OF URR.
                DCOMP   PDDL            # Y COMPONENT = -SIN(T).
                        0               # SIN(S).
                DMP     SL1
                        4               # COS(T).
                VDEF    BON             # FORM URR IN NB AXES.
                        RRNBSW          # BYPASS NBSM CONVERSION IN VERB 41.
                        +3
                CALL
                        *NBSM*          # GET URR IN SM AXES.
                DOT     EXIT
                        RRTARGET        # GET COSINE OF ANGLE BETWEEN RR AND LOS.
                        
                EXTEND
                DCS     COS1/2DG
                DAS     MPAC            # DIFFERENCE OF COSINES, SCALED B-2.
                CCS     MPAC
                CA      ZERO            # IF COS ERROR BIGGER, ERROR IS SMALLER.
                TCF     +2
                CA      ONE
                TS      MPAC +1         # ZERO IF RR IS POINTED OK, ONE IF NOT.
## Page 560
#          SEE IF TRACKER SHOULD BE ENABLED OR DISABLED.

                CCS     RADMODES        # IF CONTINUOUS DESIGNATE WANTED, PUT OUT
                TCF     SIGNLCHK        # COMMANDS WITHOUT CHECKING MAGNITUDE OF
                TCF     SIGNLCHK        # ERROR SIGNALS
                TCF     DORROUT
SIGNLCHK        CCS     MPAC +1         # SEE IF BOTH AXES WERE WITHIN .5 DEGS.
                TCF     DGOODCHK
                CS      STATE           # IF WITHIN LIMITS AND NO LOCK-ON WANTED,
                MASK    LOKONBIT        # PROBLEM IS FINISHED.
                CCS     A
                TCF     RRDESDUN
                
                CAF     BIT14           # ENABLE THE TRACKER.
                EXTEND
                WOR     CHAN12
                
DGOODCHK        CAF     BIT4            # SEE IF DATA GOOD RECEIVED YET
                EXTEND
                RAND    CHAN33
                CCS     A
                TCF     DORROUT
                
RRDESDUN        CS      BIT10           # WHEN PROBLEM DONE, REMOVE BIT 10 SO NEXT
                MASK    RADMODES        # WAITLIST TASK WE WILL GO TO RGOODEND.
                INHINT
                TS      RADMODES
                
                TC      DOWNFLAG        # RESET LOSCMFLG TO PREVENT A
                ADRES   LOSCMFLG        # RECOMPUTATION OF LOS AFTER DATA GOOD
                CS      BIT2            # TURN OFF ENABLE RR ERROR COUNTER
                EXTEND
                WAND    CHAN12
                TCF     ENDOFJOB        # WITH ECTR DISABLED.
                
DORROUT         CA      FLAGWRD2        # IF BOTH LOSCMFLAG AND SEARCH FLAG ARE
                MASK    BIT12,14        # ZERO, BYPASS VELOCITY ADJUSTMENT TO LOS
                EXTEND
                BZF     NOTP20
                TC      INTPRET
                VLOAD   VXSC            # MULTIPLY UNIT LOS BY MAGNITUDE
                        RRTARGET
                        MLOSV
                VSL1    PUSH
                VLOAD   VXSC            # ADD .5 SEC. OF VELOCITY
                        LOSVEL          # TO LOS VECTOR
                        MCTOMS
                VSR1    VAD
                UNIT
                STODL   RRTARGET        # STORE VELOCITY-CORRECTED LOS (UNIT)
## Page 561
                        36D
                STORE   MLOSV           # AND STORE MAGNITUDE
                EXIT
NOTP20          INHINT
                CS      RADMODES        # PUT OUT COMMAND UNLESS MONITOR
                MASK    REPOSBIT        # REPOSITION HAS TAKEN OVER.
                CCS     A
                TC      RROUT
                
                CA      FLAGWRD2
                MASK    LOSCMBIT        # IF LOSCMFLG NOT SET, DON'T TEST
                EXTEND                  # LOS COUNTER
                BZF     ENDOFJOB
                CCS     LOSCOUNT        # TEST LOS COUNTER TO SEE IF TIME TO GET
                TC      DODESEND        # A NEW LOS
                TC      KILLTASK        # YES - KILL TASK WHICH SCHEDULES DODES
                CADR    DESLOOP +2
                RELINT
                CCS     NEWJOB
                TC      CHANG1
                TC      BANKCALL
                CADR    R21LEM2
                

DODESEND        TS      LOSCOUNT
                TC      ENDOFJOB

                
RDESGAIN        DEC     .53624          # TRIES TO NULL .5 ERROR IN .5 SEC.
BIT12,14        EQUALS  PRIO24          # OCT 24000
COS1/2DG        2DEC    .999961923 B-2  # COSINE OF 0.5 DEGREES.

MCTOMS          2DEC    100 B-13

## Page 562
# RADAR READ INITIALIZATION

# THE FOLLOWING ROUTINES MUST BE CALLED BY BANKCALL

LRALT           TC      INITREAD
ALLREAD         OCT     17

LRVELZ          TC      INITREAD
                OCT     16
                
LRVELY          TC      INITREAD
                OCT     15
                
LRVELX          TC      INITREAD
                OCT     14
                
RRRDOT          TC      INITREAD
                OCT     12
                
RRRANGE         TC      INITREAD
                OCT     11
                

INITREAD        INHINT
                INDEX   Q
                CA      0
                TC      PRERADAR
                CA      BIT3
                TS      TIMEHOLD +1     # MIDPOINT OF READ IS ABOUT 40 MS AFTER
                EXTEND                  # START OF READ
                DCA     TIME2
                DAS     TIMEHOLD

                TCF     ROADBACK


PRERADAR        TS      RADUSE          # INDICATE RADAR READ ROUTINES IN USE.
                CA      ZERO
                TS      NSAMP
                TS      SAMPLSUM
                TS      SAMPLSUM +1
                TS      TIMEHOLD

                CA      DGBITS
                EXTEND
                RAND    CHAN33
                TS      OLDATAGD

                CS      DGBITS          # RESET DATA GOOD BITS OF RADMODES
                MASK    RADMODES
## Page 563
                TS      RADMODES
                
                CS      ALLREAD
                EXTEND
                WAND    CHAN13          # CLEAR ALL RADAR BITS PRIOR TO READ

                EXTEND
                QXCH    RUPTREG1

                CA      RADUSE
                TC      IBNKCALL
                CADR    RADSTART
                TC      RUPTREG1
                

DGBITS          OCT     230             # POSITION OF DATA GOOD BITS IN CHANNEL 33
VBITS           OCT     14              # VSELECT = 0 BEFORE X READ
                OCT     16              # VSELECT = 1 BEFORE Z READ
                OCT     15              # VSELECT = 2 BEFORE Y READ


R12READ         CS      FLGWRD11
                MASK    NOLRRBIT        # IF NOLRREAD FLAG IS SET , BYPASS R12
                EXTEND
                BZF     TASKOVER

                INDEX   VSELECT
                CA      VBITS
                TC      PRERADAR
                CA      SIX             # RADAR RUPT USES THIS FOR R12 READ
                TS      NSAMP
                TC      TASKOVER

## Page 564
# RADAR RUPT READER (R20)

# THIS ROUTINE, WHICH IS INITIATED BY A RADAR RUPT, PROCESSES THE RADAR DATA AND UPDATES THE APPROPRIATE
# DSKY LIGHTS.

                SETLOC  RADARUPT
                BANK
                
                COUNT*  $$/RRUPT

                EBANK=  TTOGO

RADAREAD        EXTEND                  # CONTINUATION OF INTERRUPT LEAD-IN.
                ROR     SUPERBNK        # SUPERBNK MUST BE SAVED BECAUSE RUPT
                TS      BANKRUPT        # MAY EXIT VIA TASKOVER.
                EXTEND
                QXCH    QRUPT

                
                CA      SEVEN           # READ AND STORE RADAR SELECT BITS
                EXTEND
                RAND    CHAN13
                TS      RADBITS

                EXTEND                  # IF RADAR SELECT BITS ARE ZERO, ALARM
                BZF     BADRUPT         # WITHOUT READING DATA

                CA      RNRAD           # STORE RAW DATA FOR DOWNLINK.
                INDEX   RADBITS
                TS      DNRRANGE -1

                CCS     RADUSE          # IF RADUSE IS ZERO, THIS IS A BAD RUPT
                TCF     WHICHRAD

BADRUPT         TS      RADUSE
                TC      ALARM
                OCT     520
                TC      RESUME

WHICHRAD        CS      THREE           # IF RADBITS IS LESS THAN THREE,
                AD      RADBITS         # THE RENDEZVOUS RADAR IS BEING READ.
                EXTEND
                BZMF    RENDRAD

LANDRAD         CS      FLAGWRD5        # THE LANDING RADAR IS BEING READ
                MASK    R77FLBIT
                EXTEND                  # IF R77 IS RUNNING, EXIT HERE
                BZF     R77EXIT

                CS      SEVEN           # IF RADBITS IS SEVEN, THE LANDING
## Page 565
                AD      RADBITS         # RADAR ALITUDE IS BEING READ
                EXTEND
                BZF     LRHEIGHT

LRSPEED         CA      POSMAX          # DECODE THE 15 BIT READING AND
                MASK    RNRAD           # SUBTRACT THE BIAS.
                AD      LVELBIAS
                TS      ITEMP4
                TS      L
                CA      RNRAD
                DOUBLE
                MASK    BIT1
                TS      ITEMP3
                DAS     SAMPLSUM        # ACCUMULATE THE READING

                CA      BIT8            # VOLOCITY DATA GOOD BIT
DGCHECK         TS      ITEMP1
DGCHECK2        CA      DGBITS          # UPDATE THE STATUS OF THE DATA GOOD BITS
                EXTEND
                RAND    CHAN33
                XCH     OLDATAGD
                MASK    ITEMP1
                TS      L               # OLD STATUS
                CA      ITEMP1
                MASK    OLDATAGD        # CURRENT STATUS
                AD      L
                CCS     A               # BOTH SHOULD BE ZERO
                TCF     BADRAD          # DATA GOOD NOT PRESENT

GOODRAD         CCS     NSAMP           # TEST FOR R12
                TCF     R12EXIT

                DXCH    ITEMP3          # STORE DATA FOR CALLING ROUTINE
                DXCH    SAMPLSUM
                TC      RADLITES        # UPDATE DSKY LIGHTS.

R77EXIT         CA      ZERO            # ZERO RADUSE
                TS      RADUSE
                TC      RGOODEND -2


BADRAD          CS      RADMODES        # UPDATE RADMODES BIT ONLY IF DATA BAD
                MASK    ITEMP1
                ADS     RADMODES

                CCS     NSAMP           # TEST FOR R12
                TCF     R12EXIT

                TC      RADLITES        # UPDATE DSKY LIGHTS
RRBADEND        CA      ZERO            # ZERO RADUSE
## Page 566
                TS      RADUSE
                TC      RDBADEND -2

                
LRHEIGHT        CA      BIT5            # DATA GOOD BIT FOR ALTITUDE
                TS      ITEMP1
                CA      BIT9            # LO SCALE BIT FOR LR
                TC      SCALECHK
                
RENDRAD         EXTEND
                DCA     TTOGO           # LOAD TIME TO TIG
                DXCH    TTOTIG          # FOR R65 RADAR READING.

                CA      REPOSBIT        # MAKE SURE ANTENNA HAS NOT
                MASK    RADMODES        # GONE OUT OF LIMITS.
                CCS     A
                TCF     RRBADEND
                
                CS      RADMODES        # BE SURE RR CDU HASN'T FAILED.
                MASK    RCDUFBIT
                CCS     A
                TCF     RRBADEND
                
                CA      BIT4            # DATA GOOD BIT FOR RR
                TS      ITEMP1
                
                CA      BIT1            # TEST FOR RANGE OR RANGE RATE
                MASK    RADBITS
                TS      Q               # SAVE FOR LATER TESTING
                EXTEND
                BZF     RADIN           # IF ROOT, READ DATA
                
                CA      BIT3            # LO SCALE BIT FOR RR.
SCALECHK        TS      L
                CA      RADMODES        # TEST THE SCALE BIT SPECIFIED IN L
                EXTEND                  # TO SEE IF IT IS THE SMAE AS LAST
                RXOR    CHAN33          # TIME.
                MASK    L               # IF BIT IS THE SMAE IN RADMODES AND
                CCS     A               # CHAN33, THEN A WILL BE ZERO
                TC      SCALCHNG        # SCALE CHANGED
                
RADIN           CA      POSMAX          # UNPACK 15 BIT RADAR READING
                MASK    RNRAD
                TS      ITEMP4
                
                CA      RNRAD
                DOUBLE
                MASK    BIT1
                TS      ITEMP3

## Page 567
                CCS     Q               # TEST FOR RR RANGE RATE (Q = 0)
                TCF     SCALADJ         # RANGE OR LR HEIGHT . TEST SCALE
                
                EXTEND                  # RR RANGE RATE - SUBTRACT BIAS
                DCS     RDOTBIAS
DASAMPL         DAS     ITEMP3
                TCF     DGCHECK2        # TEST DATA GOOD

SCALADJ         CA      RADMODES        # TEST SCALE BIT
                MASK    L
                EXTEND
                BZF     DGCHECK2        # LO SCALE
                
                MASK    BIT3            # HI SCALE - TEST FOR LR
                EXTEND                  # IF BIT3 = 0,THEN IT IS LR
                BZF     LRSCK
                
                DXCH    ITEMP3          # RESCALE RR DATA TO LO SCALING
                DDOUBL                  # MULTIPLY BY 8.
                DDOUBL
                DDOUBL
                DXCH    ITEMP3
                TCF     DGCHECK2
                
LRSCK           EXTEND                  # RESCALE LR DATA TO LO SCALING
                DCA     ITEMP3          # MULTIPLY BY 5.
                DDOUBL
                DDOUBL
                TCF     DASAMPL

                
SCALCHNG        CA      RADMODES
                EXTEND                  # INVERT SCALE BIT IN RADMODES
                RXOR    LCHAN
                TS      RADMODES

                CCS     NSAMP           # TEST FOR R12
                TCF     R12SCHNG

                TC      UPFLAG          # SET RNGSCFLG FOR LRS24.1
                ADRES   RNGSCFLG

                CA      DGBITS          # UPDATE DATA GOOD BITS
                EXTEND
                RAND    CHAN33
                TS      OLDATAGD
                TCF     RRBADEND


R12SCHNG        TS      NSAMP           # UPDATE NSAMP AND IGNORE READING.
## Page 568
                TCF     READVEL

R12EXIT         TS      NSAMP           # UPDATE NSAMP
                EXTEND
                BZF     STORVEL

                AD      NEG3
                EXTEND
                BZF     STORALT

                AD      NEGONE
                EXTEND
                BZF     READALT
READVEL         CS      SEVEN
                EXTEND
                WAND    CHAN13
                CA      RADUSE
READALT2        TC      IBNKCALL
                CADR    RADSTART
                TC      RESUME


READALT         CA      ALLREAD         # SET UP LR ALTITUDE READ
                TCF     READALT2

STORALT         DXCH    ITEMP3
                DXCH    HMEAS           # STORE ALT IN HMEAS

                CS      RADMODES        # TEST DATA GOOD
                MASK    BIT5
                EXTEND
                BZF     HBAD            # DATA GOOD NOT PRESENT

                CCS     STILBADH        # IF DATA JUST GOOD,OR IG RESTART JUST
                TCF     HSTILBAD        # OCCURRED,WAIT

                CS      FLGWRD11        # SET FLAG FORR12.
                MASK    RNGEDBIT        # (CANNOT USE UPFLAG BECAUSE ITEMP1 IS
                ADS     FLGWRD11        #   DESTROYED)
ALTEXIT         TC      RADLITES
                TCF     READVEL

HBAD            CA      TWO             # SET STILBADH FOR FOUR SECOND DELAY
HSTILBAD        TS      STILBADH
                TCF     ALTEXIT

STORVEL         CS      RADMODES        # TEST DATA GOOD
                MASK    BIT8
                EXTEND
                BZF     VBAD            # DATA GOOD NOT PRESENT

## Page 569
                CCS     STILBADV
                TCF     VSTILBAD

                CS      FLGWRD11        # DATA IS GOOD, SET FLAG FOR R12
                MASK    VELDABIT        # (CANNOT USE UPFLAG BECAUSE ITEMP1 IS
                ADS     FLGWRD11        #   DESTROYED)
R12DL           CCS     VSELECT         # UPDATE VSELECT
                TCF     +2
                CA      TWO
                TS      VSELECT

                DXCH    SAMPLSUM        # STORE VEL DATA IN VMEAS
                DXCH    VMEAS

                EXTEND
                DCA     HMEAS           # STORE HMEAS FOR DOWNLINK
                DXCH    HMEASDL

                EXTEND
                DCA     PIPTIME1        # STORE TIME FOR DOWNLINK
                DXCH    MKTIME

                EXTEND
                DCA     CDUTEMPY        # STORE CDUY,CDUZ FOR DOWNLINK
                DXCH    AIG

                CA      CDUTEMPX        # STORE CDUX FOR LINK
                TS      AOG

                TC      RADLITES        # UPDATE DSKY VEL LIGHT
                CA      ZERO
                TS      RADUSE

                TC      RESUME

## Page 570
VBAD            CA      TWO
VSTILBAD        TS      STILBADV
                TCF     R12DL

## Page 571
#          CODING TO PROTECT CHANNEL 13 WILL RADAR READ IS IN CRITICAL PERIOD


                SETLOC  C13BANK
                BANK
                
RADSTART        TS      Q
 +1             EXTEND
                READ    LOSCALAR        # READ PRESENT TIME
                TS      L
                
                MASK    LOW5            # ONLY THE LOW 5 BITS MATTER
                COM
                AD      BIT6            # COMPUTE DELTA TIME TO NEXT T5 TICK
                MASK    LOW5
                TS      RADDEL
                
                AD      NEG2            # IF A TICKING OF T5 IS NEAR, WAIT UNTIL
                EXTEND                  # IT HAS TICKED.  THE MAX DELAY HERE WILL
                BZMF    RADSTART +1     # BE 937.5 MICROSECONDS
                
                CA      Q
                EXTEND                  # IT IS SAFE TO SET THE ACTIVITY BIT NOW
                WOR     CHAN13          # BECAUSE OF THE ABOVE LOOP
                
                CS      L
                TS      RADTIME         # SAVE NEGATIVE TIME OF READ
                TC      ISWRETRN

                
C13STAL1        TS      C13FSAV

                CA      BIT4
                EXTEND
                RAND    CHAN13
                EXTEND
                BZF     TCQSTAL         # IF NO RADAR ACTIVITY, RETURN

C13SLOOP        NOOP                    # *** NECESSARY TO PREVENT A TC TRAP ***
                EXTEND
                READ    LOSCALAR
                AD      RADTIME         # COMPUTE DELTA T SINCE LAST RADAR READ
                AD      HALF
                AD      HALF            # CORRECT FOR TIME OVERFLOW
                XCH     L
                
                CA      90MSCALR
                AD      RADDEL
                EXTEND
                SU      L
## Page 572
                EXTEND
                BZMF    TCQSTAL         # FORBIDDEN  ZONE IS PAST, RETURN
                
                AD      -DTSCALR
                EXTEND
                BZMF    C13SLOOP        # IN THE FORBIDDEN PERIOD, LOOP UNTIL O.K.
                
TCQSTAL         LXCH    Q               # ALL IS WELL, RETURN
                CA      C13FSAV
                DTCF
                
90MSCALR        OCT     440             # 90 MILLISEC IN SCALAR
-DTSCALR        OCT     77754           # -5.9375 MS IN SCALAR

                SETLOC  FFTAG6
                BANK
                
C13STALL        CAF     PRIO36          # PRIO36 = 36000 = FCADR (17,2000)
                XCH     FBANK
                TCF     C13STAL1

## Page 573
# THIS ROUTINE CHANGES THE LR POSITION, AND CHECKS THAT IT GOT THERE.

                BANK    25
                SETLOC  P20S1
                BANK
                COUNT*  $$/RSUB
LRPOS2          INHINT

                CS      RADMODES
                MASK    LRPOSBIT        # SHOW DESIRED LR POSITION IS 2
                ADS     RADMODES
                
                CAF     BIT7
                EXTEND
                RAND    CHAN33          # SEE IF ALREADY THERE.
                EXTEND
                BZF     RADNOOP
                
                CAF     BIT13
                EXTEND
                WOR     CHAN12          # COMMAND TO POSITION 2
                CAF     6SECS           # START SCANNING FOR INBIT AFTER 7 SECS.
                TC      WAITLIST
                EBANK=  LOSCOUNT
                2CADR   LRPOSCAN
                
                TC      ROADBACK

RADNOOP         CAF     ONE             # NO FURTHER ACTION REQUESTED
                TC      WAITLIST
                EBANK=  LOSCOUNT
                2CADR   RGOODEND
                
                TC      ROADBACK
                
LRPOSNXT        TS      SAMPLIM
                TC      FIXDELAY        # SCAN ONCE PER SECOND 5 TIMES MAX AFTER
                DEC     100             # INITIAL DELAY OF 7 SECONDS.
                
                CAF     BIT7            # SEE IF LR POS2 IS ON
                EXTEND
                RAND    CHAN33
                EXTEND
                BZF     LASTLRDT        # IF THERE, WAIT FINAL SECOND FOR BOUNCE.
                
                CCS     SAMPLIM         # SEE IF MAX TIME UP.
                TCF     LRPOSNXT
                
                CS      BIT13           # IF TIME UP, DISABLE COMMAND AND ALARM.
                EXTEND
## Page 574
                WAND    CHAN12
                TCF     RDBADEND

LASTLRDT        CA      2SECS           # WAIT TWO SECONDS AFTER RECEIPT OF INBIT
                TC      VARDELAY        # TO WAIT FOR ANTENNA BOUNCE TO DIE OUT.
                
                CS      BIT13           # REMOVE COMMAND
                EXTEND
                WAND    CHAN12
                TCF     RGOODEND
                
LRPOSCAN        CAF     FOUR
                TCF     LRPOSNXT
6SECS           DEC     600

LRP2COMM        TC      BANKCALL
                CADR    LRPOS2
                TC      BANKCALL
                CADR    RADSTALL
                TC      LP2ALM
                TCF     GOPINNER
                
LP2ALM          TC      ALARM
                OCT     523
                TCF     GOPINNER
                
V59GP63         CA      EBANK7
                TS      EBANK
                EBANK=  RPCRTIME
                CA      POSMAX
                TS      RPCRTIME
                CS      BIT14
                TS      RPCRTQSW
GOPINNER        TC      POSTJUMP
                CADR    PINBRNCH
                
## Page 575
#          SEQUENCES TO TERMINATE RR OPERATIONS.

ENDRADAR        CAF     RCDUFBIT        # PROLOG TO CHECK RR CDU FAIL BEFORE END.
                MASK    RADMODES
                CCS     A
                TCF     RGOODEND
                TCF     RDBADEND
 -2             CS      ZERO            # RGOODEND WHEN NOT UNDER WAITLIST CONTROL
                TS      RUPTAGN
                
RGOODEND        CAF     TWO
                TC      POSTJUMP
                CADR    GOODEND
                
 -2             CS      ZERO            # RDBADEND WHEN NOT UNDER WAITLIST.
                TS      RUPTAGN
RDBADEND        CAF     TWO
                TC      POSTJUMP
                CADR    BADEND
                
BIN3            EQUALS  THREE

## Page 576
# PROGRAM NAME_ LPS20.1 VECTOR EXTRAPOLATION AND LOS COMPUTATION
# MOD. NO.  2      BY  J.D. COYNE    SDC    DATE   12-7-66


# FUNCTIONAL DESCRIPTION_

# 1) EXTRAPOLATE THE LEM AND CSM VECTORS IN ACCORDANCE WITH THE TIME REFERED TO IN CALLER + 1.
# 2) COMPUTES THE LOS VECTOR TO THE CSM, CONVERTS IT TO STABLE MEMBER COORDINATES AND STORES IT IN RRTARGET.
# 3) COMPUTES THE MAGNITUDE OF THE LOS VECTOR AND STORES IT IN MLOSV


# CALLING SEQUENCE       CALL
#                               LPS20.1

# SUBROUTINES CALLED_

# LEMPREC,CSMPREC


# NORMAL EXIT_ RETURN TO CALLER + 2


# ERROR EXITS_ NONE


# ALARMS_ NONE


# OUTPUT_

# LOS VECTOR (HALF UNIT) IN SM COORDINATES STORED IN RRTARGET
# MAGNITUDE OF THE LOS VECTOR (METERS SCALED B-29) STORED IN MSLOV
# RRNBSW CLEARED


# INITIALIZED ERASEABLE

# TDEC1 MUST CONTAIN THE TIME FOR EXTRAPOLATION
# SEE ORBITAL INTEGRATION ROUTINE


# DEBRIS_

# MPAC DESTROYED BY THIS ROUTINE

                BANK    23
                SETLOC  P20S
                BANK
## Page 577
                COUNT*  $$/LPS20

LPS20.1         STQ     BOFF
                        LS21X
                        LOSCMFLG        # LOSCMFLG = 0 MEANS NOT CALLED BY R21
                        LMINT           # SO CALL LEMCONIC TO GET LM STATE
                BON                     # IF IN R21 AND ON LUNAR SURFACE
                        SURFFLAG        # DON'T CALL LEMCONIC
                        CSMINT
LMINT           CALL
                        LEMCONIC        # EXTRAPOLATE LEM
                VLOAD
                        RATT
                STOVL   LMPOS           # SAVE LM POSITION B-29
                        VATT
                STODL   LMVEL           # SAVE LM VELOCITY B-7
                        TAT
CSMINT          STCALL  TDEC1
                        CSMCONIC        #  EXTRAPOLATE CSM
                VLOAD   VSU             # COMPUTE RELATIVE VELOCITY V(CSM) - V(LM)
                        VATT
                        LMVEL
                STORE   VELLOS
                MXV     VSL1
                        REFSMMAT
                EXIT
                TC      KILLTASK        # KILL THE TASK WHICH CALLS DODES SINCE
                CADR    DESLOOP +2      # STORING INTO ERASEABLES DODES USES
                TC      INTPRET
                STOVL   LOSVEL
                        RATT
                VSU
                        LMPOS
                STORE   RRANGE          # RANGE FOR POSSIBLE ALARM B-29
                BOVB    VSL
                        TCDANZIG
                        9D
NOTSHIFT        UNIT    BOVB            # IF OVERFLOW , RANGE MUST BE GREATER
                        526ALARM        # THAN 400 N. M.
                MXV     VSL1
                        REFSMMAT        # CONVERT TO STABLE MEMBER
                STODL   RRTARGET
                        36D             # SAVE MAGNITUDE OF LOS VECTOR FOR
                STORE   MLOSV           # VELOCITY CORRECTION IN DESIGNATE
                CLRGO
                        RRNBSW
                        LS21X
RRANGE          EQUALS  20D
## Page 578
VELLOS          EQUALS  14D

## Page 579
# PROGRAM NAME : LPS20.2 400 N. MI. RANGE CHECK
# MOD. NO. 2   BY J.D. COYNE   SDC    DATE  12-7-66


# FUNCTIONAL DESCRIPTION_

# COMPARES THE MAGNITUDE OF THE LOS VECTOR TO 400 NM


# CALLING SEQUENCE       CALL
#                               LPS20.2


# SUBROUTINES CALLED_ NONE


# NORMAL EXIT _ RETURN TO CALLER +1, MPAC EQ 0 (RANGE 400NM OR LESS.)


# ERROR EXITS _ RETURN TO CALLER +1, MPAC EQ 1 (RANGE GREATER THAN 400NM)


# ALARMS_ NONE


# OUTPUT_ NONE


# INITIALIZED ERASEABLE_

# PDL 36D MUST CONTAIN THE MAGNITUDE OF THE VECTOR
# DEBRIS

# MPAC DESTROYED BY THIS ROUTINE

                SETLOC  P20S1
                BANK
                COUNT*  $$/LPS20
                
LPS20.2         DLOAD   DSU
                        MLOSV           # MAGNITUDE OF LOS
                        FHNM            # OVER 400NM  _
                BPL
                        TOFAR
                SLOAD   RVQ
                        ZERO/SP
TOFAR           SLOAD   RVQ
                        ONE/SP
ONE/SP          DEC     1
## Page 580
FHNM            2DEC    740800 B-20     # 400 NAUTICAL MILES IN METERS B-20

## Page 581
# PROGRAM NAME: LRS22.1 (DATA READ SUBROUTINE 1)
# MOD. NO.: 1       BY:  P. VOLANTE  SDC           DATE:  11-15-66


# FUNCTIONAL DESCRIPTION

# 1) READS RENDEZVOUS RADAR RANGE AND RANGE-RATE,TRUNION AND SHAFT ANGLES,THREE CDU VALUES AND TIME. CONVERTS THIS
# DATA AND LEAVES IT FOR THE MEASUREMENT INCORPORATION ROUTINE (LSR22.3). CHECKS FOR THE RR DATA GOOD DISCRETE,FOR
# RR REPOSITION AND RR CDU FAIL

# 2) COMPARES RADAR LOS WITH LOS COMPUTED FROM STATE VECTORS TO SEE IF THEY ARE WITHIN THREE DEGREES


# CALLING SEQUENCE: BANKCALL FOR LRS22.1


# SUBROUTINES CALLED:

#        RRRDOT   LPS20.1
#        RRRANGE  BANKCALL
#        RADSTALL CDULOGIC
#        RRNB     SMNB
# NORMAL EXIT: RETURN TO CALLER+1 WITH MPAC SET TO +0


# ERROR EXITS: RETURN TO CALLER+1 WITH ERROR CODE STORED IN MPAC AS FOLLOWS:

#              00001-ERROR EXIT 1-RR DATA NO GOOD (NO RR DATA GOOD DISCRETE OR RR CDU FAIL OR RR REPOSITION)
#              00002-ERROR EXIT 2-RR LOS NOT WITHIN THREE DEGREES OF LOS COMPUTED FROM STATE VECTORS


# ALARMS:  521-COULD NOT READ RADAR DATA (RR DATA GOOD DISCRETE NOT PRESENT BEFORE AND AFTER READING THE RADAR)
#  (THIS ALARM IS ISSUED BY THE RADAREAD SUBROUTINE WHICH IS ENTERED FROM A RADARUPT)


# OUTPUT: RRLOSVEC- THE RR LINE-OF-SIGHT VECTOR(USED BY LRS22.2)-A HALF-UNIT VECTOR
#         RM- THE RR RANGE READING(TO THE CSM) DP, IN METERS SCALED B-29(USED BY LRS22.2 AND LRS22.3)

#    ALL OF THE FOLLOWING OUTPUTS ARE USED BY LRS22.3:

#         RDOTM- THE RR RANGE-RATE READING,DP, IN METERS PER CENTISECOND, SCALED B-7
#         RRTRUN-RR TRUNION ANGLE,DP,IN REVOLUTIONS,SCALED B0
#         RRSHAFT-RR SHAFT ANGLE,DP,IN REVOLUTIONS,SCALED B0
#         AIG,AMG,AOG-THE CDU ANGLES,THREE SP WORDS
#         MKTIME-THE TIME OF THE RR READING,DP,IN CENTISECONDS


# ERASABLE INITIALIZATION REQUIRED:

#    RNRAD,THE RADAR READ COUNTER FROM WHICH IS OBTAINED:
## Page 582
#     1)RR RANGE SCALED 9.38 FT. PER BIT ON THE LOW SCALE AND 75.04 FT. PER BIT ON THE HIGH SCALE
#     2)RR RANGE RATE,SCALED .6278 FT./SEC. PER BIT

#    THE CDU ANGLES FROM CDUX,CDUY,CDUZ AND TIME1 AND TIME2


# DEBRIS:  LRS22.1X,A,L,Q,PUSHLIST


                BANK    32
                SETLOC  LRS22
                BANK
                COUNT*  $$/LRS22
                
LRS22.1         TC      MAKECADR
                TS      LRS22.1X
                TC      DOWNFLAG
                ADRES   RNGSCFLG
                INHINT
                CAF     BIT3
                EXTEND                  # GET RR RANGE SCALE
                RAND    CHAN33          # FROM CHANNEL 33 BIT 3
                TS      L
                CS      RRRSBIT
                MASK    RADMODES
                AD      L
                TS      RADMODES
                RELINT
READRDOT        TC      BANKCALL
                CADR    RRRDOT          # READ RANGE-RATE (ONE SAMPLE)
                TC      BANKCALL
                CADR    RADSTALL        # WAIT FOR DATA READ COMPLETION
                TCF     EREXIT1         # COULD NOT READ RADAR-ERROR EXIT 1
                
                INHINT                  # NO INTERRUPTS WHILE READING TIME AND CDU
                DXCH    TIMEHOLD        # SET MARK TIME EQUAL TO THE MID-POINT
                DXCH    MPAC +5         # TEMP BUFFER FOR DOWNLINK
                DXCH    SAMPLSUM        # SAVE RANGE-RATE READING
                DXCH    RDOTMSAV
                EXTEND
                DCA     CDUY            # SAVE ICDU ANGLES
                DXCH    MPAC +3         # TEMP BUFFER FOR DOWNLINK
                CA      CDUX
                TS      MPAC +2         # TEMP BUFFER FOR DOWNLINK
                EXTEND
                DCA     TIME2           #  SAVE TIME
                DXCH    MPAC            # SAVE TIME OF CDY READINGS IN MPAC
                EXTEND
                DCA     CDUT            # SAVE TRUNION AND SHAFT ANGLES FOR RRNB
                DXCH    TANG
## Page 583
                RELINT
                TC      BANKCALL
                CADR    RRRANGE         # READ RR RANGE (ONE SAMPLE)
                TC      BANKCALL
                CADR    RADSTALL        # WAIT FOR READ COMPLETE
                TC      CHEXERR         # CHECK FOR ERRORS DURING READ
                INHINT                  # COPY CYCLE FOR MARK DATA ON DOWNLINK
                EXTEND
                DCA     DNRRANGE        # RANGE,RANGE RATE (RAW DATA)
                DXCH    RANGRDOT
                DXCH    MPAC +5
                DXCH    MKTIME          # MARK TIME
                DXCH    MPAC +3
                DXCH    AIG             # CDUY, CDUZ
                EXTEND
                DCA     TANG            # PRESERVE TANG
                DXCH    TANGNB          # TRUNNION AND SHAFT ANGLES
                CA      MPAC +2
                TS      AOG             # CDUX
                TC      INTPRET
                STODL   20D             # SAVE TIME OF CDU READINGS IN 20D
                        RDOTMSAV        # CONVERT ROOT UNITS AND SCALING
                SL      DMPR            # START WITH READING SCALED B-28, -.6278
                        14D             # FT./SECOND PER BIT
                        RDOTCONV        # END WITH METERS/CENTISECOND, B-7
                STORE   RDOTM
                SLOAD   RTB
                        TANG            # GET TRUNION ANGLE
                        CDULOGIC        # CONVERT TO DP ONES COMP. IN REVOLUTIONS
                STORE   RRTRUN          # AND SAVE FOR TMI ROUTINE (LSR22.3)
                SLOAD   RTB
                        TANG +1         # DITTO FOR SHAFT ANGLE
                        CDULOGIC
                STODL   RRSHAFT
                        SAMPLSUM
                DMP     SL2R            # CONVERT UNITS AND SCALING OF RANGE
                        RANGCONV        # PER BIT, END WITH METERS,SCALED -29
                STCALL  RM
                        RRNB            # COMPUTE RADAR LOS USING RRNB
                STODL   RRBORSIT        # AND SAVE
                        20D
                STCALL  TDEC1           # GET STATE VECTOR LOS AT TIME OF CDU READ
                        LPS20.1
                EXIT
## Page 584
                CA      AIG             # STORE IMU CDU ANGLES AT MARKTIME
                TS      CDUSPOT         # IN CDUSPOT FOR TRG*SMNB
                CA      AMG
                TS      CDUSPOT +2
                CA      AOG
                TS      CDUSPOT +4
                TC      INTPRET
                VLOAD   CALL            # LOAD VECTOR AND CALL TRANSFORMATION
                        RRTARGET
                        TRG*SMNB        # ROTATE LOS AT MARKTIME FROM SM TO NB.
                DOT                     # DOT WITH RADAR LOS TO GET ANGLE
                        RRBORSIT
                SL1     ACOS            # BETWEEN THEM
                STORE   DSPTEM1         # STORE FOR POSSIBLE DISPLAY
                DSU     BMN             # IS IT LESS THAN 3 DEGREES
                        THREEDEG
                        NORMEXIT        # YES-NORMAL EXIT

                EXIT                    # ERROR EXIT 2
                CAF     BIT2            # SET ERROR CODE
                TS      MPAC
                TCF     OUT22.1
                
NORMEXIT        EXIT                    # NORMAL EXIT-SET MPAC EQUAL ZERO
                CAF     ZERO
                TS      MPAC
OUT22.1         CAE     LRS22.1X        # EXIT FROM LRS22.1
                TC      BANKJUMP
CHEXERR         CAE     FLAGWRD5
                MASK    RNGSCBIT
                CCS     A               # CHECK IF RANGE SCALE CHANGED
                TCF     READRDOT        # YES-TAKE ANOTHER READING
                
EREXIT1         CA      BIT1            # SET ERROR CODE
                TS      MPAC
                TC      OUT22.1
THREEDEG        2DEC    .008333333      # THREE DEGREES,SCALED  REVS,B0

## Page 585
# PROGRAM NAME - LRS22.2 (DATA READ SUBROUTINE 2)


# MOD. NO. : 1       BY: P VOLANTE  SDC           DATE  4-11-67
#
# FUNCTIONAL DESCRIPTION-

##   (Yes, I know point #1 is missing.  It is missing from the program listing -- RSB 2003)
#    2) CHECKS IF THE RR LOS (I.E. THE RADAR BORESIGHT VECTOR) IS WITHIN 30 DEGREES OF THE LM +Z AXIS


# CALLING SEQUENCE- BANKCALL FOR LRS22.2


# SUBROUTINES CALLED: G+N,AUTO   SETMAXDB
# NORMAL EXIT - RETURN TO CALLER WITH MPAC SET TO +0 (VIA SWRETURN)


# ERROR EXIT - RETURN TO CALLER WITH MPAC SET TO 00001 -RADAR LOS NOT WITHIN 30 DEGREES OF LM +Z AXIS


# ALARMS - NONE                                                            IN THE AUTO MODE


# ERASABLE INITIALIZATION REQUIRED -
#      RRLOSVEC - THE RR LINE-OF-SIGHT VECTOR-A HALF UNIT VECTOR COMPUTED BY LRS22.1
#      RM - RR RANGE, METERS B-29, FROM LRS22.1
#      BIT 14 CHANNEL 31 -INDICATES AUTOPILOT IS IN AUTO MODE


# DEBRIS -  A,L,Q MPAC -PUSHLIST AND PUSHLOC ARE NOT CHANGED BY THIS ROUTINE


                SETLOC  P20S
                BANK
LRS22.2         TC      MAKECADR
                TS      LRS22.1X
                TC      INTPRET
                                        # CHECK IF RR LOS IS WITHIN 30 DEG OF 
30DEGCHK        DLOAD   ACOS            # THE SPACECRAFT +Z AXIS
                        RRBORSIT +4     # BY TAKING ARCCOS OF Z-COMP. OF THE RR
                                        # LOS VECTOR,A HALF UNIT VECTOR
                                        # IN NAV BASE AXES)
                DSU     BMN
                        30DEG
                        OKEXIT          # NORMAL EXIT-WITHIN 30 DEG.
                EXIT                    # ERROR EXIT-NOT WITHIN 30 DEG.
                CAF     BIT1            # SET ERROR CODE IN MPAC
                TS      MPAC
                TCF     OUT22.2
OKEXIT          EXIT                    # NORMAL EXIT-SET MPAC = ZERO

## Page 586
                CAF     ZERO
                TS      MPAC
OUT22.2         CAE     LRS22.1X
                TC      BANKJUMP
                

30DEG           2DEC    .083333333      # THIRTY DEGREES,SCALED REVS,B0

## Page 587
# PROGRAM NAME - LSR22.3                                                  DATE - 29 MAY 1967
# MOD. NO 3                                                               LOG SECTION - P20-25
# MOD. BY - DANFORTH                                                      ASSEMBLY LEMP20S REV 10
#
# FUNCTIONAL DESCRIPTION

# THIS ROUTINE COMPUTES THE B-VECTORS AND DELTA Q FOR EACH OF THE QUANTITIES MEASURED BY THE RENDEZVOUS
# RADAR.(RANGE,RANGE RATE,SHAFT AND TRUNNION ANGLES). THE ROUTINE CALLS THE INCORP1 AND INCORP2 ROUTINES
# WHICH COMPUTE THE DEVIATIONS AND CORRECT THE STATE VECTOR.

# CALLING SEQUENCE
# THIS ROUTINE IS PART OF P20 RENDEZVOUS NAVIGATION FOR THE LM COMPUTER O NLY. THE ROUTINE IS ENTERED FROM
# R22LEM  ONLY AND RETURNS DIRECTLY TO R22LEM  FOLLOWING SUCCESSFUL INCORPORATION OF MEASURED DATA. IF THE
# COMPUTED STATE VECTOR DEVIATIONS EXCEED THE MAXIMUM PERMITTED. THE ROUTINE RETURNS TO R22LEM  TO DISPLAY
# THE DEVIATIONS. IF THE ASTRONAUT ACCEPTS THE DATA R22LEM  RETURNS TO    LSR22.3 TO INCORPORATE THE
# DEVIATIONS INTO THE STATE VECTOR. IF THE ASTRONAUT REJECTS THE DEVIATIONS, NO MORE MEASUREMENTS ARE
# PROCESSED FOR THIS MARK,I.E.,R22LEM  GETS THE NEXT MARK.

#
# SUBROUTINES CALLED
#  WLINIT     LGCUPDTE     INTEGRV     INCORP1     ARCTAN
#  GETULC     RARARANG     INCORP2     NBSM        INTSTALL
#
# OUTPUT
#  CORRECTED LM OR CSM STATE VECTOR (PERMANENT)
#  NUMBER OF MARKS INCORPORATED IN MARKCTR
#  MAGNITUDE OF POSITION DEVIATION (FOR DISPLAY) IN R22DISP METERS B-29
#  MAGNITUDE OF VELOCITY DEVIATION (FOR DISPLAY) IN R22DISP +2 M/CSEC B-7
#  UPDATED W-MATRIX
#

# ERASABLE INITIALIZATION REQUIRED
#  LM AND CSM STATE VECTORS
#  W-MATRIX
#  MARK TIME IN MKTIME
#  RADAR RANGE IN RM METERS B-29
#        RANGE RATE IN RDOTM METERS/CSES B-7
#        SHAFT ANGLE IN RRSHAFT REVS.B0
#        TRUNNION ANGLE IN RRTRUN REVS. B0
#  GIMBAL ANGLES  INNER IN AIG
#                 MIDDLE IN AMG
#                 OUTER IN AOG
#  REFSMMAT
#  RENDWFLG
#  NOANGFLG
#  VEHUPFLG

# DEBRIS
#  PUSHLIST--ALL
#  MX, MY, MZ  (VECTORS)
## Page 588
#  ULC,RXZ,SINTHETA,LGRET,RDRET,BVECTOR,W.IND,X78T


                BANK    13
                SETLOC  P20S3
                BANK

                EBANK=  LOSCOUNT
                COUNT*  $$/LSR22
LSR22.3         CALL
                        GRP2PC
                BON     SET
                        SURFFLAG        # ARE WE ON LUNAR SURFACE
                        LSR22.4         # YES
                        DMENFLG
                BOFF    CALL
                        VEHUPFLG
                        DOLEM
                        INTSTALL
                CLEAR   CALL            # LM PRECISION INTEGRATION
                        VINTFLAG
                        SETIFLGS
                CALL
                        INTGRCAL
                CALL
                        GRP2PC
                CALL    
                        INTSTALL
                CLEAR   BOFF
                        DIM0FLAG
                        RENDWFLG
                        NOTWCSM
                SET     SET             # CSM WITH W-MATRIX INTEGRATION
                        DIM0FLAG
                        D6OR9FLG
NOTWCSM         SET     CLEAR
                        VINTFLAG
                        INTYPFLG
                SET     CALL
                        STATEFLG
                        INTGRCAL
                GOTO
                        MARKTEST
DOLEM           CALL
                        INTSTALL
                SET     CALL
                        VINTFLAG
                        SETIFLGS
                CALL    
                        INTGRCAL
## Page 589
                CALL    
                        GRP2PC
                CALL    
                        INTSTALL
                CLEAR   BOFF
                        DIM0FLAG
                        RENDWFLG
                        NOTWLEM
                SET     SET             # LM WITH W-MATRIX INTEGRATION
                        DIM0FLAG
                        D6OR9FLG
NOTWLEM         CLEAR   CLEAR
                        INTYPFLG
                        VINTFLAG
                SET     CALL
                        STATEFLG
                        INTGRCAL
MARKTEST        BON     CALL            # HAS W-MATRIX BEEN INVALIDATED
                        RENDWFLG        # HAS W-MATRIX BEEN INVALIDATED
                        RANGEBQ
                        WLINIT          # YES-REINITIALIZE
RANGEBQ         BON     EXIT            # DON'T CALL R65 IF ON SURFACE
                        SURFFLAG
                        RANGEBQ1
                CA      ZERO
                TS      R65CNTR
                TC      BANKCALL
                CADR    R65LEM
                TC      INTPRET
RANGEBQ1        AXT,2   BON             #  CLEAR X2
                        0
                        LMOONFLG        # IS MOON SPHERE OF INFLUENCE
                        SETX2           # YES. STORE ZERO IN SCALSHFT REGISTER
                INCR,2
                        2
SETX2           SXA,2   CALL
                        SCALSHFT        # 0-MOON. 2-EARTH
                        GRP2PC
                AXT,1   SXA,1           # STORE RANGE CODE (1) FOR R3 IN NOUN 49
                        1
                        WHCHREAD
                SLOAD   SR              # GET SINGLE PRECISION RVARMIN (B-12)
                        RVARMIN         # SHIFT TO TRIPLE PRECISION    (B-40)
                        28D
                RTB
                        TPMODE          # AND SAVE  IN 20D
                STORE   20D
                CALL                    # BEGIN COMPUTING THE B-VECTORS,DELTAQ
                        GETULC          # B-VECTORS FOR RANGE
                BON     VCOMP           # B0, COMP. IF LM BEING CORRECTED
## Page 590
                        VEHUPFLG
                        +1
                STOVL   BVECTOR
                        ZEROVECS
                STORE   BVECTOR +6      # B1
                STODL   BVECTOR +12D    # B2
                        36D
                SRR*    BDSU
                        2,2             # SHIFT FROM EARTH/MOON SPHERE TO B-29
                        RM              # RM - (MAGNITUDE RCSM-RLM)
                SLR*    
                        2,2             # SHIFT TO EARTH/MOON SPHERE
                STODL   DELTAQ          # EARTH B-29. MOON B-27
                        36D             # RLC  B-29/B-27
                NORM    DSQ             # NORMALIZE AND SQUARE
                        X1
                DMP     SR*
                        RANGEVAR        # MULTIPLY BY RANGEVAR(B12) THEN
                        0 -2,1          # UNNORMALIZE
                SR*     SR*
                        0,1
                        0,2
                SR*     RTB
                        0,2
                        TPMODE
                STORE   VARIANCE        # B-40
                DCOMP   TAD
                        20D             #   B-40
                BMN     TLOAD
                        QOK
                        20D             #   B-40
                STORE   VARIANCE
QOK             CALL
                        LGCUPDTE

                SSP     CALL
                        WHCHREAD
                DEC     2               # STORE R-RATE CODE (2) FOR R3 IN NOUN 49
                        GRP2PC
                CALL                    # B-VECTOR,DELTAQ FOR RANGE RATE
                        GETULC
                PDDL    SR*             # GET RLC SCALED B-29/B-27
                        36D             # AND SHIFT TO B-23
                        0 -4,2
                STOVL   36D             # THEN STORE BACK IN 36D
                BON     VCOMP           # B1, COMP. IF LM BEING CORRECTED
                        VEHUPFLG
                        +1
                VXSC    
                        36D             # B1 = RLC  (B-24/B-22)
## Page 591
                STOVL   BVECTOR +6
                        NUVLEM
                VSR*    VAD
                        6,2             # SHIFT FOR EARTH/MOON SPHERE
                        VCVLEM          # EARTH B-7. MOON B-5
                PDVL    VSR*            # VL TO PD6
                        NUVCSM
                        6,2             # SHIFT FOR EARTH/MOON SPHERE
                VAD     VSU
                        VCVCSM
                PDVL    DOT             # VC - VL = VLC TO PD6
                        0
                        6               
                PUSH    SRR*            # RDOT B-8/B-6 TO PD12
                        2,2             # SHIFT FROM EARTH/MOON SPHERE TO B-8
                DSQ     DMPR            # RDOT**2 B-16 X RATEVAR B12
                        RATEVAR
                STORE   VARIANCE
                SLOAD   SR
                        VVARMIN         # GET SINGLE PRECISION VVARMIN (B+12)
                        16D             # SHIFT TO DP (B -4)
                STORE   24D             # AND SAVE IN 24D
                DSU     BMN             # IS MIN. VARIANCE > COMPUTED VARIANCE
                        VARIANCE
                        VOK             # BRANCH - NO
                DLOAD                   # YES - USE MINIMUM VARIANCE
                        24D
                STORE   VARIANCE
VOK             DLOAD   SR2             # RDOT(PD12) FROM B-8/B-6
                PDDL    SLR*            # TO B-10/B-8
                        RDOTM           # SHIFT TO EARTH/MOON SPHERE
                        0 -1,2          # B-7 TO B-10/B-8
                DSU
                DMPR
                        36D
                STOVL   DELTAQ          #   B-33
                        0               # NOW GET B0
                VXV     VXV             # (ULC X VLC) X ULC
                BON     VCOMP           # B0, COMP. IF LM BEING CORRECTED
                        VEHUPFLG
                        +1
                VSR*
                        0 -2,2          # SCALED B-5
                STOVL   BVECTOR
                        ZEROVECS
                STORE   20D             # ZERO OUT 20 TO 25 IN PUSHLIST
                STOVL   BVECTOR +12D
                        BVECTOR
                ABVAL   NORM            # LOAD B0, GET MAGNITUDE AND NORMALIZE
                        20D             # SHIFT COUNT IN 20D
## Page 592
                VLOAD   ABVAL
                        BVECTOR +6D     # LOAD B1, GET MAGNITUDE AND NORMALIZE
                NORM    DLOAD
                        22D             # SHIFT COUNT IN 22D
                        22D             # FIND WHICH SHIFT IS SMALLER
                DSU     BMN             # BRANCH- B0 HAS SMALLER SHIFT COUNT
                        20D
                        VOK1
                LXA,1   GOTO
                        22D             # LOAD X2 WITH THE SMALLER SHIFT COUNT
                        VOK2
VOK1            LXA,1
                        20D
VOK2            VLOAD   VSL*            # THEN ADJUST B0,B1,DELTAQ AND VARIANCE
                        BVECTOR         # WITH THIS SHIFT COUNT
                        0,1
                STOVL   BVECTOR
                        BVECTOR +6
                VSL*
                        0,1
                STODL   BVECTOR +6
                        DELTAQ
                SL*
                        0,1
                STORE   DELTAQ
                DLOAD   SL*             # GET RLC AND ADJUST FOR SCALE SHIFT
                        36D
                        0 -1,1
                DSQ     DMP             # MULTIPLY RLC**2 BY VARIANCE
                        VARIANCE
                SL4     RTB             # SHIFT TO CONFORM TO BVECTORS AND DELTAQ
                        TPMODE
                STCALL  VARIANCE        # AND STORE TP VARIANCE
                        LGCUPDTE
                        
                CALL
                        GRP2PC
                BON     EXIT            # ARE ANGLES TO BE DONE
                        SURFFLAG
                        RENDEND         # NO
                EBANK=  AIG
MXMYMZ          CAF     AIGBANK
                TS      BBANK
                CA      AIG             # YES, COMPUTE  MX, MY, MZ
                TS      CDUSPOT
                CA      AMG
                TS      CDUSPOT +2
                CA      AOG
                TS      CDUSPOT +4      # GIMBL ANGLES NOW IN CDUSPOT FOR TRG*NBSM
                TC      INTPRET
## Page 593
                VLOAD   CALL
                        UNITX
                        TRG*NBSM
                VXM     VSL1
                        REFSMMAT
                STOVL   MX
                        UNITY
                CALL
                        *NBSM*
                VXM     VSL1
                        REFSMMAT
                STOVL   MY
                        UNITZ
                CALL
                        *NBSM*
                VXM     VSL1
                        REFSMMAT
SHAFTBQ         STCALL  MZ
                        RADARANG
                SSP     VLOAD           # STORE SHAFT CODE (3) FOR R3 IN NOUN 49
                        WHCHREAD
                DEC     3
                        ULC
                DOT     SL1
                        MX
                STOVL   SINTH           # 18D
                        ULC
                DOT     SL1
                        MZ
                STCALL  COSTH           # 16D
                        ARCTAN
                BDSU    DMP
                        RRSHAFT
                        2PI/8
                SL3R    PUSH
                DLOAD   SL3
                        X789
                SRR*    BDSU            # SHIFT FROM -5/-3 TO B0
                        0,2
                DMP     SRR*
                        RXZ
                        0,1             # SHIFT TO EARTH/MOON SPHERE
                STOVL   DELTAQ          # EARTH B-29. MOON B-27
                        ULC
                VXV     VSL1
                        MY
                UNIT
                BOFF    VCOMP           # B0, COMP. IF CSM BEING CORRECTED
                        VEHUPFLG
                        +1
## Page 594
                STOVL   BVECTOR
                        ZEROVECS
                STORE   BVECTOR +6
                STODL   BVECTOR +12D
                        RXZ
                SR*     SRR*            # SHIFT FROM EARTH/MOON SPHERE TO B-25
                        0 -2,1
                        0,2
                STORE   BVECTOR +12D
                SLOAD
                        SHAFTVAR
                DAD     DMP
                        IMUVAR          # RAD**2 B12
                        RXZ
                SRR*    DMP
                        0,1             # SHIFT TO EARTH/MOON SPHERE
                        RXZ
                SR*     SR*
                        0 -2,1
                        0,2
                SR*     RTB
                        0,2
                        TPMODE          # STORE VARIANCE TRIPLE PRECISION
                STCALL  VARIANCE        # B-40
                        LGCUPDTE
                        
                CALL
                        GRP2PC
TRUNBQ          CALL
                        RADARANG
                SSP     VLOAD           # STORE TRUNNION CODE (4) FOR R3 IN N49
                        WHCHREAD
                DEC     4
                        ULC
                VXV     VSL1
                        MY
                VXV     VSL1            # (ULC X MY) X ULC
                        ULC
                BOFF    VCOMP           # B0, COMP. IF CSM BEING CORRECTED
                        VEHUPFLG
                        +1
                STOVL   BVECTOR
                        ZEROVECS
                STORE   BVECTOR +6
                STODL   BVECTOR +12D
                        RXZ
                SR*     SRR*            # SHIFT FROM EARTH/MOON SPHERE TO B-25
                        0 -2,1
                        0,2
                STORE   BVECTOR +14D
## Page 595
                SLOAD
                        TRUNVAR
                DAD     DMP
                        IMUVAR
                        RXZ
                SRR*    DMP
                        0,1             # SHIFT TO EARTH/MOON SPHERE
                        RXZ
                SR*     SR*
                        0 -2,1
                        0,2
                SR*     RTB
                        0,2
                        TPMODE          # STORE VARIANCE TRIPLE PRECISION
                STODL   VARIANCE
                        SINTHETA
                ASIN    BDSU            # SIN  THETA IN PD6
                        RRTRUN
                DMP     SL3R
                        2PI/8
                PDDL    SL3
                        X789 +2
                SRR*    BDSU            # SHIFT FROM -5/-3 TO B0
                        0,2
                DMP     SRR*
                        RXZ
                        0,1
                STCALL  DELTAQ          # EARTH B-29. MOON B-27
                        LGCUPDTE
                CALL    
                        GRP2PC
RENDEND         GOTO 
                        R22LEM93
# FUNCTIONAL DESCRIPTION

# LSR22.4 IS THE ENTRY TO PERFORM LUNAR SURFACE NAVIGATION FOR THE LM
# COMPUTER ONLY. THIS ROUTINE COMPUTES THE B-VECTORS AND DELTA Q FOR RANGE
# AND RANGE RATE MEASURED BY THE RENDEZVOUS RADAR

# SUBROUTINES CALLED
#  INSTALL   LGCUPDTE  INCORP1   RP-TO-R
#  INTEGRV   GETULC    INCORP2

# OUTPUT
#  CORRECTED CSM STATE VECTOR (PERMANENT)
#  NUMBER OF MARKS INCORPORATED IN MARKCTR
#  MAGNITUDE OF POSITION DEVIATION (FOR DISPLAY) IN R22DISP METERS B-29
#  MAGNITUDE OF VELOCITY DEVIATION (FOR DISPLAY) IN R22DISP +2 M/CSEC B-7
#  UPDATED W-MATRIX

## Page 596
# ERASABLE INITIALIZATION REQUIRED
#  LM AND CSM STATE VECTORS
#  W-MATRIX
#  MARK TIME IN MKTIME
#  RADAR RANGE IN RM METERS B-29
#        RANGE RATE IN RDOTM METERS/CSEC B-7
#  VEHUPFLG


LSR22.4         CALL
                        INTSTALL
                SET     CLEAR
                        STATEFLG
                        VINTFLAG        # CALL TO GET LM POS + VEL IN REF COORD.
                CALL
                        INTGRCAL
                CALL
                        GRP2PC
                CLEAR   CALL
                        DMENFLG         # SET MATRIX SIZE TO 6X6 FOR INCORP
                        INTSTALL
                DLOAD   BHIZ            # IS THIS FIRST TIME THROUGH
                        MARKCTR
                        INITWMX6        # YES. INITIALIZE 6X6 W-MATRIX
                CLEAR   SET
                        D6OR9FLG
                        DIM0FLAG
                SET     CLEAR
                        VINTFLAG
                        INTYPFLG
                CALL
                        INTGRCAL
                GOTO
                        RANGEBQ

INITWMX6        CALL
                        WLINIT          # INITIALIZE W-MATRIX
                SET     CALL
                        VINTFLAG
                        SETIFLGS
                CALL
                        INTGRCAL        
                GOTO
                        RANGEBQ
                        
# THIS ROUTINE CLEARS RFINAL (DP) AND CALLS INTEGRV
                
INTGRCAL        STQ     DLOAD
                        IGRET
                        MKTIME
## Page 597
                STCALL  TDEC1
                        INTEGRV
                GOTO
                        IGRET
                        
# THIS ROUTINE INITIALIZES THE W-MATRIX BY ZEROING ALL W THEN SETTING
# DIAGONAL ELEMENTS TO INITIAL STORED VALUES.

                EBANK=  W
WLINIT          EXIT
                CAF     WBANK
                TS      BBANK
                CAF     WSIZE
                TS      W.IND
                CAF     ZERO
                INDEX   W.IND   
                TS      W
                CCS     W.IND
                TC      -5
                CAF     AIGBANK         # RESTORE EBANK 7
                TS      BBANK
                TC      INTPRET
                BON     SLOAD           # IF ON LUNAR SURFACE,INITIALIZE WITH 
                        SURFFLAG        # WSURFPOS AND WSURFVEL INSTEAD OF
                        WLSRFPOS        # WRENDPOS AND WRENDVEL
                        WRENDPOS
                GOTO    
                        WPOSTORE
WLSRFPOS        SLOAD
                        WSURFPOS
WPOSTORE        SR                      # SHIFT TO B-19 SCALE
                        5
                STORE   W
                STORE   W +8D
                STORE   W +16D
                BON     SLOAD
                        SURFFLAG
                        WLSRFVEL
                        WRENDVEL
                GOTO
                        WVELSTOR
WLSRFVEL        SLOAD
                        WSURFVEL
WVELSTOR        STORE   W +72D
                STORE   W +80D
                STORE   W +88D
                SLOAD
                        WSHAFT
                STORE   W +144D
                SLOAD
## Page 598
                        WTRUN
                STORE   W +152D
                SET     SSP             # SET RENDWFLG - W-MATRIX VALID
                        RENDWFLG
                        MARKCTR         # SET MARK COUNTER EQUAL ZERO
                        0
                RVQ
                
                EBANK=  W
WBANK           BBCON   WLINIT
                EBANK=  AIG
AIGBANK         BBCON   LSR22.3

# GETULC

# THIS SUBROUTINE COMPUTES THE RELATIVE POSITION VECTOR BETWEEN THE CSM
# AND THE LM, LEAVING THE UNIT VECTOR IN THE PUSHLIST AND MPAC AND THE
# MAGNITUDE IN 36D.

GETULC          SETPD   VLOAD
                        0
                        DELTALEM
                LXA,2   
                        SCALSHFT        # LOAD X2 WITH SCALE SHIFT
                VSR*    VAD
                        9D,2            # SHIFT FOR EARTH/MOON SPHERE
                        RCVLEM
                PDVL    VSR*
                        DELTACSM
                        9D,2            # SHIFT FOR EARTH/MOON SPHERE
                VAD     VSU
                        RCVCSM
                RTB     PUSH            # USE NORMUNIT TO PRESERVE ACCURACY
                        NORMUNX1
                STODL   ULC
                        36D
                SL*                     # ADJUST MAGNITUDE FROM NORMUNIT
                        0,1
                STOVL   36D             # ULC IN PD0 AND MPAC,RLC IN 36D
                        ULC
                RVQ
# RADARANG

# THIS SUBROUTINE COMPUTES SINTHETA = -ULC DOT MY
# RXZ = (SQRT (1-SINTHETA**2))RLC
# OUTPUT
#  ULC IN ULC, PD0
#  RLC  IN PD36D
#  SIN THETA IN SINTHETA AND PD6
#  RXZ NORM IN RXZ (N IN X1)
## Page 599
RADARANG        STQ     CALL
                        RDRET
                        GETULC
                VCOMP   DOT
                        MY
                SL1R    PUSH            # SIN THETA TO PD6
                STORE   SINTHETA
                DSQ     BDSU
                        DP1/4TH         # 1 - (SIN THETA)**2
                SQRT    DMP
                        36D
                SL1     NORM
                        X1              # SET SHIFT COUNTER IN X1
                STORE   RXZ
                GOTO                    # EXIT
                        RDRET
LGCUPDTE        STQ     CALL
                        LGRET
                        INCORP1
                VLOAD   ABVAL
                        DELTAX +6
                LXA,2   SRR*
                        SCALSHFT        # 0-MOON. 2-EARTH
                        2,2             # SET VEL DISPLAY TO B-7
                STOVL   R22DISP +2
                        DELTAX
                ABVAL   SRR*
                        2,2             # SET POS DISPLAY TO B-29
                STORE   R22DISP
                SLOAD   SR
                        RMAX
                        10D
                DSU     BMN
                        R22DISP
                        R22LEM96        # GO DISPLAY
                SLOAD   DSU
                        VMAX
                        R22DISP +2      # VMAX MINUS VEL. DEVIATION
                BMN
                        R22LEM96        # GO DISPLAY
ASTOK           CALL
                        INCORP2
                GOTO
                        LGRET
IMUVAR          2DEC    E-6 B12         # RAD**2

WSIZE           DEC     161
2PI/8           2DEC    3.141592653 B-2

                EBANK=  LOSCOUNT

## Page 600
# PROGRAM NAME LRS24.1   RR SEARCH ROUTINE
# MOD NO  0        BY  P VOLANTE  SDC          DATE 1-15-67


# FUNCTIONAL DESCRIPTION

# DRIVES THE RENDEZVOUS RADAR IN A HEXAGONAL SEARCH PATTERN ABOUT THE LOS TO THE CSM (COMPUTED FROM THE CSM AND LM
# STATE VECTORS) CHECKING FOR THE DATA GOOD DISCRETE AND MONITORING THE ANGLE BETWEEN THE RADAR BORESIGHT AND THE
# LM +Z AXIS. IF THIS ANGLE EXCEEDS 30 DEGREES THE PREFERRED TRACKING ATTITUDE ROUTINE IS CALLED TO PERFORM AN
# ATTITUDE MANEUVER.


# CALLING SEQUENCE - BANKCALL FOR LRS24.1


# SUBROUTINES CALLED

#       LEMCONIC      R61LEM
#       CSMCONIC      RRDESSM
#       JOBDELAY      FLAGDOWN
#       WAITLIST      FLAGUP
#       RRNB          BANKCALL


# EXIT  - TO ENDOFJOB WHEN THE SEARCH FLAG (SRCHOPT) IS NOT SET


# OUTPUT

#     DATAGOOD (SP)-FOR DISPLAY IN R1- 00000 INDICATES NO LOCKON
#                                      11111 INDICATES LOCKON ACHIEVED
#     OMEGAD   (SP)-FOR DISPLAY IN R2- ANGLE BETWEEN RR BORESIGHT VECTOR AND THE SPACECRAFT +Z AXIS

# ERASABLE INITIALIZATION REQUIRED
#    SEARCH FLAG MUST BE SET
#    LM AND CSM STATE VECTORS AND REFSMMAT MATRIX
# DEBRIS

#    RLMSRCH      UXVECT
#    VXRLM        UYVECT
#    LOSDESRD     NSRCHPNT
#    DATAGOOD     OMEGAD
#    MPAC         PUSHLIST


                COUNT*  $$/LRS24
LRS24.1         CAF     ZERO
                TS      NSRCHPNT        # SET SEARCH PATTERN POINT COUNTER TO ZERO
CHKSRCH         CAF     BIT14           # ISSUE AUTO TRACK ENABLE TO RADAR
                EXTEND
## Page 601
                WOR     CHAN12
                CAF     SRCHOBIT        # CHECK IF SEARCH STILL REQUESTED
                MASK    FLAGWRD2        # (SRCHOPT FLAG SET)
                EXTEND
                BZF     ENDOFJOB        # NO-TERMINATE JOB
                

                CAF     6SECONDS        # SCHEDULE TASK TO DRIVE RADAR TO NEXT PT.
                INHINT
                TC      WAITLIST        # IN 6 SECONDS
                EBANK=  LOSCOUNT
                2CADR   CALLDGCH
                
                RELINT
                CS      RADMODES        # IS REMODE IN PROGRESS
                MASK    REMODBIT
                EXTEND
                BZF     ENDOFJOB        # YES- WAIT SIX SECONDS
                TC      INTPRET
                
                RTB     DAD             # COMPUTE LOS AT PRESENT TIME + 1.5 SEC.
                        LOADTIME
                        1.5SECS
LRS24.11        STCALL  TDEC1
                        LEMCONIC        # EXTRAPOLATE LM STATE VECTOR
                VLOAD
                        RATT
                STOVL   RLMSRCH         # SAVE LEM POSITION
                        VATT
                STODL   SAVLEMV         # SAVE LEM VELOCITY
                        TAT
                STCALL  TDEC1           # EXTRAPOLATE CSM STATE VECTOR
                        CSMCONIC        # EXTRAPOLATE CSM STATE VECTOR
                VLOAD   VSU             # LOS VECTOR = R(CSM)-R(LM)
                        RATT
                        RLMSRCH
                UNIT
                STOVL   LOSDESRD        # STORE DESIRED LOS
                        VATT            # COMPUTE UNIT(V(CM) CROSS R(CM))
                UNIT    VXV
                        RATT
                UNIT
                STORE   VXRCM
                VLOAD   VSU
                        VATT
                        SAVLEMV
                MXV     VSL1            # CONVERT FROM REFERENCE TO STABLE MEMBER
                        REFSMMAT
                STORE   SAVLEMV         # VLC = V(CSM) - V(LM)
                SLOAD   BZE             # CHECK IF N=0
## Page 602
                        NSRCHPNT
                        DESGLOS         # YES-DESIGNATE ALONG LOS
                DSU     BZE             # IS N=1
                        ONEOCT          # YES-CALCULATE X AND Y AXES OF
                        CALCXY          # SEARCH PATTERN COORDINATE SYSTEM
                VLOAD                   # NO-ROTATE X-Y AXES TO NEXT SEARCH POINT
                        UXVECT
                STOVL   UXVECTPR        # SAVE ORIGINAL X AND Y VECTORS
                        UYVECT          # UXPRIME = ORIGINAL UX
                STORE   UYVECTPR        # UYPRIME = ORIGINAL UY
                VXSC
                        SIN60DEG        # UX =(COS 60)UXPR +(SIN 60)UYPR
                STOVL   UXVECT
                        UXVECTPR
                VXSC    VAD
                        COS60DEG
                        UXVECT
                UNIT
                STOVL   UXVECT
                        UXVECTPR        # UY=(-SIN60)UXPR +(COS 60)UYPR
                VXSC
                        SIN60DEG
                STOVL   UYVECT
                        UYVECTPR
                VXSC    VSU
                        COS60DEG
                        UYVECT
                UNIT
                STORE   UYVECT
OFFCALC         VXSC    VAD             # OFFSET VECTOR = K(UY)
                        OFFSTFAC        # LOS VECTOR + OFFSET VECTOR DEFINES
                        LOSDESRD        # DESIRED POINT IN SEARCH PATTERN
                UNIT    MXV
                        REFSMMAT        # CONVERT TO STABLE MEMBER COORDINATES
                VSL1
CONTDESG        STOVL   RRTARGET
                        SAVLEMV
                STORE   LOSVEL
                EXIT
                INHINT
                TC      KILLTASK        # KILL ANY PRESENTLY WAITLISTED TASK
                CADR    DESLOOP +2      # WHICH WOULD DESIGNATE TO THE LAST
                                        # POINT IN THE PATTERN
CONTDES2        CS      CDESBIT
                MASK    RADMODES        # SET BIT 15 OF RADMODES TO INDICATE
                AD      CDESBIT         # A CONTINUOUS DESIGNATE WANTED.
                TS      RADMODES
                TC      INTPRET
                
                CALL
## Page 603
                        RRDESSM         # DESIGNATE RADAR TO RRTARGET VECTOR
                        
                EXIT
                TC      LIMALARM        # LOS NOT IN MODE 2 COVERAGE (P22)
                TC      LIMALARM        # VEHICLE MANEUVER REQUIRED (P20)
                

                                        # COMPUTE OMEGA,ANGLE  BETWEEN RR LOS AND
                                        # SPACECRAFT +Z AXIS
OMEGCALC        EXTEND
                DCA     CDUT
                DXCH    TANGNB
                TC      INTPRET
                CALL
                        RRNB
                DLOAD   ACOS            # OMEGA IS ARCCOSINE OF Z-COMPONENT OF
                        36D             # VECTOR COMPUTED BY RRNB (LEFT AT 32D)
                STORE   OMEGDISP        # STORE FOR DISPLAY IN R2
                EXIT
                TC      ENDOFJOB

## Page 604
# CALCULATE X AND Y VECTORS FOR SEARCH PATTERN COORDINATE SYSTEM


CALCXY          VLOAD   VXV
                        VXRCM
                        LOSDESRD
                UNIT
                STOVL   UXVECT          # UX = (VLM X RLM)X LOS
                        LOSDESRD
                VXV     UNIT
                        UXVECT
                STORE   UYVECT          # UY = LOS X UX
                GOTO    
                        OFFCALC
                        

DESGLOS         VLOAD   MXV             # WHEN N= 0,DESIGNATE ALONG LOS
                        LOSDESRD
                        REFSMMAT        # CONVERT LOS FROM REFERENCE TO SM COORDS
                VSL1    GOTO
                        CONTDESG
                        

CALLDGCH        CAE     FLAGWRD0        # IS RENDEZVOUS FLAG SET
                MASK    RNDVZBIT
                EXTEND
                BZF     TASKOVER        # NO-EXIT R24
                CAF     PRIO25          # YES -SCHEDULE JOB TO DRIVE RADAR TO NEXT
                TC      FINDVAC         # POINT IN SEARCH PATTERN
                EBANK=  RLMSRCH
                2CADR   DATGDCHK
                
                TC      TASKOVER

                
DATGDCHK        CAF     BIT4
                EXTEND                  # CHECK IF DATA GOOD DISCRETE PRESENT
                RAND    CHAN33
                EXTEND
                BZF     STORE1S         # YES- GO TO STORE 11111 FOR DISPLAY IN R1
                CS      SIX
                AD      NSRCHPNT        # IS N GREATER THAN 6
                EXTEND
                BZF     LRS24.1         # YES - RESET N = 0 AND START AROUND AGAIN
                INCR    NSRCHPNT        # NO-SET N = N+1 AN GO TO
                TCF     CHKSRCH         # NEXT POINT IN PATTERN
                

STORE1S         CAF     ALL1S           # STORE 11111 FOR DISPLAY IN R1
                TS      DATAGOOD
## Page 605
                INHINT
                TC      KILLTASK        # DELETE DESIGNATE TASK FROM
                CADR    DESLOOP +2      # WAITLIST USING KILLTASK
                TC      ENDOFJOB
                
LIMALARM        TC      ALARM           # ISSUE ALARM 527-LOS NOT IN MODE2
                OCT     527             # COVERAGE IN P22 OR VEHICLE MANEUVER
                INHINT                  # REQUIRED IN P20
                TC      KILLTASK        # KILL WAITLIST CALL FOR NEXT
                CADR    CALLDGCH        # POINT IN SEARCH PATTERN
                TC      ENDOFJOB

                
ALL1S           DEC     11111
SIN60DEG        2DEC    .86603

COS60DEG        =       DPHALF          # (2DEC   .50)
UXVECTPR        EQUALS  12D             # PREVIOUS
UYVECTPR        EQUALS  18D
RLMUNIT         EQUALS  12D
OFFSTFAC        2DEC    0.05678         # TANGENT OF 3.25 DEGREES

ONEOCT          OCT     00001           # **** NOTE-THESE TWO CONSTANTS MUST ****
3SECONDS        2DEC    300             # **** BE IN THIS ORDER BECAUSE      ****

                                        # **** ONEOCT NEEDS A LOWER ORDER    ****
                                        # **** WORD OF ZEROES                ****
6SECONDS        DEC     600
1.5SECS         2DEC    150

ZERO/SP         EQUALS  HI6ZEROS
                BLOCK   02
                SETLOC  FFTAG5
                BANK
                COUNT*  $$/P20
GOTOV56         EXTEND                  # P20 TERMINATES BY GOTOV56 INSTEAD OF
                DCA     VB56CADR        # GOTOPOOH
                TCF     SUPDXCHZ
                EBANK=  WHOCARES
VB56CADR        2CADR   TRMTRACK

## Page 606
# W-MATRIX MONITOR

                BANK    31
                SETLOC  VB67
                BANK
                COUNT*  $$/EXTVB
                
                EBANK=  WWPOS
                
V67CALL         TC      INTPRET
                CALL
                        V67WW
                EXIT
                EXTEND                  # SAVE THE PRESENT N99 VALUES FOR
                DCA     WWPOS           # COMPARISON AFTER THE DISPLAY
                DXCH    WWBIAS +2
                EXTEND
                DCA     WWVEL
                DXCH    WWBIAS +4
                EXTEND
                DCA     WWBIAS
                DXCH    WWBIAS +6
V06N99DS        CAF     V06N99
                TC      BANKCALL
                CADR    GOXDSPF
                TCF     ENDEXT
                TCF     V6N99PRO
                TCF     V06N99DS
V6N99PRO        ZL
                CA      FIVE
N99LOOP         TS      Q
                INDEX   Q
                CS      WWPOS
                INDEX   Q
                AD      WWPOS +6
                ADS     L
                CCS     Q               # THE SUM OF ALL DIFFERENCES MUST BE ZERO.
                TCF     N99LOOP
                LXCH    A
                EXTEND
                BZF     V06N9933
                TC      UPFLAG
                ADRES   V67FLAG
                
V06N9933        TC      INTPRET
                BON     EXIT
                        V67FLAG
                        +2
                TCF     ENDEXT
                DLOAD
## Page 607
                        WWPOS
                SL4     SL1
                STODL   0D
                        WWVEL
                STODL   2D
                        WWBIAS
                SL                      # SHIFT FROM NOUN SCALING (B-5) TO
                        10D             # INTERNAL SCALING (B+5)
                STORE   4D
                BON     LXA,1
                        SURFFLAG
                        V67SURF
                        0D
                SXA,1   LXA,1
                        WRENDPOS
                        2D
                SXA,1   GOTO
                        WRENDVEL
                        V67CLRF
V67SURF         LXA,1   SXA,1
                        0D
                        WSURFPOS
                LXA,1   SXA,1
                        2D
                        WSURFVEL
V67CLRF         LXA,1   SXA,1
                        4D
                        WTRUN
                SXA,1
                        WSHAFT
                CLEAR   EXIT
                        RENDWFLG
                TCF     ENDEXT
V67WW           STQ     BOV
                        S2
                        +1
                CLEAR   CALL
                        V67FLAG
                        INTSTALL
                SSP     DLOAD
                        S1
                DEC     6
                        ZEROVECS
                STORE   WWPOS
                STORE   WWVEL
                STORE   WWBIAS
                AXT,1
                DEC     54
NXPOSVEL        VLOAD*  VSQ
                        W +54D,1
## Page 608
                GOTO
                        ADDPOS
V06N99          VN      0699

                SETLOC  VB67A
                BANK
                COUNT*  $$/EXTVB
                
ADDPOS          DAD
                        WWPOS
                STORE   WWPOS
                VLOAD*  VSQ
                        W +108D,1
                DAD
                        WWVEL
                STORE   WWVEL
                VLOAD*  VSQ
                        W +162D,1
                DAD
                        WWBIAS
                STORE   WWBIAS
                TIX,1   SQRT
                        NXPOSVEL
                SR                      # SHIFT FROM INTERNAL SCALING (B+5) TO
                        10D             # NOUN SCALING (B-5)
                STODL   WWBIAS
                        WWVEL
                SQRT
                STODL   WWVEL
                        WWPOS
                SQRT
                STORE   WWPOS
                BOV     GOTO
                        +2
                        V67XXX
                DLOAD
                        DPPOSMAX
                STORE   WWPOS
                STORE   WWVEL
                STORE   WWBIAS
V67XXX          DLOAD   DSU
                        WWPOS
                        FT99999
                BMN     DLOAD
                        +3
                        FT99999
                STORE   WWPOS
                LXA,1   SXA,1
                        S2
                        QPRET
## Page 609
                EXIT
                TC      POSTJUMP
                CADR    INTWAKE

FT99999         2DEC    30479 B-19

## Page 610
                BANK    25
                SETLOC  RADARUPT
                BANK
                COUNT*  $$/RRUPT
                
                EBANK=  LOSCOUNT
                
RADLITES        CS      BIT5
                AD      ITEMP1
                CCS     A
                CS      ONE
                TCF     VLIGHT
                
                TCF     RRTRKF
                
HLIGHT          TS      ITEMP5          # ZERO ITEMP5 FOR H INDEX

                CA      HLITE
                TS      L
                
                CA      LRALTBIT
BOTHLITS        MASK    RADMODES
                CCS     A
                TCF     ONLITES
                
                CA      FLGWRD11
                INDEX   ITEMP5
                MASK    HFLSHBIT
                CCS     A
                TCF     RRTRKF
                
LITIT           EXTEND
                QXCH    ITEMP6
                TC      TRKFLON +1
                
                TC      ITEMP6

ONLITES         INDEX   ITEMP5
                CS      HFLSHBIT
                MASK    FLGWRD11
                TS      FLGWRD11
                
                CA      L
                TCF     LITIT
VLIGHT          TS      ITEMP5
                CA      VLITE
                TS      L
                CA      BIT8
                TCF     BOTHLITS
                
## Page 611
HLITE           EQUALS  BIT5
VLITE           EQUALS  BIT3
back to top