Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Asm/Apollo-11/Comanche055/     Datei vom 11.9.2026 mit Größe 39 kB image not shown  

Quellcode-Bibliothek P51-P53.agc   Sprache: Apollo

 

# Copyright:    Public domain.
# Filename:     P51-P53.agc
# Purpose:      Part of the source code for Comanche, build 055. It
#               is part of the source code for the Command Module's
#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler:    yaYUL
# Reference:    pp. 737-784
# Contact:      Ron Burkey <info@sandroid.org>
# Website:      http://www.ibiblio.org/apollo.
# Mod history:  2009-05-12 RSB Adapted from Colossus249 file of the same
# name, and Comanche 055 page images.
# 2009-05-20 RSB Corrections: SETI/PDT -> SET1/PDT,
# GOTOPOOH -> GOTOPOOH, R33EXIT -> R53EXIT,
# V853 -> VB53, R56A -> R56A1 (some places
# only), added missing R56A1 label, added a
# missing CAF in COARSTYP, corrected a SETLOC
# from P50S to P50S3.
#  2009-05-21 RSB In COARFINE, a TC BANKCALL was corrected to
# TC PHASCHNG.  In R53C, a CADR GOFLASHR was
# corrected to CADR GOFLASH.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
#       Assemble revision 055 of AGC program Comanche by NASA
#       2021113-051.  April 1, 1969.
#
#       This AGC program shall also be referred to as Colossus 2A
#
#       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 737
# PROGRAM NAME -- PROG52 DATE -- NOV 30, 1966
# MOD NO -- 2 LOG SECTION -- P51-P53
# MODIFICATION BY -- LONSKE ASSEMBLY -- SUNDISK REV 30
#
# FUNCTIONAL DESCRIPTION --
#
# ALIGNS THE IMU TO ONE OF THREE ORIENTATIONS SELECTED BY THE ASTRONAUT.  THE PRESENT IMU ORIENTATION IS KNOWN
# AND IS STORED IN REFSMMAT.  THE THREE POSSIBLE ORIENTATIONS MAY BE:
#
# (A) PREFERRED ORIENTATION
#
# AN OPTIMUM ORIENTATION FOR A PREVIOUSLY CALCULATED MANEUVER.  THIS ORIENTATION MUST BE CALCULATED AND
# STORED BY A PREVIOUSLY SELECTED PROGRAM.
#
# (B) NOMINAL ORIENTATION
#
# X   = UNIT ( Y   x Z   )
# -SM          -SM   -SM
#
# Y   = UNIT (V X R)
# -SM         -   -
#
# Z   = UNIT ( -R )
# -SM           -
#
# WHERE:
#
# R = THE GEOMETRIC RADIUS VECTOR AT TIME T(ALIGN) SELECTED BY THE ASTRONAUT
# -
#
# V = THE INERTIAL VELOCITY VECTOR AT TIME T(ALIGN) SELECTED BY THE ASTRONAUT
# -
#
# (C) RERSMMAT ORIENTATION
#
# THIS SELECTION CORRECTS THE PRESENT IMU ORIENTATION.  THE PRESENT ORIENTATION DIFFERS FROM THAT TO WHICH IT
# WAS LAST ALIGNED ONLY DUE TO GYRO DRIVE (I.E., NEITHER GIMBAL LOCK NOR IMU POWER INTERRUPT HAS OCCURRED
# SINCE THE LAST ALIGNMENT).
#
# AFTER A IMU ORIENTATION HAS BEEN SELECTED ROUTINE S52.2 IS OPERATED TO COMPUTE THE GIMBAL ANGLES USING THE
# NEW ORIENTATION AND THE PRESENT VEHICLE ATTITUDE.  CAL52A THEN USES THESE ANGLES, STORED IN THETAD,+1,+2, TO
# COARSE ALIGN THE IMU.  THE STARS SELECTION ROUTINE, R56, IS THEN OPERATED.  IF 2 STARS ARE NOT AVAILABLE AN ALARM
# IS FLASHED TO NOTIFY THE ASTRONAUT.  AT THIS POINT THE ASTRONAUT WILL MANEUVER THE VEHICLE AND SELECT 2 STARS
#  EITHER MANUALLY OR AUTOMATICALLY.  AFTER 2 STARS HAVE BEEN SELECTED THE IMU IS FINE ALIGNED USING ROUTINE R51.  IF
#  THE RENDEZVOUS NAVIGATION PROCESS IS OPERATING (INDICATED BY RNDVZFLG) P20 IS DISPLAYED.  OTHERWISE P00 IS
# REQUESTED.
#
# CALLING SEQUENCE --
#
# THE PROGRAM IS CALLED BY THE ASTRONAUT BY DSKY ENTRY.
# Page 738
#
# SUBROUTINES CALLED --
#
# 1. FLAGDOWN  7. S52.2 13. NEWMODEX
# 2. R02BOTH  8. CAL53A 14. PRIOLARM
# 3. GOPERF4  9. FLAGUP
# 4. MATMOVE 10. R56
# 5. GOFLASH 11. R51
# 6. S52.3 12. GOPERF3
#
# NORMAL EXIT MODES --
#
# EXITS TO ENDOFJOB
#
# ALARM OR ABORT EXIT MODES --
#
# NONE
#
# OUTPUT --
#
# THE FOLLOWING MAY BE FLASHED ON THE DSKY
# 1. IMU ORIENTATION CODE
# 2. ALARM CODE 215 -- PREFERRED IMU ORIENTATION NOT SPECIFIED
# 3. TIME OF NEXT IGNITION
# 4. GIMBAL ANGLES
# 5. ALARM CODE 405 -- TWO STARS NOT AVAILABLE
# 6. PLEASE PERFORM P00
# THE MODE DISPLAY MAY BE CHANGED TO 20
#
# ERASABLE INITIALIZATION REQUIRED --
#
# PFRATFLG SHOULD BE SET IF A PREFERRED ORIENTATION HAS BEEN COMPUTED.  IF IT HAS BEEN COMPUTED IT IS STORED IN
# XSMD, YSMD, ZSMD.
#
# RNDVZFLG INDICATES WHETHER THE RENDEZVOUS NAVIGATION PROCESS IS OPERATING.
#
# DEBRIS --
#
# WORK AREA

P54  = PROG52
  BANK 33
  SETLOC P50S
  BANK

  SBANK= LOWSUPER
  EBANK= SAC
  COUNT 15/P52

PROG52  TC PHASCHNG
  OCT 00254
  TC DOWNFLAG
  ADRES UPDATFLG # BIT 7 FLAG 1
# Page 739
  TC DOWNFLAG
  ADRES TRACKFLG # BIT 5 FLAG 1
  TC BANKCALL
  CADR R02BOTH  # IMU STATUS CHECK
  CAF BIT4
  MASK STATE +2 # IS PFRATFLG SET?
  CCS A
  TC P52A  # YES
  CAF BIT2  # NO
  TC P52A +1
P52A  CAF BIT1
  TS OPTION2
P52B  CAF BIT1
  TC BANKCALL # FLASH OPTION CODE AND ORIENTATION CODE
  CADR GOPERF4R
  TC GOTOPOOH
  TC +5
  TC P52B  # NEW CODE -- NEW ORIENTATION CODE INPUT
  TC PHASCHNG
  OCT 00014
  TC ENDOFJOB
  CA OPTION2
  MASK THREE
  INDEX A
  TC +1
  TC P52T  # L.S.
  TC P52J  # PREF
  TC P52T  # NORM
  TCF P52C  # REF
P52T  EXTEND
  DCA NEG0
  DXCH DSPTEM1
  CAF V06N34
  TC BANKCALL
  CADR GOFLASH
  TC GOTOPOOH
  TC +2
  TC -5
  EXTEND
  DCA DSPTEM1
  EXTEND
  BZF +2
  TCF +4

  EXTEND
  DCA TIME2
  DXCH DSPTEM1
  CA OPTION2
  MASK BIT2
  CCS A
# Page 740
  TCF +6  # NOM
  TC INTPRET  # LS
  CALL
   P52LS
  GOTO
   P52D
  TC INTPRET
  DLOAD
   DSPTEM1
  CALL   # COMPUTE NOMINAL IMU
   S52.3  # ORIENTATION
P52D  CALL   # READ VEHICLE ATTITUDE AND
   S52.2  # COMPUTE GIMBAL ANGLES
  EXIT
  CAF VB06N22
  TC BANKCALL # DISPLAY GIMBAL ANGLES
  CADR GOFLASH
  TC GOTOPOOH
  TC COARSTYP
P52J  TC INTPRET  # RECYCLE: VEHICLE HAS BEEN MANEUVERED
  GOTO
   P52D
  TC INTPRET
  CALL   # DO COARSE ALIGN
   CAL53A  # ROUTINE
CAL53RET SET EXIT
   REFSMFLG
