mirror of
				https://github.com/chrislgarry/Apollo-11.git
				synced 2025-10-26 04:16:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			1468 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1468 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Copyright:	Public domain.
 | |
| # Filename:	T4RUPT_PROGRAM.agc
 | |
| # Purpose:	Part of the source code for Comanche, build 055.
 | |
| #		It is part of the source code for the Command Module's (CM)
 | |
| #		Apollo Guidance Computer (AGC), Apollo 11.
 | |
| # Assembler:	yaYUL
 | |
| # Reference:	pp. 133-169
 | |
| # Contact:	Ron Burkey <info@sandroid.org>,
 | |
| #  		Fabrizio Bernardini <fabrizio@spacecraft.it>
 | |
| # Website:	http://www.ibiblio.org/apollo.
 | |
| # Mod history:	10/05/09 FB	Transcription of Batch FB-1 Assignment.
 | |
| #
 | |
| # The contents of the "Comanche055" files, in general, are transcribed
 | |
| # from scanned documents.
 | |
| #
 | |
| #	Assemble revision 055 of AGC program Comanche by NASA
 | |
| #	2021113-051.  April 1, 1969.
 | |
| #
 | |
| #	This AGC program shall also be referred to as Colossus 2A
 | |
| #
 | |
| #	Prepared by
 | |
| #			Massachusetts Institute of Technology
 | |
| #			75 Cambridge Parkway
 | |
| #			Cambridge, Massachusetts
 | |
| #
 | |
| #	under NASA contract NAS 9-4065.
 | |
| #
 | |
| # Refer directly to the online document mentioned above for further
 | |
| # information.  Please report any errors to info@sandroid.org.
 | |
| 
 | |
| # Page 133
 | |
| 		BANK	12
 | |
| 		SETLOC	T4RUP
 | |
| 		BANK
 | |
| 
 | |
| 		COUNT	06/T4RPT
 | |
| 
 | |
| T4RUPT		TS	BANKRUPT
 | |
| 		EXTEND
 | |
| 		QXCH	QRUPT
 | |
| 
 | |
| 		CCS	DSRUPTSW	# GOES 7(-1)0 AROUND AND AROUND
 | |
| 		TCF	NORMT4 +1
 | |
| 		TCF	NORMT4
 | |
| 
 | |
| 		TCF	QUIKDSP
 | |
| 
 | |
| NORMT4		CAF	SEVEN
 | |
| 		TS	RUPTREG1
 | |
| 		TS	DSRUPTSW
 | |
| 
 | |
| 		COUNT	02/T4RPT
 | |
| 
 | |
| 74K		=	HIGH4
 | |
| 
 | |
| # RELTAB IS A PACKED TABLE. RELAYWORD CODE IN UPPER 4 BITS, RELAY CODE
 | |
| # IN LOWER 5 BITS.
 | |
| 
 | |
| 		BLOCK	02
 | |
| 		SETLOC	FFTAG12
 | |
| 		BANK
 | |
| 
 | |
| RELTAB		OCT	04025
 | |
| 		OCT	10003
 | |
| 		OCT	14031
 | |
| 		OCT	20033
 | |
| 		OCT	24017
 | |
| 		OCT	30036
 | |
| 		OCT	34034
 | |
| 		OCT	40023
 | |
| 		OCT	44035
 | |
| 		OCT	50037
 | |
| 		OCT	54000
 | |
| RELTAB11	OCT	60000
 | |
| 
 | |
| # Page 134
 | |
| # SWITCHED-BANK PORTION
 | |
| 
 | |
| 		BANK	12
 | |
| 		SETLOC	T4RUP
 | |
| 		BANK
 | |
| 
 | |
| 		COUNT	06/T4RPT
 | |
| 
 | |
| CDRVE		CCS	DSPTAB +11D
 | |
| 		TC	DSPOUT
 | |
| 		TC	DSPOUT
 | |
| 
 | |
| 		XCH	DSPTAB +11D
 | |
| 		MASK	LOW11
 | |
| 		TS	DSPTAB +11D
 | |
| 		AD	RELTAB11
 | |
| 		EXTEND
 | |
| 		WRITE	OUT0
 | |
| 		TC	HANG20
 | |
| 
 | |
| # Page 135
 | |
| # DSPOUT PROGRAM, PUTS OUT DISPLAYS
 | |
| 
 | |
| DSPOUTSB	TS	NOUT
 | |
| 		CS	ZERO
 | |
| 		TS	DSRUPTEM	# SET TO -0 FOR 1ST PASS THRU DSPTAB
 | |
| 		XCH	DSPCNT
 | |
| 		AD	NEG0		# TO PREVENT +0
 | |
| 		TS	DSPCNT
 | |
| DSPSCAN		INDEX	DSPCNT
 | |
| 		CCS	DSPTAB
 | |
| 		CCS	DSPCNT		# IF DSPTAB ENTRY +, SKIP
 | |
| 		TCF	DSPSCAN	-2	# IF DSPCNT +, AGAIN
 | |
| 		TCF	DSPLAY		# IF DSPTAB ENTRY -, DISPLAY
 | |
| TABLNTH		OCT	12		# DEC 10 LENGTH OF DSPTAB
 | |
| 		CCS	DSRUPTEM	# IF DSRUPTEM=+0, 2ND PASS THRU DSPTAB
 | |
| 120MRUPT	DEC	16372		# (DSPCNT = 0).  +0 INTO NOUT.
 | |
| 		TS	NOUT
 | |
| 		TC	Q
 | |
| 		TS	DSRUPTEM	# IF DSRUPTEM=-0, 1ST PASS THRU DSPTAB
 | |
| 		CAF	TABLNTH		# (DSPCNT=0).+0 INTO DSRUPTEM. PASS AGAIN
 | |
| 		TCF	DSPSCAN -1
 | |
| 
 | |
| DSPLAY		AD	ONE
 | |
| 		INDEX	DSPCNT
 | |
| 		TS	DSPTAB		# REPLACE POSITIVELY
 | |
| 		MASK	LOW11		# REMOVE BITS 12 TO 15
 | |
| 		TS	DSRUPTEM
 | |
| 		CAF	HI5
 | |
| 		INDEX	DSPCNT
 | |
| 		MASK	RELTAB		# PICK UP BITS 12 TO 15 OF RELTAB ENTRY
 | |
| 		AD	DSRUPTEM
 | |
| 		EXTEND
 | |
| 		WRITE	OUT0		# WRITE CHANNEL 10
 | |
| 		TCF	Q+1		# *** NORMAL RETURN SKIPS ONE
 | |
| 
 | |
| DSPOUT		CCS	FLAGWRD5	# DON'T DISPLAY UNLESS DSKY FLAG ON
 | |
| 		CAF	ZERO
 | |
| 		TCF	NODSPOUT
 | |
| 		CCS	NOUT
 | |
| 		TC	DSPOUTSB
 | |
| 		TCF	NODSPOUT	# NO DISPLAY REQUESTS
 | |
| 
 | |
| HANG20		CS	11,14,9
 | |
| 		ADS	DSRUPTSW
 | |
| 
 | |
| 		CAF	20MRUPT
 | |
| 
 | |
| SETTIME4	TS	TIME4
 | |
| 
 | |
| # Page 136
 | |
| # THE STATUS OF THE PROCEED PUSHBUTTON IS MONITORED EVERY 120 MILLISECONDS VIA THE CHANNEL 32 BIT 14 INBIT.
 | |
| # THE STATE OF THIS INBIT IS COMPARED WITH ITS STATE DURING THE PREVIOUS T4RUPT AND IS PROCESSED AS FOLLOWS.
 | |
| #	IF PREV ON AND NOW ON 	-- BYPASS
 | |
| #	IF PREV ON AND NOW OFF	-- UPDATE IMODES33
 | |
| #	IF PREV OFF AND NOW ON	-- UPDATE IMODES33 AND PROCESS VIA PINBALL
 | |
| #	IF PREV OFF AND NOW OFF	-- BYPASS
 | |
| # THE LOGIC EMPLOYED REQUIRES ONLY 9 MCT (APPROX. 108 MICROSECONDS) OF COMPUTER TIME WHEN NO CHANGES OCCUR.
 | |
| 
 | |
| PROCEEDE	CA	IMODES33	# MONITOR FOR PROCEED BUTTON
 | |
| 		EXTEND
 | |
| 		RXOR	CHAN32		# CHECK IF BIT 14 DIFFERENT
 | |
| 		MASK	BIT14
 | |
| 		EXTEND
 | |
| 		BZF	T4JUMP		# NO CHANGE
 | |
| 
 | |
| 		LXCH	IMODES33
 | |
| 		EXTEND
 | |
| 		RXOR	LCHAN
 | |
| 		TS	IMODES33	# UPDATE IMODES33
 | |
| 		MASK	BIT14
 | |
| 		CCS	A
 | |
| 		TCF	T4JUMP		# WAS ON -- NOW OFF
 | |
| 
 | |
| 		CAF	CHRPRIO		# WAS OFF -- NOW ON
 | |
| 		TC	NOVAC
 | |
| 		EBANK=	DSPCOUNT
 | |
| 		2CADR	PROCKEY
 | |
| 
 | |
| # Page 137
 | |
| # JUMP TO APPROPRIATE ONCE-PER SECOND (0.96 SEC ACTUALLY) ACTIVITY
 | |
| 
 | |
| T4JUMP		INDEX	RUPTREG1
 | |
| 		TCF	+1
 | |
| 
 | |
| 		TCF	OPTTEST
 | |
| 		TCF	OPTMON
 | |
| 		TCF	IMUMON
 | |
| 		TCF	RESUME
 | |
| 		TCF	OPTTEST
 | |
| 		TCF	OPTMON
 | |
| 		TCF	IMUMON
 | |
| 		TCF	RESUME
 | |
| 
 | |
| OPTTEST		TC	IBNKCALL
 | |
| 		CADR	OPTDRIVE
 | |
| 
 | |
| 20MRUPT		=	OCT37776	# (DEC 16382)
 | |
| 
 | |
| NODSPOUT	EXTEND			# TURN OFF RELAYS
 | |
| 		WRITE	OUT0
 | |
| 
 | |
| 		CAF	120MRUPT	# SET FOR NEXT CDRVE
 | |
| 		TCF	SETTIME4
 | |
| 
 | |
| QUIKDSP		CAF	BIT14
 | |
| 		MASK	DSRUPTSW
 | |
| 		EXTEND
 | |
| 		BZF	QUIKOFF		# WROTE LAST TIME, NOW TURN OFF RELAYS.
 | |
| 
 | |
| 		CCS	NOUT
 | |
| 		TC	DSPOUTSB
 | |
| 		TCF	NODSPY		# NOUT=0 OR BAD RETURN FROM DSPOUTSB
 | |
