mirror of
				https://github.com/chrislgarry/Apollo-11.git
				synced 2025-10-26 04:16:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			497 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			497 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Copyright:	Public domain.
 | |
| # Filename:	EXECUTIVE.agc
 | |
| # Purpose:	Part of the source code for Colossus 2A, AKA Comanche 055.
 | |
| #		It is part of the source code for the Command Module's (CM)
 | |
| #		Apollo Guidance Computer (AGC), for Apollo 11.
 | |
| # Assembler:	yaYUL
 | |
| # Contact:	Ron Burkey <info@sandroid.org>.
 | |
| # Website:	www.ibiblio.org/apollo.
 | |
| # Pages:	1208-1220
 | |
| # Mod history:	2009-05-14 RSB	Adapted from the Colossus249/ file of the
 | |
| #				same name, using Comanche055 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 055 of AGC program Comanche by NASA
 | |
| #	2021113-051.  10:28 APR. 1, 1969
 | |
| #
 | |
| #	This AGC program shall also be referred to as
 | |
| #			Colossus 2A
 | |
| 
 | |
| # Page 1208
 | |
| 		BLOCK	02
 | |
| 
 | |
| # TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
 | |
| 
 | |
| 		COUNT	02/EXEC
 | |
| 
 | |
| NOVAC		INHINT
 | |
| 		AD	FAKEPRET	# LOC(MPAC +6) - LOC(QPRET)
 | |
| 		TS	NEWPRIO		# PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
 | |
| 
 | |
| 		EXTEND
 | |
| 		INDEX	Q		# Q WILL BE UNDISTURBED THROUGHOUT.
 | |
| 		DCA	0		# 2CADR OF JOB ENTERED.
 | |
| 		DXCH	NEWLOC
 | |
| 		CAF	EXECBANK
 | |
| 		XCH	FBANK
 | |
| 		TS	EXECTEM1
 | |
| 		TCF	NOVAC2		# ENTER EXECUTIVE BANK.
 | |
| 
 | |
| # TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
 | |
| 
 | |
| FINDVAC		INHINT
 | |
| 		TS	NEWPRIO
 | |
| 		EXTEND
 | |
| 		INDEX	Q
 | |
| 		DCA	0
 | |
| SPVACIN		DXCH	NEWLOC
 | |
| 		CAF	EXECBANK
 | |
| 		XCH	FBANK
 | |
| 		TCF	FINDVAC2	# OFF TO EXECUTIVE SWITCHED-BANK.
 | |
| 
 | |
| # TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
 | |
| # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
 | |
| 
 | |
| SPVAC		XCH	Q
 | |
| 		AD	NEG2
 | |
| 		XCH	Q
 | |
| 		TCF	SPVACIN
 | |
| 
 | |
| # TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
 | |
| 
 | |
| CHANG1		LXCH	Q
 | |
| 		CAF	EXECBANK
 | |
| 		XCH	BBANK
 | |
| 		TCF	CHANJOB
 | |
| 
 | |
| # TO SUSPEND AN INTERPRETIVE JOB:
 | |
| 
 | |
| CHANG2		CS	LOC		# NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
 | |
| # ITRACE (4) REFERS TO "CHANG2".
 | |
| # Page 1209
 | |
| 		TS	L
 | |
| 	+2	CAF	EXECBANK
 | |
|  		TS	BBANK
 | |
| 		TCF	CHANJOB -1
 | |
| 
 | |
| # Page 1210
 | |
| # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
 | |
| 
 | |
| JOBSLEEP	TS	LOC
 | |
| 		CAF	EXECBANK
 | |
| 		TS	FBANK
 | |
| 		TCF	JOBSLP1
 | |
| 
 | |
| # TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
 | |
| 
 | |
| JOBWAKE		INHINT
 | |
| 		TS	NEWLOC
 | |
| 		CS	TWO		# EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
 | |
| 		ADS	Q
 | |
| 		CAF	EXECBANK
 | |
| 		XCH	FBANK
 | |
| 		TCF	JOBWAKE2
 | |
| 
 | |
| # TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
 | |
| 
 | |
| PRIOCHNG	INHINT			# NEW PRIORITY ARRIVES IN A. RETURNS TO
 | |