P52C  TC PHASCHNG
  OCT 04024
  CAF ALRM15
  TC BANKCALL
  CADR GOPERF1
  TC GOTOPOOH
  TC +2  # V33
  TC P52F  # E
  TC INTPRET
  RTB DAD
   LOADTIME
   TSIGHT1
  CALL
   LOCSAM
  EXIT
P52E  TC BANKCALL # DO STAR SELECTION
  CADR PICAPAR
  TC P52I  # 2 STARS NOT AVAILABLE
P52F  TC INTPRET  # 2 STARS AVAILABLE
  CALL
   R51
ENDP50S  EXIT
  TC GOTOPOOH
# Page 741
P52I  TC ALARM
  OCT 405
  CAF V05N09
  TC BANKCALL
  CADR GOFLASH
  TC GOTOPOOH
  TC P52F  # PROCEED:  DO FINE ALIGN-R51
  TC P52C  # RECYCLE:  VEHICLE HAS BEEN MANEUVERED
V06N34  VN 0634
VB06N22  VN 00622
COARSTYP CAF OCT13
  TC BANKCALL
  CADR GOPERF1
  TCF GOTOPOOH # V34
  TCF P52J +3 # NORMAL
  TC INTPRET  # GYRO COARSE
GYCRS  VLOAD MXV
   XSMD
   REFSMMAT
  UNIT
  STOVL XDC
   YSMD
  MXV UNIT
   REFSMMAT
  STOVL YDC
   ZSMD
  MXV UNIT
   REFSMMAT
  STCALL ZDC
   CALCGTA
  CLEAR CLEAR
   DRIFTFLG
   REFSMFLG
  EXIT
  CAF V16N20
  TC BANKCALL
  CADR GODSPR
  CA R55CDR
  TC BANKCALL
  CADR IMUPULSE
  TC BANKCALL
  CADR IMUSTALL
  TC CURTAINS
  TC PHASCHNG
  OCT 04024
  TC INTPRET
  AXC,1 AXC,2
   XSMD
   REFSMMAT
  CALL
# Page 742
   MATMOVE
  CLEAR SET
   PFRATFLG
   REFSMFLG
  RTB VLOAD
   SET1/PDT
   ZEROVEC
  STORE GCOMP
  SET GOTO
   DRIFTFLG
   R51K
V16N20  VN 1620
ALRM15  EQUALS OCT15
  SETLOC P50S2
  BANK
V06N89*  VN 0689

# NAME -- P52LS
#
# FUNCTION -- TO DISPLAY THE LANDING SITE LATITUDE,
# LONGITUDE AND ALTITUDE.  TO ACCEPT NEW DATA VIA
# THE KEYBOARD.  TO COMPUTE THE LANDING SITE
# ORIENTATION FOR P52 OR P54
#
# LET:
# RLS  = LANDING SITE VECTOR IN REF COORDINATES
# R    = CSM POSITION VECTOR IN REF COORDINATES
# V    = CSM VELOCITY VECTOR IN REF COORDINATES
# THEN THE LANDING SITE ORIENTATION IS:
# XSMD = UNIT(RLS)
# YSMD = UNIT(ZSMD*XSMD)
# ZSMD = UNIT((R*V)*RLS)
#
# CALL: CALL
# P52LS
#
# INPUTS: DSPTEM1 = TIME OF ALIGNMENT
# RLS = LANDING SITE VECTOR IN MOON FIXED COORDINATES
#
# OUTPUTS: XSMD, YSMD, ZSMD
#
# SUBROUTINES: RP-TO-R, LAT-LONG, LLASRD, LLASRDA, CSMPREC
#
# DEBRIS: VAC, SEE SUBROUTINES

P52LS  STQ SET
   QMAJ
   LUNAFLAG
  DLOAD
   DSPTEM1
  STORE TSIGHT
  VLOAD SET
   RLS
   ERADFLAG
  STODL 0D
   TSIGHT
  STCALL 6D
# Page 743
   RP-TO-R
  VSR2
  STODL ALPHAV
   TSIGHT
  CALL
   LAT-LONG
  CALL
   LLASRD
  EXIT
LSDISP  CAF V06N89*
  TC BANKCALL
  CADR GOFLASH
  TC GOTOPOOH
  TC +2
  TC LSDISP
  TC INTPRET
  CALL
   LLASRDA
  DLOAD CALL
   TSIGHT
   LALOTORV
  VLOAD UNIT
   ALPHAV
  STODL XSMD
   TSIGHT
  STCALL TDEC1
   CSMPREC
  VLOAD VXV
   RATT
   VATT
  VXV UNIT
   XSMD
  STORE ZSMD
  VXV UNIT
   XSMD
  STCALL YSMD
   QMAJ
  SETLOC P50S1
  BANK

# NAME: AUTOMATIC OPTICS POSITIONING ROUTINE
#
# FUNCTION: (1) TO POINT THE STAR LOS OF THE OPTICS AT A STAR OR LANDMARK DEFINED BY THE PROGRAM OR BY DSKY INPUT.
# (2) TO POINT THE STAR LOS OF THE OPTICS AT THE LEM DURING RENDEZVOUS TRACKING OPERATIONS.
#
# CALLING: CALL R52
#
# INPUT: 1.  TARG1FLG AND TARG2FLG:  PRESET BY CALLER
# 2.  RNDVZFLG AND TRACKFLG:  PRESET BY CALLER
# 3.  STAR CODE:  PRESET BY CALLER.  ALSO INPUT THROUGH DSKY
# 4.  LAT, LONG, AND ALT OF LANDMARK:  INPUT THROUGH DSKY
# Page 744
# 5.  NO. OF MARKS (MARKINDX):  PRESET BY CALLER
#
# OUTPUT: DRIVE SHAFT AND TRUNNION CDUS.
#
# SUBROUTINES: 1.  FIXDELAY 7.  CLEANDSP
# 2.  GOPERF1 8.  GODSPR
# 3.  GOFLASH 9.  REFLASHR
# 4.  R53 10. R52.2
# 5.  ALARM 11. R52.3
# 6.  SR52.1

  COUNT 15/R52

R52  STQ CLEAR
   SAVQR52
   ADVTRK
R52VRB  EXIT
  EXTEND
  DCA CDUT
  DXCH DESOPTT
  TC INTPRET
  SSP CLEAR
   OPTIND
   0
   R53FLAG
  EXIT
R52A  TC INTPRET
  SET BON
   TRUNFLAG
   TARG1FLG
   R52H
  CLEAR EXIT
   TERMIFLG
R52C  CA SWSAMPLE # IS OPTICS MODE IN AGC
  EXTEND
  BZMF R52M  # MANUAL
R52D  TC BANKCALL # AGC
  CADR SR52.1
  TCF R52L  # GR 90 DEGREES
  TCF R52J  # GR 50 DEGREES
  TC UPFLAG  # LS 50 DEGREES
  ADRES TRUNFLAG # SET TRUNFLAG BIT 4 FLAG 0
R52JA  CAF BIT10  # IS THIS A LEM
  MASK STATE +1
  CCS A
  TC R52E  # YES
  CAF BIT6  # NO, IS R53FLAG SET
  MASK STATE
  CCS A
  TCF R52E  # YES
# Page 745
  CAF V06N92  # NO
  TC BANKCALL
  CADR GODSPR
R52E  CA SWSAMPLE # IS OSS IN CMC MODE
  EXTEND
  BZMF R52F  # NO
  CS STATE  # YES: IS TRUNFLAG SET
  MASK BIT4
  CCS A
  TC +3  # NO
  CA PAC  # YES
  TS DESOPTT
  CA SAC
  TS DESOPTS
R52F  CAF .5SEC  # WAIT 1/2 SEC
  TC BANKCALL
  CADR DELAYJOB
  CAF BIT10
  MASK STATE +1
  CCS A
  TCF R52HA  # YES, LEM
  CAF BIT15  # NO
  MASK STATE +7 # IS TERMIFLG SET
  EXTEND
  BZF R52C  # NO
R52Q  TC INTPRET  # YES
  GOTO
   SAVQR52
R52H  EXIT   # LEM
R52HA  TC BANKCALL
  CADR R61CSM
  CA STATE +1
  MASK BIT5
  EXTEND   # TRACKFLG
  BZF R52Q

  CS STATE +1
  MASK BIT7  # UPDATFLG
  CCS A
  TCF R52SYNC

R52I  CA STATE +5
  MASK BIT10
  CCS A
  TC R52D  # PRFTRKAT = 1
R52SYNC  CAF 1.8SEC  # MAKE UP FOR LOST TIME
  TCF R52F +1

R52J  TC DOWNFLAG # CLEAR TRUNFLAG
  ADRES TRUNFLAG # BIT 4 FLAG 0
# Page 746
  TC ALARM  # SET 407 ALARM
  OCT 407
  TC R52JA
