38 lines
		
	
	
	
		
			406 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			406 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .sect .text; .sect .rom; .sect .data; .sect .bss
 | |
| .define _signal
 | |
| .sect .text
 | |
| _signal:
 | |
| 	call	sig1
 | |
| 	mov	ax,48
 | |
| 	mov	dx,ctch
 | |
| 	callf	0x7:0x0
 | |
| 	jb	4f
 | |
| 	ret
 | |
| sig1:
 | |
| 	mov	ax,8(sp)
 | |
| 	cmp	ax,20
 | |
| 	jae	1f
 | |
| 	mov	dx,table(ax*4)
 | |
| 	mov	(prev),dx
 | |
| 	mov	dx,12(sp)
 | |
| 	mov	table(ax*4),dx
 | |
| 	ret
 | |
| 1:
 | |
| 	pop	ax
 | |
| 	mov	ax,0x16
 | |
| 4:
 | |
| 	mov	(_errno),ax
 | |
| 	mov	ax,-1
 | |
| 	cdq
 | |
| 	ret
 | |
| 
 | |
| ctch:
 | |
| 	add	sp,4
 | |
| 	callf	0xf:0x0
 | |
| 
 | |
| .sect .bss
 | |
| table:
 | |
| 	.space 40
 | |
| prev:
 | |
| 	.space 4
 | |
| 
 |