Permalink
Excluding Luminary099 P30_P37 as covered by existing PR. This was missed when the other `POO(H)` names were checked and fixed several months ago.
# 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-061 | |
# 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. | |
## | |
## 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 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 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 POOH | |
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 GOTOPOOH 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 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 | |
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 GOTOPOOH # 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 GOTOPOOH # 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 | |
? = GOTOPOOH | |
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 |