https://github.com/virtualagc/virtualagc
Revision 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC, committed by Ron Burkey on 07 August 2022, 15:04:04 UTC
assembly listings from yaASM and yaLEMAP. Added some debugging messages
to 'make install'.  Tweaked debugging messages that VirtualAGC embeds in
'simulate'.  Verified buildability in Mint 21, 20, 19, 17, and verified
buildability using clang in Mint 17.
1 parent 6bb1acc
Raw File
Tip revision: 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
KALMAN_FILTER_FOR_LEM_DAP.agc
### FILE="Main.annotation"
## Copyright:    Public domain.
## Filename:     KALMAN_FILTER_FOR_LEM_DAP.agc
## Purpose:      Part of the source code for Aurora (revision 12).
## Assembler:    yaYUL
## Contact:      Ron Burkey <info@sandroid.org>.
## Website:      https://www.ibiblio.org/apollo.
## Pages:        0604-0614
## Mod history:  2016-09-20 JL   Created.
##		 2016-09-26 OH	Initial Transcription
##               2016-10-04 HG   Add missed statements on page 607, added missing ## coments for page numbers
##                               M520F->MS20F, READ +4 -> READ 4
##               2016-10-15 HG   Fix operand   D2CDU2FL -> D2CDUZFL  
##                                             FLTAXIS  -> FLTYAXIS      
##                                             MS2OF    -> MS20F  
##                               fix label     FILTSTART -> FILSTART
## 
##		 2016-12-08 RSB	 Proofed comments with octopus/ProoferComments
##				 and fixed the errors found.
##		 2021-05-21 ABS	 Removed space in numeric subfield to match scans.

## This source code has been transcribed or otherwise adapted from
## digitized images of a hardcopy from the private collection of
## Don Eyles.  The digitization was performed by archive.org.

## Notations on the hardcopy document read, in part:

##       473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP
##       NOV 10, 1966

##       [Note that this is the date the hardcopy was made, not the
##       date of the program revision or the assembly.]

## The scan images (with suitable reduction in storage size and consequent
## reduction in image quality) are available online at
##       https://www.ibiblio.org/apollo.
## The original high-quality digital images are available at archive.org:
##       https://archive.org/details/aurora00dapg

## Page 0604

# THE FOLLOWING T5RUPT ENTRY BEGINS THE PROGRAM WHICH INITIALIZES THE KALMAN FILTER AND SETS UP A P-AXIS RUPT TO
# OCCUR 20 MS FROM ITS BEGINNING.

                BANK    26

FILTINIT        CAF     MS20F           # RESET TIMER IMMEDIATELY: DT = 20 MS
                TS      TIME5

                LXCH    BANKRUPT        # INTERRUPT LEAD IN (CONTINUED)
                EXTEND
                QXCH    QRUPT

                EXTEND                  # SET UP FOR P-AXIS RUPT
                DCA     PAX/FILT
                DXCH    T5ADR

                CAF     FIRSTADR        # SET UP TO AVOID DT CALCULATION DURING
                TS      STEERADR        # KALMAN FILTER INITIALIZATION PASS


                TCF     FILSTART

FIRSTADR        GENADR  FILFIRST

# THE FOLLOWING T5RUPT ENTRY BEGINS THE KALMAN FILTER PROGRAM.  THIS SECTION ALSO SETS UP A T5RUPT TO OCCUR 20 MS
# FROM ITS BEGINNING AND SETS IT TO GO TO THE LOCATION AT THE TOP OF THE POST FILTER RUPT LIST.

MOSTPASS        GENADR  DTCALC          # WORD IN FILTPASS FOR THESE PASSES

FILTER          CAF     MS20F           # RESET TIMER IMMEDIATELY: DT = 20 MS
                TS      TIME5

                LXCH    BANKRUPT        # INTERRUPT LEAD IN (CONTINUED)
                EXTEND
                QXCH    QRUPT

                EXTEND                  # SET RUPT ADDRESS TO TOP OF
                DCA      PFRPTLST       # POST FILTER RUPT LIST
                DXCH     T5ADR
                
                DXCH     PFRPTLST       # ROTATE 2CADR'S IN POST FILTER RUPT LIST
                DXCH     PFRPTLST +6
                DXCH     PFRPTLST +4
                DXCH     PFRPTLST +2
                DXCH     PFRPTLST