R52M  CAF BIT6  # IS R53FLAG SET
  MASK STATE
  CCS A
  TC R52F  # YES
  INHINT   # NO
  CAF PRIO24
  TC FINDVAC
  EBANK= SAC
  2CADR R53JOB

  RELINT
  TCF R52F
R53JOB  TC INTPRET
  CALL
   R53
ENDPLAC  EXIT   # INTERPRETER RETURN TO ENDOFJOB (R22 USES)
  TC ENDOFJOB
V06N92  VN 00692
V06N89A  VN 0689
SHAXIS  2DEC .5376381241 B-1

  2DEC 0

  2DEC .8431766920 B-1

R52L  CAF BIT10  # IS THIS A LEM
  MASK STATE +1
  CCS A
  TC R52J  # YES
  CAF OCT404
  TC BANKCALL
  CADR PRIOLARM
  TCF TERM52  # TERMINATE
  TCF R52F  # PROCEED
  TCF R52F  # NO PROVISION FOR NEW DATA
  TCF ENDOFJOB

OCT404  OCT 404
1.8SEC  DEC 180

TERM52  TC CLEARMRK

  TC BANKCALL # KILL MARK SYSTEM
  CADR MKRELEAS

# Page 747

  CAF ZERO
  TS OPTCADR

  TC BANKCALL # CLEAR OUT EXTENDED VERBS
  CADR KLEENEX

  TC GOTOPOOH # NO GO TO P00

ADVORB  STQ SET  # SETS UP ADVANCED ORBIT TRACKING
   SAVQR52
   ADVTRK
  SET SET
   LUNAFLAG
   ERADFLAG
  GOTO
   R52VRB

# Page 748
# NAME -- S50 ALIAS LOCSAM
# NAME: LOCSAM
#
# FUNCTION -- TO COMPUTE QUATITIGS LISTED BELOW, USED IN THE
#       IMU ALIGNMENT PROGRAMS.
#
# DEFINE:
#
# RATT = POSITION VECTOR OF CM WRT PRIMARY BODY
#
# VATT = VELOCITY VECTOR OF CM WRT PRIMARY BODY
#
# RE = RADIUS OF EARTH
#
# RM = RADIUS OF MOON
#
# ECLIPOL = POLE OF ECLIPTIC SCALED BY TANGENTIAL VELOCITY OF EARTH
#   WRT TO SUN OVER THE VELOCITY OF LIGHT
#
# REM = POSITION OF MOON WRT EARTH
#
# RES = POSITION OF SUN WRT EARTH
#
# C = VELOCITY OF LIGHT
#
# EARTH IS PRIMARY MOON IS PRIMARY
#         _                                       _
# VEARTH=-1(RATT) VEARTH=-1(REM+RATT)
#         _         _
# VMOON = 1(REM-RATT) VMOON =-1(RATT)
#         _         _
# VSUN  = 1(RES) VSUN  = 1(RES-REM)
#               -1
# CEARTH=COS(SIN  (RE/RATT)+5) CEARTH=COS 5
#       -1
# CMOON =COS 5 CMOON =COS(SIN  CRM/RATT)+5)
#
# CSUN  =COS 15 CSUN  =COS 15
#
#     VEL/C = VSUN x ECLIPOL + VATT/C
#
# CALL: DLOAD CALL
# DESIRED TIME
# LOCSAM
#
# INPUTS:   MPAC = TIME
#
# OUTPUTS:   VEARTH, VMOON, VSUN, CEARTH, CMOON, CSUN, VEL/C
#
# SUBROUTINES:  LSPOS, CSMCONIC
#
# DEBRIS:   VAC AREA, SEE SUBROUTINES.

# Page 749
  SETLOC P50S1
  BANK

  COUNT* $$/S50

LOCSAM  = S50
S50  STQ
   QMAJ
  STCALL TSIGHT
   LSPOS
  STOVL VMOON
   2D
  STODL VSUN
   TSIGHT
  STCALL TDEC1
   CSMCONIC
  SSP TIX,2
   S2
   0
   MOONCNTR
EARTCNTR VLOAD VSU
   VMOON
   RATT
  UNIT
  STOVL VMOON
   RATT
  UNIT VCOMP
  STODL VEARTH
   RSUBE
  CALL
   OCCOS
  STODL CEARTH
   CSS5
  STOVL CMOON
   VSUN
  UNIT
  STCALL VSUN
   ENDSAM
MOONCNTR VLOAD VSR8
   VMOON
  VSR1 BVSU
   VSUN
  UNIT
  STOVL VSUN
   VMOON
  VAD UNIT
   RATT
  VCOMP
  STOVL VEARTH
# Page 750

   RATT
  UNIT VCOMP
  STODL VMOON
   RSUBM
  CALL
   OCCOS
  STODL CMOON
   CSS5
  STOVL CEARTH
   VSUN
ENDSAM  VXV
   ECLIPOL
  STOVL VEL/C
   VATT
  VXSC VAD
   1/C
   VEL/C
  STODL VEL/C
   CSSUN
  STCALL CSUN
   QMAJ
OCCOS  DDV SR1
   36D
  ASIN DAD
   5DEGREES
  COS SR1
  RVQ
  SETLOC P50S
  BANK
RSUBM  2DEC 1738090 B-29 # MOON RADIUS IN METERS

RSUBE  2DEC 6378166 B-29

5DEGREES 2DEC .013888889  # SCALED IN REVS

1/C  2DEC .000042699 B-1 # *

ECLIPOL  2DEC 0  # *

  2DEC -.00007896 B-1 # *

  2DEC .00018209 B-1 # * * FOR USE BY CSM ONLY

TSIGHT1  2DEC 24000

CEARTH  = 14D
CSUN  = 16D
CMOON  = 18D
CSS5  2DEC .2490475 # (COS 5)/4
# Page 751
CSSUN  2DEC .24148  # (COS 15)/4

# Page 752
# PROGRAM NAME -- PICAPAR DATE: DEC 20 66
# MOD 1 LOG SECTION: P51-P53
# ASSEMBLY:  SUNDISK REV40
# BY KEN VINCENT
#
# FUNCTION
# THIS PROGRAM READS THE IMU-CDUS AND COMPUTES THE VEHICLE ORIENTATION
# WITH RESPECT TO INERTIAL SPACE.  IT THEN COMPUTES THE SHAFT AXIS (SAX)
# WITH RESPECT TO REFERENCE INERTIAL.  EACH STAR IN THE CATALOG IS TESTED
#  TO DETERMINE IF IT IS OCCULTED BY EITHER EARTH, SUN OR MOON.  IF A
#  STAR IS NOT OCCULTED THEN IT IS PAIRED WITH ALL STARS OF LOWER INDEX.
#  THE PAIRED STAR IS TESTED FOR OCCULTATION.  PAIRS OF STARS THAT PASS
# THE OCCULTATION TESTS ARE TESTED FOR GOOD SEPARATION.  A PAIR OF STARS
# HAVE GOOD SEPARATION IF THE ANGLE BETWEEN THEM IS LESS THAN 66 DEGREES
# AND MORE THAN 40 DEGREES.  THOSE PAIRS WITH GOOD SEPARATION
# ARE THEN TESTED TO SEE IF THEY LIE IN CURRENT FIELD OF VIEW.  (WITHIN
# 33 DEGREES OF SAX).  THE PAIR WITH MAX SEPARATION IS CHOSEN FROM
# THOSE WITH GOOD SEPARATION, AND IN FIELD OF VIEW.
#
# CALLING SEQUENCE
# L TC BANKCALL
# L+1 CADR PICAPAR
# L+2 ERROR RETURN -- NO STARS IN FIELD OF VIEW
# L+3 NORMAL RETURN
#
# OUTPUT
# BESTI, BESTJ -- SINGLE PREC, INTEGERS, STAR NUMBERS TIMES 6
# VFLAG -- FLAG BIT SET IMPLIES NO STARS IN FIELD OF VIEW
#
# INITIALIZATION
# 1) A CALL TO LOCSAM MUST BE MADE
# 2) VEARTH = -UNIT(R) WHERE R HAS BEEN UPDATED TO APPROXIMATE TIME OF
# SIGHTINGS.
#
# DEBRIS
# WORK AREA
# X,Y,ZNB
# SINCDU, COSCDU
# STARAD -- STAR +5

  COUNT 14/PICAP

  SETLOC P50S1
  BANK
PICAPAR  TC MAKECADR
  TS QMIN
  TC INTPRET
  CALL
   CDUTRIG
  CALL
   CALCSMSC
# Page 753
  SETPD
   0
  SET DLOAD  # VFLAG = 1
   VFLAG
   DPZERO
  STOVL BESTI
   XNB
  VXSC PDVL
   SIN33
   ZNB
  AXT,1 VXSC
   228D  # X1 = 37 X 6 + 6
   COS33
  VAD
  VXM UNIT
   REFSMMAT
  STORE SAX  # SAX = SHAFT AXIS
  SSP SSP  # S1 = S2 = 6
   S1
   6
   S2
   6
