[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Super and Supexec in the latest beta



draco@mi.com.pl%INTERNET wrote:
> 
> > When using Supexec, it returns -36L (EACCDN) and does not run the
> > supervisor code. I'm not sure that this is a good idea, because the
> > routine that was supposed to run could possibly return the same value.
> 
> Well, I think it is a good idea, at least considering consistency with
> what the rest of the XBIOS returns.

Please reconsider this. We have to "break" Atari's documentation anyway
(it guarantees that the code really is executed), but:

1) the current solution doesn't give the caller a reliable way to find 
   out whether his code was executed or not,

2) I don't think you can use "consistency" here as argument. There 
   are *some* XBIOS calls that historically returned error/success
   codes, and some that don't. Supexec() belongs to the second group.

   Consider a progran which uses Supexec to retrieve the value of
   timr_ms. It will always get the same value (-36L) and might loop
   because the timer does not advance. I don't think that it is
   tolerable when programs that comply to the original documentation
   simply start to misbehave. *Either* they continue to run properly,
   or they should be implicitly killed.

3) talking about consistency, I am tempted to say that Supexec() and
   Super() should behave consistently :-), meaning that the code is
   executed and it is up to the caller to catch the signal.


Regards, jr