# BEGIN THE KALMAN FILTER BY READING CDU ANGLES AND TIME.

FILSTART        TC      T6JOBCHK        # CHECK T6 CLOCK FOR P-AXIS ACTIVITY

## Page 0605
                EXTEND
                DCA     CDUY            # STORE CDUY AND CDUZ AT PI AND IN 2.5 COM
                DXCH    STORCDUY
                EXTEND                  # BEGIN READING THE CLOCK TO GET TIME
                READ    4               #   INCREMENT.
                TS      L
                EXTEND
                RXOR    4               # CHECK TO SEE IF CH 4 WAS IN TRANSITION
                EXTEND                  #   WHEN IT WAS FIRST READ.
                BZF     +4              # BRANCH IF TIME WAS THE SAME IN 2 READS.
                EXTEND
                READ    4
                TS      L               # THIS TIME READ ALWAYS GIVES GOOD NO.
                TC      STEERADR        # SKIP DTCALC DURING INITIAL PASS

DTCALC          CS      L
                AD      DAPTIME         # A CONTAINS THE TIME DIFFERENCE (DT)
                LXCH    DAPTIME         #   SINCE THE LAST FILTER.
                EXTEND
                BZMF    +3
                AD      NEG1/2          # THIS IS ADDING -1.0 TO -DT AND ACCOUNTS
                AD      NEG1/2          # FOR AN OVERFLOW INTO CHANNEL 5

#  SCALING OF DELTA T FOR KALMAN FILTER IS 1/8 SECOND.
                EXTEND                  # TIME NOW SCALED AT 5.12 SECONDS
                MP      BIT7            # FIRST RESCALE TO 5.12/64
                CS      .64
                EXTEND                  # THEN RESCALE TO 5.12/(64*.64) OR
                MP      L               # 5.12/40.96 WHICH IS THE SAME AS
                TS      DT              # DT SCALED AT 1/8

# SET UP FILTER WEIGHTING VECTOR FOR THIS FILTER PASS.

                CCS     WPOINTER        # TEST FOR WEIGHTING VECTOR STEADY-STATE
                TCF     MOVEWGTS        # POINTER NOT YET ZERO (MULTIPLE OF THREE)
PAX/FILT        2CADR   PAXIS           # (ROOM FOR 2CADR IN CCS HOLES)

                TCF     FLTZAXIS        # STEADY-STATE ALREADY, NO UPDATING AGAIN

MOVEWGTS        CS      THREE           # SET UP POINTER FOR THIS PASS
                ADS     WPOINTER        # (NEVER GETS BELOW ZERO HERE)

                EXTEND                  # WPOINTER IS INDEX = 87 FIRST TIME HERE
                INDEX   WPOINTER        # AND IS DECREASED BY 3 EVERY FILTER PASS
                DCA     WVECTOR         # UNTIL THE STEADY-STATE IS REACHED.
                DXCH    W0              # MOVE IN NEW W0,W1
                INDEX   WPOINTER
                CAF     WVECTOR +2
                TS      W2              # MOVE IN NEW W2

## Page 0606

FLTZAXIS        CAF     TWO             # SET UP INDEXER FOR D.P. PICKUP AND TO
                TS      QRCNTR          # INDICATE Z-AXIS FILTER PASS

                TCF     FLTYAXIS

GOYFILTR        CAF     ZERO            # SET INDEXER FOR Y-AXIS
                TS      QRCNTR

                TC      T6JOBCHK        # CHECK T6 CLOCK FOR P-AXIS ACTIVITY

