41 lines
1.8 KiB
Plaintext
41 lines
1.8 KiB
Plaintext
XCONOUT2.XDD
|
|
============
|
|
|
|
This piece of code implements a device /dev/xconout2 to MiNT. Once
|
|
installed it doesn't do anything at all, which is why it should be
|
|
quite save to install it even if you don't actually always use it.
|
|
|
|
If you open /dev/xconout2 (which can only be done by one program)
|
|
a new routine will be installed as a xconout2 handler. After this
|
|
all data being written to the console, may it be any program writing
|
|
directly to /dev/console or any daemon which was started with stdout
|
|
pointing to /dev/console or even MiNT's internal debugging routines
|
|
is not printed but buffered instead.
|
|
|
|
So if you write a program which opens and selects this device for
|
|
reading you'll be able to catch everything which might possibly destroy
|
|
the screen contents under any kind of graphic application. If you should
|
|
want to print the data to the console anyway, you can do this by writing
|
|
it back to /dev/xconout2. Note that both read and write calls will
|
|
never block.
|
|
|
|
The only reason why this appears as a device driver is that a user
|
|
level program doesn't need any MiNT specific functions (contrary to the
|
|
stuff implemented in W0R8) and it's quite save: In case of a program
|
|
crash the file will be closed by MiNT, which will install the original
|
|
routine again. So even in cases of severe program crashes there's no
|
|
chance of the vector pointing to abandoned memory and thus perhaps
|
|
crashing the whole system any more (as it sometimes did in W0R8).
|
|
|
|
BUGS: None (?).
|
|
|
|
KNOWN FEATURES: Doesn't use XBRA and things like these. I very much doubt
|
|
that under a multitasking environment it's very clever to change vectors
|
|
from elsewhere that inside the OS itself. So I hope there isn't any
|
|
program which will cause greater problems.
|
|
|
|
Anyway: USE IT AT YOUR OWN RISK! THERE'S NO WARRANTY!
|
|
|
|
ciao,
|
|
TeSche <itschere@techfak.uni-bielefeld.de>
|