PIC1  TIX,1 GOTO  # MAJOR STAR
   PIC2
   PICEND
PIC2  VLOAD* CALL
   CATLOG,1
   OCCULT
  BON LXA,2
   CULTFLAG
   PIC1
   X1
PIC3  TIX,2 GOTO
   PIC4
   PIC1
PIC4  VLOAD* CALL
   CATLOG,2
   OCCULT
  BON VLOAD*
   CULTFLAG
   PIC3
   CATLOG,1
  DOT* DSU
   CATLOG,2
   CSS66  # SEPARATION LESS THAN 66 DEG.
  BMN DAD
   PIC3
   CSS6640  # SEPARATION MORE THAN 40 DEG.
  BPL
   PIC3
# Page 754
  VLOAD* DOT
   CATLOG,1
   SAX
  DSU BMN  # MAJOR STAR IN CONE
   CSS33
   PIC1
  VLOAD* DOT
   CATLOG,2
   SAX
  DSU BPL
   CSS33
   STRATGY
  GOTO
   PIC3
STRATGY  BONCLR
   VFLAG
   NEWPAR
  XCHX,1 XCHX,2
   BESTI
   BESTJ
STRAT  VLOAD* DOT*
   CATLOG,1
   CATLOG,2
  PUSH BOFINV
   VFLAG
   STRAT -3
  DLOAD DSU
  BPL
   PIC3
NEWPAR  SXA,1 SXA,2
   BESTI
   BESTJ
  GOTO
   PIC3
OCCULT  MXV BVSU
   CULTRIX
   CSS
  BZE
   CULTED
  BMN SIGN
   CULTED
   MPAC +3
  BMN SIGN
   CULTED
   MPAC +5
  BMN CLRGO
   CULTED
   CULTFLAG
   QPRET
CULTED  SETGO
# Page 755
   CULTFLAG
   QPRET
CSS  =  CEARTH
SIN33  2DEC .5376381241

COS33  2DEC .8431756920

CSS66  2DEC .060480472 # (COS76)/4

CSS6640  2DEC -.15602587 # (COS76 - COS30)/4

CSS33  2DEC .197002688 # (COS(1/2(76))/4

PICEND  BOFF EXIT
   VFLAG
   PICGXT
  TC PICBXT
PICGXT  EXIT
  INCR QMIN
PICBXT  CA QMIN
  TC SWCALL
#V1 =  12D

# Page 756
# NAME -- R51 FINE ALIGN
# FUNCTION -- TO ALIGN THE STABLE MEMBER TO REFSSMAT
# CALLING SEQ -- CALL R51
# INPUT -- BESTI, BESTJ (PAIR OF STAR NO)
# OUTPUT -- GYRO TORQUE PULSES
# SUBROUTINES -- R52, R54, R55 (SXTNB, NBSM, AXISGEN)

  COUNT 14/R51

R51  EXIT
  CAF BIT1
  TS STARIND
  TS MARKINDX
R51.2  TC INTPRET
R51.3  CLEAR CLEAR
   TARG2FLG
   TARG1FLG
  EXIT
  TC PHASCHNG
  OCT 05024  # RESTART GR 4 FOR R52-R53
  OCT 13000
  INDEX STARIND
  CA BESTI
  EXTEND
  MP 1/6TH
  TS STARCODE
R51DSP  CAF V01N70
  TC BANKCALL
  CADR GOFLASHR
  TC GOTOPOOH
  TC +5
  TC -5
  CAF SIX
  TC BLANKET
  TCF ENDOFJOB
  TC CHKSCODE
  TC FALTON
  TC R51DSP
  TC INTPRET
  RTB CALL
   LOADTIME
   PLANET
  SSP LXA,1
   S1
   0
   STARIND
  TIX,1
   R51ST
  STCALL STARSAV2 # 2ND STAR
   R51ST +1
R51ST  STORE STARSAV1 # 1ST STAR
# Page 757
  EXIT
  CS MODREG  # IS THIS P54
  AD  OCT66
  EXTEND
  BZF R51B  # YES
  TC INTPRET
  CALL
   R52  # AOP WILL MAKE CALLS TO SIGHTING
R51A  CALL   # COMPUTE LOS IN SM FROM MARK DATA
   SXTSM
  STORE STARSAV2
  EXIT
  TC BANKCALL
  CADR MKRELEAS
  TC INTPRET
  DLOAD CALL
   TSIGHT
   PLANET
  EXIT
  CCS STARIND
  TC R51.4
  TC INTPRET
  MXV UNIT
   REFSMMAT
  STORE STARAD
  VLOAD
   STARSAV2
  STOVL 6D
   STARSAV1
  STOVL 12D
   PLANVEC
  STCALL STARAD +6
   R54  # STAR DATA TEST
  BOFF CALL
   FREEFLAG
   R51K
   AXISGEN
  CALL
   R55  # GYRO TORQUE
  CLEAR
   PFRATFLG
R51K  EXIT
  CAF OCT14
  TC BANKCALL
  CADR GOPERF1
  TC GOTOPOOH
  TC +2  # V33
  TC +3
  TC BANKCALL
  CADR P52C
# Page 758
  TC INTPRET
  GOTO
   ENDP50S
R51.4  TC INTPRET
  MXV UNIT
   REFSMMAT
  STOVL PLANVEC
   STARSAV2
  STORE STARSAV1
  SSP
   STARIND
   0
  GOTO
   R51.3
R51B  TC INTPRET
  CALL
   R56
  GOTO
   R51A
OCT66  OCT 00066
V01N70  VN 0170
1/6TH  DEC .1666667

# Page 759
# NAME: R55 GYRO TORQUE
# FUNCTION -- COMPUTE AND SEND GYRO PULSES
# CALLING SEQ -- CALL R55
# INPUT -- X,Y,ZDC -- REFSMMAT WRT PRESENT STABLE MEMBER
# OUTPUT -- GYRO PULSES
# SUBROUTINES -- CALCGTA, GOFLASH, GODSPR, IMUFINE, IMUPULSE, GOPERF1

  SETLOC P50S
  BANK
  COUNT* $$/R55
R55  STQ
   QMIN
  CALL
   CALCGTA
PULSEM  EXIT
R55.1  CAF V06N93
  TC BANKCALL
  CADR GOFLASH
  TC GOTOPOOH
  TC R55.2
  TC R55RET
R55.2  TC PHASCHNG
  OCT 00314
  CA R55CDR
  TC BANKCALL
  CADR IMUPULSE
  TC BANKCALL
  CADR IMUSTALL
  TC CURTAINS
  TC PHASCHNG
  OCT 05024
  OCT 13000
R55RET  TC INTPRET
  GOTO
   QMIN
V06N93  VN 0693
R55CDR  ECADR OGC
R54  = CHKSDATA

# ROUTINE NAME -- CHKSDATA DATE -- JAN 9, 1967
# MOD NO -- 0 LOG SECTION -- P51-P53
# MODIFICATION BY -- LONSKE ASSEMBLY --
#
# FUNCTIONAL DESCRIPTION -- CHECKS THE VALIDITY OF A PAIR OF STAR SIGHTINGS.  WHEN A PAIR OF STAR SIGHTINGS ARE MADE
# BY THE ASTRONAUT THIS ROUTINE OPERATES AND CHECKS THE OBSERVED SIGHTINGS AGAINST STORED STAR VECTORS IN THE
# COMPUTER TO INSURE A PROPER SIGHTING WAS MADE.  THE FOLLOWING COMPUTATIONS ARE PERFORMED --
# OS1 = OBSERVED STAR 1 VECTOR
# OS2 = OBSERVED STAR 2 VECTOR
# SS1 = STORED STAR 1 VECTOR
# SS2  = STORED STAR 2 VECTOR
#  A1 =  ARCCOS(OS1 - OS2)
# Page 760
#  A2 = ARCCOS(SS1 - SS2)
#   A  = ABS(2(A1 - A2))

# THE ANGULAR DIFFERENCE IS DISPLAYED FOR ASTRONAUT ACCEPTANCE.
#
# EXIT MODE -- 1. FREEFLAG SET IMPLIES ASTRONAUT WANTS TO PROCEED
# 2. FREEFLAG RESET IMPLIES ASTRONAUT WANTS TO RECYCLE
#
# OUTPUT -- 1. VERB 6,NOUN 3 -- DISPLAYS ANGULAR DIFFERENCE BETWEEN 2 SETS OF STARS.
# 2. STAR VECTORS FROM STAR CATALOG ARE LEFT IN 6D AND 12D.
#
# ERASABLE INITIALIZATION REQUIRED --
# 1. MARK VECTORS ARE STORED IN STARAD AND STARAD +6.
# 2. CATALOG VECTORS ARE STORED IN 6D AND 12D.
#
# DEBRIS --

  SETLOC P50S1
  BANK
  COUNT* $$/R50
