Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-08 - 43,50512/intv.mac
There are no other files named intv.mac in the archive.
	TITLE INTV
	TWOSEG
	V.INTV==:100,,1
	D.INTV==:^D281177
	IFNDEF INTMAX,<INTMAX==:30>	;# of conditions that can be enabled
	SEARCH UUOSYM
	P=17
	T=5		;Register that BLISS does a JSP on in prologue
	LALL
	DEFINE DSPBLD(N)=<
		INT'N::
			TRNA
			AOS	INTVEC+1+<N*4>
			PUSH	P,INTTBL+N
			JRST	INTER
	>
	DEFINE VECBLD(N)=<
		EXP INT'N,0,PS.VPO,0
		>
	RELOC 0
INTTBL::
	BLOCK INTMAX
INTVEC::
INTBAS::
		XX==0
		REPEAT INTMAX,<
			VECBLD(\XX)
			XX==XX+1
			>
INTMAP::
	EXP	1		;TTY slot is always in use
	BLOCK <<<INTMAX+35>/36>-1>	;Bitmap for vector slots in use


RELOC 400000

	XX==0
	REPEAT INTMAX,<
			DSPBLD(\XX)
			XX==XX+1
	>

INTER::
	EXCH	T,(P)	;save register for BLISS that it cannot save for itself
	PUSH	P,T	;now put argument back on stack
	PUSHJ	P,INTSIG##	;Call BLISS routine to figure it out
	POP	P,T	;Throw away argument
	POP	P,T	;Restore that register
	DEBRK.
	JRST	4,.	;Huh
	JRST	4,.	;What?

END