/INITIALIZE GENERAL PURPOSE INTERRUPT
/      SUBROUTINE
/EXECUTION TIME:  76 (GPI0) OR 77 (GPI1-7)
/                 MICROSECONDS
/CALLING SEQUENCE:
/     CALL IGPI(NUMBER,HANDLER,ERROR)
/     NUMBER: 0-7 GPI NUMBER
/     HANDLER: PARAMETERLESS FORTRAN IV
/              SUBROUTINE NAME
/              (GPI HANDLER)
/     ERROR=0: NO ERROR
/          =1: ILLEGAL GPI REQUESTED
	.TITLE IGPI
	.GLOBL IGPI
	.GLOBL %GPI0,%GPI1,%GPI2,%GPI3
	.GLOBL %GPI4,%GPI5,%GPI6,%GPI7
IGPI	0
	ISZ IGPI
	LAC* IGPI
	DAC NUMBER
	SPA
	LAC* NUMBER /INDIRECT
	DAC NUMBER  /REQUESTED NUMBER
	ISZ IGPI    /BUMP TO HANDLER
	LAC* IGPI
	SMA
	JMP .+3
	DAC ERROR	/INDIRECT
	LAC* ERROR
	LMQ         /USER ADDRESS
	ISZ IGPI
	LAC* IGPI
	DAC ERROR
	SPA
	LAC* ERROR	/INDIRECT
	DAC ERROR   /ERROR LOCATION
	DZM* ERROR  /ERROR=0
	ISZ IGPI    /BUMP TO EXIT
	LAC* NUMBER
	AND (777770
	SZA
	JMP ERROR1	/NUMBER<0 OR >7
	LAC* NUMBER	/NUMBER
	TAD (XCT TABLE	/JMP GPI(NUMBER)
	DAC .+1
	XX	/ENABLE GPI(NUMBER)
GPI7	LACQ
	DAC* %GPI7  /USER ADDR.
	LAC (JMS* 35
	DAC* (70    /API TRANSFER
	LAC (002000
	JMP EXIT
GPI6	LACQ
	DAC* %GPI6  /USER ADDR.
	LAC (JMS* 34
	DAC* (67    /API TRANSFER
	LAC (004000
	JMP EXIT
GPI5	LACQ
	DAC* %GPI5  /USER ADDR.
	LAC (JMS* 27
	DAC* (66    /API TRANSFER
	LAC (010000
	JMP EXIT
GPI4	LACQ
	DAC* %GPI4  /USER ADDR.
	LAC (JMS* 26
	DAC* (65    /API TRANSFER
	LAC (020000
	JMP EXIT
GPI3	LACQ
	DAC* %GPI3  /USER ADDR.
	LAC (JMS* 25
	DAC* (64    /API TRANSFER
	LAC (040000
	JMP EXIT
GPI2	LACQ
	DAC* %GPI2  /USER ADDRESS
	LAC (JMS* 24
	DAC* (63    /API TRANSFER
	LAC (100000
	JMP EXIT
GPI1	LACQ
	DAC* %GPI1  /USER ADDRESS
	LAC (JMS* 23
	DAC* (62    /API TRANSFER
	LAC (200000
	JMP EXIT
GPI0	LACQ
	DAC* %GPI0  /USER ADDRESS
	LAC (JMS* 22
	DAC* (71    /API TRANSFER
	LAC (400000
EXIT	IOT3
	JMP .-1
	RIMB        /RESTORE INTERRUPT
	            /MASK BITS
	JMP* IGPI
ERROR1	ISZ* ERROR  /ILL. GPI REQ.
	JMP* IGPI
ERROR
NUMBER
IOT3=703003
RIMB=703606
TABLE	JMP GPI0
	JMP GPI1
	JMP GPI2
	JMP GPI3
	JMP GPI4
	JMP GPI5
	JMP GPI6
	JMP GPI7
	.END