CHKSDATA STQ SET
   QMIN
   FREEFLAG
CHKSAB  AXC,1   # SET X1 TO STORE EPHEMERIS DATA
   STARAD

CHKSB  VLOAD* DOT*  # CAL. ANGLE THETA
   0,1
   6,1
  SL1 ACOS
  STORE THETA
  BOFF INVERT  # BRANCH TO CHKSD IF THIS IS 2ND PASS
   FREEFLAG
   CHKSD
   FREEFLAG # CLEAR FREEFLAG
  AXC,1 DLOAD  # SET X1 TO MARK ANGLES
   6D
   THETA
  STORE 18D
  GOTO
   CHKSB  # RETURN TO CAL. 2ND ANGLE
CHKSD  DLOAD DSU
   THETA  # COMPUTE POS DIFF
   18D
  ABS RTB
   SGNAGREE
  STORE NORMTEM1
  SET EXIT
   FREEFLAG
  CAF ZERO
  TC BANKCALL
  CADR CLEANDSP

  CAF VB6N5
# Page 761
  TC BANKCALL
  CADR GOFLASH
  TCF GOTOPOOH
  TC CHKSDA  # PROCEED
  TC INTPRET
  CLEAR GOTO
   FREEFLAG
   QMIN
CHKSDA  TC INTPRET
  GOTO
   QMIN
VB6N5  VN 605

# NAME -- CAL53A
# FUNCTION -- COARSE ALIGN THE IMU, IF NECESSARY
# CALLING SEQUENCE -- CALL CAL53A
# INPUT -- PRESENT GIMBAL ANGLES -- CDUX, CDUY, CDUZ
#    DESIRED GIMBAL ANGLES -- THETAD,+1,+2
# OUTPUT -- THE IMU COORDINATES AT STORED IN REFSMMAT
# SUBROUTINES -- 1.IMUCOARS, 2.IMUSTALL, 3CURTAINS

  COUNT 14/R50

CAL53A  CALL
   S52.2  # MAKE FINAL COMP OF GIMBAL ANGLES
  RTB SSP
   RDCDUS  # READ CDUS
   S1
   1
  AXT,1 SETPD
   3
   4
CALOOP  DLOAD* SR1
   THETAD +3D,1
  PDDL* SR1
   4,1
  DSU ABS
  PUSH DSU
   DEGREE1
  BMN DLOAD
   CALOOP1
  DSU BPL
   DEG359
   CALOOP1
COARFINE EXIT
  TC PHASCHNG
  OCT 04024
  TC BANKCALL
  CADR IMUCOARS # PERFORM COARSE ALIGNMENT
  TC BANKCALL
  CADR IMUSTALL # REQUEST MODE SWITCH
# Page 762
  TC CURTAINS
  TC BANKCALL
  CADR IMUFIN20
  TC BANKCALL
  CADR IMUSTALL
  TC CURTAINS # TEST FOR MALFUNCTION
  TC INTPRET
  RTB VLOAD
   SET1/PDT
   ZEROVEC
  STORE GCOMP
  SET GOTO
   DRIFTFLG
   FINEONLY
CALOOP1  TIX,1
   CALOOP
FINEONLY AXC,1 AXC,2
   XSM
   REFSMMAT
  CALL
   MATMOVE
  GOTO
   CAL53RET
MATMOVE  VLOAD*   # TRANSFER MATRIX
   0,1
  STORE 0,2
  VLOAD*
   6D,1
  STORE 6D,2
  VLOAD*
   12D,1
  STORE 12D,2
  RVQ
DEGREE1  DEC 46
DEG359  DEC 16338
  SETLOC P50S
  BANK
RDCDUS  INHINT   # READ CDUS
  CA CDUX
  INDEX FIXLOC
  TS 1
  CA CDUY
  INDEX FIXLOC
  TS 2
  CA CDUZ
  INDEX FIXLOC
  TS 3
  RELINT
  TC DANZIG

# Page 763
# NAME: GIMB
#
# FUNCTION: DETERMINE AND COMPUTE THE DESIRED GIMBAL ANGLES TO BE USED FOR COARSE ALIGNMENT.
#
# CALLING SEQUENCE:  CALL GIMB
#
# INPUT: DESIRED IMU INERTIAL ORIENTATION VECTORS:  XSMD, YSMD, ZSMD
#
# OUTPUT: GIMBAL ANGLES LEFT IN THETAD, +1, +2
#
# SUBROUTINES USED:  1.CDUTRIG 2.CALCSMSC 3.CALCGA

  SETLOC P50S2
  BANK
  COUNT 14/INFLT

CALCSMSC DLOAD DMP
   SINCDUY
   COSCDUZ
  DCOMP
  PDDL SR1
   SINCDUZ
  PDDL DMP
   COSCDUY
   COSCDUZ
  VDEF VSL1
  STORE XNB
  DLOAD DMP
   SINCDUX
   SINCDUZ
  SL1
  STORE 26D
  DMP
   SINCDUY
  PDDL DMP
   COSCDUX
   COSCDUY
  DSU
  PDDL DMP
   SINCDUX
   COSCDUZ
  DCOMP
  PDDL DMP
   COSCDUX
   SINCDUY
  PDDL DMP
   COSCDUY
   26D
  DAD VDEF
  VSL1
  STORE ZNB
  VXV VSL1
   XNB
  STORE YNB
  RVQ

# NAME -- P51 -- IMU ORIENTATION DETERMINATION
# MOD. NO. 2 21 DEC 66 LOG SECTION -- P51-P53
# Page 764
# MOD BY STURLAUGSON ASSEMBLY SUNDISK REV15
#
# FUNCTIONAL DESCRIPTION
# DETERMINES THE INERTIAL ORIENTATION OF THE IMU.  THE PROGRAM IS SELECTED BY DSKY ENTRY.  THE SIGHTING
# ROUTINE IS CALLED TO COLLECT THE CDU COUNTERS AND SHAFT AND TRUNNION ANGLES FOR A SIGHTED STAR.  THE DATA IS
# THEN PROCESSED AS FOLLOWS.
#
# 1.  SEXTANT ANGLES ARE COMPUTED IN TERMS OF NAVIGATIONAL BASE COORDINATES.  LET SA AND TA BE THE SHAFT AND
# TRUNNION ANGLES, RESPECTIVELY.  THEN,
# _
# V  = (SIN(TA)*COS(SA), SIN(TA)*SIN(SA), COS(TA)) (A COLUMN VECTOR)
#        NB
# THE OUTPUT IS A HALF-UNIT VECTOR STORED IN STARM.
#
# 2.  THIS VECTOR IN NAV. BASE COORDS. IS THEN TRANSFORMED TO ONE IN STABLE MEMBER COORDINATES.
# _    T  T  T _
# V = Q *Q *Q *V  , WHERE
#      1  2  3  NB
#
#      ( COS(IG)  0    -SIN(IG) )
#      (        ) THE GIMBAL ANGLES ARE COMPUTED FROM
# Q  = (   0  1    0     ), IG= INNER GIMBAL ANGLE THE CDU COUNTERS AT NBSM (USING AXIS-
#  1   (        ) ROT AND CDULOGIC)
#      ( SIN(IG)  0     COS(IG) )
#
#      ( COS(MG) SIN(MG)   0     )
#      (        )
# Q  = (-SIN(MG) COS(MG)   0     ), MG= MIDDLE GIMBAL ANGLE
#  2   (                         )
#      (   0       0       1     )
#
#      (   1       0       0     )
#      (                         )
# Q  = (   0     COS(OG) SIN(OG) ), OG= OUTER GIMBAL ANGLE
#  3   (                         )
#      (   0    -SIN(OG) COS(OG) )
#
# 3.  THE STAR NUMBER IS SAVED AND THE SECOND STAR IS THEN SIMILARLY PROCESSED.
#
# 4.  THE ANGLE BETWEEN THE TWO STARS IS THEN CHECKED AT CKSDATA.
#
# 5.  REFSMMAT IS THEN COMPUTED AT AXISGEN AS FOLLOWS.
#     _      _
# LET S  AND S  BE TWO STAR VECTORS EXPRESSED IN TWO COORDINATE SYSTEMS, A AND B (BASIC AND STABLE MEMBER).
#      1      2
# Page 765
# DEFINE,
# _    _
# U  = S
#  A    A1
# _         _    _
# V  = UNIT(S  x S  )
#  A         A1   A2
# _    _   _
# W  = U x V
#  A    A   A
#
# AND,
# _    _
# U  = S
#  B    B1
# _         _    _
# V  = UNIT(S  x S  )
#  B         B1   B2
# _    _   _
# W  = U x V
#  B    B   B
#
# THEN
# _        _       _       _
# X  = U  *U + V  *V + W  *W
#       B1  A   B1  A   B1  A
# _        _       _       _
# Y  = U  *U + V  *V + W  *W (REFSMMAT)
#       B2  A   B2  A   B2  A
# _        _       _       _
# Z  = U  *U + V  *V + W  *W
#       B3  A   B3  A   B3  A
#
# THE INPUTS CONSIST OF THE FOUR HALF-UNIT VECTORS STORED AS FOLLOWS
# _
# S   IN 6-11 OF THE VAC AREA
#  A1
# _
# S   IN 12-17 OF THE VAC AREA
#  A2
# _
# S   IN STARAD
#  B1
# Page 766 _
# S   IN STARAD +6
#  B2
#
# CALLING SEQUENCE:
#
# THE PROGRAM IS CALLED BY THE ASTRONAUT BY DSKY ENTRY.
#
# SUBROUTINES CALLED:
#
# GOPERF3
# GOPERF1R
# GODSPR
# IMUCOARS
# IMUFIN20
# R53
# SXTNB
# NBSM
# MKRELEAS
# CHKSDATA
# MATMOVE
#
# ALARMS
#
# NONE
#
# ERASABLE INITIALIZATION:
#
# IMU ZERO FLAG SHOULD BE SET.
#
# OUTPUT
#
# REFSMMAT
# REFSMFLG
#
# DEBRIS
#
# WORK AREA
# STARAD
# STARIND
# BESTI
# BESTJ

  SETLOC P50S1
  BANK
  COUNT 14/P5153

