[Coco] Os9 Intercept
Aaron Wolfe
aawolfe at gmail.com
Tue Oct 30 08:57:03 EDT 2012
AFAIK the calls do not stack, a signal waiting means the scheduler
just jumps to the single vector from the process descriptor the next
time that process gets a turn. Maybe someone more sure of that could
verify.
On Tue, Oct 30, 2012 at 8:52 AM, Bill Pierce <ooogalapasooo at aol.com> wrote:
>
> 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
>
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
More information about the Coco
mailing list