SSL LUNAR_LANDING_GUIDANCE_EQUATIONS.agc
Sprache: Apollo
# Copyright: Public domain. # Filename: LUNAR_LANDING_GUIDANCE_EQUATIONS.agc # Purpose: Part of the source code for Luminary 1A build 099. # It is part of the source code for the Lunar Module's (LM) # Apollo Guidance Computer (AGC), for Apollo 11. # Assembler: yaYUL # Contact: HARTMUTH GUTSCHE <hgutsche@xplornet.com>. # Website: www.ibiblio.org/apollo. # Pages: 798-828 # Mod history: 2009-05-23 HG Transcribed from page images. # 2009-06-05 RSB Fixed a goofy thing that was apparently # legal in GAP but not in yaYUL. Eliminated # a couple of lines of code that shouldn't # have survived from Luminary 131 to here. # 2009-06-07 RSB Fixed a typo. # # This source code has been transcribed or otherwise adapted from # digitized images of a hardcopy from the MIT Museum. The digitization # was performed by Paul Fjeld, and arranged for by Deborah Douglas of # the Museum. Many thanks to both. The images (with suitable reduction # in storage size and consequent reduction in image quality as well) are # available online at www.ibiblio.org/apollo. If for some reason you # find that the images are illegible, contact me at info@sandroid.org # about getting access to the (much) higher-quality images which Paul # actually created. # # Notations on the hardcopy document read, in part: # # Assemble revision 001 of AGC program LMY99 by NASA 2021112-061 # 16:27 JULY 14, 1969
# FLIGHT SEQUENCE TABLES ARE ARRANGED BY FUNCTION. THEY ARE REFERENCED USING AS AN INDEX THE REGISTER WCHPHASE: # WCHPHASE = -1 ---> IGNALG # WCHPHASE = 0 ---> BRAKQUAD # WCHPHASE = 1 ---> APPRQUAD # WCHPHASE = 2 ---> VERTICAL
#************************************************************************ # ENTRY POINTS: ?GUIDSUB FOR THE IGNITION ALGORITHM, LUNLAND FOR SERVOUT #************************************************************************
# IGNITION ALGORITHM ENTRY: DELIVERS N PASSES OF QUADRATIC GUIDANCE
?GUIDSUB EXIT CAF TWO # N = 3 TS NGUIDSUB TCF GUILDRET +2
LUNLAND TC PHASCHNG OCT00035# GROUP 5: RETAIN ONLY PIPA TASK TC PHASCHNG OCT05023# GROUP 3: PROTECT GUIDANCE WITH PRIO 21 OCT21000# JUST HIGHER THAN SERVICER'S PRIORITY
# HERE IS THE PHILOSOPHY OF GUILDENSTERN: ON EVERY APPEARANCE OR DISAPPEARANCE OF THE MANUAL THROTTLE # DISCRETE TO SELECT P67 OR P66 RESPECTIVELY: ON EVERY APPEARANCE OF THE ATTITUDE-HOLD DISCRETE TO SELECT P66 # UNLESS THE CURRENT PROGRAM IS P67 IN WHICH CASE THERE IS NO CHANGE
GUILDEN EXTEND# IS UN-AUTO-THROTTLE DISCRETE PRESENT? # STERN # RSB 2009: Not originally a comment. READ CHAN30 MASK BIT5 CCS A TCF STARTP67 # YES
P67NOW? TC CHECKMM # NO: ARE WE IN P67 NOW? DEC67 TCF STABL? # NO
STARTP66 TC FASTCHNG # YES TC NEWMODEX
DEC66 DEC66 EXTEND DCA HDOTDISP # SET DESIRED ALTITUDE RATE = CURRENT DXCH VDGVERT # ALTITUDE RATE.
STRTP66A TC INTPRET SLOADPUSH
PBIASZ SLOADPUSH
PBIASY SLOAD VDEF
PBIASX VXSC SET
BIASFACT
RODFLAG STOVL VBIAS
TEMX
VCOMP STOVL OLDPIPAX
ZEROVECS STODL DELVROD
RODSCALE STODL RODSCAL1
PIPTIME STORE LASTTPIP EXIT CAF ZERO TS FCOLD TS FWEIGHT TS FWEIGHT +1
VRTSTART TS WCHVERT # Page 801 CAF TWO # WCHPHASE = 2 ---> VERTICAL: P65,P66,P67 TS WCHPHOLD TS WCHPHASE TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE TC DOWNFLAG # PERMIT X-AXIS OVERRIDE ADRES XOVINFLG TC DOWNFLAG ADRES REDFLAG TCF VERTGUID
STARTP67 TC NEWMODEX # NO HARM IN "STARTING" P67 OVER AND OVER DEC67# SO NO NEED FOR A FASTCHNG AND NO NEED CAF ZERO # TO SEE IF ALREADY IN P67. TS RODCOUNT CAF TEN TCF VRTSTART
STABL? CAF BIT13 # IS UN-ATTITUDE-HOLD DISCRETE PRESENT? EXTEND
RAND CHAN31 CCS A TCF GUILDRET # YES ALL'S WELL
P66NOW? CS MODREG AD DEC66 EXTEND BZF RESTART?
CA RODCOUNT # NO. HAS THE ROD SWITCH BEEN "CLICKED"? EXTEND BZF GUILDRET # NO. CONTINUE WITH AUTOMATIC LANDING TCF STARTP66 # YES. SWITCH INTO THE ROD MODE.
RESTART? CA FLAGWRD1 # HAS THERE BEEN A RESTART? MASK RODFLBIT EXTEND BZF STRTP66A # YES. REINITIALIZE BUT LEAVE VDGVERT AS # IS.
TCF VERTGUID # NO: CONTINUE WITH R.O.D.
# ******************************************************************************* # INITIALIZATION FOR THIS PASS # *******************************************************************************
COUNT* $$/F2DPS
GUILDRET CAF ZERO TS RODCOUNT
# Page 802
+2EXTEND DCA TPIP DXCH TPIPOLD
TC FASTCHNG
EXTEND DCA PIPTIME1 DXCH TPIP
EXTEND DCA TTF/8 DXCH TTF/8TMP
CCS FLPASS0 TCF TTFINCR
BRSPOT1 INDEX WCHPHASE TCF NEWPHASE
# ****************************************************************** # ROUTINES TO START NEW PHASES # ******************************************************************
STARTP64 TC NEWMODEX DEC64 CA DELTTFAP # AUGMENT TTF/8 ADS TTF/8TMP CA BIT12 # ENABLE RUPT10 EXTEND WOR CHAN13 TC DOWNFLAG # INITIALIZE REDESIGNATION FLAG ADRES REDFLAG
# (CONTINUE TO TTFINCR)
# ********************************************************************************* # INCREMENT TTF/8, UPDATE LAND FOR LUNAR ROTATION, DO OTHER USEFUL THINGS # ********************************************************************************* # # TTFINCR COMPUTATIONS ARE AS FOLLOWS -- # Page 803 # TTF/8 UPDATED FOR TIME SINCE LAST PASS: # TTF/8 = TTF/8 + (TPIP - TPIPOLD)/8 # LANDING SITE VECTOR UPDATED FOR LUNAR ROTATION: # ____ ____ ____ __ # LAND = /LAND/ UNIT(LAND - LAND(TPIP - TPIPOLD) * WM) # SLANT RANGE TO LANDING SITE, FOR DISPLAY: # ____ _ # RANGEDSP = ABVAL(LAND - R)
TTFINCR TC INTPRET DLOAD DSU
TPIP
TPIPOLD
SLR PUSH# SHIFT SCALES DELTA TIME TO 2(17) CSECS 11D VXSC VXV
LAND
WM BVSU RTB
LAND
NORMUNIT VXSC VSL1
/LAND/ STODL LANDTEMP EXIT
DXCH MPAC DAS TTF/8TMP # NOW HAVE INCREMENTED TTF/8 IN TTF/8TMP
TC FASTCHNG
EXTEND DCA TTF/8TMP DXCH TTF/8
EXTEND DCA LANDTEMP DXCH LAND EXTEND DCA LANDTEMP +2 DXCH LAND +2 EXTEND DCA LANDTEMP +4 DXCH LAND +4
# Page 804 TC TDISPSET TC FASTCHNG # SINCE REDESIG MAY CHANGE LANDTEMP
BRSPOT2 INDEX WCHPHASE TCF PREGUIDE
# ********************************************************************* # LANDING SITE PERTURBATION EQUATIONS # *********************************************************************
REDESIG CA FLAGWRD6 # IS REDFLAG SET? MASK REDFLBIT EXTEND BZF RGVGCALC # NO: SKIP REDESIGNATION LOGIC
CA TREDES # YES: HAS TREDES REACHED ZERO? EXTEND BZF RGVGCALC # YES: SKIP REDESIGNATION LOGIC
INHINT CA ELINCR1 TS ELINCR CA AZINCR1 TS AZINCR TC FASTCHNG
CA ZERO TS ELINCR1 TS AZINCR1 TS ELINCR +1 TS AZINCR +1
CA FIXLOC # SET PD TO 0 TS PUSHLOC
TC INTPRET
VLOAD VSU
LAND
R # ____ _
RTB PUSH# PUSH DOWN UNIT (LAND - R)
NORMUNIT
VXV VSL1
YNBPIP # ___ ____ _ VXSC PDDL # PUSH DOWN - ELINCR(YNB * UNIT(LAND - R))
ELINCR
AZINCR VXSC VSU
YNBPIP
VAD PUSH# RESULTING VECTOR IS 1/2 REAL SIZE
# Page 805
DLOAD DSU # MAKE SURE REDESIGNATION IS NOT 0# TOO CLOSE TO THE HORIZON.
DEPRCRIT
BMN DLOAD
REDES1
DEPRCRIT STORE0
REDES1 DLOAD DSU
LAND
R
DDV VXSC 0
VAD UNIT
R VXSC VSL1
/LAND/ STORE LANDTEMP EXIT# LOOKANGL WILL BE COMPUTED AT RGVGCALC
TC FASTCHNG
EXTEND DCA LANDTEMP DXCH LAND EXTEND DCA LANDTEMP +2 DXCH LAND +2 EXTEND DCA LANDTEMP +4 DXCH LAND +4
TCF RGVGCALC
# ********************************************************************* # COMPUTE STATE IN GUIDANCE COORDINATES # ********************************************************************* # # RGVGCALC COMPUTATIONS ARE AS FOLLOWS:-- # VELOCITY RELATIVE TO THE SURFACE: # _______ _ _ __ # ANGTERM = V + R * WM # STATE IN GUIDANCE COORDINATES: # ___ * _ ____ # RGU = CG (R - LAND) # ___ * _ __ _ # VGU = CG (V - WM * R) # Page 806 actually starts one line earlier but that would separate the markers from their variables # # HORIZONTAL VELOCITY FOR DISPLAY # # VHORIZ = 8 ABVAL (0, VG , VG ) # 2 1 # DEPRESSION ANGLE FOR DISPLAY: # _ ____ ______ # LOOKANGL = ARCSIN(UNIT(R - LAND).XMBPIP)
CALCRGVG TC INTPRET # IN IGNALG, COMPUTE V FROM INTEGRATION
VLOAD MXV # OUTPUT AND TRIM CORRECTION TERM
VATT1 # COMPUTED LAST PASS AND LEFT IN UNFC/2
REFSMMAT
VSR1 VAD
UNFC/2 STORE V EXIT
RGVGCALC TC INTPRET # ENTER HERE TO RECOMPUTE RG AND VG
VLOAD VXV
R
WM
VAD VSR2 # RESCALE TO UNITS OF 2(9) M/CS
V STORE ANGTERM
MXV
CG # NO SHIFT SINCE ANGTERM IS DOUBLE SIZED STORE VGU
PDDL VDEF # FORM (0,VG ,VG ) IN UNITS OF 2(10) M/CS
ZEROVECS # 2 1
ABVAL SL3 STOVL VHORIZ # VHORIZ FOR DISPLAY DURING P65.
R # _ ____
VSU PUSH# PUSH DOWN R - LAND
LAND
MXV VSL1
CG STORE RGU
ABVAL STOVL RANGEDSP
RTB DOT # NOW IN MPAC IS SINE(LOOKANGL)/4
NORMUNIT
XNBPIP EXIT
CA FIXLOC # RESET PUSH DOWN POINTER TS PUSHLOC
# Page 807 CA MPAC # COMPUTE LOOKANGLE ITSELF DOUBLE TC BANKCALL CADR SPARCSIN -1 AD1/2DEG EXTEND MP180DEGS TS LOOKANGL # LOOKANGL FOR DISPLAY DURING P64
QUADGUID CS TTF/8 AD LEADTIME # LEADTIME IS A NEGATIVE NUMBER AD POSMAX # SAFEGUARD THE COMPUTATIONS THAT FOLLOW TS L # BY FORCING -TTF*LEADTIME > OR = ZERO CS L AD L
ZL EXTEND
DV TTF/8 TS BUF # - RATIO OF LAG-DIMINISHED TTF TO TTF EXTEND
SQUARE TS BUF +1 AD BUF XCH BUF +1# RATIO SQUARED - RATIO AD BUF +1 TS MPAC # COEFFICIENT FOR VGU TERM AD BUF +1 INDEX FIXLOC TS26D # COEFFICIENT FOR RDG-RGU TERM AD BUF +1 INDEX FIXLOC TS28D # COEFFICIENT FOR VDG TERM AD BUF AD POSMAX # Page 809 AD BUF +1 AD BUF +1 INDEX FIXLOC TS30D # COEFFICIENT FOR ADG TERM
CAF ZERO TS MODE
TC INTPRETX VXSC PDDL
VGU 28D VXSC* PDVL*
VDG,1
RDG,1
VSU V/SC
RGU
TTF/8
VSR2 VXSC 26D
VAD VAD
V/SC VXSC
TTF/8 3/4DP
PDDL VXSC* 30D
ADG,1
VAD
AFCCALC1 VXM VSL1 # VERGUID COMES HERE
CG
PDVL V/SC
GDT/2
GSCALE BVSUSTADR STORE UNFC/2# UNFC/2 NEED NOT BE UNITIZED
ABVAL
AFCCALC2 STODL /AFC/ # MAGNITUDE OF AFC FOR THROTTLE
UNFC/2# VERTICAL COMPONENT
DSQ PDDL
UNFC/2 +2# OUT-OF-PLANE
DSQ PDDL
HIGHESTF
DDV DSQ
MASS # 2 2 2
DSU DSU # AMAXHORIZ = SQRT(ATOTAL - A - A )
BPL DLOAD# 1 0
AFCCALC3
ZEROVECS
AFCCALC3 SQRT DAD
UNFC/2 +4 # Page 810
BPL BDSU
AFCCLEND
UNFC/2 +4 STORE UNFC/2 +4
AFCCLEND EXIT TC FASTCHNG
CA WCHPHASE # PREPARE FOR PHASE SWITCHING LOGIC TS WCHPHOLD INCR FLPASS0 # INCREMENT PASS COUNTER
BRSPOT4 INDEX WCHPHASE TCF AFTRGUID
# *********************************************************************** # ERECT GUIDANCE-STABLE MEMBER TRANSFORMATION MATRIX # ***********************************************************************
CGCALC CAF EBANK5 TSEBANK EBANK= TCGIBRAK EXTEND INDEX WCHPHASE INDEX TARGTDEX DCA TCGFBRAK INCR BBANK INCR BBANK EBANK= TTF/8 AD TTF/8 XCH L AD TTF/8 CCS A CCS L TCF EXTLOGIC TCF EXTLOGIC NOOP
TC INTPRETX
VLOAD UNIT
LAND STODL CG
TTF/8
DMP* VXSC
GAINBRAK,1# NUMERO MYSTERIOSO
ANGTERM
VAD
LAND
VSU RTB
R
NORMUNIT # Page 811
VXV RTB
LAND
NORMUNIT STOVL CG +6# SECOND ROW
CG
VXV VSL1
CG +6 STORE CG +14 EXIT
# (CONTINUE TO EXTLOGIC) # # *********************************************************************** # PREPARE TO EXIT # *********************************************************************** # # DECIDE (1) HOW TO EXIT, AND (2) WHETHER TO SWITCH PHASES #
EXTLOGIC INDEX WCHPHASE # WCHPHASE = 1 APPRQUAD CA TENDBRAK # WCHPHASE = 0 BRAKQUAD AD TTF/8
EXSPOT1 EXTEND INDEX WCHPHASE BZMF WHATEXIT
TC FASTCHNG
CA WCHPHOLD AD ONE TS WCHPHASE CA ZERO TS FLPASS0 # RESET FLPASS0
INDEX WCHPHOLD TCF WHATEXIT
# *********************************************************************** # ROUTINES FOR EXITING FROM LANDING GUIDANCE # *********************************************************************** # # 1. EXGSUB IS THE RETURN WHEN GUIDSUB IS CALLED BY THE IGNITION ALGORITHM. # 2. EXBRAK IN THE EXIT USED DURING THE BRAKING PHASE. IN THIS CASE UNIT(R) IS THE WINDOW POINTING VECTOR. # 3. EXNORM IS THE EXIT USED AT OTHER TIMES DURING THE BURN. # (EXOVFLOW IS A SUBROUTINE OF EXBRAK AND EXNORM CALLED WHEN OVERFLOW OCCURRED ANYWHERE IN GUIDANCE.)
EXBRAK TC INTPRET
VLOAD
UNIT/R/ STORE UNWC/2 EXIT TCF STEER?
EXNORM TC INTPRET
VLOAD VSU
LAND
R
RTB
NORMUNIT STORE UNWC/2# UNIT(LAND - R) IS TENTATIVE CHOICE
VXV DOT
XNBPIP
CG +6 EXIT# WITH PROJ IN MPAC 1/8 REAL SIZE
CS MPAC # GET COEFFICIENT FOR CG +14 AD PROJMAX AD POSMAX TS BUF CS BUF ADS BUF # RESULT IS 0 IF PROJMAX - PROJ NEGATIVE
CS PROJMIN # GET COEFFICIENT FOR UNIT(LAND - R) AD MPAC AD POSMAX TS BUF +1 CS BUF +1 # Page 813 ADS BUF +1# RESULT IS 0 IF PROJ - PROJMIN NEGATIVE
CAF FOUR
UNWCLOOP MASK SIX TS Q CA EBANK5 TSEBANK EBANK= CG CA BUF EXTEND INDEX Q MP CG +14 INCR BBANK EBANK= UNWC/2 INDEX Q DXCH UNWC/2 EXTEND MP BUF +1 INDEX Q DAS UNWC/2 CCS Q TCF UNWCLOOP
INCR BBANK EBANK= PIF
STEER? CA FLAGWRD2 # IF STEERSW DOWN NO OUTPUTS MASK STEERBIT EXTEND BZF RATESTOP
EXVERT CA OVFIND # IF OVERFLOW ANYWHERE IN GUIDANCE EXTEND# DON'T CALL THROTTLE OR FINDCDUW BZF +13
EXOVFLOW TC ALARM # SOUND THE ALARM NON-ABORTIVELY OCT01410
RATESTOP CAF BIT13 # ARE WE IN ATTITUDE-HOLD? EXTEND
RAND CHAN31 EXTEND BZF DISPEXIT # YES
TC CHECKMM # IF NOT IN P64, NO REASON TO CONTINUE DEC64 TCF RESUME
EXTEND READ CHAN31
COM MASK ALL4BITS TS ELVIRA CAF TWO TS ZERLINA CAF FIVE TC TWIDDLE ADRES REDESMON TCF RESUME
# REDESIGNATOR MONITOR (INITIATED BY PITFALL)
PREMON1 TS ZERLINA
PREMON2 CAF SEVEN TC VARDELAY
REDESMON EXTEND READ31
COM MASK ALL4BITS XCH ELVIRA TS L CCS ELVIRA # DO ANY BITS APPEAR THIS PASS? TCF PREMON2 # Y: CONTINUE MONITOR
CCS L # N: ANY LAST PASS? TCFCOUNT'EM # Y: COUNT 'EM, RESET RUPT, TERMINATE # Page 821 CCS ZERLINA # N: HAS ZERLINA REACHED ZERO YET? TCF PREMON1 # N: DIMINISH ZERLINA, CONTINUE
RESETRPT CAF BIT12 # Y: RESET RUPT. TERMINATE EXTEND WOR CHAN13 TCF TASKOVER
COUNT'EM CAF BIT13 # ARE WE IN ATTITUDE-HOLD? EXTEND
RAND CHAN31 EXTEND BZF RESETRPT # YES: SKIP REDESIGNATION LOGIC.
CA L # NO. MASK -AZBIT CCS A
-AZ CS AZEACH ADS AZINCR1 CA L MASK +AZBIT CCS A
+AZ CA AZEACH ADS AZINCR1 CA L MASK -ELBIT CCS A
-EL CS ELEACH ADS ELINCR1 CA L MASK +ELBIT CCS A
+EL CA ELEACH ADS ELINCR1 TCF RESETRPT
# THESE EQUIVALENCES ARE BASED ON GSOP CHAPTER 4, REVISION 16 OF P64LM
BANK20 SETLOC RODTRAP BANK COUNT* $$/F2DPS # ************************
DESCBITS MASK BIT7 # COME HERE FROM MARKRUPT CODING WITH BIT CCS A # 7 OR 6 OF CHANNEL 16 IN A; BIT 7 MEANS CS TWO # - RATE INCREMENT, BIT 6 + INCREMENT. AD ONE ADS RODCOUNT TCF RESUME # TRAP IS RESET WHEN SWITCH IS RELEASED
BANK31 SETLOC F2DPS*31 BANK
COUNT* $$/F2DPS
# *********************************************************************************** # DOUBLE PRECISION ROOT FINDER SUBROUTINE (BY ALLAN KLUMPP) # *********************************************************************************** # # N N-1 # ROOTPSRS FINDS ONE ROOT OF THE POWER SERIES A X + A X + ... + A X + A # N N-1 1 0 # USING NEWTON'S METHOD STARTING WITH AN INITIAL GUESS FOR THE ROOT. THE ENTERING DATA MUST BE AS FOLLOWS: # A SP LOC-3 ADRES FOR REFERENCING PWR COF TABL # L SP N-1 N IS THE DEGREE OF THE POWER SERIES # MPAC DP X INITIAL GUESS FOR ROOT # # LOC-2N DP A(0) # ... # LOC DP A(N) # LOC+2 SP PRECROOT PREC RQD OF ROOT (AS FRACT OF 1ST GUESS) # # Page 823 # THE DP RESULT IS LEFT IN MPAC UPON EXIT, AND A SP COUNT OF THE ITERATIONS TO CONVERGENCE IS LEFT IN MPAC+2. # RETURN IS NORMALLY TO LOC(TC ROOTPSRS)+3. IF ROOTPSRS FAILS TO CONVERGE TO IN 8 PASSES, RETURN IS TO LOC+1 AND # OUTPUTS ARE NOT TO BE TRUSTED. # # PRECAUTION: ROOTPSRS MAKES NO CHECKS FOR OVERFLOW OR FOR IMPROPER USAGE. IMPROPER USAGE COULD # PRECLUDE CONVERGENCE OR REQUIRE EXCESSIVE ITERATIONS. AS A SPECIFIC EXAMPLE, ROOTPSRS FORMS A DERIVATIVE # COEFFICIENT TABLE BY MULTIPLYING EACH A(I) BY I, WHERE I RANGES FROM 1 TO N. IF AN ELEMENT OF THE DERIVATIVE # COEFFICIENT TABLE = 1 OR >1 IN MAGNITUDE, ONLY THE EXCESS IS RETAINED. ROOTPSRS MAY CONVERGE ON THE CORRECT # ROOT NONETHELESS, BUT IT MAY TAKE AN EXCESSIVE NUMBER OF ITERATIONS. THEREFORE THE USER SHOULD RECOGNIZE: # 1. USER'S RESPONSIBILITY TO ASSUR THAT I X A(I) < 1 IN MAGNITUDE FOR ALL I. # 2. USER'S RESPONSIBILITY TO ASSURE OVERFLOW WILL NOT OCCUR IN EVALUATING EITHER THE RESIDUAL OR THE DERIVATIVE # POWER SERIES. THIS OVERFLOW WOULD BE PRODUCED BY SUBROUTINE POWRSERS, CALLED BY ROOTPSRS, AND MIGHT NOT # PRECLUDE EVENTUAL CONVERGENCE. # 3. AT PRESENT, ERASABLE LOCATIONS ARE RESERVED ONLY FOR N UP TO 5. AN N IN EXCESS OF 5 WILL PRODUCE CHAOS. # ALL ERASABLES USED BY ROOTPSRS ARE UNSWITCHED LOCATED IN THE REGION FROM MPAC-33 OCT TO MPAC+7. # 4. THE ITERATION COUNT RETURNED IN MPAC+2 MAY BE USED TO DETECT ABNORMAL PERFORMANCE.
# STORE ENTERING DATA, INITIALIZE ERASABLES
ROOTPSRS EXTEND QXCH RETROOT # RETURN ADRES TS PWRPTR # PWR TABLE POINTER DXCH MPAC +3# PWR TABLE ADRES, N-1 CA DERTABLL TS DERPTR # DER TABL POINTER TS MPAC +5# DER TABL ADRES CCS MPAC +4# NO POWER SERIES DEGREE 1 OR LESS TS MPAC +6# N-2 CA ZERO # MODE USED AS ITERATION COUNTER. MODE TS MODE # MUST BE POS SO ABS WON'T COMP MPAC+3 ETC.
# COMPUTE CRITERION TO STOP ITERATING EXTEND DCA MPAC # FETCH ROOT GUESS, KEEPING IT IN MPAC DXCH ROOTPS # AND IN ROOTPS INDEX MPAC +3# PWR TABLE ADRES CA5# PRECROOT TO A TC SHORTMP # YIELDS DP PRODUCT IN MPAC TC USPRCADR CADR ABS # YIELDS ABVAL OF CRITERION ON DX IN MPAC DXCH MPAC DXCH DXCRIT # CRITERION
# SET UP DER COF TABL # Page 824 EXTEND INDEX PWRPTR DCA3 DXCH MPAC # A(N) TO MPAC
CA MPAC +4# N-1 TO A
DERCLOOP TS PWRCNT # LOOP COUNTER AD ONE TC DMPNSUB # YIELDS DERCOF = I X A(I) IN MPAC EXTEND INDEX PWRPTR DCA1 DXCH MPAC # (I-1) TO MPAC, FETCHING DERCOF INDEX DERPTR DXCH3# DERCOF TO DER TABLE CS TWO ADS PWRPTR # DECREMENT PWR POINTER CS TWO ADS DERPTR # DECREMENT DER POINTER CCS PWRCNT TCF DERCLOOP
# CONVERGE ON ROOT
ROOTLOOP EXTEND DCA ROOTPS # FETCH CURRENT ROOT DXCH MPAC # LEAVE IN MPAC EXTEND DCA MPAC +5# LOAD A, L WITH DER TABL ADRES, N-2 TC POWRSERS # YIELDS DERIVATIVE IN MPAC
EXTEND DCA ROOTPS DXCH MPAC # CURRENT ROOT TO MPAC, FETCHING DERIVATIVE DXCH BUF # LEAVE DERIVATIVE IN BUF AS DIVISOR EXTEND DCA MPAC +3# LOAD A, L WITH PWR TABL ADRES, N-1 TC POWRSERS # YIELDS RESIDUAL IN MPAC
TC USPRCADR CADR DDV/BDDV # YIELDS -DX IN MPAC
EXTEND
DCS MPAC # FETCH DX, LEAVING -DX IN MPAC DAS ROOTPS # CORRECTED ROOT NOW IN ROOTPS
TC USPRCADR CADR ABS # YIELDS ABS(DX) IN MPAC EXTEND # Page 825
DCS DXCRIT DAS MPAC # ABS(DX)-ABS(DXCRIT) IN MPAC
CA MODE MASK BIT4 # KLUMPP SAYS GIVE UP AFTER EIGHT PASSES CCS A
BADROOT TC RETROOT
INCR MODE # INCREMENT ITERATION COUNTER CCS MPAC # TEST HI ORDER DX TCF ROOTLOOP TCF TESTLODX TCF ROOTSTOR
TESTLODX CCS MPAC +1# TEST LO ORDER DX TCF ROOTLOOP TCF ROOTSTOR TCF ROOTSTOR
ROOTSTOR DXCH ROOTPS DXCH MPAC CA MODE TS MPAC +2# STORE SP ITERATION COUNT IN MPAC+2 INDEX RETROOT TCF2
DERTABLL ADRES DERCOFN -3
# **************************************************************************** # TRASHY LITTLE SUBROUTINES # ****************************************************************************
INTPRETX INDEX WCHPHASE # SET X1 ON THE WAY TO THE INTERPRETER CS TARGTDEX INDEX FIXLOC TS X1 TCF INTPRET
TDISPSET CA TTF/8 EXTEND MP TSCALINV DXCH TTFDISP
CA EBANK5 # TREDES BECOMES ZERO TWO PASSES TSEBANK# BEFORE TCGFAPPR IS REACHED EBANK= TCGFAPPR CA TCGFAPPR INCR BBANK INCR BBANK EBANK= TTF/8 # Page 826 AD TTF/8 EXTEND MP TREDESCL AD -DEC103 AD NEGMAX TS L CS L AD L AD +DEC99 AD POSMAX TS TREDES CS TREDES ADS TREDES TC Q
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.20Bemerkung:
(vorverarbeitet am 2026-10-12)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.