DIMVESA.EXE Multi-function screen dimmer/VESA DPMS (Energy Star) supporting screen-saver. DimVESA v3.1 (DOS version) Alexander C. Eremeef, Douglas Boling and Jeff Prosise February 14, 1997 See: DIMMER.DOC for instructions, same parameters apply, except: CTRL-ALT-keypress must be used instead of ALT-keypress, such as the CTRL-ALT-UpArrow combination. This was to prevent conflicts with some programs. New with v3.1 (minor changes): ------------------------------ 1. New switch added ('/R'), use '/R' or '/R+' (both have the same effect) if your graphics card doesn't support VESA DPMS directly, and you are using a driver such as SDD to simulate VESA extensions. 2. The documentation has been revised slightly. New with v3.0: -------------- 1. I've added an interactive mode. Simply run DimVESA from the command line, and answer its questions. You don't have to understand the command-line options anymore, in order to use DimVESA. 2. DimVESA is no longer FREEWARE, it is now SHAREWARE. This is because I have not yet received any donations. DimVESA will continue to be free for private use, however companies, organizations and institutions will be expected to acquire a SITE LICENSE to use this software. This process is extremely economical, especially since this is usually a tax-deductible business expense. The cost for such a license depends on the approximate number of computers in the company, or department which is to receive the license. The minimum fee is $15, this covers up to 15 computers. Each additional computer costs $0.75. These fees INCLUDE shipping. This license will cover all future versions of the program (you can use any version of DimVESA, and you won't have to pay again, unless you need to use it on more computers than your site license allows.) If you order only a site license, I assume that you already have DimVESA, and will receive new versions of DimVESA the same (or some other) way you received this one. In this case, all you get from me is just a receipt and a paper copy of the site license. If you need a diskette with the newest version, please add $5, and include your mailing address. Please understand that a site license does not entitle you to receive any source code, as it is handled separately. Please see the DONATIONS section. I'm sure you will consider DimVESA to be a worthwhile investment, considering the quantity of electricity that you can save with a DPMS compliant screensaver such as this one. -------------- HOW TO ORDER -------------- Send one of the following: US Postal Money Order, International Money Order, Cashiers Check, or a Personal Check (drawn on a US or Canadian bank), Cash, in US dollars only. Please don't send coins, they're useless to us. ..with the correct amount in U.S. Dollars to: Alexander C. Eremeef (Rurik) P.O. BOX 393 Watertown, MA 02272-0393 Make sure the money is not visible through the envelope. This is especially important if you choose to send cash, because if someone sees it somewhere in the mail, we may never receive it.. If at all possible ***DO NOT SEND CASH***! Please allow 28 days for delivery. If you can, when you send something to my P.O. box, please send a brief message to me at the following Internet address as well: alex01@twinwave.net PLEASE NOTE: - We do not accept EuroChecks, or other foreign checks, (as the banks charge us to cash those) - We cannot accept credit cards (VISA, AmEx, Mastercard, etc.), (as we have not set that up yet) - Send US dollars ONLY. No other currencies are accepted. NOTE: In the following section I refer to "High Memory" as meaning either a QEMM High Memory Block, or a DOS 5+ Upper Memory Block (UMB), I do not use it to mean the HMA (High Memory Area; the first section of XMS, just above 1024k, which can only be used by one program at a time.) 3. DimVESA now has a feature that will astonish you! The new '/A' switch means "AutoLoad"! When you use this switch, DimVESA will detect your configuration, and load *ITSELF* into high-memory (if at all possible). It currently is capable of adapting itself to Quarterdeck's QEMM high memory regions, DOS 5+ Upper Memory Blocks, and of course the normal DOS conventional memory. It detects Microsoft's Windows 2+, and Quarterdeck's DESQview also. This was necessary so DimVESA would (hopefully) not jam your system when either of these two were present. If Windows or DESQview is detected, high-memory loading is switched off, even if you use the '/A' switch. Windows and DESQview do not support high memory areas. P.S. The UNLOAD ('/U') option now fully supports the process of unloading DimVESA from high-memory, which is a reason to use the "AutoLoad" feature instead of a program such as LOADHIGH, etc. Another reason to use "AutoLoad" is because it can fit DimVESA into a REALLY small space in high memory. A program such as LOADHIGH on the other hand, has to load the COMPLETE program (with the non- resident portion included) into high memory, and then wait for the program to reduce its resident memory size. In other words, with LOADHIGH, if there isn't a large enough UMB to accommodate the file size of the program which is being loaded high, it will require it to load into conventional memory instead. ANY program with the "AutoLoad" feature will only require a block the size of the ACTUAL resident portion. In the case of DimVESA, that's about 1.8 kilobytes. Also, "AutoLoad" is thought to be an incentive for programmers and companies to purchase the source code. Just think how much more professionalism it could add to YOUR software!! Plus, the "AutoLoad" source code is only $15.00 + $5.00 shipping (if applicable). You pay NO ROYALTIES! YOU CAN'T GO WRONG!! 4. Thanks to my "AutoLoad" modifications, the UNLOAD ('/U') feature is now MUCH faster and efficient (in a microsecond scale, of course!) I modified it to support the "AutoLoad" method of loading DimVESA into high memory. VERY few shareware programs are capable of unloading themselves from high memory, *THIS* is one of them! ;-) Additionally, the "Auto-Unload" (or FreeMem procedure) is another piece of hand-written assembly language, which out-does the DOS int21h function 49h procedure. It will coalesce adjacent free memory blocks when it de-allocates memory, unlike DOS interrupt 21h, function 49h. This is important because if a user unloads a program, with int21h function 49h, DOS will only free the memory block, and not combine it with the next free block afterwards. This creates the problem of having two free memory blocks in a row - if another section of memory is allocated (in the same area, say when another program is loaded into an Upper Memory Block), and the new section request is larger than the previously freed block (which was not coalesced, if it was freed with DOS int21h function 49h), it will be loaded into the NEXT free block, leaving a "hole" in memory. That is, the block freed by DOS will be avoided entirely. Not so with FreeMem (the companion to "AutoLoad"). This procedure (which is also included when you purchase the "AutoLoad" source code, is probably the IDEAL replacement for the DOS memory de-allocation procedure. 5. The dimmer value (from -63 to +63) after the delay value is no longer required. I added a feature to make it use -63 as default. 6. New '/N' switch. This tells DIMVESA to IGNORE any VESA/DPMS features of your graphics card, and use the normal graphics palette manipulation (with the dimmer value.) This is useful if you have a VESA/DPMS compliant graphics card, but no DPMS compatible monitor. 7. I have changed DimVESA to automatically disable its Screen-Saver function when in a graphics mode (and re-enable itself when back in text mode.) This should fix the problem of keyboard lockups when people run Microsoft's Windows while this program is loaded. This also allowed me make the program exit out of its timer procedure almost immediately if the system is not in a known text mode. This means that DimVESA v3.0 is less CPU-intensive in a graphics mode than the original DIMMER program. The '/G' switch allows you to enable the Screen-Saver in all graphics modes. 8. The "Yellow Windows Bug" has been fixed - this was the bug that caused Microsoft's Windows v3.11 (and probably earlier versions also) to show a yellow colored title screen (instead of the normal bluish one.) You can re- enable the bug with the '/Y' switch if you want to see it. 9. Added Windows 95 compatibility switch ('/W'). To make the Screen-Saver part of DimVESA compatible with Windows 95, use the '/W+' switch and adjust the properties of the DOS boxes, so that Win95 doesn't tell DOS applications that Windows is present. If you cannot do that, then use the '/W+' switch anyway, and the Screen-Saver will be disabled in Windows. If you are using Windows v3.xx (whatever version) on top of DOS, then always use the '/W-' switch. DIMMER.COM v1.0 is included also, for reference. Disclaimer: ----------- I modified this program for myself, and am giving my modified version out to the public, as shareware. Since the original program which DimVESA is based upon was freeware, I am including a complete copy of it (program, documentation, and source code; as DIMMER.COM, DIMMER.DOC, and DIMMER.ASM) along with DimVESA. Only my modifications to DIMMER are shareware. You are free to use the original DIMMER program without paying me even a penny. However, since I have put much effort into DimVESA, I have to make it shareware (the previous versions were freeware). However, I cannot accept responsibility for your use (or misuse) of this program. The only thing I can guarantee is that it works for me. In the following documentation, I will describe how the program works on my system. I do not guarantee that this program will work on your system. However, I hope it will. Legal issues: ------------- Various company trademarks are mentioned in this file. I acknowledge such trademarks as the property of their owners. They have been capitalized, where appropriate. Purpose: -------- I purchased a new system, with VESA DPMS (Video Electronics Standards Association, Display Power Management Signaling) capabilities. I was frustrated to be unable to find a DOS screen-saver that supports these capabilities. So I modified one which I use frequently. Please note that the source code for DIMMER.COM (DIMMER.ASM) is publicly available. However, since most people do not program in Assembly Language, I will not include my modified version of that source code. Modifications: -------------- When a screen-saver is set (/D command-line parameter), DIMVESA.EXE will function like DIMMER.COM, except that when the timer expires (depending on the amount of time you set with the /D parameter), the program will check to see if your graphics system is VESA DPMS compatible, and will utilize DPMS functions as follows: After the number of minutes which you specify with the /D parameter have elapsed (without any keystrokes), DimVESA will switch the monitor into STANDBY mode, blanking the screen without turning off the power supply to the tube. This saves some electricity, and allows you to turn the monitor back on real fast (by hitting a key on the keyboard). With the other two methods, it takes a few seconds. The 2nd timer will then start. After the same amount of time has elapsed (again), it will switch the monitor to SUSPEND (referred to as "STAND-BY mode" in the documentation of some monitors.) In this condition the monitor consumes less that 30 watts. On a lot of monitors, the actual power consumption in this mode is about 6 percent of maximum (about 10 watts or so). The 3rd timer will then start. After the same amount of time has elapsed (again), it will switch the monitor to OFF, in which condition the monitor consumes about 5 to 8 watts. In most DPMS compliant monitors, the actual power consumption in this mode is about 4 percent of maximum. Look at it this way (these are approximations): With a 5 minute setting: Time Elapsed / Monitor Condition / Power Consumption ---------------------------------------------------- 0-5 minutes ON 100 percent 5-10 minutes STANDBY 80 to 99 percent 10-15 minutes SUSPEND 6 to 20 percent 15+ minutes OFF 6 percent or less ---------------------------------------------------- You can, of course use a time setting less than 5 minutes, as in: DIMVESA /D 3 -63 ...for a three minute time setting (the "-63" is the dimmer setting which the program uses if DPMS is not detected.) If the DPMS check fails, it will use the dimmer setting, just as DIMMER.COM does. When the monitor is shut off or dimmed, pressing any key will restore the display, just as DIMMER.COM does, except that with DIMVESA.EXE, this may (or may not) involve the software physically turning the monitor back on. Again, this depends on whether your system supports VESA DPMS. The same is true for the /V switch, which causes the display to be re-enabled when a BIOS video I/O compatible program displays something on the screen. Notes: ------ This is a DOS TSR program, it stays active in memory to accomplish it's purpose. If it is configured properly, it will also function from within DOS boxes in Windows v3.xx and Windows 95. I have not had time to test it under Windows NT or OS/2 yet. However, it *IS* compatible with Windows v3.11 DOS boxes, especially when loaded *BEFORE* Windows. To make the Screen-Saver part of DimVESA compatible with Windows 95, use the '/W+' switch and adjust the properties of the DOS boxes, so that Win95 doesn't tell DOS applications that Windows is present. If you cannot do that, then use the '/W+' switch anyway, and the Screen-Saver will be disabled in Windows. If you are using Windows v3.xx (whatever version) on top of DOS, then always use the '/W-' switch. DimVESA can be "loaded high" into DOS UMBs or QEMM's high memory. Use the LOADHI or LOADHIGH command from your version of DOS or memory manager. However, starting with v3.0 the '/A' (or "AutoLoad") switch provides the same function, and does it all automatically. It is recommended to use the '/A' switch INSTEAD of any LOADHIGH utilities. When specifying a number of minutes for the screen-saver, you must still specify a dimmer value (read DIMMER.DOC) if your system does not support VESA DPMS. For a five-minute screen-saver, the command: DIMVESA /D 5 -63 ..would be valid. You may use any dimmer value between -63 and 63. -63 is darkest, 63 is lightest. This value is irrelevant if your system supports VESA DPMS. NOTE: DimVESA v3.0 will allow you to avoid using the dimmer value if your system is VESA DPMS capable. If it doesn't work, use the dimmer value. Bugs: ----- The potential for bugs exists. If you find any, send me a *detailed* description, and I'll work on them. Especially; some graphics cards and/or monitors may not support the "Standby" VESA DPMS mode, to see if this is the case, wait *TWICE* the delay value you specify (say, specify one minute, and wait two minutes) so DimVESA can send the DPMS "Shutdown" command. You may contact me at: alex01@twinwave.net Please give a detailed description of any programming bugs you find. Also check the info page at: http://sagittarius.twinwave.net/get.html DONATIONS: ---------- Any donations are welcome. Even a postcard would be welcomed, as a token of appreciation.. :-) For those who donate over $5.00, if requested I will e-mail a copy of some other shareware and public-domain utilities which I find useful. NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW --------------------------------------------------------------------------- The "AutoLoad" (Automatic high-memory resident Loading) source code is available for a donation of $15.00, assuming you have an e-mail address where I can send it. If you buy the source code, you can include the "AutoLoad" and FreeMem portions in any programs you (or your company) write, without paying me any royalties. This $15.00 includes the above mentioned $5.00 offer, with a collection of useful utilities. Please include your e-mail address, and whether your e-mail program supports MIME, BinHex or UU-encode/UU-decode e-mail file transmission formats.) For an additional $5.00 ($20 total), I'll send you a 3.5 inch diskette with all the stuff. Sorry if this shipping charge (the $5.00) seems somewhat much, I just wanted to standardize it worldwide. Considering that I'm currently in Germany (with most customers in the U.S.A.), that shipping charge is quite accurate. NOTE: For your convenience, I have a P.O. BOX in the U.S.A. (see below), ----- so people living in the U.S. will not have to pay enormous quantities of money for an international money order. --------------------------------------------------------------------------- NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW Remember that by donating, you are showing me that you appreciate my work. After all, I did not have to release this to the public. Also, you are funding the development of additional shareware and public domain software. Send donations to: Alexander C. Eremeef (Rurik) P.O. BOX 393 Watertown, MA 02272-0393 ----- NOTE: If you send anything to this address, please inform me by e-mail at ----- alex01@twinwave.net as well. Thanks! Feature requests: ----------------- If you want a feature added to this program, you can send your request in a letter, along with a small donation (let's say, at least $5.00), and when I do the modifications, I'll e-mail you a copy of the modified version. If you can't receive files by e-mail, send an additional $5 for postage if you want a copy. If applicable, include your e-mail address, and whether your e-mail program supports MIME, BinHex or UU-encode/UU-decode e-mail file transmission formats.) If you order a site license, you may also send a list of feature requests (at no additional cost to you), your site license will cover the future versions of DimVESA as well. Over and out. Alexander C. Eremeef Greater Enhancement Technologies (TM) G.E.T. the Power (TM)