| 		TS	NEWPRIO		# CALLER AS SOON AS NEW JOB PRIORITY IS
 | |
| 		CAF	EXECBANK	# HIGHEST. PREPARE FOR POSSIBLE BASIC-
 | |
| 		XCH	BBANK		# STYLE CHANGE-JOB.
 | |
| 		TS	BANKSET
 | |
| 		CA	Q
 | |
| 		TCF	PRIOCH2
 | |
| 
 | |
| # TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
 | |
| 
 | |
| ENDOFJOB	CAF	EXECBANK
 | |
| 		TS	FBANK
 | |
| 		TCF	ENDJOB1
 | |
| 
 | |
| ENDFIND		CA	EXECTEM1	# RETURN TO CALLER AFTER JOB ENTRY
 | |
| 		TS	FBANK		# COMPLETE.
 | |
| 		TCF	Q+2
 | |
| EXECBANK	CADR	FINDVAC2
 | |
| 
 | |
| FAKEPRET	ADRES	MPAC -36D	# LOC(MPAC +6) - LOC(QPRET)
 | |
| 
 | |
| # Page 1211
 | |
| # LOCATE AN AVAILABLE VAC AREA.
 | |
| 
 | |
| 		BANK	01
 | |
| 		COUNT	01/EXEC
 | |
| 
 | |
| FINDVAC2	TS	EXECTEM1	# (SAVE CALLER'S BANK FIRST.)
 | |
| 		CCS	VAC1USE
 | |
| 		TCF	VACFOUND
 | |
| 		CCS	VAC2USE
 | |
| 		TCF	VACFOUND
 | |
| 		CCS	VAC3USE
 | |
| 		TCF	VACFOUND
 | |
| 		CCS	VAC4USE
 | |
| 		TCF	VACFOUND
 | |
| 		CCS	VAC5USE
 | |
| 		TCF	VACFOUND
 | |
| 		TC	BAILOUT
 | |
| 		OCT	1201		# NO VAC AREAS.
 | |
| 
 | |
| VACFOUND	AD	TWO		# RESERVE THIS VAC AREA BY STORING A ZERO
 | |
| 		ZL			# IN ITS VAC USE REGISTER AND STORE THE
 | |
| 		INDEX	A		# ADDRESS OF THE FIRST WORD OF IT IN THE
 | |
| 		LXCH	0 -1		# LOW NINE BITS OF THE PRIORITY WORD.
 | |
| 		ADS	NEWPRIO
 | |
| 
 | |
| NOVAC2		CAF	ZERO		# NOVAC ENTERS HERE. FIND A CORE SET.
 | |
| 		TS	LOCCTR
 | |
| 		CAF	NO.CORES	# SEVEN SETS OF ELEVEN REGISTERS EACH.
 | |
| NOVAC3		TS	EXECTEM2
 | |
| 		INDEX	LOCCTR
 | |
| 		CCS	PRIORITY	# EACH PRIORITY REGISTER CONTAINS -0 IF
 | |
| 		TCF	NEXTCORE	# THE CORRESPONDING CORE SET IS AVAILABLE.
 | |
| NO.CORES	DEC	6
 | |
| 		TCF	NEXTCORE	# AN ACTIVE JOB HAS A POSITIVE PRIORITY
 | |
| 					# BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
 | |
| 
 | |
| # Page 1212
 | |
| CORFOUND	CA	NEWPRIO		# SET THE PRIORITY OF THIS JOB IN THE CORE
 | |
| 		INDEX	LOCCTR		# SET'S PRIORITY REGISTER AND SET THE
 | |
| 		TS	PRIORITY	# JOB'S PUSH-DOWN POINTER AT THE BEGINNING
 | |
| 		MASK	LOW9		# OF THE WORK AREA AND OVERFLOW INDICATOR
 | |
| 		INDEX	LOCCTR
 | |
| 		TS	PUSHLOC		# OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
 | |
| 
 | |
| 		CCS	LOCCTR		# IF CORE SET ZERO IS BEING LOADED, SET UP
 | |
| 		TCF	SETLOC		# OVFIND AND FIXLOC IMMEDIATELY.
 | |
| 		TS	OVFIND
 | |
