45 lines
		
	
	
	
		
			763 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			763 B
		
	
	
	
		
			Text
		
	
	
	
	
	
#
 | 
						|
 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
 |