[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