═══ 1. About ScreenSaver ═══ Version 2.3 Copyright (C) 1993-95 Siegfried Hanisch This program is dedicated to Michaela. Permission to copy and distribute this software and its documentation for any purpose and without charging more than a nominal fee for copying is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. THIS SOFTWARE IS PROVIDED "AS IS". Siegfried Hanisch DISCLAIMS ALL WARRANTIES, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE PRODUCT. SHOULD THE PROGRAM PROVE DEFECTIVE, THE PURCHASER ASSUMES THE RISK OF PAYING THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION AND ANY INCIDENTAL OR CONSEQUENTIAL DAMAGES. IN NO EVENT WILL Siegfried Hanisch BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING WITHOUT LIMITATION DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING OUT OF THE USE OR THE INABILITY TO USE THIS PRODUCT EVEN IF Siegfried Hanisch HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Please note that from version 1.3 on ScreenSaver is Shareware not Freeware. If you intend to use the program for more than 30 days of testing, you have to register. There are some features that are only available to registered users. ScreenSaver is an easy-to-use 32-bit screen saver for OS/2. When ScreenSaver is started, it monitors your keyboard and mouse activity in the backgound. If there has not been any activity for some time, the saver becomes active. It stays active until the mouse is moved or clicked or a key is pressed. You can set various options by double clicking ScreenSaver in the window list (press Ctrl+Esc to show the window list). If you want to quit ScreenSaver, press the "Exit ScreenSaver" button in the configuration panel. ScreenSaver has the advantage of low memory consumption and very low CPU usage - this means virtually no performance impact on your normal work. ScreenSaver has a very modular structure: It searches its directory for saver modules and selects a module randomly when the saver becomes active. Therefore it is very easy to extend ScreenSaver by just copying new saver modules to its directory. There is password protection similar to the OS/2 lockup feature. It is possible to use Deskpic modules with ScreenSaver. Just copy them to the ScreenSaver directory. There is DPMS support for "Green" monitors. New in version 2.3 is support for DOS fullscreen sessions. In version 2.2, there is support for Win-OS/2 fullscreen sessions. Sample source code for do-it-yourself saver modules is included in the archive; see Creating new saver modules for information on how to create your own modules. Even for people who don't know anything about programming it is possible to create their own saver modules; see Creating bitmap saver modules for more information. Related information: Options notebook controls Contacting the author Registration All trademarks are the property of their respective owners. ═══ 2. Options notebook controls ═══ The options notebook allows you to select various ScreenSaver options. The settings take effect immediately. It contains the following controls: Close button Exit ScreenSaver button Timeout slider Saver now corner Saver now corner enabled Corner delay Saver never corner Saver never corner enabled Saver enabled check box Monitor fullscreen sessions check box Copy settings button Mouse sensing check box Configure module button Test module button Available saver modules list box Low priority check box New module slider Password protection settings Green (DPMS) monitor support settings Related information: About ScreenSaver Registration ═══ 2.1. Close button ═══ The "Close" button closes the Options notebook. You can also press the Hide button in the top right corner of the dialog window. Related information: Options notebook controls About ScreenSaver ═══ 2.2. Exit ScreenSaver button ═══ Use the "Exit ScreenSaver" button to end ScreenSaver. Related information: Options notebook controls ═══ 2.3. Timeout slider ═══ With the "Timeout" slider you can adjust the time after which the saver becomes active. Related information: Options notebook controls About ScreenSaver ═══ 2.4. New module slider ═══ With this slider, you can adjust the time after which the module in use is stopped and another one is started. Related information: Options notebook controls ═══ 2.5. Saver now corner ═══ Use these radio buttons to select the corner of the screen into which you have to move the mouse pointer to activate the saver immediately. Related information: Saver now corner enabled Corner delay Options notebook controls ═══ 2.6. Saver now corner enabled ═══ With this check box you can enable and disable the "saver now" feature. Related information: Saver now corner Corner delay Options notebook controls ═══ 2.7. Corner delay ═══ With this check box you can choose if there is a short delay before a module is activated when the mouse pointer is moved into the "Saver now" corner. This feature is useful if you don't want a module to be activated when you accidentially move the mouse into the "Saver now" corner. Related information: Saver now corner Saver now corner enabled Options notebook controls ═══ 2.8. Saver never corner ═══ With these radio buttons you can select the corner of the screen into which you have to move the mouse pointer to temporarily disable monitoring mouse and keyboard activity. Related information: Options notebook controls ═══ 2.9. Saver never corner enabled ═══ With this check box you can enable and disable the "saver never" feature. Related information: Saver never corner Options notebook controls ═══ 2.10. Configure module button ═══ This button displays the configuration dialog of the saver module which is selected in the list box. You can also double click on the list box item to display the corresponding configuration dialog. Press the '+' or '-' keys to directly enable or disable a saver module (this does not work for Deskpic modules ). Related information: Options notebook controls ═══ 2.11. Test module button ═══ This button activates the saver module that is selected in the list box. To stop the test, either move the mouse or click a mouse button or press a key. Related information: Options notebook controls ═══ 2.12. Saver enabled check box ═══ Use the "Saver enabled" check box to enable or disable screen saving. Related information: Options notebook controls ═══ 2.13. Mouse sensing check box ═══ The "Mouse sensing" check box enables or disables monitoring of mouse movement while the saver is active. This means, if mouse sensing is disabled and the saver is active, the saver can only be stopped by pressing a key or clicking a mouse button, but not by moving the mouse; this may be useful if you do not want the saver to stop if you accidentially touch the mouse. Related information: Options notebook controls ═══ 2.14. Available saver modules list box ═══ The "Available saver modules" list box shows all available saver modules. Double clicking on a list box item displays the corresponding configuration dialog. A plus sign in front of a module name means the module is enabled, a minus sign means it is disabled. You can enable or disable a module in its configuration dialog, or by highlighting it and pressing '+' or '-' (this does not work for Deskpic modules ). When the timeout interval expires, ScreenSaver chooses one of the enabled saver modules randomly. If all modules are disabled, the built-in "Eternal Blackness" module is used for screen saving. If you want another font in the list box, choose one from the font palette and drag it into the list box. Related information: Options notebook controls About ScreenSaver Contacting the author Registration ═══ 2.15. Low priority check box ═══ Use the "Low priority" check box to decide wether the saver, when activated, should run with low priority or normal priority. On low priority the saver gets CPU time only when no other application requests CPU time. Normal priority means the saver shares CPU usage with all other tasks; this means the animation is smoother, but other applications may run slightly slower. Some saver module animations may work considerably slower when low priority is disabled. Related information: Options notebook controls ═══ 2.16. Monitor fullscreen sessions check box ═══ If monitoring of fullscreen sessions is enabled, ScreenSaver will switch from an active fullscreen session to the Presentation Manager when the timeout interval expires to do its saver action. When a key is pressed or the mouse is moved, ScreenSaver switches back to the fullscreen session. This option is not available on OS/2 2.0. Related information: Win-OS/2 fullscreen support DOS fullscreen support Options notebook controls ═══ 2.17. Copy settings button ═══ This button executes a special function; under normal circumstances, you should not need to use it. Use this button to extract the ScreenSaver settings (such as timeout, hot corners, password, module settings etc.) from the OS/2 INI file (where they are usually stored) to a local INI file called SSAVER.INI You can now distribute this INI file across the network (or make it accessible on some network drive). If you now invoke ScreenSaver by typing ssaver -i SSAVER.INI the settings are read from the given INI file (SSAVER.INI in this case) instead of the OS/2 INI file; the user can not change any of the settings (ScreenSaver does not show up in the window list); the user can not end ScreenSaver (except with some "kill" utility). There exists a little program, SHOWDLG.EXE, which displays the Options notebook even if ScreenSaver is not in the window list. Invoke it with the name of a password file (created with sspasswd.exe) and the contained password to show the Options notebook. Changes to any settings are NOT stored in the INI file. It is not recommended to make the SHOWDLG.EXE utility accessible to users but only to the system administrator. Note that modules written for ScreenSaver version 1.4 and below will read their settings from OS2.INI instead of the alternate INI file. Related information: Options notebook controls ═══ 3. Password protection settings ═══ This notebook page lets you change your password, enable/disable password protection and startup locking; you can set an external password file and the size of the password entry dialog window. The password is case sensitive. In order to change any of the settings, you must enter the current password in the "Password" entry field. To change your password, you must enter the current password and the new password (enter the new password twice for verification). If you enter a file name into the "External password file" entry field, you can unlock the system either with the password stored in this file or with the local password. This may be useful if you want a systemwide password on your network which can be maintained in a single location. Use the program "sspasswd.exe" to create the external password file. When you install ScreenSaver, the predefined password is I will send money to remind you to register ScreenSaver :-) Related information: Options notebook controls ═══ 4. Green (DPMS) monitor support settings ═══ With the slider, you can set the number of minutes after which the monitor is switched into off mode (calculated from the time when the mouse / keyboard timeout occurred). With the group of radio buttons, set the type of video card you use.  First choice is (S)VGA, XGA and 8514/A. If these do not work as expected, try VESA or S3.  Try VESA only if you have a VESA compliant SVGA card and (S)VGA mode does not work.  For ATI mach8 and mach32 cards, use 8514/A. If this does not work, try VESA.  For ATI mach64, use VESA.  Try S3 if you have S3 card and (S)VGA and VESA modes do not work. Older S3 cards do not support this way of monitor switching. When your monitor is switched off, you can wake it up by pressing a key (except for the Ctrl, Alt and Shift keys), by clicking a mouse button or by moving the mouse (if the "Mouse sensing in Off mode" check box is unchecked, using the mouse does not wake up the monitor). Please note that your monitor must support DPMS power saving modes. Remember that you use this program at your own risk! Users who are not registered are given the possibility to test DPMS support (the monitor is switched on again after 30 seconds). Full functionality is only available to registered users. Currently, "Standby" and "Suspend"" modes are not supported. Related information: Options notebook controls ═══ 5. Win-OS/2 fullscreen support ═══ Starting with version 2.2, there is support for Win-OS/2 fullscreen sessions. The installation program copies the file SSWKICK.SCR to your Win-OS/2 directory and sets this screen saver module as the active screen saver module in the SYSTEM.INI file in your Win-OS/2 directory. To set the timeout for Win-OS/2 sessions, start the Program Manager and use the "Desktop" section of the "Control Panel". ═══ 6. DOS fullscreen support ═══ Starting with version 2.3, there is support for DOS fullscreen sessions. The installation program copies the file SSDKICK.COM to your OS/2 DOS directory (\OS2\MDOS) and adds a line to your AUTOEXEC.BAT file to load this proram when a DOS session is started. The timeout value for DOS fullscreen sessions can be set in the AUTOEXEC.BAT file on your OS/2 boot drive (for example, to set a timeout of 10 minutes, change the line containing SSDKICK.COM to "SSDKICK.COM 10"); the default timeout is 5 minutes. To disable the DOS saver, set the timeout to 0. There are some restrictions:  In DOS fullscreen sessions, only the keyboard is monitored. Therefore, if you use a program that uses mostly mouse input, it may happen that ScreenSaver switches to the desktop because it thinks the DOS session is idle, although you are working with the mouse. If this happens, disable the DOS saver for this session by calling SSDKICK with a parameter of 0 (for example, write a small batch file to start your DOS program with a line reading "SSDKICK 0" followed by a line which calls the actual program).  Some games use rather dirty programming techniques which prevent the DOS saver from getting keyboard and/or timer information. In this case, either the DOS saver never kicks in, or it kicks in when it should not. If this happens, disable the DOS saver for this session (see above). ═══ 7. Creating your own saver modules ═══ The following two sections describe how to create saver modules: Creating bitmap saver modules Creating new saver modules ═══ 7.1. Creating bitmap saver modules ═══ Even for a non-programmer, it is VERY easy to create new bitmap saver modules. There are six steps involved in doing so: 1. Open an OS/2 command session, change your working directory to the ScreenSaver directory, and make sure the files BITMAPS.RES, BITMAPS.SS_, BMPSAMP.RC and MAKEMOD.EXE are there. If they are not, unzip them from the file CUSTBMP.ZIP (CUSTBMP.ZIP can be found in the ScreenSaver distribution file). 2. Get some pictures in bitmap format (*.BMP). You can create bitmaps by scanning photographs, you can convert existing pictures from other formats (*.GIF, *.TIF etc.) to bitmap format with appropriate software, or you can draw them yourself (with the OS/2 Icon Editor or Paintbrush or any other program that can handle bitmap files). Copy all the bitmaps you want to use to the ScreenSaver directory. 3. Choose a name for the new saver module and a name for the file in which your saver is stored. The name for the file must be exactly 8 characters long; the name of the saver module should have a maximum length of 32 characters. Now type "COPY BMPSAMP.RC FILENAME.RC" and press Enter (replace FILENAME with the file name you chose). Load the new file into an editor. You can use the OS/2 system editor E.EXE to edit the file. 4. Replace the string "Custom Bitmaps" with the name you chose for your saver module. Do not change the number in front of the string. 5. Insert lines with the name of your bitmap files. The lines must have the following format: BITMAP number bitmap-file-name The numbers must be consecutive and in ascending order (in the first line inserted number must be 1, in the second 2 and so on). There is no limit on the number of bitmaps in your saver module. Now save the file and quit the editor. 6. Type "MAKEMOD FILENAME" (again, replace FILENAME with the file name you chose) and press Enter. If everything is ok, MAKEMOD tells you that it created the new module. In case of an error, MAKEMOD prints an error message and some hints what you should do; it is most likely that you mistyped the name of a bitmap file. If module creation was successful you have to restart ScreenSaver. The name of the new module should be listed in the "Available saver modules" list box then. The following tutorial shows how to build a new bitmap module. Assume that you want to use the three bitmaps ME.BMP, YOU.BMP and DOG_BOO.BMP; you chose the name of the saver module to be "My Family" and the name of the saver module file to be "MYFAMILY". You enter COPY BMPSAMP.RC MYFAMILY.RC at the command prompt. Then edit the new file (in this example we use the OS/2 system editor E.EXE) E MYFAMILY.RC and change the file contents to look like this. The part of the file that is marked green (the text between "/*" and "*/") is a comment. You can include your own comments if you like. The red text is the module name you insert and the cyan text are the lines enumerating the bitmap files. The rest of the text has to be there; don't alter it. Note that the name of the module and the names of the bitmap files have to be enclosed in double quotation marks. /* MYFAMILY.RC resource file for custom bitmaps saver module */ STRINGTABLE { 1 "My Family" } BITMAP 1 "ME.BMP" BITMAP 2 "YOU.BMP" BITMAP 3 "DOG_BOO.BMP" Now save the file, quit the editor and type MAKEMOD MYFAMILY at the command prompt. MAKEMOD prints a few messages as it works, and finally a success message or a self-explanatory error message. Now you restart ScreenSaver. The item "My Family" should appear in the list box. Related information: Creating new saver modules ═══ 7.2. Creating new saver modules ═══ You should have some experience with Presentation Manager programming and knowledge of the C programming language to create your own saver modules. The ScreenSaver archive comprises sample source code that shows you how to do it. Unzip the files sample.c, sample.h, sample.rc, sample.dlg, sample.def and sample.mak from the file SAMPLE.ZIP (SAMPLE.ZIP can be found in the ScreenSaver distribution file) and copy these files to some other name of your choice (keep the original extensions). If you compile and link in another directory than the ScreenSaver directory, also copy the file SSAVER.ICO to your working directory. Now take a look at these files. They are are commented and contain something like /* $$$$$ insert code here $$$$$ ... comment ... $$$$$ for example $$$$$ ... example code ... */ at those places where you should fill in your code. You can't miss it. Be sure to read the comments before inserting your code. In the "for example" sections of the comments you will find the source code of the "Pyramids" saver module that comes with the ScreenSaver distribution. You can use it as a template for creating your own saver modules. After having successfully compiled your new module the first time, you can use the Dialog Editor to edit the *.RES file and change the configure dialog if required. You should be able to use EMX0.9a (or higher) or the IBM compiler to build new modules. Maybe other compilers work too, but I have not tested that. Now some explanations how a saver module works: After the timeout occurred, the ScreenSaver program loads a saver module into memory and makes it start screen saving. The saver module creates a window that has the size of the whole screen. It then starts another thread (the one you will have to write the code for) that draws anything it wants in this window; see the sample code for more information. When the ScreenSaver program stops the saver module, this thread ends, the window is destroyed and the saver module is unloaded from memory. The idea is, that this independent thread can run with idle time priority without considering any processing of PM messages. Related information: Creating bitmap saver modules ═══ 8. Note for users of OS/2 2.1 ═══ There is a problem in OS/2 2.1 which sometimes prevents applications from saving their data to the OS/2 INI-files. Therefore, if you experience that the ScreenSaver options are not saved correctly, please try the following solution: Add the line attrib -r x:\os2\os2*.ini to the file x:\startup.cmd (x is the drive letter of your boot drive; if the file x:\startup.cmd does not exist, create it) and reboot. ═══ 9. Using Deskpic modules ═══ It is now possible to use Deskpic modules with ScreenSaver. Deskpic is a public domain OS/2 screen saver written by John Ridges. A lot of saver modules exist for this program. They can be found at the usual locations such as Internet FTP sites and BBSs. The saver module files have the extension *.DSS. In order to use them with ScreenSaver, just copy them into the ScreenSaver directory. Deskpic modules are marked with "[Deskpic]" in the list box. The only restriction is that you can not enable or disable them by pressing '+' or '-'; you have to use the module configuration dialog to do so. ═══ 10. Adding ScreenSaver to the Desktop menu ═══ You can now create a Desktop menu entry with which you can activate ScreenSaver (comparable to moving the mouse into the "Saver now corner"). Follow the steps below to create this Desktop menu entry: 1. Open the Desktop settings notebook (click mouse button 2 somewhere on the desktop background and select Open->Settings from the popup menu; if you use OS/2 Warp V3, select Settings from the popup menu). 2. In the settings notebook, select "Menu" 3. In the "Available menus" list box, select (click on) the first entry. 4. In the BOTTOM half of the dialog, click on the "Create another..." push button (ATTENTION! There are two push buttons with equal text). 5. The "Menu Item Settings" dialog shows up. In the "Menu item name" entry field, type "Activate ScreenSaver" or whatever you want to name your menu entry. 6. In the "Name" entry field, enter the full path and filename of SSKICK.EXE (SSKICK.EXE can be found in the ScreenSaver directory). Assuming that the ScreenSaver directory is E:\SSAVER, type "E:\SSAVER\SSKICK.EXE". Alternatively, you can use the "Find program" button to locate SSKICK.EXE 7. Click on the "OK" button to close the dialog. 8. Close the Desktop settings notebook by pressing Alt+F4 or by double clicking the system menu. You should disable "Mouse sensing" if you use the Desktop menu to activate ScreenSaver. ═══ 11. Command line switches ═══ There exist the following command line switches:  -r key Your Name With the -r switch, you can enter registation information. See Registration.  -i SSAVER.INI For the use of this switch, see Copy settings button.  -t This switch causes ScreenSaver to make the options notebook unaccessible to users. See also Copy settings button. ═══ 12. Contacting the author ═══ To get the latest Shareware version, please download it from the Internet FTP archive hobbes.nmsu.edu (filename is os2/graphics/ssaver*.zip) or from CompuServe (SSAVRS.ZIP in OS2USER) or from various BBSs. My mail address is Dipl.-Ing. Siegfried Hanisch Einsiedlergasse 6/16 A - 1050 Vienna AUSTRIA / EUROPE Internet e-mail: ssaver@ibm.net (ScreenSaver related mail only) or siggih@ibm.net Fido: Siegfried Hanisch @ 2:310/15 (checked unregularly) Please send any suggestions, comments or bug reports to one of the above addresses. If you have questions concerning the programming of new saver modules, please contact me via e-mail. Related information: Registration ═══ 13. Registration ═══ ScreenSaver is Shareware. This means, if you intend to use the program for more than 30 days of testing, you have to register. There are some features that are only available to registered users. The registration fee for ScreenSaver is 28 US$ / 40 DM / 280 ATS. The registration is valid for all future Shareware versions of ScreenSaver, including PowerPC. There are several ways to register ScreenSaver:  Send cash (or an EuroCheque if in Europe; please fill in 280 ATS if doing so) to the following mail address: Dipl.-Ing. Siegfried Hanisch Einsiedlergasse 6/16 A - 1050 Vienna AUSTRIA / EUROPE  You can register by contacting BMT Micro : By Mail: BMT Micro 452 Horn Rd Wilmington, NC 28412-2411 USA By Phone: (910) 791-7052 Voice orders, questions, etc. (800) 414-4268 Voice orders only (toll free in USA and Canada) By Fax: (910) 350-2937 (please print or type clearly) By BBS: (910) 350-8061 (10 lines, all 14.4) (910) 799-0923 (28.8 line) BMT Micro accept Visa, American Express, Mastercard, Discover, Optima, Eurocard, Cashiers Checks, Money Orders, Personal Checks. Payment must be in US Currency. No cash please! No charge for 1st Class shipping anywhere in the world. Priority shipping extra and will be explained when the order is placed. A form for registering via fax or mail can be found in the file REGISTER.DOC in the ScreenSaver directory. If you live in the USA, registration can also be done by phone with your checking or savings account (including bank money market and NOW accounts). For more information on this, see the file REGISTER.DOC in the ScreenSaver directory.  For users in Austria only: Sie kФnnen den Betrag auf folgendes Konto einzahlen oder Бberweisen:Bank Austria, BLZ 20151, Kto.Nr. 709353049, lautend auf Siegfried Hanisch. Bitte teilen Sie mir auch Ihre e-mail- oder Post-Adresse mit, damit ich Ihnen die Registrierungsnummer zukommen lassen kann.  For users in Germany only: Sie kФnnen den Betrag auf folgendes Konto einzahlen oder Бberweisen:Dresdner Bank, BLZ 76080040, Kto.Nr. 45422942, lautend auf Anneliese Hanisch. Bitte teilen Sie mir ** unbedingt ** per e-mail oder Post Ihre Adresse (e-mail oder Post) mit, damit ich Ihnen die Registrierungsinformation zukommen lassen kann. Auf den BankauszБgen ist die Adresse meist unvollstДndig, falsch oder Бberhaupt nicht vorhanden. Registered users receive a registration key. You can then enter the registration information by typing ssaver -r key Your Name For multi-user or site licences, please contact me or BMT Micro.