mirror of
				https://github.com/chrislgarry/Apollo-11.git
				synced 2025-10-26 04:16:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			164 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Copyright:	Public domain.
 | |
| # Filename:	T6-RUPT_PROGRAMS.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:	Ron Burkey <info@sandroid.org>.
 | |
| # Website:	www.ibiblio.org/apollo.
 | |
| # Pages:	1403-1405
 | |
| # Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
 | |
| #				from the Luminary131/ file of the same
 | |
| #				name, using Luminary099 page images.
 | |
| #
 | |
| # 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 1403
 | |
| # PROGRAM NAMES:	(1) T6JOBCHK	MOD. NO. 5	OCTOBER 2, 1967
 | |
| #			(2) DOT6RUPT
 | |
| # MODIFICATION BY:	LOWELL G. HULL (A.C.ELECTRONICS)
 | |
| #
 | |
| # THESE PROGRAMS ENABLE THE LM DAP TO CONTROL THE THRUST TIMES OF THE REACTION CONTROL SYSTEM JETS BY USING TIME6.
 | |
| # SINCE THE LM DAP MAINTAINS EXCLUSIVE CONTROL OVER TIME6 AND ITS INTERRUPTS, THE FOLLOWING CONVENTIONS HAVE BEEN
 | |
| # ESTABLISHED AND MUST NOT BE TAMPERED WITH:
 | |
| #	1.	NO NUMBER IS EVER PLACED INTO TIME6 EXCEPT BY LM DAP.
 | |
| #	2.	NO PROGRAM OTHER THAN LM DAP ENABLES THE TIME6 COUNTER.
 | |
| #	3.	TO USE TIME6, THE FOLLOWING SEQUENCE IS ALWAYS EMPLOYED:
 | |
| #		A.	A POSITIVE (NON-ZERO) NUMBER IS STORED IN TIME6.
 | |
| #		B.	THE TIME6 CLOCK IS ENABLED.
 | |
| #		C.	TIME6 IS INTERROGATED AND IS:
 | |
| #			I.	NEVER FOUND NEGATIVE (NON-ZERO) OR +0.
 | |
| #			II.	SOMETIMES FOUND POSITIVE (BETWEEN 1 AND 240D) INDICATING THAT IT IS ACTIVE.
 | |
| #			III.	SOMETIMES FOUND POSMAX INDICATING THAT IT IS INACTIVE AND NOT ENABLED.
 | |
| #			IV.	SOMETIMES FOUND NEGATIVE ZERO INDICATING THAT:
 | |
| #				A.	A T6RUPT IS ABOUT TO OCCUR AT THE NEXT DINC, OR
 | |
| #				B.	A T6RUPT IS WAITING IN THE PRIORITY CHAIN, OR
 | |
| #				C.	A T6RUPT IS IN PROCESS NOW.
 | |
| #	4.	ALL PROGRAMS WHICH OPERATE IN EITHER INTERRUPT MODE OR WITH INTERRUPT INHIBITED MUST CALL T6JOBCHK
 | |
| #		EVERY 5 MILLISECONDS TO PROCESS A POSSIBLE WAITING T6RUPT BEFORE IT CAN BE HONORED BY THE HARDWARE.
 | |
| #      (5.	PROGRAM JTLST, IN Q,R-AXES, HANDLES THE INPUT LIST.)
 | |
| #
 | |
| # T6JOBCHK CALLING SEQUENCE:
 | |
| #		L	TC	T6JOBCHK
 | |
| #		L+1	(RETURN)
 | |
| #
 | |
| # DOT6RUPT CALLING SEQUENCE:
 | |
| #			DXCH	ARUPT		# T6RUPT LEAD IN AT LOCATION 4004.
 | |
| #			EXTEND
 | |
| #			DCA	T6ADR
 | |
| #			DTCB
 | |
| #
 | |
| # SUBROUTINES CALLED:	DOT6RUPT CALLS T6JOBCHK.
 | |
| #
 | |
| # NORMAL EXIT MODES:	T6JOBCHK RETURNS TO L +1.
 | |
| #			DOT6RUPT TRANSFERS CONTROL TO RESUME.
 | |
| #
 | |
| # ALARM/ABORT MODES:	NONE.
 | |
| #
 | |
| # INPUT:	TIME6		NXT6ADR		OUTPUT:		TIME6		NXT6ADR		CHANNEL 5
 | |