FLTYAXIS        INDEX   QRCNTR
                DXCH    CDUYFIL         # THETA IS D.P. SCALED AT 2 PI RADIANS
                DXCH    CDU
                INDEX   QRCNTR          #   .
                DXCH    DCDUYFIL        # THETA IS D.P. SCALED AT PI/4 RAD/SEC
                DXCH    CDUDOT
                INDEX   QRCNTR          #  ..                                 2
                DXCH    D2CDUYFL        # THETA IS D.P. SCALED AT PI/8 RAD/SEC
                DXCH    CDU2DOT
                INDEX   QRCNTR          #  ...                        7       3
                CAE     Y3DOT           # THETA IS S.P. SCALED AT PI/2 RAD/SEC
                XCH     CDU3DOT

# NOTE THAT THE FILTERED VARIABLES ARE READ DESTRUCTIVELY FOR SPEED AND EFFICIENCY AND THAT Y3DOT IS NOT UPDATED.
# SO IT MUST BE READ NON-DESTRUCTIVELY BUT NEED NOT BE RESTORED AFTER EACH KALMAN FILTER PASS.

## Page 0607
# INTEGRATION EXTRAPOLATION EQUATIONS:

KLMNFLTR        CAE     CDU2DOT         # A SCALED AT PI/8 (USE S.P.)
                EXTEND
                MP      DT              # ADT SCALED AT PI/64 OR .5ADT AT PI/128
                EXTEND
                MP      BIT10           # RESCALE BY RIGHT SHIFT 5
                AD      CDUDOT          # W + .5ADT SCALED AT PI/4
                EXTEND
                MP      DT              # (W + .5ADT)DT SCALED AT PI/32
                EXTEND
                MP      BIT9            # RESCALE BY RIGHT SHIFT 6 (KEEP D.P.)
                DAS     CDU             # CDU = CDU + (W + .5ADT)DT SCALED AT 2PI

                CAE     CDU3DOT         # ADOT SCALED AT PI/2(7)
                EXTEND
                MP      DT              # .5ADOTDT SCALED AT PI/2(11)
                TS      ITEMP5          # (SAVE FOR ALPHA INTEGRATION)
                EXTEND
                MP      BIT7            # RESCALE BY RIGHT SHIFT 8
                AD      CDU2DOT         # A + .5ADOTDT SCALED AT PI/8
                EXTEND
                MP      DT		# *A + .5ADOTDT)DT SCALED AT PI/64
                EXTEND
                MP      BIT11           # RESCALE BY RIGHT SHIFT 4 (KEEP D.P.)
                DAS     CDUDOT          # W = W + (A + .5ADOTDT)DT SCALED AT PI/4

                CAE     ITEMP5          # ADOTDT SCALED AT PI/2(10) (FROM ABOVE)
                EXTEND
                MP      BIT8            # RESCALE BY RIGHT SHIFT 7 (KEEP D.P.)
                DAS     CDU2DOT         # A = A + ADOTDT SCALED AT PI/8

## Page 0608

# WEIGHTING VECTOR ADJUSTMENT EQUATIONS:
                EXTEND                  # CONVERT CDU INTEGRATED VALUE FROM DOUBLE
                DCA     CDU             # PRECISION SCALED AT 2PI IN ONES COMPLE-
                TC      ONETOTWO        # MENT TO SINGLE PRECISION SCALED AT PI
                CAE     STORCDUZ        # IN TWOS COMPLEMENT, THEN DIFFERENCE WITH
                EXTEND                  # STORED CDU REGISTER READING TO GET A
                MSU     ITEMP5          # SINGLE PRECISION ONES COMPLEMENT RESULT
                TS      DPDIFF          # SCALED AT PI RADIANS (UPPER HALF)

                CS      CDU +1          # CREATE LOW ORDER WORD OF D.P. DIFFERENCE
                DOUBLE                  # ONES COMPLEMENT SCALED AT PI RADIANS AND
                XCH     DPDIFF +1       # USE S.P. RESULT ABOVE AS HIGH ORDER WORD

                EXTEND                  # RESCALE DPDIFF TO PI
                DCA     DPDIFF
                DDOUBL
                LXCH    ITEMP5          # SAVE LOW ORDER WORD FOR D.P. MULTIPLY
                EXTEND
                MP      W0              # CDU = CDU + DPDIFF (D.P.) * W0 (S.P.)
                DAS     CDU
                CAE     ITEMP5          # W0 IS SCALED AT 2
                EXTEND                  # DPDIFF IS RESCALED TO PI
                MP      W0              # W0*DPDIFF IS SCALED AT 2PI (AS CDU)
                ADS     CDU +1
                TS      L
                TCF      +2
                ADS     CDU

                CAE     DPDIFF          # RESCALE DPDIFF TO PI/128
                EXTEND
                MP      BIT9            # DPDIFF (D.P.) * 256
                LXCH    ITEMP5
                CAE     DPDIFF +1
                EXTEND
                MP      BIT9
                AD      ITEMP5
                LXCH    ITEMP5

                EXTEND                  #  .     .
                MP      W1              # CDU = CDU + DPDIFF (D.P.) * W1 (S.P.)
                DAS     CDUDOT
                CAE     ITEMP5          # W1 IS SCALED AT 32
                EXTEND                  # DPDIFF IS RESCALED TO PI/128
                MP      W1              # W1*DPDIFF IS SCALED AT PI/4 (AS CDUDOT)
                ADS     CDUDOT +1
                TS      L
                TCF      +2
                ADS     CDUDOT

