7eaa235fd1
plat. It's completely untested, but it builds and makes e.out executables.
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
|