/	INTERRUPT TEST PROGRAM.
/	WRITTEN BY KENRICK CHIN, 17TH. MAY 1976.
/
/	THIS PROGRAM TESTS THE INTERRUPT LINE FOR 
/	ANY SPURIOUS ACTIVITY.
/
	.ABS
	.LOC 1
	JMP INTRUP
	.LOC 100
START	IOF
	EBA
	CLA
	JMS LINE
	 LAC MESS3
	JMS ASPRT
	JMS LINE
	JMS LINE
	CAF
	ION
	NOP
	JMP .-1
	HLT
MESS3	MESS3+1
	.SIXBT " INTERRUPT TEST PROGRAM@"
INTRUP	DZM SWITCH
	LAC (700101
	DAC EXEC
EXEC	NOP
	SKP
	JMS GOTYA
	LAC EXEC
	CMA!IAC
	TAD (707761
	SPA!SNA
	JMP DONE
CONT	LAC EXEC	/ALL NOT DONE
	TAD (20
	DAC EXEC
	SAD (703301
	JMP CONT
	SAD (703341
	JMP CONT
	SAD (707741
	JMP CONT
	SAD (707761
	JMP DONE
	JMP EXEC
DONE	JMS TEST	/TEST IF INTERRUPT FOUND
	JMS LINE
	CLA
	KRB
	AND (177
	SAD (3
	JMP 17720
	CAF
	ION
	JMP* 0		/RETURN FROM INTERRUPT
SWITCH 0
/
/
/TEST IF DEVICE FOUND
TEST	LAC SWITCH
	SZA
	JMP* TEST	/AT LEAST ONE FOUND
	LAC MESS2
	JMS ASPRT
	JMS LINE
	JMP* TEST
MESS2	MESS2+1
	.SIXBT " DEVICE NOT FOUND@"
/ONE INTERRUPT FOUND
GOTYA	0
	CLA!IAC
	DAC SWITCH
	LAC MESS1
	JMS ASPRT
	LAC EXEC
	JMS OCT6
	JMS LINE
	JMP* GOTYA
MESS1	MESS1+1
	.SIXBT " INTERRUPT DEVICE WITH SKP CODE : @"
CR     215
LF     212
SLASH  251
LINE   0
       LAC CR
       JMS TYPE
       LAC LF
       JMS TYPE
       JMP* LINE
/SIX OCTAL DIGIT PRINT SUBROUTINE
OCT6    0
        DAC OCTS   /SAVE DATA
       LAC (240
       JMS TYPE
      LAC OCTS       /GET DATA
       AND (700000
       CLL!RTL
       RTL
       TAD (260
       JMS TYPE
       LAC OCTS     /GET 2ND DIGIT
       SWHA
       AND (70
       CLL!RAR
       RTR
       TAD (260
       JMS TYPE
       LAC OCTS     /GET 3RD DIGIT
       SWHA
       AND (7
       TAD (260
       JMS TYPE
       LAC OCTS           /GET 4TH DIGIT
       SWHA
       AND (700000
       CLL!RTL
       RTL
       TAD (260
       JMS TYPE
       LAC OCTS          /GET 5TH DIGIT
       AND (70
       CLL!RAR
       RTR
       TAD (260
       JMS TYPE
       LAC OCTS          /GET 6TH DIGIT
       AND (7
       TAD (260
       JMS TYPE
       JMP* OCT6
OCTS   0
/
/
/ASCII PRINT FROM SIXBT PACKED WORD.
/THREE 6-BIT ASCII CHARACTERS ARE PACKED INTO ONE
/WORD BY THE PSEUDO-OP .SIXBT
/THE MESSAGE IS ENDED BY "@".
ASPRT  0
       DAC SAVE9
ASPRT1 LAC* SAVE9   /GET PACKED WORD.
       RAR          /ROTATE RIGHT 3 BITS
       RTR
       SWHA
       DAC SAVE11
       AND MASK5    /MASK5 = 77
       SNA
       JMP* ASPRT   /END OF MESSAGE
       JMS ASPRT2
       LAC SAVE11   /GET MIDDLE CHARACTER
       RAR
       RTR
       SWHA
       
       AND MASK5
       SNA
       JMP* ASPRT   /END OF MESSAGE
       JMS ASPRT2
       LAC* SAVE9   /GET THIRD CHARACTER
       AND MASK5
       SNA
       JMP* ASPRT   /END OF MESSAGE
       JMS ASPRT2
       ISZ SAVE9    /GET NEXT WORD
       JMP ASPRT1
SAVE9  0
SAVE11 0
SAVE12 0
MASK5  77
MASK6  40
B100   100
ASPRT2 0
       DAC SAVE12
       AND MASK6     /MASK6 =40
       SNA!CLA       /NUMBERS 40 TO 77, DO NOTHING.
       LAC B100      /NUMBERS 00 TO 37, ADD 100.
       TAD SAVE12
       JMS TYPE
       JMP* ASPRT2
TYPE   0
       IOF
       TLS
       TSF
       JMP .-1
       TCF
       JMP* TYPE
TSF=700401
TLS=700406
TCF=700402
KRB=700312
       .END START