1716 lines
34 KiB
Plaintext
1716 lines
34 KiB
Plaintext
# Copyright: Public domain.
|
|
# Filename: SERVICER.agc
|
|
# Purpose: Part of the source code for Luminary, build 099. It
|
|
# is part of the source code for the Lunar Module's
|
|
# (LM) Apollo Guidance Computer (AGC), Apollo 11.
|
|
# Assembler: yaYUL
|
|
# Reference: pp. 857-897
|
|
# Contact: Ron Burkey <info@sandroid.org>,
|
|
# Fabrizio Bernardini <fabrizio@spacecraft.it>
|
|
# Website: http://www.ibiblio.org/apollo.
|
|
# Mod history: 2009-06-01 FB Transcription Batch 4 Assignment.
|
|
# 2009-06-05 RSB Fixed a couple of typos, plus a goofy relative
|
|
# label reference from the original source.
|
|
#
|
|
# The contents of the "Luminary099" files, in general, are transcribed
|
|
# from scanned documents.
|
|
#
|
|
# Assemble revision 001 of AGC program Luminary099 by NASA
|
|
# 2021112-061. July 14, 1969.
|
|
#
|
|
# Prepared by
|
|
# Massachusetts Institute of Technology
|
|
# 75 Cambridge Parkway
|
|
# Cambridge, Massachusetts
|
|
#
|
|
# under NASA contract NAS 9-4065.
|
|
#
|
|
# Refer directly to the online document mentioned above for further
|
|
# information. Please report any errors to info@sandroid.org.
|
|
|
|
# Page 857
|
|
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 FRE5+F133
|
|
# 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 # RESET DRIFTFLAG
|
|
TS FLAGWRD2
|
|
|
|
CAF FOUR # INITIALIZE DV MONITOR
|
|
TS PIPAGE
|
|
|
|
CAF ENDJBCAD # POINT OUTROUTE TO END-OF-JOB.
|
|
TS OUTROUTE
|
|
|
|
CAF PRIO22
|
|
TC FINDVAC # TO FIRST ENTRY TO AVERAGE G
|
|
EBANK= DVCNTR
|
|
2CADR NORMLIZE
|
|
|
|
CA TWO # 5.2SPOT FOR REREADAC AND NORMLIZE
|
|
GOREADAX TC GNUTFAZ5
|
|
CA 2SECS # WAIT TWO SECONDS FOR READACCS
|
|
TC VARDELAY
|
|
|
|
# Page 858
|
|
# ************* 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.
|
|
|
|
PIPSDONE CA FIVE
|
|
TC GNUFAZE5
|
|
REDO5.5 CAF ONE
|
|
TS PIPAGE
|
|
|
|
CA PRIO20
|
|
TC FINDVAC
|
|
EBANK= DVCNTR
|
|
2CADR SERVICER # SET UP SERVICER JOB
|
|
|
|
CA BIT9
|
|
EXTEND
|
|
WOR DSALMOUT # TURN ON TEST CONNECTOR OUTBIT
|
|
|
|
CA FLAGWRD7
|
|
MASK AVEGFBIT
|
|
EXTEND
|
|
BZF AVEGOUT # AVEGFLAG DOWN -- SET UP FINAL EXIT
|
|
|
|
CA FLAGWRD6
|
|
MASK MUNFLBIT
|
|
EXTEND
|
|
BZF MAKEACCS # MUNFLAG CLEAR -- BYPASS LR AND DISP.
|
|
|
|
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
|
|
# Page 859
|
|
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
|
|
|
|
ENDJBCAD CADR SERVEXIT +2
|
|
|
|
OCT37771 OCT 37771
|
|
|
|
BANK 33
|
|
SETLOC SERVICES
|
|
BANK
|
|
|
|
COUNT* $$/SERV
|
|
|
|
# Page 860
|
|
# ************* 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 # INITIALIZE MASS1 IN CASE WE SKIP MASSMON
|
|
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
|
|
OCT10002 DV Q # WHERE APPROPRIATE VEX RESIDES
|
|
EXTEND
|
|
MP MASS
|
|
DAS MASS1
|
|
|
|
MOONSPOT CA KPIP1 # TP MPAC = ABDELV AT 2(14) CM/SEC
|
|
TC SHORTMP # MULTIPLY BY KPIP1 TO GET
|
|
# Page 861
|
|
DXCH MPAC # ABDELV AT 2(7) M/CS
|
|
DAS DVTOTAL # UPDATE DVTOTAL FOR DISPLAY
|
|
|
|
TC TMPTOSPT
|
|
|
|
TC BANKCALL
|
|
CADR QUICTRIG
|
|
|
|
CAF XNBPIPAD
|
|
TC BANKCALL
|
|
CADR FLESHPOT
|
|
TC INTPRET
|
|
AVERAGEG BON CALL
|
|
MUNFLAG
|
|
RVBOTH
|
|
CALCRVG
|
|
EXIT
|
|
GOSERV TC QUIKFAZ5
|
|
|
|
COPYCYCL TC COPYCYC
|
|
|
|
# CA ZERO # A IS ZERO ON RETURN FROM COPYCYC
|
|
TS PIPATMPX
|
|
TS PIPATMPY
|
|
TS PIPATMPZ
|
|
|
|
CS STEERBIT # CLEAR STEERSW PRIOR TO DVMON.
|
|
MASK FLAGWRD2
|
|
TS FLAGWRD2
|
|
|
|
CAF IDLEFBIT # IS THE IDLE FLAG SET?
|
|
MASK FLAGWRD7
|
|
CCS A
|
|
TCF NODVMON1 # IDLEFLAG = 1, HENCE SET AUXFLAG TO 0.
|
|
|
|
CS FLAGWRD6
|
|
MASK AUXFLBIT
|
|
CCS A
|
|
TCF NODVMON2 # AUXFLAG = 0, HENCE SET AUXFLAG TO 1.
|
|
|
|
DVMON CS DVTHRUSH
|
|
AD ABDELV
|
|
EXTEND
|
|
BZMF LOTHRUST
|
|
|
|
CS FLAGWRD2 # SET STEERSW.
|
|
MASK STEERBIT
|
|
ADS FLAGWRD2
|
|
|
|
DVCNTSET CAF ONE # ALLOW TWO PASSES MAXIMUM NOW THAT
|
|
# Page 862
|
|
TS DVCNTR # THRUST HAS BEEN DETECTED.
|
|
|
|
CA FLGWRD10 # BRANCH IF APSFLAG IS SET.
|
|
MASK APSFLBIT
|
|
CCS A
|
|
TCF USEJETS
|
|
|
|
CA BIT9 # CHECK GIMBAL FAIL BIT
|
|
EXTEND
|
|
RAND CHAN32
|
|
EXTEND
|
|
BZF USEJETS
|
|
|
|
USEGTS CS USEQRJTS
|
|
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
|
|
TCF DECCNTR
|
|
|
|
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
|
|
2CADR COMFAIL
|
|
|
|
TCF SERVOUT
|
|
|
|
DECCNTR TS DVCNTR1
|
|
TC QUIKFAZ5
|
|
CA DVCNTR1
|
|
TS DVCNTR
|
|
INHINT
|
|
TC IBNKCALL # IF THRUST IS LOW, NO STEERING IS DONE
|
|
# Page 863
|
|
CADR STOPRATE # AND THE DESIRED RATES ARE SET TO ZERO.
|
|
USEJETS CS DAPBOOLS
|
|
MASK USEQRJTS
|
|
ADS DAPBOOLS
|
|
SERVOUT RELINT
|
|
TC BANKCALL
|
|
CADR 1/ACCS
|
|
|
|
CA PRIORITY
|
|
MASK LOW9
|
|
TS PUSHLOC
|
|
ZL
|
|
DXCH FIXLOC # FIXLOC AND DVFIND
|
|
|
|
TC QUIKFAZ5
|
|
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
|
|
TS 1/PIPADT # SET UP FREE FALL GYRO COMPENSATION.
|
|
|
|
TC UPFLAG # SET DRIFT FLAG.
|
|
ADRES DRIFTFLG
|
|
|
|
TC BANKCALL
|
|
CADR PIPFREE
|
|
|
|
CS BIT9
|
|
EXTEND
|
|
WAND DSALMOUT
|
|
|
|
TC 2PHSCHNG
|
|
OCT 5 # GROUP 5 OFF
|
|
OCT 05022 # GROUP 2 ON
|
|
OCT 20000
|
|
|
|
TC INTPRET
|
|
SET CLEAR
|
|
NOR29FLG # SHUT OFF R29 WHEN SERVICER ENDS.
|
|
SWANDISP # SHUT OFF R10 WHEN SERVICER ENDS.
|
|
CLEAR CALL # RESET MUNFLAG.
|
|
MUNFLAG
|
|
# Page 864
|
|
AVETOMID
|
|
CLEAR EXIT
|
|
V37FLAG
|
|
AVERTRN CA OUTROUTE # RETURN TO DESIRED POINT.
|
|
TC BANKJUMP
|
|
|
|
OUTGOAVE = AVERTRN
|
|
DVCNTR1 = MASS1
|
|
|
|
# Page 865
|
|
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 IS 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 GOP00FIX
|
|
TS L
|
|
COM
|
|
DXCH -PHASE4
|
|
|
|
TCF WHIMPER # PERFORM A SOFTWARE RESTART AND PROCEED
|
|
# TO GOTOP00H WHILE SERVICER CONTINUES TO
|
|
# RUN, ALBEIT IN A GROUND STATE WHERE
|
|
# ONLY STATE-VECTOR DEPENDENT FUNCTIONS
|
|
# ARE MAINTAINED.
|
|
|
|
EBANK= DVCNTR
|
|
# Page 866
|
|
SVEXTADR 2CADR SERVEXIT
|
|
|
|
BANK 32
|
|
SETLOC SERV
|
|
BANK
|
|
COUNT* $$/SERV
|
|
|
|
SERVEXIT TC PHASCHNG
|
|
OCT 00035
|
|
|
|
+2 TCF ENDOFJOB
|
|
|
|
BANK 23
|
|
SETLOC NORMLIZ
|
|
BANK
|
|
|
|
COUNT* $$/SERV
|
|
|
|
# Page 867
|
|
NORMLIZE TC INTPRET
|
|
VLOAD BOFF
|
|
RN1
|
|
MUNFLAG
|
|
NORMLIZ1
|
|
VSL6 MXV
|
|
REFSMMAT
|
|
STCALL R
|
|
MUNGRAV
|
|
VLOAD VSL1
|
|
VN1
|
|
MXV
|
|
REFSMMAT
|
|
STOVL V
|
|
V(CSM)
|
|
VXV UNIT
|
|
R(CSM)
|
|
STORE UHYP
|
|
ASCSPOT EXIT
|
|
EXTEND # MAKE SURE GROUP 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 CA OCT24 # DEC 20
|
|
+1 INHINT
|
|
+2 MASK NEG1 # REDUCE BY 1 IF ODD
|
|
TS ITEMP1
|
|
EXTEND
|
|
INDEX ITEMP1
|
|
DCA RN1
|
|
INDEX ITEMP1
|
|
# Page 868
|
|
DXCH RN
|
|
CCS ITEMP1
|
|
TCF COPYCYC +2
|
|
TC Q # RETURN UNDER INHINT
|
|
|
|
EIGHTEEN DEC 18
|
|
|
|
# Page 869
|
|
# ************* 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 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 25 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 870
|
|
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
|
|
|
|
# Page 871
|
|
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 872
|
|
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
|
|
|
|
# LRHTASK IS A WAITLIST TASK SET BY READACCS DURING THE DESCENT BRAKING
|
|
# PHASE WHEN THE ALT TO THE LUNAR SURFACE IS LESS THAN 25,000 FT. THIS
|
|
# TASK CLEARS THE ALTITUDE MEASUREMENT MADE DISCRETE AND INITIATES THE
|
|
# LANDING RADAR MEASUREMENT JOB (LRHJOB) TO TAKE A ALTITUDE MEASUREMENT
|
|
# 50 MS PRIOR TO THE NEXT READACCS TASK.
|
|
|
|
BANK 21
|
|
SETLOC R10
|
|
BANK
|
|
|
|
COUNT* $$/SERV
|
|
|
|
LRHTASK CS FLGWRD11
|
|
MASK LRBYBIT
|
|
EXTEND
|
|
BZF GRP2OFF # LR BYPASS SET -- BYPASS ALL LR READING.
|
|
|
|
CA READLBIT
|
|
MASK FLGWRD11 # IS READLR FLAG SET?
|
|
EXTEND
|
|
BZF GRP2OFF # NO. BYPASS LR READ.
|
|
|
|
CS FLGWRD11
|
|
MASK NOLRRBIT # IS LR READ INHIBITED?
|
|
EXTEND
|
|
BZF GRP2OFF # YES. BYPASS LR READ.
|
|
|
|
CA PRIO32 # LR READ OK. SET JOB TO DO IT
|
|
TC NOVAC # ABOUT 50 MS. PRIOR TO PIPA READ.
|
|
EBANK= HMEAS
|
|
2CADR LRHJOB
|
|
|
|
GRP2OFF EXTEND
|
|
DCA NEG0
|
|
DXCH -PHASE2
|
|
TCF R10,R11A
|
|
|
|
BANK 33
|
|
SETLOC SERVICES
|
|
BANK
|
|
# Page 873
|
|
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 INHINT
|
|
CS PRIO3 # SET HIGATE AND LR INHIBIT FLAGS
|
|
MASK FLGWRD11
|
|
AD PRIO3
|
|
TS FLGWRD11
|
|
CAF PRIO32
|
|
TC FINDVAC # SET LR POSITIONING JOB (POS2)
|
|
EBANK= HMEAS
|
|
2CADR HIGATJOB
|
|
|
|
TCF CONTSERV # CONTINUE SERVICER
|
|
|
|
# Page 874
|
|
# 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.
|
|
|
|
CA READLBIT # SEE IF ALT < 35000 FT LAST CYCLE
|
|
MASK FLGWRD11
|
|
EXTEND
|
|
BZF 35KCHK # ALT WAS > 35000 FT LAST CYCLE CHK NOW
|
|
|
|
CAF XORFLBIT # WERE WE BELOW 30000 FT LAST PASS?
|
|
MASK FLGWRD11
|
|
EXTEND
|
|
BZF XORCHK # NO -- TEST THIS PASS
|
|
HITEST CAF PSTHIBIT # CHECK FOR HIGATE
|
|
MASK FLGWRD11
|
|
EXTEND
|
|
BZF HIGATCHK # NOT AT HIGATE LAST CYCLE -- CHK THIS CYCLE
|
|
|
|
POS2CHK CAF BIT7 # VERIFY LR IN POS2
|
|
EXTEND
|
|
RAND CHAN33
|
|
EXTEND
|
|
BZF UPDATCHK # IT IS -- CHECK FOR LR UPDATE
|
|
CAF BIT13
|
|
EXTEND
|
|
RAND CHAN12
|
|
EXTEND
|
|
BZF LRPOSALM # LR NOT IN POS2 OR REPOSITIONING -- BAD
|
|
TCF CONTSERV # LR BEING REPOSITIONED -- CONTINUE SERV
|
|
|
|
HIGATCHK CA TTF/8 # IS TTF > CRITERION? (TTF IS NEGATIVE)
|
|
AD RPCRTIME
|
|
EXTEND
|
|
BZMF POS1CHK # NO
|
|
|
|
CA EBANK4 # MUST SWITCH EBANKS
|
|
XCH EBANK
|
|
TS L # SAVE IN L
|
|
|
|
EBANK= XNBPIP
|
|
CS XNBPIP # UXBXP IN GSOP CH5
|
|
EBANK= DVCNTR
|
|
LXCH EBANK # RESTORE EBANK
|
|
AD RPCRTQSW # QSW - UXBXP
|
|
# Page 875
|
|
|
|
EXTEND
|
|
BZMF HIGATASK # IF UXBXP > QSW, THEN REPOSITION
|
|
|
|
POS1CHK CAF BIT6 # HIGATE NOT IN SIGHT -- DO POS1 CHK
|
|
EXTEND
|
|
RAND 33
|
|
EXTEND
|
|
BZF UPDATCHK # LR IN POS1 -- CHECK FOR LR UPDATE
|
|
|
|
LRPOSALM TC ALARM # LR NOT IN PROPER POS-ALARM-BYPASS UPDATE
|
|
OCT 511 # AND CONTINUE SERVICER
|
|
CONTSERV INHINT
|
|
CS BITS4-7
|
|
MASK FLGWRD11 # CLEAR LR MEASUREMENT MADE DISCRETES.
|
|
TS FLGWRD11
|
|
|
|
TC IBNKCALL # SET LR LITES PROPERLY
|
|
CADR R12LITES
|
|
|
|
# Page 876
|
|
COPYCYC1 TC QUIKFAZ5
|
|
|
|
R29? CA FLAGWRD3
|
|
MASK NR29&RDR
|
|
CCS A # IS NOR29FLG OR READRFLG SET?
|
|
TCF R29NODES # YES, SO DON'T DESIGNATE.
|
|
|
|
CA RADMODES # NO, SO R29 IS CALLED FOR.
|
|
MASK OCT10002 # IS THE RR NOT ZEROING ITS CDUS, AND
|
|
CCS A # IS THE RENDEZVOUS RADAR IN AUTO MODE?
|
|
TCF R29NODES # NO, SO DON'T DESIGNATE.
|
|
|
|
CA RADMODES
|
|
MASK PRIO22
|
|
CCS A # IS RR REPOSITIONING OR REMODING?
|
|
TCF NOR29NOW # YES: COME BACK IN 2 SECONDS & TRY AGAIN.
|
|
|
|
TCF R29
|
|
|
|
R29NODES INHINT # R29 NOT ALLOWED THIS CYCLE.
|
|
CS DESIGBIT # SHOW THAT DESIGNATION IS OFF.
|
|
MASK RADMODES
|
|
TS RADMODES
|
|
|
|
NOR29NOW TC INTPRET # INTPRET DOES A RELINT.
|
|
VLOAD ABVAL # MPAC = ABVAL( NEW SM. POSITION VECTOR )
|
|
R1S
|
|
PUSH DSU # (2)
|
|
/LAND/
|
|
STORE HCALC # NEW HCALC*2(24)M.
|
|
STORE HCALC1
|
|
DMPR RTB
|
|
ALTCONV
|
|
SGNAGREE
|
|
STOVL ALTBITS # ALTITUDE FOR R10 IN BIT UNITS.
|
|
UNIT/R/
|
|
VXV UNIT
|
|
UHYP
|
|
STOVL UHZP # DOWNRANGE HALF-UNIT VECTOR FOR R10.
|
|
R1S
|
|
VXM VSR4
|
|
REFSMMAT
|
|
STOVL RN1 # TEMP. REF. POSITION VECTOR*2(29)M.
|
|
V1S
|
|
VXM VSL1
|
|
REFSMMAT
|
|
STOVL VN1 # TEMP. REF. VELOCITY VECTOR 2(7) M/CS.
|
|
UNIT/R/
|
|
VXV ABVAL
|
|
# Page 877
|
|
V1S
|
|
SL1 DSQ
|
|
DDV
|
|
DMPR RTB
|
|
ARCONV1
|
|
SGNAGREE
|
|
COPYCYC2 EXIT # LEAVE ALTITUDE RATE COMPENSATION IN MPAC
|
|
INHINT
|
|
CA UNIT/R/ # UPDATE RUNIT FOR R10.
|
|
TS RUNIT
|
|
CA UNIT/R/ +2
|
|
TS RUNIT +1
|
|
CA UNIT/R/ +4
|
|
TS RUNIT +2
|
|
CA MPAC # LOAD NEW DALTRATE FOR R10.
|
|
TS DALTRATE
|
|
|
|
EXTEND
|
|
DCA R1S
|
|
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
|
|
DCA V1S +4
|
|
DXCH V +4
|
|
|
|
TCF COPYCYCL # COMPLETE THE COPYCYCL.
|
|
|
|
# Page 878
|
|
# ALTCHK COMPARES CURRENT ALTITUDE (IN HCALC) WITH A SPECIFIED ALTITUDE FROM A TABLE BEGINNING AT ALTCRIT.
|
|
# ITS CALLING SEQUENCE IS AS FOLLOWS:-
|
|
#
|
|
# L CAF N
|
|
# L+1 TC BANKCALL
|
|
# L+2 CADR ALTCHK
|
|
# L+3 RETURN HERE IF HCALC STILL > SPECIFIED CRITERION. C(L) = +0.
|
|
# L+4 RETURN HERE IF HCALC < OR = SPECIFIED CRITERION. C(A) = C(L) = +0
|
|
#
|
|
# ALTCHK MUST BE BANKCALLED EVEN FROM ITS OWN BANK. N IS THE LOCATION, RELATIVE TO THE TAG ALTCRIT,
|
|
# OF THE BEGINNING OF THE DP CONSTANT TO BE USED AS A CRITERION.
|
|
|
|
ALTCHK EXTEND
|
|
INDEX A
|
|
DCA ALTCRIT
|
|
DXCH MPAC +1
|
|
EXTEND
|
|
DCS HCALC
|
|
DAS MPAC +1
|
|
TC BRANCH +4
|
|
CAF ZERO # BETTER THAN A NOOP, PERHAPS
|
|
INCR BUF2
|
|
TCF SWRETURN
|
|
|
|
ALTCRIT = 25KFT
|
|
|
|
25KFT 2DEC 7620 B-24 # (0)
|
|
|
|
50KFT 2DEC 15240 B-24 # (2)
|
|
|
|
50FT 2DEC 15.24 B-24 # (4)
|
|
|
|
30KFT 2DEC 9144 B-24 # (6)
|
|
|
|
2KFT/SEC DEC 6.096 B-7 # 2000 FT/SEC AT 2(7) M/CS
|
|
|
|
|
|
# (A remark was likely to be needed here to explain XORCHK) 4/Jun/09,FB
|
|
|
|
XORCHK CAF SIX # ARE WE BELOW 30000 FT?
|
|
TC BANKCALL
|
|
CADR ALTCHK
|
|
TCF HITEST # CONTINUE LR UPDATE
|
|
TC UPFLAG # YES: INHIBIT X-AXIS OVERRIDE
|
|
ADRES XOVINFLG
|
|
TC UPFLAG
|
|
ADRES XORFLG
|
|
TCF HITEST # CONTINUE LR UPDATE
|
|
|
|
35KCHK CAF TWO # ARE WE BELOW 35000 FT?
|
|
|
|
# Page 879
|
|
TC BANKCALL
|
|
CADR ALTCHK
|
|
TCF CONTSERV
|
|
TC UPFLAG
|
|
ADRES READLR # SET READLR FLAG TO ENABLE LR READING.
|
|
TCF CONTSERV
|
|
|
|
# Page 880
|
|
# ***************************************************************
|
|
|
|
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 881
|
|
GDT/2
|
|
VAD PDDL
|
|
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 882
|
|
#*****************************************************************************
|
|
# 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)
|
|
VAD PDDL
|
|
V(CSM)
|
|
PGUIDE
|
|
DDV VXSC
|
|
SHIFT11
|
|
VAD
|
|
R(CSM)
|
|
STCALL R1S
|
|
MUNGRAV
|
|
VAD VAD
|
|
V(CSM)
|
|
STADR
|
|
STORE V1S
|
|
EXIT
|
|
TC QUIKFAZ5
|
|
TC INTPRET
|
|
VLOAD
|
|
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
|
|
STCALL R1S # STORE R SCALED AT 2(+24) M
|
|
MUNGRAV
|
|
# Page 883
|
|
VAD VAD
|
|
VAD
|
|
V
|
|
STORE V1S # STORE V SCALED AT 2(+7) M/CS.
|
|
ABVAL
|
|
STOVL ABVEL # STORE SPEED FOR LR AND DISPLAYS.
|
|
UNIT/R/
|
|
DOT SL1
|
|
V1S
|
|
STOVL HDOTDISP # HDOT = V. UNIT(R)*2(7) M/CS.
|
|
R1S
|
|
VXV VSL2
|
|
WM
|
|
STODL DELVS # LUNAR ROTATION CORRECTION TERM*2(5) M/CS.
|
|
36D
|
|
DSU
|
|
/LAND/
|
|
STCALL HCALC # FOR NOW, DISPLAY WHETHER POS OR NEG
|
|
MUNRETRN
|
|
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
|
|
|
|
1.95SECS DEC 195
|
|
7.5 2DEC .02286 B-6 # 7.5 FT/SEC AT 2(6) M/CS
|
|
|
|
2SEC(18) 2DEC 200 B-18
|
|
|
|
2SEC(28) 2OCT 0000000310 # 2SEC AT 2(28)
|
|
|
|
4SEC(28) 2DEC 400 B-28
|
|
|
|
BITS4-7 OCT 110
|
|
|
|
|
|
# Page 884
|
|
UPDATCHK CAF NOLRRBIT # SEE IF LR UPDATE INHIBITED.
|
|
MASK FLGWRD11
|
|
CCS A
|
|
TCF CONTSERV # IT IS -- NO LR UPDATE
|
|
CAF RNGEDBIT # NO INHIBIT -- SEE ALT MEAS. THIS CYCLE.
|
|
MASK FLGWRD11
|
|
EXTEND
|
|
BZF VMEASCHK # NO ALT MEAS THIS CYCLE -- CHECK FOR VEL
|
|
|
|
POSUPDAT CA FIXLOC # SET PUSHLIST TO ZERO
|
|
TS PUSHLOC
|
|
|
|
TC INTPRET
|
|
VLOAD VXM
|
|
HBEAMNB
|
|
XNBPIP # HBEAM SM AT 2(2)
|
|
PDVL VSL2 # STORE HBEAM IN PD 0-5
|
|
V1S # SCALE V AT 2(5) M/CS
|
|
VAD DOT
|
|
DELVS # V RELATIVE TO SURFACE AT 2(5) M/CS
|
|
0D # V ALONG HBEAM AT 2(7) M/CS.
|
|
DMP EXIT
|
|
RADSKAL # SCALE TO RADAR COUNTS X 5
|
|
|
|
CS FLGWRD12 # TEST LR ALTITUDE SCALE FACTOR
|
|
MASK ALTSCBIT
|
|
EXTEND
|
|
BZF +3 # BRANCH IF HIGH SCALE
|
|
|
|
CA SKALSKAL # RESCALE IF LOW SCALE
|
|
TC SHORTMP
|
|
|
|
+3 TC INTPRET
|
|
DAD SL # CORRECT HMEAS FOR DOPPLER EFFECT
|
|
HMEAS
|
|
7D
|
|
DMP VXSC # SLANT RANGE AT 2(21), PUSH UP FOR HBEAM
|
|
HSCAL # SLANT RANGE VECTOR AT 2(23) M
|
|
DOT DSU
|
|
UNIT/R/ # ALTITUDE AT 2(24) M
|
|
HCALC # DELTA H AT 2(24) M
|
|
STORE DELTAH
|
|
EXIT
|
|
|
|
CA FLGWRD11
|
|
MASK PSTHIBIT
|
|
EXTEND # DO NOT PERFORM DATA REASONABLENESS TEST
|
|
BZF NOREASON # UNTIL AFTER HIGATE
|
|
# Page 885
|
|
TC INTPRET
|
|
ABS DSU
|
|
DELQFIX # ABS(DELTAH) - DQFIX 50 FT NOM
|
|
SL3 DSU # SCALE TO 2(21)
|
|
HCALC # ABS(DELTAH) - (50 + HCALC/8) AT 2(21)
|
|
EXIT
|
|
|
|
INCR LRLCTR
|
|
TC BRANCH
|
|
TCF HFAIL # DELTA H TOO LARGE
|
|
TCF HFAIL # DELTA H TOO LARGE
|
|
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 # DO POSITION UPDATE
|
|
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
|
|
TC INTPRET # MODE IS DP FROM ABOVE
|
|
SL1
|
|
VXSC VAD
|
|
UNIT/R/ # DELTAR = DH(WH)(1 - H/HMAX) UNIT/R/
|
|
R1S
|
|
STCALL GNUR
|
|
MUNGRAV
|
|
EXIT
|
|
# Page 886
|
|
TC QUIKFAZ5
|
|
|
|
CA ZERO
|
|
RUPDATED TC GNURVST
|
|
|
|
VMEASCHK TC QUIKFAZ5 # RESTART AT NEXT LOCATION
|
|
CS FLGWRD11
|
|
MASK VELDABIT # IS V READING AVAILABLE?
|
|
CCS A
|
|
TCF VALTCHK # NO: SEE IF V READING TO BE TAKEN
|
|
|
|
VELUPDAT CS VSELECT # PROCESS VELOCITY DATA
|
|
TS L
|
|
ADS L # -2 VSELECT IN L
|
|
AD L
|
|
AD L # -6 VSELECT IN A
|
|
INDEX FIXLOC
|
|
DXCH X1 # X1 = -6 VSELECT, X2 = -2 VSELECT
|
|
|
|
CA EBANK4
|
|
TS EBANK
|
|
EBANK= LRXCDU
|
|
|
|
CA LRYCDU # STORE LRCDUS IN CDUSPOTS
|
|
TS CDUSPOT
|
|
CA LRZCDU
|
|
TS CDUSPOT +2
|
|
CA LRXCDU
|
|
TS CDUSPOT +4
|
|
|
|
TC BANKCALL
|
|
CADR QUICTRIG # GET SINES AND COSINES FOR NBSM
|
|
|
|
CA FIXLOC
|
|
TS PUSHLOC # SET PD TO ZERO
|
|
|
|
TC INTPRET
|
|
VLOAD* CALL
|
|
VZBEAMNB,1 # CONVERT VBEAM FROM NB TO SM
|
|
*NBSM*
|
|
PDDL SL # STORE IN PD 0-5
|
|
VMEAS # LOAD VELOCITY MEASUREMENT
|
|
12D
|
|
DMP* PUSH # SCALE TO M/CS AT 2(6)
|
|
VZSCAL,2 # AND STORE IN PD 6-7
|
|
EXIT
|
|
CS ONE
|
|
TS MODE # CHANGE STORE MODE TO VECTOR
|
|
|
|
CA PIPTEM # STORE DELV IN MPAC
|
|
# Page 887
|
|
ZL
|
|
DXCH MPAC
|
|
|
|
CA PIPTEM +1
|
|
ZL
|
|
DXCH MPAC +3
|
|
|
|
CA PIPTEM +2
|
|
ZL
|
|
DXCH MPAC +5
|
|
|
|
CA EBANK7
|
|
TS EBANK # RESTORE EBANK 7
|
|
EBANK= DVCNTR
|
|
TC INTPRET
|
|
VXSC PDDL
|
|
KPIP1 # SCALE DELV TO 2(7) M/CS AND PUSH
|
|
LRVTIME # TIME OF DELV AT 2(28) CS
|
|
DSU DDV
|
|
PIPTIME # TU - T(N-1)
|
|
2SEC(28)
|
|
VXSC VSL1 # G(N-1)(TU - T(N-1))
|
|
GDT/2 # SCALED AT 2(7) M/CS
|
|
VAD VAD # PUSH UP FOR DELV
|
|
V # VU = V(N-1) + DELVU + G(N-1) DTU
|
|
VSL2 VAD # SCALE TO 2(5) M/CS AND SUBTRACT
|
|
DELVS # MOON ROTATION.
|
|
PUSH ABVAL # STORE IN PD
|
|
SR4 DAD # ABS(VM)/8 + 7.5 AT 2(6)
|
|
7.5
|
|
STOVL 20D # STORE IN 20D AND PICK UP VM
|
|
DOT BDSU # V(EST) AT 2(6)
|
|
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 # TURN OFF VEL FAIL LAMP
|
|
ADRES VFLSHFLG
|
|
|
|
CA FLGWRD11
|
|
MASK VXINHBIT
|
|
EXTEND
|
|
BZF VUPDAT # IF VX INHIBIT RESET, INCORPORATE DATA.
|
|
# Page 888
|
|
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
|
|
|
|
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
|
|
# Page 889
|
|
BZMF +3 # IF IN P65,P66,P67, USE ANOTHER CONSTANT
|
|
|
|
CA LRWVFF
|
|
TS MPAC
|
|
|
|
+3 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
|
|
|
|
CAF READVBIT # TEST READVEL TO SEE IF VELOCITY READING
|
|
MASK FLGWRD11 # IS DESIRED.
|
|
CCS A
|
|
TCF READV # YES -- READ VELOCITY
|
|
CS ABVEL # NO -- SEE IF VELOCITY < 2000 FT/SEC
|
|
AD 2KFT/SEC
|
|
EXTEND
|
|
BZMF CONTSERV # V > 2000 FT/SEC DO NOT READ VEL
|
|
|
|
TC UPFLAG # V < 2000 FT/SEC SET READVEL AND READ.
|
|
ADRES READVEL
|
|
|
|
READV CAF PRIO32 # SET UP JOB TO READ VELOCITY BEAMS.
|
|
TC NOVAC
|
|
EBANK= HMEAS
|
|
2CADR LRVJOB
|
|
|
|
TCF CONTSERV # CONTINUE WITH SERVICER
|
|
|
|
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
|
|
# Page 890
|
|
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
|
|
|
|
HFAIL 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 CS LRSCTR # DELTA Q LARGE
|
|
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
|
|
BZF +2 # LAST FOUR V READINGS WERE BAD,
|
|
TCF NOLITE # SO TURN ON VELOCITY FAIL LIGHT
|
|
|
|
TC UPFLAG # AND SET BIT TO TURN ON TRACKER FAIL LITE
|
|
ADRES VFLSHFLG
|
|
|
|
# Page 891
|
|
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 892
|
|
# ********************************************************************************
|
|
# LRVJOB IS SET WHEN THE LEM IS BELOW 15000 FT DURING THE LANDING PHASE
|
|
# THIS JOB INITIALIZES THE LANDING RADAR READ ROUTINE FOR 5 VELOCITY
|
|
# SAMPLES AND GOES TO SLEEP WHILE THE SAMPLING IS DONE -- ABOUT 500 MS.
|
|
# WITH A GOODEND RETURN THE DATA IS STORED IN VMEAS AND BIT7 OF LRSTAT
|
|
# IS SET. THE GIMBAL ANGLES ARE READ ABOUT MIDWAY IN THE SAMPLINGS.
|
|
|
|
170MS EQUALS ND1
|
|
|
|
LRVJOB CA 170MS # SET TASK TO READ CDUS + PIPAS
|
|
TC WAITLIST
|
|
EBANK= LRVTIME
|
|
2CADR RDGIMS
|
|
|
|
CCS VSELECT # SEQUENCE LR VEL BEAM SELECTOR
|
|
TCF +2
|
|
CAF TWO # IF ZERO, RESET TO TWO
|
|
DOUBLE # 2XVSELECT USED FOR VBEAM INDEX IN LRVEL
|
|
TC BANKCALL # GO INITIALIZE LR VEL READ ROUTINE
|
|
CADR LRVEL
|
|
TC BANKCALL # PUT LRVJOB TO SLEEP ABOUT 500 MS
|
|
CADR RADSTALL
|
|
TCF VBAD
|
|
CCS STILBADV # IS DATA GOOD JUST PRESENT?
|
|
TCF VSTILBAD # JUST GOOD -- MUST WAIT 4 SECONDS.
|
|
|
|
INHINT
|
|
EXTEND # GOOD RETURN -- STOW AWAY VMEAS
|
|
DCA SAMPLSUM
|
|
DXCH VMEAS
|
|
CA EBANK4 # FOR DOWNLINK
|
|
TS EBANK
|
|
EBANK= LRVTIME
|
|
|
|
EXTEND
|
|
DCA LRVTIME
|
|
DXCH LRVTIMDL
|
|
EXTEND
|
|
DCA LRXCDU
|
|
DXCH LRXCDUDL
|
|
CA LRZCDU
|
|
TS LRZCDUDL
|
|
CA EBANK7
|
|
TS EBANK
|
|
EBANK= VSELECT
|
|
|
|
CS FLGWRD11 # SET BIT TO INDICATE VELOCITY
|
|
MASK VELDABIT # MEASUREMENT MADE
|
|
# Page 893
|
|
ADS FLGWRD11
|
|
ENDLRV CCS VSELECT # UPDATE VSELECT
|
|
TCF +2
|
|
CA TWO
|
|
TS VSELECT
|
|
TCF ENDOFJOB
|
|
|
|
VBAD CAF TWO # SET STILBAD TO WAIT 4 SECONDS
|
|
VSTILBAD TS STILBADV
|
|
TCF ENDLRV
|
|
|
|
# LRHJOB IS SET BY LRHTASK WHEN LEM IS BELOW 25000 FT. THIS JOB
|
|
# INITIALIZES THE LR READ ROUTINE FOR AN ALT MEASUREMENT AND GOES TO
|
|
# SLEEP WHILE THE SAMPLING IS DONE -- ABOUT 95 MS. WITH A GOODEND RETURN
|
|
# THE ALT DATA IS STORED IN HMEAS AND BIT7 OF LRSTAT IS SET.
|
|
|
|
BANK 34
|
|
SETLOC R12STUFF
|
|
BANK
|
|
|
|
COUNT* $$/SERV
|
|
|
|
LRHJOB TC BANKCALL # INITIATE LR ALT MEASUREMENT
|
|
CADR LRALT
|
|
TC BANKCALL # LRHJOB TO SLEEP ABOUT 95MS
|
|
CADR RADSTALL
|
|
TCF HBAD
|
|
CCS STILBADH # IS DATA GOOD JUST PRESENT?
|
|
TCF HSTILBAD # JUST GOOD -- MUST WAIT 4 SECONDS.
|
|
|
|
INHINT
|
|
EXTEND
|
|
DCA SAMPLSUM # GOOD RETURN -- STORE AWAY LRH DATA
|
|
DXCH HMEAS # LRH DATA 1.079 FT/BIT
|
|
EXTEND # FOR DOWNLINK
|
|
DCA PIPTIME1
|
|
DXCH MKTIME
|
|
|
|
EXTEND
|
|
DCA CDUTEMPY # CDUY,Z = AIG,AMG
|
|
DXCH AIG
|
|
|
|
CA CDUTEMPX # CDUX = AOG
|
|
TS AOG
|
|
|
|
CS FLGWRD11 # SET BIT TO INDICATE RANGE
|
|
MASK RNGEDBIT # MEASUREMENT MADE.
|
|
ADS FLGWRD11
|
|
ENDLRH TC ENDOFJOB # TERMATE LRHJOB
|
|
|
|
# Page 894
|
|
HBAD CA FLAGWRD5
|
|
MASK RNGSCBIT # IS BAD RETURN DUE TO SCALE CHANGE?
|
|
EXTEND
|
|
BZF HSTILBAD -1 # NO RESET HSTILBAD
|
|
TC DOWNFLAG # YES RESET SCALE CHANGE BIT AND IGNORE
|
|
ADRES RNGSCFLG
|
|
TC ENDOFJOB
|
|
|
|
CAF TWO # SET STILBAD TO WAIT 4 SECONDS
|
|
HSTILBAD TS STILBADH
|
|
TC ENDOFJOB
|
|
|
|
BANK 34
|
|
SETLOC SERV4
|
|
BANK
|
|
|
|
COUNT* $$/SERV
|
|
|
|
# RDGIMS IS A TASK SET UP BY LRVJOB TO PICK UP THE IMU CDUS AND TIME
|
|
# AT ABOUT THE MIDPOINT OF THE LR VEL READ ROUTINE WHEN 5 VEL SAMPLES
|
|
# ARE SPECIFIED.
|
|
|
|
EBANK= LRVTIME
|
|
RDGIMS EXTEND
|
|
DCA TIME2 # PICK UP TIME2, TIME1
|
|
DXCH LRVTIME # AND SAVE IN LRVTIME
|
|
|
|
EXTEND
|
|
DCA CDUX # PICK UP CDUX AND CDUY
|
|
DXCH LRXCDU # AND SAVE IN LRXCDU AND LRYCDU
|
|
|
|
CA CDUZ
|
|
TS LRZCDU # SAVE CDUZ IN LRZCDU
|
|
|
|
CA PIPAX
|
|
TS PIPTEM # SAVE PIPAX IN PIPTEM
|
|
|
|
EXTEND
|
|
DCA PIPAY # PICK UP PIPAY AND PIPAZ
|
|
DXCH PIPTEM +1 # AND SAVE IN PIPTEM +1 AND PIPTEM +2
|
|
TC TASKOVER
|
|
|
|
BANK 33
|
|
SETLOC SERVICES
|
|
BANK
|
|
|
|
COUNT* $$/SERV
|
|
|
|
EBANK= DVCNTR
|
|
# Page 895
|
|
# HIGATJOB IS SET APPROXIMATELY 6 SECONDS PRIOR TO HIGH GATE DURING
|
|
# THE DESCENT BURN PHASE OF LUNAR LANDING. THIS JOB INITIATES THE
|
|
# LANDING RADAR REPOSITIONING ROUTINE AND GOES TO SLEEP UNTIL THE
|
|
# LR ANTENNA MOVES FROM POSITION 1 TO POSITION 2. IF THE LR ANTENNA
|
|
# ACHIEVES POSITION 2 WITHIN 22 SECONDS THE ALTITUDE AND VELOCITY
|
|
# BEAM VECTORS ARE RECOMPUTED TO REFLECT THE NEW ORIENTATION WITH
|
|
# RESPECT TO THE NB. BIT10 OF LRSTAT IS CLEARED TO ALLOW LR
|
|
# MEASUREMENTS AND THE JOB TERMINATES.
|
|
|
|
HIGATJOB TC BANKCALL # START LRPOS2 JOB
|
|
CADR LRPOS2
|
|
TC BANKCALL # PUT HIGATJOB TO SLEEP UNTIL JOB IS DONE
|
|
CADR RADSTALL
|
|
TCF POSALARM # BAD END ALARM
|
|
|
|
POSGOOD CA PRIO23 # REDUCE PRIORITY FOR INTERPRETIVE COMPS.
|
|
TC PRIOCHNG
|
|
|
|
TC SETPOS2 # LR IN POS2 -- SET UP TRANSFORMATIONS
|
|
|
|
TC DOWNFLAG
|
|
ADRES NOLRREAD # RESET NOLRREAD FLAG TO ENABLE LR READING
|
|
TC ENDOFJOB
|
|
|
|
POSALARM CA OCT523
|
|
TC BANKCALL
|
|
CADR PRIOLARM # FLASH ALARM CODE
|
|
TCF GOTOP00H # TERMINATE
|
|
TCF +3 # PROCEED -- TRY AGAIN
|
|
TCF ENDOFJOB # V 32 E TERMINATE R12
|
|
TC ENDOFJOB
|
|
|
|
+3 CA BIT7 # SEE IF IN POS2 YET
|
|
EXTEND
|
|
RAND CHAN33
|
|
EXTEND
|
|
BZF POSGOOD # POS2 ACHIEVED SET UP ANTENNA BEAMS
|
|
TCF POSALARM # STILL DIDN'T MAKE IT REALARM
|
|
|
|
OCT523 OCT 00523
|
|
|
|
|
|
|
|
SETPOS1 TC MAKECADR # MUST BE CALLED BY BANKCALL
|
|
TS LRADRET1 # SAVE RETURN CADR. SINCE BUP2 CLOBBERED
|
|
|
|
CAF TWO
|
|
TS STILBADH # INITIALIZE STILBAD
|
|
TS STILBADV # INITIALIZE STILBAD
|
|
|
|
CA ZERO # INDEX FOR LRALPHA, LRBETA IN POS 1.
|
|
# Page 896
|
|
TS LRLCTR # SET L,M,R, ANS S TO ZERO
|
|
TS LRMCTR
|
|
TS LRRCTR
|
|
TS LRSCTR
|
|
TS VSELECT # INITIALIZE VSELECT
|
|
|
|
TC SETPOS # CONTINUE WITH COMPUTATIONS.
|
|
|
|
CA LRADRET1
|
|
TC BANKJUMP # RETURN TO CALLER
|
|
|
|
SETPOS2 CA TWO # INDEX FOR POS2
|
|
SETPOS XCH Q # SAVE INDEX IN Q
|
|
TS LRADRET # SAVE RETURN
|
|
|
|
CA EBANK5
|
|
TS EBANK
|
|
EBANK= LRALPHA
|
|
|
|
EXTEND
|
|
INDEX Q
|
|
DCA LRALPHA # LRALPHA IN A, LRBETA IN L
|
|
TS CDUSPOT +4 # ROTATION ABOUT X
|
|
LXCH CDUSPOT # ROTATION ABOUT Y
|
|
CA ZERO
|
|
TS CDUSPOT +2 # ZERO ROTATION ABOUT Z.
|
|
|
|
CA EBANK7
|
|
TS EBANK
|
|
EBANK= LRADRET
|
|
|
|
TC INTPRET
|
|
VLOAD CALL
|
|
UNITY # CONVERT UNITY(ANTENNA) TO NB
|
|
TRG*SMNB
|
|
STOVL VYBEAMNB
|
|
UNITX # CONVERT UNITX(ANTENNA) TO NB
|
|
CALL
|
|
*SMNB*
|
|
STORE VXBEAMNB
|
|
VXV VSL1
|
|
VYBEAMNB
|
|
STOVL VZBEAMNB # Z = X * Y
|
|
HBEAMANT
|
|
CALL
|
|
*SMNB* # CONVERT TO NB
|
|
STORE HBEAMNB
|
|
EXIT
|
|
|
|
# Page 897
|
|
TC LRADRET
|
|
|