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

Re: [MiNT] FreeMiNT 1.18 release coming up.



Don't want to judge if its good or bad, but official Atari docs ("Rainbow TOS Release Notes", http://dev-docs.atariforge.org/files/Rainbow_TOS_RN_8-7-1989.pdf, pg. 24) state its perfectly legal to call the AES from supervisor mode (with quite some care, though).

I do not know what this means for EmuTOS alignment efforts, but I'd consider if it's legal for TOS 1.04, it should be legal for EmuTOS as well. I also do not know if there are programs that were actively using that "feature" (kludge) but my guess is there were some (assume otherwise it wouldn't be documented, probably). 

Regards,
Markus

 
Am 04.03.2013 um 01:40 schrieb Vincent Rivière:

> On 04/03/2013 00:24, Alan Hourihane wrote:
>> O.k. What about adding a message to xaloader.prg detecting when GEM=ROM and
>> printing a message and dropping back to the desktop ?
> 
> It would work, to avoid the crash and cleanly exit.
> 
> Once again, here are the facts.
> 
> XaAES needs to know if it has to open the VDI physical workstation or not. It has been reported the the VDI has so bad design (or implementations are so buggy) that it is impossible to determine if the VDI workstation is already opened or not, using VDI functions.
> 
> So the workaround is to call the AES appl_init(). If it works, then the VDI workstation was already opened. Otherwise, it is not.
> 
> It is forbidden to call appl_init() or any AES function from supervisor mode (even if sometimes it does not crash, by chance). So xaaes.km can't call it.
> 
> The only clean solution is to call appl_init() from user mode. That could be either in xaloader.prg, or at the beginning of mint.prg. Then the result (VDI physical workstation already opened or not) has to be forwarded to xaaes.km in some way.
> 
> We have 2 clean solutions:
> 
> 1) Find a way to pass information from xaloader.prg to xaaes.km. Something like a module command line, etc.
> 
> 2) mint.prg could call appl_init() at startup (in user mode) to determine the VDI workstation status, and make the result available to kernel modules. For example, initialize a flag somewhere, add a function in libkern to read it, and you're done.
> 
> Solution #1 may be tricky, and specific to XaAES.
> Solution #2 should be very simple, and the information may be useful for other kernel stuff, too.
> 
> -- 
> Vincent Rivière
> 
>