## Page 0609
                CAE     DPDIFF          # RESCALE DPDIFF TO PI/64
                EXTEND
                MP      BIT8            # DPDIFF (D.P.) * 128
                LXCH    ITEMP5
                CAE     DPDIFF +1
                EXTEND
                MP      BIT8
                AD      ITEMP5
                LXCH    ITEMP5

                EXTEND                  #  ..    ..
                MP      W2              # CDU = CDU + DPDIFF (D.P.) * W2 (S.P.)
                DAS     CDU2DOT
                CAE     ITEMP5          # W2 IS SCALED AT 8
                EXTEND
                MP      W2              # W2*DPDIFF IS SCALED AT PI/8 (AS CDU2DOT)
                ADS     CDU2DOT +1
                TS      L
                TCF      +2
                ADS     CDU2DOT

# RESTORE VARIABLES AND TEST FOR COMPLETION OR ADDITIONAL AXIS.

FILTAXIS        DXCH    CDU
                INDEX   QRCNTR          # THETA IS D.P. SCALED AT 2 PI RADIANS
                DXCH    CDUYFIL
                DXCH    CDUDOT          #   .
                INDEX   QRCNTR          # THETA IS D.P. SCALED AT PI/4 RAD/SEC
                DXCH    DCDUYFIL
                DXCH    CDU2DOT         #  ..                                 2
                INDEX   QRCNTR          # THETA IS D.P. SCALED AT PI/8 RAD/SEC
                DXCH    D2CDUYFL

                XCH     STORCDUY        # INTERCHANGE CDU READINGS
                XCH     STORCDUZ
                XCH     STORCDUY

                CCS     ITEMP6          # ITEMP6 IS AXIS INDEXER
                TCF     GOYFILTR        # IF 2, Y-AXIS STILL TO GO

                CS      T5ADR           # IF THE TRIM GIMBAL CONTROL RUPT IS NEXT,
                AD      GTS2CADR        # DO THE Q,R-AXIS STATE TRANSFORMATIONS
                EXTEND                  # AND THE 20 MS STATE EXTRAPOLATION
                BZF     GIMBAL
                TCF     RESUME          # OTHERWISE, RESUME

# SUBROUTINE FOR FILTER WHICH TAKES 1 COMPLEMENT NUMBER INTO A 2 COMP.

ONETOTWO        DDOUBL                  # SEE RTB OP CODES IN BANK 15 FOR NOTES ON
                CCS     A               #   THIS COMPUTATION.

## Page 0610

                AD      ONE
                TCF     +2
                COM
                TS      ITEMP5
                TCF     +4
                INDEX   A
                CAF     LIMITS
                ADS     ITEMP5
                TC      Q               # RETURN

# THIS PROGRAM INITIALIZES THE KALMAN FILTER PROGRAM.