| #		T6NEXT		T6NEXT +1			T6NEXT		T6NEXT +1	CHANNEL 6
 | |
| #		T6FURTHA	T6FURTHA +1			T6FURTHA	T6FURTHA +1	BIT15/CH13
 | |
| #
 | |
| # DEBRIS:	T6JOBCHK CLOBBERS A.  DOT6RUPT CLOBBERS NOTHING.
 | |
| 
 | |
| 		BLOCK	02
 | |
| # Page 1404
 | |
| 		BANK	17
 | |
| 		SETLOC	DAPS2
 | |
| 		BANK
 | |
| 		EBANK=	T6NEXT
 | |
| 		COUNT*	$$/DAPT6
 | |
| 
 | |
| T6JOBCHK	CCS	TIME6		# CHECK TIME6 FOR WAITING T6RUPT:
 | |
| 		TC	Q		# NONE: CLOCK COUNTING DOWN.
 | |
| 		TC	CCSHOLE
 | |
| 		TC	T6JOBCHK +3
 | |
| 
 | |
| # CONTROL PASSES TO T6JOB ONLY WHEN C(TIME6) = -0 (I.E., WHEN A T6RUPT MUST BE PROCESSED).
 | |
| 
 | |
| T6JOB		CAF	POSMAX		# DISABLE CLOCK: NEEDED SINCE RUPT OCCURS
 | |
| 		EXTEND			# 1 DINC AFTER T6 = 77777. FOR 625 MUSECS
 | |
| 		WAND	CHAN13		# MUST NOT HAVE T6 = +0 WITH ENABLE SET
 | |
| 
 | |
| 		CA	POSMAX
 | |
| 		ZL
 | |
| 		DXCH	T6FURTHA
 | |
| 		DXCH	T6NEXT
 | |
| 		LXCH	NXT6ADR
 | |
| 		TS	TIME6
 | |
| 
 | |
| 		AD	PRIO37
 | |
| 		TS	A
 | |
| 		TCF	ENABLET6
 | |
| 		CA	POSMAX
 | |
| 		TS	TIME6
 | |
| 		TCF	GOCH56
 | |
| ENABLET6	CA	BIT15
 | |
| 		EXTEND
 | |
| 		WOR	CHAN13
 | |
| 		CA	T6NEXT
 | |
| 		AD	PRIO37
 | |
| 		TS	A
 | |
| 		TCF	GOCH56
 | |
| 		CA	POSMAX
 | |
| 		TS	T6NEXT
 | |
| GOCH56		INDEX	L
 | |
| 		TCF	WRITEP -1
 | |
| 
 | |
| 		BLOCK	02
 | |
| 		SETLOC	FFTAG9
 | |
| 		BANK
 | |
| 		EBANK=	CDUXD
 | |
| 		COUNT*	$$/DAPT6
 | |
| 
 | |
| 		CA	NEXTP
 | |
| WRITEP		EXTEND
 | |
| 		WRITE	CHAN6
 | |
| # Page 1405
 | |
| 		TC	Q
 | |
| 
 | |
| 		CA	NEXTU
 | |
| WRITEU		TS	L
 | |
| 		CS	00314OCT
 | |
| 		EXTEND
 | |
| 		RAND	CHAN5
 | |
| 		AD	L
 | |
| 		EXTEND
 | |
| 		WRITE	CHAN5
 | |
| 		TC	Q
 | |
| 
 | |
| 		CA	NEXTV
 | |
| WRITEV		TS	L
 | |
| 		CA	00314OCT
 | |
| 		TCF	-9D
 | |
| 00314OCT	OCT	00314
 | |
| 
 | |
| 		BANK	17
 | |
| 		SETLOC	DAPS2
 | |
| 		BANK
 | |
| 
 | |
| 		EBANK=	T6NEXT
 | |
| 		COUNT*	$$/DAPT6
 | |
| 
 | |
| DOT6RUPT	LXCH	BANKRUPT	# (INTERRUPT LEAD INS CONTINUED)
 | |
| 		EXTEND
 | |
| 		QXCH	QRUPT
 | |
| 
 | |
| 		TC	T6JOBCHK	# CALL T6JOBCHK.
 | |
| 
 | |
| 		TCF	RESUME		# END TIME6 INTERRUPT PROCESSOR.
 | |
| 
 |