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
Raw File
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
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
back to top