FILFIRST        LXCH    DAPTIME         # INITIALIZE TIME.
                CAF     POINT=90        # INITIALIZE THE WEIGHTING VECTOR POINTER
                TS      WPOINTER
                CAF     MOSTPASS        # SET UP FOR NEXT PASSES
                TS      STEERADR
                EXTEND                  # SET UP POST FILTER RUPT LIST
                DCA     DGTSFADR
                DXCH    PFRPTLST
                EXTEND
                DCA     PAX/FILT
                DXCH    PFRPTLST +2
                EXTEND
                DCA     PAX/FILT
                DXCH    PFRPTLST +6
                EXTEND
                DCA     GTS2CADR
                DXCH    PFRPTLST +4
                EXTEND                  # CHANGE POST P FILTER TO FILTER
                DCA     POSTPFIL
                DXCH    PFILTADR

                CAE     STORCDUY
                EXTEND
                MP      BIT14
                DXCH    CDUYFIL         # INITIALIZE THE STATE VECTOR TO CDU VALUE
                CAE     STORCDUZ
                EXTEND
                MP      BIT14
                DXCH    CDUZFIL
                CA      ZERO
                TS      DCDUYFIL        # INITIALIZE THE DERIVATIVES OF THE STATE
                TS      DCDUYFIL +1
                TS      DCDUZFIL
                TS      DCDUZFIL +1
                TS      D2CDUYFL
                TS      D2CDUYFL +1
                TS      D2CDUZFL
                TS      D2CDUZFL +1

## Page 0611

                TS      Y3DOT
                TS      Z3DOT
                TS      NEGUQ
                TS      NEGUR
                TCF     RESUME



.64             DEC     0.64000
BIT12-13        OCTAL   14000
POINT=90        DEC     90              # POINTER INITIALIZED ONE GROUP PAST END
MS20F           OCTAL   37776
MS30F           OCTAL   37775
DGTSFADR        2CADR   DGTS

PAXISADR        GENADR  PAXIS
GTS2CADR        2CADR   GTS

POSTPFIL        2CADR   FILTER

## Page 0612

# THE KALMAN FILTER WEIGHTINF VECTORS ARE LISTED IN THE FOLLOWING TABLE ALONG WITH THE TIME FROM THE LAST FILTER
# INITIALIZATION FOR WHICH THEY ARE TO BE USED. (THE VECTORS ARE STORED IN ORDERED TRIPLES (W0,W1,W2) IN
# DESCENDING ORDER IN TIME WITH THE STEADY STATE VALUES AT THE TOP.)
#
# THE COMPONENTS ARE SCALED AS FOLLOWS:
#            W0 : SCALED AT  2
#            W1 : SCALED AT 32
#            W2 : SCALED AT  8

