Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Impressum SERVICER.agc   Interaktion und
PortierbarkeitApollo

 

# 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 GOTOPOOH 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 GOTOPOOH # 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


Messung V0.5 in Prozent
C=67 H=100 G=84

¤ Dauer der Verarbeitung: 0.23 Sekunden  (vorverarbeitet am  2026-10-12) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1128594
#Domains=1976912