| 		CA	PUSHLOC
 | |
| 		TS	FIXLOC
 | |
| 
 | |
| SPECTEST	CCS	NEWJOB		# SEE IF ANY ACTIVE JOBS WAITING (RARE).
 | |
| 		TCF	SETLOC		# MUST BE AWAKENED BUT UNCHANGED JOB.
 | |
| 		TC	CCSHOLE
 | |
| 		TC	CCSHOLE
 | |
| 		TS	NEWJOB		# +0 SHOWS ACTIVE JOB ALREADY SET.
 | |
| 		DXCH	NEWLOC
 | |
| 		DXCH	LOC
 | |
| 		TCF	ENDFIND
 | |
| 
 | |
| SETLOC		DXCH	NEWLOC		# SET UP THE LOCATION REGISTERS FOR THIS
 | |
| 		INDEX	LOCCTR
 | |
| 		DXCH	LOC
 | |
| 		INDEX	NEWJOB		# THIS INDEX INSTRUCTION INSURES THAT THE
 | |
| 		CS	PRIORITY	# HIGHEST ACTIVE PRIORITY WILL BE COMPARED
 | |
| 		AD	NEWPRIO		# WITH THE NEW PRIORITY TO SEE IF NEWJOB
 | |
| 		EXTEND			# SHOULD BE SET TO SIGNAL A SWITCH.
 | |
| 		BZMF	ENDFIND
 | |
| 		CA	LOCCTR		# LOCCTR IS LEFT SET AT THIS CORE SET IF
 | |
| 		TS	NEWJOB		# THE CALLER WANTS TO LOAD ANY MPAC
 | |
| 		TCF	ENDFIND		# REGISTERS, ETC.
 | |
| 
 | |
| NEXTCORE	CAF	COREINC
 | |
| 		ADS	LOCCTR
 | |
| 		CCS	EXECTEM2
 | |
| 		TCF	NOVAC3
 | |
| 		TC	BAILOUT		# NO CORE SETS.
 | |
| 		OCT	1202
 | |
| # Page 1213
 | |
| # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
 | |
| 
 | |
| 	-2	LXCH	LOC
 | |
| 	-1	CAE	BANKSET		# BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
 | |
| CHANJOB		INHINT
 | |
| 		EXTEND
 | |
| 		ROR	SUPERBNK	# PICK UP CURRENT SBANK FOR BBCON
 | |
| 		XCH	L		# LOC IN A AND BBCON IN L.
 | |
| 	+4	INDEX	NEWJOB		# SWAP LOC AND BANKSET.
 | |
| 		DXCH	LOC
 | |
| 		DXCH	LOC
 | |
| 
 | |
| 		CAE	BANKSET
 | |
| 		EXTEND
 | |
| 		WRITE	SUPERBNK	# SET SBANK FOR NEW JOB.
 | |
| 		DXCH	MPAC		# SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
 | |
| 		INDEX	NEWJOB
 | |
| 		DXCH	MPAC
 | |
| 		DXCH	MPAC
 | |
| 		DXCH	MPAC +2
 | |
| 		INDEX	NEWJOB
 | |
| 		DXCH	MPAC +2
 | |
| 		DXCH	MPAC +2
 | |
| 		DXCH	MPAC +4
 | |
| 		INDEX	NEWJOB
 | |
| 		DXCH	MPAC +4
 | |
| 		DXCH	MPAC +4
 | |
| 		DXCH	MPAC +6
 | |
| 		INDEX	NEWJOB
 | |
| 		DXCH	MPAC +6
 | |
| 		DXCH	MPAC +6
 | |
| 
 | |
| 		CAF	ZERO
 | |
| 		XCH	OVFIND		# MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
 | |
| 		EXTEND
 | |
| 		BZF	+3
 | |
| 		CS	PUSHLOC
 | |
| 		TS	PUSHLOC
 | |
| 
 | |
| 		DXCH	PUSHLOC
 | |
| 		INDEX	NEWJOB
 | |
| 		DXCH	PUSHLOC
 | |
| 		DXCH	PUSHLOC		# SWAPS PUSHLOC AND PRIORITY.
 | |
