ack/mach/m68k4/libsys/signal.s

92 lines
1.1 KiB
ArmAsm
Raw Normal View History

1984-12-14 15:52:15 +00:00
.define _signal
.extern _signal
1986-07-22 13:23:14 +00:00
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
1984-12-14 15:52:15 +00:00
NSIG=32
_signal:
1985-03-04 17:26:31 +00:00
move.l 4(sp), d0
1984-12-14 15:52:15 +00:00
cmp.l #NSIG,d0
bcc 1f
1985-03-04 17:26:31 +00:00
move.l 8(sp),d1
1984-12-14 15:52:15 +00:00
move.l d0,a0
add.l a0,a0
add.l a0,a0
add.l #dvect,a0
move.l (a0),a1
move.l d1,(a0)
beq 2f
btst #0,d1
bne 2f
1985-03-26 16:08:09 +00:00
move.l #jmptab,d1
add.l d0,d1
add.l d0,d1
1984-12-14 15:52:15 +00:00
2:
move.l d0,a0
move.w #0x30,d0
trap #0
bcs 3f
btst #0,d0
bne 4f
move.l a1,d0
4:
1985-03-04 17:26:31 +00:00
clr.l d1
1984-12-14 15:52:15 +00:00
rts
1:
move.l #22,d0
3:
jmp cerror
1985-03-26 16:08:09 +00:00
jmptab: bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
bsr enter
1984-12-14 15:52:15 +00:00
enter:
movem.l d0/d1/a0/a1,-(sp)
1985-03-26 16:08:09 +00:00
move.l 16(sp),d0
sub.l #jmptab+2,d0
asr.l #1,d0
move.l d0,-(sp)
move.l d0,a0
1984-12-14 15:52:15 +00:00
add.l a0,a0
add.l a0,a0
add.l #dvect,a0
move.l (a0),a0
jsr (a0)
add.l #4,sp
movem.l (sp)+,d0/d1/a0/a1
add.l #4,sp
rtr
1986-07-22 13:23:14 +00:00
.sect .bss
1984-12-14 15:52:15 +00:00
dvect: .space 4*NSIG