https://github.com/virtualagc/virtualagc
Revision 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC, committed by Ron Burkey on 07 August 2022, 15:04:04 UTC
assembly listings from yaASM and yaLEMAP. Added some debugging messages to 'make install'. Tweaked debugging messages that VirtualAGC embeds in 'simulate'. Verified buildability in Mint 21, 20, 19, 17, and verified buildability using clang in Mint 17.
1 parent 6bb1acc
Tip revision: 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
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 Luminary revision 173.
## It is part of the reconstructed source code for the second
## (unflown) release of the flight software for the Lunar
## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 14.
## The code has been recreated from a reconstructed copy of
## Luminary 178, as well as Luminary memo 167 (revision 1).
## It has been adapted such that the resulting bugger words
## exactly match those specified for Luminary 173 in NASA
## drawing 2021152N, which gives relatively high confidence
## that the reconstruction is correct.
## Reference: pp. 717-737
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2019-09-18 MAS Created from Luminary 178. Changed
## P42TABLE +6 back to 2390.
## 2019-09-21 MAS Added back setting of SWANDISP in
## P63IGN and ABTIGN.
## Page 717
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)
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 718
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 719
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
TC 5
P42SPOT = P40SPOT # (5)
P12SPOT = P40SPOT # (5)
P63SPOT = P41SPOT # (5) IN P63 CLOKTASK ALREADY GOING
P40SPOT CS CNTDNDEX # (5)
TC BANKCALL # MUST BE BANKCALLED FOR GENERALIZED
## Page 720
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.
TC CHECKMM
## Page 721
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 722
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
INDEX WHICH
TC 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 723
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 EXTEND
DCA NEG0 # INSURE THAT GROUP 3 IS INACTIVE.
DXCH -PHASE3
CAF 5SEC
TC TWIDDLE
ADRES TIG-0
TC DOWNFLAG # RESET IGNFLAG AND ASTNFLAG
ADRES IGNFLAG # FOR LIGHT-UP LOGIC
TC DOWNFLAG
ADRES ASTNFLAG
TC DOWNFLAG
ADRES ZOOMFLAG
INDEX WHICH
TC 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
## Page 724
DISPCHNG CS VB99DEX # (11)
TS DISPDEX
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 ZOOM
TC 2PHSCHNG
OCT 40033
OCT 05014
OCT 77777
IGNYET? CAF ASTNBIT # CHECK ASTNFLAG: HAS ASTRONAUT RESPONDED
MASK FLAGWRD7 # TO OUR ENGINE ENABLE REQUEST?
CCS A
TCF IGNITION
INDEX WHICH
TC 12
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
CS PULSES # MAKE SURE THAT DAP IS NOT IN MINIMUM
MASK DAPBOOLS # IMPULSE MODE IN P12,P40,P42,AND P63
TS DAPBOOLS
## Page 725
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
TC 13
P63IGN EXTEND # (13) INITIATE BURN DISPLAYS
DCA LUNLANAD
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
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
TC WAITLIST
EBANK= DVCNTR
2CADR ZOOM
P63IGN1 TC 2PHSCHNG
OCT 40033 # 3.3SPOT FOR ZOOM RESTART.
OCT 05014 # TYPE C RESTARTS HERE IMMEDIATELY
OCT 77777
## Page 726
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
DXCH -PHASE4
TCF TASKOVER
## Page 727
TIGTASK TC POSTJUMP # (12)
CADR TIGTASK1
# ****************************************
BANK 31
SETLOC P40S3
BANK
COUNT* $$/P40
TIGTASK1 CAF PRIO16
TC NOVAC
EBANK= TRKMKCNT
2CADR TIGNOW
TC DOWNFLAG
ADRES PULSEFLG
TC PHASCHNG
OCT 6 # KILL GROUP 6.
TCF TASKOVER
# ****************************************
ZOOM TC CHECKMM # P40 OR P63?
DEC 63
TCF P40ZOOM
P63ZOOM TC UPFLAG # INDICATE THAT THROTTLE-UP HAS COME
ADRES ZOOMFLAG
TC IBNKCALL
CADR FLATOUT
TCF P40ZOOMA
P40ZOOM CAF BIT13
TS THRUST
CAF BIT4
EXTEND
WOR CHAN14
P40ZOOMA TC PHASCHNG
OCT 3
TCF TASKOVER
BANK 36
## Page 728
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
TC 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
TC INVFLAG # USE OTHER RCS SYSTEM
ADRES AORBTFLG
## Page 729
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
DAS MPAC # HAVE TIG - TIME2, UNDOUBTEDLY A + NUMBER
TC TPAGREE # POSITIVE, SINCE WE PASSED THE
## Page 730
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
## Page 731
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 = OCT35 # NEGATIVE OF THIS IS PROPER FOR DISPDEX
-35 CS ZERO # INDICATE VERB 97 PASTE
TS NVWORD1
CA NVWORD +2 # NVWROD+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 -5
CNTDNDEX = LOW4 # OCT17: NEGATIVE PROPER FOR DISPDEX
-17 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 = 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"
CAF 0 # DISPLAY; IT IS INITIATED AT TIG-5 SEC.
TC BANKCALL # THE DISPLAY IS A V99NXX, WHERE XX IS THE
CADR CLOCPLAY # NOUN THAT HAD PREVIOUSLY BEEN DISPLAYED
TCF STOPCLOK # TERMINATE GOTOPOOH TURNS OFF ULLAGE.
TCF *PROCEED
TCF *ENTER
BLANKDEX = TWO # NEGATIVE OF THIS IS PROPER FOR DISPDEX
## Page 732
-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
TCF IGNITE
*ENTER INHINT
INDEX WHICH
TC 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
## Page 733
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 734
P40ALM TC ALARM # PROGRAM SELECTION NOT CONSISTENT WITH
OCT 1706 # VEHICLE CONFIGURATION
REP40ALM CAF V05N09 # (14)
TC BANKCALL
CADR GOFLASH
TCF GOTOPOOH # V34E TERMINATE
TCF +2 # PROCEED CHECK FOR P42
TCF REP40ALM # V32E REDISPLAY ALARM
INDEX WHICH # FOR P42, ALLOW CREW TO PROCEED EVEN
TC 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 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
## Page 735
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
LUNLANAD 2CADR LUNLAND
EBANK= DVCNTR
ATMAGADR 2CADR ATMAG
? = GOTOPOOH
D29.9SEC 2DEC 2990
S24.9SEC DEC 2490
4.9SEC DEC 490
OCT20 = BIT5
V06N61 VN 0661
## Page 736
# 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
# 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 737
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 ...