P53  EQUALS P51
P51  CS IMODES30
  MASK BIT9
  CCS A
# Page 767
  TC P51A
  TC ALARM
  OCT 210
  TC GOTOPOOH
P51A  TC BANKCALL
  CADR R02ZERO

P51AA  CAF PRFMSTAQ
  TC BANKCALL
  CADR GOPERF1
  TC GOTOPOOH # TERM.
  TC P51B  # V33
  TC PHASCHNG
  OCT 05024
  OCT 13000
  CAF P51ZERO
  TS THETAD  # ZERO THE GIMBALS
  TS THETAD +1
  TS THETAD +2
  CAF V6N22
  TC BANKCALL
  CADR GODSPRET
  CAF V41K  # NOW DISPLAY COARSE ALIGN VERB 41
  TC BANKCALL
  CADR GODSPRET
  TC BANKCALL
  CADR IMUCOARS
  TC BANKCALL
  CADR IMUSTALL
  TC CURTAINS # CAGING OR BAD END
  TC BANKCALL # SCHEDULE IFAILOK AND IMUFINED TASKS, IN 5
  CADR IMUFIN20 # AND 20 SECS. DIRECT RETURN AND NO STALL,
  TC BANKCALL # IF CAGING, BUT T4 WILL ZERO C/A ENABLE.
  CADR IMUSTALL # IF PUT TO SLEEP, IMUFINED WILL WAKE US
  TC CURTAINS # UP.
  TC PHASCHNG
  OCT 05024
  OCT 13000
  TCF P51AA  # COARSE ALIGN DONE:  RECYCLE FOR FINE

# Page 768
# DO STAR SIGHTING AND COMPUTE NEW REFSMMAT
P51B  TC PHASCHNG
  OCT 00014
  TC INTPRET
  SSP SETPD
   STARIND  # INDEX -- STAR 1 OR 2
   0
   0
  RTB VLOAD
   SET1/PDT
   ZEROVEC
  STORE GCOMP
  SET CLEAR
   DRIFTFLG # ENABLE T4 COMPENSATION
   TARG2FLG # SHOW MARK IS STAR --- NOT LANDMARK
  EXIT
  CAF BIT1
  TS MARKINDX # INITIALIZE FOR ONE MARK

P51C  TC PHASCHNG
  OCT 05024
  OCT 13000
  TC CHECKMM
  MM 53  # BACKUP PROGRAM
  TCF P51C.1  # NOT P53
  TC INTPRET
  CALL
   R56
  GOTO
   P51C.2
P51C.1  TC INTPRET
  CALL
   R53  # SIGHTING ROUTINE
P51C.2  CALL   # COMPUTE LOS IN SM FROM MARK DATA
   SXTSM
  PUSH
  SLOAD BZE
   STARIND
   P51D
  VLOAD STADR
  STORE STARSAV2 # DOWNLINK
  GOTO
   P51E
P51D  VLOAD STADR
  STODL STARSAV1
   TSIGHT
  CALL
   PLANET
  STORE PLANVEC
# Page 769
P51E  EXIT
  TC PHASCHNG
  OCT 05024
  OCT 13000
  TC BANKCALL
  CADR MKRELEAS # ZERO MARKSTAT
  CCS STARIND
  TCF P51F  # STAR 2
  TC PHASCHNG
  OCT 05024
  OCT 13000
  CAF BIT1
  TS STARIND
  TCF P51C  # GO DO SECOND STAR
P51F  TC PHASCHNG
  OCT 05024
  OCT 13000
  TC INTPRET
  DLOAD CALL
   TSIGHT
   PLANET
  STOVL 12D
   PLANVEC
  STOVL 6D
   STARSAV1
  STOVL STARAD
   STARSAV2
  STCALL STARAD +6
   CHKSDATA # CHECK STAR ANGLES IN STARAD AND
  BON EXIT
   FREEFLAG
   P51G
  TC P51AA
P51G  CALL
   AXISGEN  # COME BACK WITH REFSMMAT IN XDC
  AXC,1 AXC,2
   XDC
   REFSMMAT
  CLEAR CALL
   REFSMFLG
   MATMOVE
  SET GOTO
   REFSMFLG
   ENDP50S
PRFMSTAQ = OCT15
P51ZERO  = ZERO
P51FIVE  = FIVE
V6N22  VN 0622
V41K  VN 4100
SET1/PDT CA TIME1
# Page 770
  TS 1/PIPADT
  TCF DANZIG

# Page 771
# SXTSM COMPUTES AN LOS VECTOR IN SM COORD FROM OCDU AND ICDU MARK DATA

  SETLOC P50S3
  BANK
SXTSM  STQ
   QMAJ
  LXC,1 DLOAD*
   MARKSTAT
   0D,1
  STORE TSIGHT
  LXC,2 SLOAD*
   STARIND
   MKDNCDR,2
  LXC,2 VLOAD*
   MPAC
   0,1
  STORE 0,2
  DLOAD*
   5,1
  STORE 5,2
  CALL
   SXTNB  # COMPUTE LOS VECTOR FROM OCDU IN MKVAC
  LXA,1 INCR,1
   MARKSTAT
   2  # INCREMENT TO BASE ADR OF ICDU
  SXA,1 CALL
   S1
   NBSM  # TRANSFORM LOS TO SM
  GOTO
   QMAJ
MKDNCDR  ECADR MARKDOWN
  ECADR MARK2DWN

# Page 772
# PROGRAM DESCRIPTION:  R53 -- SIGHTING MARK ROUTINE
# MOD. NO. 2 21 DEC 66
# MOD. BY STURLAUGSON
#
# FUNCTIONAL DESCRIPTION:
#
# TO PERFORM A SATISFACTORY NUMBER OF SIGHTING MARKS FOR THE REQUESTING PROGRAM (OR ROUTINE).  SIGHTINGS
#  CAN BE MADE ON A STAR OR LANDMARK.  WHEN THE CMC ACCEPTS A MARK IT RECORDS AND STORES 5 ANGLES (3 ICDUS AND 2
# OCDUS) AND THE TIME OF THE MARK.
#
# CALLING SEQUENCE:
#
# R53 IS CALLED AND RETURNS IN INTERPRETIVE CODE.  RETURN IS VIA QPRET.
# THERE IS NO ERROR EXIT IN THIS ROUTINE ITSELF.
#
# SUBROUTINES CALLED
#
# SXTMARK
# OPTSTALL
# GOFLASH
#
# ERASABLE INITIALIZATION:
#
# TARGET FLAG -- STAR OR LANDMARK
# MARKINDX -- NUMBER OF MARKS WANTED
# STARIND -- INDEX TO BESTI OR BESTJ (STAR NUMBER)
#
# OUTPUT
#
# MARKSTAT CONTAINS INDEX TO VACANT AREA WEHRE MARK DATA IS STORED
# BESTI (INDEXED BY STARIND) CONTAINS STAR NUMBER SIGHTED.
#
# DEBRIS
#
# MARKINDX CONTAINS NUMBER OF MARKS DESIRED

  SETLOC RT53
  BANK

  COUNT 14/R53

R53  STQ SET  # SET SIGHTING MARK FLAG
   R53EXIT
   R53FLAG
  EXIT