WVECTOR         DEC     0.18608         # W0 FROM RELATIVE TIME 1.5 SECS OR MORE
                DEC     0.02696         # W1 FROM RELATIVE TIME 1.5 SECS OR MORE
                DEC     0.17105         # W2 FROM RELATIVE TIME 1.5 SECS OR MORE
                DEC     0.14358         # W0 AT RELATIVE TIME = 1.45 SECONDS
                DEC     0.02890         # W1 AT RELATIVE TIME = 1.45 SECONDS
                DEC     0.17727         # W2 AT RELATIVE TIME = 1.45 SECONDS
                DEC     0.14565         # W0 AT RELATIVE TIME = 1.40 SECONDS
                DEC     0.02959         # W1 AT RELATIVE TIME = 1.40 SECONDS
                DEC     0.18129         # W2 AT RELATIVE TIME = 1.40 SECONDS
                DEC     0.14809         # W0 AT RELATIVE TIME = 1.35 SECONDS
                DEC     0.30479         # W1 AT RELATIVE TIME = 1.35 SECONDS
                DEC     0.18678         # W2 AT RELATIVE TIME = 1.35 SECONDS
                DEC     0.15090         # W0 AT RELATIVE TIME = 1.30 SECONDS
                DEC     0.03154         # W1 AT RELATIVE TIME = 1.30 SECONDS
                DEC     0.19403         # W2 AT RELATIVE TIME = 1.30 SECONDS
                DEC     0.15409         # W0 AT RELATIVE TIME = 1.25 SECONDS
                DEC     0.03283         # W1 AT RELATIVE TIME = 1.25 SECONDS
                DEC     0.20340         # W2 AT RELATIVE TIME = 1.25 SECONDS
                DEC     0.15767         # W0 AT RELATIVE TIME = 1.20 SECONDS
                DEC     0.03437         # W1 AT RELATIVE TIME = 1.20 SECONDS
                DEC     0.21525         # W2 AT RELATIVE TIME = 1.20 SECONDS
                DEC     0.16163         # W0 AT RELATIVE TIME = 1.15 SECONDS
                DEC     0.03616         # W1 AT RELATIVE TIME = 1.15 SECONDS
                DEC     0.23000         # W2 AT RELATIVE TIME = 1.15 SECONDS
                DEC     0.16595         # W0 AT RELATIVE TIME = 1.10 SECONDS
                DEC     0.03824         # W1 AT RELATIVE TIME = 1.10 SECONDS
                DEC     0.24814         # W2 AT RELATIVE TIME = 1.10 SECONDS
                DEC     0.17063         # W0 AT RELATIVE TIME = 1.05 SECONDS
                DEC     0.04062         # W1 AT RELATIVE TIME = 1.05 SECONDS
                DEC     0.27018         # W2 AT RELATIVE TIME = 1.05 SECONDS
                DEC     0.17560         # W0 AT RELATIVE TIME = 1.00 SECONDS
                DEC     0.04332         # W1 AT RELATIVE TIME = 1.00 SECONDS
                DEC     0.29668         # W2 AT RELATIVE TIME = 1.00 SECONDS
                DEC     0.18080         # W0 AT RELATIVE TIME = 0.95 SECONDS
                DEC     0.04634         # W1 AT RELATIVE TIME = 0.95 SECONDS
                DEC     0.32824         # W2 AT RELATIVE TIME = 0.95 SECONDS
                DEC     0.18614         # W0 AT RELATIVE TIME = 0.90 SECONDS
                DEC     0.04968         # W1 AT RELATIVE TIME = 0.90 SECONDS
                DEC     0.36531         # W2 AT RELATIVE TIME = 0.90 SECONDS
                DEC     0.19147         # W0 AT RELATIVE TIME = 0.85 SECONDS
                DEC     0.05328         # W1 AT RELATIVE TIME = 0.85 SECONDS