| 		CS	BIT14		# GOOD RETURN (WE DISPLAYED SOMETHING)
 | |
| QUIKRUPT	ADS	DSRUPTSW
 | |
| 
 | |
| 		CAF	20MRUPT
 | |
| 		TS	TIME4
 | |
| 
 | |
| 		CAF	BIT9
 | |
| 		ADS	DSRUPTSW
 | |
| 
 | |
| 		TC	RESUME
 | |
| 
 | |
| NODSPY		EXTEND
 | |
| 		WRITE	OUT0
 | |
| 
 | |
| SYNCT4		CAF	20MRUPT
 | |
| 		ADS	TIME4
 | |
| 
 | |
| 		CAF	BIT9
 | |
| # Page 138
 | |
| 		ADS	DSRUPTSW
 | |
| 		CCS	DSRUPTSW
 | |
| 		TC	RESUME
 | |
| OCT37737	OCT	37737
 | |
| 		TC	SYNCT4
 | |
| 		TC	RESUME
 | |
| 
 | |
| QUIKOFF		EXTEND
 | |
| 		WRITE	OUT0
 | |
| 		CAF	BIT14		# RESET DSRUPTSW TO SEND DISPLAY NEXT PASS
 | |
| 		TCF	QUIKRUPT
 | |
| 
 | |
| 11,14,9		OCT	22400
 | |
| 
 | |
| # Page 139
 | |
| # PROGRAM NAME:  IMUMON
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM IS ENTERED EVERY 480 MS.  IT DETECTS CHANGES OF THE IMU STATUS BITS IN
 | |
| # CHANNEL 30 AND CALLS THE APPROPRIATE SUBROUTINES.  THE BITS PROCESSED AND THEIR RELEVANT SUBROUTINES ARE:
 | |
| #
 | |
| #	FUNCTION		BIT	SUBROUTINE CALLED
 | |
| #	--------		---	-----------------
 | |
| #	TEMP IN LIMITS		 15	TLIM
 | |
| #	ISS TURN-ON REQUEST	 14	ITURNON
 | |
| #	IMU FAIL		 13	IMUFAIL (SETISSW)
 | |
| #	IMU CDU FAIL		 12	ICDUFAIL (SETISSW)
 | |
| #	IMU CAGE		 11	IMUCAGE
 | |
| #	IMU OPERATE		  9	IMUOP
 | |
| #
 | |
| # THE LAST SAMPLED STATE OF THESE BITS IS LEFT IN IMODES30.  ALSO, EACH SUBROUTINE CALLED FINDS THE NEW
 | |
| # VALUE OF THE BIT IN A, WITH Q SET TO THE PROPER RETURN LOCATION NXTIFAIL.
 | |
| #
 | |
| # CALLING SEQUENCE:  T4RUPT EVERY 480 MILLISECONDS.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  TLIM, ITURNON, SETISSW, IMUCAGE, IMUOP.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:
 | |
| #	FRESH START OR RESTART WITH NO GROUPS ACTIVE:  C(IMODES30) = OCT 37411.
 | |
| #	RESTART WITH ACTIVE GROUPS:	C(IMODES30) = (B(IMODES30)AND(OCT 00035)) PLUS OCT 37400.
 | |
| #					THIS LEAVES IMU FAIL BITS INTACT.
 | |
| #
 | |
| # ALARMS:  NONE.
 | |
| #
 | |
| # EXIT:  TNONTEST.
 | |
| #
 | |
| # OUTPUT:  UPDATED IMODES30 WITH CHANGES PROCESSED BY APPROPRIATE SUBROUTINE.
 | |
| 
 | |
| IMUMON		CA	IMODES30	# SEE IF THERE HAS BEEN A CHANGE IN THE
 | |
| 		EXTEND			# RELEVANT BITS OF CHAN 30.
 | |
| 		RXOR	CHAN30		# CHECK IF BITS 9,11-15 CHANGED
 | |
| 		MASK	30RDMSK
 | |
| 		EXTEND
 | |
| 		BZF	TNONTEST	# NO CHANGE IN STATUS
 | |
| 
 | |
| 		TS	RUPTREG1	# SAVE BITS WHICH HAVE CHANGED.
 | |
| 		LXCH	IMODES30	# UPDATE IMODES30.
 | |
| 		EXTEND
 | |
| 		RXOR	LCHAN
 | |
| 		TS	IMODES30
 | |
| 
 | |
| 		CS	ONE
 | |
| 		XCH	RUPTREG1
 | |
| 		EXTEND
 | |
| # Page 140
 | |
| 		BZMF	TLIM		# CHANGE IN IMU TEMP.
 | |
| 		TCF	NXTIFBIT	# BEGIN BIT SCAN.
 | |
| 
 | |
|  	-1	AD	ONE		# (RE-ENTERS HERE FROM NXTIFAIL.)
 | |
| NXTIFBIT	INCR	RUPTREG1	# ADVANCE BIT POSITION NUMBER.
 | |
|  	+1	DOUBLE
 | |
|  		TS	A		# SKIP IF OVERFLOW.
 | |
| 		TCF	NXTIFBIT	# LOOK FOR BIT.
 | |
| 
 | |
| 		XCH	RUPTREG2	# SAVE OVERFLOW-CORRECTED DATA.
 | |
| 		INDEX	RUPTREG1	# SELECT NEW VALUE OF THIS BIT.
 | |
| 		CAF	BIT14
 | |
| 		MASK	IMODES30
 | |
| 		INDEX	RUPTREG1
 | |
| 		TC	IFAILJMP
 | |
| 
 | |
| NXTIFAIL	CCS	RUPTREG2	# PROCESS ANY ADDITIONAL CHANGES.
 | |
| 		TCF	NXTIFBIT -1
 | |
| 
 | |
| # Page 141
 | |
| # PROGRAM NAME:  TNONTEST.
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM HONORS REQUESTS FOR ISS INITIALIZATION.  ISS TURN-ON (CHANNEL 30 BIT 14)
 | |
| # AND ISS OPERATE (CHANNEL 30 BIT 9) REQUESTS ARE TREATED AS A PAIR AND PROCESSING TAKES PLACE .480 SECONDS
 | |
| # AFTER EITHER ONE APPEARS.  THIS INITIALIZATION TAKES ON ONE OF THE FOLLOWING THREE FORMS:
 | |
| #
 | |
| #	1) ISS TURN-ON:  IN THIS SITUATION THE COMPUTER IS OPERATING WHEN THE ISS IS TURNED ON.  NOMINALLY,
 | |
| #	BOTH ISS TURN-ON AND ISS OPERATE APPEAR.  THE PLATFORM IS CAGED FOR 90 SECONDS AND THE ICDU'S ZEROED
 | |
| #	SO THAT AT THE END OF THE PROCESS THE GIMBAL LOCK MONITOR WILL FUNCTION PROPERLY.
 | |
| #
 | |
| #	2) ICDU INITIALIZATION:  IN THIS CASE THE COMPUTER WAS PROBABLY TURNED ON WITH THE ISS IN OPERATE OR
 | |
| #	A FRESH START WAS DONE WIT THE ISS IN OPERATE.  IN THIS CASE ONLY ISS OPERATE IS ON.  THE ICDU'S ARE
 | |
| #	ZEROED SO THE GIMBAL LOCK MONITOR WILL FUNCTION.  AN EXCEPTION IS IF THE ISS IS IN GIMBAL LOCK AFTER
 | |
| #	A RESTART, THE ICDU'S WILL NOT BE ZEROED.
 | |
| #
 | |
| #	3) RESTART WITH RESTARTABLE PROGRAM USING THE IMU:  IN THIS CASE, NO INITIALIZATION TAKES PLACE SINCE
 | |
| #	IT IS ASSUMED THAT THE USING PROGRAM DID THE INITIALIZATION AND THEREFORE T4RUPT SHOULD NOT INTERFERE.
 | |
| #
 | |
| # IMODES30 BIT 7 IS SET = 1 BY THE FIRST BIT (CHANNEL 30 BIT 14 OR 9) WHICH ARRIVES.  FOLLOWING THIS, TNONTEST IS
 | |
| # ENTERED, FINDS BIT 7 = 1 BUT BIT 8 = 0, SO IT SETS BIT 8 = 1 AND EXITS.  THE NEXT TIME IT FINDS BIT 8 = 1 AND
 | |
| # PROCEEDS, SETTING BITS 8 AND 7 = 0.  AT PROCTNON, IF ISS TURN-ON REQUEST IS PRESENT, THE ISS IS CAGED (ZERO +
 | |
| # COARSE).  IF ISS OPERATE IS NOT PRESENT PROGRAM ALARM 00213 IS ISSUED.  AT THE END OF A 90 SECOND CAGE, BIT 2
 | |
| # OF IMODES30 IS TESTED.  IF IT IS = 1, ISS TURN-ON WAS NOT PRESENT FOR THE ENTIRE 90 SECONDS.  IN THAT CASE, IF
 | |
| # THE ISS TURN-ON REQUEST IS PRESENT THE 90 SECOND WAIT IS REPEATED,  OTHERWISE NO ACTION OCCURS UNLESS A PROGRAM
 | |
| # WAS WAITING FOR THE INITIALIZATION IN WHICH CASE THE PROGRAM IS GIVEN AN IMUSTALL ERROR RETURN.  IF THE DELAY
 | |
| # WENT PROPERLY, THE ISS DELAY OUTBIT IS SENT AND THE ICDU'S ZEROED.  A TASK IS INITIATED TO REMOVE THE PIPA FAIL
 | |
| # INHIBIT BIT IN 10.24 SECONDS.  IF A MISSION PROGRAM WAS WAITING IT IS INFORMED VIA ENDIMU.
 | |
| #
 | |
| # AT PROCTNON, IF ONLY ISS OPERATE IS PRESENT (OPONLY), THE CDU'S ARE ZEROED UNLESS THE PLATFORM IS IN COARSE
 | |
| # ALIGN (= GIMBAL LOCK HERE) OR A MISSION PROGRAM IS USING THE IMU (INUSEFLG = 1).
 | |
| #
 | |
| # CALLING SEQUENCE:  T4RUPT EVERY 480 MILLISECONDS AFTER IMUMON.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  1) ENDTNON, 90 SECONDS AFTER CAGING STARTED.  2) ISSUP, 4 SECONDS AFTER CAGING DONE.
 | |
| #	3) PFAILOK, 10.24 SECONDS AFTER INITIALIZATION COMPLETED.  4) UNZ2, 320 MILLISECONDS AFTER ZEROING
 | |
| #	STARTED.
 | |
| #
 | |
| # SUBROUTINES CALLED: CAGESUB, CAGESUB2, ZEROICDU, ENDIMU, IMUBAD, NOATTOFF, SETISSW, VARDELAY.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:  SEE IMUMON.
 | |
| #
 | |