R53A  CA MARKINDX # NUMBER OF MARKS
  MASK LOW3
  TC BANKCALL
  CADR SXTMARK
  TC BANKCALL
  CADR OPTSTALL
  TC CURTAINS
  INDEX MARKSTAT
  CCS QPRET  # NUMBER OF MARKS ACTUALLY DONE
  TCF R53B
  TCF +2  # ZERO
  TCF +1  # CCS HOLE
  CAF ZERO  # HOUSEKEEP VAC AREA SAVE
  XCH MARKSTAT # AND MARKSTAT
# Page 773
  CCS A
  INDEX A
  TS 0
  TCF R53A
R53B  TC CHECKMM
  MM 22
  TCF +2
  TCF R53D
  TC CHECKMM
  MM 23
  TCF R53C1
  TCF R53D
R53C1  CAF ZERO
  TC BANKCALL
  CADR CLEANDSP
R53C  CAF V01N71
  TC BANKCALL
  CADR GOFLASH
  TC GOTOPOOH # TERM.
  TCF R53Z
  TC R53C  # RECYCLE
R53Z  TC CHKSCODE
  TC FALTON
  TC R53C
  CS HIGH9
  MASK STARCODE
  EXTEND
  MP SIGHTSIX
  XCH L
  INDEX STARIND
  TS BESTI
R53D  TC INTPRET
R53OUT  SETGO
   TERMIFLG # SET TERMINATE FOR R52
   R53EXIT
SIGHTSIX = SIX
V01N71  VN 0171

# ****** KEEP IN SAME BANK AS R51 AND R53 ********
CHKSCODE CCS STARCODE
  AD NEG47
  CCS A
  TC Q  # SC < 0 OR SC > 50
  TCF +2  # SC = + OR - 0
  TCF +1  # 0 <= SC< 50
  INDEX Q  # SC = 50
  TC 00002
NEG47  OCT 77730

# Page 774
# NAME -- S52.2
# FUNCTION -- COMPUTE GIMBAL ANGLES FOR DESIRED SM AND PRESENT VEHICLE
# CALL -- CALL S52.2
# INPUT -- X,Y,ZSMD
# OUTPUT -- OGC,IGC,MGC,THETAD,+1,+2
# SUBROUTINES -- CDUTRIG, CALCSMSC, MATMOVE, CALCGA

  SETLOC S52/2
  BANK

  COUNT 13/S52.2
S52.2  STQ
   QMAJ
  CALL
   CDUTRIG
  CALL
   CALCSMSC
  AXT,1 SSP
   18D
   S1
   6D
S52.2A  VLOAD* VXM
   XNB  +18D,1
   REFSMMAT
  UNIT
  STORE XNB  +18D,1
  TIX,1
   S52.2A
S52.2.1  AXC,1 AXC,2
   XSMD
   XSM
  CALL
   MATMOVE
  CALL
   CALCGA
  GOTO
   QMAJ

# Page 775
# PROGRAM NAME:  SR52.1 DATE:  DEC 20 1968
# MOD 1 LOG SEC:  P51-P53
# BY KEN VINCENT ASSEMBLY:  SUNDISK REV 40
#
# FUNCTION
#
# TARG1 AND TARG2 FLAGS ARE LOOKED AT TO DETERMINE IF THE TARGET IS THE
# LEM, STAR, OR LANDMARK.  IN CASE OF LEM OR LMK, THE PRESENT TIME PLUS
# 2 SECONDS IS SAVED IN AOPTIME (ALIAS STARAD, +1).  IF THE LEM IS
# THE TARGET THEN CONIC UPDATES OF THE CSM AND LEM ARE MADE TO
# THE TIME IN AOPTIME.  THE UNIT OF THE DIFFERENCE OF LEM AND CSM
# POSITION VECTORS BECOMES THE REFERENCE SIGHTING VECTOR USED IN THE
# COMMON PART OF THE THIS PROGRAM.
#
# IN THE CASE OF LANDMARK, THE CSM IS UPDATED CONICALLY.  THE RADIUS
# VECTOR FOR THE LANDMARK IS OBTAINED FROM LALOTORV.  BOTH OF THESE ARE
# FOUND FOR THE TIME IN AOPTIME.  THE UNIT OF THE DIFFERENCE BETWEEN
# THE LANDMARK AND CSM RADIUS VECTORS BECOMES THE REFERENCE SIGHTING
# VECTOR FOR THE COMMON PART OF THIS ROUTINE.
#
# IF A STAR IS THE TARGET, THE PROPER STAR IS OBTAINED FROM THE CATALOG
# AND THIS VECTOR BECOMES THE REFERENCE SIGHTING VECTOR.
#
# THE COMMON PART OF THIS PROGRAM TRANSFORMS THE REFERENCE SIGHTING
# VECTOR INTO STABLE MEMBER COORDINATES.  IT READS THE IMU-CDUS AND USES
# THIS DATA IN A CALL TO CALCSXA.  ON RETURN FROM CALCSXA A TEST IS
# MADE TO SEE IF THE TRUNNION ANGLE IS GREATER THAN  90DEG OR 38DEG.
# MADE TO SEE IF THE TRUNNION ANGLE IS GREATER THAN 90DEG. OR 50DEG.
#
# CALLING SEQUENCE
#
#  L+4 RETURN WHEN SHAFT OR TRUNION NOT WITHIN 5 DEG OF DESIRED
# L TC BANKCALL
# L+1 CADR SR52.1
# L+2 ERROR RETURN TRUNNION GREATER THAN 90 DEG.
# L+3 ERROR RETURN TRUNNION GREATER THAN 50 DEG
# L+4 NORMAL RETURN
#
# OUTPUT
#
# SAC: SINGLE PREC, 2'S COMP, SCALED AT HALF REVS -- SHAFT ANGLE DESIRED.
# PAC: SINGLE PREC, 2'S COMP, SCALED AT EIGHTH REVS -- TRUNNION ANGLE DESIRED.
#
# INITIALIZATION
#
# IF TARG1FLG =1 THEN TARGET IS LEM -- NO OTHER INPUT REQUIRED.
#
# IF TARG1FLG =0 AND TARG2FLG =0 THE TARGET IS STAR, STARIND SHOULD
# 0 OR 1 DENOTING BESTI OR BESTJ RESPECTIVELY AS STAR CODE.  STAR CODES
# ARE 6 TIMES STAR NUMBER.
#
# IF TARG1FLG =0 AND TARG2FLG =1 THEN TARGET IS LANDMARK.  SETT ROUTINE
# LALOTORV FOR INPUT REQUIREMENTS.  HERE FIXERAD=1 FOR CONSTANT EARTH
# RADIUS
#
# DEBRIS
#
# WORK AREA
# STARAD -- STAR+5 (STAR IS DESIRED LOS IN STABLE MEMBER COORDINATES)

  COUNT* $$/SR521
# Page 776
  SETLOC SR52/1
  BANK

SR52.1  TC MAKECADR
  TS QMIN
  TC INTPRET
  RTB DAD
   LOADTIME
   1.3SECDP
  STORE AOPTIME
  BON BON
   TARG1FLG
   LEM52
   TARG2FLG
   LMK52
  GOTO
   STAR52
LEM52  DLOAD
   AOPTIME
  STCALL TDEC1
   LEMCONIC
  VLOAD
   RATT
  GOTO
   LMKLMCOM
LMK52  BON DLOAD
   ADVTRK
   ADVTRACK
   AOPTIME
  CALL
   LALOTORV
  VLOAD
   ALPHAV
LMKLMCOM STODL STAR
   AOPTIME
  STCALL TDEC1
   CSMCONIC
  VLOAD VSU
   STAR
   RATT
  UNIT GOTO
   COM52
STAR52  SSP LXA,1
   S1
   0
   STARIND
  TIX,1
   ST52ST
  VLOAD GOTO
   STARSAV2
# Page 777
   COM52
ST52ST  VLOAD
   STARSAV1
COM52  MXV UNIT
   REFSMMAT
  STORE STAR
  SETPD CALL
   0
   CDUTRIG  # COMPUTES SINES AND COSINES FOR CALCSXA
  CALL   # NOW EXPECT TO SEE THE CDU ANGLES.
   CALCSXA
  BOFF EXIT
   CULTFLAG
   TRUN38
  TC SR52E1
TRUN38  DLOAD DSU
   PAC
   38TRDEG
  BPL DLOAD
   SR52E22
   PAC
  DSU BPL
   20DEGSMN
   SR52E3
SR52E22  EXIT
  TC SR52E2
SR52E3  EXIT
  INCR QMIN
SR52E2  INCR QMIN
SR52E1  CA QMIN
  TC SWCALL
38TRDEG  2DEC .66666667 # CORRESPONDS TO 50 DEGS IN TRUNION

1.3SECDP 2DEC 130

20DEGSMN DEC -07199
  DEC -0

