Sade Graphic Mode Screen Saver
------------------------------

1. Introduction
2. Limitations
3. Program Description
4. Acknowledgements
5. How to contact me


1. Introduction
---------------

Screen saver which displays an image in graphic mode after a specified 
idle period. Image data is stored in EMS memory. A random number generator
controls fading-in and fading-out of the image. A key press or mouse
movement causes text mode to be restored. The multiplex interrupt 2F is
used to test for a previous instance of the program, and to communicate
with the resident code.	The image displayed is a picture of popular singer
Sade.	The screen saver occupies just 2.8K when resident.


2. Limitations
--------------

The foreground program is "frozen" when the screen saver activates. This is
the only way to ensure that the text mode screen is correct when it is
restored. Therefore, the saver should be disabled before starting a long 
operation (such as defragmenting a disk).

Any customized characters installed by the foreground program will be lost
when the screen saver de-activates. This is because it is difficult to
track and restore custom characters set by Int 10h Function 11h and its
subfunctions. For an example of this behaviour, test the program with
Norton Utilities FileFind. However, the operation of the foreground program
is not disturbed.

The screen saver is designed to run only in DOS (and not in a DOS session
under any version of Windows).

3. Program Notes
----------------

The program checks for the presence of an EMS memory manager by examining
the memory addressed by the vector for Int 67h.

The program allocates 4 pages of EMS memory (4 x 16 = 64k).

Logical EMS pages are used as follows:
	
	0, 1		Image and palette data
	2			Text mode screen contents
	3			Mouse state information			


Int 2Fh is used to check whether the saver is already installed and to
communicate with the resident section. The additional functions of Int 2Fh
are as follows:

	0			Check installation
	1			Turn program on or off
	2			Change the idle time before activation
	3			Report current program status

The program hooks timer (08h), keyboard (09h), mouse (33h) and multiplex
interrupts (2Fh).

The program contains a random number generator. This is used to plot random
pixels of the image (creating the fading-in and fading-out effect).


4. Acknowledgements
-------------------

Thanks to my friend Emmanuel Thioux for many helpful ideas and insights.

A few of the standard utility routines in the program (e.g. asc2bin) are
derived from Jeff Prosise's book "DOS 6 Techniques & Utilities".


5. How to contact me
--------------------

My name is Glynne Davis and my email accounts are as follows:

Internet:		gdavis@wpo.borland.com
CompuServe:    74140,2716		
