.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