# Page 778
# THE ADVTRACK ROUTINE IS USED TO COMPUTE AN OPTICS LOS VECTOR TO
# A POINT ON THE GROUND TRACK 60 DEGREES FORWARD OF THE LOCAL VERTICAL
# OF AN ADVANCED ORBIT A SPECIFIED NUMBER OF REVOLUTIONS FROM NOW.

  SETLOC 26P50S
  BANK
ADVTRACK SETPD
   0
  VLOAD PUSH  # INITIALIZE FOR RP-TO-R
   UNITZ  # UZ VEC IN PD 0-5
  RTB PUSH  # TIME IN PD 6-7
   LOADTIME
  STCALL AOPTIME  # TIME ALSO IN AOPTIME FOR CSMCONIC
   RP-TO-R  # GET MOON ROTATION VEC IN REF
  STODL STAR
   AOPTIME  # PICK UP TIME
  STCALL TDEC1  # UPDATE STATE TO TIME
   CSMCONIC
  VLOAD VXV
   VATT
   RATT
  UNIT
  STOVL 24D  # SAVE -UNIT(VxR) FOR 2ND ROTATION
   RATT
  UNIT VCOMP
  SETPD PUSH  # PUSH LOS=-UNIT(RVEC) PD 0-5
   0
  EXIT
  CA LANDMARK
  MASK SEVEN  # GET NUMBER OF ADVANCE PERIODS
  EXTEND
  MP BIT11  # GET N/16
  XCH L
  INDEX FIXLOC
  TS 30D  # TEMP STORE N/16
  TC INTPRET
  SLOAD DMP
   30D
   MPERIOD
  STCALL AOPTIME  # ROTATE ANG ABOUT UR
   ROTA
  VLOAD
   24D  # PICK UP 2ND ROTATION AXIS
  STODL STAR
   DP1/6
  DSU
   AOPTIME  # 2ND RAT ANGLE = 60 - A
  STCALL AOPTIME
   ROTA  # GO ROTATE 2ND TIME
  VLOAD
# Page 779
   0
  STCALL STAR  # STORE FINAL LOS IN STAR
   COM52  # RETURN TO SR52.1

ROTA  DLOAD SIN
   AOPTIME
  PDVL VXV  # PUSH 1/2SIN(A) PD 6-7
   STAR  # UR VEC
   0  # LOS
  VXSC VSL2  # 1/2SIN(A)(URXLOS) PD 6-11
  PDVL DOT
   STAR
   0
  VXSC VSL2
   STAR
  PDDL COS  # 1/2(UR . LOS)UR 12-17
   AOPTIME
  PDVL BVSU  # PUSH 1/2COS(A) 18-19
   12D
   0
  VXSC VSL1  # UP 18-19
  VAD VAD  # UP 12-17 UP 6011
  UNIT SETPD
   0
  PUSH RVQ

DP1/6  2DEC .16666666

MPERIOD  2DEC .047619  # APPROX LUNAR ROT ANG IN 2HRS x 16

# Page 780
# NAME -- S52.3
# FUNCTION -- XSMD= UNIT(YSMD x ZSMD)
# YSMD= UNIT(V X R)
# ZSMD= UNIT(-R)
# CALL -- DLOAD CALL
# TALIGN
# S52.3
# INPUT -- TIME OF ALIGNMENT IN MPAC
# OUTPUT -- X,Y,ZSMD
# SUBROUTINES -- CSMCONIC

  SETLOC P50S2
  BANK

  COUNT 15/S52.3
S52.3  STQ
   QMAJ
  STCALL TDEC1
   CSMPREC
  SETPD
   0
  VLOAD VCOMP
   RATT
  UNIT
  STOVL ZSMD
   VATT
  VXV UNIT
   RATT
  STORE YSMD
  VXV UNIT
   ZSMD
  STCALL XSMD
   QMAJ

# Page 781
# PROGRAM DESCRIPTION:  R56 -- ALTERNATE LOS SIGHTING MARK ROUTINE
#
# FUNCTIONAL DESCRIPTION
#
# TO PERFORM SIGHTING MARKS FOR THE BACK-UP ALIGNMENT PROGRAMS (P53,P54).  THE ASTRONAUT KNOWS THE
# COORDINATES (OPTICS) OF THE ALTERNATE LINE OF SIGHT HE MUST USE FOR THIS ROUTINE.  WHEN THE ASTRONAUT KEYS IN
# ENTER IN RESPONSE TO THE FLASHING V50 N25 R1-XXXXX THE CMC STORES THE THREE ICDU ANGLES AND TWO ANGLES DISPLAYED
# IN N92.
#
# CALLING SEQUENCE
#
# CALL
# R56
#
# SUBROUTINES CALLED
#
# A PORTION OF SXTMARK (VAC.AREA SEARCH)
# GOFLASH
# GOPERF1
#
# ERASABLE INITIALIZATION
#
# STARIND:  INDEX TO STAR NUMBER
#
# OUTPUT
#
# MARKSTAT:  INDEX TO VAC.AREA WHERE OUTPUT IS STORED.
# BESTI (INDEXED BY STARIND) CONTAINS STAR NUMBER.
# ICDU AND OCDU ANGLES IN VAC. AREA AS FOLLOWS:
# VAC +2 CDUY
# VAC +3 CDUS
# VAC +4 CDUZ
# VAC +5 CDUT
# VAC +6 CDUX

  COUNT* $$/R56
  SETLOC P50S3
  BANK
R56  STQ EXIT
   R53EXIT
  CAF V06N94B
  TC BANKCALL
  CADR GOFLASH
  TC GOTOPOOH # TERM.
  TC R56A  # PROCEED:  ANGLES OK
  TC -5  # ENTER:  NEW ANGLES
R56A  TC BANKCALL
  CADR SXTMARK +2 # INHIBIR EXT VB ACT AND FIND VAC AREA

  CAF ZERO
  TC BANKCALL
  CADR CLEANDSP

R56A1  CAF VB53  # DISPLAY V53 REQUESTING ALTERNATE MARK
  TC BANKCALL
# Page 782
  CADR GOMARK2
  TCF GOTOPOOH # V34:  TERMINATE
  TCF R56A1  # V33:  DON'T PROCEED -- JUST ENTER TO MARK
  TC INTPRET
  DLOAD
   MRKBUF1 +3
  STODL SAC
   MRKBUF1 +5
  STORE PAC
  EXIT
  INHINT
  EXTEND
  DCA TIME2
  INDEX MARKSTAT
  DXCH 0
  CA CDUY  # ENTER:  THIS IS A BACKUP SYSTEM MARK
  INDEX MARKSTAT
  TS 2
  CA SAC
  INDEX MARKSTAT
  TS 3
  CA CDUZ
  INDEX MARKSTAT
  TS 4
  CA PAC
  INDEX MARKSTAT
  TS 5
  CA CDUX
  INDEX MARKSTAT
  TS 6
  RELINT
  TC CLEARMRK # ENABLE EXTENDED VERBS
  CAF OCT16
  TC BANKCALL
  CADR GOPERF1
  TC GOTOPOOH # TERM.
  TCF R56B  # PROCEED:  MARK COMPLETED
  TCF R56A  +2 # RECYCLE:  DO ANOTHER MARK -- LIKE REJECT.
R56B  TC BANKCALL
  CADR R53C1
VB53  VN 05300  # ALTERNATE MARK VERB
V06N94B  VN 00694
  SETLOC P50S
  BANK

PLANET  STORE TSIGHT
  STQ CALL
   QMIN
   LOCSAM
  VLOAD
# Page 783
   VEARTH
  STOVL 0D
   VSUN
  STOVL VEARTH
   0D
  STORE  VSUN
NOSAM  EXIT
  CS HIGH9
  MASK STARCODE
  EXTEND
  MP SIGHTSIX
  XCH L
  INDEX STARIND
  TS BESTI
  CCS A
  TCF NOTPLAN
  CAF VNPLANV
  TC BANKCALL
  CADR GOFLASH
  TC GOTOPOOH
  TC +2
  TC -5
  TC INTPRET
  VLOAD VXSC
   STARSAV3
   1/SQR3
  UNIT GOTO
   CORPLAN
NOTPLAN  CS A
  AD DEC227
  EXTEND
  BZMF CALSAM1
  INDEX STARIND
  CA BESTI
  INDEX FIXLOC
  TS X1
  TC INTPRET
  VLOAD* GOTO
   CATLOG,1
   CORPLAN
CALSAM1  TC INTPRET
  LXC,1 DLOAD*
   STARIND
   BESTI,1
  LXC,1 VLOAD*
   MPAC
   STARAD  -228D,1
CORPLAN  VAD UNIT
   VEL/C
  GOTO
# Page 784
   QMIN
DEC227  DEC 227
VNPLANV  VN 0688
1/SQR3  2DEC .57735021



Messung V0.5 in Prozent
C=62 H=100 G=83

¤ 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.0.26Bemerkung:  (vorverarbeitet am  2026-10-12) ¤

*Bot Zugriff






Normalansicht

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.