Topic : TOS - The Operating System
Author :
Version : tos.hyp (December 19, 2008)
Subject : Programmieren/Atari
Nodes : 3010
Index Size : 93790
HCP-Version : 5
Compiled on : Atari
@charset : atarist
@lang :
@default : Title
@help :
@options : +g -i -s +x +zz -t4
@width : 70
View Ref-File13.15 XSSI protocol TOSA major problem for the programmer of a screen saver is that many
applications know nothing about what is currently happening before
the user's eyes on the screen. Accordingly they continue to output
their information to the screen, even though actually it has now been
taken over by the screen saver. So that an application can be certain
of the state of the screen saver, and in some circumstances may even
influence it, there exists the so-called XSSI standard (where XSSI
stands for 'eXtended ScreenSaver Interface'), which was suggested
by Julian Reschke.
As an example, the screen saver Before Dawn installs a cookie in
the cookie jar with the ID XSSI. The value of the XSSI cookie is a
pointer to the following structure:
typedef struct
{
LONG id;
WORD version;
WORD save_stat;
WORD prg_stat;
LONG vec_stat;
} INFOXSSI;
id
Each screen saver enters its XBRA identifier as id. For
'Before Dawn' this is the identifier DAWN.
version
The version number of the XSSI protocol is entered in
version. 'Before Dawn' at present uses the version number
0x101.
save_stat
An application can find out whether the saver is active
at the time with save_stat. A value of 0 means that the
saver is not active, a negative value means that it has
kicked in.
prg_stat
With prg_stat an application can inform 'Before Dawn'
how it is to behave. prg_stat can take the following
values:
prg_stat = 0 Save normally
prg_stat = 1 Never save
prg_stat = -1 Save immediately
vec_stat
vec_stat indicates which system vectors are monitored.
This value represents a bit-field. Its assignment is as
follows:
Bit System vector
0 Keyboard
1 Mouse
2 Joystick
3 MIDI
4 Modem 1
5 Modem 2
6 Serial 1
7 LAN port or Serial 2
8-14 Other vectors
15 Window events