93 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
/ $Header$
 | 
						|
.text
 | 
						|
.globl sigtrp~
 | 
						|
.globl trp~,save~,retu~
 | 
						|
 | 
						|
indir	= 0
 | 
						|
signal	= 48.
 | 
						|
 | 
						|
rti	= 2
 | 
						|
 | 
						|
sig1:	mov	sig.trp+0.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig2:	mov	sig.trp+2.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig3:	mov	sig.trp+4.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig4:	mov	sig.trp+6.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig5:	mov	sig.trp+8.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig6:	mov	sig.trp+10.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig7:	mov	sig.trp+12.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig10:	mov	sig.trp+18.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig11:	mov	sig.trp+20.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig12:	mov	sig.trp+22.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig13:	mov	sig.trp+24.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig14:	mov	sig.trp+026.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig15:	mov	sig.trp+028.,-(sp)
 | 
						|
	br	1f
 | 
						|
sig16:	mov	sig.trp+030.,-(sp)
 | 
						|
	br	1f
 | 
						|
1:
 | 
						|
	jsr	pc,trp~
 | 
						|
	rti
 | 
						|
 | 
						|
sigtrp~:
 | 
						|
	jsr	pc,save~
 | 
						|
	tst	(sp)+
 | 
						|
	mov	(sp)+,r1
 | 
						|
	mov	(sp)+,r0
 | 
						|
	ble	sig.bad
 | 
						|
	cmp	r0,$16.
 | 
						|
	bhi	sig.bad
 | 
						|
	mov	r0,call+02
 | 
						|
	asl	r0
 | 
						|
	mov	sig.trp-2(r0),r3
 | 
						|
	cmp	r1,$256.
 | 
						|
	bhis	1f
 | 
						|
	mov	sig.adr-2(r0),r2
 | 
						|
	bne	2f
 | 
						|
sig.bad:
 | 
						|
	mov	$-1,r0
 | 
						|
sigbad:
 | 
						|
	mov	r0,-(sp)
 | 
						|
	mov	r0,-(sp)
 | 
						|
	jmp	retu~
 | 
						|
1:	cmp	r1,$-3
 | 
						|
	blo	sig.bad
 | 
						|
	mov	r1,r2
 | 
						|
	inc	r2
 | 
						|
	inc	r2
 | 
						|
2:	mov	r1,sig.trp-2(r0)
 | 
						|
	mov	r2,call+04
 | 
						|
	sys	indir ; call
 | 
						|
	bcs	sigbad
 | 
						|
	asr	r0
 | 
						|
	bcc	1f
 | 
						|
	mov	$-3,-(sp)
 | 
						|
	clr	-(sp)
 | 
						|
	jmp	retu~
 | 
						|
1:	mov	r3,-(sp)
 | 
						|
	clr	-(sp)
 | 
						|
	jmp	retu~
 | 
						|
 | 
						|
.data
 | 
						|
call:	sys	signal;	0; 0
 | 
						|
sig.trp:
 | 
						|
	-2;	-2;	-2;	-2
 | 
						|
	-2;	-2;	-2;	-2
 | 
						|
	-2;	-2;	-2;	-2
 | 
						|
	-2;	-2;	-2;	-2
 | 
						|
sig.adr:
 | 
						|
	sig1;	sig2;	sig3;	sig4
 | 
						|
	sig5;	sig6;	sig7;	0
 | 
						|
	0;	sig10;	sig11;	sig12
 | 
						|
	sig13;	sig14;	sig15;	sig16
 |