From 7b39ce2cfa7fa3c466bf570b79113f8728f7b3b6 Mon Sep 17 00:00:00 2001 From: keie Date: Tue, 18 Dec 1984 17:11:35 +0000 Subject: [PATCH] Traps now work as documented. --- mach/mantra/int/mloopb | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/mach/mantra/int/mloopb b/mach/mantra/int/mloopb index 6081ab798..ab6a1fa96 100644 --- a/mach/mantra/int/mloopb +++ b/mach/mantra/int/mloopb @@ -1,4 +1,5 @@ -_sigtrp: mov (sp)+,d1 !trapno in d1 +_sigtrp: move.l (sp)+,d2 !save return address + mov (sp)+,d1 !trapno in d1 mov (sp)+,d4 !signo in d4 extend d4 extend d1 @@ -26,7 +27,7 @@ sig_bad: mov 22,-(sp) !_signal. If pointer 0 trapping is move.l d3,-(sp) !set arguments to signal: mov d4,-(sp) !pointer ,signo to be trapped bsr _signal - cl -(sp) !set code for no error + jmp (a4) .data sig_adr: .long sig1 ; .long sig2 ; .long sig3 ; .long 0 .long 0 ; .long 0 ; .long 0 ; .long 0 @@ -39,11 +40,40 @@ sig_trp: .long -2 ; .long -2 ; .long -2 ; .long -2 .text !the next procedures map the catched signal to em errors. The em error !procedure will handle this. -sig1: sig2: sig3: sig8: sig13: sig14: sig15: sig16: - pea retutrap - mov d1,-(sp) +sig1: pea retutrap + move.l sig_trp,d0 + mov d0,-(sp) + bra error +sig2: pea retutrap + move.l sig_trp+4,d0 + mov d0,-(sp) + bra error +sig3: pea retutrap + move.l sig_trp+8,d0 + mov d0,-(sp) + bra error +sig8: pea retutrap + move.l sig_trp+28,d0 + mov d0,-(sp) + bra error +sig13: pea retutrap + move.l sig_trp+48,d0 + mov d0,-(sp) bra error -retutrap: rtr +sig14: pea retutrap + move.l sig_trp+52,d0 + mov d0,-(sp) + bra error +sig15: pea retutrap + move.l sig_trp+56,d0 + mov d0,-(sp) + bra error +sig16: pea retutrap + move.l sig_trp+60,d0 + mov d0,-(sp) + bra error +retutrap: add.l #4,sp !remove signumber + rtr sig12: pea sig12 mov #12,-(sp) -- 2.34.1