ack/mach/pdp/libem/sigtrp.s
1984-07-19 12:51:00 +00:00

93 lines
1.3 KiB
ArmAsm

.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