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

Re: [MiNT] System call bindings



Frank Naumann wrote:

Hello!

Atari doc:
Pdomain gets or sets process execution domain. This is a number wich controls the behaviour of a process. The default domain is 0, wich is the TOS compatibility domain and in wich all system calls behave exactly as they do under TOS. Domain 1 is the MiNT domain; in this domain, the behaviour of the Fread and Fwrite system calls when applied to terminals are controled by the current terminal settings as established by the Fcntl system call. Moreover, file names returned from Fsfirts and Fsnext may be treated differently; MiNT domain process are expected to be able to deal with file names that are not standard 8 character name + 3 character extension, all upper case, DOS file names.
...


Yes, and this is what MiNT do since ever, for Pdomain(1) it don't convert filenames to the 8+3 upper case TOS convention on Fsfirst/Fsnext.

But that's all, I don't see any reference to return longer filenames than there is space in the DTA struct nor that the DTA struct is redefined. So for Fsfirst/Fsnext you get the original filenames like they are on the disc if you are Pdomain(1) AND(!) the filename is smaller than 14 characters (as there is no more space in the DTA struct).

We return to the first problem, by default DTA is assign by the system (and not by software) when Pexec is done, no? The DTA address is push in BASEPAGE. Then if software wan't to change of DTA, it use DTA definition from osbind.h, if it's not agree with system of course it will crashed.

Olivier