| # ALARMS:  PROGRAM ALARM 00213 IF ISS TURN-ON REQUESTED WITHOUT ISS OPERATE.
 | |
| #
 | |
| # EXIT:  ENDTNON EXITS TO C33TEST.  TASKS HAVING TO DO WITH INITIALIZATION EXIT AS FOLLOWS:  MISSION PROGRAM
 | |
| # WAITING AND INITIALIZATION COMPLETE, EXIT TO ENDIMU, MISSION PROGRAM WAITING AND INITIALIZATION FAILED, EXIT TO
 | |
| # IMUBAD, IMU NOT IN USE, EXIT TO TASKOVER.
 | |
| #
 | |
| # OUTPUT:  ISS INITIALIZED.
 | |
| 
 | |
| TNONTEST		CS	IMODES30	# AFTER PROCESSING ALL CHANGES, SEE IF IT
 | |
| # Page 142
 | |
| 			MASK	BIT7		# IS TIME TO ACT ON A TURN-ON SEQUENCE.
 | |
| 			CCS	A
 | |
| 			TCF	C33TEST		# NO -- EXAMINE CHANNEL 33.
 | |
| 
 | |
| 			CAF	BIT8		# SEE IF FIRST SAMPLE OR SECOND.
 | |
| 			MASK	IMODES30
 | |
| 			CCS	A
 | |
| 			TCF	PROCTNON	# REACT AFTER A SECOND SAMPLE.
 | |
| 
 | |
| 			CAF	BIT8		# IF FIRST SAMPLE, SET BIT TO REACT NEXT
 | |
| 			ADS	IMODES30	# TIME.
 | |
| 			TCF	C33TEST
 | |
| 
 | |
| # PROCESS IMU TURN-ON REQUESTS AFTER WAITING 1 SAMPLE FOR ALL SIGNALS TO ARRIVE.
 | |
| 
 | |
| PROCTNON		CS	BITS7&8
 | |
| 			MASK	IMODES30
 | |
| 			TS	IMODES30
 | |
| 			MASK	BIT14		# SEE IF TURN-ON REQUEST.
 | |
| 			CCS	A
 | |
| 			TCF	OPONLY		# OPERATE ON ONLY.
 | |
| 
 | |
| 			CS	IMODES30	# IF TURN-ON REQUEST, WE SHOULD HAVE IMU
 | |
| 			MASK	BIT9		# OPERATE.
 | |
| 			CCS	A
 | |
| 			TCF	+3
 | |
| 
 | |
| 			TC	ALARM		# ALARM IF NOT
 | |
| 			OCT	213
 | |
| 
 | |
|  	+3		TC	CAGESUB
 | |
| 
 | |
|  			CAF	90SECS
 | |
| 			TC	WAITLIST
 | |
| 			EBANK=	CDUIND
 | |
| 			2CADR	ENDTNON
 | |
| 
 | |
| 			TCF	C33TEST
 | |
| 
 | |
| RETNON			CAF	90SECS
 | |
| 			TC	VARDELAY
 | |
| 
 | |
| ENDTNON			CS	BIT2		# RESET TURN-ON REQUEST FAIL BIT.
 | |
| 			MASK	IMODES30
 | |
| 			XCH	IMODES30
 | |
| 			MASK	BIT2		# IF IT WAS OFF, SEND ISS DELAY COMPLETE.
 | |
| 			EXTEND
 | |
| 			BZF	ENDTNON2
 | |
| # Page 143
 | |
| 			CAF	BIT14		# IF IT WAS ON AND TURN-ON REQUEST NOW.
 | |
| 			MASK	IMODES30	# PRESENT, RE-ENTER 90 SEC DELAY IN WL.
 | |
| 			EXTEND
 | |
| 			BZF	RETNON
 | |
| 
 | |
| 			CS	STATE		# IF IT IS NOT ON NOW, SEE IF A PROG WAS
 | |
| 			MASK	IMUSEFLG	# WAITING.
 | |
| 			CCS	A
 | |
| 			TCF	TASKOVER
 | |
| 			TC	POSTJUMP
 | |
| 			CADR	IMUBAD		# UNSUCCESSFUL TURN-ON.
 | |
| 
 | |
| ENDTNON2		CAF	BIT15		# SEND ISS DELAY COMPLETE.
 | |
| 			EXTEND
 | |
| 			WOR	CHAN12		# TURN OFF ISS DELAY COUNTER
 | |
| 			TC 	IBNKCALL	# TURN OFF NO ATT LAMP.
 | |
| 			CADR	NOATTOFF
 | |
| 
 | |
| UNZ2			TC	ZEROICDU
 | |
| 
 | |
| 			CS	BITS4&5		# REMOVE ZERO AND COARSE.
 | |
| 			EXTEND
 | |
| 			WAND	CHAN12
 | |
| 
 | |
| 			CAF	BIT11		# WAIT 10 SECS FOR CTRS TO FIND GIMBALS
 | |
| 			TC	VARDELAY
 | |
| 
 | |
| ISSUP			CS	OCT54		# REMOVE CAGING, IMU FAIL INHIBIT, AND
 | |
| 			MASK	IMODES30	# ICDUFAIL INHIBIT FLAGS.
 | |
| 			TS	IMODES30
 | |
| 
 | |
| 			CS	BIT6		# ENABLE DAP
 | |
| 			MASK	IMODES33
 | |
| 			TS	IMODES33
 | |
| 
 | |
| 			TC	SETISSW		# ISS WARNING MIGHT HAVE BEEN INHIBITED.
 | |
| 
 | |
| 			CS	BIT15		# REMOVE IMU DELAY COMPLETE DISCRETE.
 | |
| 			EXTEND
 | |
| 			WAND	CHAN12
 | |
| 
 | |
| 			CAF	4SECS		# DONT ENABLE PROG ALARM ON PIP FAIL FOR
 | |
| 			TC	WAITLIST	# ANOTHER 4 SECS.
 | |
| 			EBANK=	CDUIND
 | |
| 			2CADR	PFAILOK
 | |
| 
 | |
| 			TCF	TASKOVER
 | |
| 
 | |
| OPONLY			CAF	BIT4
 | |
| # Page 144
 | |
| 			EXTEND			# IF OPERATE ON ONLY AND WE ARE IN COARSE
 | |
| 			RAND	CHAN12		# ALIGN, DON'T ZERO THE CDUS BECAUSE WE
 | |
| 			CCS	A		# MIGHT BE IN GIMBAL LOCK. USE V41N20 TO
 | |
| 			TCF	C33TEST		# RECOVER.
 | |
| 
 | |
| 			CAF	IMUSEFLG	# OTHERWISE, ZERO THE COUNTERS
 | |
| 			MASK	STATE		# UNLESS SOMEONE IS USING THE IMU.
 | |
| 			CCS	A
 | |
| 			TCF	C33TEST
 | |
| 
 | |
| 			TC	CAGESUB2	# SET TURNON FLAGS.
 | |
| 
 | |
| ISSZERO			TC	IBNKCALL	# TURN OFF NO ATT LAMP.
 | |
| 			CADR	NOATTOFF	#     IMU CAGE OFF ENTRY.
 | |
| 
 | |
| 			CAF	BIT5		# ISS CDU ZERO
 | |
| 			EXTEND
 | |
| 			WOR	CHAN12
 | |
| 
 | |
| 			TC	ZEROICDU
 | |
| 			CAF	BIT6		# WAIT 300 MS FOR AGS TO RECEIVE SIGNAL.
 | |
| 			TC	WAITLIST
 | |
| 			EBANK=	OPTMODES
 | |
| 			2CADR	UNZ2
 | |
| 
 | |
| 			TCF	C33TEST
 | |
| 
 | |
| # Page 145
 | |
| # PROGRAM NAME:  C33TEST
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM MONITORS THREE FLIP-FLOP INBITS OF CHANNEL 33 AND CALLS THE APPROPRIATE
 | |
| # SUBROUTINE TO PROCESS A CHANGE.  IT IS ANALOGOUS TO IMUMON, WHICH MONITORS CHANNEL 30, EXCEPT THAT IT READS
 | |
| # CHANNEL 33 WITH A WAND INSTRUCTION BECAUSE A `WRITE' PULSE IS REQUIRED TO RESET THE FLIP-FLOPS.  THE BITS
 | |
| # PROCESSED AND THE SUBROUTINES CALLED ARE:
 | |
| #	BIT	FUNCTION		SUBROUTINE
 | |
| #	---	--------		----------
 | |
| #	 13	PIPA FAIL		PIPFAIL
 | |
| #	 12	DOWNLINK TOO FAST	DNTMFAST
 | |
| #	 11	UPLINK TOO FAST		UPTMFAST
 | |
| #
 | |
| # UPON ENTRY TO THE SUBROUTINE, THE NEW BIT STATE IS IN A.
 | |
| #
 | |
| # CALLING SEQUENCE:  EVERY 480 MILLISECONDS AFTER TNONTEST.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  PIPFAIL, DNTMFAST AND UPTMFAST ON BIT CHANGES.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:  C(IMODES33) = OCT 16000 ON A FRESH START OR RESTART, THEREFORE, THESE ALARMS WILL
 | |
| # REAPPEAR IF THE CONDITIONS PERSIST.
 | |
| #
 | |
| # ALARMS:  NONE.
 | |
| #
 | |
| # EXIT:  GLOCKMON.
 | |
| #
 | |
| # OUTPUT:  UPDATED BITS 13, 12, AND 11 OF IMODES33 WITH CHANGES PROCESSED.
 | |
| 
 | |
| C33TEST		CA	IMODES33		# SEE IF RELEVANT CHAN33 BITS HAVE
 | |
| 		MASK	33RDMSK
 | |
| 		TS	L			# CHANGED.
 | |
| 		CAF	33RDMSK
 | |
| 		EXTEND
 | |
| 		WAND	CHAN33			# RESETS FLIP-FLOP INPUTS
 | |
| 		EXTEND
 | |
| 		RXOR	LCHAN
 | |
| 		EXTEND
 | |
| 		BZF	GLOCKMON		# ON NO CHANGE.
 | |
| 
 | |
| 		TS	RUPTREG1		# SAVE BITS WHICH HAVE CHANGED
 | |
| 		LXCH	IMODES33
 | |
| 		EXTEND
 | |
| 		RXOR	LCHAN
 | |
| 		TS	IMODES33		# UPDATED IMODES33.
 | |
| 
 | |
| 		CAF	ZERO
 | |
| 		XCH	RUPTREG1
 | |
| 		DOUBLE
 | |
| # Page 146
 | |
| 		TCF	NXTIBT +1		# SCAN FOR BIT CHANGES.
 | |
| 
 | |
|  	-1	AD	ONE
 | |
| NXTIBT		INCR	RUPTREG1
 | |
|  	+1	DOUBLE
 | |
