[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