| 		CAF	LOW9		# SET FIXLOC TO BASE OF VAC AREA.
 | |
| 		MASK	PRIORITY
 | |
| 		TS	FIXLOC
 | |
| 
 | |
| 		CCS	PUSHLOC		# SET OVERFLOW INDICATOR ACCORDING TO
 | |
| 		CAF	ZERO
 | |
| 		TCF	ENDPRCHG -1
 | |
| 
 | |
| # Page 1214
 | |
| 		CS	PUSHLOC
 | |
| 		TS	PUSHLOC
 | |
| 		CAF	ONE
 | |
| 		XCH	OVFIND
 | |
| 		TS	NEWJOB
 | |
| 
 | |
| ENDPRCHG	RELINT
 | |
| 		DXCH	LOC		# BASIC JOBS HAVE POSITIVE ADDRESSES, SO
 | |
| 		EXTEND			# DISPATCH WITH A DTCB.
 | |
| 		BZMF	+2		# IF INTERPRETIVE, SET UP EBANK, ETC.
 | |
| 		DTCB
 | |
| # Page 1215
 | |
| 		COM			# EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
 | |
| 		AD	ONE
 | |
| 		TS	LOC		# RESUME.
 | |
| 		TCF	INTRSM
 | |
| 
 | |
| # COMPLETE JOBSLEEP PREPARATIONS.
 | |
| 
 | |
| JOBSLP1		INHINT
 | |
| 		CS	PRIORITY	# NNZ PRIORITY SHOWS JOB ASLEEP.
 | |
| 		TS	PRIORITY
 | |
| 		CAF	LOW7
 | |
| 		MASK	BBANK
 | |
| 		EXTEND
 | |
| 		ROR	SUPERBNK	# SAVE OLD SUPERBANK VALUE.
 | |
| 		TS	BANKSET
 | |
| 		CS	ZERO
 | |
| JOBSLP2		TS	BUF +1		# HOLDS - HIGHEST PRIORITY.
 | |
| 		TCF	EJSCAN		# SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
 | |
| 
 | |
| NUCHANG2	INHINT			# QUICK... DONT LET NEWJOB CHANGE TO +0 .
 | |
| 		CCS	NEWJOB
 | |
| 		TCF	+3		# NEWJOB STILL PNZ
 | |
| 		RELINT			# NEWJOB HAS CHANGED TO +0. WAKE UP JOB
 | |
| 		TCF	ADVAN +2	# VIA NUDIRECT.  (VERY RARE CASE.)
 | |
| 
 | |
| 		CAF	TWO
 | |
| 		EXTEND
 | |
| 		WOR	DSALMOUT	# TURN ON ACTIVITY LIGHT
 | |
| 		DXCH	LOC		# AND SAVE ADDRESS INFO FOR BENEFIT OF
 | |
| 		TCF	CHANJOB + 4	#  POSSIBLE SLEEPING JOB.
 | |
| 
 | |
| # Page 1216
 | |
| # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP.  IF THE FCADR IN THE
 | |
| # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED.  IF NO JOB IS FOUND,
 | |
| # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
 | |
| 
 | |
| JOBWAKE2	TS	EXECTEM1
 | |
| 		CAF	ZERO		# BEGIN CORE SET SCAN.
 | |
| 		TS	LOCCTR
 | |
| 		CAF	NO.CORES
 | |
| JOBWAKE4	TS	EXECTEM2
 | |
| 		INDEX	LOCCTR
 | |
| 		CCS	PRIORITY
 | |
| 		TCF	JOBWAKE3	# ACTIVE JOB - CHECK NEXT CORE SET.
 | |
| COREINC		DEC	12		# 12 REGISTERS PER CORE SET.
 | |
| 		TCF	WAKETEST	# SLEEPING JOB - SEE IF CADR MATCHES.
 | |
| 
 | |
| JOBWAKE3	CAF	COREINC
 | |
| 		ADS	LOCCTR
 | |
| 		CCS	EXECTEM2
 | |
| 		TCF	JOBWAKE4
 | |
| 		CS	ONE		# EXIT IF SLEEPING JOB NOT FOUND.
 | |
| 		TS	LOCCTR
 | |
| 		TCF	ENDFIND
 | |
