1060 lines
22 KiB
ArmAsm
1060 lines
22 KiB
ArmAsm
# Copyright: Public domain.
|
|
# Filename: BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.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: Ron Burkey <info@sandroid.org>.
|
|
# Website: www.ibiblio.org/apollo.
|
|
# Pages: 731-751
|
|
# Mod history: 2009-05-19 RSB Adapted from the corresponding
|
|
# Luminary131 file, using page
|
|
# images from Luminary 1A.
|
|
# 2009-06-07 RSB Corrected 3 typos.
|
|
# 2009-07-23 RSB Added Onno's notes on the naming
|
|
# of this function, which he got from
|
|
# Don Eyles.
|
|
#
|
|
# 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-61
|
|
# 16:27 JULY 14, 1969
|
|
|
|
# Page 731
|
|
## 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) has related to us a little interesting history behind the
|
|
## naming of the routine.<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.
|
|
# BURN, BABY, BURN -- MASTER IGNITION ROUTINE
|
|
|
|
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 ACCOMMODATED 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)
|
|
TCF ULLGNOT # (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)
|
|
TCF ULLGNOT # (1)
|
|
TCF COMFAIL4 # (2)
|
|
TCF GOPOST # (3)
|
|
TCF TASKOVER # (4)
|
|
TCF P40SPOT # (5)
|
|
# Page 732
|
|
DEC 2240 # (6)
|
|
EBANK= OMEGAQ
|
|
2CADR STEERING # (7)
|
|
|
|
TCF P40SJUNK # (11)
|
|
TCF WAITABIT # (12)
|
|
TCF P40IGN # (13)
|
|
TCF REP40ALM # (14)
|
|
|
|
P41TABLE TCF P41SPOT # (5)
|
|
DEC -1 # (6)
|
|
EBANK= OMEGAQ
|
|
2CADR CALCN85 # (7)
|
|
|
|
TCF COMMON # (11)
|
|
TCF TIGTASK # (12)
|
|
|
|
P42TABLE VN 0640 # (0)
|
|
TCF WANTAPS # (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)
|
|
TCF P42STAGE # (14)
|
|
|
|
P63TABLE VN 0662 # (0)
|
|
TCF ULLGNOT # (1)
|
|
TCF COMFAIL3 # (2)
|
|
TCF V99RECYC # (3)
|
|
TCF TASKOVER # (4)
|
|
TCF P63SPOT # (5)
|
|
DEC 2240 # (6)
|
|
EBANK= WHICH
|
|
2CADR SERVEXIT # (7)
|
|
|
|
TCF DISPCHNG # (11)
|
|
TCF WAITABIT # (12)
|
|
# Page 733
|
|
TCF P63IGN # (13)
|
|
|
|
ABRTABLE VN 0663 # (0)
|
|
TCF ULLGNOT # (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
|
|
|
|
P42SPOT = P40SPOT # (5)
|
|
P12SPOT = P40SPOT # (5)
|
|
P63SPOT = P41SPOT # (5) IN P63 CLOKTASK ALREADY GOING
|
|
P40SPOT CS CNTDNDEX # (5)
|
|
# Page 734
|
|
TC BANKCALL # MUST BE BANKCALLED FOR GENERALIZED
|
|
CADR STCLOK2 # RETURN
|
|
P41SPOT TC INTPRET # (5)
|
|
DLOAD DSU
|
|
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.
|
|
# Page 735
|
|
TC CHECKMM
|
|
DEC 63
|
|
TCF ENDOFJOB # NOT P63
|
|
CS CNTDNDEX # P63 CAN START DISPLAYING NOW.
|
|
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
|
|
# Page 736
|
|
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
|
|
CA 6 # Was CAF --- RSB 2009.
|
|
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
|
|
|
|
INDEX WHICH
|
|
TCF 1
|
|
|
|
WANTAPS CS FLGWRD10 # (1) FOR P42 ENSURE APSFLAG IS SET. IF IT
|
|
MASK APSFLBIT # WASN'T SET, DAP WILL BE INITIALIZED TO
|
|
ADS FLGWRD10 # ASCENT VALUES BY 1/ACCS IN 2 SECONDS.
|
|
|
|
ULLGNOT EXTEND # (1)
|
|
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
|
|
# Page 737
|
|
DCA NEG0 # CLEAR OUT GROUP 2 SO LAMBERT CAN START
|
|
DXCH -PHASE2 # IF NEEDED.
|
|
|
|
REDO4.2 CCS PHASE5 # IF SERVICER GOING?
|
|
TCF TASKOVER # YES, DON'T START IT UP AGAIN.
|
|
|
|
TC POSTJUMP
|
|
CADR PREREAD # PREREAD END THIS TASK
|
|
|
|
# *********************************
|
|
|
|
ULLGTASK TC ONULLAGE # THIS COMES AT TIG-7.5 OR TIG-3.5
|
|
TC PHASCHNG
|
|
OCT 1
|
|
TCF TASKOVER
|
|
|
|
# *********************************
|
|
|
|
TIG-5 EXTEND
|
|
DCA NEG0 # INSURE THAT GROUP 3 IS INACTIVE.
|
|
DXCH -PHASE3
|
|
|
|
CAF 5SEC
|
|
TC TWIDDLE
|
|
ADRES TIG-0
|
|
|
|
TC DOWNFLAG # RESET IGNFLAG AND ASINFLAG
|
|
ADRES IGNFLAG # FOR LIGHT-UP LOGIC.
|
|
TC DOWNFLAG
|
|
ADRES ASTNFLAG
|
|
|
|
INDEX WHICH
|
|
TCF 11
|
|
|
|
P40SJUNK CCS PHASE3 # (11) P40 AND P42. S40.13 IN PROGRESS?
|
|
TCF DISPCHNG # YES
|
|
|
|
CAF PRIO20
|
|
TC FINDVAC
|
|
EBANK= TTOGO
|
|
2CADR S40.13
|
|
|
|
TC PHASCHNG # 3.5SPOT FOR S40.13
|
|
OCT 00053
|
|
DISPCHNG CS VB99DEX # (11)
|
|
TS DISPDEX
|
|
|
|
# Page 738
|
|
COMMON TC PHASCHNG # RESTART TIG-0 (4.7SPOT)
|
|
OCT 40074
|
|
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 WAITLIST
|
|
EBANK= DVCNTR
|
|
2CADR P63ZOOM
|
|
|
|
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
|
|
|
|
# Page 739
|
|
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
|
|
|
|
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 FLPASS0
|
|
TS WCHPHASE
|
|
TS WCHPHOLD # ALSO WHCPHOLD
|
|
CA TWO
|
|
TS FLPASS0
|
|
|
|
TCF P42IGN
|
|
P40IGN CS FLAGWRD5 # (13)
|
|
MASK NOTHRBIT
|
|
EXTEND
|
|
BZF P42IGN
|
|
CA ZOOMTIME
|
|
TC WAITLIST
|
|
EBANK= DVCNTR
|
|
2CADR P40ZOOM
|
|
|
|
P63IGN1 TC 2PHSCHNG
|
|
OCT 40033 # 3.3SPOT FOR ZOOM RESTART.
|
|
OCT 05014 # TYPE C RESTARTS HERE IMMEDIATELY
|
|
OCT 77777
|
|
|
|
# Page 740
|
|
TCF P42IGN
|
|
P12IGN CAF EBANK6
|
|
TS EBANK
|
|
EBANK= AOSQ
|
|
|
|
CA IGNAOSQ # INITIALIZE DAP BIAS ACCELERATION
|
|
TS AOSQ # ESTIMATES AT P12 IGNITION.
|
|
CA IGNAOSR
|
|
TS AOSR
|
|
|
|
CAF EBANK7
|
|
TS EBANK
|
|
EBANK= DVCNTR
|
|
|
|
ABRTIGN 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
|
|
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
|
|
# Page 741
|
|
DXCH -PHASE4
|
|
|
|
TCF TASKOVER
|
|
|
|
TIGTASK TC POSTJUMP # (12)
|
|
CADR TIGTASK1
|
|
|
|
# ********************************
|
|
|
|
BANK 31
|
|
SETLOC P40S3
|
|
BANK
|
|
COUNT* $$/P40
|
|
|
|
TIGTASK1 CAF PRIO16
|
|
TC NOVAC
|
|
EBANK= TRKMKCNT
|
|
2CADR TIGNOW
|
|
|
|
TC PHASCHNG
|
|
OCT 6 # KILL GROUP 6
|
|
|
|
TCF TASKOVER
|
|
|
|
# ********************************
|
|
|
|
P63ZOOM EXTEND
|
|
DCA LUNLANAD
|
|
DXCH AVEGEXIT
|
|
|
|
TC IBNKCALL
|
|
CADR FLATOUT
|
|
TCF P40ZOOMA
|
|
|
|
P40ZOOM CAF BIT13
|
|
TS THRUST
|
|
CAF BIT4
|
|
|
|
EXTEND
|
|
WOR CHAN14
|
|
|
|
P40ZOOMA TC PHASCHNG
|
|
OCT 3
|
|
TCF TASKOVER
|
|
|
|
EBANK= DVCNTR
|
|
LUNLANAD 2CADR LUNLAND
|
|
|
|
# Page 742
|
|
ZOOM = P40ZOOMA
|
|
BANK 36
|
|
SETLOC P40S
|
|
BANK
|
|
COUNT* $$/P40
|
|
|
|
# ********************************
|
|
|
|
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
|
|
|
|
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
|
|
# Page 743
|
|
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
|
|
|
|
# ***********************************
|
|
|
|
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
|
|
# Page 744
|
|
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
|
|
# Page 745
|
|
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 B -0 *****
|
|
INDEX A
|
|
TCF DISPNOT -1 # (-1 DUE TO EFFECT OF CCS)
|
|
|
|
VB97DEX = OCT35 # NEGATIVE OF THIS IS PROPER FOR DISPDEX
|
|
|
|
-35 CS ZERO # INDICATE VERB 97 PASTE
|
|
TS NVWORD1
|
|
CA NVWORD +2 # NVWORD+2 CONTAINS V06 & APPROPRIATE NOUN
|
|
TC BANKCALL
|
|
CADR CLOCPLAY
|
|
TCF STOPCLOK # TERMINATE CLOKTASK ON THE WAY TO P00H
|
|
TCF COMFAIL1
|
|
TCF COMFAIL2
|
|
|
|
# THIS DISPLAY IS CALLED VIA ASTNCLOK
|
|
-25 CAF V06N61 # IT IS PRIMARILY USED BY THE CREW IN P63
|
|
TC BANKCALL # TO RESET HIS EVENT TIMER TO AGREE WITH
|
|
CADR REFLASH # TIG.
|
|
TCF STOPCLOK
|
|
TCF ASTNRETN
|
|
TCF -6
|
|
|
|
CNTDNDEX = LOW4 # OCT17: NEGATIVE PROPER FOR DISPDEX
|
|
|
|
-17 INDEX WHICH # THIS DISPLAY COMES UP AT ONE SECOND
|
|
# Was CAF --- RSB 2009
|
|
CA 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 = ELEVEN # OCT13: NEGATIVE PROPER FOR DISPDEX
|
|
|
|
V99RECYC EQUALS
|
|
|
|
-13 CS BIT9 # INDICATE VERB 99 PASTE
|
|
TS NVWORD1
|
|
INDEX WHICH # THIS IS THE "PLEASE ENABLE ENGINE"
|
|
# Was CAF --- RSB 2004
|
|
CA 0 # DISPLAY; IT IS INITIATED AT TIG-5 SEC.
|
|
TC BANKCALL # THE DISPLAY IS A V99NXX, WHERE XX IS
|
|
CADR CLOCPLAY # NOUN THAT HAD PREVIOUSLY BEEN DISPLAYED
|
|
TCF STOPCLOK # TERMINATE GOTOP00H TURNS OFF ULLAGE.
|
|
TCF *PROCEED
|
|
TCF *ENTER
|
|
|
|
# Page 746
|
|
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 GOTOP00H # WAY TO P00 (GOTOP00H 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
|
|
|
|
TCF IGNITE
|
|
|
|
*ENTER INHINT
|
|
INDEX WHICH
|
|
TCF 3
|
|
|
|
GOPOST CAF PRIO12 # (3) MUST BE LOWER PRIORITY THAN CLOKJOB
|
|
TC FINDVAC
|
|
EBANK= TTOGO
|
|
2CADR POSTBURN
|
|
|
|
# Page 747
|
|
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
|
|
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
|
|
|
|
# Page 748
|
|
# ********************************
|
|
|
|
P40ALM TC ALARM # PROGRAM SELECTION NOT CONSISTENT WITH
|
|
OCT 1706 # VEHICLE CONFIGURATION
|
|
|
|
REP40ALM CAF V05N09 # (14)
|
|
TC BANKCALL
|
|
CADR GOFLASH
|
|
|
|
TCF GOTOP00H # V34E TERMINATE
|
|
TCF +2 # PROCEED CHECK FOR P42
|
|
TCF REP40ALM # V32E REDISPLAY ALARM
|
|
|
|
INDEX WHICH # FOR P42, ALLOW CREW TO PROCEED EVEN
|
|
TCF 14 # THOUGH VEHICLE IS UNSTAGED.
|
|
|
|
# ********************************
|
|
|
|
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 AUTO-THROTTLE MODE
|
|
EXTEND
|
|
RAND CHAN30
|
|
EXTEND
|
|
BZF GOBACK # IN AUTO-THROTTLE MODE -- RETURN
|
|
TURNITON CAF P40A/PMD # DISPLAYS V50N25 R1=203 PLEASE PERFORM
|
|
TC BANKCALL # CHECKLIST 203 TURN ON PGNCS ETC.
|
|
CADR GOPERF1
|
|
TCF GOTOP00H # V34E TERMINATE
|
|
TCF P40A/P # RECYCLE
|
|
GOBACK CA TEMPR60
|
|
TC BANKJUMP # GOODBYE. COME AGAIN SOON.
|
|
|
|
P40A/PMD OCT 00203
|
|
|
|
# Page 749
|
|
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= DVCNTR
|
|
DSP2CADR 2CADR P63DISPS -2
|
|
|
|
EBANK= DVCNTR
|
|
ATMAGADR 2CADR ATMAG
|
|
|
|
? = GOTOP00H
|
|
|
|
D29.9SEC 2DEC 2990
|
|
|
|
S24.9SEC DEC 2490
|
|
|
|
4.9SEC DEC 490
|
|
|
|
OCT20 = BIT5
|
|
|
|
V06N61 VN 0661
|
|
|
|
# Page 750
|
|
# KILLTASK
|
|
# MOD NO: NEW PROGRAM
|
|
# MOD BY: COVELLI
|
|
#
|
|
# FUNCTIONAL DESCRIPTION:
|
|
#
|
|
# KILLTASK IS USED TO REMOVE A TASK FROM THE WAITLIST BY SUBSTITUTING A NULL 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
|
|
# LEAVES INTERRUPTS INHIBITED SO CALLER MUST RELINT
|
|
#
|
|
# CALLING SEQUENCE
|
|
# 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
|
|
INHINT
|
|
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 751
|
|
INCR Q
|
|
EXTEND
|
|
QXCH ITEMP1 # RETURN 2ADR 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
|