# Copyright: Public domain. # Filename: P20-P25.agc # Purpose: Part of the source code for Luminary 1A build 099. # It is part of the source code for the Lunar Module's (LM) # Apollo Guidance Computer (AGC), for Apollo 11. # Assembler: yaYUL # Contact: Onno Hommes . # Website: www.ibiblio.org/apollo. # Pages: 0492-0613 # Mod history: 2009-05-26 OH Transcribed from page images. # 2009-06-05 RSB Corrected a typos. # 2009-06-06 RSB Added a missing instruction, and a block # of 3 missing instructions. # 2009-06-07 RSB Fixed a misprint. # 2009-06-07 RSB Changed the construct "2DEC E-6 B12" # (which isn't legal in yaYUL) to # "2DEC 1.0 E-6 B12". # 2011-05-07 JL Removed workarounds. # This source code has been transcribed or otherwise adapted from # digitized images of a hardcopy from the MIT Museum. The digitization # was performed by Paul Fjeld, and arranged for by Deborah Douglas of # the Museum. Many thanks to both. The images (with suitable reduction # in storage size and consequent reduction in image quality as well) are # available online at www.ibiblio.org/apollo. If for some reason you # find that the images are illegible, contact me at info@sandroid.org # about getting access to the (much) higher-quality images which Paul # actually created. # # Notations on the hardcopy document read, in part: # # Assemble revision 001 of AGC program LMY99 by NASA 2021112-061 # 16:27 JULY 14, 1969 # Page 492 # RENDEZVOUS NAVIGATION PROGRAM 20 # # PROGRAM DESCRIPTION # # MOD NO -- 2 # BY P. VOLANTE # # FUNCTIONAL DESCRIPTION # # THE PURPOSE OF THIS PROGRAM IS TO CONTROL THE RENDEZVOUS RADAR FROM # STARTUP THROUGH ACQUISITION AND LOCKON TO THE CSM AND TO UPDATE EITHER # THE LM OR CSM STATE VECTOR (AS SPECIFIED BY THE ASTRONAUT BY DSKY ENTRY) # ON THE BASIS OF THE RR TRACKING DATA. # # CALLING SEQUENCE -- # # ASTRONAUT REQUEST THROUGH DSKY V37E20E # # SUBROUTINES CALLED # # R02BOTH (IMU STATUS CHECK) FLAGUP # GOFLASH (PINBALL-DISPLAY) FLAGDOWN # R23LEM (MANUAL ACQUISITION) BANKCALL # LS201 (LOS DETERMINATION) TASKOVER # LS202 (RANGE LIMIT TEST) # R61LEM (PREFERRED TRACKING ATTITUDE) # R21LEM (RR DESIGNATE) ENDOFJOB # R22LEM (DATA READ) GOPERF1 # R31LEM (RENDEZVOUS PARAMETER DISPLAY) # PRIOLARM (PRIORITY DISPLAY) # # NORMAL EXIT MODES -- # # P20 MAY BE TERMINATED IN TWO WAYS -- ASTRONAUT SELECTION OF IDLING # PROGRAM (P00) BY KEYING V37E00E OR BY KEYING IN V56E # # ALARM OR ABORT EXIT MODES -- # # RANGE GREATER THAN 400 NM DISPLAY # # OUTPUT # # TRKMKCNT = NO OF RENDEZVOUS TRACKING MARKS TAKEN (COUNTER) # # ERASABLE INITIALIZATION REQUIRED # # FLAGS SET + RESET # # SRCHOPT, RNDVZFLG, ACMODFLG, VEHUPFLG, UPDATFLG, TRACKFLG # # DEBRIS # # CENTRALS -- A,Q,L SBANK= LOWSUPER # FOR LOW 2CADR'S. BANK 33 SETLOC P20S BANK EBANK= LOSCOUNT COUNT* $$/P20 PROG22 = PROG20 PROG20 TC 2PHSCHNG OCT 4 OCT 05022 OCT 26000 # PRIORITY 26 TC LUNSFCHK # CHECK IF ON LUNAR SURFACE # Page 493 TC ORBCHGO # YES TC PROG20A -2 # NO -- CONTINUE WITH P20 ORBCHGO TC UPFLAG # SET VEHUPFLG -- CSM STATE ADRES VEHUPFLG # VECTOR TO BE UPDATED CAF ONE # SET R2 FOR OPTION CSM WILL NOT TS OPTION2 # CHANGE PRESENT ORBIT CAF OCT00012 TC BANKCALL # DISPLAY ASSUMED CSM ORBIT OPTION CADR GOPERF4 TC GOTOPOOH # TERMINATE TC ORBCHG1 # PROCEED VALUE OF ASSUMED OPTION OK TC -5 # R2 LOADED THRU DSKY ORBCHG1 CS P22ONE AD OPTION2 EXTEND BZF PROG20A CAF V06N33* TC BANKCALL # FLASH VERB-NOUN TO REQUEST ESTIMATED CADR GOFLASH # TIME OF LAUNCH TC GOTOPOOH # TERMINATE TC ORBCHG2 # PROCEED VALUES OK TC -5 # TIME LOADED THRU DSKY ORBCHG2 TC INTPRET GOTO ORBCHG3 BANK 32 SETLOC P20S4 BANK COUNT* $$/P20 ORBCHG3 CALL INTSTALL DLOAD TIG STORE LNCHTM STORE TDEC1 # ESTIMATED LAUNCH TIME CLEAR CLEAR VINTFLAG # LM INTEGRATION INTYPFLG # PRECISION -- ENCKE CLEAR CLEAR DIM0FLAG # NO W-MATRIX D6OR9FLG CALL INTEGRV # PLANETARY INERTIAL ORIENTATION CALL GRP2PC VLOAD RATT1 STODL RSUBL # SAVE LM POSITION TAT # Page 494 STCALL TDEC1 INTSTALL SET CLEAR VINTFLAG # CSM INTEGRATION INTYPFLG CLEAR BOFF DIM0FLAG RENDWFLG # W MATRIX VALID NOWMATX # NO SET SET # YES -- SET FOR W MATRIX DIM0FLAG D6OR9FLG NOWMATX CALL INTEGRV # CSM INTEGRATION CALL GRP2PC VLOAD VATT1 STOVL VSUBC # SAVE CSM POSITION RATT1 STORE RSUBC # SAVE CSM POSITION VXV UNIT # COMPUTE NORMAL TO CSM ORBITAL PLANE VSUBC # NSUB1=UNIT(R(CM) CROSS V(CM)) STOVL 20D # SAVE NSUB1 RSUBL # COMPUTE ESTIMATED ORBITAL VXV UNIT # PLANE CHANGE 20D # UCSM = UNIT(R(LM) CROSS NSUB1) STOVL UCSM RSUBC # COMPUTE ANGLE BETWEEN UCSM UNIT DOT # AND RSUBC UCSM # COS A = UCSM DOT UNIT (R(CM)) SL1 STORE CSTH # SAVE DOE TIME-THETA SUBROUTINE DSQ BDSU # COMPUTE SINE A ONEB-2 SQRT STOVL SNTH # SAVE FOR TIME-THETA SUBROUTINE RSUBC # POSITION OF CSM AT EST. LAUNCH STOVL RVEC # TIME FOR TIME-THETHA B-27 VSUBC # VELOCITY OF CSM AT EST. LAUNCH. VCOMP STORE VVEC # TIME FOR TIME THETA B-5 CLEAR CALL RVSW TIMETHET VCOMP STORE NEWVEL # TERMINAL VELOCITY OF CSM DLOAD T STOVL TRANSTM # TRANSFER TIME # Page 495 NEWVEL ABVAL STOVL 20D 0D STORE NEWPOS # TERMINAL POSITION OF CSM VXV UNIT # COMPUTE NORMAL TO SCM ORBITAL PLANE RSUBL # NSUB2 = UNIT(NEWPOS CROSS R(LM)) VXV UNIT # ROTATE TERMINAL VEL INTO DESIRED NEWPOS # ORBITAL PLANE VXSC VSL1 # VSUBC = ABVAL(NEWVEL) $ UNIT (NSUB2 20D STCALL NCSMVEL # NEW CSM VELOCITY GRP2PC CALL INTSTALL DLOAD BDSU TRANSTM # LAUNCH TIME -- TRANSFER TIME LNCHTM STOVL TET NEWPOS STORE RCV STOVL RRECT NCSMVEL STCALL VRECT MINIRECT AXT,2 CALL 2 ATOPCSM CALL INTWAKE0 EXIT TC BANKCALL CADR PROG20A BANK 24 SETLOC P20S BANK COUNT* $$/P20 TC DOWNFLAG # RESET VEHUPFLG -- LM STATE VECTOR ADRES VEHUPFLG # TO BE UPDATED PROG20A TC BANKCALL CADR R02BOTH TC UPFLAG ADRES UPDATFLG # SET UPDATE FLAG TC UPFLAG ADRES TRACKFLG # SET TRACK FLAG TC UPFLAG ADRES RNDVZFLG # SET RENDEZVOUS FLAG TC DOWNFLAG ADRES SRCHOPTN # INSURE SEARCH OPTION OFF # Page 496 TC DOWNFLAG # ALSO MANUAL ACQUISITION FLAG RESET ADRES ACMODFLG TC DOWNFLAG # TURN OFF R04FLAG TO ENSURE GETTING ADRES R04FLAG # ALARM 521 IF CAN'T READ RADAR TC DOWNFLAG # ENSURE R25 GIMBAL MONITOR IS ENABLED ADRES NORRMON # (RESET NORRMON FLAG) TC DOWNFLAG # RESET LOS BEING COMPUTED FLAG ADRES LOSCMFLG TC CLRADMOD P20LEM1 TC PHASCHNG OCT 04022 CAF ZERO # ZERO MARK COUNTER TS MARKCTR TC INTPRET # LOS DETERMINATION ROUTINE RTB LOADTIME STCALL TDEC1 LPS20.1 CALL LPS20.2 # TEST RANGE R/UTINE EXIT INDEX MPAC TC +1 TC P20LEMA # NORMAL RETURN WITHIN 400 N M 526ALARM CAF ALRM526 # ERROR EXIT -- RANGE > 400 N. MI. TC BANKCALL CADR PRIOLARM TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING TC -4 # PROC (ILLEGAL) TC P20LEM1 # ENTER RECYCLE TC ENDOFJOB P20LEMA TC PHASCHNG OCT 04022 TC LUNSFCHK # CHECK LUNAR SURFACE FLAG (P22 FLAG) TC P20LEMB TC BANKCALL CADR R61LEM # PREFERRED TRACKING ATTITUDE ROUTINE P20LEMB TC PHASCHNG OCT 05022 # RESTART AT PRIORITY 10 TO ALLOW V37 OCT 10000 # REQUESTED PROGRAM TO RUN FIRST CAF PRIO26 # RESTORE PRIORITY 26 TC PRIOCHNG CA FLAGWRD1 # IS THE TRACK FLAG SET MASK TRACKBIT EXTEND BZF P20LEMWT # BRANCH -- NO -- WAIT FOR IT TO BE SET P20LEMB7 CAF BIT2 # IS RR AUTO MODE DISCRETE PRESENT EXTEND # Page 497 RAND CHAN33 EXTEND BZF P20LEMB3 # YES -- DO AUTOMATIC ACQUISITION (R21) P20LEMB5 CS OCT24 # RADAR NOT IN AUTO CHECK IF AD MODREG # MAJOR MODE IS 20 EXTEND BZF P20LEMB6 # BRANCH -- YES -- OKAY TO DO PLEASE PERFORM AD NEG2 # ALSO CHECK FOR P22 EXTEND BZF P20LEMB6 # BRANCH -- YES OK TO DO PLEASE PERFORM CAF ALRM514 # TRACK FLAG SET -- FLASH PRIORITY ALARM 514 -- TC BANKCALL # RADAR GOES OUT OF AUTO MODE WHILE IN USE CADR PRIOLARM TC GOTOV56 # TERMINATE EXITS VIA V56 TC P20LEMB # PROCEED AND ENTER BOTH GO BACK TC P20LEMB # TO CHECK AUTO MODE AGAIN TC ENDOFJOB P20LEMB6 CAF OCT201 # REQUEST RR AUTO MODE SELECTION TC BANKCALL CADR GOPERF1 TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING TC P20LEMB # PROCEED CHECKS AUTO MODE DISCRETE AGAIN TC LUNSFCHK # ENTER INDICATES MANUAL ACQUISITION (R23) TC P20LEMB2 # YES -- R23 NOT ALLOWED -- TURN ON OPR ERROR TC R23LEM # NO -- DO MANUAL ACQUISITION P20LEMB1 TC UPFLAG # RETURN FROM R23 -- LOCKON ACHIEVED ADRES ACMODFLG # SET MANUAL FLAG AND GO BACK TO CHECK TC P20LEMB # RR AUTO MODE P20LEMB2 TC FALTON # TURNS ON OPERATOR ERROR LIGHT ON DSKY TC P20LEMB # AND GOES BACK TO CHECK AUTO MODE P20LEMB3 CS RADMODES # ARE RR CDUS BEING ZEROED MASK RCDU0BIT EXTEND BZF P20LEMB4 # BRANCH -- YES -- WAIT CAF BIT13-14 # IS SEARCH OR MANUAL ACQUISITION FLAG SET MASK FLAGWRD2 EXTEND BZF P20LEMC3 # ZERO MEANS AUTOMATIC RR ACQUISITION TC DOWNFLAG # RESET TO AUTO MODE ADRES SRCHOPTN # Page 498 TC DOWNFLAG ADRES ACMODFLG TC P20LEMWT # WAIT 2.5 SECONDS THEN GO TO RR DATA READ P20LEMB4 CAF 250DEC TC BANKCALL # WAIT 2.5 SECONDS WHILE RR CDUS ARE BEING CADR DELAYJOB # ZEROED -- THEN GO BACK AND CHECK AGAIN TC P20LEMB3 P20LEMC3 TC INTPRET RTB LOADTIME STCALL TDEC1 UPPSV P20LEMC4 EXIT P20LEMC TC PHASCHNG OCT 04022 CAE FLAGWRD0 # IS THE RENDEZVOUS FLAG SET MASK RNDVZBIT EXTEND BZF ENDOFJOB # NO -- EXIT P20 CAE FLAGWRD1 # IS TRACK FLAG SET (BIT 5 FLAGWORD 1) MASK TRACKBIT EXTEND BZF P20LEMD # BRANCH -- TRACK FLAG NOT ON -- WAIT 15 SECONDS P20LEMF TC R21LEM P20LEMWT CAF 250DEC TC TWIDDLE # USE INSTEAD OF WAITLIST SINCE SAME BANK ADRES P20LEMC1 # WAIT 2.5 SECONDS CAE FLAGWRD1 # IS TRACK FLAG SET MASK TRACKBIT EXTEND BZF ENDOFJOB # NO -- EXIT WITHOUT DOING 2.7 PHASE CHANGE P20LMWT1 TC PHASCHNG OCT 40072 TC ENDOFJOB P20LEMC1 CAE FLAGWRD0 # IS RENDEZVOUS FLAG SET MASK RNDVZBIT EXTEND BZF TASKOVER # NO -- EXIT P20/R22 CAE FLAGWRD1 # IS TRACK FLAG SET MASK TRACKBIT EXTEND BZF P20LEMC2 # NO -- DON'T SCHEDULE R22 JOB # Page 499 CAF PRIO26 # YES -- SCHEDULE R22 JOB (RR DATA READ) TC FINDVAC EBANK= LOSCOUNT 2CADR R22LEM42 TC TASKOVER P20LEMC2 TC FIXDELAY # TRACK FLAG NOT SET, WAIT 15 SECONDS DEC 1500 # AND CHECK AGAIN TC P20LEMC1 P20LEMD CAF 1500DEC TC TWIDDLE # WAITLIST FOR 15 SECONDS ADRES P20LEMD1 TC ENDOFJOB P20LEMD1 CAE FLAGWRD1 # IS TRACK FLAG SET MASK TRACKBIT CCS A TCF P20LEMD2 # YES -- SCHEDULE DESIGNATE JOB TC FIXDELAY # NO -- WAIT 15 SECONDS DEC 1500 TC P20LEMD1 P20LEMD2 CAF PRIO26 # SCHEDULE JOB TO DO R21 TC FINDVAC EBANK= LOSCOUNT 2CADR P20LEMC3 # START AT PERM. MEMORY INTEGRATION TC TASKOVER 250DEC DEC 250 ALRM526 OCT 00526 OCT201 OCT 00201 ALRM514 OCT 514 MAXTRIES DEC 60 OCT00012 OCT 00012 P22ONE OCT 00001 ONEB-2 2DEC 1.0 B-2 V06N33* VN 0633 UPPSV STQ CALL # UPDATES PERMANENT STATE VECTORS LS21X # TO PRESENT TIME INTSTALL CALL # Page 500 SETIFLGS BOF SET # IF W-MATRIX INVALID, DON'T INTEGRATE IT RENDWFLG UPPSV1 DIM0FLAG # SET DIM0FLAG TO INTEGRATE W-MATRIX BON SET SURFFLAG # IF ON LUNAR SURFACE W IS 6X6 UPPSV5 D6OR9FLG # OTHERWISE 9X9 UPPSV5 BOF VEHUPFLG UPPSV3 UPPSV1 SET VINTFLAG CALL INTEGRV CALL # GROUP 2 PHASE CHANGE GRP2PC # TO PROTECT INTEGRATION CALL INTSTALL DLOAD CLEAR # GET TETCSM TO STORE IN TDEC FOR LM INT. TETCSM VINTFLAG UPPSV4 CALL # INTEGRATE OTHER VEHICLE SETIFLGS # WITHOUT W-MATRIX STCALL TDEC1 INTEGRV BOFF VLOAD SURFFLAG P20LEMC4 RCVLEM VSR2 STOVL LMPOS VCVLEM VSR2 STORE LMVEL GOTO LS21X UPPSV3 CLEAR CALL VINTFLAG INTEGRV CALL GRP2PC CALL INTSTALL SET DLOAD VINTFLAG TETLEM # GET TETLEM TO STORE IN TDEC FOR CSM INT. # Page 501 GOTO UPPSV4 EBANK= LOSCOUNT COUNT* $$/P22 # Page 502 # PROGRAM DESCRIPTION # # PREFERRED TRACKING ATTITUDE PROGRAM P25 # MOD NO -- 3 # BY P. VOLANTE # # FUNCTIONAL DESCRIPTION # # THE PURPOSE OF THIS PROGRAM IS TO COMPUTE THE PREFERRED TRACKING # ATTITUDE OF THE LM TO CONTINUOUSLY POINT THE LM TRTACKING BEACON AT THE # CSM AND TO PERFORM THE MANEUVER TO THE PREFERRED TRACKING ATTITUDE AND # CONTINUOUSLY MAINTAIN THIS ATTITUDE WITHIN PRESCRIBED LIMITS. # # CALLING SEQUENCE -- # # ASTRONAUT REQUEST THROUGH DSKY V37E25E # # SUBROUTINES CALLED -- # # BANKCALL FLAGUP # R02BOTH (IMU STATUS CHECK) ENDOFJOB # R61LEM (PREF TRK ATT ROUT) WAITLIST # TASKOVER FINDVAC # # NORMAL EXIT MODES -- # # P25 MAY BE TERMINATED IN TWO WAYS -- ASTRONAUT SELECTION OF IDLING # PROGRAM (P00) BY KEYING V37E00E OR BY KEYING IN V56E # # ALARM OR ABORT EXIT MODES -- # # NONE # # OUTPUT # # ERASABLE INITIALIZATION REQUIRED # # FLAGS SET + RESET # # TRACKFLG, P25FLAG # # DEBRIS # # NONE EBANK= LOSCOUNT COUNT* $$/P25 PROG25 TC 2PHSCHNG OCT 4 # MAKE GROUP 4 INACTIVE (VERB 37) OCT 05022 OCT 26000 # PRIORITY 26 TC BANKCALL CADR R02BOTH # IMU STATUS CHECK TC UPFLAG ADRES TRACKFLG # SET TRACK FLAG TC UPFLAG ADRES P25FLAG # SET P25FLAG P25LEM1 TC PHASCHNG OCT 04022 CAF P25FLBIT MASK STATE # IS P25FLAG SET EXTEND BZF ENDOFJOB CAF TRACKBIT # IS TRACKFLAG SET? MASK STATE +1 EXTEND # Page 503 BZF P25LMWT1 # NO -- SKIP PHASE CHANGE AND WAIT 1 MINUTE CAF SEVEN # CALL R65 -- FINE PREFERRED TS R65CNTR TC BANKCALL # TRACKING ATTITUDE ROUTINE CADR R65LEM TC P25LEM1 # THEN GO CHECK FLAGS P25LEMWT TC PHASCHNG OCT 00112 P25LMWT1 CAF 60SCNDS TC TWIDDLE # WAIT ONE MINUTE THEN CHECK AGAIN ADRES P25LEM2 TC ENDOFJOB P25LEM2 CAF PRIO14 TC FINDVAC EBANK= LOSCOUNT 2CADR P25LEM1 TC TASKOVER 60SCNDS DEC 6000 # Page 504 # DATA READ ROUTINE 22 (LEM) # PROGRAM DESCRIPTION # # MOD NO -- 2 # BY P. VOLANTE # # FUNCTIONAL DESCRIPTION # # TO PROCESS AUTOMATIC RR MARK DATA TO UPDATE THE STATE VECTOR OF EITHER # LM OR CSM AS DEFINED IN THE RENDEZVOUS NAVIGATION PROGRAM (P20) # # CALLING SEQUENCE -- # # TC BANKCALL # CADR R22LEM # # SUBROUTINES CALLED -- # # LSR22.1 GOFLASH WAITLIST # LSR22.2 PRIOLARM BANKCALL # LSR22.3 R61LEM # # NORMAL EXIT MODES -- # # R22 WILL CONTINUE TO RECYCLE, UPDATING STATE VECTORS WITH RADAR DATA # UNTIL P20 CEASES TO OPERATE (RENDEZVOUS FLAG SET TO ZERO) AT WHICH TIME # R22 WILL TERMINATE SELF. # # ALARM OR ABORT EXIT MODES -- # # PRIORITY ALARM # PRIORITY ALARM 525 LOS NOT WITHIN 3 DEGREE LIMIT # # OUTPUT # # SEE OUTPUT FROM LSR22.3 # # ERASABLE INITIALIZATION REQUIRED # # SEE LSR22.1, LSR22.2, LSR22.3 # # FLAGS SET + RESET # # NOANGFLG # # DEBRIS # # SEE LSR22.1, LSR22.2, LSR22.3 EBANK= LRS22.1X COUNT* $$/R22 R22LEM TC PHASCHNG OCT 04022 CAF RNDVZBIT # IS RENDEZVOUS FLAG SET? MASK STATE EXTEND BZF ENDOFJOB # NO -- EXIT R22 AND P20 CAF TRACKBIT # IS TRACKFLAG SET? MASK STATE +1 EXTEND BZF R22WAIT # NO WAIT R22LEM12 CAF BIT14 # IS RR AUTO TRACK ENABLE DISCRETE STILL EXTEND # ON (A MONITOR REPOSITION BY R25 CLEARS IT) RAND CHAN12 EXTEND BZF P20LEMA # NO -- RETURN TO P20 CAF BIT2 # YES EXTEND # IS RR AUTO MODE DISCRETE PRESENT RAND CHAN33 # Page 505 EXTEND BZF +2 # YES CONTINUE TC P20LEMB5 # NO -- SET IT CS RADMODES # ARE RR CDUS BEING ZEROED MASK RCDU0BIT EXTEND BZF R22LEM42 # CDUS BEING ZEROED TC PHASCHNG # IF A RESTART OCCURS, AND EXTRA RADAR OCT 00152 # READING IS TAKEN, SO BAD DATA ISN'T USED TC BANKCALL # YES READ DATA + CALCULATE LOS CADR LRS22.1 # DATA READ SUBROUTINE INDEX MPAC TC +1 TC R22LEM2 # NORMAL RETURN (GOOD DATA) TC P20LEMC # COULD NOT READ RADAR -- TRY TO REDESIGNATE CAF ALRM525 # RR LOS NOT WITHIN 3 DEGREES (ALARM) TC BANKCALL CADR PRIOLARM TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING TC R22LEM1 # PROC (DISPLAY DELTA THETA) TC -5 # ENTER (ILLEGAL OPTION) TC ENDOFJOB R22LEM1 TC PHASCHNG OCT 04022 CAF V06N05 # DISPLAY DELTA THETA TC BANKCALL CADR PRIODSP TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING TC R22LEM2 # PROC (OK CONTINUE) TC P20LEMC # ENTER (RECYCLE) R22LEM2 TC PHASCHNG OCT 04022 TC LUNSFCHK # CHECK IF ON LUNAR SURFACE (P22FLAG SET) TC R22LEM3 # YES -- BYPASS FLAG CHECKS AND LRS22.2 CA FLAGWRD1 # IS TRACK FLAG SET MASK TRACKBIT EXTEND BZF R22WAIT # NO -- WAIT TC BANKCALL # YES CADR LRS22.2 # CHECKS RR BORESIGHT WITHIN 30 DEG OF +Z INDEX MPAC TC +1 TC R22LEM3 # NORMAL RETURN (LOS WITHIN 30 OF Z-AXIS) TC BANKCALL CADR R61LEM TC R22WAIT # NOT WITHIN 30 DEG OF Z-AXIS R22LEM3 CS FLAGWRD1 # SHOULD WE BYPASS STATE VECTOR UPDATE MASK NOUPFBIT # (IS NO UPDATE FLAG SET?) # Page 506 EXTEND BZF R22LEM42 # BRANCH -- YES CA FLAGWRD1 # IS UPDATE FLAG SET MASK UPDATBIT EXTEND BZF R22LEM42 # UPDATE FLAG NOT SET CAF PRIO26 # INSURE HIGH PRIO IN RESTART TS PHSPRDT2 TC INTPRET GOTO LSR22.3 R22LEM93 EXIT # NORMAL EXIT FROM LSR22.3 TC PHASCHNG # PHASE CHANGE TO PROTECT AGAINST OCT 04022 # CONFLICT WITH GRP2PC ERASEABLE TCF R22LEM44 R22LEM96 EXIT CAF ZERO # SET N49FLAG = ZERO TO INDICATE TS N49FLAG # V06 N49 DISPLAY HASN'T BEEN ANSWERED TC PHASCHNG OCT 04022 # TO PROTECT DISPLAY CAF PRIO27 # PROTECT DISPLAY TC NOVAC EBANK= N49FLAG 2CADR N49DSP TC INTPRET SLOAD N49FLAG BZE BMN # LOOP TO CHECK IF FLAG -3 # SETTING CHANGED -- BRANCH -- NO R22LEM7 # PROCEED EXIT # DISPLAY ANSERED BY RECYCLE TC LUNSFCHK # ARE WE ON LUNAR SURFACE TC R22WAIT # YES -- 15 SECOND DELAY CA ZERO # NO -- SET R65COUNTER = 0, DO FINE TC R22LEM45 # TRACKING TAKE ANOTHER RADAR READING R22LEM7 CALL # PROCEED GRP2PC # PHASE CHANGE AND GOTO # GO TO INCOPORATE DATA. ASTOK R22LEM44 INCR MARKCTR # INCREMENT COUNT OF MARKS INCORPORATED. TC LUNSFCHK # ARE WE ON LUNAR SURFACE TC R22LEM46 # YES -- WAIT 2 SECONDS CA FIVE # NOT ON LUNAR SURFACE TC R22LEM45 # R65COUNTER = 5 R22LEM42 TC LUNSFCHK # CHECK IF ON LUNAR SURFACE (P22FLAG SET) TC R22LEM46 # YES -- WAIT 2 SECONDS CA TWO # NO -- SET R65COUNTER = 2 R22LEM45 TS R65CNTR # Page 507 TC BANKCALL CADR R65LEM # FINE PREFERRED TRACKING ATTITUDE TC R22LEM R22WAIT CAF 1500DEC TC P20LEMWT +1 R22LEM46 CAF 2SECS TC BANKCALL # WAIT 2 SECONDS AND TAKE ANOTHER MARK CADR DELAYJOB TC R22LEM N49DSP CAF V06N49NB TC BANKCALL # EXCESSIVE STATE VECTOR UPDATE -- FLASH CADR PRIODSP # VERB 06 NOUN 49 R1=DELTA R, R2=DELTA V TC GOTOV56 # TERMINATE -- EXIT R22 AND P20 CS ONE # PROCEED -- N49FLAG = -1 TS N49FLAG # RECYCLE -- N49FLAG = + VALUE TC ENDOFJOB R22RSTRT TC PHASCHNG # IF A RESTART OCCURS WHILE READING RADAR OCT 00152 # COME HERE TO TAKE A RANGE-RATE READING TC BANKCALL # WHICH ISN'T USED TO PREVENT TAKING A BAD CADR RRRDOT # READING AND TRYING TO INCORPORATE THE TC BANKCALL # BAD DATA CADR RADSTALL # WAIT FOR READ COMPLETE TC P20LEMC # COULD NOT READ RADAR -- TRY TO REDISGNATE TC R22LEM # READ SUCCESSFUL -- CONTINUE AT R22 ALRM525 OCT 00525 V06N05 VN 00605 V06N49NB VN 00649 1500DEC DEC 1500 # LUNSFCHECK -- CLOSED SUBROUTINE TO CHECK IF ON LUNAR SURFACE (P22FLAG) # RETURNS TO CALLER +1 IF P22FLAG SET # TO CALLER +2 IF P22FLAG NOT SET COUNT* $$/P22 LUNSFCHK CS FLAGWRD8 # CHECK IF ON LUNAR SURFACE MASK SURFFBIT # IS SURFFLAG SET? CCS A # BRANCH -- P22FLAG SET INCR Q # NOT SET TC Q # RETURN # Page 508 # RR DESIGNATE ROUTINE (R21LEM) # PROGRAM DESCRIPTION # # MOD NO -- 2 # BY P. VOLANTE # # FUNCTIONAL DESCRIPTION # # TO POINT THE RENDEZVOUS RADAR AT THE CSM UNTIL AUTOMATIC ACQUISITION # OF THE CSM IS ACCOMPLISHED BY THE RADAR. ROUTINE IS CALLED BY P20. # # CALLING SEQUENCE -- # # TC BANKCALL # CADR R21LEM # # SUBROUTINES CALLED -- # # FINDVAC FLAGUP ENDOFJOB PRIOLARM # NOVAC INTPRET LPS20.1 PHASCHNG # WAITLIST JOBSLEEP JOBWAKE FLAGDOWN # TASKOVER BANKCALL RADSTALL RRDESSM # # NORMAL EXIT MODES # # WHEN LOCK-ON IS ACHIEVED, BRANCH WILL BE TO P20 WHERE R22 (DATA READ # WILL BE SELECTED OR A NEED FOR A MANEUVER (BRANCH TO P20LEMA) # # ALARM OR ABORT EXIT MODES -- # # PRIORITY ALARM 503 WHEN LOCK-ON HASN'T BEEN ACHIEVED AFTER 30SECS -- # THIS REQUIRES ASTRONAUT INTERFACE: SELECTION OF SEARCH OPTION OF # ACQUISITION # # OUTPUT # # SEE LPS20.1, RRDESSM # # ERASABLE INITIALIZATION REQUIRED # # RRTARGET, RADMODES ARE USED BY LPS20.1 AND RRDESSM # # FLAGS SET + RESET # # LOSCMFLG LOKONSW # # DEBRIS # # SEE LPS20.1, RRSESSM EBANK= LOSCOUNT COUNT* $$/R21 R21LEM CS BIT14 # REMOVE RR SELF TRACK ENABLE EXTEND WAND CHAN12 TC LUNSFCHK TC R21LEM5 CAF ZERO # COMMAND ANTENNA TO MODE CENTER TS TANG # IF NOT ON SURFACE -- MODE 1 -- (T=0,S=0) TS TANG +1 TC R21LEM6 R21LEM5 CAF BIT12 MASK RADMODES CCS A TC R21LEM10 CAF BIT15 TS TANG CS HALF TS TANG +1 # Page 509 R21LEM6 TC DOWNFLAG ADRES LOKONSW TC BANKCALL CADR RRDESNB TC +1 TC BANKCALL CADR RADSTALL TC R21-503 # BAD RETURN FROM DESIGNATE -- ISSUE ALARM R21LEM10 TC UPFLAG ADRES LOSCMFLG # EVERY FOURTH PASS THRU DODES CAF MAXTRIES # ALLOW 60 PASSES (APPROX 45 SECONDS) TS DESCOUNT # TO DESIGNATE AND LOCK ON R21LEM2 CAF THREE TS LOSCOUNT R21LEM1 TC INTPRET RTB DAD LOADTIME HALFSEC # EXTRAPOLATE TO PRESENT TIME + .5 SEC. STCALL TDEC1 # LOS DETERMINATION ROUTINE LPS20.1 EXIT R21LEM3 TC UPFLAG # SET LOKONSW TO RADAR -- ON DESIRED ADRES LOKONSW TC DOWNFLAG ADRES NORRMON TC INTPRET CALL # INPUT (RRTARGET UPDATED BY LPS20.1) RRDESSM # DESIGNATE ROUTINE EXIT TC R21LEM4 # LOS NOT IN MODE 2 COVERAGE # ON LUNAR SURFACE TC P20LEMA # VEHICLE MANEUVER REQUIRED. TC BANKCALL # NO VEHICLE MANEUVER REQUIRED CADR RADSTALL # WAIT FOR DESIGNATE COMPLETE -- LOCKON OR TC +2 # BAD END -- LOCKON NOT ACHIEVED IN 60 TRIES TC R21END # EXIT ROUTINE RETURN TO P20 (LOCK-ON) R21-503 CAF ALRM503 # ISSUE ALARM 503 TC BANKCALL CADR PRIOLARM TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING TC R21SRCH # PROC TC P20LEMC3 TC ENDOFJOB R21END TC DOWNFLAG ADRES LOSCMFLG # RESET LOSCMFLG TC R21DISP # PUT UP VERIFY MAIN LOBE LOCKON DISPLAY R21SRCH TC PHASCHNG OCT 04022 TC R24LEM # SEARCH ROUTINE ALRM503 OCT 00503 # Page 510 ALRM527 OCT 527 R21LEM4 CAF MAXTRIES # SET UP COUNTER FOR TS REPOSCNT # 60 PASSES (APPROX 600 SECS.) TC UPFLAG ADRES FSPASFLG # SET FIRST PASS FLAG TC DOWNFLAG # RESET LOS BEING ADRES LOSCMFLG # COMPUTED FLAG TC INTPRET R21LEM12 RTB LOADTIME DAD TENSEC # TIME T = T + 10 SECS. STORE REPOSTM # SAVE FOR LONGCALL AND UPPSV STCALL TDEC1 LPS20.1 # COMPUTE LOS AT TIME T CALL RRDESSM EXIT TC R21LEM13 # LOS NOT IN MODE 2 COVERAGE TC ENDOFJOB # VEHICLE MANEUVER REQUIRED TC KILLTASK CADR BEGDES TC INTPRET BOF FSPASFLG # FIRST PASS THRU REPOSITION R21LEMB # NO -- GO TO CONTINUOUS DESIGNATE CLRGO FSPASFLG # YES -- RESET FIRST PASS FLAG R21LEM7 +1 R21LEM13 CCS REPOSCNT # HAVE WE TRIED 60 TIMES? TC R21LEM7 # NO -- ADD 10 SECS. RECOMPUTE LOS TC R21LEM11 # YES -- PUT OUT ALARM 530 R21LEM7 TS REPOSCNT TC INTPRET DLOAD GOTO REPOSTM R21LEM12 +2 R21LEMB DLOAD REPOSTM STCALL TDEC1 UPPSV EXIT TC UPFLAG # SET RADMODES BIT 15 FOR ADRES CDESFLAG # CONTINUOUS DESIGNATION TC DOWNFLAG ADRES LOKONSW TC UPFLAG ADRES NORRMON # Page 511 TC BANKCALL CADR RRDESNB TC +1 TC INTPRET RTB BDSU LOADTIME # COMPUTE DELTA TIME REPOSTM # FOR LONGCALL STORE DELTATM EXIT EXTEND DCA DELTATM TC LONGCALL EBANK= LOSCOUNT 2CADR R21LEM9 TC ENDOFJOB R21LEM9 TC KILLTASK CADR STDESIG TC CLRADMOD CAF PRIO26 TC FINDVAC EBANK= LOSCOUNT 2CADR R21LEM10 TC TASKOVER R21LEM11 CAF ALRM530 # ALARM 530 -- LOS NOT IN COVERAGE TC BANKCALL # AFTER TRYING TO DESIGNATE FOR CADR PRIOLARM # 600 SECS. TC GOTOV56 TC GOTOV56 TC GOTOV56 TC ENDOFJOB ALRM530 OCT 00530 TENSEC 2DEC 1000 B-28 HALFSEC 2DEC 50 R21DISP TC PHASCHNG OCT 04022 CAF V06N72PV # FLASH V 50 N 72 -- PLEASE PERFORM RR TC BANKCALL # MAIN LOBE LOCKON VERIFICATION CADR GOPERF2R TC GOTOV56 # TERMINATE EXITS VIA V 56 TC P20LEMWT # PROCEED CONTINUES TO R22 TC -5 # ENTER ILLEGAL CAF BIT7 TC LINUS # SET BITS TO MAKE THIS A PRIORITY DISPLAY TC ENDOFJOB # Page 512 V06N72PV VN 00672 # Page 513 # MANUAL ACQUISITION ROUTINE R23LEM # PROGRAM DESCRIPTION # # MOD NO -- 2 # BY P. VOLANTE # # FUNCTIONAL DESCRIPTION # # TO ACQUIRE THE CSM BY MANUAL OPERATION OF THE RENDEZVOUS RADAR # # CALLING SEQUENCE -- # # TC R23LEM # # SUBROUTINES CALLED # # BANKCALL R61LEM # SETMINDB GOPERF1 # # NORMAL EXIT MODES -- # # IN RESPONSE TO THE GOPERF1, SELECTION OF ENTER WILL RECYCLE R23 # SELECTION OF PROC WILL CONTINUE R23 # SELECTION OF TERM WILL TERMINATE R23 + P20 # # ALARM OR ABORT EXIT MODES -- # # SEE NORMAL EXIT MODES ABOVE # # OUTPUT # # N.A. # # ERASABLE INITIALIZATION REQUIRED -- # # ACMODFLG MUST BE SET TO 1 (MANUAL MODE) EBANK= GENRET COUNT* $$/R23 R23LEM TC UPFLAG # SET NO ANGLE MONITOR FLAG ADRES NORRMON INHINT TC IBNKCALL # SELECT MINIMUM DEADBAND CADR SETMINDB RELINT R23LEM1 CAF BIT14 # ENABLE TRACKER EXTEND WOR CHAN12 CAF OCT205 TC BANKCALL CADR GOPERF1 TC R23LEM2 # TERMINATE TC R23LEM11 # PROCEDE TC R23LEM3 # ENTER -- DO ANOTHER MANEUVER R23LEM11 INHINT TC RRLIMCHK # YES -- CHECK IF ANTENNA IS WITHIN LIMITS ADRES CDUT TC OUTOFLIM # NOT WITHIN LIMITS TC IBNKCALL # RESTORE DEADBAND TO CADR RESTORDB # ASTRONAUT SELECTED VALUE RELINT TC DOWNFLAG # CLEAR NO ANGLE MONITOR FLAG ADRES NORRMON TC P20LEMB1 # RADAR IS LOCKED ON CONTINUE IN P20 OUTOFLIM RELINT # Page 514 CAF OCT501PV TC BANKCALL # ISSUE ALARM -- RR ANTENNA NOT WITHIN CADR PRIOLARM # LIMITS TC R23LEM2 # TERMINATE -- EXIT R23 TO R00 (GO TO POOH) TC OUTOFLIM +1 # PROCEED ILLEGAL TC R23LEM3 # RECYCLE -- TO ANOTHER MANEUVER TC ENDOFJOB R23LEM2 TC DOWNFLAG # CLEAR NO ANGLE MONITOR FLAG ADRES NORRMON TC GOTOV56 # AND EXIT VIA V56 R23LEM3 TC BANKCALL CADR R61LEM TC R23LEM1 OCT501PV OCT 501 OCT205 OCT 205 # Page 515 # SEARCH ROUTINE R24LEM # PROGRAM DESCRIPTION # # MOD NO -- 2 # BY P. VOLANTE # # FUNCTIONAL DESCRIPTION # # TO ACQUIRE THE CSM BY A SEARCH PATTERN WHEN THE RENDEZVOUS RADAR HAS # FAILED TO ACQUIRE TEH CSM IN THE AUTOMATIC TRACKING MODE AND TO ALLOW # THE ASTRONAUT TO CONFIRM THAT REACQUISITION HAS NOT BEEN IN SIDELOBE. # # CALLING SEQUENCE # # CAF PRIONN # TC FINDVAC # EBANK= DATAGOOD # 2CADR R24LEM # # SUBROUTINES CALLED # # FLAGUP FLAGDOWN BANKCALL # R61LEM GOFLASHR FINDVAC # ENDOFJOB NOVAC LSR24.1 # # NORMAL EXIT MODES -- # # ASTRONAUT RESPONSE TO DISPLAY OF OMEGA AND DATAGOOD. HE CAN EITHER # REJECT BY TERMINATING (SEARCH OPTION AND RESELECTING P20) OR ACCEPT BY # PROCEEDING (EXIT ROUTINE AND RETURN TO AUTO MODE IN P20) # # ALARM OR ABORT EXIT MODES -- # # SEE NORMAL EXIT MODES ABOVE # # OUTPUT -- # # SEE OUTPUT FROM LSR24.1 + R61LEM # # ERASABLE INITIALIZATION REQUIRED # # SET INPUT FOR LSR24.1 # # FLAGS SET + RESET # # SRCHOPT, ACMODFLG EBANK= DATAGOOD COUNT* $$/R24 R24LEM TC UPFLAG ADRES SRCHOPTN # SET SRCHOPT FLAG TC DOWNFLAG # RESET LOS BEING COMPUTED FLAG TO MAKE ADRES LOSCMFLG # SURE DODES DOESN'T GO TO R21 R24LEM1 CAF ZERO TS DATAGOOD # ZERO OUT DATA INDICATOR TS OMEGAD # ZERO OMEGA DISPLAY REGS TS OMEGAD +1 # ZERO OMEGA DISPLAY REGS R24LEM2 TC PHASCHNG OCT 04022 CAF V16N80 TC BANKCALL CADR PRIODSPR TC GOTOV56 TC R24END # PROCEED EXIT R24 TO P20LEM1 TC R24LEM3 # RECYCLE -- CALL R61 TO MANEUVER S/C # Page 516 TC BANKCALL CADR LRS24.1 R24END TC KILLTASK CADR CALLDGCH TC CLRADMOD # CLEAR BITS 10 & 15 OF RADMODES. TCF P20LEM1 # AND GO TO 400 MI. RANGE CHECK IN P20 BLOCK 3 SETLOC FFTAG6 BANK COUNT* $$/R24 CLRADMOD CS BIT10+15 INHINT MASK RADMODES TS RADMODES CS BIT2 # DISABLE RR ERROR COUNTERS EXTEND WAND CHAN12 # USER WILL RELINT TC Q BIT10+15 OCT 41000 BANK 24 SETLOC P20S BANK COUNT* $$/R24 R24LEM3 TC PHASCHNG OCT 04022 TC KILLTASK CADR CALLDGCH # KILL WAITLIST FOR NEXT POINT IN PATTERN TC CLRADMOD # CLEAR BITS 10 + 15 OF RADMODES TO KILL RELINT # HALF SECOND DESIGNATE LOOP CAF .5SEC TC BANKCALL # WAIT FOR DESIGNATE LOOP TO DIE CADR DELAYJOB TC LUNSFCHK # CHECK IF ON LUNAR SURFACE TC R24LEM4 # YES -- DON'T DO ATTITUDE MANEUVER TC BANKCALL # CALL R61 TO DO PREFERRED TRACKING CADR R61LEM # ATTITUDE MANEUVER R24LEM4 CAF ZERO # ZERO OUT RADCADR (WHICH WAS SET BY TS RADCADR # ENDRADAR WHEN DESIGNATE STOPPED) SO THAT # RRDESSM WILL RETURN TO CALLER TC R24LEM2 # AND GO BACK TO PUT UP V16 N80 DISPLAY V16N80 VN 01680 # Page 517 # PREFERRED TRACKING ATTITUDE ROUTINE R61LEM # PROGRAM DESCRIPTION # # MOD NO: 3 DATE: 4-11-67 # MOD BY: P. VOLANTE, SDC # # FUNCTIONAL DESCRIPTION -- # # TO COMPUTE THE PREFERRED TRACKING ATTITUDE OF THE LM TO ENABLE RR # TRACKING OF THE CSM AND TO PERFORM THE MANEUVER TO THE PREFERRED # ATTITUDE. # # CALLING SEQUENCE -- # # TC BANKCALL # CADR R61LEM # # SUBROUTINES CALLED # # LPS20.1 VECPOINT # KALCMAN3 # # NORMAL EXIT MODES -- # # NORMAL RETURN IS TO CALLER + 1 # # ALARM OR ABORT EXIT MODES -- # # TERMINATE P20 + R61 BY BRANCHING TO P20END IF BOTH TRACKFLAG + # RENDEZVOUS FLAG ARE NOT SET. # # OUTPUT -- # # SEE OUTPUT FOR LPS20.1 + ATTITUDE MANEUVER ROUTINE (R60) # # ERASABLE INITIALIZATION REQUIRED # # GENRET USED TO SAVE Q FOR RETURN # # FLAGS SET + RESET # # 3AXISFLG # # DEBRIS # # SEE SUBROUTINES SETLOC R61 BANK EBANK= LOSCOUNT COUNT* $$/R61 R61LEM TC MAKECADR TS GENRET TC UPFLAG # SET R61 FLAG ADRES R61FLAG TC R61C+L01 R65LEM TC MAKECADR TS GENRET TC DOWNFLAG # RESET R61 FLAG ADRES R61FLAG R61C+L01 CAF TRACKBIT # TRACKFLAG MASK STATE +1 EXTEND BZF R65WAIT # NOT SET R61C+L03 TC INTPRET VLOAD # Page 518 HIUNITZ STORE SCAXIS # TRACK AXIS UNIT VECTOR R61LEM1 RTB DAD LOADTIME # EXTRAPOLATE FORWARD TO CENTER 3SECONDS # SIX SECOND PERIOD. STCALL TDEC1 LPS20.1 # LOS DETERMINATION + VEH ATTITUDE VLOAD RRTARGET STORE POINTVSM RTB CALL # GET DESIRED CDU'S FOR VECPNT1 READCDUD VECPNT1 # COMPUTES FINAL ANGLES FROM PRESENT CDUDS STORE CPHI # STORE FINAL ANGLES -- CPHI, CTHETA, CPSI EXIT TC PHASCHNG OCT 04022 CAF TRACKBIT # IS TRACK FLAG SET MASK FLAGWRD1 EXTEND BZF R65WAIT TC BANKCALL CADR G+N,AUTO # CHECK FOR AUTO MODE CCS A TC R61C+L04 # NOT IN AUTO TC INTPRET VLOAD CALL RRTARGET CDU*SMNB DLOAD DSU # GET PHI -- ARCCOS OF Z-COMPONENT OF LOS MPAC +5 COS15DEG R61LEM2 BMN EXIT # BRANCH -- PHI > 15 DEGREES R61C+L05 # PHI GRE 10DEG EBANK= CDUXD CAF EBANK6 TS EBANK INHINT EXTEND DCA CPHI DXCH CDUXD CA CPSI TS CDUZD RELINT EBANK= LOSCOUNT CAF EBANK7 TS EBANK TC R61C+L06 R61C+L05 EXIT INHINT # Page 519 TC IBNKCALL FCADR ZATTEROR TC IBNKCALL FCADR SETMINDB # REDUCE ATTITUDE ERROR TC DOWNFLAG ADRES 3AXISFLG TC UPFLAG ADRES PDSPFLAG # SET PRIORITY DISPLAY FLAG TC BANKCALL CADR R60LEM INHINT TC IBNKCALL FCADR RESTORDB TC PHASCHNG OCT 04022 TC DOWNFLAG ADRES PDSPFLAG # RESET PRIORITY DISPLAY FLAG R61C+L06 CA FLAGWRD1 MASK R61FLBIT CCS A TC R61C+L4 CCS R65CNTR TC +2 TC R61C+L4 # R65CNTR = 0 - EXIT ROUTINE TS R65CNTR CAF 06SEC TC TWIDDLE ADRES R61C+L2 TC ENDOFJOB R61C+L2 CAF PRIO26 TC FINDVAC EBANK= LOSCOUNT 2CADR R61C+L01 TC TASKOVER R61C+L04 TC BANKCALL # TO CONVERT ANGLES TO FDAI CADR BALLANGS TC R61C+L06 R61C+L4 CAE GENRET TCF BANKJUMP # EXIT R61 R61C+L1 CAF BIT7+9PV # IS RENDEZVOUS OR P25FLAG SET MASK STATE EXTEND BZF ENDOFJOB # NO -- EXIT ROUTINE AND PROGRAM. TC R61C+L06 # YES EXIT ROUTINE R65WAIT TC POSTJUMP CADR P20LEMWT BIT7+9PV OCT 00500 # Page 520 COS15DEG 2DEC 0.96593 B-1 06SEC DEC 600 PHI EQUALS 20D READCDUD INHINT # READS DESIRED CDU'S AND STORES IN CAF EBANK6 # MPAC TP EXITS WITH MODE SET TO TP XCH EBANK TS RUPTREG1 EBANK= CDUXD CA CDUXD TS MPAC EXTEND DCA CDUYD DXCH MPAC +1 CA RUPTREG1 TS EBANK RELINT TCF TMODE BLOCK 02 SETLOC RADARFF BANK EBANK= LOSCOUNT COUNT* $$/RRSUB # Page 521 # THE FOLLOWING SUBROUTINE RETURNS TO CALLER +2 IF THE ABSOLUTE VALUE OF VALUE OF C(A) IS GREATER THAN THE # NEGATIVE OF THE NUMBER AT CALLER +1. OTHERWISE IT RETURNS TO CALLER +3. MAY BE CALLED IN RUPT OR UNDER EXEC. MAGSUB EXTEND BZMF +2 TCF +2 COM INDEX Q AD 0 EXTEND BZMF Q+2 # ABS(A) <= CONST GO TO L+3 TCF Q+1 # ABS(A) > CONST GO TO L+2 # Page 522 # PROGRAM NAME: RRLIMCHK # # FUNCTIONAL DESCRIPTION: # # RRLIMCHK CHECKS RR DESIRED GIMBAL ANGLES TO SEE IF THEY ARE WITHIN # THE LIMITS OF THE CURRENT MODE. INITIALLY THE DESIRED TRUNNION AND # SHAFT ANGLES ARE STORED IN ITEMP1 AND ITEMP2. THE CURRENT RR # ANTENNAE MODE (RADMODES BIT 12) IS CHECKED WHICH IS = 0 FOR # MODE 1 AND =1 FOR MODE 2. # # MODE 1 -- THE TRUNNION ANGLE IS CHECKED AT MAGSUB TO SEE IF IT IS # BETWEEN -55 AND +55 DEGREES. IF NOT, RETURN TO L +2. IF WITHIN LIMITS, # THE SHAFT ANGLE IS CHECKED TO SEE IF IT IS BETWEEN -70 AND +59 DEGREES. # IF NOT, RETURN TO L +2. IF IN LIMITS, RETURN TO L +3. # # MODE 2 -- THE SHAFT ANGLE IS CHECKED AT MAGSUB TO SEE IF IT IS # BETWEEN -139 AND -25 DEGREES. IF NOT, RETURN TO L +2. IF WITHIN # LIMITS, THE TRUNNION ANGLE IS CHECKED TO SEE IF IT IS BETWEEN +125 # AND -125 (+235) DEGREES. IF NOT, RETURN TO L +2. IF IN LIMITS, RETURN # TO L +3. # # CALLING SEQUENCE: # # L TC RLIMCHK (WITH INTERRUPT INHIBITED) # L +1 ADRES T,S (DESIRED TRUNNION ANGLE ADDRESS) # # ERASABLE INITIALIZATION REQUIRED: # # RADMODES, MODEA, MODEB (OR DESIRED TRUNNION AND SHAFT # ANGLES ELSEWHERE IN CONSECUTIVE LOCATIONS -- UNSWITCHED ERASABLE OR # CURRENT EBANK). # # SUBROUTINES CALLED: MAGSUB # # JOBS OR TASKS INITIATED: NONE # # ALARMS: NONE # # EXIT: L + 2 (EITHER OR BOTH ANGLES NOT WITHIN LIMITS OF CURRENT MODE) # L + 3 (BOTH ANGLES WITHIN LIMITS OF CURRENT MODE) RRLIMCHK EXTEND INDEX Q INDEX 0 DCA 0 INCR Q DXCH ITEMP1 LXCH Q # L(CALLER +2) TO L. CAF ANTENBIT # SEE WHICH MODE RR IS IN. MASK RADMODES CCS A TCF MODE2CHK CA ITEMP1 # MODE 1 IS DEFINED AS # Page 523 TC MAGSUB # 1. ABS(T) L 55 DEGS. DEC -.30555 # 2. ABS(S + 5.5 DEGS) L 64.5 DEGS TC L # (SHAFT LIMITS AT +59, -70 DEGS) CAF 5.5DEGS AD ITEMP2 TC MAGSUB DEC -.35833 # 64.5 DEGS TC L TC RRLIMOK # IN LIMITS. MODE2CHK CAF 82DEGS # MODE 2 IS DEFINED AS AD ITEMP2 # 1. ABS(T) G 125 DEGS. TC MAGSUB # 2. ABS(S + 82 DEGS) L 57 DEGS DEC -.31667 # (SHAFT LIMITS AT -25, -139 DEGS) TC L CA ITEMP1 TC MAGSUB DEC -.69444 # 125 DEGS RRLIMOK INDEX L TC L # ( = TC 1 ) 5.5DEGS DEC .03056 82DEGS DEC .45556 # Page 524 # PROGRAM NAME: SETTRKF # # FUNCTIONAL DESCRIPTION: # # SETTRKF UPDATES THE TRACKER FAIL LAMP ON THE DSKY. # INITIALLY THE LAMP TEST FLAG (IMODES33 BIT 1) IS CHECKED. # IF A LAMP TEST IS IN PROGRESS, THE PROGRAM EXITS TO L +1. # IF NO LAMP TEST THE FOLLOWING IS CHECKED SEQUENTIALLY: # 1) RR CDU'S BEING ZEROED, RR CDU OK, AND RR NOT IN # AUTO MODE (RADMODES BITS 13, 7, 2). # 2) LR VEL DATA FAIL AND NO LR POS DATA (RADMODES BITS # 8,5) # 3) NO RR DATA (RADMODES BIT 4) # THE ABSENCE OF ALL THREE SIMULTANEOUSLY IN (1), THE PRESENCE OF BOTH # IN (2), AND THE PRESENCE OF (3) RESULTS IN EITHER THE TRACKER FAIL # LAMP (DSPTAB +11D BIT 8) BEING TURNED OFF OR IS LEFT OFF. THEREFORE, THE # TRACKER FAIL LAMP IS TURN ON IF: # A) RR CDU FAILED WITH RR IN AUTO MODE AND RR CDU'S NOT BEING ZEROED # B) N SAMPLES OF LR DATA COULD NOT BE TAKEN IN 2N TRIES WITH # EITHER THE ALT OR VEL INFORMATION # C) N SAMPLES OF RR DATA COULD NOT BE OBTAINED FROM 2N TRIES # WITH EITHER THE AL # # CALLING SEQUENCE: # # L TC SETTRKF # # ERASABLE INITIALIZATION REQUIRED: IMODES33, RADMODES, DSPTAB +11D # # SUBROUTINES CALLED: NONE # # JOBS OR TASKS INITIATED: NONE # # ALARMS: TRACKER FAIL LAMP # # EXIT: L +1 (ALWAYS) SETTRKF CAF BIT1 # NO ACTION IF DURING LAMP TEST MASK IMODES33 CCS A TC Q RRTRKF CA BIT8 TS L CAF 13,7,2 # SEE IF CDU FAILED. MASK RADMODES EXTEND BZF TRKFLON # CONDITION 3 ABOVE. RRCHECK CAF RRDATABT # SEE IF RR DATA FAILED. MASK RADMODES # Page 525 CCS A TRKFLON CA L AD DSPTAB +11D # HALF ADD DESIRED AND PRESENT STATES. MASK L EXTEND BZF TCQ # NO CHANGE. FLIP CA DSPTAB +11D # CAN'T USE LXCH DSPTAB +11D (RESTART PROB) EXTEND RXOR LCHAN MASK POSMAX AD BIT15 TS DSPTAB +11D TC Q 13,7,2 OCT 10102 ENDRMODF EQUALS # Page 526 # PROGRAM NAME: RRTURNON # # FUNCTIONAL DESCRIPTION: # # RRTURNON IS THE TURN-ON SEQUENCE WHICH, ALONG WTIH # RRZEROSB, ZEROES THE CDU'S AND DETERMINES THE RR MODE. # INITIALLY, CONTROL IS TRANSFERRED TO RRZEROSB FOR THE # ACTUAL TURN-ON SEQUENCE. UPON RETURN THE PROGRAM # WAITS 1 SECOND BEFORE REMOVING THE TURN-ON FLAG # (RADMODES BIT1) SO THE REPOSITION ROUTINE WON'T # INITIATE PROGRAM ALARM 00501. A CHECK IS THEN MADE # TO SEE IF A PROGRAM IS USING THE RR (STATE BIT 7). IF # SO, THE PROGRAM EXITS TO ENDRADAR SO THAT THE RR CDU # FAIL FLAG (RADMODES BIT 7) CAN BE CHECKED BEFORE # RETURNING TO THE WAITING PROGRAM. IF NOT, THE PROGRAM EXITS # TO TASKOVER. # # CALLING SEQUENCE: WAITLIST TASK FROM RRAUTCHK IF THE RR POWER-ON AUTO # BIT (CHAN 33 BIT 2) CHANGES TO 0 AND NO PROGRAM WAS USING # THE RR (STATE BIT 7). # # ERASABLE INITIALIZATION REQUIRED: # # RADMODES, STATE # # SUBROUTINES CALLED: RRZEROSB, FIXDELAY, TASKOVER, ENDRADAR # # JOBS OR TASKS INITIATED: # # NONE # # ALARMS: NONE (SEE RRZEROSB) # # EXIT: TASKOVER, ENDRADAR (WAITING PROGRAM) BANK 24 SETLOC P20S1 BANK EBANK= LOSCOUNT COUNT* $$/RSUB RRTURNON TC RRZEROSB TC FIXDELAY # WAIT 1 SEC BEFORE REMOVING TURN ON FLAG DEC 100 # SO A MONITOR REPOSITION WON'T ALARM. CS TURNONBT MASK RADMODES TS RADMODES TCF TASKOVER # Page 527 # PROGRAM NAME: RRZEROSB # # FUNCTIONAL DESCRIPTION: # # RRZEROSB IS A CLOSED SUBROUTINE TO ZERO THE RR CDU'S, # DETERMINE THE RR MODE, AND TURN ON THE TRACKER FAIL # LAMP IF REQUIRED. INITIALLY THE RR CDU ZERO BIT (CHAN 12 # BIT 1) IS SET. FOLLOWING A 20 MILLISECOND WAIT, THE LGC # RR CDU COUNTERS (OPTY, OPTX) ARE SET = 0 AFTER # WHICH THE RR CDU ZERO DISCRETE (CHAN 12 BIT 1) IS # REMOVED. A 4 SECOND WAIT IS SET TO ALL THE RR CDU'S # TO REPEAT THE ACTUAL TRUNNION AND SHAFT ANGLES. THE # RR CDU ZERO FLAG (RADMODES BIT 13) IS REMOVED. THE # CONTENTS OF OPTY IS THEN CHECKED TO SEE IF THE TRUNNION # ANGLE IS LESS THAN 90 DEGREES. IF NOT, BIT 12 OF # RADMODES IS SET = 1 TO INDICATE RR ANTENNA MODE 2. # IF LESS THAN 90 DEGREES, BIT 12 OF RADMODES IS SET = 0 TO # INDICATE RR ANTENNA MODE 1. SETTRKF IS THEN CALLED TO # SEE IF THE TRACKER FAIL LAMP SHOULD BE TURNED ON. # # CALLING SEQUENCE: L TC RRZEROSB (FROM RRTURNON AND RRZERO) # # ERASABLE INITIALIZATION REQUIRED: # # RADMODES (BIT 13 SET), DSPTAB +11D # # SUBROUTINES CALLED: FIXDELAY, MAGSUB, SETTRKF # # JOBS OR TASKS INITIATED: # # NONE # # ALARMS: TRAKCER FAIL # # EXIT: L +1 (ALWAYS) RRZEROSB EXTEND QXCH RRRET CAF BIT1 # BIT 13 OF RADMODES MUST BE SET BEFORE EXTEND # COMING HERE. WOR CHAN12 # TURN ON ZERO RR CDU TC FIXDELAY DEC 2 CAF ZERO TS CDUT TS CDUS CS ONE # REMOVE ZEROING BIT. EXTEND WAND CHAN12 TC FIXDELAY DEC 1000 # RESET FAIL INHIBIT IN 10 SECS. -- D.281 CS RCDU0BIT # REMOVE ZEROING IN PROCESS BIT # Page 528 MASK RADMODES TS RADMODES CA CDUT TC MAGSUB DEC -.5 TCF +3 # IF MODE 2. CAF ZERO TCF +2 CAF ANTENBIT XCH RADMODES MASK -BIT12 ADS RADMODES TC SETTRKF # TRACKER LAMP MIGHT GO ON NOW. TC RRRET # DONE. -BIT12 EQUALS -1/8 # IN SPROOT # Page 529 # PROGRAM NAME: DORREPOS # # FUNCTIONAL DESCRIPTION: # # DORREPOS IS A SEQUENCE OF TASKS TO DRIVE THE RENDEZVOUS RADAR # TO A SAFE POSITION. INIITALLY SETRRECR IS CALLED WHERE THE RR # ERROR COUNTERS (CHAN 12 BIT 2) ARE ENABLED AND LASTYCMD # AND LASTXCMD SET = 0 TO INDICATE THE DIFFERENCE BETWEEN THE # DESIRED STATE AND PRESENT STATE OF THE COMMANDS. THE RR # TURN-ON FLAG (RADMODES BIT 1) IS CHECKED AND IF NOT PRESENT, # PROGRAM ALARM 00501 IS REQUESTED BEFORE CONTINUING. IN EITHER # CASE, FOLLOWING A 20 MILLISECOND WAIT THE PROGRAM CHECKS THE CURRENT # RR ANTENNA MODE (RADMODES BIT 12). RRTONLY IS THEN CALLED # TO DRIVE THE TRUNNION ANGLE TO 0 DEGREES IF IN MODE 1 AND TO 180 # DEGREES IF IN MODE 2. UPON RETURN, THE CURRENT RR ANTENNA # MODE (RADMODES BIT 12) IS AGAIN CHECKED. RRSONLY IS THEN # CALLED TO DRIVE THE SHAFT ANGLE TO 0 DEGREES IF IN MODE 1 AND TO # -90 DEGREES IF IN MODE 2. IF DURING RRTONLY OR RRSONLY A # REMODE HAS BEEN REQUESTED (RADMODES BIT 14), AND ALWAYS # FOLLOWING COMPLETION OF RRSONLY, CONTROL IS TRANFERRED TO # REPOSRPT. HERE THE REPOSITION FLAG (RADMODES BIT 11) IS # REMOVED. A CHECK IS THEN MADE ON THE DESIGNATE FLAG (RADMODES # BIT 10). IF PRESENT, CONTROL IS TRANSFERRED TO BEGDES. IF NOT PRESENT # INDICATING NO FURTHER ANTENNA CONTROL REQUIRED, THE RR ERROR # COUNTER BIT (CHAN 12 BIT 2) IS REMOVED AND THE ROUTINE EXITS TO # TASKOVER. # # CALLING SEQUENCE: # # WAITLIST CALL FROM RRGIMON IF TRUNNION AND SHAFT CDU ANGLES # NOT WITHIN LIMITS OF CURRENT MODE. # # ERASABLE INITIALIZATION REQUIRED: # # RADMODES # # SUBROUTINES CALLED # # RRTONLY, RRSONLY, BEGDES (EXIT) # # JOBS OR TASKS INITIATED: # # NONE # # ALARMS: NONE # # EXIT: TASKOVER, BEGDES DORREPOS TC SETRRECR # SET UP RR CDU ERROR COUNTERS. # ALARM 501 DELETED IN DANCE 279 PER PCR 97. TC FIXDELAY DEC 2 CAF ANTENBIT # MANEUVER TRUNNION ANGLE TO NOMINAL POS. # Page 530 MASK RADMODES CCS A CAF BIT15 # 0 FOR MODE 1 AND 180 FOR MODE 2. TC RRTONLY CAF ANTENBIT # NOT PUT SHAFT IN RIGHT POSITION MASK RADMODES CCS A CS HALF # -90 FOR MODE 2. TC RRSONLY REPOSRPT CS REPOSBIT # RETURNS HERE FROM RR1AXIS IN REMODE # REQUESTED DURING REPOSITION. MASK RADMODES # REMOVE REPOSITION BIT. TS RADMODES MASK DESIGBIT # SEE IF SOMEONE IS WAITING TO DESIGNATE. CCS A TCF BEGDES CS BIT2 # IF NO FURTHER ANTENNA CONTROL REQUIRED, EXTEND # REMOVE ERROR COUNTER ENABLE. WAND CHAN12 TCF TASKOVER SETRRECR CAF BIT2 # SET UP RR ERROR COUNTERS EXTEND RAND CHAN12 CCS A # DO NOT CLEAR LAST COMMAND IF TC Q # ERROR COUNTERS ARE ENABLED TS LASTYCMD TS LASTXCMD CAF BIT2 EXTEND WOR CHAN12 # ENABLE RR CDU ERROR COUNTERS. TC Q # Page 531 # PROGRAM NAME: REMODE # # FUNCTIONAL DESCRIPTION # # REMODE IS THE GENERAL REMODING SUBROUTINE. IT DRIVES THE # TRUNNION ANGLE TO 0 DEGREES IF THE CURRENT MODE IS MODE 1, # 180 DEGREES FOR MODE 2, THEN DRIVES THE SHAFT ANGLE TO -45 # DEGREES, AND FINALLY DRIVES THE TRUNNION ANGLE TO -130 DEGREES, # TO PLACE THE RR IN MODE 2, -50 DEGREES FOR MODE 1, BEFORE # INITIATING 2-AXIS CONTROL. ALL REMODING IS DONE WITH SINGLE # AXIS ROTATIONS (RR1AXIS). INITIALLY THE RR ANTENNA MODE FLAG # (RADMODES BIT 12) IS CHECKED. CONTROL IS THEN TRANSFERRED TO # RRTONLY TO DRIVE THR TRUNNION ANGLE TO 0 DEGREES IF IN MODE 1 # OR 180 DEGREES IF IN MODE 2. RRSONLY IS THEN CALLED TO DRIVE # THE SHAFT ANGLE TO -45 DEGREES. THE RR ANTENNA MODE FLAG # (RADMODES BIT 12) IS CHECKED AGAIN. CONTROL IS AGAIN # TRANSFERRED TO RRTONLY TO DRIVE THE TRUNNION ANGLE TO -130 # DEGREES TO PLACE THE RR IN MODE 2 IF CURRENTLY IN MODE 1 OR TO # -50 DEGREES IF IN MODE 2 TO PLACE THE RR IN MODE 1. RMODINV # IS THEN CALLED TO SET RADMODES BIT 12 TO INDICATE THE NEW # RR ANTENNA MODE. THE REMODE FLAG (RADMODES BIT 14) # IS REMOVED TO INDICATE THAT REMODING IS COMPLETE. THE PROGRAM # THEN EXITS TO STDESIG TO BEGIN 2-AXIS CONTROL. # # CALLIN SEQUENCE: # # FROM BEGDES WHEN REMODE FLAG (RADMODES BIT 14) IS SET. # THIS FLAG MAY BE SET IN RRDESSM AND RRDESNB IF RRLIMCHK # DETERMINES THAT THE DESIRED ANGLES ARE WITHIN THE LIMITS OF THE # OTHER MODE. # # ERASABLE INIITIALIZATION REQUIRED: # # RADMODES # # SUBROUTINES CALLED: # # RRTONLY, RRSONL, RMODINV (ACTUALLY PART OF) # # JOBS OR TASKS INITIATED: # # NONE # # ALARMS: NONE # # EXIT: STDESIG REMODE CAF ANTENBIT # DRIVE TRUNNION TO 0 (180) MASK RADMODES # (ERROR COUNTER ALREADY ENABLED) CCS A CAF BIT15 TC RRTONLY CAF -45DEGSR TC RRSONLY # Page 532 CS RADMODES MASK ANTENBIT CCS A CAF -80DEGSR # GO TO T = -130 (-50). AD -50DEGSR TC RRTONLY CS RADMODES MASK ANTENBIT CCS A CAF BIT15 # GO TO T = -180 (+0). TC RRTONLY CS RADMODES # GO TO S = -90 (+0). MASK ANTENBIT CCS A CS HALF TC RRSONLY TC RMODINV CS REMODBIT # END OF REMODE. MASK RADMODES TS RADMODES CAF DESIGBIT # WAS REMODE CALLED DURING DESIGNATE? MASK RADMODES # (BIT10 RADMODES = 1) EXTEND BZF RGOODEND # NO -- RETURN TO CALLER WAITING IN RADSTALL TC STDESIG # YES -- RETURN TO DESIGNATE -45DEGSR = 13,14,15 -50DEGSR DEC -.27778 -80DEGSR DEC -.44444 RMODINV LXCH RADMODES # INVERT THE MODE STATUS. CAF ANTENBIT EXTEND RXOR LCHAN TS RADMODES TC Q # Page 533 # PROGRAM NAMES: RRTONLY, RRSONLY # # FUNCTIONAL DESCRIPTION: # # RRTONLY AND RRSONLY ARE SUBROUTINES FOR DOING SINGLE AXIS # RR MANEUVERS FOR REMODE AND REPOSITION. IT DRIVES TO # WITHIN 1 DEGREE. INITIALLY, AT RR1AX2, THE REMODE AND REPOSITION # FLAGS (RADMODES BITS 14, 11) ARE CHECKED. IF BOTH EXIST, # THE PROGRAM EXITS TO REPOSRPT (SEE DORREPOS). THIS INDICATES # THAT SOMEONE POSSIBLY REQUESTED A DESIGNATE (RADMODES BIT 10) # WHICH REQUIRES A REMODE (RADMODES BIT 14) AND THAT A # REPOSITION IS IN PROGRESS (RADMODES BIT 11). IF NONE # OR ONLY ONE OF THE FLAGS EXIST, REMODE OR REPOSITION, MAGSUB # IS CALLED TO SEE IF THE APPROPRIATE ANGLE IS WITHIN 1 DEGREE. IF YES, # CONTROL RETURNS TO THE CALLING ROUTINE. IF NOT, CONTROL IS # TRANSFERRED TO RROUT FOR SINGLE AXIS MANEUVERS WITH THE OTHER # ANGLE SET = 0. FOLLOWING A .5 SECOND WAIT, THE ABOVE PROCEDURE IS # REPEATED. # # CALLING SEQUENCE: L-1 CAF *ANGLE* (DESIRED ANGLE SCALED PI) # L TC RRTONLY (TRUNNION ONLY) # RRSONLY (SHAFT ONLY) # RRTONLY IS CALLED BY PREPOS29; # RRTONLY AND RRSONLY ARE CALLED BY DORREPOS AND REMODE # # ERASABLE INITIALIZATION REQUIRED: # # C(A) = DESIRED ANGLE, RADMODES # # SUBROUTINES CALLED: # # FIXDELAY, REPOSRPT, MAGSUB, RROUT # # JOBS OR TASKS INITIATED: # # NONE # # ALARMS: NONE # # EXIT: REPOSRPT (REMODE AND REPOSITION FLAGS PRESENT -- RADMODES # BITS 14, 11) # L+1 (ANGLE WITHIN ONE DEGREE OR RR OUT OF AUTO MODE) RRTONLY TS RDES # DESIRED TRUNNION ANGLE. CAF ZERO TCF RR1AXIS RRSONLY TS RDES # SHAFT COMMANDS ARE UNRESOLVED SINCE THIS CAF ONE # ROUTINE ENTERED ONLY WHEN T = 0 OR 180. RR1AXIS TS RRINDEX EXTEND QXCH RRRET TCF RR1AX2 # Page 534 NXTRR1AX TC FIXDELAY DEC 50 # 2 SAMPLES PER SECOND. RR1AX2 CS RADMODES # IF SOMEONE REQUESTS A DESIGNATE WHICH MASK PRIO22 # REQUIRES A REMODE AND A REPOSITION IS IN EXTEND # PROGRESS, INTERRUPT IT AND START THE BZF REPOSRPT # REMODE IMMEDIATELY. CA RDES EXTEND INDEX RRINDEX MSU CDUT TS ITEMP1 # SAVE ERROR SIGNAL. EXTEND MP RRSPGAIN # TRIES TO NULL .7 OF ERROR OVER NEXT .5 TS L CA RADMODES MASK AUTOMBIT XCH ITEMP1 # STORE RR-OUT-OF-AUTO-MODE BIT. TC MAGSUB # SEE IF WITHIN ONE DEGREE. DEC -.00555 # SCALED IN HALF-REVS. CCS ITEMP1 # NO. IF RR OUT OF AUTO MODE, EXIT. TC RRRET # RETURN TO CALLER. CCS RRINDEX # COMMAND FOR OTHER AXIS IS ZERO. TCF +2 # SETTING A TO 0. XCH L DXCH TANG TC RROUT TCF NXTRR1AX # COME BACK IN .5 SECONDS. RRSPGAIN DEC .59062 # NULL .7 ERROR IN .5 SEC. # Page 535 # PROGRAM NAME: RROUT # # FUNCTIONAL DESCRIPTION: # # RROUT RECEIVES RR GYRO COMMANDS IN TANG, TANG +1 IN RR # ERROR COUNTER SCALING. RROUT THEN LIMITS THEM AND # GENERATES COMMANDS TO THE CDU TO ADJUST THE ERROR COUNTERS # TO THE DESIRED VALUES. INITIALLY MAGSUB CHECKS THE MAGNITUDE OF # THE COMMAND (SHAFT ON 1ST PASS) TO SEE IF IT IS GREATER THAN # 384 PULSES. IF NOT, CONTROL IS TRANFERRED TO RROUTLIM TO # LIMIT THE COMMAND TO +384 OR -384 PULSES. THE DIFFERENCE IS # THEN CALCULATED BETWEEN THE DESIRED STATE AND TEH PRESENT STATE OF # THE ERROR COUNTER AS RECORDED IN LASTYCMD AND LASTXCMD. # THE RESULT IS STORED IN OPTXCMD (1ST PASS) AND OPTYCMD (2ND # PASS). FOLLOWING THE SECOND PASS, FOR THE TRUNNION COMMAND, THE # OCDUT AND OCDUS ERROR COUNTER DRIVE BITS (CHAN 14 BITS 12, 11) # ARE SET. THIS PROGRAM THEN EXITS TO THE CALLING PROGRAM. # # CALLING SEQUENCE: # # L TC RROUT (WITH RUPT INHIBITED) RROUT IS CALLED BY # RRTONLY, RRSONLY, AND DODES # # ERASABLE INITIALIZATION REQURIED: # # TANG, TANG +1 (DESIRED COMMANDS), LASTYCMD, LASTXCMD # (1ST PASS = 0), RR ERROR COUNTER ENAGLE SET (CHAN 12 BIT 2). # # SUBROUTINES CALLED: # # MAGSUB # # JOBS OR TASKS INITIATED: # # NONE # # ALARMS: NONE # # EXIT: L+1 (ALWAYS) RROUT LXCH Q # SAVE RETURN CAF ONE # LOOP TWICE. RROUT2 TS ITEMP2 INDEX A CA TANG TS ITEMP1 # SAVE SIGN COMMAND FOR LIMITING. TC MAGSUB # SEE IF WITHIN LIMITS. -RRLIMIT DEC -384 TCF RROUTLIM # LIMIT COMMAND TO MAG OF 384. SETRRCTR CA ITEMP1 # COUNT OUT DIFFERENCE BETWEEN DESIRED INDEX ITEMP2 # STATE AND PRESENT STATE AS RECORDED IN XCH LASTYCMD # LASTYCMD AND LASTXCMD COM # Page 536 AD ITEMP1 AD NEG0 # PREVENT +0 IN OUTCOUNTER INDEX ITEMP2 TS CDUTCMD CCS ITEMP2 # PROCESS BOTH INPUTS. TCF RROUT2 CAF PRIO6 # ENABLE COUNTERS. EXTEND WOR CHAN14 # PUT ON CDU DRIVES S AND T TC L # RETURN. RROUTLIM CCS ITEMP1 # LIMIT COMMAND TO ABS VAL OF 384. CS -RRLIMIT TCF +2 CA -RRLIMIT TS ITEMP1 TCF SETRRCTR +1 # Page 537 # ROUTINE TO ZERO THE RR CDUS AND DETERMINE THE ANTENNA MODE. RRZERO CAF BIT11+1 # SEE IF MONITOR REPOSITION OR NOT IN AUTO MASK RADMODES # IF SO, DON'T RE-ZERO CDUS. CCS A TCF RADNOOP # (IMMEDIATE TASK TO RGOODEND). INHINT CS RCDU0BIT # SET FLAG TO SHOW ZEROING IN PROGRESS. MASK RADMODES AD RCDU0BIT TS RADMODES CAF ONE TC WAITLIST EBANK= LOSCOUNT 2CADR RRZ2 CS RADMODES # SEE IF IN AUTO MODE. MASK AUTOMBIT CCS A TCF ROADBACK TC ALARM # AUTO DISCRETE NOT PRESENT -- TRYING OCT 510 ROADBACK RELINT TCF SWRETURN RRZ2 TC RRZEROSB # COMMON TO TURNON AND RRZERO. TCF ENDRADAR BIT11+1 OCT 02001 # Page 538 # PROGRAM NAME: RRDESSM # # FUNCTIONAL DESCRIPTION: # # THIS INTERPRETIVE ROUTINE WILL DESIGNATE, IF DESIRED ANGLES ARE # WITHIN THE LIMITS OF EITHER MODE, TO A LINE-OF-SIGHT (LOS) VECTOR # (HALF-UNIT) KNOWN WITH RESPECT TO THE STABLE MEMBER PRESENT # ORIENTATION. INITIALLY THE IMU CDU'S ARE READ AND CONTROL # TRANSFERRED TO SMNB TO TRANSFORM THE LOS VECTOR FROM STABLE # MEMBER TO NAVIGATION BASE COORDINATES (SEE STG MEMO 699) # RRANGLES IS THEN CALLED TO CALCULATE THE RR GIMBAL ANGLES, # TRUNNION AND SHAFT, FOR BOT THE PRESENT AND ALTERNATE MODE. # RRLIMCHK IS CALLED TO SEE IF THE ANGLES CALCULATED FOR THE # PRESENT MODE ARE WITHIN LIMITS. IF WITHIN LIMITS, THE RETUREN # LOCATION IS INCREMENTED, INASMUCH AS NO VEHICLE MANEUVER IS # REQUIRED, BEFORE EXITING TO STARTDES. IF NOT WITHIN THE LIMITS OF THE # CURRENT MODE, TRYSWS IS CALLED. FOLLOWING INVERTING OF THE RR # ANTENNA MODE FLAG (RADMODES BIT 12), RRLIMCHK IS CALLED # TO SEE IF THE ANGLES CALCULATED FOR THE ALTERNATE MODE ARE WITHIN # LIMITS. IF YES, THE RR ANTENNA MODE FLAG IS AGAIN INVERTED, # THE REMODE FLAG (RADMODES BIT 14) SET, AND THE RETURN LOCATION # INCREMENTED, TO INDICATE NO VEHICLE MANEUVER IS REQUIRED, BEFORE # EXITING TO STARTDES. IF THESE ANGLES ARE NOT WITHIN LIMITS # OF THE ALTERNATE MODE, THE RR ANTENNA MODE FLAG (RADMODES # BIT 12) IS INVERTED BEFORE RETURNING DIRECTLY TO THE CALLING PROGRAM # TO INDICATE THAT A VEHICLE MANEUVER IS REQUIRED. # # CALLING SEQUENCE: # # L STCALL RRTARGET (LOS HALF-UNIT VECTOR IN SM COORDINATES) # L+1 RRDESM # L+2 BASIC (VEHICLE MANEUVER REQUIRED) # L+3 BASIC (NO VEHICLE MANEUVER REQUIRED) # # ERASABLE INITIALIZATION REQUIRED: # # RRTARGET, RADMODES # # SUBROUTINES CALLED: # # READCDUS, SMNB, RRANGLES, RRLIMCHK, TRYSWS (ACTUALLY # PART OF), RMODINV # # JOBS OR TASKS INITIATED: # # NONE # # ALARMS: NONE # # EXIT: L+2 (NEITHER SET OF ANGLES ARE WITHIN LIMITS OF RELATED MODE) # STARTDES (DESIGNATE POSSIBLE AT PRESENT VEHICLES ATTITUDE -- RETURNS # TO L+3 FROM STARTDES) RRDESSM STQ CLEAR DESRET # Page 539 RRNBSW CALL # COMPUTES SINES AND COSINES, ORDER Y Z X CDUTRIG VLOAD CALL # LOAD VECTOR AND CALL TRANSFORMATION RRTARGET *SMNB* CALL # GET RR GIMBAL ANGLES IN PRESENT AND RRANGLES # ALTERNATE MODE. EXIT INHINT TC RRLIMCHK ADRES MODEA # CONFIGURATION FOR CURRENT MODE. TC +3 # NOT IN CURRENT MODE OKDESSM INCR DESRET # INCREMENT SAYS NO VEHICLE MANEUVER REQ. TC STARTDES # SHOW DESIGNATE REQUIRED CS FLAGWRD8 MASK SURFFBIT # CHECK IF ON LUNAR SURFACE (SURFFLAG=P22F) EXTEND BZF NORDSTAL # BRANCH -- YES -- CANNOT DESIGNATE IN MODE 2 TC TRYSWS LUNDESCH CS FLAGWRD8 # OVERFLOW RETURN FROM RRANGLES MASK SURFFBIT # CHECK IF ON LUNAR SURFACE EXTEND BZF NORDSTAL # BRANCH -- YES -- RETURN TO CALLER -- ALARM 527 CA STATE MASK RNDVZBIT CCS A # TEST RNDVZFLG TC NODESSM # NOT ON MOON -- CALL FOR ATTITUDE MANEUVER TCF ENDOFJOB # ... BUT NOT IN R29. # Page 540 # PROGRAM NAME: STARTDES # # FUNCTIONAL DESCRIPTION: # # STARTDES IS ENTERED WHEN WE ARE READY TO BEGIN DESIGNATION. # BIT 14 OF RADMODES IS ALREADY SET IF A REMODE IS REQUIRED. # AT THIS TIME, THE RR ANTENNA MAY BE IN A REPOSITON # OPERATION. IN THIS CASE, IF A REMODE IS REQUIRED IT MAY HAVE # ALREADY BEGUN BUT IN ANY CASE THE REPOSITION WILL BE INTERRUPTED. # OTHERWISE, THE REPOSITION WILL BE COMPLETED BEFORE 2-AXIS # DESIGNATION BEGINS. INITIALLY DESCOUNT IS SET = 60 TO INDICATE # THAT 30 SECONDS WILL BE ALLOWED FOR THE RR DATA GOOD INBIT # (CHAN 33 BIT 4) IF LOCK-ON IS DESIRED (STATE BIT 5). BIT 10 # OF RADMODES IS SET TO SHOW THAT A DESIGNATE IS REQUIRED. # THE REPOSITON FLAG (RADMODES BIT 11) IS CHECKED. IF SET, # THE PROGRAM EXITS TO L+3 OF THE CALLING PROGRAM (SEE RRDESSM # AND RRDESNB). THE PROGRAM WILL BEGIN DESIGNATING TO THE DESIRED # ANGLES FOLLOWING THE REPOSITON OR REMODE IF ONE WAS # REQUESTED. IF THE REPOSITON FLAG IS NOT SET, SETRRECR IS CALLED # WITH SETS THE RR ERROR COUNTER ENABLE BIT (CHAN 12 BIT 2) # AND SETS LASTYCMD AND LASTXCMD = 0 TO INDICATE THE # DIFFERENCE BETWEEN THE PRESENT AND DESIRED STATE OF THE ERROR # COUNTERS. A 20 MILLISECOND WAITLIST CALL IS SET FOR BEGDES # AFTER WHICH THE PROGRAM EXITS TO L+3 OF TEH CALLING PROGRAM. # # CALLING SEQUENCE: # # FROM RRDESSM AND RRDESNB WHEN ANGLES WITHIN LIMITS. # # ERASABLE INITIALIZATION REQUIRED: # # RADMODES, (SEE DODES) # # SUBROUTINES CALLED # # SETRRECR, WAITLIST # # JOBS OR TASKS INITIATED: # # BEGDES # # ALARMS: NONE # # EXIT: L+3 OF CALLING PROGRAM (SEE RRDESSM) # L+2 OF CALLING PROGRAM (SEE RRDESNB) STARTDES INCR DESRET CS RADMODES MASK DESIGBIT ADS RADMODES MASK REPOSBIT # SEE IF REPOSITIONING IN PROGRESS. CCS A TCF DESRETRN # ECTR ALREADY SET UP. TC SETRRECR # SET UP ERROR COUNTERS. # Page 541 CAF TWO TC WAITLIST EBANK= LOSCOUNT 2CADR BEGDES DESRETRN CA RADCADR # FIRST PASS THRU DESIGNATE EXTEND BZF DESRTRN # YES SET EXIT TC ENDOFJOB # NO DESRTRN RELINT INCR DESRET CA DESRET TCF BANKJUMP NORDSTAL CAF ZERO # ZERO RADCADR TO WIPE OUT ANYONE TS RADCADR # WAITING IN RADSTALL SINCE WE ARE NOW TCF DESRTRN # RETURNING TO P20 AND MAY DO NEW RADSTALL # Page 542 # SEE IF RRDESSM CAN BE ACCOMPLISHED AFTER A REMODE. TRYSWS TC RMODINV # (NOTE RUPT INHIBIT) TC RRLIMCHK # TRY DIFFERENT MODE. ADRES MODEB TCF NODESSM # VEHICLE MANEUVER REQUIRED TC RMODINV # RESET BIT12 CAF REMODBIT # SET FLAG FOR REMODE. ADS RADMODES TCF OKDESSM NODESSM TC RMODINV # RE-INVERT MODE AND RETURN INCR DESRET # TO CALLER +2 TCF NORDSTAL MAXTRYS DEC 60 # Page 543 # DESIGNATE TO SPECIFIC RR GIMBAL ANGLES (INDEPENDENT OF VEHICLE MOTION). ENTER WITH DESIRED ANGLES IN # TANG AND TANG +1. RRDESNB TC MAKECADR TS DESRET TC DOWNFLAG # RESET FLAG TO PREVENT DODES FROM GOING ADRES LOSCMFLG # BACK TO R21 CA MAXTRYS # SET TIME LIMIT COUNTER TS DESCOUNT # FOR DESIGNATE INHINT # SEE IF CURRENT MODE OK. TC RRLIMNB # DO SPECIAL V41 LIMIT CHECK ADRES TANG TCF TRYSWN # SEE IF IN OTHER MODE. OKDESNB RELINT EXTEND DCA TANG DXCH TANGNB TC INTPRET CALL # GET LOS IN NB COORDS. RRNB STORE RRTARGET SET EXIT RRNBSW INHINT TCF STARTDES +1 TRYSWN TC RMODINV # SEE IF OTHER MODE WILL DO. TC RRLIMNB # DO SPECIAL V41 LIMIT CHECK ADRES TANG TCF NODESNB # NOT POSSIBLE. TC RMODINV CAF REMODBIT # CALL FOR REMODE. ADS RADMODES TCF OKDESNB NODESNB TC RMODINV # REINVERT MODE BIT. TC ALARM # BAD INPUT ANGLES. OCT 502 TC CLRADMOD TC ENDOFJOB # AVOID 503 ALARM. RRLIMNB INDEX Q # THIS ROUTINE IS IDENTICAL TO RRLIMCHK CAF 0 # EXCEPT THAT THE MODE 1 SHAFT LOWER INCR Q # LIMIT IS -85 INSTEAD OF -70 DEGREES EXTEND # Page 544 INDEX A # READ GIMBAL ANGLES INTO ITEMP STORAGE DCA 0 DXCH ITEMP1 LXCH Q # L(CALLER +2) TO L CAF ANTENBIT # SEE WHICH MODE RR IS IN MASK RADMODES CCS A TCF MODE2CHK # MODE 2 CAN USE RRLIMCHK CODING CA ITEMP1 TC MAGSUB # MODE 1 IS DEFINED AS DEC -.30555 # 1 ABS(T) L 55 DEGS TC L # 2 SHAFT LIMITS AT +59, -85 DEGS CA ITEMP2 # LOAD SHAFT ANGLE EXTEND BZMF NEGSHAFT # IF NEGATIVE SHAFT ANGLE, ADD 20.5 DEGS AD 5.5DEGS SHAFTLIM TC MAGSUB DEC -.35833 # 64.5 DEGREES TC L # NOT IN LIMITS TC RRLIMOK # IN LIMITS NEGSHAFT AD 20.5DEGS # MAKE NEGATIVE SHAFT LIMIT -85 DEGREES TCF SHAFTLIM 20.5DEGS DEC .11389 # Page 545 # PROGRAM NAME: BEGDES # # FUNCTIONAL DESCRIPTION: # # BEGDES CHECKS VARIOUS DESIGNATE REQUESTS AND REQUESTS THE # ACTUAL RR DESIGNATION. INITIALLY A CHECK IS MADE TO SEE IF A # REMODE (RADMODES BIT 14) IS REQUESTED OR IN PROGRESS. IF SO, # CONTROL IS TRANFERRED TO STDESIG AFTER ROUTINE REMODE IS # EXECUTED. IF NO REMODE, STDESIG IS IMMEDIATELY CALLED WHERE # FIRST THE REPOSITION FLAG (RADMODES BIT 11) IS CHECKED. IF # PRESENT, THE DESIGNATE FLAG (RADMODES BIT 10) IS REMOVED # AFTER WHICH THE PROGRAM EXITS TO RDBADEND. IF THE REPOSITION # FLAG IS NOT PRESET, THE CONTINUOUS DESIGNATE FLAG (RADMODES # BIT 15) IS CHECKED. IF PRESENT, AN EXECUTIVE CALL IS IMMEDIATELY # MADE FOR DODES AFTER WHICH A .5 SECOND WAIT IS INITIATED BEFORE # REPEATING AT STDESIG. IF THE RR SEARCH ROUTINE (LRS24.1) IS DESIGNATING # TO A NEW POINT (NEWPTFLG SET) THE CURRENT DESIGNATE TASK IS TERMINATED. # IF CONTINUOUS DESIGNATE IS NOT WANTED, THE DESIGNATE FLAG (RADMODES # BIT 10) IS CHECKED. IF NOT PRESENT, THE PROGRAM EXITS TO ENDRADAR TO # CHECK RR CDU FAIL BEFORE RETURNING TO THE CALLING PROGRAM. IF DESIGNATE # IS STILL REQUIRED, DESCOUNT IS CHECKED TO SEE IF THE 30 SECONDS HAS # EXPIRED BEFORE RECEIVING THE RR DATA GOOD (CHAN 33 BIT 4) # SIGNAL. IF OUT OF TIME, PROGRAM ALARM 00503 IS REQUESTED, THE # RR AUTO TRACKER ENABLE AND RR ERROR COUNTER ENABLE # (CHAN 12 BITS 14,2) BITS REMOVED, AND THE DESIGNATE FLAG # (RADMODES BIT 10) REMOVED BEFORE EEXITING TO RDBADEND. IF # TIME HAS NOT EXPIRED, DESCOUNT IS DECREMENTED, THE # EXECUTIVE CALL MADE FOR DODES, AND A .5 SECOND WAIT INITIATED # BEFORE REPEATING THIS PROCEDURE AT STDESIG. # # CALLING SEQUENCE: # # WAITLIST CALL FROM STARTDES # TCF BEGDES FROM DORREPOS # TC STDESIG RETURNING, FROM REMODE # # ERASABLE INITIALIZATION REQUIRED: # # DESCOUNT, FINDVAC # # JOBS OR TASKS INITIATED: DODES # # ALARMS: PROGRAM ALARM 00503 (30 SECONDS HAVE EXPIRED) WITH NO RR DATA # GOOD (CHAN 33 BIT 4) RECEIVED WHEN LOCK-ON (STATE BIT 5) WAS REQUESTED. # # EXIT: TASKOVER (SEARCH PATTERN DESIGNATING TO NEW POINT) # ENDRADAR (NO DESIGNATE -- RADMODES BIT 10) # RDBADEND (REPOSITION OR 30 SECONDS EXPIRED) BEGDES CS RADMODES # Page 546 MASK REMODBIT CCS A TC STDESIG TC REMODE DESLOOP TC FIXDELAY # 2 SAMPLES PER SECOND. DEC 50 STDESIG CAF REPOSBIT MASK RADMODES # SEE IF GIMBAL LIMIT MONITOR HAS FOUND US CCS A # OUT OF BOUNDS. IF SO, THIS BIT SHOWS A TCF BADDES # REPOSITION TO BE IN PROGRESS. CCS RADMODES # SEE IF CONTINUOUS DESIGNATE WANTED. TCF +3 # IF SO, DON'T CHECK BIT 10 TO SEE IF IN TCF +2 # LIMITS BUT GO RIGHT TO FINDVAC ENTRY. TCF MOREDES +1 CS RADMODES # IF NON-CONTINUOUS, SEE IF END OF MASK DESIGBIT # PROBLEM (DATA GOOD IF LOCK-ON WANTED OR CCS A # WITHIN LIMITS IF NOT). IF SO, EXIT AFTER TCF ENDRADAR # CHECKING RR CDU FAIL. STDESIG1 CCS DESCOUNT # SEE IF THE TIME LIMIT HAS EXPIRED TCF MOREDES CS B14+B2 # IF OUT OF TIME, REMOVE ECR ENABLE + TRKR EXTEND WAND CHAN12 BADDES CS DESIGBIT # REMOVE DESIGNATE FLAG MASK RADMODES TS RADMODES TCF RDBADEND MOREDES TS DESCOUNT CAF PRIO26 # UPDATE GYRO TORQUE COMMANDS. TC FINDVAC EBANK= LOSCOUNT 2CADR DODES TCF DESLOOP B14+B2 OCT 20002 # Page 547 # PROGRAM NAME: DODES # # FUNCTIONAL DESCRIPTION: # # DODES CALCULATES AND REQUESTS ISSUANCE OF RR GYRO TORQUE # COMMANDS. INITIALLY THE CURRENT RR CDU ANGLES ARE STORED AND # THE LOS HALF-UNIT VECTOR TRANSFORMED FROM STABLE MEMBER TO # NAVIGATION BASE COORDINATES VIA SMNB IF NECESSARY. THE # SHAFT AND TRUNNION COMMANDS ARE THEN CALCULATED AS FOLLOWS: # + SHAFT = LOS . (COS(S), 0, -SIN(S)) (DOT PRODUCT) # - TRUNNION = LOS . (SIN(T)SIN(S), COS(T), SIN(T)COS(S)) # THE SIGN OF THE SHAFT COMMAND IS THEN REVERSED IF IN MODE 2 # (RADMODES BIT 12) BECAUSE A RELAY IN THE RR REVERSES THE # POLARITY OF THE COMMAND. AT RRSCALUP EACH COMMAND IS # SCALED AND IF EITHER, OR BOTH, OF THE COMMANDS IS GREATER THAN # .5 DEGREES, MPAC +1 IS SET POSITIVE. IF A CONTINUOUS DESIGNATE # (RADMODES BIT 15) IS DESIRED AND THE SEARCH ROUTINE IS NOT OPERATING, # THE RR AUTO TRACKER ENABLE BIT (CHAN 12 BIT 14) IS CLEARED AND RROUT # CALLED TO PUT OUT THE COMMANDS PROVIDED NO REPOSITION (RADMODES BIT 11) # IS IN PROGRESS. IF A CONTINUOUS DESIGNATE AND THE SEARCH ROUTINE IS # OPERATING (SRCHOPT FLAT SET) THE TRACK ENABLE IS NOT CLEARED. IF NO # CONTINUOUS DESIGNATE AND BOTH COMMANDS ARE NOT LESS THAN .5 DEGREES AS # INDICATED BY MPAC +1, THE RR AUTO TRACKER ENABLE BIT (CHAN 12 BIT 14) IS # CLEARED AND RROUT CALLED TO PUT OUT THE COMMANDS PROVIDED NO REPOSITON # (RADMODES BIT 11) IS IN PROGRESS. IF BOTH COMMANDS ARE LESS THAN .5 # DEGREES AS INDICATED BY MPAC+1, THE RR AUTO TRACKER ENABLE BIT # (CHAN 12 BIT 14) IS CLEARED AND RROUT CALLED TO PUT OUT THE # COMMANDS PROVIDED NO REPOSITION (RADMODES BIT 11) IS IN # PROGRESS. IF BOTH COMMANDS ARE LESS THAN .5 DEGREES, THE # LOCK-ON FLAG (STATE BIT 5) IS CHECKED. IF NOT PRESETN, THE # DESIGNATE FLAG (RADMODES BIT 10) IS CLEARED, AND ENDOFJOB # CALLED. IF LOCK-ON IS DESIRED, THE RR AUTO TRACKER (CHAN 12 # BIT 14) IS ENABLED FOLLOWED BY A CHECK OF THE RECEIPT OF THE # RR DATA GOOD (CHAN 33 BIT 4) SIGNAL. IF RR DATA GOOD # PRESENT, THE DESIGNATE FLAG (RADMODES BIT 10) IS CLEARED, # THE RR ERROR COUNTER ENABLE BIT (CHAN 12 BIT 2) IS CLEARED, # AND ENDOFJOB CALLED. IF RR DATA GOOD IS NOT PRESENT, RROUT # IS CALLED TO PUT OUT THE COMMANDS PROVIDED NO REPOSITION # (RADMODES BIT 11) IS IN PROGRESS AFTER WHICH THE JOB IS TERMINATED # VIA ENDOFJOB. # # CALLING SEQUENCE: # # EXECUTIVE CALL EVERY .5 SECONDS FROM BEGDES. # # ERASABLE INITIALIZATION REQUIRED: # # RRTARGET (HALF-UNIT LOS VECTOR IN EITHER SM OR NB COORDINATES), # LOKONSW (STATE BIT 5), RRNBSW (STATE BIT 6), RADMODES # # SUBROUTINES CALLED: # # READCDUS, SMNB, CDULOGIC, MAGSUB, RROUT # Page 548 # # JOBS OR TASKS INITIATED: # # NONE # # ALARMS: NONE # # EXIT: ENDOFJOB (ALWAYS) DODES EXTEND DCA CDUT DXCH TANG TC INTPRET SETPD VLOAD 0 RRTARGET BON VXSC RRNBSW DONBRD # TARGET IN NAV-BASE COORDINATES MLOSV # MULTIPLY UNIT LOS BY MAGNITUDE VSL1 PDVL LOSVEL VXSC VAD # ADD ONE SECOND RELATIVE VELOCITY TO LOS MCTOMS UNIT CALL CDUTRIG CALL *SMNB* DONBRD STODL 32D TANG +1 RTB PUSH # SHAFT COMMAND = V(32D).(COS(S), 0, CDULOGIC # -SIN(S)). SIN PDDL # SIN(S) TO 0 AND COS(S) TO 2. COS PUSH DMP PDDL 32D 36D DMP BDSU 0 STADR STORE TANG +1 # SHAFT COMMAND SLOAD RTB TANG CDULOGIC PUSH COS # COS(T) TO 4. PDDL SIN PUSH DMP # SIN(T) TO 6. 2 # Page 549 SL1 PDDL # DEFINE VECTOR U = [SIN(T)SIN(S)] 4 # [ COS(T) ] PDDL DMP # [SIN(T)COS(S)] 6 0 SL1 VDEF DOT EXIT # DOT U WITH LOS TO GET TRUNNION COMMAND. 32D # Page 550 # AT THIS POINT WE HAVE A ROTATION VECTOR IN DISH AXES LYING IN THE TS PLANE. CONVERT THIS TO A # COMMANDED RATE AND ENABLE THE TRACKER IF WE ARE WITHIN .5 DEGREES OF THE TARGET. CS MPAC # DOT WAS NEGATIVE OF DESREG ANGLE. EXTEND MP RDESGAIN # SCALING ON INPUT ANGLE WAS 4 RADIANS. TS TANG # TRUNNION COMMAND. CS RADMODES # A RELAY IN THE RR REVERSES POLARITY OF MASK BIT12 # THE SHAFT COMMANDS IN MODE 2 SO THAT A EXTEND # POSITIVE TORQUE APPLIED TO THE SHAFT BZF +3 # GYRO CAUSES A POSITIVE CHANGE IN THE CA TANG +1 # SHAFT ANGLE. COMPENSATE FOR THIS SWITCH TCF +2 # BY CHANGING THE POLARITY OF OUR COMMAND. +3 CS TANG +1 EXTEND MP RDESGAIN # SCALING ON INPUT ANGLE WAS 4 RADIANS. TS TANG +1 # SHAFT COMMAND FOR RROUT TC INTPRET DLOAD DMP 2 # COS(S). 4 # COS(T). SL1 PDDL # Z COMPONENT OF URR. DCOMP PDDL # Y COMPONENT = -SIN(T) 0 # SIN(S). DMP SL1 4 # COS(T). VDEF BON # FORM URR IN NB AXES. RRNBSW # BYPASS NBSM CONVERSION IN VERB 41 +3 CALL *NBSM* # GET URR IN SM AXES. DOT EXIT RRTARGET # GET COSIN OF ANGLE BETWEEN RR AND LOS EXTEND DCS COS1/2DG DAS MPAC # DIFFERENCE OF COSINES, SCALED B-2. CCS MPAC CA ZERO # IF COS ERROR BIGGER, ERROR IS SMALLER TCF +2 CA ONE TS MPAC +1 # ZERO IF RR IS POINTED OK, ONE IF NOT. # Page 551 # SEE IF TRACKER SHOULD BE ENABLED OR DISABLED. CCS RADMODES # IF CONTINUOUS DESIGNATE WANTED, PUT OUT TCF SIGNLCHK # COMMANDS WITHOUT CHECKING MAGNITUDE OF TCF SIGNLCHK # ERROR SIGNALS TCF DORROUT SIGNLCHK CCS MPAC +1 # SEE IF BOTH AXES WERE WITHIN .5 DEGS. TCF DGOODCHK CS STATE # IF WITHIN LIMITS AND NO LOCK-ON WANTED, MASK LOKONBIT # PROBLEM IS FINISHED. CCS A TCF RRDESDUN CAF BIT14 # ENABLE THE TRACKER EXTEND WOR CHAN12 DGOODCHK CAF BIT4 # SEE IF DATA GOOD RECEIVED YET EXTEND RAND CHAN33 CCS A TCF DORROUT RRDESDUN CS BIT10 # WHEN PROBLEM DONE, REMOVE BIT 10 SO NEXT MASK RADMODES # WAITLIST TASK WE WILL GO TO RGOODEND. INHINT TS RADMODES TC DOWNFLAG # RESET LOSCMFLG TO PREENT A ADRES LOSCMFLG # RECOMPUTATION OF LOS AFTER DATA GOOD CS BIT2 # TURN OFF ENABLE RR ERROR COUNTER EXTEND WAND CHAN12 TCF ENDOFJOB # WITH ECTR DISABLED. DORROUT CA FLAGWRD2 # IF BOTH LOSCMFLAG AND SEARCH FLAG ARE MASK BIT12,14 # ZERO, BYPASS VELOCITY ADJUSTMENT TO LOS EXTEND BZF NOTP20 TC INTPRET VLOAD VXSC # MULTIPLY UNIT LOS BY MAGNITUDE RRTARGET MLOSV VSL1 PUSH VLOAD VXSC # ADD .5 SEC. OF VELOCITY LOSVEL # TO LOS VECTOR MCTOMS VSR1 VAD UNIT STODL RRTARGET # STORE VELOCITY-CORRECTED LOS (UNIT) # Page 552 36D STORE MLOSV # AND STORE MAGNITUDE EXIT NOTP20 INHINT CS RADMODES # PUT OUT COMMAND UNLESS MONITOR MASK REPOSBIT # REPOSITION HAS TAKEN OVER CCS A TC RROUT CA FLAGWRD2 MASK LOSCMBIT # IF LOSCMFLG NOT SET, DON'T TEST EXTEND # LOS COUNTER BZF ENDOFJOB CCS LOSCOUNT # TEST LOS COUNTER TO SEE IF TIME TO GET TC DODESEND # A NEW LOS INHINT TC KILLTASK # YES -- KILL TASK WHICH SCHEDULES DODES CADR DESLOOP +2 RELINT CCS NEWJOB TC CHANG1 TC BANKCALL CADR R21LEM2 DODESEND TS LOSCOUNT TC ENDOFJOB RDESGAIN DEC .53624 # TRIES TO NULL .5 ERROR IN .5 SEC. BIT12,14 EQUALS PRIO24 # OCT 24000 COS1/2DG 2DEC .999961923 B-2 # COSINE OF 0.5 DEGREES. MCTOMS 2DEC 100 B-13 # Page 553 # RADAR READ INITIALIZATION # # RADAR DATA READ BY A BANKCALL FOR THE APPROPRIATE LEAD-IN BELOW. LRALT TC INITREAD -1 # ONE SAMPLE PER READING. ALLREAD OCT 17 LRVELZ TC INITREAD OCT 16 LRVELY TC INITREAD OCT 15 LRVELX TC INITREAD OCT 14 RRRDOT TC INITREAD -1 OCT 12 RRRANGE TC INITREAD -1 OCT 11 # LRVEL IS THE ENTRY TO THE LR VELOCITY READ ROUTINE WHEN 5 SAMPLES ARE # WANTED. ENTER WITH C(A)= 0,2,4 FOR LRVELZ,LRVELY,LRVELX RESP. LRVEL TS TIMEHOLD # STORE VBEAM INDEX HERE MOMENTARILY CAF FIVE # SPECIFY FIVE SAMPLES INDEX TIMEHOLD TCF LRVELZ # Page 554 -1 CAF ONE # ENTRY TO TAKE ONLY 1 SAMPLE INITREAD INHINT TS TIMEHOLD # GET DT OF MIDPOINT OF NOMINAL SAMPLING EXTEND # INTERVAL (ASSUMES NO BAD SAMPLES WILL BE MP BIT3 # ENCOUNTERED). DXCH TIMEHOLD CCS A TS NSAMP AD ONE # INSERT FOLLOWING INSTRUCTION TO GET 2N TRIES FOR N SAMPLES. # DOUBLE TS SAMPLIM CAF DGBITS # READ CURRENT VALUE OF DATA GOOD BITS. EXTEND RAND CHAN33 TS OLDATAGD CS ALLREAD EXTEND WAND CHAN13 # REMOVE ALL RADAR BITS INDEX Q CAF 0 EXTEND WOR CHAN13 # SET NEW RADAR BITS EXTEND DCA TIME2 DAS TIMEHOLD # TIME OF NOMINAL MIDPOINT CAF ZERO TS L DXCH SAMPLSUM TCF ROADBACK DGBITS OCT 230 # Page 555 # RADAR RUPT READER # # THIS ROUTINE STARTS FROM A RADARUPT. IT READS THE DATA & LOTS MORE. SETLOC RADARUPT BANK COUNT* $$/RRUPT RADAREAD EXTEND # MUST SAVE SBANK BECAUSE OF RUPT EXITS ROR SUPERBNK # VIA TASKOVER (BADEND OR GOODEND). TS BANKRUPT EXTEND QXCH QRUPT CAF SEVEN EXTEND RAND CHAN13 TS DNINDEX EXTEND # IF RADAR SELECT BITS ZERO, DO NOT STORE BZF TRYCOUNT # DATA FOR DOWNLIST (ERASABLE PROBLEMS) CA RNRAD INDEX DNINDEX TS DNRRANGE -1 TRYCOUNT CCS SAMPLIM TCF PLENTY TCF NOMORE TC ALARM OCT 520 TC RESUME NOMORE CA FLGWRD11 # IS LRBYPASS SET? MASK LRBYBIT EXTEND BZF BADRAD # NO. R12 IS ON -- BYPASS 521 ALARM. CS FLAGWRD3 # CHECK R04FLAG. MASK R04FLBIT # IF 1, R04 IS RUNNING. DO NOT ALARM EXTEND BZF BADRAD TC ALARM # P20 WANTS THE ALARM. OCT 521 BADRAD CS ONE TS SAMPLIM TC RDBADEND -2 PLENTY TS SAMPLIM CAF BIT3 EXTEND RAND CHAN13 # TO FIND OUT WHICH RADAR EXTEND # Page 556 BZF RENDRAD TC R77CHECK # R77 QUITS HERE. LRPOSCHK CA RADMODES # SEE IF LR IN DESIRED POSITION EXTEND RXOR CHAN33 MASK BIT6 EXTEND BZF VELCHK TC ALARM OCT 522 TC BADRAD VELCHK CAF BIN3 # = 00003 OCT EXTEND RXOR CHAN13 # RESET ACTIVITY BIT MASK BIN3 EXTEND BZF LRHEIGHT # TAKE A LR RANGE READING CAF POSMAX MASK RNRAD AD LVELBIAS TS L CAE RNRAD DOUBLE MASK BIT1 DXCH ITEMP3 CAF BIT8 # DATA GOOD ISN'T CHECKED UNTIL AFTER READ- TC DGCHECK # ING DATA SO SOME RADAR TESTS WILL WORK # INDEPENDENT OF DATA GOOD. CCS NSAMP TC NOEND GOODRAD CS ONE TS SAMPLIM CS ITEMP1 # WHEN ENOUGH GOOD DATA HAS BEEN GATHERED, MASK RADMODES # RESET DATA FAIL FLAGS FOR SETTRKF. TS RADMODES TC RADLITES # LAMPS MAY GO OFF IF DATA JUST GOOD. TC RGOODEND -2 NOEND TS NSAMP RESAMPLE CCS SAMPLIM # SEE IF ANY MORE TRIES SHOULD BE MADE. TCF +2 TCF DATAFAIL # N SAMPLES NOT AVAILABLE. CAF BIT4 # RESET ACTIVITY BIT. EXTEND # Page 557 WOR CHAN13 # RESET ACTIVITY BIT TC RESUME LRHEIGHT CAF BIT5 TS ITEMP1 # (POSITION OF DATA GOOD BIT IN CHAN 33) CAF BIT9 TC SCALECHK -1 RENDRAD CAF REPOSBIT # MAKE SURE ANTENNA HAS NOT GONE OUT OF MASK RADMODES # LIMITS. CCS A TCF BADRAD CS RADMODES # BE SURE RR CDU HASN'T FAILED. MASK RCDUFBIT CCS A TCF BADRAD CAF BIT4 # SEE IF DATA HAS BEEN GOOD. TS ITEMP1 # (POSITION OF DATA GOOD BIT IN CHAN 33) CAF BIT1 # SEE IF RR RDOT. EXTEND RAND CHAN13 TS Q # FOR LATER TESTING. CCS A TCF +2 TCF RADIN # NO SCALE CHECK FOR RR RDOT. CAF BIT3 TS L SCALECHK EXTEND RAND CHAN33 # SCALE STATUS NOW XCH L MASK RADMODES # SCALE STATUS BEFORE EXTEND RXOR LCHAN # SEE IF THEY DIFFER CCS A TC SCALCHNG # THEY DIFFER. RADIN CAF POSMAX MASK RNRAD TS ITEMP4 CAE RNRAD DOUBLE MASK BIT1 TS ITEMP3 # Page 558 CCS Q # SEE IF RR RDOT. TCF SCALADJ # NO, BUT SCALE CHANGING MAY BE NEEDED. EXTEND # IF RR RANGE RATE, THROW OUT BIAS DCS RDOTBIAS DASAMPL DAS ITEMP3 DGCHECK2 CA ITEMP1 # SEE THAT DATA HAS BEEN GOOD BEFORE AND TC DGCHECK +1 # AFTER TAKING SAMPLE. TC GOODRAD SCALCHNG LXCH RADMODES AD BIT1 EXTEND RXOR LCHAN TS RADMODES CAF DGBITS # UPDATE LAST VALUE OF DATA GOOD BITS. EXTEND RAND CHAN33 TS OLDATAGD TC UPFLAG # SET RNGSCFLG ADRES RNGSCFLG # FOR LRS24.1 TCF BADRAD # R77 MUST IGNORE DATA FAILS SO AS NOT TO DISTURB THE ASTRONAUT. R77CHECK CS FLAGWRD5 MASK R77FLBIT CCS A TC Q # NOT R77 CS BITS5,8 # UPDATE LR DATA GOOD BITS IN RADMODES MASK RADMODES TS L CA BITS5,8 EXTEND RAND CHAN33 AD L TS RADMODES TC RGOODEND -2 BITS5,8 OCT 220 # Page 559 # THE FOLLOWING ROUTINE INCORPORATES RR RANGE AND LR ALT SCALE INFORMATION AND LEAVES DATA AT LO SCALE. SCALADJ CCS L # L HAS SCALE INBIT FOR THIS RADAR. TCF +2 # ON HIGH SCALE. TCF DGCHECK2 CA DNINDEX MASK BIT3 CCS A TCF LRSCK DXCH ITEMP3 DDOUBL DDOUBL DDOUBL DXCH ITEMP3 TCF DGCHECK2 LRSCK CCS ITEMP3 TCF +11 CS ITEMP4 AD HISCALIM EXTEND BZMF +5 CS FLGWRD11 MASK SCABBIT ADS FLGWRD11 TCF +4 CS SCABBIT MASK FLGWRD11 TS FLGWRD11 EXTEND DCA ITEMP3 DDOUBL DDOUBL TCF DASAMPL HISCALIM DEC 460 # 2481.7 FT ****************************** # Page 560 DGCHECK TS ITEMP1 # UPDATE DATA GOOD BIT IN OLDATAGD AND EXTEND # MAKE SURE IT WAS ON BEFORE AND AFTER THE RAND CHAN33 # SAMPLE WAS TAKEN BEFORE RETURNING. IF TS L # NOT, GOES TO RESAMPLE TO TRY AGAIN. IF CS ITEMP1 # MAX NUMBER OF TRIES HAS BEEN REACHED, MASK OLDATAGD # THE BIT CORRESPONDING TO THE DATA GOOD AD L # WHICH FAILED TO APPEAR IS IN ITEMP1 AND XCH OLDATAGD # CAN BE USED TO SET RADMODES WHICH VIA MASK ITEMP1 # SETTRKF SETS THE TRACKER FAIL LAMP. AD L CCS A # SHOULD BOTH BE ZERO. TC RESAMPLE DXCH ITEMP3 # IF DATA GOOD BEFORE AND AFTER, ADD TO DAS SAMPLSUM # ACCUMULATION. TC Q DATAFAIL CS ITEMP1 # IN THE ABOVE CASE, SET RADMODES BIT MASK RADMODES # SHOWING SOME RADAR DATA FAILED. AD ITEMP1 TS RADMODES DXCH ITEMP3 # IF WE HAVE BEEN UNABLE TO GATHER N DXCH SAMPLSUM # SAMPLES, USE LAST ONE ONLY. TC RADLITES TCF NOMORE # Page 561 # THIS ROUTINE CHANGES THE LR POSITION, AND CHECKS THAT IT GOT THERE. SETLOC P20S1 BANK COUNT* $$/RSUB LRPOS2 INHINT CS RADMODES MASK LRPOSBIT # SHOW DESIRED LR POSITION IS 2 ADS RADMODES CAF BIT7 EXTEND RAND CHAN33 # SEE IF ALREADY THERE. EXTEND BZF RADNOOP CAF BIT13 EXTEND WOR CHAN12 # COMMAND TO POSITION 2 CAF 6SECS # START SCANNING FOR INBIT AFTER 7 SECS. TC WAITLIST EBANK= LOSCOUNT 2CADR LRPOSCAN TC ROADBACK LRPOSNXT TS SAMPLIM TC FIXDELAY # SCAN ONCE PER SECOND 15 TIMES MAX AFTER DEC 100 # INITIAL DELAY OF 7 SECONDS. CAF BIT7 # SEE IF LR POS2 IS ON EXTEND RAND CHAN33 EXTEND BZF LASTLRDT # IF THERE, WAIT FINAL SECOND FOR BOUNCE. CCS SAMPLIM # SEE IF MAX TIME UP. TCF LRPOSNXT CS BIT13 # IF TIME UP, DISABLE COMMAND AND ALARM. EXTEND WAND CHAN12 TCF RDBADEND RADNOOP CAF ONE # NO FURTHER ACTION REQUESTED. TC WAITLIST EBANK= LOSCOUNT 2CADR RGOODEND # Page 562 TC ROADBACK LASTLRDT CA 2SECS # WAIT TWO SECONDS AFTER RECEIPT OF INBIT TC VARDELAY # TO WAIT FOR ANTENNA BOUNCE TO DIE OUT. CS BIT13 # REMOVE COMMAND EXTEND WAND CHAN12 TCF RGOODEND LRPOSCAN CAF FOURTEEN # SET UP FOR 15 SAMPLES. TCF LRPOSNXT 6SECS DEC 600 # Page 563 # SEQUENCES TO TERMINATE RR OPERATIONS. ENDRADAR CAF RCDUFBIT # PROLOG TO CHECK RR CDU FAIL BEFORE END. MASK RADMODES CCS A TCF RGOODEND TCF RDBADEND -2 CS ZERO # RGOODEND WHEN NOT UNDER WAITLIST CONTROL TS RUPTAGN RGOODEND CAF TWO TC POSTJUMP CADR GOODEND -2 CS ZERO # RDBADEND WHEN NOT UNDER WIATLIST. TS RUPTAGN RDBADEND CAF TWO TC POSTJUMP CADR BADEND BIN3 EQUALS THREE # Page 564 # PROGRAM NAME: LPS20.1 VECTOR EXTRAPOLATION AND LOS COMPUTATION # MOD. NO. 2 BY J.D. COYNE SDC DATE 12-7-66 # # FUNCTIONAL DESCRPIPTION: # 1) EXTRAPOLATE THE LEM AND CSM VECTORS IN ACCORDANCE WITH THE TIME REFERRED TO IN CALLER + 1. # 2) COMPUTES THE LOS VECTOR TO THE CSM, CONVERTS IT TO STABLE MEMBER COORDINATES AND STORES IT IN RRTARGET. # 3) COMPUTES THE MAGNITUDE OF TEH LOS VECTOR AND STORES IT IN MLOSV # # CALLING SEQUENCE: CALL # LPS20.1 # # SUBROUTINES CALLED: # LEMPREC, CSMPREC # # NORMAL EXIT: RETURN TO CALLER + 2. # # ERROR EXITS: NONE # # ALARMS: NONE # # OUTPUT: # LOS VECTOR (HALF UNIT) IN SM COORDINATES STORED IN RRTARGET # MAGNITUDE OF TEH LOS VECTOR (METERS SCALED B-29) STORED IN MSLOV # RRNBSW CLEARED. # # INITIALIZED ERASABLE # TDEC1 MUST CONTAIN THE TIME FOR EXTRAPOLATION # SEE ORBITAL INTEGRATION ROUTINE # # DEBRIS: # MPAC DESTROYED BY THE ROUTINE BANK 23 SETLOC P20S BANK # Page 565 COUNT* $$/LPS20 LPS20.1 STQ BOFF LS21X LOSCMFLG # LOSCMFLG = 0 MEANS NOT CALLED BY R21 LMINT # SO CALL LEMCONIC TO GET LM STATE BON # IF IN R21 AND ON LUNAR SURFACE SURFFLAG # DON'T CALL LEMCONIC CSMINT LMINT CALL LEMCONIC # EXTRAPOLATE LEM VLOAD RATT STOVL LMPOS # SAVE LM POSITION B-29 VATT STODL LMVEL # SAVE LM VELOCITY B-7 TAT CSMINT STCALL TDEC1 CSMCONIC # EXTRAPOLATE CSM VLOAD VSU # COMPUTE RELATIVE VELOCITY V(CSM) - V(LM) VATT LMVEL MXV VSL1 REFSMMAT EXIT TC KILLTASK # KILL THE TASK WHICH CALLS DODES SINCE CADR DESLOOP +2 # STORING INTO ERASEABLES DODES USES TC INTPRET STOVL LOSVEL RATT VSU BOFF LMPOS RNDVZFLG NOTSHIFT BOVB TCDANZIG VSL 9D NOTSHIFT UNIT BOVB # IF OVERFLOW, RANGE MUST BE GREATER 526ALARM # THAN 400 N. M. MXV VSL1 REFSMMAT # CONVERT TO STABLE MEMBER STODL RRTARGET 36D # SAVE MAGNITUDE OF LOS VECTOR FOR STORE MLOSV # VELOCITY CORRECTION IN DESIGNATE CLRGO RRNBSW LS21X # Page 566 # PROGRAM NAME: LPS20.2 400 NM RANGE CHECK # MOD. NO. 2 BY J.D. COYNE SDC DATE 12-7-66 # # FUNCTIONAL DESCRIPTION: # COMPARES THE MAGNITUDE OF THE LOS VECTOR TO 400 NM. # # CALLING SEQUENCE: CALL # LPS20.2 # # SUBROUTINES CALLED: NONE # # NORMAL EXIT: RETURN TO CALLER +1, MPAC EQ 0 (RANGE 400NM OR LESS.) # # ERROR EXITS: RETURN TO CALLER +1, MPAC EQ 1 (RANGE GREATER THAN 400NM) # # ALARMS: NONE # # OUTPUT: NONE # # INITIALIZED ERASEABLE: # PDL 36D MUST CONTAIN THE MAGNITUDE OF THE VECTOR # # DEBRIS: # MPAC DESTROYED BY THIS ROUTINE SETLOC P20S1 BANK COUNT* $$/LPS20 LPS20.2 DLOAD DSU MLOSV # MAGNITUDE OF LOS FHNM # OVER 400NM BPL TOFAR SLOAD RVQ ZERO/SP TOFAR SLOAD RVQ ONE/SP ONE/SP DEC 1 # Page 567 FHNM 2DEC 740800 B-20 # 400 NAUTICAL MILES IN METERS B-20 # Page 568 # PROGRAM NAME: LRS22.1 (DATA READ SUBROUTINE 1) # MOD. NO.: 1 BY: P. VOLANTE SDC DATE: 11-15-66 # # FUNCTIONAL DESCRIPTION: # 1) READS RENDEZVOUS RADAR RANGE AND RANGE-RATE, TRUNNION AND SHAFT ANGLES, THREE CDU VALUES AND TIME. CONVERTS THIS # DATA AND LEAVES IT FOR THE MEASUREMENT INCORPORATION ROUTINE (LSR22.3). CHECKS FOR THE RR DATA GOOD DISCRETE, FOR # RR REPOSITION AND RR CDU FAIL # 2) COMPARES RADAR LOS WITH LOS COMPUTED FROM STATE VECTORS TO SEE IF THEY ARE WITHIN THREE DEGREES # # CALLING SEQUENCE: BANKCALL FOR LRS22.1 # # SUBROUTINES CALLED: # RRDOT LPS20.1 # RRRANGE BANKCALL # RADSTALL CDULOGIC # RRNB SMNB # # NORMAL EXIT: RETURN TO CALLER+1 WITH MPAC SET TO +0 # # ERROR EXITS: RETURN TO CALLER+1 WITH ERROR CODE STORED IN MPAC AS FOLLOWS: # 00001 -- ERROR EXIT 1 -- RR DATA NO GOOD (NO RR DATA GOOD DISCRETE OR RR CDU FAIL OR RR REPOSITION) # 00002 -- ERROR EXIT 2 -- RR LOS NOT WITHIN THREE DEGREES OF LOS COMPUTED FROM STATE VECTORS # # ALARMS: 521 -- COULD NOT READ RADAR DATA (RR DATA GOOD DISCRETE NOT PRESENT BEFORE AND AFTER READING THE RADAR) # (THIS ALARM IS ISSUED BY RADARREAD SUBROUTINE WHICH IS ENTERED FROM A RADARUPT) # # OUTPUT: RRLOSVEC -- THE RR LINE-OF-SIGHT VECTOR (USED BY LRS22.2) -- A HALF-UNIT VECTOR # RM -- THE RR RANGE READING (TO THE CSM) DP, IN METERS SCALED BY B-29 (USED BY LRS22.2 AND LRS22.3) # # ALL OF THE FOLLOWING OUTPUTS ARE USED BY LRS22.3: # RDOTM -- THE RR RANGE-RATE READING, DP, IN METERS PER CENTISECOND, SCALED BY B-7 # RRTRUN -- THE RR TRUNNION ANGLE, DP, IN REVOLUTIONS, SCALED B0 # RRSHAFT -- RR SHAFT ANGLE, DP, IN REVOLUTIONS, SCALED B0 # AIG,AMG,AOG -- THE CDU ANGLES, THREE SP WORDS # MKTIME -- THE TIME OF THE RR READING, DP, IN CENTISECONDS # # ERASABLE INITIALIZATION REQUIRED: # RNRAD, THE RADAR READ COUNTER FROM WHICH IS OBTAINED: # Page 569 # 1) RR RANGE SCALED 9.38 FT. PER BIT ON THE LOW SCALE AND 75.04 FT. PER BIT ON THE HIGH SCALE # 2) RR RANGE RATE, SCALED .6278 FT./SEC. PER BIT # THE CDU ANGLES FROM CDUX, CDUY, CDUZ, AND TIME1 AND TIME2 # # DEBRIS: LRS22.1X, A, L, Q, PUSHLIST BANK 32 SETLOC LRS22 BANK COUNT* $$/LRS22 LRS22.1 TC MAKECADR TS LRS22.1X TC DOWNFLAG ADRES RNGSCFLG INHINT CAF BIT3 EXTEND # GET RR RANGE SCALE RAND CHAN33 # FROM CHANNEL 33 BIT 3 TS L CS RRRSBIT MASK RADMODES AD L TS RADMODES RELINT READRDOT TC BANKCALL CADR RRRDOT # READ RANGE-RATE (ONE SAMPLE) TC BANKCALL CADR RADSTALL # WAIT FOR DATA READ COMPLETION TCF EREXIT1 # COULD NOT READ RADAR-ERROR EXIT 1 INHINT # NO INTERRUPTS WHILE READING TIME AND CDU DXCH TIMEHOLD # SET MARK TIME EQUAL TO THE MID-POINT DXCH MPAC +5 # TEMP BUFFER FOR DOWNLINK DXCH SAMPLSUM # SAVE RANGE-RATE READING DXCH RDOTMSAV EXTEND DCA CDUY # SAVE ICDU ANGLES DXCH MPAC +3 # TEMP BUFFER FOR DOWNLINK CA CDUX TS MPAC +2 # TEMP BUFFER FOR DOWNLINK EXTEND DCA TIME2 # SAVE TIME DXCH MPAC # SAVE TIME OF CDUY READINGS IN MPAC EXTEND DCA CDUT # SAVE TRUNNION AND SHAFT ANGLES FOR RRNB DXCH TANG # Page 570 RELINT TC BANKCALL CADR RRRANGE # READ RR RANGE (ONE SAMPLE) TC BANKCALL CADR RADSTALL # WAIT FOR READ COMPLETE TC CHEXERR # CHECK FOR ERRORS DURING READ INHINT # COPY CYCLE FOR MARK DATA ON DOWNLINK DXCH DNRRANGE # RANGE, RANGE RATE (RAW DATA) DXCH RANGRDOT DXCH MPAC +5 DXCH MKTIME # MARK TIME DXCH MPAC +3 DXCH AIG # CDUY, CDUZ EXTEND DCA TANG # PRESERVE TANG DXCH TANGNB # TRUNNION AND SHAFT ANGLES CA MPAC +2 TS AOG # CDUX TC INTPRET STODL 20D # SAVE TIME OF CDU READINGS IN 20D RDOTMSAV # CONVERT RDOT UNITS AND SCALING SL DMPR # START WITH READING SCALED B-28, -.6278 14D # FT./SECOND PER BIT RDOTCONV # END WITH METERS/CENTISECOND, B-7 STORE RDOTM SLOAD RTB TANG # GET TRUNNION ANGLE CDULOGIC # CONVERT TO DP ONES COMP. IN REVOLUTIOINS STORE RRTRUN # AND SAVE FOR TMI ROUTINE (LSR22.3) SLOAD RTB TANG +1 # DITTO FOR SHAFT ANGLE CDULOGIC STODL RRSHAFT SAMPLSUM DMP SL2R # CONVERT UNITS AND SCALING DP RANGE RANGCONV # PER BIT, END WITH METERS, SCALED -29 STCALL RM RRNB # COMPUTE RADAR LOS USING RRNB STODL RRBORSIT # AND SAVE 20D STCALL TDEC1 # GET STATE VECTOR LOS AT TIME OF CDU READ LPS20.1 EXIT CA AIG # STORE IMU CDU ANGLES AT MARKTIME TS CDUSPOT # IN CDUSPOT FOR TRG*SMNB CA AMG TS CDUSPOT +2 CA AOG TS CDUSPOT +4 TC INTPRET # Page 571 VLOAD CALL # LOAD VECTOR AND CALL TRANSFORMATION RRTARGET TRG*SMNB # ROTATE LOS AT MARKTIME FROM SM TO NB. DOT # DOT WITH RADAR LOS TO GET ANGLE RRBORSIT SL1 ACOS # BETWEEN THEM STORE DSPTEM1 # STORE FOR POSSIBLE DISPLAY DSU BMN # IS IT LESS THAN 3 DEGREES THREEDEG NORMEXIT # YES -- NORMAL EXIT EXIT # ERROR EXIT 2 CAF BIT2 # SET ERROR CODE TS MPAC TCF OUT22.1 NORMEXIT EXIT # NORMAL EXIT -- SET MPAC EQUAL ZERO CAF ZERO TS MPAC OUT22.1 CAE LRS22.1X # EXIT FROM LRS22.1 TC BANKJUMP CHEXERR CAE FLAGWRD5 MASK RNGSCBIT CCS A # CHECK IF RANGE SCALE CHANGED TCF READRDOT # YES -- TAKE ANOTHER READING EREXIT1 CA BIT1 # SET ERROR CODE TS MPAC TC OUT22.1 THREEDEG 2DEC .008333333 # THREE DEGREES, SCALED REVS, B0 RRLOSVEC EQUALS RRTARGET # Page 572 # PROGRAM NAME -- LRS22.2 (DATA READ SUBROUTINE 2) # MOD. NO.: 1 BY: P. VOLANTE SDC DATE: 4-11-67 # # FUNCTIONAL DESCRIPTION: # (Yes, I know point #1 is missing. It is missing from the program listing -- RSB 2003) # 2) CHECKS IF THE RR LOS (I.E., THE RADAR BORESIGHT VECTOR) IS WITHIN 30 DEGREES OF THE LM +Z AXIS # # CALLING SEQUENCE: BANKCALL FOR LRS22.2 # # SUBROUTINES CALLED: G+N, AUTO, SETMAXDB # # NORMAL EXIT: RETURN TO CALLER WITH MPAC SET TO +0 (VIA SWRETURN) # # ERROR EXIT: RETURN TO CALLER WITH MPAC SET TO 00001 -- RADAR LOS NOT WITHIN 30 DEGREES OF LM +Z AXIS. # # ALARMS: NONE # # ERASABLE INITIALIZATION REQUIRED: # RRLOSVEC -- THE RR LINE-OF-SIGHT VECTOR -- A HALF UNIT VECTOR COMPUTED BY LRS22.1 # RM -- RR RANGE, METERS B-29, FROM LRS22.1 # BIT 14 CHANNEL 31 -- INDICATES AUTOPILOT IS IN AUTO MODE # # DEBRIS -- A,L,Q,MPAC -- PUSHLIST AND PUSHLOC ARE NOT CHANGED BY THIS ROUTINE SETLOC P20S BANK LRS22.2 TC MAKECADR TS LRS22.1X TC INTPRET # CHECK IF RR LOS IS WITHIN 30 DEG OF 30DEGCHK DLOAD ACOS # THE SPACECRAFT +Z AXIT RRBORSIT +4 # BY TAKING ARCCOS OF Z-COMP. OF THE RR # LOS VECTOR, A HALF UNIT VECTOR # IN NAV BASE AXES) DSU BMN 30DEG OKEXIT # NORMAL EXIT -- WITHIN 30 DEG. EXIT # ERROR EXIT -- NOT WITHIN 30 DEG. CAF BIT1 # SETS ERROR CODE IN MPAC TS MPAC TCF OUT22.2 OKEXIT EXIT # NORMAL EXIT -- SET MPAC = ZERO # Page 573 CAF ZERO TS MPAC OUT22.2 CAE LRS22.1X TC BANKJUMP 30DEG 2DEC .083333333 # THIRTY DEGREES, SCALED REVS, B0 # Page 574 # PROGRAM NAME -- LSR22.3 DATE -- 29 MAY 1967 # MOD. NO 3 LOG SECTION -- P20-P25 # MOD. BY -- DANFORTH ASSEMBLY LEMP20S REV 10 # # FUNCTIONAL DESCRIPTION: # THIS ROUTINE COMPUTES THE B-VECTORS ADN DELTA Q FOR EACH OF THE QUANTITIES MEASURED BY THE RENDEZVOUS # RADAR. (RANGE, RANGE RATE, SHAFT AND TRUNNION ANGLES). THE ROUTINE CALLS THE INCORP1 AND INCORP2 ROUTINES # WHICH COMPUTE THE DEVIATIONS AND CORRECT THE STATE VECTOR. # # CALLING SEQUENCE: # THIS ROUTINE IS PART OF P20 RENDEZVOUS NAVIGATION FOR THE LM COMPUTER ONLY. THE ROUTINE IS ENTERED FROM # R22 LEM ONLY AND RETURNS DIRECTLY TO R22LEM FOLLOWING SUCCESSFUL INCORPORATION OF MEASURED DATA. IF THE # COMPUTED STATE VECTOR DEVATIONS EXCEED THE MAXIMUM PERMITTED. THE ROUTINE RETURNS TO R22LEM TO DISPLAY # THE DEVIATIONS. IF THE ASTRONAUT ACCEPTS THE DATA R22LEM RETURNS TO LSR22.3 TO INCORPORATE THE # DEVIATIONS INTO THE STATE VECTOR. IF THE ASTRONAUT REJECTS THE DEVIATIONS, NO MORE MEASUREMENTS ARE # PROCESSED FOR THIS MARK, I.E., R22LEM GETS THE NEXT MARK. # # SUBROUTINES CALLED: # WLINIT LGCUPDTE INTEGRV INCORP1 ARCTAN # GETULC RADARANG INCORP2 NBSM INTSTALL # # OUTPUT: # CORRECTED LM OR CSM STATE VECTOR (PERMANENT) # NUMBER OF MARKS INCORPORATED IN MARKCTR # MAGNITUDE OF POSITION DEVIATION (FOR DISPLAY) IN R22DISP METERS B-29 # MAGNITUDE OF VELOCITY DEVIATION (FOR DISPLAY) IN R22DISP +2 M/CSEC B-7 # UPDATED W-MATRIX # # ERASABLE INITIALIZATION REQUIRED: # LM AND CSM STATE VECTORS # W-MATRIX # MARK TIME IN MKTIME # RADAR RANGE IN RM METERS B-29 # RANGE RATE IN RDOTM METERS/CSES B-7 # SHAFT ANGLE IN RRSHAFT REVS. B0 # TRUNNION ANGLE IN RRTRUN REVS. B0 # GIMBAL ANGLES INNER IN AIG # MIDDLE IN AMG # OUTER IN ACG # REFSMMAT # RENDWFLG # NOANGFLG # VEHUPFLG # # DEBRIS: # PUSHLIST -- ALL # MX, MY, MZ (VECTORS) # Page 575 # ULC, RXZ, SINTHETA, LGRET, RDRET, BVECTOR, W.IND, X78T BANK 13 SETLOC P20S3 BANK EBANK= LOSCOUNT COUNT* $$/LSR22 LSR22.3 CALL GRP2PC BON SET SURFFLAG # ARE WE ON LUNAR SURFACE LSR22.4 # YES DMENFLG BOFF CALL VEHUPFLG DOLEM INTSTALL CLEAR CALL # LM PRECISION INTEGRATION VINTFLAG SETIFLGS CALL INTGRCAL CALL GRP2PC CALL INTSTALL CLEAR BOFF DIM0FLAG RENDWFLG NOTWCSM SET SET # CSM WITH W-MATRIX INTEGRATION DIM0FLAG D6OR9FLG NOTWCSM SET CLEAR VINTFLAG INTYPFLG SET CALL STATEFLG INTGRCAL GOTO MARKTEST DOLEM CALL INTSTALL SET CALL VINTFLAG SETIFLGS CALL INTGRCAL # Page 576 CALL GRP2PC CALL INTSTALL CLEAR BOFF DIM0FLAG RENDWFLG NOTWLEM SET SET # LM WITH W-MATRIX INTEGRATION DIM0FLAG D6OR9FLG NOTWLEM CLEAR CLEAR INTYPFLG VINTFLAG SET CALL STATEFLG INTGRCAL MARKTEST BON CALL # HAS W-MATRIX BEEN INVALIDATED RENDWFLG # HAS W-MATRIX BEEN INVALIDATED RANGEBQ WLINIT # YES -- REINITIALIZE RANGEBQ BON EXIT # DON'T CALL R65 IF ON SURFACE SURFFLAG RANGEBQ1 CA ZERO TS R65CNTR TC BANKCALL CADR R65LEM TC INTPRET RANGEBQ1 AXT,2 BON # CLEAR X2 0 LMOONFLG # IS MOON SPHERE OF INFLUENCE SETX2 # YES. STORE ZERO IN SCALSHFT REGISTER INCR,2 2 SETX2 SXA,2 CALL SCALSHFT # 0 -- MOON. 2 -- EARTH. GRP2PC AXT,1 SXA,1 # STORE RANGE CODE (1) FOR R3 IN NOUN 49 1 WHCHREAD SLOAD SR # GET SINGLE PRECISION RVARMIN (B-12) RVARMIN # SHIFT TO TRIPLE PRECISION (B-40) 28D RTB TPMODE # AND SAVE IN 20D STORE 20D CALL # BEGIN COMPUTING THE B-VECTORS, DELTAQ GETULC # B-VECTORS FOR RANGE BON VCOMP # B0, COMP. IF LM BEING CORRECTED # Page 577 VEHUPFLG +1 STOVL BVECTOR ZEROVECS STORE BVECTOR +6 # B1 STODL BVECTOR +12D # B2 36D SRR* BDSU 2,2 # SHIFT FROM EARTH/MOON SPHERE TO B-29 RM # RM - (MAGNITUDE RCSM-RLM) SLR* 2,2 # SHIFT TO EARTH/MOON SPHERE STODL DELTAQ # EARTH B-29. MOON B-27 36D # RLC B-29/B-27 NORM DSQ # NORMALIZE AND SQUARE X1 DMP SR* RANGEVAR # MULTIPLY BY RANGEVAR (B12) THEN 0 -2,1 # UNNORMALIZE SR* SR* 0,1 0,2 SR* RTB 0,2 TPMODE STORE VARIANCE # B-40 DCOMP TAD 20D # B-40 BMN TLOAD QOK 20D # B-40 STORE VARIANCE QOK CALL LGCUPDTE SSP CALL WHCHREAD DEC 2 # STORE R-RATE CODE (2) FOR R3 IN NOUN 49 GRP2PC CALL # B-VECTOR, DELTAQ FOR RANGE RATE GETULC PDDL SR* # GET RLC SCALED B-29/B-27 36D # AND SHIFT TO B-23 0 -4,2 STOVL 36D # THEN STORE BACK IN 36D BON VCOMP # B1, COMP. IF LM BEING CORRECTED VEHUPFLG +1 VXSC 36D # B1 = RLC (B-24/B-22) # Page 578 STOVL BVECTOR +6 NUVLEM VSR* VAD 6,2 # SHIFT FOR EARTH/MOON SPHERE VCVLEM # EARTH B-7. MOON B-5 PDVL VSR* # VL TO PD6 NUVCSM 6,2 # SHIFT FOR EARTH/MOON SPHERE VAD VSU VCVCSM PDVL DOT # VC - VL = VLC TO PD6 0 6 PUSH SRR* # RDOT B-8/B-6 TO PD12 2,2 # SHIFT FROM EARTH/MOON SPHERE TO B-8 DSQ DMPR # RDOT**2 B-16 X RATEVAR B12 RATEVAR STORE VARIANCE SLOAD SR VVARMIN # GET SINGLE PRECISION VVARMIN (B+12) 16D # SHIFT TO DP (B-4) STORE 24D # AND SAVE IN 24D DSU BMN # IS MIN. VARIANCE > COMPUTED VARIANCE VARIANCE VOK # BRANCH -- NO DLOAD # YES -- USE MINIMUM VARIANCE 24D STORE VARIANCE VOK DLOAD SR2 # RDOT (PD12) FROM B-8/B-6 PDDL SLR* # TO B-10/B-8 RDOTM # SHIFT TO EARTH/MOON SPHERE 0 -1,2 # B-7 TO B-10/B-8 DSU DMPR 36D STOVL DELTAQ # B-33 0 # NOW GET B0 VXV VXV # (ULC X VLC) X ULC BON VCOMP # B0, COMP. IF LM BEING CORRECTED VEHUPFLG +1 VSR* 0 -2,2 # SCALED B-5 STOVL BVECTOR ZEROVECS STORE 20D # ZERO OUT 20 TO 25 IN PUSHLIST STOVL BVECTOR +12D BVECTOR ABVAL NORM # LOAD B0, GET MAGNITUDE AND NORMALIZE 20D # SHIFT COUNT IN 20D # Page 579 VLOAD ABVAL BVECTOR +6D # LOAD B1, GET MAGNITUDE AND NORMALIZE NORM DLOAD 22D # SHIFT COUNT IN 22D 22D # FIND WHICH SHIFT IS SMALLER DSU BMN # BRANCH -- B0 HAS A SMALLER SHIFT COUNT 20D VOK1 LXA,1 GOTO 22D # LOAD X2 WITH THE SMALLER SHIFT COUNT VOK2 VOK1 LXA,1 20D VOK2 VLOAD VSL* # THEN ADJUST B0, B1, DELTAQ AND VARIANCE BVECTOR # WITH THI SSHIFT COUNT 0,1 STOVL BVECTOR BVECTOR +6 VSL* 0,1 STODL BVECTOR +6 DELTAQ SL* 0,1 STORE DELTAQ DLOAD SL* # GET RLC AND ADJUST FOR SCALE SHIFT 36D 0 -1,1 DSQ DMP # MULTIPLY RLC**2 BY VARIANCE VARIANCE SL4 RTB # SHIFT TO CONFORM TO BVECTORS AND DELTAQ TPMODE STCALL VARIANCE # AND STORE TP VARIANCE LGCUPDTE CALL GRP2PC BON EXIT # ARE ANGLES TO BE DONE SURFFLAG RENDEND # NO EBANK= AIG MXMYMZ CAF AIGBANK TS BBANK CA AIG # YES, COMPUTE MX, MY, MZ TS CDUSPOT CA AMG TS CDUSPOT +2 CA AOG TS CDUSPOT +4 # GIMBAL ANGLES NOW IN CDUSPOT FOR TRG*NBSM TC INTPRET # Page 580 VLOAD CALL UNITX TRG*NBSM VXM VSL1 REFSMMAT STOVL MX UNITY CALL *NBSM* VXM VSL1 REFSMMAT STOVL MY UNITZ CALL *NBSM* VXM VSL1 REFSMMAT SHAFTBQ STCALL MZ RADARANG SSP CALL # STORE SHAFT CODE (3) FOR R3 IN NOUN 49 WHCHREAD DEC 3 GRP2PC VLOAD DOT # COMPUTE DELTAQ,B VECTORS FOR SHAFT ANG. ULC MX SL1 STOVL SINTH # 18D ULC DOT SL1 MZ STCALL COSTH # 16D ARCTAN BDSU DMP RRSHAFT 2PI/8 SL3R PUSH DLOAD SL3 X789 SRR* BDSU # SHIFT FROM -5/-3 TO B0 0,2 DMP SRR* RXZ 0,1 # SHIFT TO EARTH/MOON SPHERE STOVL DELTAQ # EARTH B-29. MOON B-27 ULC VXV VSL1 MY UNIT BOFF VCOMP # B0, COMP. IF CSM BEING CORRECTED # Page 581 VEHUPFLG +1 STOVL BVECTOR ZEROVECS STORE BVECTOR +6 STODL BVECTOR +12D RXZ SR* SRR* # SHIFT FROM EARTH/MOON SPHERE TO B-25 0 -2,1 0,2 STORE BVECTOR +12D SLOAD SHAFTVAR DAD DMP IMUVAR # RAD**2 B12 RXZ SRR* DMP 0,1 # SHIFT TO EARTH/MOON SPHERE RXZ SR* SR* 0 -2,1 0,2 SR* RTB 0,2 TPMODE # STORE VARIANCE TRIPLE PRECISION STCALL VARIANCE # B-40 LGCUPDTE CALL GRP2PC TRUNBQ CALL RADARANG SSP CALL # STORE TRUNNION CODE (4) FOR R3 IN N49 WHCHREAD DEC 4 GRP2PC VLOAD VXV ULC MY VSL1 VXV ULC VSL1 # (ULC X MY) X ULC BOFF VCOMP # B0, COMP. IF CSM BEING CORRECTED VEHUPFLG +1 STOVL BVECTOR ZEROVECS STORE BVECTOR +6 STODL BVECTOR +12D RXZ # Page 582 SR* SRR* # SHIFT FROM EARTH/MOON SPHERE TO B-25 0 -2,1 0,2 STORE BVECTOR +14D SLOAD TRUNVAR DAD DMP IMUVAR RXZ SRR* DMP 0,1 # SHIFT TO EARTH/MOON SPHERE RXZ SR* SR* 0 -2,1 0,2 SR* RTB 0,2 TPMODE # STORE VARIANCE TRIPLE PRECISION STODL VARIANCE SINTHETA ASIN BDSU # SIN THETA IN PD6 RRTRUN DMP SL3R 2PI/8 PDDL SL3 X789 +2 SRR* BDSU # SHIFT FROM -5/-3 TO B0 0,2 DMP SRR* RXZ 0,1 STCALL DELTAQ # EARTH B-29. MOON B-27 LGCUPDTE CALL GRP2PC RENDEND GOTO R22LEM93 # FUNCTIONAL DESCRIPTION: # LSR22.4 IS THE ENTRY TO PERFORM LUNAR SURFACE NAVIGATION FOR THE LM # COMPUTER ONLY. THIS ROUTINE COMPUTES THE BE-VECTORS AND DELTA Q FOR RANGE # AND RANGE RATE MEASURED BY THE RENDEZVOUS RADAR # # SUBROUTINES CALLED: # INTSTALL LGCUPDTE INCORP1 RP-TO-R # INTEGRV GETULC INCORP2 # # OUTPUT # CORRECTED CSM STATE VECTOR (PERMANENT) # NUMBER OF MARKS INCORPORATED IN MARKCTR # Page 583 # MAGNITUDE OF POSITION DEVIATION (FOR DISPLAY) IN R22 DISP METERS B-29 # MAGNITUDE OF VELOCITY DEVIATION (FOR DISPLAY) IN R22DISP +2 M/CSEC B-7 # UPDATED W-MATRIX # ERASABLE INITIALIZATION REQUIRED # LM AND CSM STATE VECTORS # W-MATRIX # MARK TIME IN MKTIME # RADAR RANGE IN RM METERS B-29 # RANGE RATE IN RDOTM METERS/CSEC B-7 # VEHUPFLG LSR22.4 CALL INTSTALL SET CLEAR STATEFLG VINTFLAG # CALL TO GET LM POS + VEL IN REF COORD. CALL INTGRCAL CALL GRP2PC CLEAR CALL DMENFLG # SET MATRIX SIZE TO 6X6 FOR INCORP INTSTALL DLOAD BHIZ # IS THIS FIRST TIME THROUGH MARKCTR INITWMX6 # YES, INITIALIZE 6X6 W-MATRIX CLEAR SET D6OR9FLG DIM0FLAG SET CLEAR VINTFLAG INTYPFLG CALL INTGRCAL GOTO RANGEBQ INITWMX6 CALL WLINIT # INITIALIZE W-MATRIX SET CALL VINTFLAG SETIFLGS CALL INTGRCAL GOTO RANGEBQ # THIS ROUTINE CLEARS RFINAL (DP) AND CALLS INTEGRV # Page 584 INTGRCAL STQ DLOAD IGRET MKTIME STCALL TDEC1 INTEGRV GOTO IGRET # THIS ROUTINE INITIALIZES THE W-MATRIX BY ZEROING ALL W THEN SETTING # DIAGONAL ELEMENTS TO INITIAL STORED VALUES. EBANK= W WLINIT EXIT CAF WBANK TS BBANK CAF WSIZE TS W.IND CAF ZERO INDEX W.IND TS W CCS W.IND TC -5 CAF AIGBANK # RESTORE EBANK 7 TS BBANK TC INTPRET BON SLOAD # IF ON LUNAR SURFACE, INITIALIZE WITH SURFFLAG # WSURFPOS AND WSURFVEL INSTEAD OF WLSRFPOS # WRENDPOS AND WRENDVEL WRENDPOS GOTO WPOSTORE WLSRFPOS SLOAD WSURFPOS WPOSTORE SR # SHIFT TO B-19 SCALE 5 STORE W STORE W +8D STORE W +16D BON SLOAD SURFFLAG WLSRFVEL WRENDVEL GOTO WVELSTOR WLSRFVEL SLOAD WSURFVEL WVELSTOR STORE W +72D STORE W +80D STORE W +88D SLOAD # Page 585 WSHAFT STORE W +144D SLOAD WTRUN STORE W +152D SET SSP # SET RENDWFLG -- W-MATRIX VALID RENDWFLG MARKCTR # SET MARK COUNTER EQUAL ZERO 0 RVQ EBANK= W WBANK BBCON WLINIT EBANK= AIG AIGBANK BBCON LSR22.3 # GETULC # # THIS SUBROUTINE COMPUTES THE RELATIVE POSITION VECTOR BETWEEN THE CSM # AND THE LM, LEAVING THE UNIT VECTOR IN THE PUSHLIST AND MPAC AND THE # MAGNITUDE IN 36D. GETULC SETPD VLOAD 0 DELTALEM LXA,2 SCALSHFT # LOAD X2 WITH SCALE SHIFT VSR* VAD 9D,2 # SHIFT FOR EARTH/MOON SPHERE RCVLEM PDVL VSR* DELTACSM 9D,2 # SHIFT FOR EARTH/MOON SPHERE VAD VSU RCVCSM RTB PUSH # USE NORMUNIT TO PRESERVE ACCURACY NORMUNX1 STODL ULC 36D SL* # ADJUST MAGNITUDE FROM NORMUNIT 0,1 STOVL 36D # ULC IN PD0 AND MPAC,RLC IN 36D ULC RVQ # RADARANG # # THIS SUBROUTINE COMPUTS SINTHETA = -ULC DOT MY # RXZ = (SQRT (1-SINTHETA**2))RLC # OUTPUT # ULC IN ULC, PD0 # Page 586 # RLC IN PD36D # SIN THETA IN SINTHETA AND PD6 # RXZ NORM IN RXZ (N IN X1) RADARANG STQ CALL RDRET GETULC VCOMP DOT MY SL1R PUSH # SIN THETA TO PD6 STORE SINTHETA DSQ BDSU DP1/4TH # 1-(SIN THETA)**2 SQRT DMP 36D SL1 NORM X1 # SET SHIFT COUNTER IN X1 STORE RXZ GOTO # EXIT RDRET LGCUPDTE STQ CALL LGRET INCORP1 VLOAD ABVAL DELTAX +6 LXA,2 SRR* SCALSHFT # 0 -- MOON. 2 -- EARTH 2,2 # SET VEL DISPLAY TO B-7 STOVL R22DISP +2 DELTAX ABVAL SRR* 2,2 # SET POS DISPLAY TO B-29 STORE R22DISP SLOAD SR RMAX 10D DSU BMN R22DISP R22LEM96 # GO DISPLAY SLOAD DSU VMAX R22DISP +2 # VMAX MINUS VEL. DEVIATION BMN R22LEM96 # GO DISPLAY ASTOK CALL INCORP2 GOTO LGRET IMUVAR 2DEC E-6 B12 # RAD**2 WSIZE DEC 161 # Page 587 2PI/8 2DEC 3.141592653 B-2 EBANK= LOSCOUNT # Page 588 # PROGRAM NAME LRS24.1 RR SEARCH ROUTINE # MCD NO. 0 BY P. VOLANTE, SDC DATE 1-15-67 # # FUNCTIONAL DESCRIPTION # # DRIVES THE RENDEZVOUS RADAR IN A HEXAGONAL SEARCH PATTERN ABOUT THE LOS TO THE CSM (COMPUTED FROM THE CSM AND LM # STATE VECTORS) CHECKING FOR THE DATA GOOD DISCRETE AND MONITORING THE ANGLE BETWEEN THE RADAR BORESIGHT AND THE # LM +Z AXIS. IF THIS ANGLE EXCEEDS 30 DEGREES THE PREFERRED TRACKING ATTITUDE ROUTINE IS CALLED TO PERFORM AN # ATTITUDE MANEUVER. # # CALLING SEQUENCE -- BANKCALL FOR LRS24.1 # # SUBROUTINES CALLED # # LEMCONIC R61LEM # CSMCONIC RRDESSM # JOBDELAY FLAGDOWN # WAITLIST FLAGUP # RRNB BANKCALL # # EXIT -- TO ENDOFJOB WHEN THE SEARCH FLAG (SRCHOPT) IS NOT SET # # OUTPUT # # DATAGOOD (SP) -- FOR DISPLAY IN R1 -- 00000 INDICATES NO LOCKON # 11111 INDICATES LOCKON ACHIEVED # OMEGAD (SP) -- FOR DISPLAY IN R2 -- ANGLE BETWEEN RR BORESIGNT VECTOR AND THE SPACECRAFT +Z AXIS # # ERASABLE INITIALIZATION REQUIRED: # # SEARCH FLAG MUST BE SET # LM AND CSM STATE VECTORS AND REFSMMAT MATRIX # # DEBRIS # # RLMSRCH UXVECT # VXRLM UYVECT # LOSDESRD NSRCHPNT # DATAGOOD OMEGAD # MPAC PUSHLIST COUNT* $$/LRS24 LRS24.1 CAF ZERO TS NSRCHPNT # SET SEARCH PATTERN POINT COUNTER TO ZERO CHKSRCH CAF BIT14 # ISSUE AUTO TRACK ENABLE TO RADAR EXTEND # Page 589 WOR CHAN12 CAF SRCHOBIT # CHECK IF SEARCH STILL REQUESTED MASK FLAGWRD2 # (SRCHOPT FLAG SET) EXTEND BZF ENDOFJOB # NO-TERMINATE JOB CAF 6SECONDS # SCHEDULE TASK TO DRIVE RADAR TO NEXT PT. INHINT TC WAITLIST # IN 6 SECONDS EBANK= LOSCOUNT 2CADR CALLDGCH RELINT CS RADMODES # IS REMODE IN PROGRESS MASK REMODBIT EXTEND BZF ENDOFJOB # YES -- WAIT SIX SECONDS TC INTPRET RTB DAD # COMPUTE LOS AT PRESENT TIME + 1.5 SEC. LOADTIME 1.5SECS LRS24.11 STCALL TDEC1 LEMCONIC # EXTRAPOLATE LM STATE VECTOR VLOAD RATT STOVL RLMSRCH # SAVE LEM POSITION VATT STODL SAVLEMV # SAVE LEM VELOCITY TAT STCALL TDEC1 # EXTRAPOLATE CSM STATE VECTOR CSMCONIC # EXTRAPOLATE CSM STATE VECTOR VLOAD VSU # LOS VECTOR = R(CSM) - R(LM) RATT RLMSRCH UNIT STOVL LOSDESRD # STORE DESIRED LOS VATT # COMPUTE UNIT(V(CM) CROSS R(CM)) UNIT VXV RATT UNIT STORE VXRCM VLOAD VSU VATT SAVLEMV MXV VSL1 # CONVERT FROM REFERENCE TO STABLE MEMBER REFSMMAT STORE SAVLEMV # VLC = V(CSM) - V(LM) SLOAD BZE # CHECK IF N=0 # Page 590 NSRCHPNT DESGLOS # YES -- DESIGNATE ALONG LOS DSU BZE # IS N=1 ONEOCT # YES -- CALCULATE X AND Y AXES OF CALCXY # SEARCH PATTERN COORDINATE SYSTEM VLOAD # NO -- ROTATE X-Y AXES TO NEXT SEARCH POINT UXVECT STOVL UXVECTPR # SAVE ORIGINAL X AND Y VECTORS UYVECT # UXPRIME = ORIGINAL UX STORE UYVECTPR # UYPRIME = ORIGINAL UY VXSC SIN60DEG # UX = (COS 60)UXPR + (SIN 60)UYPR STOVL UXVECT UXVECTPR VXSC VAD COS60DEG UXVECT UNIT STOVL UXVECT UXVECTPR # UY = (-SIN 60)UXPR + (COS 60)UYPR VXSC SIN60DEG STOVL UYVECT UYVECTPR VXSC VSU COS60DEG UYVECT UNIT STORE UYVECT OFFCALC VXSC VAD # OFFSET VECTOR = K(UY) OFFSTFAC # LOS VECTOR + OFFSET VECTOR DEFINES LOSDESRD # DESIRED POINT IN SEARCH PATTERN UNIT MXV REFSMMAT # CONVERT TO STABLE MEMBER COORDINATES VSL1 CONTDESG STOVL RRTARGET SAVLEMV STORE LOSVEL EXIT INHINT TC KILLTASK # KILL ANY PRESENTLY WAITLISTED TASK CADR DESLOOP +2 # WHICH WOULD DESIGNATE TO THE LAST # POINT IN THE PATTERN CONTDES2 CS CDESBIT MASK RADMODES # SET BIT 15 OF RADMODES TO INDICATE AD CDESBIT # A CONTINUOUS DESIGNATE WANTED. TS RADMODES TC INTPRET CALL # Page 591 RRDESSM # DESIGNATE RADAR TO RRTARGET VECTOR EXIT TC LIMALARM # LOS NOT IN MODE 2 COVERAGE (P22) TC LIMALARM # VEHICLE MANEUVER REQUIRED (P20) # COMPUTE OMEGA,ANGLE BETWEEN RR LOS AND # SPACECRAFT +Z AXIS OMEGCALC EXTEND DCA CDUT DXCH TANGNB TC INTPRET CALL RRNB DLOAD ACOS # OMEGA IS ARCCOSINE OF Z-COMPONENT OF 36D # VECTOR COMPUTED BY RRNB (LEFT AT 32D) STORE OMEGDISP # STORE FOR DISPLAY IN R2 EXIT TC ENDOFJOB # Page 592 # CALCULATE X AND Y VECTORS FOR SEARCH PATTERN COORDINATE SYSTEM. CALCXY VLOAD VXV VXRCM LOSDESRD UNIT STOVL UXVECT # UX = (VLM X RLM) X LOS LOSDESRD VXV UNIT UXVECT STORE UYVECT # UY = LOS X UX GOTO OFFCALC DESGLOS VLOAD MXV # WHEN N= 0,DESIGNATE ALONG LOS LOSDESRD REFSMMAT # CONVERT LOS FROM REFERENCE TO SM COORDS VSL1 GOTO CONTDESG CALLDGCH CAE FLAGWRD0 # IS RENDEZVOUS FLAG SET MASK RNDVZBIT EXTEND BZF TASKOVER # NO -- EXIT R24 CAF PRIO25 # YES -- SCHEDULE JOB TO DRIVE RADAR TO NEXT TC FINDVAC # PONT IN SEARCH PATTERN EBANK= RLMSRCH 2CADR DATGDCHK TC TASKOVER DATGDCHK CAF BIT4 EXTEND # CHECK IF DATA GOOD DISCRETE PRESENT RAND CHAN33 EXTEND BZF STORE1S # YES -- GO TO STORE 11111 FOR DISPLAY IN R1 CS SIX AD NSRCHPNT # IS N GREATER THAN 6 EXTEND BZF LRS24.1 # YES -- RESET N = 0 AND START AROUND AGAIN INCR NSRCHPNT # NO -- SET N = N+1 AND GO TO TCF CHKSRCH # NEXT POINT IN PATTERN STORE1S CAF ALL1S # STORE 11111 FOR DISPLAY IN R1 TS DATAGOOD # Page 593 INHINT TC KILLTASK # DELETE DESIGNATE TASK FROM CADR DESLOOP +2 # WAITLIST USING KILLTASK TC ENDOFJOB LIMALARM TC ALARM # ISSUE ALARM 527 -- LOS NOT IN MODE2 OCT 527 # COVERAGE IN P22 OR VEHICLE MANEUVER INHINT # REQUIRED IN P20 TC KILLTASK # KILL WAITLIST CALL FOR NEXT CADR CALLDGCH # POINT IN SEARCH PATTERN TC ENDOFJOB ALL1S DEC 11111 SIN60DEG 2DEC .86603 COS60DEG = DPHALF # (2DEC .50) UXVECTPR EQUALS 12D # PREVIOUS UYVECTPR EQUALS 18D RLMUNIT EQUALS 12D OFFSTFAC 2DEC 0.05678 # TANGENT OF 3.25 DEGREES ONEOCT OCT 00001 # **** NOTE -- THESE TWO CONSTANTS MUST **** 3SECONDS 2DEC 300 # **** BE IN THIS ORDER BECAUSE **** # **** ONEOCT NEEDS A LOWER ORDER **** # **** WORD OF ZEROES **** 6SECONDS DEC 600 1.5SECS 2DEC 150 ZERO/SP EQUALS HI6ZEROS BLOCK 02 SETLOC FFTAG5 BANK COUNT* $$/P20 GOTOV56 EXTEND # P20 TERMINATES BY GOTOV56 INSTEAD OF DCA VB56CADR # GOTOPOOH TCF SUPDXCHZ EBANK= WHOCARES VB56CADR 2CADR TRMTRACK # Page 594 # PROGRAM NAME: R29 (RENDEZVOUS RADAR DESIGNATE DURING POWERED FLIGHT) # MOD NO. 2 BY H. BLAIR-SMITH JULY 2, 1968 # # FUNCTIONAL DESCRIPTION: # # DESIGNATES THE RENDEZVOUS RADAR TOWARD THE COMPUTES LOS TO THE CSM, WITH THE CHIEF OBJECTIVE OF OBTAINING RANGE # AND RANGE RATE DATA AT 2-SECOND INTERVALS FOR TRANSMISSION TO THE GROUND. WHEN THE RR IS WITHIN .5 DEGREE OF # THE COMPUTED LOS, TRACKING IS ENABLED, AND DESIGNATION CONTINUES UNTIL THE DATA-GOOD DISCRETE IS RECEIVED. AT # THAT POINT, DESIGNATION CEASES AND A RADAR-READING ROUTINE TAKES OVER, PREPARING A CONSISTENT SET OF DATA FOR # DOWN TELEMETRY. THE SET INCLUDES RANGE, RANGE RATE, MARK TIME, TWO RR CDU ANGLES, THREE IMUCDU ANGLES, AND AN # INDICATOR WHICH IS 1 WHEN THE SET IS CONSISTENT AND 0 OTHERWISE. THE INDICATOR IS IN TRKMKCNT. # # CALLING SEQUENCE: BEGUN EVERY 2 SECONDS AS AN INTEGRAL PART OF SERVICER # # SUBROUTINES CALLED: # # REMODE RRPONLY # UNIT MPACVBUF # QUICTRIG AX*SR*T # SPSIN SPCOS # SETRRECR RROUT # RRRDOT RRRANGE # # EXIT: TO NOR29NOW, IN SERVICER. # # OUTPUT: (ALL FOR DOWNLINK) # # RM RDOTM (RAW) # AIG AMG # AOG TRKMKCNT TRKMKCNT = 00001 IF SET IS CONSISTENT, # TANGNB TANGNB +1 OTHERWISE TRKMKCNT = 00000. # MKTIME # Page 595 # # ERASABLE INITIALIZATION REQUIRED: # # NOR29FLG READRFLG (TO 1 AND 0 BY FRESH START) (RESET NOR29FLG TO LET SERVICER RUN R29) # PIPTIME RADMODES (BIT 10) (BIT SET TO 0 BY FRESH START) # R(CSM) V(CSM) # R V (PIPTIME THRU V BY AVE G IN SERVICER) # # DEBRIS: # # RADMODES (BIT 10) # LOSSM LOSVDT/4 (= RRTARGET & LOSVEL) # SAVECDUT OLDESFLG (SAVECDUT = MLOSV) # LOSCMFLG READRFLG # # ALARMS: NONE. # # COMPONENT JOBS AND TASKS: # # INITIALIZING, IF RR IS FOUND TO BE IN MODE 1: JOB R29REMOJ AND TASK REMODE: ALWAYS: TASK PREPOS29. # DESIGNATING: TASK BEGDES29 & JOB R29DODES. # RADAR READING: TASK R29READ AND JOB R29RDJOB. ALL JOBS ARE NOVAC TYPE. BANK 33 SETLOC R29/SERV BANK COUNT* $$/r29 NR29&RDR EQUALS EBANK5 # Page 596 # SERVICER COMES TO R29 FROM "R29?" IF NOR29FLG, READRFLG, RRREMODE, RRCDUZRO, RRREPOS, AND DISPLAY-INERTIAL-DATA # ARE ALL RESET, AND THE RR IS IN LGC MODE (OFTEN CONFUSINGLY CALLED AUTO MODE). R29 CS RADMODES MASK DESIGBIT EXTEND BZF R29.LOS # BRANCH IF DESIGNATION IS ALREADY ON. INHINT ADS RADMODES # SHOW THAT DESIGNATION IS NOW ON. CS BIT14 EXTEND WAND CHAN12 # REMOVE RR TRACK ENABLE DISCRETE. CS LOSCMBIT MASK FLAGWRD2 TS FLAGWRD2 # CLEAR LOSCMFLG TO SHOW DES. LOOP IS OFF. CS OLDESBIT MASK STATE TS STATE # SHOW THAT DES. LOOP IS NOT REQUESTED. TC BANKCALL CADR SETRRECR # ENABLE RR ERROR COUNTERS. CA ANTENBIT MASK RADMODES CCS A # TEST RR MODE BIT. TCF SETPRPOS # MODE 2. CA PRIO21 # MODE 1: MUST REMODE. TC NOVAC EBANK= LOSCOUNT 2CADR R29REM0J # NEEDS OWN JOB TO RADSTALL IN. CS DESIGBIT MASK RADMODES # CLEAR DESIGNATE FLAG IN RADMODES TS RADMODES # BEFORE CALLING REMODE CA REMODBIT ADS RADMODES # SHOW THAT REMODING IS ON. TCF NOR29NOW # CONTINUE SERVICER FUNCTIONS. SETPRPOS CA ONE TC WAITLIST EBANK= LOSCOUNT 2CADR PREPOS29 # TASK TO SET TRUNNION ANGLE TO 180 DEG. CA REPOSBIT ADS RADMODES # SHOW THAT REPOSITIONING IS ON. TCF NOR29NOW # Page 597 # FORCE RENDEZVOUS RADAR INTO MODE 2. R29REM0J CA ONE TC WAITLIST EBANK= LOSCOUNT 2CADR REMODE # REMODE MUST RUN AS A TASK. TC BANKCALL # WAIT FOR END OF REMODING CADR RADSTALL TCF ENDOFJOB # BAD EXIT CAN'T HAPPEN. TCF ENDOFJOB # TASK TO PREPOSITION THE RR TRUNNION ANGLE TO -180 DEG. SETLOC R29S1 BANK PREPOS29 CA NEGMAX # -180 DEG. TC RRTONLY # DRIVE TRUNNION CDU. CS REPOSBIT # SHOW THAT REPOSITIONING IS OFF. MASK RADMODES TS RADMODES TCF TASKOVER # COMPUTE THE LINE-OF-SIGHT AND LOS VELOCITY, AND PASS THEM TO THE R29DODES LOOP. SETLOC R29 BANK R29.LOS EXTEND DCS PIPTIME DXCH MPAC EXTEND DCA TIME2 DAS MPAC # (MPAC) = T-PIPTIME, SCALED B-28. TS MODE # SET MODE TO DOUBLE PRECISION. CA MPAC +1 EXTEND MP BIT12 DXCH MPAC # T-PIPTIME NOW SCALED B-17. TC INTPRET # Page 598 # LOSCMFLG = 0 MEANS THAT THE DESIGNATION IS READY FOR NEW DATA. SETTING LOSCMFLG MAKES IT GO AWAY SO SETUP29D CAN # START IT UP WHEN THE DATA IS IN PLACE. PDVL VSU # PUSH DOWN T-PIPTIME V(CSM) V # LOSVEL = V(CSM) - V PDDL VXSC # SWAP LOSVEL FOR T-PIPTIME, MULTIPLY THEM VAD VSU # AND ADD THE RESULT TO R(CSM) - R TO GET R(CSM) # AN UP-TO-DATE LOS VECTOR IN SM AXES. R BOFSET EXIT # (BOFSET DOES ITS THING INHINTED.) LOSCMFLG # IF DESIGNATE LOOP IS OFF, CHANGE LOSCM- SETUP29D # FLG TO ON AND GO TO SET UP NEW DATA. TCF NOR29NOW # IF DES. LOOP IS ON, LET IT USE OLD DATA. SETUP29D STOVL LOSSM # LINE-OF-SIGHT VECTOR, STABLE MEMBER AXES 0 VXSC .5SECB17 STORE LOSVDT/4 # 1/2 SECOND'S WORTH OF LOS VELOCITY. CLEAR EXIT LOSCMFLG # LET R29DLOOP USE NEW DATA. CS STATE MASK OLDESBIT EXTEND BZF NOR29NOW # BRANCH IF R29 DES. LOOP IS REQUESTED. INHINT ADS STATE # OTHERWISE REQUEST IT NOW. CCS PIPCTR # SEE IF TASK SHOULD BE OFFSET ONE SECOND. CS SUPER110 # -96D +100D = 4. AD 1SEC # 0 +100D = 100D. TC WAITLIST EBANK= LOSCOUNT 2CADR BEGDES29 # START BEGDES29 TASK ASAP. TCF NOR29NOW # RELINT AND CONTINUE SERVICER FUNCTIONS. .5SECB17 2DEC 50 B-17 # Page 599 # R29 DESIGNATE JOB AND TASK MACHINERY. TASK RECURS EVERY .5 SEC UNTIL DESIGNATE IS CALLED OFF; IT MAY WAIT FOR A # CENTISECOND OR TWO IF IT COMES UP WHILE SETUP29D IS SUPPLYING NEW DATA. BANK 24 SETLOC P20S BANK COUNT* $$/R29 BEGDES29 CAF PRIO21 TC NOVAC EBANK= LOSVDT/4 2CADR R29DODES # START R29DODES JOB TWICE A SECOND. R29DLOOP CAF .5SEC TC VARDELAY CS RADMODES MASK DESIGBIT CCS A TCF TASKOVER # QUIT IF DESIGNATION IS CALLED OFF. CS FLAGWRD2 MASK LOSCMBIT EXTEND BZF +3 # BRANCH IF SETUP29D'S SUPPLYING NEW DATA. ADS FLAGWRD2 # SET LOSCMFLG: SHOW THAT DES. LOOP IS ON. TCF BEGDES29 CA ONE TCF R29DLOOP +1 # WAIT A CENTISECOND FOR NEW DATA. # Page 600 # R29DODES: RR DESIGNATION LOOP FOR R29 # # THIS ROUTINE DOES MUCH THE SAME THING AS DODES, BUT A GREAT DEAL FASTER. IT TAKES THE NON-UNITIZED LOS VECTOR # IN STABLE MEMBER COORDINATES (LOSSM) AND A DELTA-LOS IN SM AXES (LOSVDT/4) WHICH IS 1/2 SEC TIMES LOS VELOCITY, # AND DEVELOPS THE SHAFT AND TRUNNION COMMANDS USING SINGLE PRECISION AS MUCH AS POSSIBLE, AND INTERPRETIVE NOT AT # ALL. THE UNIT(LOSM + LOSVEL * 1 SEC) IS COMPUTED IN DP AND TRANSFORMED TO NAV BASE COORDINATES IN DOUBLE PRE- # CISION (USING SP SINES AND COSINES OF CDU ANGLES), AND THE REST IS DONE IN SP. # # THE FUNCTIONAL DIFFERENCE IS THAT R29DODES ALWAYS CLEARS LOSCMFLG WHEN IT ENDS, AND IT STARTS UP THE R29READ # TASK WHEN LOCK-ON IS ACHIEVED. BANK 32 SETLOC F2DPS*32 BANK COUNT* $$/R29 EBANK= LOSVDT/4 R29DODES CA ONE TS TANG # INDICATE 1ST PASS THRU VECTOR LOOP. CA FIVE R29DVBEG CCS A # COUNT DOWN BY TWO'S IN VECTOR LOOP. TS Q CCS TANG TCF R29DPAS1 # DO THIS ON 1ST PASS THRU LOOP. EXTEND # (A "PASS" HERE MEANS 3 TIMES AROUND). INDEX Q DCA LOSVDT/4 INDEX Q DAS LOSSM # ADVANCE LOS VECTOR 1/2 SECOND. R29DPAS1 EXTEND INDEX Q DCA LOSSM INDEX Q # MOVE CURRENT LOS (1ST PASS) OR LOS PRO- DXCH MPAC +1 # JECTED 1/2 SEC AHEAD (2ND PASS). CCS TANG TCF R29DVEND # BUG OUT HERE IN 1ST PASS. EXTEND INDEX Q DCA LOSVDT/4 INDEX Q DAS MPAC +1 # PROJECT LOS 1 SECOND AHEAD (2ND PASS). R29DVEND CCS Q TCF R29DVBEG # BRANCH TO CONTINUE VECTOR LOOP. # Page 601 # UNITIZE AND TRANSFORM TO NAV BASE AXES THE PRESENT LOS (1ST PASS) OR THE 1-SEC PROJECTED LOS (2ND PASS). DXCH MPAC +1 DXCH MPAC CA R29FXLOC # = ADRES INTB15 + -34D TS FIXLOC TC USPRCADR # WITH FIXLOC ARMED FOR LENGTH AND LENGTH CADR UNIT # SQUARED, BORROW UNITIZING ROUTINE. TC MPACVBUF # MOVE UNIT(LOS) TO AX*SR*T ARG AREA. CCS TANG TCF +2 TCF GOTANGLS # GET CDU ANGLES ONLY AFTER 1ST PASS. INHINT # ENSURE CONSISTENT CDU READINGS. EXTEND DCA CDUT DXCH SAVECDUT # TRUNNION AND SHAFT ANGLES. CA CDUY TS CDUSPOT CA CDUZ TS CDUSPOT +2 CA CDUX TS CDUSPOT +4 # CDU ANGLES IN FUNNY ORDER FOR AX*SR*T. TC BANKCALL CADR QUICTRIG # GET SINES AND COSINES OF CDU ANGLES. GOTANGLS CS THREE TC BANKCALL CADR AX*SR*T # TRANSFORM UNIT LOS TO NB AXES (ULOSNB). CCS TANG TCF +2 TCF R29DPAS2 # GO TO RR COMMAND COMP. AFTER 2ND PASS. # Page 602 # COMPUTE COSINE OF THE ANGLE BETWEEN THE PRESENT LOS AND THE RR BORESIGHT VECTOR, AND SET THE SELFTRACK ENABLE IF # THE COSINE IS APPROXIMATELY COS(.5 DEG) OR GREATER (I.E., SMALLER ANGLE). INHINT TS TANG # INDICATE 2ND PASS THRU VECTOR LOOP. CA SAVECDUT TC SPCOS TS PUSHLOC # PUSHLOC = COS T. CS SAVECDUT TC SPSIN TS MODE # MODE = -SIN T. EXTEND MP VBUF +2 # FORM - SIN T ULOSNBY. DXCH MPAC CA SAVECDUT +1 TC SPSIN TS SAVECDUT # SAVECDUT NOW = SIN S. EXTEND MP PUSHLOC EXTEND MP VBUF # FORM SIN S COS T ULOSNBX. DAS MPAC CA SAVECDUT +1 TC SPCOS TS SAVECDUT +1 # SAVECDUT +1 NOW = COS S. EXTEND MP PUSHLOC EXTEND MP VBUF +4 # FORM COS S COS T ULOSNBZ. DAS MPAC # COS(ERROR) = ULOSNB . (SIN S COS T, EXTEND # -SIN T, COS S COS T). DCA MPAC TESTCOS DAS MPAC # (ULOSNB IN VBUF WAS A HALF-UNIT VECTOR). CCS A # TEST FOR + OVERFLOW, NONE, OR MINUS. CA BIT14 NOOP EXTEND WOR CHAN12 # IF PLUS OVERFLOW, SET SELFTRACK ENABLE. RELINT TCF R29DVBEG -1 # MAKE 2ND PASS THRU VECTOR LOOP. # Page 603 # COMPUTE SHAFT AND TRUNNION COMMANDS TO NULL HAVE THE ERROR IN HALF A SECOND. R29DPAS2 CA SAVECDUT +1 EXTEND MP VBUF # FORM COS S ULOSNB'X. DXCH TANG CS SAVECDUT EXTEND MP VBUF +4 # FORM - SIN S ULOSNB'Z. DAS TANG # RAW SHAFT CMD = ULOSNB' . (COS S, 0, CS MODE # - SIN S) EXTEND MP SAVECDUT EXTEND MP VBUF # FORM SIN T SIN S ULOSNB'X. DXCH MPAC CA PUSHLOC EXTEND MP VBUF +2 # FORM COS T ULOSNB'Y. DAS MPAC CS MODE EXTEND MP SAVECDUT +1 EXTEND MP VBUF +4 # FORM SIN T COS S ULOSNB'Z. DAS MPAC # RAW TRUNNION CMD = ULOSNB'. CA MPAC # (SIN S SIN T, COS T, SIN S COS T). EXTEND MP RR29GAIN XCH TANG # STORE REFINED T CMD, GET RAW S CMD. EXTEND MP RR29GAIN TS TANG +1 # STORE REFINED S CMD. # Page 604 # WHETHER OR NOT TRACKING WAS ENABLED THIS TIME, CHECK ON RR DATA-GOOD. IF PRESENT, STOP DESIGNATING AND START # READING DATA FROM THE RENDEZVOUS RADAR. DGOOD? CAF BIT4 EXTEND RAND CHAN33 # GET RR DATA-GOOD BIT. INHINT # (MAINLY FOR RROUT). EXTEND BZF R29LOKON # BRANCH IF DATA-GOOD IS PRESENT. TC BANKCALL CADR RROUT # DATA-GOOD IS ABSENT, SO SEND COMMANDS. TCF END29DOD R29LOKON CS DESIGBIT MASK RADMODES TS RADMODES # SHOW THAT DESIGNATION IS OVER. CS BIT2 EXTEND WAND CHAN12 # DISABLE RR ERROR COUNTERS. CA READRBIT ADS FLAGWRD3 # SHOW THAT READING HAS BEEN REQUESTED. CCS PIPCTR # SEE IF TASK SHOULD BE OFFSET 1 SEC. CS SUPER110 # -96D + 100D = 4. AD 1SEC # 0 + 100D = 100D. TC WAITLIST EBANK= LOSCOUNT 2CADR R29READ # START READING TASK AND JOB. END29DOD CS LOSCMBIT MASK FLAGWRD2 TS FLAGWRD2 # ALWAYS CLEAR LOSCMFLG. TCF ENDOFJOB R29FXLOC ADRES INTB15+ -34D RR29GAIN DEC -.53624 LOSVDT/4 EQUALS LOSVEL LOSSM EQUALS RRTARGET SAVECDUT EQUALS MLOSV # Page 605 # RR READING IS SET UP BY R29DODES WHEN IT DETECTS RR LOCK-ON BANK 24 SETLOC P20S BANK COUNT* $$/R29 EBANK= LOSCOUNT R29READ CAF PRIO26 # CALLED BY WAITLIST TC NOVAC EBANK= LOSCOUNT 2CADR R29RDJOB # START JOB TO READ AND DOWNLINK FOR R29. CA 2SECS TC VARDELAY CA FLAGWRD3 # 2 SECONDS LATER, SEE IF READING IS STILL MASK READRBIT # ALLOWED (NO TRACKER FAIL ETC.) CCS A TCF R29READ # IT'S OK: CALL IT AGAIN. TCF TASKOVER # IT AIN'T: WAIT FOR REDESIGNATE. R29RDJOB CA FLAGWRD3 # CALLED VIA NOVAC. MASK NR29FBIT CCS A # TEST "NOR29FLG". TCF ENDRRD29 # R29 IS NOW OVER, STOP AT ONCE. CA RADMODES MASK AUTOMBIT CCS A # TEST RR-NOT-IN-AUTO-MODE BIT. TCF ENDRRD29 # ASTRO TOOK RR OUT OF AUTO MODE. TC BANKCALL CADR RRRDOT # INITIATE READING OF RANGE RATE. TC BANKCALL CADR RADSTALL # GOT TO SLEEP UNTIL IT'S READY. TCF ENDRRD29 # BAD READ; REDESIGNATE. # Page 606 # R29 RADAR READING CONTINUED. DXCH TIMEHOLD DXCH MPAC # TIME OF RR READING, FOR DOWNLINK. INHINT # BE SURE OF 5 CONSISTENT CDU ANGLES. EXTEND DCA CDUT DXCH MPAC +2 # RRCDU ANGLES AT RR READ, FOR DOWNLINK. EXTEND DCA CDUY DXCH MPAC +4 # MPAC'S 7 WORDS ARE BUFFERED FOR COPYCYCLE. CA CDUX TS MPAC +6 # IMUCDU ANGLES AT RR READ, FOR DOWNLINK. R29RANGE TC BANKCALL CADR RRRANGE # INITIATE READING OF RR RANGE. TC BANKCALL CADR RADSTALL # GO TO SLEEP UNTIL IT'S READY. TCF R29RRR? # BAD READ OR SCALE CHANGE ... WHICH? INHINT DXCH DNRRANGE # COPYCYCLE TO LAY OUT NEW R29 DOWNLINK. DXCH RM DXCH MPAC DXCH MKTIME DXCH MPAC +2 DXCH TANGNB DXCH MPAC +4 DXCH AIG CA MPAC +6 TS AOG CA ONE TS TRKMKCNT # SHOW THAT DOWNLINK DATA IS CONSISTENT. TCF ENDOFJOB R29RRR? CS FLAGWRD5 MASK BIT10 CCS A # WAS IT A SCALE CHANGE (REAL OR PHONY)? TCF ENDRRD29 # NO, A BAD READ; REDESIGNATE. TC DOWNFLAG ADRES RNGSCFLG TCF R29RANGE # YES; CLEAR FLAG AND READ AGAIN. ENDRRD29 CA ZERO # TROUBLE MADE US COME HERE TO LEAVE THE TS TRKMKCNT # RR-READING MODE. DISCREDIT DOWNTEL. TC DOWNFLAG ADRES READRFLG CS BIT14 EXTEND # Page 607 WAND CHAN12 # REMOVE TRACK-ENABLE DISCRETE. TCF ENDOFJOB # Page 608 # W-MATRIX MONITOR BANK 31 SETLOC VB67 BANK COUNT* $$/EXTVB EBANK= WWPOS V67CALL TC INTPRET CALL V67WW EXIT EXTEND # SAVE THE PRESENT N99 VALUES FOR DCA WWPOS # COMPARISON AFTER THE DISPLAY DXCH WWBIAS +2 EXTEND DCA WWVEL DXCH WWBIAS +4 EXTEND DCA WWBIAS DXCH WWBIAS +6 V06N99DS CAF V06N99 TC BANKCALL CADR GOXDSPF TCF ENDEXT TCF V6N99PRO TCF V06N99DS V6N99PRO ZL CA FIVE N99LOOP TS Q INDEX Q CS WWPOS INDEX Q AD WWPOS +6 ADS L CCS Q # THE SUM OF ALL DIFFERENCES MUST BE ZERO. TCF N99LOOP LXCH A EXTEND BZF V06N9933 TC UPFLAG ADRES V67FLAG V06N9933 TC INTPRET BON EXIT V67FLAG +2 TCF ENDEXT DLOAD # Page 609 WWPOS SL4 SL1 STODL 0D WWVEL STODL 2D WWBIAS SL # SHIFT FROM NOUN SCALING (B-5) TO 10D # INTERNAL SCALING (B+5) STORE 4D BON LXA,1 SURFFLAG V67SURF 0D SXA,1 LXA,1 WRENDPOS 2D SXA,1 GOTO WRENDVEL V67CLRF V67SURF LXA,1 SXA,1 0D WSURFPOS LXA,1 SXA,1 2D WSURFVEL V67CLRF LXA,1 SXA,1 4D WTRUN SXA,1 WSHAFT CLEAR EXIT RENDWFLG TCF ENDEXT V67WW STQ BOV S2 +1 CLEAR CALL V67FLAG INTSTALL SSP DLOAD S1 DEC 6 ZEROVECS STORE WWPOS STORE WWVEL STORE WWBIAS AXT,1 DEC 54 NXPOSVEL VLOAD* VSQ W +54D,1 # Page 610 GOTO ADDPOS V06N99 VN 0699 SETLOC VB67A BANK COUNT* $$/EXTVB ADDPOS DAD WWPOS STORE WWPOS VLOAD* VSQ W +108D,1 DAD WWVEL STORE WWVEL VLOAD* VSQ W +162D,1 DAD WWBIAS STORE WWBIAS TIX,1 SQRT NXPOSVEL SR # SHIFT FROM INTERNAL SCALING (B+5) TO 10D # NOUN SCALING (B-5) STODL WWBIAS WWVEL SQRT STODL WWVEL WWPOS SQRT STORE WWPOS BOV GOTO +2 V67XXX DLOAD DPPOSMAX STORE WWPOS STORE WWVEL STORE WWBIAS V67XXX DLOAD DSU WWPOS FT99999 BMN DLOAD +3 FT99999 STORE WWPOS LXA,1 SXA,1 S2 QPRET # Page 611 EXIT TC POSTJUMP CADR INTWAKE FT99999 2DEC 30479 B-19 # Page 612 BANK 25 SETLOC RADARUPT BANK COUNT* $$/RRUPT EBANK= LOSCOUNT R12LITES CA ONE MASK IMODES33 CCS A TCF ISWRETRN TC HLIGHT TC HLIGHT -3 TCF ISWRETRN RADLITES CA BIT1 MASK IMODES33 CCS A TC Q CS BIT5 AD ITEMP1 CCS A CS ONE TCF VLIGHT TCF RRTRKF HLIGHT TS ITEMP5 # ZERO ITEMP5 FOR H INDEX CA HLITE TS L CA FLGWRD11 MASK SCABBIT CCS A TCF ONLITES CA LRALTBIT BOTHLITS MASK RADMODES CCS A TCF ONLITES CA FLGWRD11 INDEX ITEMP5 MASK HFLSHBIT CCS A TCF RRTRKF # Page 613 LITIT EXTEND QXCH ITEMP6 TC TRKFLON +1 EXTEND QXCH ITEMP6 TCF RRTRKF ONLITES INDEX ITEMP5 CS HFLSHBIT MASK FLGWRD11 TS FLGWRD11 CA L TCF LITIT VLIGHT TS ITEMP5 CA VLITE TS L CA BIT8 TCF BOTHLITS HLITE EQUALS BIT5 VLITE EQUALS BIT3 # *** END OF LEMP20S .127 ***