SERVICER.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: SERVICER.agc
## Purpose: A section of Luminary revision 210.
## It is part of the source code for the Lunar Module's (LM)
## Apollo Guidance Computer (AGC) for Apollo 15-17.
## This file is intended to be a faithful transcription, except
## that the code format has been changed to conform to the
## requirements of the yaYUL assembler rather than the
## original YUL assembler.
## Reference: pp. 860-894
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2016-11-17 JL Created from Luminary131 version.
## 2016-11-27 MAS Began transcription.
## 2016-11-28 MAS Completed transcription. Lots of changes (including
## the new terrain model) and lots and lots of updated
## comments.
## 2016-11-29 HG fix opcode BDSL -> BDSU
## 2016-12-07 HG fix P00 -> POO (appears only in comments)
## 2016-12-12 hg Fix operator BZMF -> BZF
## 2016-12-25 RSB Comment-text proofed using ProoferComments
## and corrected errors found.
## 2017-03-16 RSB Comment-text fixes identified in 5-way
## side-by-side diff of Luminary 69/99/116/131/210.
## Page 860
BANK 37
SETLOC SERV1
BANK
EBANK= DVCNTR
# ************************************* PREREAD **************************************************************
COUNT* $$/SERV
PREREAD CAF SEVEN # 5.7 SPOT TO SKIP LASTBIAS AFTER
TC GNUFAZE5 # RESTART.
CAF PRIO21
TC NOVAC
EBANK= NBDX
2CADR LASTBIAS # DO LAST GYRO COMPENSATION IN FREE FALL
BIBIBIAS TC PIPASR +3 # CLEAR + READ PIPS LAST TIME IN FREE FALL
# DO NOT DESTROY VALUE OF PIPTIME1
CS FLAGWRD7
MASK SUPER011 # SET V37FLAG AND AVEGFLAG (BITS 5 AND 6
ADS FLAGWRD7 # OF FLAGWRD7)
CS DRFTBIT
MASK FLAGWRD2 # START POWERED FLITE GYRO COMPENSATION
TS FLAGWRD2 # BY T3RUPT
CAF FOUR # NO LONGER NEEDED
TS PIPAGE
CAF PRIO22 # INITIALIZE NAVIGATED STATE VECTOR(SM COO
TC FINDVAC # RD) FROM MIDTOAVE OUTPUTS PRIOR TO FIRST
EBANK= DVCNTR # AVERAGE G.
2CADR NORMLIZE
CA TWO # 5.2SPOT FOR REREADAC AND NORMLIZE
GOREADAX TC GNUTFAZ5
CA 2SECS # WAIT TWO SECONDS FOR READACCS
TC VARDELAY
## Page 861
# ************************************* READACCS *************************************************************
READACCS CS OCT37771 # THIS PIECE OF CODING ATTEMPTS TO
AD TIME5 # SYNCHRONIZE READACCS WITH THE DIGITAL
CCS A # AUTOPILOT SO THAT A PAXIS RUPT WILL
CS ONE # OCCUR APPROXIMATELY 70 MILLISECONDS
TCF +2 # FOLLOWING THE READACCS RUPT. THE 70 MS
CA ONE # OFFSET WAS CHOSEN SO THAT THE PAXIS
+2 ADS TIME5 # RUPT WOULD NOT OCCUR SIMULTANEOUSLY
# WITH ANY OF THE 8 SUBSEQUENT R10,R11
# INTERRUPTS -- THUS MINIMIZING THE POSS-
# IBILITY OF LOSING DOWNRUPTS.
TC PIPASR # READ THE PIPAS AND THEN ZERO THEM.
PIPSDONE CA FIVE
TC GNUFAZE5
REDO5.5 CAF ONE # SHOWS THAT PIPAREAD HAD NOT STARTED
TS PIPAGE # SO THAT RESTART BEGINS AT READACCS.
CA PRIO20
TC FINDVAC
EBANK= DVCNTR
2CADR SERVICER # SET UP SERVICER JOB
CA BIT9
EXTEND
WOR DSALMOUT # TURN ON TEST CONNECTOR OUTBIT,AVE G ON.
CA FLAGWRD7 # WAS AVERAGE G ASKED TO BE TERMINATED?
MASK AVEGFBIT
EXTEND
BZF AVEGOUT # YES: SET UP FINAL EXIT.
CA FLAGWRD6 # NO: IS THIS P6X OR P12?
MASK MUNFLBIT
EXTEND
BZF MAKEACCS # NO: BYPASS LR READ AND DISPLAYS
CS FLGWRD11 # YES: DOES SOMEONE WANT TO BYPASS LR UPDT
MASK LRBYBIT
EXTEND
BZF R10CALL # YES: BYPASS LR READINGS
CA 1.75SEC # CALL R12 0.25 SEC PRIOR TO NEXT READACCS
TC WAITLIST # VELOCITY LANDING RADAR READINGS ARE CENT
EBANK= VSELECT # ERED AROUND PIPTIME. 2 VELOCITY AND 1 AL
2CADR R12READ # TITUDE READINGS BEFORE PIPTIME,3 V AFTER
## Page 862
R10CALL CCS PHASE2
TCF MAKEACCS # PHASE 2 ACTIVATED - AVOID MULTIPLE R10.
CAF SEVEN # SET PIPCTR FOR 4X/SEC RATE.
TS PIPCTR
CS TIME1 # SET TBASE2 .05 SECONDS IN THE PAST.
AD FIVE
AD NEG1/2
AD NEG1/2
XCH TBASE2
CAF DEC17 # 2.21SPOT FOR R10,R11
TS L
COM
DXCH -PHASE2
CAF OCT24 # FIRST R10,R11 IN .200 SECONDS.
TC WAITLIST
EBANK= UNIT/R/
2CADR R10,R11
MAKEACCS CA FOUR
TCF GOREADAX # DO PHASE CHANGE AND RECALL READACCS
AVEGOUT EXTEND
DCA AVOUTCAD # SET UP FINAL SERVICER EXIT
DXCH AVGEXIT
CA FOUR # SET 5.4 SPOT FOR REREADAC AND SERVICER
TC GNUTFAZ5 # IF REREADAC IS CALLED, IT WILL EXIT
TC TASKOVER # END TASK WITHOUT CALLING READACCS
GNUTFAZ5 TS L # SAVE INPUT IN L
CS TIME1
TS TBASE5 # SET TBASE5
TCF +2
GNUFAZE5 TS L # SAVE INPUT IN L
CS L # -PHASE IN A, PHASE IN L
DXCH -PHASE5 # SET -PHASE5,PHASE5
TC Q
EBANK= DVCNTR
AVOUTCAD 2CADR AVGEND
## Page 863
1.75SEC DEC 175
OCT37771 OCT 37771
BANK 33
SETLOC SERVICES
BANK
COUNT* $$/SERV
## Page 864
# ************************************* SERVICER *************************************************************
#
SERVICER TC PHASCHNG # RESTART REREADAC + SERVICER
OCT 16035
OCT 20000
EBANK= DVCNTR
2CADR GETABVAL
CAF PRIO31 # INITIALIZE 1/PIPADT IN CASE RESTART HAS
TS 1/PIPADT # CAUSED LASTBIAS TO BE SKIPPED.
TC BANKCALL # PIPA COMPENSATION CALL
CADR 1/PIPA
GETABVAL TC INTPRET
VLOAD ABVAL
DELV
EXIT
CA MPAC
TS ABDELV # ABDELV = CM/SEC*2(-14).
EXTEND
MP KPIP
DXCH ABDVCONV # ABDVCONV = M/CS *2(-5).
EXTEND
DCA MASS
DXCH MASS1 # NO MASS MONITOR ON SURFACE.
MASSMON CS FLAGWRD8 # ARE WE ON THE SURFACE?
MASK SURFFBIT
EXTEND
BZF MOONSPOT # YES: BYPASS MASS MESS
CA FLGWRD10 # NO: WHICH VEX SHOULD BE USED?
MASK APSFLBIT
CCS A
EXTEND # IF EXTEND IS EXECUTED, APSVEX --> A,
DCA APSVEX # OTHERWISE DPSVEX --> A
TS Q
EXTEND
DCA ABDVCONV
EXTEND
DV Q # WHERE APPROPRIATE VEX RESIDES
EXTEND
MP MASS
DAS MASS1
TC DMP # TP MPAC = ABDELV AT 2(14) CM/SEC
## Page 865
ADRES KPIP1 # DMP BY DP KPIP1 TO GET
EXTEND
DCA DVTOTAL
DAS MPAC # MPAC = ABDELV AT 2(7) M/CS
DXCH MPAC
DXCH DVTEMP # SAVE NEW DVTOTAL FOR RESTARTS
TC QUIKFAZ5
EXTEND
DCA DVTEMP
DXCH DVTOTAL
MOONSPOT TC TMPTOSPT # CDUS AT PIPTIME LOADED INTO CDUSPOT CELL
TC BANKCALL # SINES AND COSINES OF CDUSPOT.
CADR QUICTRIG
CAF XNBPIPAD
TC BANKCALL # COMPUTE BOD-TO-SM MATRIX (XNB),AND
CADR FLESHPOT # STORE INTO XNBPIPAD.
TC INTPRET
AVERAGEG BON CALL
MUNFLAG # COMPUTE LM & CM STATE VECTORS IN LUNAR G
RVBOTH # ,DO R12 , DO COPYCYCL1, RETURN AT COPYCL
CALCRVG # UPDATE LM STATE VECTOR.
EXIT
GOSERV TC QUIKFAZ5
COPYCYCL TC COPYCYC # RN1,VN1,MASS1 => RN,VN,MASS.
# CA ZERO A IS ZERO ON RETURN FROM COPYCYC
TS PIPATMPX # STILL UNDER INHINT
TS PIPATMPY
TS PIPATMPZ
CS STEERBIT # CLEAR STEERSW PRIOR TO DVMON.
MASK FLAGWRD2
TS FLAGWRD2
CAF IDLEFBIT # IS DV MONITOR TO BE TURNED ON?
MASK FLAGWRD7
CCS A
TCF NODVMON1 # NO: SET AUXFLAG TO 0
CS FLAGWRD6 # ALLOW ANOTHER PASS WITHOUT DVMON?
MASK AUXFLBIT
CCS A
TCF NODVMON2 # YES: SET AUXFLAG TO 0
## Page 866
DVMON CS DVTHRUSH # SUFFICIENT THRUST TO STEER WITH?
AD ABDELV
EXTEND
BZMF LOTHRUST # NO: THRUST TOO LO, DECREMENT DVCNTR
CS FLAGWRD2 # YES: SET STEERSW TO ALLOW GUIDANCE.
MASK STEERBIT
ADS FLAGWRD2
DVCNTSET CAF ONE # ALLOW TWO PASSES MAXIMUM NOW THAT
TS DVCNTR # THRUST HAS BEEN DETECTED.
CA FLGWRD10 # IS APSFLAG SET?
MASK APSFLBIT
CCS A
TCF USEJETS # YES: USE RCS TO STEER ASCENT STAGE.
CA BIT9 # NO: PITCH GIMBAL FAILURE?
EXTEND
RAND CHAN32
EXTEND
BZF USEJETS # YES: USE RCS TO STEER DESCENT STAGE.
USEGTS CS USEQRJTS # NO: USE GTS TO STEER DESCENT STAGE.
MASK DAPBOOLS
TS DAPBOOLS
TCF SERVOUT
NODVMON1 CS AUXFLBIT # SET AUXFLAG TO 0.
MASK FLAGWRD6
TS FLAGWRD6
TCF USEJETS
NODVMON2 CS FLAGWRD6 # SET AUXFLAG TO 1.
MASK AUXFLBIT
ADS FLAGWRD6
TCF USEJETS
LOTHRUST TC QUIKFAZ5
CCS DVCNTR # TWO PASSES OF LO THRUST?
TCF DECCNTR # NO: DECREMENT DVCNTR.
CCS PHASE4 # COMFAIL JOB ACTIVE?
TCF SERVOUT # YES WON'T NEED ANOTHER.
TC PHASCHNG # 4.37SPOT FOR COMFAIL.
OCT 00374
CAF PRIO25
TC NOVAC
EBANK= WHICH
## Page 867
2CADR COMFAIL # ESTABLISH JOB COMFAIL FOR
TCF SERVOUT # THRUST FAIL LOGIC.
DECCNTR TS DVCNTR1
TC QUIKFAZ5
CA DVCNTR1
TS DVCNTR
INHINT
TC IBNKCALL # IF THRUST IS LOW, NO STEERING IS DONE
CADR STOPRATE # AND THE DESIRED RATES ARE SET TO ZERO.
USEJETS CS DAPBOOLS
MASK USEQRJTS
ADS DAPBOOLS # TELL DAP TO USE RCS TO STEER.
SERVOUT RELINT
TC BANKCALL # COMPUTE VEHICLE MOMENTS OF INERTIA.
CADR 1/ACCS
CA PRIORITY
MASK LOW9
TS PUSHLOC
ZL
DXCH FIXLOC # FIXLOC AND OVFIND
TC QUIKFAZ5
CS PIPTIME +1
AD TIME1
AD HALF
AD HALF
XCH SERVDURN # SERVICER DURATION FOR DOWNLINK
EXTEND # EXIT TO SELECTED ROUTINE WHETHER THERE
DCA AVGEXIT # IS THRUST OR NOT. THE STATE OF STEERSW
DXCH Z # WILL CONVEY THIS INFORMATION.
XNBPIPAD ECADR XNBPIP
BANK 32
SETLOC SERV2
BANK
COUNT* $$/SERV
AVGEND CA PIPTIME +1 # FINAL AVERAGE G EXIT,AVEGFLAG SET.
TS 1/PIPADT # SET UP COASTING FLIGHT GYRO COMPENSATION
TC UPFLAG # SET DRIFT FLAG, TERMINATE POWERED FLITE
ADRES DRIFTFLG # GYRO COMPENSATION.
## The above two instructions are circled.
TC BANKCALL
CADR PIPFREE
## Page 868
CS BIT9
EXTEND
WAND DSALMOUT # TELL WORLD THAT AVERAGEG IS NOW OFF.
TC 2PHSCHNG
OCT 5 # GROUP 5 OFF
OCT 05022 # GROUP 2 ON
OCT 20000
TC INTPRET
CLEAR
SWANDISP # SHUT OFF R10 WHEN SERVICER ENDS.
CLEAR CALL # RESET MUNFLAG.
MUNFLAG
AVETOMID # BRING CM STATE VECTOR UP TO PIPTIME.
CLEAR EXIT
V37FLAG
AVERTRN TC POSTJUMP
CADR V37RET # GO TO V37 LOGIC.
OUTGOAVE = AVERTRN
## Page 869
# SERVIDLE IS ENTERED AFTER A POODOO SOFTWARE RESTART. SERVICER CONTINUES,BUT GUIDANCE AND R12 ( IF RUNNING) ARE
# TERMINATED. ABORTS MONITOR CONTINUES TO RUN.
SETLOC SERV3
BANK
COUNT* $$/SERV
SERVIDLE EXTEND # DISCONNECT SERVICER FROM ALL GUIDANCE
DCA SVEXTADR
DXCH AVGEXIT
CS FLAGWRD7 # DISCONNECT THE DELTA-V MONITOR
MASK IDLEFBIT
ADS FLAGWRD7
CAF LRBYBIT # TERMINATE R12 IF RUNNING.
TS FLGWRD11
EXTEND
DCA NEG0
DXCH -PHASE1
CA FLAGWRD6 # DO NOT TURN OFF PHASE 2 IF MUNFLAG SET.
MASK MUNFLBIT
CCS A
TCF +4
EXTEND
DCA NEG0
DXCH -PHASE2
+4 EXTEND
DCA NEG0
DXCH -PHASE3
EXTEND
DCA NEG0
DXCH -PHASE6
CAF OCT33 # 4.33SPOT FOR GOPOOFIX
TS L
COM
DXCH -PHASE4
TCF WHIMPER # PERFORM A SOFTWARE RESTART AND PROCEED
# TO GOTOPOOH WHILE SERVICER CONTINUES TO
# RUN, ALBEIT IN A GROUND STATE WHERE
# ONLY STATE-VECTOR DEPENDENT FUNCTIONS
# ARE MAINTAINED.
## Page 870
EBANK= DVCNTR
SVEXTADR 2CADR SERVEXIT
BANK 32
SETLOC SERV
BANK
COUNT* $$/SERV
SERVEXIT TC PHASCHNG
OCT 00035
TCF ENDOFJOB
## Page 871
# NORMLIZE AND COPYCYCL
NORMLIZE TC INTPRET
VLOAD BOFF
RN1
MUNFLAG
NORMLIZ1 # DO NOT USE LUNAR LANDING AVERAGE G
VSL6 MXV
REFSMMAT
STCALL R # LM POS VECTOR IN SM COORD AT 2(+24)M.
MUNGRAV # USE LUNAR LANDING AVERAGE G ROUTINE.
VLOAD VSL1
VN1
MXV
REFSMMAT
STORE V # LM VEL VECTOR IN SM COORD AT 2(+7)M/CS.
SLOAD PUSH # COMPUTE PIPA BIAS VECTOR FOR USE BY
PBIASZ # P66ROD AND LANDING ANALOG DISPLAYS
SLOAD PUSH
PBIASY
SLOAD VDEF
PBIASX
VXSC
BIASFACT
STORE VBIAS # ONE SECOND'S BIAS IN UNITS OF 2(7) M/CS
ASCSPOT EXIT
EXTEND # MAKE SURE GOUP 2 IS OFF.
DCA NEG0
DXCH -PHASE2
TC POSTJUMP
CADR NORMLIZ2
BANK 33
SETLOC SERVICES
BANK
COUNT* $$/SERV
NORMLIZ1 CALL
CALCGRAV
EXIT
NORMLIZ2 CA EIGHTEEN
TC COPYCYC +1 # DO NOT COPY MASS IN NORMLIZE
TC ENDOFJOB
# COPYCYC PLACES NEWLY NAVIGATED STATE VECTORS AND MASS INTO DOWNLIST REG
COPYCYC CA OCT24 # DEC 20
## Page 872
+1 INHINT
+2 MASK NEG1 # REDUCE BY 1 IF ODD
TS ITEMP1
EXTEND
INDEX ITEMP1
DCA RN1
INDEX ITEMP1
DXCH RN
CCS ITEMP1
TCF COPYCYC +2
TC Q # RETURN UNDER INHINT
EIGHTEEN DEC 18
## Page 873
# ******************* PIPA READER ********************
# MOD NO. 00 BY D. LICKLY DEC.9 1966
# FUNCTIONAL DESCRIPTION
# SUBROUTINE TO READ PIPA COUNTERS, TRYING TO BE VERY CAREFUL SO THAT IT WILL BE RESTARTABLE.
# PIPA READINGS ARE STORED IN THE VECTOR DELV. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS THE PIPA READING,
# RESTARTS BEGIN AT REREADAC.
# AT THE END OF THE PIPA READER THE CDUS ARE READ AND STORED AS A
# VECTOR IN CDUTEMP. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS
# THE CDU READING IN 2S COMP IN THE ORDER CDUX,Y,Z. THE THRUST
# VECTOR ESTIMATOR IN FINDCDUD REQUIRES THE CDUS BE READ AT PIPTIME.
# CALLING SEQUENCE AND EXIT
# CALL VIA TC, ISWCALL, ETC.
# EXIT IS VIA Q.
#
# INPUT
# INPUT IS THROUGH THE COUNTERS PIPAX, PIPAY, PIPAZ, AND TIME2.
# OUTPUT
# HIGH ORDER COMPONENTS OF THE VECTOR DELV CONTAIN THE PIPA READINGS.
# PIPTIME CONTAINS TIME OF PIPA READING.
# DEBRIS (ERASABLE LOCATIONS DESTROYED BY PROGRAM)
# TEMX TEMY TEMZ PIPAGE
BANK 37
SETLOC SERV1
BANK
COUNT* $$/SERV
PIPASR EXTEND
## Page 874
DCA TIME2
DXCH PIPTIME1 # CURRENT TIME POSITIVE VALUE
+3 CS ZERO # INITIALIZE THESE AT NEG. ZERO.
TS TEMX
TS TEMY
TS TEMZ
CA ZERO
TS DELVZ
TS DELVZ +1
TS DELVY
TS DELVY +1
TS DELVX +1
TS PIPAGE # SHOW PIPA READING IN PROGRESS
REPIP1 EXTEND
DCS PIPAX # X AND Y PIPS READ
DXCH TEMX
DXCH PIPAX # PIPAS SET TO NEG ZERO AS READ.
TS DELVX
LXCH DELVY
REPIP3 CS PIPAZ # REPEAT PROCESS FOR Z PIP
XCH TEMZ
XCH PIPAZ
DODELVZ TS DELVZ
REPIP4 EXTEND # COMPUTE GUIDANCE PERIOD
DCA PIPTIME1
DXCH PGUIDE
EXTEND
DCS PIPTIME
DAS PGUIDE
CA CDUX # READ CDUS INTO HIGH ORDER CDUTEMPS
TS CDUTEMPX
CA CDUY
TS CDUTEMPY
CA CDUZ
TS CDUTEMPZ
CA DELVX
TS PIPATMPX
CA DELVY
TS PIPATMPY
CA DELVZ
TS PIPATMPZ
TC Q
## In the margins above there are some doodles of something I can't quite make out. Possibly satellites.
## Page 875
REREADAC CCS PIPAGE
TCF READACCS # PIP READING NOT STARTED. GO TO BEGINNING
CAF DONEADR # SET UP RETURN FROM PIPASR
TS Q
CCS DELVZ
TCF REPIP4 # Z DONE, GO DO CDUS
TCF +3 # Z NOT DONE, CHECK Y.
TCF REPIP4
TCF REPIP4
ZL
CCS DELVY
TCF +3
TCF CHKTEMX # Y NOT DONE, CHECK X.
TCF +1
LXCH PIPAZ # Y DONE, ZERO Z PIP.
CCS TEMZ
CS TEMZ # TEMZ NOT = -0, CONTAINS -PIPAZ VALUE.
TCF DODELVZ
TCF -2
LXCH DELVZ # TEMZ = -0, L HAS ZPIP VALUE.
TCF REPIP4
CHKTEMX CCS TEMX # HAS THIS CHANGED
CS TEMX # YES
TCF +3 # YES
TCF -2 # YES
TCF REPIP1 # NO
TS DELVX
CS TEMY
TS DELVY
CS ZERO # ZERO X AND Y PIPS
DXCH PIPAX # L STILL ZERO FROM ABOVE
TCF REPIP3
DONEADR GENADR PIPSDONE
## Page 876
BANK 33
SETLOC SERVICES
BANK
COUNT* $$/SERV
TMPTOSPT CA CDUTEMPY # THIS SUBROUTINE, CALLED BY AN RTB FROM
TS CDUSPOTY # INTERPRETIVE, LOADS THE CDUS CORRESPON-
CA CDUTEMPZ # DING TO PIPTIME INTO THE CDUSPOT VECTOR.
TS CDUSPOTZ
CA CDUTEMPX
TS CDUSPOTX
TC Q
BANK 33
SETLOC SERVICES
BANK
COUNT* $$/SERV
# HIGATASK IS ENTERED APPROXIMATELY 6 SECS PRIOR TO HIGATE DURING THE
# DESCENT PHASE. HIGATASK SETS THE HIGATE FLAG (BIT11) AND THE LR INHIBIT
# FLAG (BIT10) IN LRSTAT. THE HIGATJOB IS SET UP TO REPOSITION THE LR
# ANTENNA FROM POSITION 1 TO POSITION 2. IF THE REPOSITIONING IS
# SUCCESSFUL THE ALT BEAM AND VELOCITY BEAMS ARE TRANSFORMED TO THE NEW
# ORIENTATION IN NB COORDINATES AND STORED IN ERASABLE.
HIGATASK TC PHASCHNG
OCT 51
CA PRIO32
TC FINDVAC
EBANK= HMEAS
2CADR HIGATJOB
CS FLGWRD11
MASK PRIO3
ADS FLGWRD11
TCF CONTSERV +1
## Page 877
# MUNRETRN IS THE RETURN LOC FROM SPECIAL AVE G ROUTINE (MUNRVG)
MUNRETRN EXIT
CS FLGWRD11
MASK LRBYBIT
EXTEND
BZF COPYCYC1 # BYPASS LR LOGIC IF BIT15 IS SET.
CS FLGWRD11 # CHECK IF AT 30000 FT
MASK XORFLBIT
EXTEND
BZF LROFF?
30KCHK EXTEND
DCA 1-30KFT
DAS MPAC # HCALC IS STILL IN MPAC FROM RVBOTH
CCS A
TCF R12 # ALTITUDE > 30KFT
TC UPFLAG # ALTITUDE < 30KFT SET X-AXIS OVERRIDE
ADRES XOVINFLG
TC UPFLAG
ADRES XORFLG
LROFF? CA HCALC
EXTEND # IF HIGH ORDER PART ZERO, H < 3000 FT,
BZF +2 # SO MAKE CUTOFF TEST
TCF R12
CS HCALC +1
AD HLROFF
EXTEND
BZMF R12 # IF H < HLROFF, RESET LR PERMIT FLAG
TC DOWNFLAG
ADRES LRINH
R12 CS FLGWRD11
MASK NOLRRBIT
EXTEND
BZF CONTSERV
POSTST CA BITS6+7 # TEST LANDING RADAR POSITION DISCRETES
EXTEND
RAND CHAN33
EXTEND
MP BIT10 # SHIFT BITS 6+7 TO BITS 1+2
INDEX A
TCF +1
TCF 511? # A = 0 - BOTH DISCRETES PRESENT
## Page 878
TCF POSCHNG? # A = 1 - POSITION 2
TCF POSCHNG? # A = 2 - POSITION 1
511? CCS 511CTR # IF CONDITION PERSISTS FOR FIVE
TCF ST511CTR # CONSECUTIVE PASSES,ISSUE 511 ALARM
TC ALARM
OCT 511
CS ZERO # SET CTR TO -0 TO BYPASS ALARM
ST511CTR TS 511CTR
TCF CONTSERV
POSCHNG? TS L
CA FOUR # SET 511CTR TO RE-ENABLE 511 ALARM
TS 511CTR
LXCH LRPOS # UPDATE LRPOS
CS LRPOS # COMPARE OLD AND NEW POSITIONS
AD L
EXTEND # IF OLDPOS = NEWPOS,
BZF UPDATCHK # TRY TO UPDATE WITH LR DATA
CONTSERV INHINT
CS BITS4-7
MASK FLGWRD11 # CLEAR LR MEASUREMENT MADE DISCRETES.
TS FLGWRD11
## Page 879
COPYCYC1 TC QUIKFAZ5
CA FIXLOC # BATTEN DOWN THE HATCHES
TS PUSHLOC
TC INTPRET
VLOAD ABVAL
R1S
PUSH DSU
/LAND/
STORE HCALC # ALTITUDE IN UNITS OF 2(24) METERS
STORE HCALC1
SL PDVL # STORE HCALCLAD AT PD 2
9D
UNIT/R/
VXV ABVAL
V1S
DSQ DDV
0
SL1 PDVL # STORE DALTRATE AT PD 4
UNIT/R/
DOT SL1
V1S
STORE HDOTDISP # HDOT IN UNITS OF 2(7) M/CS
SL2 PDVL # STORE HDOTLAD AT PD 6
R1S
VXM VSR4
REFSMMAT
STOVL RN1 # POSITION IN REFERENCE COORDINATES
V1S
VXM VSL1
REFSMMAT
STOVL VN1 # VELOCITY IN REFERENCE COORDINATES
GDT1/2
VSU V/SC
VBIAS
GSCALE1
EXIT # G-VBIAS IN MPAC UNITS OF 2(-9) M/CS/CS
INHINT
INDEX FIXLOC # FETCH HCALCLAD FROM PD 2
DXCH 2
DXCH HCALCLAD # ALTITUDE IN UNITS OF 2(15) METERS
INDEX FIXLOC # FETCH DALTRATE FROM PD 4
CA 4
TS DALTRATE # DALTRATE IN UNITS OF 2(-9) M/CS/CS
## Page 880
INDEX FIXLOC # FETCH HDOTLAD FROM PD 6
DXCH 6
DXCH HDOTLAD # HDOTLAD IN UNITS OF 2(5) M/CS
CA MPAC # FETCH G-VBIAS FROM MPAC
TS G-VBIASX
CA MPAC +3
TS G-VBIASY
CA MPAC +5
TS G-VBIASZ # G-VBIAS IN UNITS OF 2(-9) M/CS/CS
EXTEND
DCA UNIT/R/
DDOUBL # SCALE FULL-SIZE BUT WATCH FOR OVERFLOW
OVSK
TCF +2
CAF POSMAX
+2 XCH RUNITX
EXTEND
DCA UNIT/R/ +2
DDOUBL # SCALE FULL-SIZE, OVERFLOW MOST UNLIKELY
XCH RUNITY
EXTEND
DCA UNIT/R/ +4
DDOUBL # SCALE FULL-SIZE, OVERFLOW MOST UNLIKELY
XCH RUNITZ
CS FLAGWRD7 # INDICATE TO LANADISP THAT THE NUMBERS IT
MASK SWANDBIT # NEEDS FROM SERVICER HAVE BEEN PROVIDED
ADS FLAGWRD7
EXTEND
DCA R1S # LOAD NEW NAVIGATED STATE VECTOR INTO R,V
# VECTORS, FOR GUIDANCE.
DXCH R
EXTEND
DCA R1S +2
DXCH R +2
EXTEND
DCA R1S +4
DXCH R +4
EXTEND
DCA V1S
DXCH V
EXTEND
DCA V1S +2
DXCH V +2
EXTEND
## Page 881
DCA V1S +4
DXCH V +4
TCF COPYCYCL # COMPLETE THE COYPCYCL.
# COPYCYC1 CONSTANTS:
GSCALE1 2DEC 100 B-16
BIASFACT 2DEC .01 B-10
## Page 882
# *********************************************************************************************************
CALCGRAV UNIT PUSH # SAVE UNIT/R/ IN PUSHLIST (18)
STORE UNIT/R/
LXC,1 SLOAD # RTX2 = 0 IF EARTH ORBIT, =2 IF LUNAR.
RTX2
RTX2
DCOMP BMN
CALCGRV1
VLOAD DOT # (12)
UNITZ
UNIT/R/
SL1 PUSH # (14)
DSQ BDSU
DP1/20
PDDL DDV
RESQ
34D # (RN)SQ
STORE 32D # TEMP FOR (RE/RN)SQ
DMP DMP
20J
VXSC PDDL
UNIT/R/
DMP DMP
2J
32D
VXSC VSL1
UNITZ
VAD STADR
STORE UNITGOBL
VAD PUSH # MPAC = UNIT GRAVITY VECTOR. (18)
CALCGRV1 DLOAD NORM # PERFORM A NORMALIZATION ON RMAGSQ IN
34D # ORDER TO BE ABLE TO SCALE THE MU FOR
X2 # MAXIMUM PRECISION.
BDDV* SLR*
-MUDT,1
0 -21D,2
VXSC STADR
STORE GDT1/2 # SCALED AT 2(+7) M/CS
RVQ
CALCRVG VLOAD VXM
DELV
REFSMMAT
VXSC VSL1
KPIP1
STORE DELVREF
VSR1 PUSH
VAD PUSH # (DV-OLDGDT)/2 TO PD SCALED AT 2(+7)M/CS
## Page 883
GDT/2
VAD PDDL # (18)
VN
PGUIDE
SL VXSC
6D
VAD STQ
RN
31D
STCALL RN1 # TEMP STORAGE OF RN SCALED 2(+29)M
CALCGRAV
VAD VAD
VAD
VN
STCALL VN1 # TEMP STORAGE OF VN SCALED 2(+7)M/CS
31D
DP1/20 2DEC 0.05
SHIFT11 2DEC 1 B-11
## Page 884
# ****************************************************************************************************************
# MUNRVG IS A SPECIAL AVERAGE G INTEGRATION ROUTINE USED BY THRUSTING
# PROGRAMS WHICH FUNCTION IN THE VICINITY OF AN ASSUMED SPHERICAL MOON.
# THE INPUT AND OUTPUT QUANTITIES ARE REFERENCED TO THE STABLE MEMBER
# COORDINATE SYSTEM.
RVBOTH VLOAD PUSH
G(CSM) # CSM GDT1/2 FOR LAST PASS.
VAD PDDL
V(CSM)
PGUIDE
DDV VXSC
SHIFT11
VAD
R(CSM)
STCALL R1S # = RCSM + PGUIDE(VCSM + GCSM) AT 2(+24)M.
MUNGRAV # COMPUTE LUNAR GRAVITY AT CSM ALTITUDE.
VAD VAD
V(CSM)
STADR
STORE V1S # = VCSM + GCSM + GDT1/2 AT 2(+7)M/CS.
EXIT
TC QUIKFAZ5
TC INTPRET
VLOAD # FOR RESTART PURPOSES.
GDT1/2
STOVL G(CSM)
R1S
STOVL R(CSM)
V1S
STORE V(CSM)
EXIT
TC QUIKFAZ5
TC INTPRET
MUNRVG VLOAD VXSC
DELV
KPIP2
PUSH VAD # 1ST PUSH: DELV IN UNITS OF 2(8) M/CS
GDT/2
PUSH VAD # 2ND PUSH: (DELV + GDT)/2, UNITS OF 2(7)
V # (12)
PDDL DDV
PGUIDE
SHIFT11
VXSC
VAD
R # LM POSITION VECTOR AT 2(24)M.
STCALL R1S # = R + PGUIDE(V + DELV + GDT1/2).
MUNGRAV
## Page 885
VAD VAD
VAD # (0)
V # LM VELOCITY VECTOR AT 2(+7)M/CS.
STORE V1S # = V + GDT1/2 + DELV
ABVAL
STOVL ABVEL # STORE SPEED FOR LR AND DISPLAYS.
WM
VXV VSL2
R1S
STODL VSURFACE # SURFACE VELOCITY IN UNITS OF 2(5) M/CS
36D
DSU RTB
/LAND/
SGNAGREE
STCALL HCALC # FOR NOW, DISPLAY WHETHER POS OR NEG
MUNRETRN # GO TO LR UPDATES ROUTINE, R12.
MUNGRAV UNIT # AT 36D HAVE ABVAL(R), AT 34D R.R
STODL UNIT/R/
34D
SL BDDV
6D
-MUDTMUN
DMP VXSC
SHIFT11
UNIT/R/
STORE GDT1/2 # 1/2GDT SCALED AT 2(7)M/CS.
RVQ
BITS6+7 EQUALS SUPER110 # LR POSITION DISCRETES
2SEC(18) 2DEC 200 B-18
2SEC(28) 2OCT 0000000310 # 2SEC AT 2(28)
4SEC(28) 2DEC 400 B-28
BITS4-7 OCT 110
1-30KFT 2DEC 16768072 B-24 # DPPOSMAX-30KFT
66DEC DEC 66
## Page 886
UPDATCHK CA RNGEDBIT # SEE IF ALT READING MADE
## RNGEDBIT in the above line is circled
MASK FLGWRD11
EXTEND
BZF VMEASCHK # NO ALT MEAS THIS CYCLE-CHECK FOR VEL
POSUPDAT TC QUIKFAZ5
TC POSINDEX # SET X1 TO PROPER POSITION AND ZERO PLIST
TC INTPRET
VLOAD* VXM
HBEAMNB,1
XNBPIP # HBEAM SM AT 2(1)
PDDL SL # STORE IN PUSHLIST AND SCALE HMEAS
HMEAS
6D
DMP VXSC # SLANT RANGE AT 2(22),PUSH UP FOR HBEAM
HSCAL # TO GET SLANT RANGE VECTOR AT 2(23) M
PUSH DOT # PUSH NEG OF RADAR ALTITUDE BEAM VECTOR
UNIT/R/ # ALTITUDE AT 2(24) METERS
DSU
HCALC
STORE TEMDELH # STORE PARTIAL(TRUE) DELTA H, AND
PDDL # LOAD NEG OF BEAM Z
## At the end of the 2nd divider below, the suffixed ':' was an '=' in the
## original printout. The replacement is a workaround for our proof-reading
## system.
# ========================================================================
# TERRAIN MODEL
# =======================================================================:
SR1 DAD
LAND +4
BDSU SL # SCALE RANGE TO UNITS OF 2(18) METERS
R1S +4
6D
BOVB EXIT
SIGNMPAC # PICK UP NEGMAX UPON OVERFLOW
CS FLAGWRD1 # IS NOTERFLG SET (BY P66 OR V68)?
MASK NOTERBIT
EXTEND
BZF TERSKIP # Y: SKIP TERRAIN BUT TRANSFER DELTA H
CA EBANK5 # N: PREPARE TO ACCESS TERRAIN TABLE
TS EBANK
EBANK= END-E5
CA ZERO # INITIALIZE MINUS LAST ABSCISSA FOR
TS TEM2 # TERLOOP WHICH ADDS THE CONTRIBUTIONS
CA FOUR # OF FIVE TERRAIN SEGMENTS TO DELTA H
TERLOOP TS TEM5
## Page 887
CA MPAC # PICK UP CURRENT RANGE (NEG BEFORE SITE)
TS L
INDEX TEM5
CS ABSC0 # TERRAIN ABSCISSAE UNITS: 2(18) METERS
TC BANKCALL # LIMIT GIVEN LIMITSUB MUST BE POSITIVE
FCADR LIMITSUB # LIMIT |RANGE| <= |CURRENT ABSCISSA|
TS TEM4 # SAVE TO COMPARE WITH CURRENT ABSCISSA
AD TEM2 # SUBTRACT LAST ABSCISSA
EXTEND
INDEX TEM5
MP SLOPE0 # SLOPE UNITS: 2(6) RADIANS. RESOL: 3.9 MR
INDEX FIXLOC # ADD CONTRIBUTION OF SEGMENT TO YIELD
DAS 4 # CORRECTED DELTA H IN UNITS 2(24) METERS
CA TEM1 # RETRIEVE MINUS CURR ABSC FROM LIMITSUB*
TS TEM2 # STORE AS MINUS LAST ABSC FOR NEXT SEG
# * NOTE: IF WE HAVE FLOWN BEYOND THE LANDING SITE BY MORE THAN THE
# LENGTH OF THE SEGMENT ADJACENT TO THE LANDING SITE, CA TEM1
# WILL RETRIEVE - INSTEAD OF MINUS THE CURRENT ABSCISSA -
# A ZERO OR POSITIVE REMAINDER OF THE DIVISION DONE BY LIMITSUB.
# THIS RETRIEVAL WILL CAUSE AN IMMEDIATE BRANCH TO TEREND,
# WHICH IS THE DESIRED RESULT. HOWEVER, FLYING PAST THE LANDING
# SITE IS IMPOSSIBLE EXCEPT IN P66 WHEN THE TERRAIN MODEL IS OFF.
AD TEM4 # HAS LM FLOWN PAST CURRENT ABSCISSA?
EXTEND
BZF +2
TCF TEREND # Y: IGNORE FURTHER ABSCISSAE
CCS TEM5 # N: IS CURRENT ABSCISSA THE LAST?
TCF TERLOOP # N: REPEAT TERRAIN LOOP
TEREND CA EBANK7 # Y: RESTORE EBANK AND DEPART
TS EBANK
EBANK= END-E7
TERSKIP INHINT # SO DOWNLINK DATA WILL BE TIME HOMOGENEOU
INDEX FIXLOC # TRANSFER COMPLETED DELTA H HOME
DXCH 4 # TO BE ACCESSED BY DISPLAYS, TELEMETRY,
DXCH DELTAH # AND POSITION UPDATE.
DXCH TEMDELH # TRANSFER TRUE DELTA H TO TRUDELH
DXCH TRUDELH # FOR DOWNLINK
RELINT
CA FIXLOC # RESTORE PUSHDOWN POINTER TO ZERO
TS PUSHLOC
## Page 888
CA FLGWRD11 # IS PSTHIBIT SET (BY HIGATASK)?
MASK PSTHIBIT
EXTEND # DO NOT PERFORM DATA REASONABLENESS TEST
BZF NOREASON # UNTIL AFTER HIGATE
TC INTPRET
DLOAD ABS
DELTAH
DSU SL2 # (ABS(DELTAH) - DQFIX) 2(24)
DELQFIX # SCALE TO 2(22)
DSU EXIT # (ABS(DELTAH) -(DQFIX + HCALC/4)) 2(22)
HCALC
INCR LRLCTR
TC BRANCH
TCF HFAIL # DELTA H TOO LARGE
TCF HFAIL # DELTA H TOO LARGE
TC DOWNFLAG # RESET HFAIL FLAG
ADRES HFAILFLG
TC DOWNFLAG # TURN OFF ALT FAIL LAMP
ADRES HFLSHFLG
NOREASON CS FLGWRD11
MASK LRINHBIT
CCS A
TCF VMEASCHK # UPDATE INHIBITED - TEST VELOCITY ANYWAY
TC INTPRET
POSUP DLOAD SR4
HCALC # RESCALE H TO 2(28)M
EXIT
EXTEND
DCA DELTAH # STORE DELTAH IN MPAC AND
DXCH MPAC # BRING HCALC INTO A,L
TC ALSIGNAG
EXTEND # IF HIGH PART OF HCALC IS NON ZERO, THEN
BZF +2 # HCALC > HMAX,
TCF VMEASCHK # SO UPDATE IS BYPASSED
TS MPAC +2 # FOR LATER SHORTMP
CS L # -H AT 2(14)M
AD LRHMAX # HMAX - H
EXTEND
BZMF VMEASCHK # IF H >HMAX, BYPASS UPDATE
EXTEND
MP LRWH # WH(HMAX - H)
EXTEND
DV LRHMAX # WH(1 - H/HMAX)
TS MPTEMP
TC SHORTMP2 # DELTAH (WH)(1 - H/HMAX) IN MPAC
## Page 889
TC INTPRET # MODE IS DP FROM ABOVE
SL1
VXSC VAD
UNIT/R/ # DELTAR = DH(WH)(1 - H/HMAX) UNIT/R/
R1S
STORE GNUR
EXIT
TC QUIKFAZ5
CA ZERO
RUPDATED TC GNURVST
VMEASCHK TC QUIKFAZ5 # RESTART AT NEXT LOCATION
R12THRU? CS FLGWRD11 # IS RADAREAD THROUGH ?
MASK R12RDBIT
CCS A
TCF VELDATA? # YES:GO ON WITH UPDATE
CCS NEWJOB # NO-WAIT
TC CHANG1
TCF R12THRU?
VELDATA? CS FLGWRD11
MASK VELDABIT # IS V READING AVAILABLE?
CCS A
TCF VALTCHK # NO SEE IF V READING TO BE TAKEN
VELUPDAT TC POSINDEX # SET X1 AND X2 AND ZERO PUSHLIST
CS VSELECT
TS L
ADS L # -2 VSELECT IN L
AD L
AD L # -6 VSELECT IN A
INDEX FIXLOC
DAS X1 # X1 = -6 VSELECT(POS), X2 = -2 VSELECT
TC INTPRET
VLOAD* VXM
VZBEAMNB,1 # CONVERT PROPER VBEAM FROM NB TO SM
XNBPIP # SCALED AT 2(1)
PDDL SL # STORE IN PD 0-5
VMEAS # LOAD VELOCITY MEASUREMENT
12D
DMP* PDVL # SCALE TO M/CS AT 2(6)
VZSCAL,2 # AND STORE IN PD 6-7
V1S # VELOCITY AT TIME OF READING
VSL2 VSU # SCALE TO 2(5) M/CS AND SUBTRACT
VSURFACE # MOON ROTATION.
PUSH ABVAL # STORE IN PD
SR4 DAD # ABS(VM)/8 + VELBIAS AT 2(6)
VELBIAS
## Page 890
STOVL 20D # STORE IN 20D AND PICK UP VM
DOT BDSU
0 # DELTAV = VMEAS - V(EST)
PUSH ABS
DSU EXIT # ABS(DV) - (7.5 + ABS(VM)/8))
20D
INCR LRMCTR
TC BRANCH
TCF VFAIL # DELTA V TOO LARGE ALARM
TCF VFAIL # DELTA V TOO LARGE ALARM
TC DOWNFLAG # RESET HFAIL FLAG
ADRES VFAILFLG
TC DOWNFLAG # TURN OFF VEL FAIL LAMP
ADRES VFLSHFLG
## The above line is circled.
CA FLGWRD11
MASK VXINHBIT
EXTEND
BZF VUPDAT # IF VX INHIBIT RESET, INCORPORATE DATA.
TC DOWNFLAG
ADRES VXINH # RESET VX INHIBIT
CA VSELECT
AD NEG2 # IF VSELECT = 2 (X AXIS),
EXTEND # BYPASS UPDATE
BZF ENDVDAT
VUPDAT CS FLGWRD11
MASK LRINHBIT
CCS A
TCF VALTCHK # UPDATE INHIBITED
TS MPAC +1
CA ABVEL # STORE E7 ERASABLES NEEDED IN TEMPS
TS ABVEL*
CA VSELECT
TS VSELECT*
CA EBANK5
TS EBANK # CHANGE EBANKS
EBANK= LRVF
CS LRVF
AD ABVEL* # IF V < VF, USE WVF
EXTEND
BZMF USEVF
## Page 891
CS ABVEL*
AD LRVMAX # VMAX - V
EXTEND
BZMF WSTOR -1 # IF V > VMAX, W = 0
EXTEND
INDEX VSELECT*
MP LRWVZ # WV(VMAX - V)
EXTEND
DV LRVMAX # WV( 1 - V/VMAX )
TCF WSTOR
USEVF INDEX VSELECT*
CA LRWVFZ # USE APPROPRIATE CONSTANT WEIGHT
TCF WSTOR
-1 CA ZERO
WSTOR TS MPAC
CS BIT7 # (=64D)
AD MODREG
EXTEND
BZMF GETGNUV # IF IN P66 USE ANOTHER CONSTANT
CA LRWVFF
TS MPAC
GETGNUV CA EBANK7
TS EBANK # CHANGE EBANKS
EBANK= ABVEL
TC INTPRET
DMP VXSC # W(DELTA V)(VBEAMSM) UP 6-7, 0-5
VAD
V1S # ADD WEIGHTED DELTA V TO VELOCITY
STORE GNUV
EXIT
TC QUIKFAZ5 # DO NOT RE-UPDATE
CA SIX
VUPDATED TC GNURVST # STORE NEW VELOCITY VECTOR
ENDVDAT = VALTCHK
VALTCHK TC QUIKFAZ5 # DO NOT REPEAT ABOVE
HIGATCHK CS FLGWRD11 # IS PSTHIBIT SET (BY HIGATASK)?
MASK PSTHIBIT
EXTEND
BZF CONTSERV # YES: BYPASS HIGATE CHECK
## Page 892
CA TTF/8
AD RPCRTIME
EXTEND
BZMF CONTSERV
CA EBANK4
XCH EBANK
TS L
EBANK= XNBPIP
CS XNBPIP
EBANK= DVCNTR
LXCH EBANK
AD RPCRTQSW
EXTEND
BZMF HIGATASK
TCF CONTSERV
GNURVST TS BUF # STORE GNUR (=GNUV) IN R1S OR V1S
EXTEND # A = 0 FOR R, A = 6 FOR V
DCA GNUR
INDEX BUF
DXCH R1S
EXTEND
DCA GNUR +2
INDEX BUF
DXCH R1S +2
EXTEND
DCA GNUR +4
INDEX BUF
DXCH R1S +4
TC Q
QUIKFAZ5 CA EBANK3
XCH EBANK # SET EBANK 3
DXCH L # Q TO A, A TO L
EBANK= PHSNAME5
TS PHSNAME5
LXCH EBANK
EBANK= DVCNTR
TC A
POSINDEX CA FIXLOC # SET PUSHLIST TO ZERO
TS PUSHLOC
CA BIT1
MASK LRPOS # *NOTE - LRPOS = 1 FOR POS 2 & VICE VERSA
## Page 893
CCS A
CS OCT30 # POS 2 , INDEX = -24D
ZL # POS 1 , INDEX = 0 , X2 = 0 FOR BOTH
INDEX FIXLOC
DXCH X1 # SET X1,X2
TC Q
HFAIL TC UPFLAG # SET HFAIL FLAG FOR DOWNLINK
ADRES HFAILFLG
CS LRRCTR
EXTEND
BZF NORLITE # IF R = 0, DO NOT TURN ON TRK FAIL
AD LRLCTR
MASK NEG3
EXTEND # IF L-R LT 4, DO NOT TURN ON TRK FAIL
BZF +2
TCF NORLITE
TC UPFLAG # AND SET BIT TO TURN ON TRACKER FAIL LITE
ADRES HFLSHFLG
NORLITE CA LRLCTR
TS LRRCTR # SET R = L
TCF VMEASCHK
VFAIL TC UPFLAG
ADRES VFAILFLG # SET VFAIL FLAG FOR DOWNLINK
## The above instruction and address are circled in red.
CS LRSCTR
EXTEND # IF S = 0, DO NOT TURN ON TRACKER FAIL
BZF NOLITE
AD LRMCTR # M-S
MASK NEG3 # TEST FOR M-S > 3
EXTEND # IF M-S > 3, THEN TWO OR MORE OF THE
## In the above comment, "THEN TWO ORE MORE OF THE" is crossed out in green.
BZF +2 # LAST FOUR V READINGS WERE BAD,
## In the above comment, a 3 has been written over FOUR, and "BAD," has been crossed out
## with "GOOD," written next to it.
TCF NOLITE # SO TURN ON VELOCITY FAIL LIGHT
## "DON'T" is written under "SO TURN", indicating the line should read "SO DON'T TURN ON..."
TC UPFLAG # AND SET BIT TO TURN ON TRACKER FAIL LITE
ADRES VFLSHFLG
## The above instruction and address are circled.
NOLITE CA LRMCTR # SET S = M
TS LRSCTR
CCS VSELECT # TEST FOR Z COMPONENT
TCF ENDVDAT # NOT Z, DO NOT SET VX INHIBIT
TC UPFLAG # Z COMPONENT - SET FLAG TO SKIP X
ADRES VXINH # COMPONENT,AS ERROR MAY BE DUE TO CROSS
TCF ENDVDAT # LOBE LOCK UP NOT DETECTED ON X AXIS.
## Page 894
# ********************************************************************************************************
BANK 33
SETLOC SERVICES
BANK
COUNT* $$/SERV
EBANK= DVCNTR
# HIGATJOB IS BEGUN WHEN BOTH THE TIME AND ANGLE CRITERIA FOR ANTENNA REPOSITIONING ARE MET. THE JOB INITIATES THE
# LANDING RADAR ANTENNA REPOSITIONING ROUTINE. DURING THE REPOSITIONING, R12 IS INHIBITTED BY THE NOLRREAD FLAG.
# UPON COMPLETION OF THE REPOSITIONING,(SUCCESSFUL OR NOT),THE NOLRREAD FLAG IS CLEARED AND R12 CONTINUES.
REREPOS INHINT # ON RESTART, SET FLAGS AGAIN
CS FLGWRD11
MASK PRIO3
ADS FLGWRD11
HIGATJOB TC BANKCALL # INITIATE REPOSITIONING ROUTINE
CADR LRPOS2
TC BANKCALL # DELAY UNTIL FINISHED
CADR RADSTALL
TCF +1 # IF UNSUCCESSFUL, R12 WILL HANDLE THINGS
CA ONE # INDICATE POS 2 IS EXPECTED
TS LRPOS
TC DOWNFLAG # RE-ENABLE R12.
ADRES NOLRREAD
TC PHASCHNG # CLEAR RESTART PROTECTION
OCT 1
TC ENDOFJOB
## Below, in the comment column, is written "NEG3 = 77774"