|  		TS	A			# (CODING IDENTICAL TO CHAN 30).
 | |
| 		TCF	NXTIBT
 | |
| 
 | |
| 		XCH	RUPTREG2
 | |
| 		INDEX	RUPTREG1		# GET NEW VALUE OF BIT WHICH CHANGED.
 | |
| 		CAF	BIT13
 | |
| 		MASK	IMODES33
 | |
| 		INDEX	RUPTREG1
 | |
| 		TC	C33JMP
 | |
| 
 | |
| NXTFL33		CCS	RUPTREG2		# PROCESS POSSIBLE ADDITIONAL CHANGES.
 | |
| 		TCF	NXTIBT -1
 | |
| 
 | |
| # Page 147
 | |
| # PROGRAM NAME:  GLOCKMON
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM MONITORS THE CDUZ COUNTER TO DETERMINE WHETHER THE ISS IS IN GIMBAL LOCK
 | |
| # AND TAKES ACTION IF IT IS.  THREE REGIONS OF MIDDLE GIMBAL ANGLE (MGA) ARE USED:
 | |
| #
 | |
| #	1) ABS(MGA) LESS THAN OR EQUAL TO 70 DEGREES -- NORMAL MODE.
 | |
| #	2) ABS(MGA) GREATER THAN 70 DEGREES AND LESS THAN OR EQUAL TO 85 DEGREES -- GIMBAL LOCK LAMP TURNED ON.
 | |
| #	3) ABS(MGA) GREATER THAN 85 DEGREES -- ISS PUT IN COARSE ALIGN AND NO ATT LAMP TURNED ON.
 | |
| #
 | |
| # CALLING SEQUENCE:  EVERY 480 MILLISECONDS AFTER C33TEST.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:	1) SETCOARS WHEN ABS(MGA) GREATER THEN 85 DEGREES AND ISS NOT IN COARSE ALIGN.
 | |
| #			2) LAMPTEST BEFORE TURNING OFF GIMBAL LOCK LAMP.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:
 | |
| #		1) FRESH START OR RESTART WITH NO GROUPS ACTIVE:  C(CDUZ) = 0, IMODES30 BIT 6 = 0, IMODES33 BIT 1 = 0.
 | |
| #		2) RESTART WITH GROUPS ACTIVE:	SAME AS FRESH START EXCEPT C(CDUZ) NOT CHANGED SO GIMBAL MONITOR
 | |
| #						PROCEEDS AS BEFORE.
 | |
| #
 | |
| # ALARMS:	1) MGA REGION (2) CAUSES GIMBAL LOCK LAMP TO BE LIT.
 | |
| #		2) MGA REGION (3) CAUSES THE ISS TO BE PUT IN COARSE ALIGN AND THE NO ATT LAMP TO BE LIT IF EITHER NOT
 | |
| #		   SO ALREADY.
 | |
| 
 | |
| GLOCKMON	CCS	CDUZ
 | |
| 		TCF	GLOCKCHK		# SEE IF MAGNITUDE OF MGA IS GREATER THAN
 | |
| 		TCF	SETGLOCK		# 70 DEGREES.
 | |
| 		TCF	GLOCKCHK
 | |
| 		TCF	SETGLOCK
 | |
| 
 | |
| GLOCKCHK	AD	-70DEGS
 | |
| 		EXTEND
 | |
| 		BZMF	SETGLOCK -1		# NO LOCK.
 | |
| 
 | |
| 		AD	-15DEGS			# SEE IF ABS(MGA) GREATER THAN 85 DEGREES
 | |
| 		EXTEND
 | |
| 		BZMF	NOGIMRUN
 | |
| 
 | |
| 		CAF	BIT4			# IF SO, SYSTEM SHOULD BE IN COARSE ALIGN
 | |
| 		EXTEND				# TO PREVENT GIMBAL RUNAWAY.
 | |
| 		RAND	CHAN12
 | |
| 		CCS	A
 | |
| 		TCF	NOGIMRUN
 | |
| 
 | |
| 		TC	IBNKCALL		# GO INTO COARSE ALIGN.
 | |
| 		CADR	SETCOARS
 | |
| 
 | |
| 		CAF	SIX			# ENABLE ISS ERROR COUNTERS IN 60 MS.
 | |
| 		TC	WAITLIST
 | |
| # Page 148
 | |
| 		EBANK=	CDUIND
 | |
| 		2CADR	CA+ECE
 | |
| 
 | |
| NOGIMRUN	CAF	BIT6			# TURN ON GIMBAL LOCK LAMP.
 | |
| 		TCF	SETGLOCK
 | |
| 
 | |
|  -1		CAF	ZERO
 | |
| SETGLOCK	AD	DSPTAB +11D		# SEE IF PRESENT STATE OF GIMBAL LOCK LAMP
 | |
| 		MASK	BIT6			# AGREES WITH DESIRED STATE BY HALF ADDING
 | |
| 		EXTEND				# THE TWO.
 | |
| 		BZF	GLOCKOK			# OK AS IS.
 | |
| 
 | |
| 		MASK	DSPTAB +11D		# IF OFF, DON'T TURN ON IF IMU BEING CAGED.
 | |
| 		CCS	A
 | |
| 		TCF	GLAMPTST		# TURN OFF UNLESS LAMP TEST IN PROGRESS.
 | |
| 
 | |
| 		CAF	BIT6
 | |
| 		MASK	IMODES30
 | |
| 		CCS	A
 | |
| 		TCF	GLOCKOK
 | |
| 
 | |
| GLINVERT	CS	DSPTAB +11D		# INVERT GIMBAL LOCK LAMP.
 | |
| 		MASK	BIT6
 | |
| 		AD	BIT15			# TO INDICATE CHANGE IN DSPTAB +11D.
 | |
| 		XCH	DSPTAB +11D
 | |
| 		MASK	OCT37737
 | |
| 		ADS	DSPTAB +11D
 | |
| 		TCF	GLOCKOK
 | |
| 
 | |
| GLAMPTST	TC	LAMPTEST		# TURN OFF UNLESS LAMP TEST IN PROGRESS.
 | |
| 		TCF	GLOCKOK
 | |
| 		TCF	GLINVERT
 | |
| 
 | |
| -70DEGS		DEC	-.38888			# -70 DEGREES SCALED IN HALF-REVOLUTIONS.
 | |
| -15DEGS		DEC	-.08333
 | |
| 
 | |
| # Page 149
 | |
| # PROGRAM NAME:  TLIM.
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM MAINTAINS THE TEMP LAMP (BIT 4 OF CHANNEL 11) ON THE DSKY TO AGREE WITH
 | |
| # THE TEMP SIGNAL FROM THE ISS (BIT 15 OF CHANNEL 30).  HOWEVER, THE LIGHT WILL NOT BE TURNED OFF IF A LAMP TEST
 | |
| # IS IN PROGRESS.
 | |
| #
 | |
| # CALLING SEQUENCE:  CALLED BY IMUMON ON A CHANGE OF BIT 15 OF CHANNEL 30.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  LAMPTEST.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:  FRESH START AND RESTART TURN THE TEMP LAMP OFF.
 | |
| #
 | |
| # ALARMS:  TEMP LAMP TURNED ON WHEN THE IMU TEMP GOES OUT OF LIMITS.
 | |
| #
 | |
| # EXIT:  NXTIFAIL.
 | |
| #
 | |
| # OUTPUT:  SERVICE OF TEMP LAMP.		  IN A, EXCEPT FOR TLIM.
 | |
| 
 | |
| TLIM		MASK	POSMAX			# REMOVE BIT FROM WORD OF CHANGES AND SET
 | |
| 		TS	RUPTREG2		# DSKY TEMP LAMP ACCORDINGLY.
 | |
| 
 | |
| 		CCS	IMODES30
 | |
| 		TCF	TEMPOK
 | |
| 		TCF	TEMPOK
 | |
| 
 | |
| 		CAF	BIT4			# TURN ON LAMP.
 | |
| 		EXTEND
 | |
| 		WOR	DSALMOUT
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| TEMPOK		TC	LAMPTEST		# IF TEMP NOW OK, DON'T TURN OFF LAMP IF
 | |
| 		TCF	NXTIFAIL		# LAMP TEST IN PROGRESS.
 | |
| 
 | |
| 		CS	BIT4
 | |
| 		EXTEND
 | |
| 		WAND	DSALMOUT		# TURN OFF LAMP
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| # Page 150
 | |
