swh:1:snp:cdcd2bc43331a436e8c659ba93175ef7d7eb339b
Tip revision: 4e5d304eb7cd5589b924ffb8b423b6f15511b35d authored by Ron Burkey on 20 October 2018, 17:47:00 UTC
The sample Block I AGC program TRIVIUM, found at the very end of one of
The sample Block I AGC program TRIVIUM, found at the very end of one of
Tip revision: 4e5d304
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.
## 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