| 
 | |
| WAKETEST	CS	NEWLOC
 | |
| 		INDEX	LOCCTR
 | |
| 		AD	LOC
 | |
| 		EXTEND
 | |
| 		BZF	+2		# IF MATCH.
 | |
| 		TCF 	JOBWAKE3	# EXAMINE NEXT CORE SET IF NO MATCH.
 | |
| 
 | |
| 		INDEX	LOCCTR		# RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
 | |
| 		CS	PRIORITY
 | |
| 		TS	NEWPRIO
 | |
| 		INDEX	LOCCTR
 | |
| 		TS	PRIORITY
 | |
| 
 | |
| 		CS	FBANKMSK	# MAKE UP THE 2CADR OF THE WAKE ADDRESS
 | |
| 		MASK	NEWLOC		# USING THE CADR IN NEWLOC AND THE EBANK
 | |
| 		AD	2K		# HALF OF BBANK SAVED IN BANKSET.
 | |
| 		XCH	NEWLOC
 | |
| 		MASK	FBANKMSK
 | |
| 		INDEX	LOCCTR
 | |
| 		AD	BANKSET
 | |
| 		TS	NEWLOC +1
 | |
| 
 | |
| 		CCS	LOCCTR		# SPECIAL TREATMENT IF THIS JOB WAS
 | |
| 		TCF	SETLOC		# ALREADY IN THE RUN (0) POSITION.
 | |
| 		TCF	SPECTEST
 | |
| 
 | |
| # Page 1217
 | |
| # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
 | |
| 
 | |
| PRIOCH2		TS	LOC
 | |
| 		CAF	ZERO		# SET FLAG TO TELL ENDJOB SCANNER IF THIS
 | |
| 		TS	BUF		# JOB IS STILL HIGHEST PRIORITY.
 | |
| 		CAF	LOW9
 | |
| 		MASK	PRIORITY
 | |
| 		AD	NEWPRIO
 | |
| 		TS	PRIORITY
 | |
| 		COM
 | |
| 		TCF	JOBSLP2		# AND TO EJSCAN.
 | |
| 
 | |
| # Page 1218
 | |
| # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
 | |
| 
 | |
| ENDJOB1		INHINT
 | |
| 		CS	ZERO
 | |
| 		TS	BUF +1
 | |
| 		XCH	PRIORITY
 | |
| 		MASK	LOW9
 | |
| 		TS	L
 | |
| 
 | |
| 		CS	FAKEPRET
 | |
| 		AD	L
 | |
| 
 | |
| 		EXTEND
 | |
| 		BZMF	EJSCAN		# NOVAC ENDOFJOB
 | |
| 
 | |
| 		CCS	L
 | |
| 		INDEX	A
 | |
| 		TS	0
 | |
| 
 | |
| EJSCAN		CCS	PRIORITY +12D
 | |
| 		TC	EJ1
 | |
| 		TC	CCSHOLE
 | |
| 		TCF	+1
 | |
| 
 | |
| 		CCS	PRIORITY +24D	# EXAMINE EACH PRIORITY REGISTER TO FIND
 | |
| 		TC	EJ1		# THE JOB OF HIGHEST ACTIVE PRIORITY.
 | |
| 		TC	CCSHOLE
 | |
| 		TCF	+1
 | |
| 
 | |
| 		CCS	PRIORITY +36D
 | |
| 		TC	EJ1
 | |
| -CCSPR		-CCS	PRIORITY
 | |
| 		TCF	+1
 | |
| 
 | |
| 		CCS	PRIORITY +48D
 | |
| 		TC	EJ1
 | |
| 		TC	CCSHOLE
 | |
| 		TCF	+1
 | |
| 
 | |
| 		CCS	PRIORITY +60D
 | |
| 		TC	EJ1
 | |
| 		TC	CCSHOLE
 | |
| 		TCF	+1
 | |
| 
 | |
| 		CCS	PRIORITY +72D
 | |
| 		TC	EJ1
 | |
| 		TC	CCSHOLE
 | |
| 		TCF	+1
 | |
| 
 | |
| # Page 1219
 | |
| # EVALUATE THE RESULTS OF THE SCAN.
 | |
| 
 | |
