46 lines
763 B
Plaintext
46 lines
763 B
Plaintext
|
#
|
||
|
mes 2,EM_WSIZE,EM_PSIZE
|
||
|
save
|
||
|
bss EM_PSIZE,0,0
|
||
|
trf
|
||
|
bss EM_PSIZE,0,0
|
||
|
|
||
|
exp $_setsig
|
||
|
pro $_setsig,0
|
||
|
lal 0
|
||
|
loi EM_PSIZE
|
||
|
lae trf
|
||
|
sti EM_PSIZE
|
||
|
inp $catchit
|
||
|
lpi $catchit ; trap to catchit
|
||
|
sig
|
||
|
lae save ; remember higher level trap
|
||
|
sti EM_PSIZE
|
||
|
ret 0
|
||
|
end
|
||
|
|
||
|
pro $catchit,0
|
||
|
lpi $catchit
|
||
|
sig
|
||
|
asp EM_PSIZE
|
||
|
lol 0 ; fetch trapno
|
||
|
lae trf
|
||
|
loi EM_PSIZE ; fetch procedure identifier
|
||
|
cai
|
||
|
lfr EM_WSIZE
|
||
|
zne *1
|
||
|
; trap not handled by trf function, trap through; trapno still on stack
|
||
|
lae save
|
||
|
loi EM_PSIZE
|
||
|
sig
|
||
|
asp EM_PSIZE
|
||
|
trp
|
||
|
lpi $catchit ; trap ignored, further traps to catchit
|
||
|
sig
|
||
|
asp EM_PSIZE
|
||
|
lae save ; remember higher level trap
|
||
|
sti EM_PSIZE
|
||
|
1
|
||
|
rtt
|
||
|
end
|