Raw File
SPS_BACK-UP_RCS_CONTROL.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    SPS_BACK-UP_RCS_CONTROL.agc
## Purpose:     The main source file for Luminary revision 069.
##              It is part of the source code for the original release
##              of the flight software for the Lunar Module's (LM) Apollo
##              Guidance Computer (AGC) for Apollo 10. The actual flown
##              version was Luminary 69 revision 2, which included a
##              newer lunar gravity model and only affected module 2.
##              This file is intended to be a faithful transcription, except
##              that the code format has been changed to conform to the
##              requirements of the yaYUL assembler rather than the
##              original YUL assembler.
## Reference:   pp. 1500-1502
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2016-12-13 MAS  Created from Luminary 99.
##              2016-12-18 MAS  Updated from comment-proofed Luminary 99 version.
##              2017-01-22 HG   Transcribed
##		2017-01-28 RSB	Proofed comment text using octopus/prooferComments
##				and fixed errors found.

## Page 1500
# PROGRAM NAME:  SPSRCS

# AUTHOR:  EDGAR M. OSHIKA (AC ELECTRONICS)

# MODIFIED:  TO RETURN TO ALL AXES VIA Q BY P. S. WEISSMAN, OCT 7, 1968

# FUNCTIONAL DESCRIPTION:

# THIS PROGRAM CONTROLS THE FIRING OF ALL RCS JETS IN THE DOCKED CONFIGURATION ACCORDING TO THE FOLLOWING PHASE
# PLANE LOGIC.

# 1.  OUTER RATE LIMIT (SPSRCS)

# IF MAGNITUDE OF EDOT IS GREATER THAN 1.73 DEG/SEC SET JET FIRING TIME, TJ, TO REDUCE RATE AND THEN RETURN TO
# CALLING PROGRAM (REQUESTING 4 JETS FOR P-AXIS).
# OTHERWISE, CONTINUE.

# 2.  RATE DEAD BAND TEST ( JTONTEST)

# IF JETS ARE FIRING NEGATIVE AND RATE IS GREATER THAN -0.101 DEG/SEC, LEAVE JETS ON AND RETURN,
# IF JETS ARE FIRING POSITIVE AND RATE IS LESS THAN +0.101 DEG/SEC, LEAVE JETS ON AND RETURN, OTHERWISE CONTINUE.

# 3.  COASTING TEST (SPSSTART)

# IF STATE (E,EDOT) IS BELOW LINE  E + 4 X EDOT > -1.4 DEG  AND EDOT IS LESS THAN 1.30 DEG/SEC SET JET TIME POSI-
# TIVE AND RETURN,
# IF STATE IS ABOVE LINE E + 4 X EDOT > +1.4 DEG AND EDOT IS GREATER THAN -1.30 DEG/SEC, SET JET TIME NEGATIVE
# AND RETURN,
# OTHERWISE, SET JET TIME ZERO AND RETURN.

# THE MINIMUM PULSE WIDTH OF THIS CONTROLLER IS DETERMINED BY THE REPETITION  RATE AT WHICH THIS ROUTINE IS CALLED
# AND IS NOMINALLY 100 MS FOR ALL AXES IN DRIFTING FLIGHT.   DURING POWERED FLIGHT THE MINIMUM IS 100 MS FOR THE
# P AXIS AND 200 MS FOR THE CONTROL OF THE U AND V AXES.

# CALLING SEQUENCE:

#          TC     SPSRCS          FROM Q,R AXES RCS AUTOPILOT
#                     INHINT                  FROM P-AXIS RCS AUTOPILOT
#                     TC      IBNKCALL
#                     CADR    SPSRCS


# EXIT:

#          TC     Q
# ALARM/ABORT MODE:    NONE

# SUBROUTINES CALLED:    NONE

# INPUT:      E, EDOT

## Page 1501
#            TJP, TJV, TJU           TJ MUST NOT BE NEGATIVE ZERO

# OUTPUT:    TJP, TJV, TJU
#            NUMBERT = 6,            WHEN RATE LIMITING P AXIS.


                BANK            17
                SETLOC          DAPS2
                BANK

                COUNT*          $$/DAPBU

                EBANK=          TJU
SPSRCS          CA              EDOT
                EXTEND
                MP              RATELIM1                # OUTER RATE LIMIT = 1.73 DEG/SEC
                EXTEND
                BZF             JTONTEST

                TS              L
                CA              SIX
                TS              NUMBERT
                CCS             L
                TCF             NEGTHRST
                TC              CCSHOLE                 # **TEMP ** FILL WITH A CONSTANT
RATELIM2        =               .1AT4                   # = OCT 00632,  1.125 DEG/SEC
POSTHRST        CA              HALF

                NDX             AXISCTR
                TS              TJU
                TC              Q

JTONTEST        NDX             AXISCTR
                CCS             TJU
                TCF             +4
                TCF             SPSSTART
                CA              EDOT
                TCF             +2

 +4             CS              EDOT
                LXCH            A
                CS              DAPBOOLS                # IF DRIFTBIT = 1, USE ZERO TARGET RATE
                MASK            DRIFTBIT                # IF DRIFTBIT = 0, USE 0.10 RATE TARGET
                CCS             A
                CA              RATEDB1
                AD              L
                EXTEND
                BZMF            +2
                TCF             POSTHRST        +3

## Page 1502
SPSSTART        CA              EDOT
                AD              E
                EXTEND
                MP              DKDB                    # PAD LOADED DEADBAND. FRESHSTART: 1.4 DEG
                EXTEND
                BZF             TJZERO

                EXTEND
                BZMF            +7
                CA              EDOT
                AD              RATELIM2
                EXTEND
                BZMF            TJZERO
NEGTHRST        CS              HALF
                TCF             POSTHRST        +1
 +7             CS              RATELIM2
                AD              EDOT
                EXTEND
                BZMF            POSTHRST
TJZERO          CA              ZERO
                TCF             POSTHRST        +1


RATELIM1        =               CALLCODE                # = 00032, CORRESPONDING TO 1.73 DEG/SEC
RATEDB1         =               TBUILDFX                #  = 00045, CORRESPONDS TO 0.101 DEG/SEC
back to top