| 		CCS	BUF +1		# SEE IF THERE ARE ANY ACTIVE JOBS WAITING
 | |
| 		TC	CCSHOLE
 | |
| 		TC	CCSHOLE
 | |
| 
 | |
| 		TCF	+2
 | |
| 		TCF	DUMMYJOB
 | |
| 		CCS	BUF		# BUF IS ZERO IF THIS IS A PRIOCHNG AND
 | |
| 		TCF	+2		# CHANGED PRIORITY IS STILL HIGHEST.
 | |
| 		TCF	ENDPRCHG -1
 | |
| 
 | |
| 		INDEX	A		# OTHERWISE, SET NEWJOB TO THE RELATIVE
 | |
| 		CAF	0 -1		# ADDRESS OF THE NEW JOB'S CORE SET.
 | |
| 		AD	-CCSPR
 | |
| 		TS	NEWJOB
 | |
| 		TCF	CHANJOB -2
 | |
| 
 | |
| EJ1		TS	BUF +2
 | |
| 		AD	BUF +1		# - OLD HIGH PRIORITY.
 | |
| 		CCS	A
 | |
| 		CS	BUF 	+2
 | |
| 		TCF	EJ2		# NEW HIGH PRIORITY.
 | |
| 		NOOP
 | |
| 		INDEX	Q
 | |
| 		TC	2		# PROCEED WITH SEARCH.
 | |
| 
 | |
| EJ2		TS	BUF +1
 | |
| 		EXTEND
 | |
| 		QXCH	BUF		# FOR LOCATING CCS PRIORITY + X INSTR.
 | |
| 		INDEX	BUF
 | |
| 		TC	2
 | |
| 
 | |
| # Page 1220
 | |
| # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
 | |
| # BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
 | |
| 
 | |
| 		EBANK=	SELFRET		# SELF-CHECK STORAGE IN EBANK.
 | |
| 
 | |
| DUMMYJOB	CS	ZERO		# SET NEWJOB TO -0 FOR IDLING.
 | |
| 		TS	NEWJOB
 | |
| 		RELINT
 | |
| 		CS	TWO		# TURN OFF THE ACTIVITY LIGHT.
 | |
| 		EXTEND
 | |
| 		WAND	DSALMOUT
 | |
| ADVAN		CCS	NEWJOB		# IS A NEWJOB ACTIVE ?
 | |
| 		TCF	NUCHANG2	# YES... ONE REQUIRING A CHANGE JOB.
 | |
| 		CAF	TWO		# NEW JOB ALREADY IN POSITION FOR
 | |
| 		TCF	NUDIRECT	# EXECUTION.
 | |
| 
 | |
| 		CA	SELFRET
 | |
| 		TS	L		# PUT RETURN ADDRESS IN L.
 | |
| 		CAF	SELFBANK
 | |
| 		TCF	SUPDXCHZ + 1	# AND DISPATCH JOB.
 | |
| 
 | |
| 		EBANK=	SELFRET
 | |
| SELFBANK	BBCON	SELFCHK
 | |
| 
 | |
| NUDIRECT	EXTEND			# TURN THE GREEN LIGHT BACK ON.
 | |
| 		WOR	DSALMOUT
 | |
| 		DXCH	LOC		# JOBS STARTED IN THIS FASHION MUST BE
 | |
| 		TCF	SUPDXCHZ
 | |
| 
 | |
| 		BLOCK	2		# IN FIXED-FIXED SO OTHERS MAY USE.
 | |
| 
 | |
| 		COUNT	02/EXEC
 | |
| 
 | |
| # SUPDXCHZ - ROUTINE TO TRANSFER TO SUPERBANK.
 | |
| # CALLING SEQUENCE
 | |
| #		TCF	SUPDXCHZ	# WITH 2CADR OF DESIRED LOCATION IN A + L.
 | |
| 
 | |
| SUPDXCHZ	XCH	L		# BASIC.
 | |
| +1		EXTEND
 | |
| 		WRITE	SUPERBNK
 | |
| 		TS	BBANK
 | |
| 		TC	L
 | |
| 
 | |
| NEG100		OCT	77677
 | |
| 
 | |
| 
 | |
| 
 |