| # PROGRAM NAME:  ITURNON.
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM IS CALLED BY IMUMON WHEN A CHANGE OF BIT 14 OF CHANNEL 30 (ISS TURN-ON
 | |
| # REQUEST) IS DETECTED.  UPON ENTRY, ITURNON CHECKS IF A TURN-ON DELAY SEQUENCE HAS FAILED, AND IF SO, IT EXITS.
 | |
| # IF NOT, IT CHECKS WHETHER THE TURN-ON REQUEST CHANGE IS TO ON OR OFF.  IF ON, IT SETS BIT 7 OF IMODES30 TO 1 SO
 | |
| # THAT TNONTEST WILL INITIATE THE ISS INITIALIZATION SEQUENCE.  IF OFF, THE TURN-ON DELAY SIGNAL, CHANNEL 12 BIT
 | |
| # 15, IS CHECKED AND IF IT IS ON, ITURNON EXITS.  IF THE DELAY SIGNAL IS OFF, PROGRAM ALARM 00207 IS ISSUED, BIT 2
 | |
| # OF IMODES30 IS SET TO 1 AND THE PROGRAM EXITS.
 | |
| #
 | |
| # THE SETTING OF BIT 2 OF IMODES30 (ISS DELAY SEQUENCE FAIL) INHIBITS THIS ROUTINE AND IMUOP FROM
 | |
| # PROCESSING ANY CHANGES.  THIS BIT WILL BE RESET BY THE ENDTNON ROUTINE WHEN THE CURRENT 90 SECOND DELAY PERIOD
 | |
| # ENDS.
 | |
| #
 | |
| # CALLING SEQUENCE:  FROM IMUMON WHEN ISS TURN-ON REQUEST CHANGES STATE.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  ALARM, IF THE ISS TURN-ON REQUEST IS NOT PRESENT FOR 90 SECONDS.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:  FRESH START AND RESTART SET BIT 15 OF CHANNEL 12 AND BITS 2 AND 7 OF IMODES30 TO 0,
 | |
| # AND BIT 14 OF IMODES30 TO 1.
 | |
| #
 | |
| # ALARMS: PROGRAM ALARM 00207 IS ISSUED IF THE ISS TURN-ON REQUEST SIGNAL IS NOT PRESENT FOR 90 SECONDS.
 | |
| #
 | |
| # EXIT:  NXTIFAIL.
 | |
| #
 | |
| # OUTPUT:  BIT 7 OF IMODES30 TO START ISS INITIALIZATION, OR BIT 2 OF IMODES30 AND PROGRAM ALARM 00207 TO INDICATE
 | |
| # A FAILED TURN-ON SEQUENCE.
 | |
| 
 | |
| ITURNON		CAF	BIT2		# IF DELAY REQUEST HAS GONE OFF
 | |
| 		MASK	IMODES30	# PREMATURELY, DO NOT PROCESS ANY CHANGES
 | |
| 		CCS	A		# UNTIL THE CURRENT 90 SEC WAIT EXPIRES.
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| 		CAF	BIT14		# SEE IF JUST ON OR OFF.
 | |
| 		MASK 	IMODES30
 | |
| 		EXTEND
 | |
| 		BZF	ITURNON2	# IF JUST ON.
 | |
| 
 | |
| 		CAF	BIT15
 | |
| 		EXTEND			# SEE IF DELAY PRESENT DISCRETE HAS BEEN
 | |
| 		RAND	CHAN12		# SENT.  IF SO, ACTION COMPLETE
 | |
| 		EXTEND
 | |
| 		BZF	+2
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| 		CAF	BIT2		# IF NOT, SET BIT TO INDICATE REQUEST NOT
 | |
| 		ADS	IMODES30	# PRESENT FOR FULL DURATION.
 | |
| 		TC	ALARM
 | |
| 		OCT	207
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| # Page 151
 | |
| ITURNON2	CS	IMODES30	# SET BIT7 TO INDICATE WAIT OF 1 SAMPLE
 | |
| 		MASK	BIT7
 | |
| 		ADS	IMODES30
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| # Page 152
 | |
| # PROGRAM NAME:  IMUCAGE.
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM PROCESSES CHANGES OF THE IMUCAGE INBIT, CHANNEL 30 BITS 11.  IF THE BIT
 | |
| # CHANGES TO 0 (CAGE BUTTON PRESSED), THE ISS IS CAGED (ICDU ZERO + COARSE ALIGN + NO ATT LAMP) UNTIL THE
 | |
| # ASTRONAUT SELECTS ANOTHER PROGRAM TO ALIGN THE ISS.  ANY PULSE TRAINS TO THE ICDU'S AND GYRO'S ARE TERMINATED,
 | |
| # THE ASSOCIATE OUTCOUNTERS ARE ZEROED AND THE GYRO'S ARE DE-SELECTED.  NO ACTION OCCURS WHEN THE BUTTON IS
 | |
| # RELEASED (INBIT CHANGES TO 1).
 | |
| #
 | |
| # CALLING SEQUENCE:  BY IMUMON WHEN IMU CAGE BIT CHANGES.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  CAGESUB.
 | |
| #
 | |
| # ERASABLE INITIALZATION:  FRESH START AND RESTART SET BIT 11 OF IMODES30 TO 1.
 | |
| #
 | |
| # ALARMS: NONE.
 | |
| #
 | |
| # EXIT:  NXTIFAIL.
 | |
| #
 | |
| # OUTPUT:  ISS CAGED, COUNTERS ZEROED, PULSE TRAINS TERMINATED AND NO ATT LAMP LIT.
 | |
| 
 | |
| IMUCAGE		CCS	A		# NO ACTION IF GOING OFF.
 | |
| 		TCF	ISSZERO
 | |
| 		CS	OCT77000	# TERMINATE ICDU, OPTICS, GYRO PULSE TRAINS
 | |
| 		EXTEND
 | |
| 		WAND	CHAN14
 | |
| 
 | |
| 		CS	OCT272		# KNOCK DOWN TVC ENABLE, IMU ERROR COUNTER
 | |
| 		EXTEND			#   ENABLE, ZERO ICDU, COARSE ALIGN
 | |
| 		WAND	CHAN12		#   ENABLE, OPTICS ERR CNTR ENABLE
 | |
| 
 | |
| 		CS	BIT13		# TURN OFF ENGINE
 | |
| 		EXTEND
 | |
| 		WAND	DSALMOUT
 | |
| 
 | |
| 		TC	CAGESUB1
 | |
| 
 | |
| 		TC	IBNKCALL	# KNOCK DOWN TRACK, REFSMMAT, DRIFT FLAGS
 | |
| 		CADR	RNDREFDR
 | |
| 
 | |
| 		CS	ZERO		# ZERO COMMAND OUT-COUNTERS
 | |
| 		TS	CDUXCMD
 | |
| 		TS	CDUYCMD
 | |
| 		TS	CDUZCMD
 | |
| 		TS	GYROCMD
 | |
| 
 | |
| 		CS	OCT740		# HAVING WAITED AT LEAST 27 MCT FROM
 | |
| 		EXTEND			# GYRO PULSE TRAIN TERMINATION, WE CAN
 | |
| 		WAND	CHAN14		# DE-SELECT THE GYROS.
 | |
| # Page 153
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| # Page 154
 | |
| # PROGRAM NAME:  IMUOP.
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM PROCESSES CHANGES IN THE ISS OPERATE DISCRETE, BIT 9 OF CHANNEL 30.
 | |
| # IF THE INBIT CHANGES TO 0, INDICATING ISS ON, IMUOP GENERALLY SETS BIT 7 OF IMODES30 TO 1 TO REQUEST ISS
 | |
| # INITIALIZATION VIA TNONTEST.  AN EXCEPTION IS DURING A FAILED ISS DELAY DURING WHICH BIT 2 OF IMODES30 IS SET
 | |
| # TO 1 AND NO FURTHER INITIALIZATION IS REQUIRED.  WHEN THE INBIT CHANGES TO 1, INDICATING ISS OFF, IMUSEFLG IS
 | |
| # TESTED TO SEE IF ANY PROGRAM WAS USING THE ISS.  IF SO, PROGRAM ALARM 00214 IS ISSUED.
 | |
| #
 | |
| # CALLING SEQUENCE:  BY IMUMON WHEN BIT 9 OF CHANNEL 30 CHANGES.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  ALARM, IF ISS IS TURNED OFF WHILE IN USE.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:  ON FRESH START AND RESTART, BIT 9 OF IMODES30 IS SET TO 1 EXCEPT WHEN THE GIMBAL LOCK
 | |
| # LAMP IS ON, IN WHICH CASE IT IS SET TO 0.  THIS PREVENTS ICDU ZERO BY TNONTEST WITH THE ISS IN GIMBAL LOCK.
 | |
| #
 | |
| # ALARMS:  PROGRAM ALARM 00214 IF THE ISS IS TURNED OFF WHILE IN USE.
 | |
| #
 | |
| # EXIT:  NXTIFAIL.
 | |
| #
 | |
| # OUTPUT:  ISS INITIALIZATION REQUEST (IMODES30 BIT 7) OR PROGRAM ALARM 00214.
 | |
| 
 | |
| IMUOP		EXTEND				# IF OPERATE JUST ON, WAIT 1 SAMPLE.
 | |
| 		BZF	IMUOP2
 | |
| 
 | |
| 		CS	IMODES33		# DISABLE DAP
 | |
| 		MASK	BIT6
 | |
| 		ADS	IMODES33
 | |
| 
 | |
| 		TC	IBNKCALL		# KNOCK DOWN TRACK, REFSMMAT, DRIFT FLAGS
 | |
| 		CADR	RNDREFDR
 | |
| 
 | |
| 		CS	BITS7&8			# KNOCK DOWN RENDEZVOUS, IMUUSE FLAGS
 | |
| 		MASK	STATE
 | |
| 		XCH	STATE			# IF GOING OFF, ALARM IF PROG USING IMU.
 | |
| 		COM
 | |
| 		MASK	IMUSEFLG
 | |
| 		CCS	A
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| 		TC	ALARM
 | |
| 		OCT	214
 | |
| 		TCF	NXTIFAIL
 | |
| 
 | |
| IMUOP2		CAF	BIT2			# SEE IF FAILED ISS TURN-ON SEQ IN PROG.
 | |
| 		MASK	IMODES30
 | |
| 		CCS	A
 | |
| 		TCF	NXTIFAIL		# IF SO, DON'T PROCESS UNTIL PRESENT 90
 | |
| 		TCF	ITURNON2		# SECONDS EXPIRES
 | |
| 
 | |
| # Page 155
 | |
| # PROGRAM NAME:  PIPFAIL
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM PROCESSES CHANGES OF BIT 13 OF CHANNEL 33, PIPA FAIL.  IT SETS BIT 10 OF
 | |
| # IMODES30 TO AGREE.  IT CALLS SETISSW IN CASE A PIPA FAIL NECESSITATES AN ISS WARNING.  IF NOT, I.E., IMODES30
 | |
| # BIT 1 = 1, AND A PIPA FAIL IS PRESENT AND THE ISS NOT BEING INITIALIZED, PROGRAM ALARM 0212 IS ISSUED.
 | |
| #
 | |
| # CALLING SEQUENCE:  BY C33TEST ON CHANGES OF CHANNEL 33 BIT 13.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  1) SETISSW, AND 2) ALARM (SEE FUNCTIONAL DESCRIPTION).
 | |
| #
 | |
| # ERASABLE INITIALIZATION:  SEE IMUMON FOR INITIALIZATION OF IMODES30.  THE RELEVANT BITS ARE 5, 7, 8, 9, AND 10.
 | |
| #
 | |
| # ALARMS:  PROGRAM ALARM 00212 IF PIPA FAIL IS PRESENT BUT NEITHER ISS WARNING IS TO BE ISSUED NOR THE ISS IS
 | |
| # BEING INITIALIZED.
 | |
| #
 | |
| # EXIT:  NXTFL33.
 | |
| #
 | |
| # OUTPUT:  PROGRAM ALARM 00212 AND ISS WARNING MAINTENANCE.
 | |
| 
 | |
| PIPFAIL		CCS	A			# SET BIT10 IN IMODES30 SO ALL ISS WARNING
 | |
| 		CAF	BIT10			# INFO IS IN ONE REGISTER.
 | |
| 		XCH	IMODES30
 | |
| 		MASK	-BIT10
 | |
| 		ADS	IMODES30
 | |
| 
 | |
| 		TC	SETISSW
 | |
| 
 | |
| 		CS	IMODES30		# IF PIP FAIL DOESN'T LIGHT ISS WARNING, DO
 | |
| 		MASK	BIT1			# A PROGRAM ALARM IF IMU OPERATING BUT NOT
 | |
| 		CCS	A			# CAGED OR BEING TURNED ON.
 | |
| 		TCF	NXTFL33
 | |
| 
 | |
| 		CA	IMODES30
 | |
| 		MASK	OCT1720
 | |
| 		CCS	A
 | |
| 		TCF	NXTFL33			# ABOVE CONDITION NOT MET.
 | |
| 
 | |
| 		TC	ALARM
 | |
| 		OCT	212
 | |
| 		TCF	NXTFL33
 | |
| 
 | |
| # Page 156
 | |
| # PROGRAM NAMES:  DNTMFAST, UPTMFAST
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THESE PROGRAMS PROCESS CHANGES OF BITS 12 AND 11 OF CHANNEL 33.  IF A BIT CHANGES TO A
 | |
| # 0, A PROGRAM ALARM IS ISSUED.  THE ALARMS ARE:
 | |
| #
 | |
| #	BIT	ALARM	CAUSE
 | |
| #	---	-----	-----
 | |
| #	 12	01105	DOWNLINK TOO FAST
 | |
| #	 11	01106	UPLINK TOO FAST
 | |
| #
 | |
| # CALLING SEQUENCE:  BY C33TEST ON A BIT CHANGE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  ALARM, IF A BIT CHANGES TO A 0.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:  FRESH START OR RESTART, BITS 12 AND 11 OF IMODES33 ARE SET TO 1.
 | |
| #
 | |
| # ALARMS:  SEE FUNCTIONAL DESCRIPTION.
 | |
| #
 | |
| # EXIT:  NXTFL33.
 | |
| #
 | |
| # OUTPUT:  PROGRAM ALARM ON A BIT CHANGE TO 0.
 | |
| 
 | |
| DNTMFAST	CCS	A			# DO PROG ALARM IF TM TOO FAST.
 | |
| 		TCF	NXTFL33
 | |
| 
 | |
| 		TC	ALARM
 | |
| 		OCT	1105
 | |
| 		TCF	NXTFL33
 | |
| 
 | |
| UPTMFAST	CCS	A			# SAME AS DNLINK TOO FAST WITH DIFFERENT
 | |
| 		TCF	NXTFL33			# ALARM CODE.
 | |
| 
 | |
| 		TC	ALARM
 | |
| 		OCT	1106
 | |
| 		TCF	NXTFL33
 | |
| 
 | |
| # Page 157
 | |
| # PROGRAM NAME:  SETISSW
 | |
| #
 | |
| # FUNCTIONAL DESCRIPTION:  THIS PROGRAM TURNS THE ISS WARNING LAMP ON AND OFF (CHANNEL 11 BIT 1 = 1 FOR ON,
 | |
| # 0 FOR OFF) DEPENDING ON THE STATUS OF IMODES30 BITS 13 (IMU FAIL) AND 4 (INHIBIT IMU FAIL), 12 (ICDU FAIL) AND
 | |
| # 3 (INHIBIT ICDU FAIL), AND 10 (PIPA FAIL) AND 1 (INHIBIT PIPA FAIL).  THE LAMP IS LEFT ON IF A LAMP TEST IS IN
 | |
| # PROGRESS.
 | |
| #
 | |
| # CALLING SEQUENCE:  CALLED BY IMUMON ON CHANGES TO IMU FAIL AND ICDU FAIL.  CALLED BY IFAILOK AND PFAILOK UPON
 | |
| # REMOVAL OF THE FAIL INHIBITS.  CALLED BY PIPFAIL WHEN THE PIPA FAIL DISCRETE CHANGES.  IT IS CALLED BY PIPUSE
 | |
| # SINCE THE PIPA FAIL PROGRAM ALARM MAY NECESSITATE AN ISS WARNING, AND LIKEWISE BY PIPFREE WHEN THE ALARM DEPARTS
 | |
| # AND IT IS CALLED BY IMUZERO3 AND ISSUP AFTER THE FAIL INHIBITS HAVE BEEN REMOVED.
 | |
| #
 | |
| # JOBS OR TASKS INITIATED:  NONE.
 | |
| #
 | |
| # SUBROUTINES CALLED:  NONE.
 | |
| #
 | |
| # ERASABLE INITIALIZATION:
 | |
| #
 | |
| #	1) IMODES30 -- SEE IMUMON.
 | |
| #	2) IMODES33 BIT 1 = 0 (LAMP TEST NOT IN PROGRESS).
 | |
| #
 | |
| # ALARMS:  ISS WARNING.
 | |
| #
 | |
| # EXIT: VIA Q.
 | |
| #
 | |
| # OUTPUT: ISS WARNING LAMP SET PROPERLY.
 | |
| 
 | |
| SETISSW		CAF	OCT15			# SET ISS WARNING USING THE FAIL BITS IN
 | |
| 		MASK	IMODES30		# BITS 13, 12, AND 10 OF IMODES30 AND THE
 | |
| 		EXTEND				# FAILURE INHIBIT BITS IN POSITIONS
 | |
| 		MP	BIT10			# 4, 3, AND 1.
 | |
| 		CA	IMODES30
 | |
| 		EXTEND
 | |
| 		ROR	LCHAN			# 0 INDICATES FAILURE
 | |
| 		COM
 | |
| 		MASK	OCT15000
 | |
| 		CCS	A
 | |
| 		TCF	ISSWON			# FAILURE.
 | |
| 
 | |
| ISSWOFF		CAF	BIT1			# DON'T TURN OFF ISS WARNING IF LAMP TEST
 | |
| 		MASK	IMODES33		# IN PROGRESS.
 | |
| 		CCS	A
 | |
| 		TC	Q
 | |
| 
 | |
| 		CS	BIT1
 | |
| 		EXTEND
 | |
| 		WAND	DSALMOUT		# TURN OFF ISS WARNING.
 | |
| 		TC	Q
 | |
| 
 | |
| ISSWON		EXTEND
 | |
| # Page 158
 | |
| 		QXCH	ITEMP6
 | |
| 		TC	VARALARM		# TELL EVERYONE WHAT CAUSED THE ISS WARNING
 | |
| 		CAF	BIT1
 | |
| 		EXTEND
 | |
| 		WOR	DSALMOUT		# TURN ON ISS WARNING
 | |
| 		TC	ITEMP6
 | |
| 
 | |
| CAGESUB		CS	BIT15+6			# SET OUTBITS + INTERNAL FLAGS FOR
 | |
| 		EXTEND				# SYSTEM TURN-ON OR CAGE.  DISABLE THE
 | |
| 		WAND	CHAN12			# ERROR COUNTER AND REMOVE THE IMU DELAY COMP.
 | |
| 		CAF	BITS4&5			# SEND ZERO AND COARSE.
 | |
| 		EXTEND
 | |
| 		WOR	CHAN12
 | |
| 
 | |
| CAGESUB1	CS	DSPTAB +11D		# TURN ON NO ATT LAMP
 | |
| 		MASK	OC40010
 | |
| 		ADS	DSPTAB +11D
 | |
| 
 | |
| CAGESUB2	CS	IMODES30		# SET FLAGS TO INDICATE CAGING OR TURN-ON
 | |
| 		MASK	OCT75			# AND INHIBIT ALL ISS WARNING INFO
 | |
| 		ADS	IMODES30
 | |
| 
 | |
| 		CS	IMODES33		# DISABLE DAP AUTO AND HOLD MODES
 | |
| 		MASK	BIT6
 | |
| 		ADS	IMODES33
 | |
| 
 | |
| 		TC	Q
 | |
| 
 | |
| IMUFAIL		EQUALS	SETISSW
 | |
| ICDUFAIL	EQUALS	SETISSW
 | |
| 
 | |
| # Page 159
 | |
| # JUMP TABLES AND CONSTANTS.
 | |
| 
 | |
| IFAILJMP	TCF	ITURNON			# CHANNEL 30 DISPATCH.
 | |
| 		TCF	IMUFAIL
 | |
| 		TCF	ICDUFAIL
 | |
| 		TCF	IMUCAGE
 | |
| 30RDMSK		OCT	76400			# (BIT 10 NOT SAMPLED HERE).
 | |
| 		TCF	IMUOP
 | |
| 
 | |
| C33JMP		TCF	PIPFAIL			# CHANNEL 33 DISPATCH.
 | |
| 		TCF	DNTMFAST
 | |
| 		TCF	UPTMFAST
 | |
| 
 | |
| # SUBROUTINE TO SKIP IF LAMP TEST NOT IN PROGRESS.
 | |
| 
 | |
| LAMPTEST	CS	IMODES33		# BIT 1 OF IMODES33 = 1 IF LAMP TEST IN
 | |
| 		MASK	BIT1			# PROGRESS.
 | |
| 		TCF	ZOPFIN3
 | |
| 
 | |
| 33RDMSK		EQUALS	PRIO16
 | |
| OC40010		OCT	40010
 | |
| OCT54		OCT	54
 | |
| OCT75		OCT	75
 | |
| OCT272		OCT	00272
 | |
| BITS7&8		OCT	300
 | |
| OCT1720		OCT	1720
 | |
| OCT740		OCT	00740
 | |
| OCT15000	EQUALS	PRIO15
 | |
| OCT77000	OCT	77000
 | |
| -BIT10		OCT	-1000
 | |
| 
 | |
| 90SECS		DEC	9000
 | |
| 120MS		=	OCT14			# (DEC12)
 | |
| GLOCKOK		EQUALS	RESUME
 | |
| 
 | |
| # Page 160
 | |
| # OPTICS MONITORING AND ZERO ROUTINES
 | |
| OPTMON		CA	OPTMODES		# MONITOR OPTICS INBITS IN CHAN 30 AND 33
 | |
| 		EXTEND
 | |
| 		RXOR	CHAN30			# LOOK FOR OCDU FAIL BIT CHANGE
 | |
| 		MASK	BIT7
 | |
| 		TS	RUPTREG1		# STORE CHANGE BIT
 | |
| 		CCS	A
 | |
| 		TC	OCDUFTST		# PROCESS OCDUFAIL BIT CHANGE
 | |
| 
 | |
| 33OPTMON	CCS	OPTIND			# BYPASS IF TVC TAKEOVER
 | |
| 		TCF	+4
 | |
| 		TCF	+3
 | |
| 		TCF	+2
 | |
| 		TCF	RESUME
 | |
| 
 | |
| 		CA	OPTMODES		# LOOK FOR OPTICS MODE SWITCH CHANGE
 | |
| 		EXTEND
 | |
| 		RXOR	CHAN33
 | |
| 		MASK	OCTHIRTY
 | |
| 		ADS	RUPTREG1		# STORE INBIT CHANGES
 | |
| 		LXCH	OPTMODES
 | |
| 		EXTEND
 | |
| 		RXOR	LCHAN
 | |
| 		TS	OPTMODES		# UPDATE OPTMODES TO SHOW BIT CHANGES
 | |
| 
 | |
| 		COM				# SAMPLE CURRENT SWITCH SETTING
 | |
| 		MASK	OCTHIRTY
 | |
| 		EXTEND
 | |
| 		BZF	SETSAMP			# MANUAL-SET ZERO IN SWSAMPLE
 | |
| 
 | |
| 		MASK	BIT5			# SEE IF CSC
 | |
| 		CCS	A
 | |
| 		TC	+2			# CSC-SET SWSAMPLE POS
 | |
| 		CAF	NEGONE			# ZOPTICS-SET SWSAMPLE (-1)
 | |
| SETSAMP		TS	SWSAMPLE		# CURRENT OPTICS SWITCH SETTING
 | |
| 
 | |
| PROCESSW	CCS	DESOPMOD		# BRANCH ON PREVIOUS SETTING
 | |
| 		TC	CSCDES			# CSC
 | |
| 		TC	MANUDES			# MANUAL
 | |
| 		TC	ZOPTDES			# ZERO OPTICS
 | |
| # Page 161
 | |
| ZOPTDES		CCS	SWSAMPLE		# IS SWITCH STILL AT ZOPTICS
 | |
| 		TC	ZTOCSC			# NOW AT CSC
 | |
| 		TC	ZTOMAN			# MANUAL
 | |
| 		TC	ZOPFIN1			# ZOPTICS-SEE IF ZOPT PROCESSING	// Should be TC ZOPFINI
 | |
| 		TC	SETDESMD		# ZOPT NOT PROCESSING-NO ACTION
 | |
| 
 | |
| 		CCS	ZOPTCNT			# ZOPT PROCESSING-CHECK COUNTER
 | |
| 		TC	SETCNT			# 32 SAMPLE NOT FINISHED-SET COUNTER
 | |
| 		TC	SETZOEND		# 32 SAMPLE WAIT COMPLETED-SET UP ZOP END
 | |
| 
 | |
| ZTOMAN		TC	ZOPFIN1			# ZOP TO MANUAL-IS ZOPT DONE		// Should be TC ZOPFINI
 | |
| 		TC	SETDESMD		# YES-NORMAL EXIT
 | |
| 
 | |
| ZOPALARM	TC	ALARM			# ALARM-SWITCHED ALTERED WHILE ZOPTICS
 | |
| 		OCT	00116
 | |
| 		CAF	OCT13			# PROCESSING-SET RETURN OPTION
 | |
| 		TS	WTOPTION
 | |
| 
 | |
| 		TC	CANZOPT			# CANCEL ZOPT
 | |
| 
 | |
| 		TC	SETDESMD
 | |
| 
 | |
| ZTOCSC		TC	ZOPFIN1			# SEE IF ZOPT PROCESSING		// Should be TC ZOPFINI
 | |
| 		TC	MANTOCSC +3		# NO-CHECK RETURN TO COARS OPT
 | |
| 		TC	ALARM			# ZOPT PROCESSING-ALARM
 | |
| 		OCT	00116
 | |
| 		TC	CANZOPT			# CANCEL ZOPT
 | |
| 		TC	MANTOCSC		# ZERO CNT-LOOK FOR COARS OPT RETURN
 | |
| 
 | |
| COARSLOK	CAF	BIT9			# IF COARS OPT SINCE FSTART GO TO L+2
 | |
| 		TCF	ZOPFIN2			# IF NOT GO TO L+1
 | |
| ZOPFIN1		CAF	BIT1			# SEE IF END ZOPT TASK WORKING	// Label should be ZOPFINI
 | |
| 		MASK	OPTMODES
 | |
| 		CCS	A
 | |
| 		TC	RESUME			# ZOPT TASK WORKING-WAIT ONE SAMPLE PERIOD
 | |
| 
 | |
| 		CAF	BIT3			# TEST IF ZOPTICS PROCESSING
 | |
| ZOPFIN2		MASK	OPTMODES		# RETURNS TO L+1 PROCESSING AND
 | |
| ZOPFIN3		CCS	A
 | |
| 		INCR	Q			# L+2 IF NOT
 | |
| 		TC	Q
 | |
| 
 | |
| CANZOPT		CS	SIX			# CANCEL ZERO OPTICS
 | |
| 		MASK	OPTMODES		# ZERO ZOPT PROCESSING BIT-ENABLE OCDUFAIL
 | |
| 		TS	OPTMODES
 | |
| 		CS	BIT1			# MAKE SURE ZERO OCDU IS OFF
 | |
| 		EXTEND
 | |
| 		WAND	CHAN12
 | |
| 		TC	Q
 | |
| 
 | |
| # Page 162
 | |
| MANUDES		CCS	SWSAMPLE		# SEE IF SWITCH STILL IN MANUAL MODE
 | |
| 		TC	MANTOCSC		# NOW AT CSC
 | |
| 		TC	MANTOMAN		# STILL MANUAL
 | |
| 		CCS	WTOPTION		# ZOPTICS-LOOK AT ZOPTICS RETURN OPTION
 | |
| 		TC	+2			# 5 SEC RETURN GOOD-CONTINUE ZOPTICS
 | |
| 		TC	OPTZERO			# ZOPTICS MUST START ANEW
 | |
| 
 | |
| 		TC	INITZOPT		# SHOW ZERO OPTICS PROCESSING
 | |
| 		TC	SETDESMD		# NORMAL EXIT
 | |
| 
 | |
| MANTOMAN	CCS	WTOPTION		# DECREMENT RETURN OPTION TIME
 | |
| 		TS	WTOPTION
 | |
| 		TC	SETDESMD
 | |
| 
 | |
| MANTOCSC	CAF	ZERO			# CANCEL ZOPT RETURN OPTION IF SET
 | |
| 		TS	WTOPTION
 | |
| 		TS	ZOPTCNT
 | |
| 
 | |
| 		TC	COARSLOK		# CHECK FOR COARS OPT RETURN
 | |
| 		TC	SETDESMD		# NO COARS TASK-NO ACTION
 | |
| 
 | |
| 		CAF	ONE			# SET COARS OPT WORKING
 | |
| 		TS	OPTIND
 | |
| 		CAF	BIT2			# ENABLE OPTICS CDU ERROR CNTS
 | |
| 		EXTEND
 | |
| 		WOR	CHAN12
 | |
| 
 | |
| 		TC	SETDESMD
 | |
| 
 | |
| CSCDES		CCS	SWSAMPLE		# SEE IF SWITCH STILL AT CSC
 | |
| 		TC	SETDESMD		# STILL AT CSC
 | |
| 		TC	CSCTOMAN		# MANUAL
 | |
| CSCTOZOP	CAF	OCT40			# ZOPTICS-INITIALIZE FOR ZOPT
 | |
| 		TS	ZOPTCNT
 | |
| 		TC	INITZOPT
 | |
| 
 | |
| CSCTOMAN	CCS	OPTIND			# SEE IF COARS WORKING
 | |
| 		TC	CANCOARS		# COARS WORKING-SWITCH NOT CSC-KILL COARS
 | |
| 		TC	CANCOARS
 | |
| 		TC	+1			# NO COARS-NORMAL EXIT
 | |
| 		TC	SETDESMD
 | |
| # Page 163
 | |
| CANCOARS	CA	NEGONE
 | |
| 		TS	OPTIND			# SET OPTIND (-1) TO SHOW NOT WORKING
 | |
| 		CS	BIT2			# DISABLE OCDU ERR CNTS
 | |
| 		EXTEND
 | |
| 		WAND	CHAN12
 | |
| 		CS	OPTMODES		# SET RETURN-TO-COARS BIT
 | |
| 		MASK	BIT9
 | |
| 		ADS	OPTMODES
 | |
| 
 | |
| 		TC	SETDESMD
 | |
| OPTZERO		TC	INITZOPT		# INITIALIZE ZERO OPTICS
 | |
| 
 | |
| 		CA	OCT40			# SET UP 32 SAMPLE WAIT
 | |
| SETCNT		TS	ZOPTCNT
 | |
| SETDESMD	CA	SWSAMPLE		# SET CURRENT SWITCH INDICATION-RESUME
 | |
| 		TS	DESOPMOD
 | |
| 		TC	RESUME
 | |
| 
 | |
| SETZOEND	CAF	BIT1			# SEND ZERO OPTICS CDU
 | |
| 		EXTEND
 | |
| 		WOR	CHAN12
 | |
| 		CA	200MS			# HOLD ZERO CDU FOR 200 MS
 | |
| 		TC	WAITLIST
 | |
| 		EBANK=	OPTMODES
 | |
| 		2CADR	ENDZOPT
 | |
| 
 | |
| 		CS	OPTMODES		# SHOW ZOPTICS TASK WORKING
 | |
| 		MASK	BIT1
 | |
| 		ADS	OPTMODES
 | |
| 
 | |
| 		TC	SETDESMD
 | |
| 
 | |
| ENDZOPT		TC	ZEROPCDU		# ZERO OCDU COUNTERS
 | |
| 		CS	BIT1			# TURN OFF ZERO OCDU
 | |
| 		EXTEND
 | |
| 		WAND	CHAN12
 | |
| 		CAF	200MS			# DELAY 200MS FOR CDUS TO RESYNCHRONIZE
 | |
| 		TC	VARDELAY
 | |
| 
 | |
| 		CS	OPTMODES		# SHOW ZOPTICS SINCE LAST FRESH START
 | |
| 		MASK	BIT10			#	OR RESTART
 | |
| 		ADS	OPTMODES
 | |
| 
 | |
| 		CS	SEVEN			# ENABLE OCDUFAIL-SHOW OPTICS COMPLETE
 | |
| 		MASK	OPTMODES
 | |
| 		TS	OPTMODES
 | |
| 
 | |
| 		TC	OCDUFTST		# CHECK OCDU FAIL BIT AFTER ENABLE.
 | |
| # Page 164
 | |
| 		TC	TASKOVER
 | |
| 
 | |
| ZEROPCDU	CAF	ZERO
 | |
| 		TS	CDUS			# ZERO IN CDUS, -20 IN CDUT
 | |
| 		TS	ZONE			# INITIALIZE SHAFT MONITOR ZONE
 | |
| 		CS	20DEGS
 | |
| 		TS	CDUT
 | |
| 		TC	Q
 | |
| 
 | |
| INITZOPT	CAF	ZERO			# INITIALIZE ZOPTICS-INHIBIT OCDUFAIL
 | |
| 		TS	WTOPTION		# AND SHOW OPTICS PROCESSING
 | |
| 		CS	OPTMODES		# SET ZERO OPTICS PROCESSING
 | |
| 		MASK	SIX			#	OPTICS CDU FAIL INHIBITED
 | |
| 		ADS	OPTMODES
 | |
| 		TC	Q
 | |
| 
 | |
| # Page 165
 | |
| OCDUFTST	CAF	BIT7			# SEE IF OCDUFAIL ON OR OFF
 | |
| 		EXTEND
 | |
| 		RAND	CHAN30
 | |
| 		CCS	A
 | |
| 		TCF	OPFAILOF		# OCDUFAIL LIGHT OFF
 | |
| 
 | |
| 		CAF	BIT2			# OCDUFAIL LIGHT ON UNLESS INHIBITED
 | |
| 		MASK	OPTMODES
 | |
| 		CCS	A
 | |
| 		TC	Q			# OCDUFAIL INHIBITED
 | |
| 
 | |
| OPFAILON	CAF	BIT8			# ON BIT
 | |
| 		AD	DSPTAB	+11D
 | |
| 		MASK	BIT8
 | |
| SETOFF		EXTEND
 | |
| 		BZF	TCQ			# NO CHANGE
 | |
| 
 | |
| 		TS	L
 | |
| 		CA	DSPTAB	+11D
 | |
| 		EXTEND
 | |
| 		RXOR	LCHAN
 | |
| 		MASK	POSMAX
 | |
| 		AD	BIT15			# SHOW ACTION WANTED
 | |
| 		TS	DSPTAB	+11D
 | |
| 		TC	Q
 | |
| 
 | |
| OPFAILOF	CAF	BIT1			# DON'T TURN OFF IF LAMP TEST
 | |
| 		MASK	IMODES33
 | |
| 		CCS	A
 | |
| 		TC	Q			# LAMP TEST IN PROGRESS
 | |
| 
 | |
| 		CAF	BIT8			# TURN OFF OCDUFAIL LIGHT
 | |
| 		MASK	DSPTAB	+11D
 | |
| 		TCF	SETOFF
 | |
| 
 | |
| OCT13		=	ELEVEN
 | |
| OCTHIRTY	EQUALS	BITS4&5
 | |
| 20DEGS		DEC	7199
 | |
| OCT40		EQUALS	BIT6
 | |
| 200MS		EQUALS	OCT24
 | |
| 
 | |
| # Page 166
 | |
| # OPTICS CDU DRIVING PROGRAM
 | |
| 
 | |
| 		BANK	10
 | |
| 		SETLOC	OPTDRV
 | |
| 		BANK
 | |
| 		COUNT*	$$/SXT
 | |
| 
 | |
| # SHAFT STOP MONITOR-ZONE UPDATE
 | |
| 
 | |
| OPTDRIVE	CA	CDUS			# GRAB OPTIC SHAFT CDU
 | |
| 		TS	L
 | |
| 		CCS	A			# GET ABS(CDUS)
 | |
| 		AD	13,14,15
 | |
| 		TCF	+2			# ABS(CDUS) - 45 DEG
 | |
| 		TCF	-2
 | |
| 		EXTEND
 | |
| 		BZMF	OZONE			# LESS THAN 45 DEG-SET ZONE 0
 | |
| 		CA	ZONE			# IF ZONE ZERO, CHANGE TO + OR - OTHERWISE
 | |
| 		EXTEND				# DON'T MESS WITH ZONE
 | |
| 		BZF	+2
 | |
| 		TCF	CONTDRVE		# JUST CONTINUE
 | |
| 		XCH	L			# GREATER THAN 45 DEG-SET ZONE TO SIGN CDU
 | |
| 		TCF	OZONE	+1
 | |
| OZONE		CAF	ZERO			# ABS(CDUS) LESS THAN 90 DEG-ZONE ZERO
 | |
| 		TS	ZONE
 | |
| 		COUNT*	$$/T4RUPT
 | |
| CONTDRVE	CCS	OPTIND
 | |
| 		TC	+4			# WORK COARS OPTICS
 | |
| 		TC	+3			# WORK COARS OPTICS
 | |
| 		TC	RESUME			# NO OPT
 | |
| 		TC	RESUME			# NO OPT
 | |
| 
 | |
| 		CA	SWSAMPLE		# SEE IF SWITCH AT CMC
 | |
| 		EXTEND
 | |
| 		BZMF	RESUME			# ZERO (-1)	MANUAL (+0)
 | |
| 
 | |
| 		CAF	BIT10			# SEE IF OCDUS ZEROED SINCE LAST FSTART
 | |
| 		MASK	OPTMODES
 | |
| 		CCS	A
 | |
| 		TC	+3
 | |
| 		TC	ALARM			# OPTICS NOT ZEROED
 | |
| 		OCT	00120
 | |
| 
 | |
| 		CA	BIT2			# SEE IF ERR CNTS ENABLED
 | |
| 		EXTEND
 | |
| 		RAND	CHAN12
 | |
| 		EXTEND
 | |
| 		BZF	SETBIT			# CNTS NOT ENABLED-DO IT AND RESUME
 | |
| 
 | |
| 		CAF	ONE			# INITIALIZE OPTIND
 | |
| # Page 167
 | |
| OPT2		TS	OPTIND
 | |
| 		EXTEND
 | |
| 		BZF	TRUNCMD			# CHECK TRUNION COMMAND
 | |
| 
 | |
| GETOPCMD	INDEX	OPTIND
 | |
| 		CA	DESOPTT			# PICK UP DESIRED OPT ANGLE
 | |
| 		EXTEND
 | |
| 		INDEX	OPTIND
 | |
| 		MSU	CDUT			# GET DIFFERENCE
 | |
| 		EXTEND
 | |
| 		MP	BIT13
 | |
| 		XCH	L
 | |
| 		DOUBLE
 | |
| 		TS	ITEMP1
 | |
| 		TCF	+2			# NO OVFL
 | |
| 
 | |
| 		ADS	L			# WITH OVFL
 | |
| STORCMD		INDEX	OPTIND
 | |
| 		LXCH	COMMANDO		# STORE COMMAND
 | |
| 		CCS	OPTIND
 | |
| 		TCF	OPT2			# GET NEXT COMMAND
 | |
| 
 | |
| 		TS	ITEMP1			# INITIALIZE SEND INDICATOR TO ZERO
 | |
| 		COUNT*	$$/SXT
 | |
| 
 | |
| # SHAFT STOP AVOIDANCE
 | |
| 
 | |
| 		CCS	CDUS			# IF CDUS GREATER THAN + OR - 90 DEG CHECK
 | |
| 		AD	NEG1/2			# FOR POSSIBLE STOP PROBLEM
 | |
| 		TCF	+2
 | |
| 		TCF	-2
 | |
| 		EXTEND
 | |
| 		BZMF	CMDSETUP		# CDU LESS THAN 90 DEG, NO PROBLEMS
 | |
| 
 | |
| 		CA	ZONE
 | |
| 		EXTEND
 | |
| 		BZF	CMDSETUP		# ZONE=3, NORMAL COMMAND
 | |
| 		MASK	BIT15			# GRAB SIGN OF ZONE
 | |
| 		TS	L
 | |
| 		CA	COMMANDO +1
 | |
| 		MASK	BIT15			# GRAB SIGN OF SHAFT COMMAND
 | |
| 		EXTEND
 | |
| 		RXOR	LCHAN
 | |
| 		CCS	A
 | |
| 		TCF	CMDSETUP		# SIGN ZONE NOT EQUAL TO SIGN COMMAND
 | |
| 		CCS	DESOPTS			# SEE IF DESOPTS BETWEEN -90 AND +90
 | |
| 		AD	NEG1/2
 | |
| 		TCF	+2			# ABS(DESOPTS) - 90 DEG
 | |
| 		TCF	-2
 | |
| 		EXTEND
 | |
| # Page 168
 | |
| 		BZMF	+2			# DESOPTS IN FIRST OR FOURTH QUAD
 | |
| 		TCF	CMDSETUP
 | |
| 		CS	COMMANDO +1		# REVERSE REGULAR COMMAND
 | |
| 		TS	COMMANDO +1
 | |
| 
 | |
| 		COUNT*	$$/T4RPT
 | |
| 
 | |
| CMDSETUP	CAF	ONE			# SET OPTIND
 | |
| 		TS	OPTIND
 | |
| 		INDEX	A
 | |
| 		CCS	COMMANDO		# GET SIGN OF COMMAND
 | |
| 		TC	POSOPCMD
 | |
| 		TC	NEXTOPT	+1		# ZERO COMMAND-SKIP SEND INDICATOR
 | |
| 		TC	NEGOPCMD
 | |
| 		TC	NEXTOPT	+1		# ZERO COMMAND
 | |
| 
 | |
| TRUNCMD		CS	CDUT			# IF COMMAND GREATER THAN 45 DEG-COMMAND
 | |
| 		AD	DESOPTT			# 45 DEG
 | |
| 		TS	Q
 | |
| 		TC	GETOPCMD		# LESS THAN 45 DEG-NORMAL OPERATION
 | |
| 
 | |
| 		CCS	A			# GREATER THAN 45 DEG-USE OPSMAX WITH
 | |
| 		CA	POSMAX			# CORRECT SIGN
 | |
| 		TC	+2
 | |
| 		CS	POSMAX
 | |
| 		TS	L
 | |
| 		TC	STORCMD
 | |
| POSOPCMD	AD	MAXPLS1
 | |
| 		EXTEND
 | |
| 		BZMF	DELOPCMD		# COMMAND LESS THAN MAX PULSE
 | |
| 		CS	MAXPLS			# GREATER THAN MAX PULSE-USE MAX PULSE
 | |
| 
 | |
| NEXTOPT		INCR	ITEMP1			# SET SEND INDICATOR
 | |
| 		AD	NEG0			# MAKE SURE ZERO COMMAND IS -ZERO
 | |
| 		INDEX	OPTIND
 | |
| 		TS	CDUTCMD			# STORE PULSE IN SEND REG
 | |
| 
 | |
| 		CCS	OPTIND
 | |
| 		TC	CMDSETUP +1		# GET NEXT OPT
 | |
| 
 | |
| 		CCS	ITEMP1			# ARE ANY PULSES TO GO
 | |
| 		TCF	SENDOCMD		# YES-SEND EM
 | |
| 		TC	RESUME			# NO
 | |
| 
 | |
| NEGOPCMD	AD	MAXPLS1
 | |
| 		EXTEND
 | |
| 		BZMF	DELOPCMD		# LESS THAN MAX PULSE
 | |
| 		CA	MAXPLS			# MAX PULSES
 | |
| 		TCF	NEXTOPT
 | |
| # Page 169
 | |
| DELOPCMD	INDEX	OPTIND
 | |
| 		XCH	COMMANDO		# SET UP SMALL COMMAND
 | |
| 		TCF	NEXTOPT
 | |
| 
 | |
| SENDOCMD	CAF	11,12			# SEND OCDU DRIVE COMMANDS
 | |
| 		EXTEND
 | |
| 		WOR	CHAN14
 | |
| 		TC	RESUME
 | |
| 
 | |
| SETBIT		CAF	BIT2			# ENABLE OCDU ERR CNTS
 | |
| 		EXTEND
 | |
| 		WOR	CHAN12
 | |
| 		TC	RESUME			# START COARS NEXT TIME AROUND
 | |
| 
 | |
| MAXPLS		DEC	-165			# WAS -80
 | |
| MAXPLS1		DEC	-164			# WAS -79
 | |
| 11,12		EQUALS	PRIO6
 | |
| 
 |