[Coco] Os9 Intercept

Lothan lothan at newsguy.com
Tue Oct 30 12:35:16 EDT 2012


The documentation doesn't explain this, but set X=$0000 to reset the signal 
intercept vector. If you search for P$SigVec in krn.asm, you'll see it 
checks to determine if the signal intercept vector is $0000 and if so 
branches to the F$Exit code:

         ldu   <P$SigVec,x             get signal handler addr
         beq   L02AC                   branch if none

* no signal handler, exit with signal value as exit code
L02AC    ldb   P$State,x
         orb   #SysState
         stb   P$State,x
         ldb   <P$Signal,x
         andcc #^(IntMasks)
         os9   F$Exit

-----Original Message----- 
From: Bill Pierce
Sent: Tuesday, October 30, 2012 12:42 AM
To: coco at maltedmedia.com
Subject: [Coco] Os9 Intercept


Hi Guys,
In OS9, how do you reset an Intercept back to default after a program has 
set it?
I have a program that runs a function that uses a signal intercept. When the 
function is called, the F$Icpt is set. The program will be continuously 
running, but the intercept will no longer be needed until the same function 
is called again. The lines that set the intercept can be jumped over each 
time, but the intercept itself does not need to in operation unless within 
that function, as it interferes with the rest of the program. So, how would 
I go about resetting the intercept address to what it was before the change. 
I searched through both the "C" User's guide and the OS9 Tech Reference 
manual and only found reference to setting the intercept.
So, is there some way to call before the intercept is set to get the current 
intercept address saved before I set the intercept?

Thnx
Bill P

Music from the Tandy/Radio Shack Color Computer 2 & 3
https://sites.google.com/site/dabarnstudio/
Bill Pierce
ooogalapasooo at aol.com


--
Coco mailing list
Coco at maltedmedia.com
http://five.pairlist.net/mailman/listinfo/coco 




More information about the Coco mailing list