[Coco] Os9 Intercept

Bill Pierce ooogalapasooo at aol.com
Tue Oct 30 08:52:12 EDT 2012


Thanks Aaron, I think that's what I need. The real problem is there's already an intercept running on the program that catches the BREAK key. Then my ML sub to connect to DW (inline, same program) sets up the intercept when it runs. I need to be able to read the intercept & vector data address BEFORE it makes the call, then I can restore it afterwards.

New question.. when you set the intercept.. do the calls stack, or does it just wipe the old intercept and create a new one? Example:

set intercept 1...
program code..

set intercept 2
program code..

signal
jmp intercept 2..
jmp intercept 1..
return (RTI)

If it doesn't stack like this, then I can just reset the first intercept and it should be fine.

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




-----Original Message-----
From: Aaron Wolfe <aawolfe at gmail.com>
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
Sent: Tue, Oct 30, 2012 4:47 am
Subject: Re: [Coco] Os9 Intercept


You can get the current intercept settings for a process from it's
process descriptor.  F$GPrDsc is one way, I think that works in user
mode.  There may be others, I am no OS9 expert.  In the PD your
intercept info is at +$36 but if you're using os9 defs you can use the
pretty names:

P$Signal       RMB       1                   Signal Code $36
P$SigVec       RMB       2                   Signal Intercept Vector
P$SigDat       RMB       2                   Signal Intercept Data Address

hth
-Aaron

On Tue, Oct 30, 2012 at 12:42 AM, Bill Pierce <ooogalapasooo at aol.com> wrote:
>
> 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

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

 



More information about the Coco mailing list