BURN,_BABY,_BURN_--_MASTER_IGNITION_ROUTINE.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: BURN,_BABY,_BURN_--_MASTER_IGNITION_ROUTINE.agc
## Purpose: A section of a reconstructed, mixed version of Sundance
## It is part of the reconstructed source code for the Lunar
## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 9.
## No original listings of this program are available;
## instead, this file was created via disassembly of dumps
## of various revisions of Sundance core rope modules.
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2020-06-17 MAS Created from Luminary 69.
## Sundance 306
BANK 36
SETLOC P40S
BANK
EBANK= WHICH
COUNT* $$/P40
# THE MASTER IGNITION ROUTINE IS DESIGNED FOR USE BY THE FOLLOWING LEM PROGRAMS: P12, P40, P42, P61, P63.
# IT PERFORMS ALL FUNCTIONS IMMEDIATELY ASSOCIATED WITH APS OR DPS IGNITION: IN PARTICULAR, EVERYTHING LYING
# BETWEEN THE PRE-IGNITION TIME CHECK -- ARE WE WITHIN 45 SECONDS OF TIG? -- AND TIG + 26 SECONDS, WHEN DPS
# PROGRAMS THROTTLE UP.
# VARIATIONS AMONG PROGRAMS ARE ACCOMODATED BY MEANS OF TABLES CONTAINING CONSTANTS (FOR AVEGEXIT, FOR
# WAITLIST, FOR PINBALL) AND TCF INSTRUCTIONS. USERS PLACE THE ADRES OF THE HEAD OF THE APPROPRIATE TABLE
# (OF P61TABLE FOR P61LM, FOR EXAMPLE) IN ERASABLE REGISTER 'WHICH' (E4). THE IGNITION ROUTINE THEN INDEXES BY
# WHICH TO OBTAIN OR EXECUTE THE PROPER TABLE ENTRY. THE IGNITION ROUTINE IS INITIATED BY A TCF BURNBABY,
# THROUGH BANKJUMP IF NECESSARY. THERE IS NO RETURN.
# THE MASTER IGNITION ROUTINE WAS CONCEIVED AND EXECUTED, AND (NOTA BENE) IS MAINTAINED BY ADLER AND EYLES.
# HONI SOIT QUI MAL Y PENSE
# ****************************************
# TABLES FOR THE IGNITION ROUTINE
# ****************************************
# NOLI SE TANGERE
P12TABLE VN 0674 # (0)
VN 0674 # (1)
TCF IGNITE # (2)
TCF GOTOPOOH # (3)
TCF TOOLATE # (4)
TCF P12SPOT # (5)
DEC 0 # (6) NO ULLAGE
EBANK= DVCNTR
2CADR ATMAG # (7)
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF P12IGN # (13)
TCF TASKOVER # (14)
TCF COMFAIL2 # (15)
P40TABLE VN 0640 # (0)
VN 0640 # (1)
TCF IGNITE # (2)
TCF GOPOST # (3)
TCF TOOLATE # (4)
TCF P40SPOT # (5)
DEC 2240 # (6)
EBANK= OMEGAQ
2CADR STEERING # (7)
TCF P40SJUNK # (11)
TCF WAITABIT # (12)
TCF P40IGN # (13)
TCF P40ZOOM # (14)
TCF COMFAIL2 # (15)
TCF PUSHTIG # (16)
P41TABLE TCF P41SPOT # (5)
DEC -1 # (6)
EBANK= OMEGAQ
2CADR CALCN85 # (7)
TCF TASKOVER # (11)
TCF TIGTASK # (12)
P42TABLE VN 0640 # (0)
VN 0640 # (1)
TCF IGNITE # (2)
TCF GOPOST # (3)
TCF TOOLATE # (4)
TCF P42SPOT # (5)
DEC 2640 # (6)
EBANK= OMEGAQ
2CADR STEERING # (7)
TCF P40SJUNK # (11)
TCF WAITABIT # (12)
TCF P42IGN # (13)
TCF TASKOVER # (14)
TCF COMFAIL2 # (15)
P63TABLE VN 0662 # (0)
VN 0661 # (1)
TCF IGNITE # (2)
TCF V99RECYC # (3)
TCF TOOLATE # (4)
TCF P63SPOT # (5)
DEC 2240 # (6)
EBANK= WHICH
2CADR SERVEXIT # (7)
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF P63IGN # (13)
TCF P63ZOOM # (14)
TCF COMFAIL2 # (15)
P70TABLE VN 0675 # (0)
VN 0675 # (1)
TCF IGNITE # (2)
TCF GOTOPOOH # (3)
TCF TOOLATE # (4)
TCF P70SPOT # (5)
DEC 2240 # (6)
EBANK= DVCNTR
2CADR ATMAG # (7)
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF P70IGN # (13)
TCF P70ZOOM # (14)
TCF COMFAIL2 # (15)
P71TABLE VN 0675 # (0)
VN 0675 # (1)
TCF IGNITE # (2)
TCF GOTOPOOH # (3)
TCF TOOLATE # (4)
TCF P71SPOT # (5)
DEC 2640 # (6)
EBANK= DVCNTR
2CADR ATMAG # (7)
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF P71IGN # (13)
TCF TASKOVER # (14)
TCF COMFAIL2 # (15)
# ****************************************
# GENERAL PURPOSE IGNITION ROUTINES
# ****************************************
BURNBABY TC PHASCHNG # GROUP 4 RESTARTS HERE
OCT 04024
CAF ZERO # EXTIRPATE JUNK LEFT IN DVTOTAL
TS DVTOTAL
TS DVTOTAL +1
TC BANKCALL # P40AUTO MUST BE BANKCALLED EVEN FROM ITS
CADR P40AUTO # OWN BANK TO SET UP RETURN PROPERLY
B*RNB*B* TC DOWNFLAG
ADRES GIMBFLG
EXTEND
DCA TIG # STORE NOMINAL TIG FOR OBLATENESS COMP.
DXCH GOBLTIME # AND FOR P70 OR P71.
TC INTPRET
RTB BDSU
LOADTIME
TIG
DSU BPL
SEC45DP
ONTIME
EXIT
INDEX WHICH
TCF 4
TOOLATE TC ALARM
OCT 1703
CAF V05N09
TC BANKCALL
CADR GOFLASH
TC GOTOPOOH
TC PUSHTIG
TCF -5
PUSHTIG TC INTPRET
RTB DAD
LOADTIME
SEC45DP
STORE TIG
ONTIME DLOAD DSU
TIG
D29.9SEC
STORE TDEC1
STORE SAVET-30
EXIT
INHINT
TC IBNKCALL
CADR ENGINOF3
RELINT
INDEX WHICH
TCF 5
P12SPOT = P40SPOT # (5)
P42SPOT = P40SPOT # (5)
P63SPOT = P41SPOT # (5) IN P63 CLOKTASK ALREADY GOING
P70SPOT = P40SPOT # (5)
P71SPOT = P40SPOT # (5)
P40SPOT CS OCT20 # (5)
TC BANKCALL # MUST BE BANKCALLED FOR GENERALIZED
CADR STCLOK2 # RETURN
P41SPOT TC INTPRET # (5)
CALL
TIGINT
CALL
INITCDUW
RTB BDSU
LOADTIME
SAVET-30
BMN DSU
INTLATE
5SECDP
BMN
MISSED35
STORE SAVET-30
EXIT
TC CHECKMM
DEC 63
TCF +3 # NOT P63
CS CNTDNDEX # P63 CAN START DISPLAYING NOW.
TS DISPDEX
CALLT-35 DXCH MPAC
TC LONGCALL
EBANK= TTOGO
2CADR TIG-35
TC PHASCHNG
OCT 20254 # 4.25SPOT FOR TIG-35 RESTART.
TCF ENDOFJOB
MISSED35 DAD EXIT
5SECDP
DXCH MPAC
TC ALSIGNAG
XCH L
TS SAVET-30
INHINT
TC TWIDDLE
ADRES TIG-30
TC PHASCHNG
OCT 47014
-GENADR SAVET-30
EBANK= TGO
2CADR TIG-30
CS BLANKDEX
TS DISPDEX
TCF ENDOFJOB
INTLATE EXIT
TC ALARM
OCT 1711
TCF P40ALM +2
# ****************************************
TIG-35 CAF 5SEC
TC TWIDDLE
ADRES TIG-30
TC PHASCHNG
OCT 40154 # 4.15SPOT FOR TIG-30 RESTART
CS BLANKDEX # BLANK DSKY FOR 5 SECONDS
TS DISPDEX
INDEX WHICH
CS 6 # CHECK ULLAGE TIME.
EXTEND
BZMF TASKOVER
CAF 4.9SEC # SET UP TASK TO RESTORE DISPLAY AT TIG-30
TC TWIDDLE
ADRES TIG-30.1
CAF PRIO17 # A NEGATIVE ULLAGE TIME INDICATES P41, IN
TC NOVAC # WHICH CASE WE HAVE TO SET UP A JOB TO
EBANK= TTOGO # BLANK THE DSKY FOR FIVE SECONDS, SINCE
2CADR P41BLANK # CLOKJOB IS NOT RUNNING DURING P41.
TCF TASKOVER
P41BLANK TC BANKCALL # BLANK DSKY.
CADR CLEANDSP
TCF ENDOFJOB
TIG-30.1 CAF PRIO17 # SET UP JOB TO RESTORE DISPLAY AT TIG-30
TC NOVAC
EBANK= TTOGO
2CADR TIG-30A
TCF TASKOVER
TIG-30A CAF V16N85B
TC BANKCALL # RESTORE DISPLAY.
CADR REGODSP # REGODSP DOES A TCF ENDOFJOB
# *****************************************
TIG-30 CAF S24.9SEC
TC TWIDDLE
ADRES TIG-5
CS CNTDNDEX # START UP CLOKTASK AGAIN
TS DISPDEX
INDEX WHICH # PICK UP APPROPRIATE ULLAGE-ON TIME
CAF 6
EXTEND
BZMF ULLGNOT # DON'T SET UP ULLAGE IF DT IS NEG OR ZERO
TS SAVET-30 # SAVE DELTA-T FOR RESTART
TC TWIDDLE
ADRES ULLGTASK
CA THREE # RESTART PROTECT ULLGTASK (1.3SPOT)
TS L
CS THREE
DXCH -PHASE1
CS TIME1
TS TBASE1
ULLGNOT EXTEND
INDEX WHICH
DCA 7 # LOAD AVEGEXIT WITH APPROPRIATE 2CADR
DXCH AVEGEXIT
CAF TWO # 4.2SPOT RESTARTS IMMEDIATELY AT REDO4.2
TS L
CS TWO # AND ALSO AT TIG-5 AT THE CORRECT TIME.
DXCH -PHASE4
CS TIME1
TS TBASE4 # SET TBASE4 FOR TIG-5 RESTART
REDO2.17 EXTEND
DCA NEG0 # CLEAR OUT GROUP 2 SO LAMBERT CAN START
DXCH -PHASE2 # IF NEEDED.
REDO4.2 CCS PHASE5 # IS SERVICER GOING?
TCF TASKOVER # YES, DON'T START IT UP AGAIN.
TC POSTJUMP
CADR PREREAD # PREREAD ENDS THIS TASK
# ****************************************
ULLGTASK TC ONULLAGE # THIS COMES AT TIG-7.5 OR TIG-3.5
TC PHASCHNG
OCT 1
TCF TASKOVER
# ****************************************
TIG-5 CAF 5SEC
TC TWIDDLE
ADRES TIG-0
TC DOWNFLAG # RESET IGNFLAG AND ASTNFLAG
ADRES IGNFLAG # FOR LIGHT-UP LOGIC
TC DOWNFLAG
ADRES ASTNFLAG
TC 2PHSCHNG
OCT 40074 # RESTART TIG-0 (4.7SPOT)
OCT 05013 # RESTART HERE (FOR S40.13 IF NEEDED)
OCT 77777
INDEX WHICH
TCF 11
P40SJUNK CAF PRIO20 # (11) P40 AND P42 COME HERE
TC FINDVAC
EBANK= TTOGO
2CADR S40.13
DISPCHNG CS VB99DEX # (11)
TS DISPDEX
TCF TASKOVER
# ****************************************
TIG-0 CS FLAGWRD7 # SET IGNFLAG SINCE TIG HAS ARRIVED
MASK IGNFLBIT
ADS FLAGWRD7
TC CHECKMM # IN P63 CASE, THROTTLE-UP IS ZOOMTIME
DEC 63 # AFTER NOMINAL IGNITION, NOT ACTUAL
TCF IGNYET?
CA ZOOMTIME
TC TWIDDLE
ADRES ZOOM
TC PHASCHNG
OCT 40033
IGNYET? CAF ASTNBIT # CHECK ASTNFLAG: HAS ASTRONAUT RESPONDED
MASK FLAGWRD7 # TO OUR ENGINE ENABLE REQUEST?
EXTEND
INDEX WHICH
BZF 12 # BRANCH IF HE HAS NOT RESPONDED YET
IGNITION CS PRIO30 # TURN ON THE ENGINE.
EXTEND
RAND DSALMOUT
AD BIT13
EXTEND
WRITE DSALMOUT
EXTEND # SET TEVENT FOR DOWNLINK
DCA TIME2
DXCH TEVENT
EXTEND # UPDATE TIG USING TGO FROM S40.13
DCA TGO
DXCH TIG
EXTEND
DCA TIME2
DAS TIG
INDEX WHICH
TCF 13
P63IGN EXTEND # (13) INITIATE BURN DISPLAYS
DCA DSP2CADR
TS DISPDEX # ASSASSINATE CLOKTASK
DXCH AVGEXIT
EXTEND # INITIALIZE TIG FOR P70 AND P71.
DCA TIME2
DXCH TIG
CS FLAGWRD9 # SET FLAG FOR P70-P71
MASK LETABBIT
ADS FLAGWRD9
CA BRAKQADR # INITIALIZE WCHPHASE AND FLPASSO
TS WCHPHASE
CA TWO
TS FLPASS0
TCF SETGIMBL
P70IGN = P40IGN # (13)
P40IGN CS FLAGWRD5 # (13)
MASK NOTHRBIT
EXTEND
BZF SETGIMBL
CA ZOOMTIME # WAITLIST FOR ZOOM (FLATOUT. ETC.)
TC TWIDDLE
ADRES ZOOM
P63IGN1 TC 2PHSCHNG
OCT 40033 # 3.3SPOT FOR ZOOM RESTART.
OCT 05014 # TYPE C RESTARTS HERE IMMEDIATELY
OCT 77777
SETGIMBL CS FLAGWRD1
MASK GIMBFBIT
ADS FLAGWRD1
TCF P42IGN
P12IGN CA ONE # (13) KILL CLOKTASK
TS DISPDEX
P71IGN = P42IGN # (13)
P42IGN TC UPFLAG # INSURE ENGONFLG IS SET.
ADRES ENGONFLG
CS DRIFTBIT # ENSURE THAT POWERED-FLIGHT SWITCHING
MASK DAPBOOLS # CURVES ARE USED.
TS DAPBOOLS
CAF IMPULBIT # EXAMINE IMPULSE SWITCH
MASK FLAGWRD2
CCS A
TCF IMPLBURN
DVMONCON TC DOWNFLAG
ADRES IGNFLAG # CONNECT DVMON
TC DOWNFLAG
ADRES ASTNFLAG
TC DOWNFLAG
ADRES IDLEFLAG
TC PHASCHNG
OCT 40054
TC FIXDELAY # TURN ULLAGE OFF HALF A SECOND AFTER
DEC 50 # LIGHT UP.
ULLAGOFF TC NOULLAGE
WAITABIT EXTEND # KILL GROUP 4
DCA NEG0
DXCH -PHASE4
TCF TASKOVER
# ****************************************
TIGTASK CAF PRIO16 # TIGNOW MUST BE A JOB.
TC NOVAC
EBANK= TRKMKCNT
2CADR TIGNOW
TC PHASCHNG
OCT 6 # KILL GROUP 6.
TCF TASKOVER
# ****************************************
ZOOM INDEX WHICH
TCF 14
P63ZOOM EXTEND # (4) SET UP GUIDANCE.
DCA LUNLANAD
DXCH AVEGEXIT
TC DOWNFLAG
ADRES KILLROSE
CAF THIRTEEN
TC WAITLIST
EBANK= WHICH
2CADR ROSEN
P70ZOOM = P40ZOOM # (4)
P40ZOOM TC IBNKCALL # (4) THROTTLE THE DPS TO MAXIMUM THRUST.
CADR FLATOUT
TC PHASCHNG
OCT 3
TCF TASKOVER
# ****************************************
COMFAIL INDEX WHICH
TCF 15
COMFAIL2 TC PHASCHNG # KILL ZOOM RESTART PROTECTION
OCT 00003
INHINT
TC KILLTASK # KILL ZOOM, IN CASE IT'S STILL TO COME
CADR ZOOM
TC IBNKCALL # COMMAND ENGINE OFF
CADR ENGINOF1
TC ONULLAGE
CAF FOUR # RESET DVMON
TS DVCNTR
CS OCT24
TS TIG
CAF BIT1
TC TWIDDLE
ADRES TIG-5
TC 2PHSCHNG
OCT 00174
OCT 10035
EXTEND
DCA AVEGEXIT
DTCB
# ****************************************
# SUBROUTINES OF THE IGNITION ROUTINE
# ****************************************
INVFLAG CA Q
TC DEBIT
COM
EXTEND
RXOR LCHAN
TCF COMFLAG
# ****************************************
NOULLAGE CS ULLAGER # MUST BE CALLED IN A TASK OR UNDER INHINT
MASK DAPBOOLS
TS DAPBOOLS
TC Q
# ****************************************
ONULLAGE CS DAPBOOLS # TURN ON ULLAGE. MUST BE CALLED IN
MASK ULLAGER # A TASK OR WHILE INHINTED.
ADS DAPBOOLS
TC Q
# ****************************************
STCLOK1 CA ZERO # THIS ROUTINE STARTS THE COUNT-DOWN
STCLOK2 TS DISPDEX # (CLOKTASK AND CLOKJOB). SETTING
STCLOK3 TC MAKECADR # SETTING DISPDEX POSITIVE KILLS IT.
TS TBASE4 # RETURN SAVE (NOT FOR RESTARTS)
EXTEND
DCA TIG
DXCH MPAC
EXTEND
DCS TIME2
DAS MPAC # HAVE TIG - TIME2, UNDOUBTEDLY A + NUMBER
TC TPAGREE # POSITIVE, SINCE WE PASSED THE
CAF 1SEC # 45 SECOND CHECK
TS Q
DXCH MPAC
MASK LOW5 # RESTRICT MAGNITUDE OF NUMBER IN A
EXTEND
DV Q
CA L # GET REMAINDER
AD TWO
INHINT
TC TWIDDLE
ADRES CLOKTASK
TC 2PHSCHNG
OCT 40036 # 6.3SPOT FOR CLOKTASK
OCT 05024
OCT 13000
CA TBASE4
TC BANKJUMP
CLOKTASK CS TIME1 # SET TBASE6 FOR GROUP 6 RESTART
TS TBASE6
CCS DISPDEX
TCF KILLCLOK
NOOP
CAF PRIO27
TC NOVAC
EBANK= TTOGO
2CADR CLOKJOB
TC FIXDELAY # WAIT A SECOND BEFORE STARTING OVER
DEC 100
TCF CLOKTASK
KILLCLOK EXTEND # KILL RESTART
DCA NEG0
DXCH -PHASE6
TCF TASKOVER
CLOKJOB EXTEND
DCS TIG
DXCH TTOGO
EXTEND
DCA TIME2
DAS TTOGO
INHINT
CCS DISPDEX # IF DISPDEX HAS BEEN SET POSITIVE BY A
TCF ENDOFJOB # TASK OR A HIGHER PRIORITY JOB SINCE THE
TCF ENDOFJOB # LAST CLOKTASK, AVOID USING IT AS AN
COM # INDEX.
RELINT # ***** DISPDEX MUST NEVER BE -0 *****
INDEX A
TCF DISPNOT -1 # (-1 DUE TO EFFECT OF CCS)
# THIS DISPLAY IS CALLED VIA ASTNCLOK.
-27 INDEX WHICH # IT IS PRIMARILY USED BY THE ASTRONAUT
CAF 1 # TO RESET HIS EVENT TIMER TO AGREE WITH
TC BANKCALL # TIG.
CADR REFLASH
TCF GOTOPOOH
TCF ASTNRETN
TCF -6
CNTDNDEX = OCT20 # NEGATIVE OF THIS IS PROPER FOR DISPDEX
-20 INDEX WHICH # THIS DISPLAY COMES UP AT ONE SECOND
CAF 0 # INTERVALS. IT IS NORMALLY OPERATED
TC BANKCALL # BETWEEN TIG-30 SECONDS AND TIG-5 SECONDS
CADR REGODSP # REGODSP DOES ITS OWN TCF ENDOFJOB
VB99DEX = OCT14 # NEGATIVE OF THIS IS PROPER FOR DISPDEX
V99RECYC EQUALS
-14 INDEX WHICH # THIS IS THE "PLEASE ENABLE ENGINE"
CAF 0 # DISPLAY; IT IS INITIATED AT TIG-5 SEC.
TC BANKCALL # THE DISPLAY IS A V99NXX, WHERE XX IS THE
CADR GOFLASHR # NOUN THAT HAD PREVIOUSLY BEEN DISPLAYED
TCF STOPCLOK # TERMINATE GOTOPOOH TURNS OFF ULLAGE.
TCF *PROCEED
TCF *ENTER
CAF VB99CON
TC LINUS
TCF ENDOFJOB
BLANKDEX = TWO # NEGATIVE OF THIS IS PROPER FOR DISPDEX
-2 TC BANKCALL # BLANK DSKY. THE DSKY IS BLANKED FOR
CADR CLEANDSP # 5 SECONDS AT TIG-35 TO INDICATE THAT
DISPNOT TCF ENDOFJOB # AVERAGE G IS STARTING.
STOPCLOK TC NULLCLOK # STOP CLOKTASK & TURN OFF ULLAGE ON THE
TCF GOTOPOOH # WAY TO P00 (GOTOPOOH RELINTS)
ASTNRETN CAF PRIO13
INHINT
TC FINDVAC
EBANK= TTOGO
2CADR GOBACK
TCF ENDOFJOB
*PROCEED TC UPFLAG
ADRES ASTNFLAG
INDEX WHICH
TCF 2
*ENTER INDEX WHICH
TCF 3
GOPOST CAF PRIO12 # (3) MUST BE LOWER PRIORITY THAN CLOKJOB
TC FINDVAC
EBANK= TTOGO
2CADR POSTBURN
TC NULLCLOK
TC PHASCHNG # 4.13 RESTART FOR POSTBURN
OCT 00134
TCF ENDOFJOB
IGNITE CS FLAGWRD7 # (2)
MASK IGNFLBIT
CCS A
TCF IGNITE1
CAF BIT1
INHINT
TC TWIDDLE
ADRES IGNITION
TC PHASCHNG # IMMEDIATE RESTART AT IGNITION.
OCT 00234
IGNITE1 CS CNTDNDEX # RESTORE OLD DISPLAY.
TS DISPDEX
TCF ENDOFJOB
NULLCLOK INHINT
EXTEND
QXCH P40/RET
TC NOULLAGE # TURN OFF ULLAGE ...
TC KILLTASK # DON'T LET IT COME ON, EITHER ...
CADR ULLGTASK
TC PHASCHNG # NOT EVEN IF THERE'S A RESTART.
OCT 1
CA Z # KILL CLOKTASK
TS DISPDEX
TC P40/RET
GOASTCLK TC MAKECADR
TS TEMPR60
CAF ZERO
TS DVTOTAL
TS DVTOTAL +1
ASTNCLOK CS ASTNDEX
TC BANKCALL
CADR STCLOK2
TCF ENDOFJOB # RETURN IN NEW JOB AND IN EBANK FIVE
# ****************************************
P40AUTO TC MAKECADR # HELLO THERE.
TS TEMPR60 # FOR GENERALIZED RETURN TO OTHER BANKS.
P40A/P TC BANKCALL # SUBROUTINE TO CHECK PGNCS CONTROL
CADR G+N,AUTO # AND AUTO STABILIZATION MODES
CCS A # +0 INDICATES IN PGNCS, IN AUTO
TCF TURNITON # + INDICATES NOT IN PGNCS AND/OR AUTO
CAF APSFLBIT # ARE WE ON THE DESCENT STAGE?
MASK FLAGWRD1
CCS A
TCF GOBACK # RETURN
CAF BIT5 # YES, CHECK FOR AUTOTHROTTLE MODE
EXTEND
RAND CHAN30
EXTEND
BZF GOBACK # IN AUTOTHROTTLE MODE -- RETURN
TURNITON CAF P40A/PMD # DISPLAY V50N25 R1=203 PLEASE PERFORM
TC BANKCALL # CHECKLIST 203 TURN ON PGNCS ETC.
CADR GOPERF1
TCF GOTOPOOH # V34E TERMINATE
TCF P40A/P # RECYCLE
GOBACK CAF ZERO
TS DISPDEX
CA TEMPR60
TC BANKJUMP # GOODBYE. COME AGAIN SOON.
BANK 36
SETLOC P40S
BANK
COUNT* $$/P40
# ****************************************
# CONSTANTS FOR THE IGNITION ROUTINE
# ****************************************
SERVCADR = P63TABLE +7
P40ADRES ADRES P40TABLE
P41ADRES ADRES P41TABLE -5
P42ADRES ADRES P42TABLE
EBANK= WCHPHASE
DSP2CADR 2CADR DISPEXIT
EBANK= WCHPHASE
LUNLANAD 2CADR LUNLAND
? = GOTOPOOH
BRAKQADR REMADR BRAKQUAD
D29.9SEC 2DEC 2990
S24.9SEC DEC 2490
4.9SEC DEC 490
ASTNDEX OCT 00027 # INDEX FOR CLOKTASK
OCT20 = BIT5
VB99CON OCT 24020 # BITS 5, 12, AND 14
OCT1505 OCT 1505
## Sundance 292
# KILLTASK
# MOD NO: NEW PROGRAM
# MOD BY: COVELLI
# FUNCTIONAL DESCRIPTION:
# KILLTASK IS USED TO REMOVE A TASK FROM THE WAITLIST BY SUBSTITUTING ANULL TASK CALLED 'NULLTASK' (OF COURSE),
# WHICH MERELY DOES A TC TASKOVER. IF THE SAME TASK IS SCHEDULED MORE THAN ONCE, ONLY THE ONE WHICH WILL OCCUR
# FIRST IS REMOVED. IF THE TASK IS NOT SCHEDULED, KILLTASK TAKES NO ACTION AND RETURNS WITH NO ALARM. KILLTASK
# MUST BE CALLED IN INTERRUPT OR WITH INTERRUPT INHIBITED.
# CALLING SEQUENCE:
# L-1 (INHINT)
# L TC KILLTASK IN FIXED-FIXED
# L+1 CADR ???????? CADR (NOT 2CADR) OF TASK TO BE REMOVED.
# L+2 (RELINT) RETURN
# EXIT MODE: AT L+2 OF CALLING SEQUENCE.
# ERASABLE INITIALIZATION= NONE.
# OUTPUT: 2CADR OF NULLTASK IN LST2
# DEBRIS: ITEMP1 - ITEMP4, A,L,Q.
EBANK= LST2
BLOCK 3 # KILLTASK MUST BE IN FIXED-FIXED.
SETLOC FFTAG6
BANK
COUNT* $$/KILL
KILLTASK CA KILLBB
LXCH A
INDEX Q
CA 0 # GET CADR.
LXCH BBANK
TCF KILLTSK2 # CONTINUE IN SWITCHED FIXED
EBANK= LST2
KILLBB BBCON KILLTSK2
## Sundance 302
BANK 27
SETLOC P40S1
BANK
COUNT* $$/KILL
KILLTSK2 LXCH ITEMP2 # SAVE CALLER'S BBANK
INCR Q
EXTEND
QXCH ITEMP1 # RETURN 2CADR IN ITEMP1,ITEMP2
TS ITEMP3 # CADR IS IN A
MASK LOW10
AD BIT11
TS ITEMP4 # GENADR OF TASK
CS LOW10
MASK ITEMP3
TS ITEMP3 # FBANK OF TASK
ZL
ADRSCAN INDEX L
CS LST2
AD ITEMP4 # COMPARE GENADRS
EXTEND
BZF TSTFBANK # IF THEY MATCH, COMPARE FBANKS
LETITLIV CS LSTLIM
AD L
EXTEND # ARE WE DONE?
BZF DEAD # YES - DONE, SO RETURN
INCR L
INCR L
TCF ADRSCAN # CONTINUE LOOP.
DEAD DXCH ITEMP1
DTCB
TSTFBANK CS LOW10
INDEX L
MASK LST2 +1 # COMPARE FBANKS ONLY.
EXTEND
SU ITEMP3
EXTEND
BZF KILLDEAD # MATCH - KILL IT.
TCF LETITLIV # NO MATCH - CONTINUE.
KILLDEAD CA TCTSKOVR
INDEX L
TS LST2 # REMOVE TASK BY INSERTING TASKOVER
TCF DEAD
LSTLIM EQUALS BIT5 # DEC 16