File BS.TK

Directory of image this file is from
This file as a plain text file

/******* MULTI8 BACKGROUND SCHEDULER *******

BSCOUNT,"B^100+"S&3777	/NAME IS "BS" (BACKGROUND SCHEDULER)
SSFLG,	400		/A TWO-PAGE TASK WITHOUT CONNECTS
XBSSWAP,BSSWAP
XBSSTRT,BSSTRT		/BS STARTS WITH READING FIRST BG
LONGBG,	0		/LATCH FOR LAST LONG BG, MUST BE ZERO INIT.
BS,	JMP I XBSSTRT

BSSFLG,	ISZ SSFLG	/SET THE SHORT SLICE FLAG
BSGO,	JMS BSKICK
	TAD I (BJOB	/SEE IF CURRENT BG IS A 'LONG'
	JMS DEFER	/ONE. IN THAT CASE REMEMBER
	AND (LONG	/HIM AS THE CURRENT LONG BG
	SNA CLA
	 JMP .+3
	TAD X
	DCA LONGBG
	TAD SSFLG
	SNA CLA		/SHORT SLICE ?
	 JMP BSLNG1	/NO
	DCA SSFLG	/RESET SHORT SLICE FLAG
	TAD (-SLICE1
BSWAT1,	JMS BSTAL
	 SKP		/KICKED
	 JMP BSLONG	/TIMEOUT
	TAD I (BJOB
	JMS DEFER
	AND BSMSK1
	SZA CLA
	 JMP BSNEXT	/CURRENT BG FINISHED, SELECT NEXT 1
	JMS BSKICK	/SEE IF IT HAS INCORE SET & KICK IT
	JMP BSWAT1

BSLONG,	TAD I (BJOB	/SHORT SLICE OF CURRENT BG EXPIRED,
	JMS DEFER
	AND (-LONG-1
	TAD (LONG	/SET HISJMS BSCAN
	   INACTIVE  LOGOUT BGBLOK
BSLNG1,	ONG SLICE OR EVENT
	JMS,	JMS BSCAN	/SEARCH FOR A RUNNABLE INTERACTIVE BG
	   INACTIVE BGSTOP BGERR LONG SWPERR LOGOUT BGBLOK
	TAD LONGBG	/TAKE NEXT LONG BG
	JMS BSCAN	/
BSMSK1,	   INACTIVE BGSTOP BGERR SWPERR LOGOUT BGBLOK
	JMP BSLNG1T SCANNING AT (AC) OR (BA ZTEM1	/REMEMBER THIS
N	//
	CDF MONFLD	/
	ISAD (-BGMAX	/SET UP COUNTER # OF BG'S
	DCA ZTEM7	/COUNTER
	TAD ZTEM1
BSSCAN,	TAD (UNEXT
	JMS DEFER
	JMS DEFER	/GET STATUS OF NEXT BG
	AND BSMASK
	SNA CLA
	 JMP BSFOUND
	TAD X
	ISZ ZTEM7	/IS ROBIN ROUND ?
	 JMP BSSCAN	/NO
	CLA
	JMP I BSCAN	/YES RETURN

BSFOUND,TAD I X		/
	AND (ONDISK
	SNA CLA		/IS HE ONDISK ?
	 JMP BSGO	/NO, NO NEED TO SWAP
	TAD I (BJOB
	DCA ZTEM1
	TAD I ZTEM1
	AND (EMULATE
	SNA CLA		/MAY CURRENT BG BE SWAPPED OUT ?
	 JMP I XBSSWAP	/WHAMMM !
	ACM1		/NO, SET FLAG FOR EMULATOR
	DCA I (BSFLAG	/AND WAIT TILL HE IS FINISHED
	JMP BSGO
BSMASK,
BSKICK,	0		/SUBROUTINE TO CHECK IF BG IS WAITING
	TAD I (BJOB	/FOR USLOT TO HEAR HE IS IN CORE NOW
	JMS DEFER
	AND (INCORE
	SNA 		/DID HE KNOW THAT HE WAS ON DISK ?
	 JMP I BSKICK	/NO, DON'T TELL HIM
	CMA		/YES, CLEAR HIS INCORE BIT AND  ...
	AND I X	
	DCA I X	
	TAD X	
	TAD (USLOT
	JMS DEFER
	DCA .+3		/KICK THE SLOT WHERE HE IS WAITING
	JMS MONITOR
	   SIGNAL
	   0
	JMP I BSKICK,	0
	SZA		/SETUP OR RESNT
BSTA1,	ACM1
	JMS MOLOT
	TAD (-2
	SZA CLA	M EMULATORS?
	 JMP I BSTAL	/SIGNAL, RETURN IMMEDIATLY
	ISZ BSCOUNT	/JUST A CLOCK TICK. THE LAST ONE ?
	 JMP BSTA1	/NO, SLICE NOT YET DONE
	ISZ BSTAL	/YES, SLICE EXPIRED,
	JMP I BSTAL	/TAKE SECOND RETURN

PAGE	0
BSSWAP,	TAD (ONDISK	NOTHER
	TAD I ZTEM1	/IN THE ONDISK-BIT OF CURREBSTEMP	/REMEMBER HIM IN CASE THE WRITE GIVES ERRORS
	TAD X
	DCA I (BJOB	/INSTALL THE NEW BJOB
	TAD ZTEM1	/DTV3+2 MAY HAVE LOST IT'S VALUE,
	TAD (USWAP	/SO GET IT'S VALUE AGAIN.
	JMS DEFER
	DCA DTV1+2	/FILL IN THE WRITE REQUEST
	TAD DTV1+2
	TAD (SWAPLG^3%4-10	/50(RK8E) OR 20(REST)
	DCA DTV2+2
	ACM1
	DCA BSW1	/SET FIRST WAIT TO NO-OP
	DCA ERROR
	JMS BSDO	/WRITE OUT 8K
	   DTV1-.
	JMS BSDO
	 +&@YTMA{SsSp@p	 zz @1O& #(K43d_@8@7$@@^\8
P@XFtlW@>??Votrqpn}e:2dKrx%ZV)A%?v-As`
pWs v.p?zf?v~R `|.!J&N&1ff~$& %f#c}(/|"sb{(/=z"@yb*zx"PwbBz#v"@z#H.$ &u 9zn c #t%$B$$t*# /		K```(F{sj(`(F`8XOX ?U!,]+
.

njj`u(j{|u |)jX8@p_#(?wr9,
E0qp&n-?ekJ;I-,<{i.w r2m5(l!&,



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search