[Coco] signal/intercept routine in Basic09
Aaron Wolfe
aawolfe at gmail.com
Sat Jan 23 23:19:55 EST 2010
Are signals really equivalent to errors? That doesn't seem right. Or
is this a Basic09 thing?
Signals can happen for many "non error" reasons, for instance a Wake
signal often means a very normal, non error condition. In the case at
hand, the "other end hung up" signal is sort of an error I guess, but
it's not an OS9 error like read or write errors are.
as I understand it, os9 'sends' a signal by calling the routine at the
address stored in the P$SigVec field of the process descriptor. Does
Basic09 automatically put a routine here that turns a signal into an
error that will trip the ON ERROR of a running program?
On Sat, Jan 23, 2010 at 11:02 PM, Wayne Campbell <asa.rand at gmail.com> wrote:
> Apparently, ON ERROR GOTO doesn't like 4. I opened a window, ran a test prog
> that just ran a loop and reacted to ON ERROR GOTO. When I sent the signal 4
> to the process from the other window (used send -1 <proc>), Basic09 dropped
> into debug instead of going thru the error trap.
>
> Wayne
>
> ----- Original Message ----- From: "Christopher Hawks" <chawks at dls.net>
> To: "CoCoList for Color Computer Enthusiasts" <coco at maltedmedia.com>
> Sent: Saturday, January 23, 2010 7:36 PM
> Subject: Re: [Coco] signal/intercept routine in Basic09
>
>
>> Wayne Campbell said the following on 01/23/2010 07:59 PM:
>>>
>>> This sounds like a modification to the way drivewire sends signals?
>>
>> Standard OS9 signaling. Drivewire sends a Hangup signal.
>>
>> lda P$ID,x Process to send to
>> ldb #S$HUP Signal to send ( 4 )
>> os9 F$Send doit
>>
>>> ----- Original Message ----- From: "Robert Gault"
>>> <robert.gault at worldnet.att.net>
>>> To: "CoCoList for Color Computer Enthusiasts" <coco at maltedmedia.com>
>>> Sent: Saturday, January 23, 2010 5:52 PM
>>> Subject: Re: [Coco] signal/intercept routine in Basic09
>>>
>>>
>>>> Aaron Wolfe wrote:
>>>>>
>>>>> It's probably worth noting that the "port closed" signal is not a part
>>>>> of standard OS-9, it is a feature of the DriveWire additions we're
>>>>> working on. The signal's value is 4. It is sent to a process when
>>>>> the remote end of a TCPIP connection closes.
>>>>>
>>>>
>>>> For what it is worth, Basic09 would trap the error 4.
>>>> ON ERROR GOTO 100
>>>> ERROR 4
>>>> END
>>>> 100 PRINT"The error was caught."
>>>>
>>>> When this is run, the message is printed. Now the manual indicates that
>>>> there is no real difference between signals and errors. Errors are just
>>>> specific signals. So, if the signal to be caught is coming from Drivewire,
>>>> it does not seem to be getting through to Basic09. That's assuming error
>>>> trapping as above is being used.
>>>>
>>>> It may mean that using syscall to set up an intercept may not work
>>>> either.
>>>>
>>>> --
>>>> 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
>>>
>>
>>
>> --
>> Christopher R. Hawks
>> HAWKSoft
>> ---------------------------------------------------------
>> "The reasonable man adapts himself to the world: the unreasonable one
>> persists in trying to adapt the world to himself. Therefore all progress
>> depends on the unreasonable man."
>> -- George Bernard Shaw
>>
>> --
>> 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