## Page 0613

                DEC     0.40821         # W2 AT RELATIVE TIME = 0.85 SECONDS
                DEC     0.19659         # W0 AT RELATIVE TIME = 0.80 SECONDS
                DEC     0.05707         # W1 AT RELATIVE TIME = 0.80 SECONDS
                DEC     0.45721         # W2 AT RELATIVE TIME = 0.80 SECONDS
                DEC     0.20122         # W0 AT RELATIVE TIME = 0.75 SECONDS
                DEC     0.06089         # W1 AT RELATIVE TIME = 0.75 SECONDS
                DEC     0.50999         # W2 AT RELATIVE TIME = 0.75 SECONDS
                DEC     0.20505         # W0 AT RELATIVE TIME = 0.70 SECONDS
                DEC     0.06451         # W1 AT RELATIVE TIME = 0.70 SECONDS
                DEC     0.56522         # W2 AT RELATIVE TIME = 0.70 SECONDS
                DEC     0.20775         # W0 AT RELATIVE TIME = 0.65 SECONDS
                DEC     0.06759         # W1 AT RELATIVE TIME = 0.65 SECONDS
                DEC     0.61768         # W2 AT RELATIVE TIME = 0.65 SECONDS
                DEC     0.20912         # W0 AT RELATIVE TIME = 0.60 SECONDS
                DEC     0.06972         # W1 AT RELATIVE TIME = 0.60 SECONDS
                DEC     0.65979         # W2 AT RELATIVE TIME = 0.60 SECONDS
                DEC     0.20934         # W0 AT RELATIVE TIME = 0.55 SECONDS
                DEC     0.07062         # W1 AT RELATIVE TIME = 0.55 SECONDS
                DEC     0.68165         # W2 AT RELATIVE TIME = 0.55 SECONDS
                DEC     0.20919         # W0 AT RELATIVE TIME = 0.50 SECONDS
                DEC     0.07028         # W1 AT RELATIVE TIME = 0.50 SECONDS
                DEC     0.67330         # W2 AT RELATIVE TIME = 0.50 SECONDS
                DEC     0.21020         # W0 AT RELATIVE TIME = 0.45 SECONDS
                DEC     0.06931         # W1 AT RELATIVE TIME = 0.45 SECONDS
                DEC     0.62883         # W2 AT RELATIVE TIME = 0.45 SECONDS
                DEC     0.21441         # W0 AT RELATIVE TIME = 0.40 SECONDS
                DEC     0.06908         # W1 AT RELATIVE TIME = 0.40 SECONDS
                DEC     0.55030         # W2 AT RELATIVE TIME = 0.40 SECONDS
                DEC     0.22391         # W0 AT RELATIVE TIME = 0.35 SECONDS
                DEC     0.07162         # W1 AT RELATIVE TIME = 0.35 SECONDS
                DEC     0.44810         # W2 AT RELATIVE TIME = 0.35 SECONDS
                DEC     0.24049         # W0 AT RELATIVE TIME = 0.30 SECONDS
                DEC     0.07956         # W1 AT RELATIVE TIME = 0.30 SECONDS
                DEC     0.33713         # W2 AT RELATIVE TIME = 0.30 SECONDS
                DEC     0.26566         # W0 AT RELATIVE TIME = 0.25 SECONDS
                DEC     0.09646         # W1 AT RELATIVE TIME = 0.25 SECONDS
                DEC     0.23140         # W2 AT RELATIVE TIME = 0.25 SECONDS
                DEC     0.30123         # W0 AT RELATIVE TIME = 0.20 SECONDS
                DEC     0.12841         # W1 AT RELATIVE TIME = 0.20 SECONDS
                DEC     0.14087         # W2 AT RELATIVE TIME = 0.20 SECONDS
                DEC     0.34996         # W0 AT RELATIVE TIME = 0.15 SECONDS
                DEC     0.18850         # W1 AT RELATIVE TIME = 0.15 SECONDS
                DEC     0.07101         # W2 AT RELATIVE TIME = 0.15 SECONDS
                DEC     0.41554         # W0 AT RELATIVE TIME = 0.10 SECONDS
                DEC     0.31141         # W1 AT RELATIVE TIME = 0.10 SECONDS
                DEC     0.02408         # W2 AT RELATIVE TIME = 0.10 SECONDS
                DEC     0.49561         # W0 AT RELATIVE TIME = 0.05 SECONDS
                DEC     0.61404         # W1 AT RELATIVE TIME = 0.05 SECONDS
                DEC     0.00006         # W2 AT RELATIVE TIME = 0.05 SECONDS

## Page 0614

# DUMMY TRIM GIMBAL RUPT:
DGTS            CAF     MS30F           # RESET TIMER IMMEDIATELY: DT = 30 MS
                TS      TIME5

                LXCH    BANKRUPT        # INTERRUPT LEAD IN (CONTINUED)

                EXTEND                  # SET UP FILTER RUPT
                DCA     POSTPFIL
                DXCH    T5ADR

                TCF     NOQRSM

# DUMMY FILTER RUPT AFTER P-AXIS RUPT:

DUMMYFIL        CAF     MS20F           # RESET TIMER IMMEDIATELY: DT = 20 MS
                TS      TIME5
                LXCH    BANKRUPT        # INTERRUPT LEAD IN (CONTINUED)

                EXTEND                  # SET UP QRAXIS RUPT
                DCA     DFQRAXIS
                DXCH    T5ADR
                TCF     NOQRSM

DFQRAXIS        2CADR   QRAXIS

# DUMMY FILTER RUPT AFTER Q,R=AXES RUPT:

FILDUMMY        CAF     MS20F           # RESET TIMER IMMEDIATELY: DT = 20 MS
                TS      TIME5

                LXCH    BANKRUPT        # INTERRUPT LEAD IN (CONTINUED)

                EXTEND                  # SET UP PAXIS RUPT
                DCA     PAX/FILT
                DXCH    T5ADR
                TCF     RESUME
back to top