https://github.com/virtualagc/virtualagc
Revision 1bd6f8fffc28ad42d0462934ed928cf7ef090edd authored by Ronald Burkey on 26 July 2021, 22:16:51 UTC, committed by GitHub on 26 July 2021, 22:16:51 UTC
Added --no-resume cli option
Tip revision: 1bd6f8fffc28ad42d0462934ed928cf7ef090edd authored by Ronald Burkey on 26 July 2021, 22:16:51 UTC
Merge pull request #1148 from ThymoNL/no-resume
Merge pull request #1148 from ThymoNL/no-resume
Tip revision: 1bd6f8f
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 LUM69 revision 2.
## It is part of the reconstructed source code for the flown
## version of the flight software for the Lunar Module's (LM)
## Apollo Guidance Computer (AGC) for Apollo 10. The code has
## been recreated from a copy of Luminary revsion 069, using
## changes present in Luminary 099 which were described in
## Luminary memos 75 and 78. The code has been adapted such
## that the resulting bugger words exactly match those specified
## for LUM69 revision 2 in NASA drawing 2021152B, which gives
## relatively high confidence that the reconstruction is correct.
## Reference: pp. 739-758
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2019-07-27 MAS Created from Luminary 69.
## Page 739
## <br><br>
## At the get-together of the AGC developers celebrating the 40th anniversary
## of the first moonwalk, Don Eyles (one of the authors of this routine along
## with Peter Adler) related a little interesting history behind the
## naming of the routine to one of us.<br>
## <br>
## It traces back to 1965 and the Los Angeles riots, and was inspired
## by disc jockey extraordinaire and radio station owner Magnificent Montague.
## Magnificent Montague used the phrase "Burn, baby! BURN!" when spinning the
## hottest new records. Magnificent Montague was the charismatic voice of
## soul music in Chicago, New York, and Los Angeles from the mid-1950s to
## the mid-1960s.
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 COMFAIL3 # (2)
TCF GOCUTOFF # (3)
TCF TASKOVER # (4)
TCF P12SPOT # (5)
DEC 0 # (6) NO ULLAGE
EBANK= WHICH
2CADR SERVEXIT # (7)
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF P12IGN # (13)
P40TABLE VN 0640 # (0)
VN 0640 # (1)
TCF COMFAIL4 # (2)
TCF GOPOST # (3)
TCF P40ZOOM # (4)
TCF P40SPOT # (5)
## Page 740
DEC 2240 # (6)
EBANK= OMEGAQ
2CADR STEERING # (7)
TCF P40SJUNK # (11)
TCF WAITABIT # (12)
TCF P40IGN # (13)
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 COMFAIL4 # (2)
TCF GOPOST # (3)
TCF TASKOVER # (4)
TCF P42SPOT # (5)
DEC 2640 # (6)
EBANK= OMEGAQ
2CADR STEERING # (7)
TCF P40SJUNK # (11)
TCF WAITABIT # (12)
TCF P42IGN # (13)
P63TABLE VN 0662 # (0)
VN 0661 # (1)
TCF COMFAIL3 # (2)
TCF V99RECYC # (3)
TCF P63ZOOM # (4)
TCF P63SPOT # (5)
DEC 2240 # (6)
EBANK= WHICH
2CADR SERVEXIT # (7)
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF P63IGN # (13)
## Page 741
ABRTABLE VN 0663 # (0)
NOOP # (1)
TCF COMFAIL3 # (2)
TCF GOCUTOFF # (3)
TCF TASKOVER # (4)
NOOP # (5)
NOOP # (6)
NOOP # (7)
NOOP
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF ABRTIGN # (13)
# ****************************************
# 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* EXTEND
DCA TIG # STORE NOMINAL TIG FOR OBLATENESS COMP.
DXCH GOBLTIME # AND FOR P70 OR P71.
INHINT
TC IBNKCALL
CADR ENGINOF3
RELINT
INDEX WHICH
TCF 5
P12SPOT = P40SPOT # (5)
P42SPOT = P40SPOT # (5)
P63SPOT = P41SPOT # (5) IN P63 CLOKTASK ALREADY GOING
P40SPOT CS OCT20 # (5)
TC BANKCALL # MUST BE BANKCALLED FOR GENERALIZED
CADR STCLOK2 # RETURN
P41SPOT TC INTPRET # (5)
DLOAD DSU
## Page 742
TIG
D29.9SEC
STCALL TDEC1
INITCDUW
BOFF CALL
MUNFLAG
GOMIDAV
CSMPREC
VLOAD MXV
VATT1
REFSMMAT
VSR1
STOVL V(CSM) # CSM VELOCITY - M/CS*2(7)
RATT1
VSL4 MXV
REFSMMAT
STCALL R(CSM) # CSM POSITION - M*2(24)
MUNGRAV
STODL G(CSM) # CSM GRAVITY VEC. - M/CS*2(7)
TAT
STORE TDEC1 # RELOAD TDEC1 FOR MIDTOAV.
GOMIDAV CALRB
MIDTOAV1
TCF CALLT-35 # MADE IT IN TIME.
EXTEND # TIG WAS SLIPPED, SO RESET TIG TO 29.9
DCA PIPTIME1 # SECONDS AFTER THE TIME TO WHICH WE DID
DXCH TIG # INTEGRATE.
EXTEND
DCA D29.9SEC
DAS TIG
CALLT-35 DXCH MPAC
DXCH SAVET-30 # DELTA-T UNTIL TIG-30
EXTEND
DCS 5SECDP
DAS SAVET-30 # DELTA-T UNTIL TIG-35
EXTEND
DCA SAVET-30
TC LONGCALL
EBANK= TTOGO
2CADR TIG-35
TC PHASCHNG
OCT 20254 # 4.25SPOT FOR TIG-35 RESTART.
TC CHECKMM
DEC 63
TCF ENDOFJOB # NOT P63
CS CNTDNDEX # P63 CAN START DISPLAYING NOW.
## Page 743
TS DISPDEX
TC INTPRET
VLOAD ABVAL
VN1
STORE ABVEL # INITIALIZE ABVEL FOR P63 DISPLAY
EXIT
TCF ENDOFJOB
# ****************************************
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
## Page 744
# *****************************************
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
# ****************************************
## Page 745
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
## Page 746
TC 2PHSCHNG
OCT 40033
OCT 05014
OCT 77777
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 FLAGWRD5 # INSURE ENGONFLG IS SET.
MASK ENGONBIT
ADS FLAGWRD5
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
CS FLUNDBIT # PERMIT GUIDANCE LOOP DISPLAYS
MASK FLAGWRD8
TS FLAGWRD8
INDEX WHICH
TCF 13
P63IGN EXTEND # (13) INITIATE BURN DISPLAYS
DCA DSP2CADR
DXCH AVGEXIT
CA Z # ASSASSINATE CLOKTASK
TS DISPDEX
CS FLAGWRD9 # SET FLAG FOR P70-P71
MASK LETABBIT
ADS FLAGWRD9
## Page 747
CS FLAGWRD7 # SET SWANDISP TO ENABLE R10.
MASK SWANDBIT
ADS FLAGWRD7
CS PULSES # MAKE SURE DAP IS NOT IN MINIMUM-IMPULSE
MASK DAPBOOLS # MODE, IN CASE OF SWITCH TO P66
TS DAPBOOLS
EXTEND # INITIALIZE TIG FOR P70 AND P71.
DCA TIME2
DXCH TIG
CAF ZERO # INITIALIZE WCHPHASE AND FLPASSO
TS WCHPHASE
TS WCHPHOLD # ALSO WHCPHOLD
CA TWO
TS FLPASS0
TCF P42IGN
P40IGN CS FLAGWRD5 # (13)
MASK NOTHRBIT
EXTEND
BZF P42IGN
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
TCF P42IGN
ABRTIGN TC CHECKMM # (13) BRANCH TO APPROPRIATE ABORT
DEC 71 # ENGINE-ON SEQUENCE.
TCF P42IGN # CONTINUE ENGINE-ON SEQUENCE
P12IGN CA Z # (13) KILL CLOKTASK
TS DISPDEX
EXTEND # CONNECT ASCENT GYIDANCE TO SERVICER.
DCA ATMAGADR
DXCH AVGEXIT
CS FLAGWRD7 # ENABLE R10.
MASK SWANDBIT
ADS FLAGWRD7
P42IGN CS DRIFTBIT # ENSURE THAT POWERED-FLIGHT SWITCHING
CS DRIFTBIT # ENSURE THAT POWERED-FLIGHT SWITCHING
MASK DAPBOOLS # CURVES ARE USED.
## Page 748
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 4
P63ZOOM EXTEND # (4) SET UP GUIDANCE.
DCA LUNLANAD
DXCH AVEGEXIT
## Page 749
TC IBNKCALL
CADR FLATOUT
TCF P40ZOOMA
P40ZOOM CAF BIT13 # (4) THROTTLE THE DPS TO MAXIMUM THRUST.
TS THRUST
CAF BIT4
EXTEND
WOR CHAN14
P40ZOOMA TC PHASCHNG
OCT 3
TCF TASKOVER
# ****************************************
COMFAIL TC UPFLAG # (15)
ADRES IDLEFLAG
TC UPFLAG # SET FLAG TO SUPPRESS CONFLICTING DISPLAY
ADRES FLUNDISP
CAF FOUR # RESET DVMON
TS DVCNTR
CCS PHASE6 # CLOCKTASK ACTIVE?
TCF +3 # YES
TC BANKCALL # OTHERWISE, START IT UP
CADR STCLOK1
+3 CS VB97DEX
TS DISPDEX
TC PHASCHNG # TURN OFF GROUP 4.
OCT 00004
TCF ENDOFJOB
COMFAIL1 INDEX WHICH
TCF 2
COMFAIL3 CA Z # (15) KILL CLOKTASK USING Z
TCF +2
COMFAIL4 CS CNTDNDEX
TS DISPDEX
TC DOWNFLAG # RECONNECT DV MONITOR
ADRES IDLEFLAG
TC DOWNFLAG # PERMIT GUIDANCE LOOP DISPLAYS
ADRES FLUNDISP
TCF ENDOFJOB
## Page 750
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 ENGINOF4
TC UPFLAG # SET THE DRIFT BIT FOR THE DAP.
ADRES DRIFTDFL
TC INVFLAG # USE OTHER RCS SYSTEM
ADRES AORBTFLG
TC UPFLAG # TURN ON ULLAGE
ADRES ULLAGFLG
CAF BIT1
INHINT
TC TWIDDLE
ADRES TIG-5
TCF ENDOFJOB
# ****************************************
# 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
# ****************************************
## Page 751
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
## Page 752
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)
VB97DEX = 34DEC
-42 CA NVWORD +2 # NVWORD+2 CONTAINS V06 & APPROPRIATE NOUN
TC BANKCALL
CADR GOFLASHR
TCF STOPCLOK # TERMINATE CLOKTASK ON THE WAY TO P00H
TCF COMFAIL1
TCF COMFAIL2
CS ZERO
V97ORV99 TS NVWORD1
CAF VB99CON
TC LINUS
TCF ENDOFJOB
# 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 STOPCLOK
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
## Page 753
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
CS BIT9
TCF V97ORV99
NOOP
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)
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
ASTNRETN TC PHASCHNG
OCT 04024
CAF ZERO # STOP DISPLAYING BUT KEEP RUNNING.
TS DISPDEX
CAF PRIO13
TC FINDVAC
EBANK= STARIND
2CADR ASTNRET
TCF ENDOFJOB
*PROCEED TC UPFLAG
ADRES ASTNFLAG
## Page 754
TCF IGNITE
*ENTER INHINT
INDEX WHICH
TCF 3
GOPOST CAF PRIO12 # (3) MUST BE LOWER PRIORITY THAN CLOKJOB
TC FINDVAC
EBANK= TTOGO
2CADR POSTBURN
INHINT # SET UP THE DAP FOR COASTING FLIGHT.
TC IBNKCALL
CADR ALLCOAST
TC NULLCLOK
TC PHASCHNG # 4.13 RESTART FOR POSTBURN
OCT 00134
TCF ENDOFJOB
GOCUTOFF CAF PRIO17 # (3)
TC FINDVAC
EBANK= TGO
2CADR CUTOFF
TC DOWNFLAG
ADRES FLUNDISP
INHINT # SET UP THE DAP FOR COASTING FLIGHT.
TC IBNKCALL
CADR ALLCOAST
TC NULLCLOK
TC PHASCHNG
OCT 07024
OCT 17000
EBANK= TGO
2CADR CUTOFF
TCF ENDOFJOB
IGNITE CS FLAGWRD7 # (2)
MASK IGNFLBIT
CCS A
TCF IGNITE1
CAF BIT1
INHINT
## Page 755
TC TWIDDLE
ADRES IGNITION
CAF OCT23 # IMMEDIATE RESTART AT IGNITION.
TS L
COM
DXCH -PHASE4
IGNITE1 CS CNTDNDEX # RESTORE OLD DISPLAY.
TS DISPDEX
TCF ENDOFJOB
# ****************************************
BANK 31
SETLOC P40S2
BANK
COUNT* $$/P40
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 FLGWRD10
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 CA TEMPR60
TC BANKJUMP # GOODBYE. COME AGAIN SOON.
P40A/PMD OCT 00203
BANK 36
SETLOC P40S
## Page 756
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 P63DISPS -2
EBANK= WCHPHASE
LUNLANAD 2CADR LUNLAND
EBANK= DVCNTR
ATMAGADR 2CADR ATMAG
? = GOTOPOOH
D29.9SEC 2DEC 2990
S24.9SEC DEC 2490
4.9SEC DEC 490
OCT20 = BIT5
VB99CON OCT 24020 # BITS 5, 12, AND 14
## Page 757
# 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
BANK 27
SETLOC P40S1
BANK
COUNT* $$/KILL
KILLTSK2 LXCH ITEMP2 # SAVE CALLER'S BBANK
## Page 758
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
Computing file changes ...