MiNT is Not TOS: A Multitasking Operating System Extension for the Atari ST

Copyright 1990 Eric R. Smith. All rights reserved. See the file COPYING
for conditions of redistribution.
-------------------------------------------------------------------------
Features of MiNT that are incompatible with TOS:

File handles -2 and -3 are not supported. File handle -1 refers to the
current control terminal, NOT necessarily the console (although it
is for now). The same is true for BIOS handle 2; Bconout(2, c) outputs
a character to the control terminal, so:
	Fforce(-1, Fopen("AUX:", 3));
	r = Bconin(2);
reads a character from the RS232 port under MiNT. This is done so that
programs that use the BIOS for I/O will be able to run in windows or
over the modem. Similarly, the DOS device CON: refers to the current
control terminal, so Fopen("CON:", 3) is normally equivalent to Fdup(-1).
To access the physical console, use device PHY:.

Changing directories on drives other than the currently logged drive is
not possible (actually, it doesn't seem to work right under TOS 1.4, anyways).
MiNT only keeps one current directory per process.

Calling Pexec with a null pointer for the environment string causes children
to share their parent's environment, rather than get a copy of it. This may
cause problems with programs that mess with the environment string directly.

Processes may have only 20 open files each.

Some low level disk utilities may get very confused if asked to operate on
a pseudo-drive, like Q:.

All of MiNT's console I/O routines (e.g. Cconws, Cconin, Cconout) can be
redirected; TOS apparently always leaves these pointing at the console.
I know of a PD shell that closes handles 0 and 1; it can still keep going
under TOS, but not under MiNT. I regard this as a bug in the program, not
in MiNT.

MiNT's fs_first/fs_next routines handle the '?' wildcard differently than
does TOS; this only affects pseudo-drives, and isn't likely to
be a problem.

Filenames that are 4 characters long, with a ':' in the 4th position,
are assumed to be device names and are translated into references to drive
V:, i.e. "con:" means "V:\CON". TOS doesn't always do this translation,
it seems, because I can recall creating files named "con:" in the current
directory (not that I *wanted* to, which is the whole point of MiNT's
feature).

The basepage entry "p_parent" (pointer to the parent's basepage) is always
0 under MiNT. This is done for two reasons: (1) when swapping is implemented
in MiNT, it may not always be possible to retrieve data from the parent,
and (2) it's the only way to have programs compiled with dLibs (the
standard Sozobon library) work under MiNT; if p_parent is non-zero,
the dLibs startup code tries to use it to find the name of the currently
executing program. This fails under MiNT because (a) the parent's registers
are not saved in the basepage, and (b) the stack ends up being laid out
differently. (b), in particular, cannot be changed, because the parent may
still be running!

All CTRL-ALT-function key combinations are reserved by MiNT. Not many
programs use these, so this shouldn't be a big problem.
