Diamond Computer Systems VIPER (VLB/PCI) Power Management vers. 1.2
12/29/93


Diamond Display Power Management supports three power management states
defined by VESA  (Video Electronics Standards Association, version 1.0p,
revision 0.7p, August 20, 1993) in both DOS and Windows environments:
        STANDBY
        SUSPEND
        OFF

Power management states in DOS environment can be individually set from 1
to 99 minutes through options of VIPERPM (VIPER (VLB/PCI) power management
TSR intallation program) as following:

   Usage:  VIPERPM [option]
   Options:
     h - Displays this help message
     u - Unloads utility from memory
     bxx - sets Standby timer in minutes (1 to 99) in DOS environment
     sxx - sets Suspend timer in minutes (1 to 99) in DOS environment
     oxx - sets Off timer in minutes (1 to 99) in DOS environment

   For example:

          VIPERPM b7 s15 o27 <enter>

        Viper (VLB/PCI) will be in STANDBY state after 7 minutes in DOS
        environment.  It will be in SUSPEND state 8 minutes after STANDBY
        state in DOS environment.  Then in OFF state 12 minutes after SUSPEND
        state in DOS environment.

   After Viper (VLB/PCI) power management TSR is loaded, you can use VIPERPM
   to show current power management timer settings in DOS environment.

   For example: C:\VIPERPM <enter>

While the system switches into Windows enviroment, the power management states
can be individually set from 1 to 75 minutes through DPMI windows application.

   For example:

        STANDBY=10 minutes
        SUSPEND=25 minutes
        OFF=75 minutes

        Viper (VLB/PCI) will be in STANDBY state after 10 minutes.  It will
        be in SUSPEND state 15 minutes after STANDBY state.  Then in OFF state
        50 minutes after SUSPEND state.

Display adapter is set to ON state with input from keyboard or mouse (if mouse
device driver is loaded) in both DOS and Windows environments.


DISKETTE CONTAINS:
        VIPERPM.COM     Viper (VLB/PCI) Power Management BIOS TSR 1.2
        DPMI.EXE        Diamond Display Power Management for Windows 1.0


INSTALLATION:
        1.  Copy VIPERPM.COM to root directory C:\.
        2.  Modify AUTOEXEC.BAT.  Add C:\VIPERPM [option] to set Standby,
            Suspend and Off timers in DOS environment.
            Viper (VLB/PCI) Power Management BIOS TSR will be loaded with every
            system boot, you can change those timer settings later by unload
            it and load again with new settings.
        3.  Copy DPMI.EXE to Windows directory C:\WINDOWS.
        4.  Run Windows.
        5.  Place DPMI.EXE in Windows STARTUP Group.


DPMI CONFIGURATION (setting power management timer in Windows environment):
        1.  Double click on DPMI icon.
        2.  All power management states are disabled.
                STANDBY=Never
                SUSPEND=Never
                OFF=Never
        3.  Move scroll bar(s) to left to enable a power management state(s).
            A number will appear on right of scroll bar to indicate minute(s).
        4.  Click on Save! menu to save power management configuration.  It
            creates or updates DPMI.INI in C:\WINDOWS.
        5.  Select File
        6.  Select Properties
        7.  Select "Run Minimized"
        8.  Click OK
        9.  Minimize to start Diamond Display Power Management.


NOTES:
     In both DOS and Windows environments:

        STANDBY minutes must be <= SUSPEND minutes
        SUSPEND minutes must be <= OFF miniutes


LIMITATIONS:
     In protected mode application (i.e. AutoCad, Links386 game), DPMS is
     not properly supported at this release.


PROGRAMMER'S REFERENCES:
     This VIPER (VLB/PCI) DMPS BIOS TSR supports following VBE/PM services
     (VESA Display BIOS Extensions / Power Management, VBE Sub-function 10h)
     as defined in VESA VBE/PM version 1.0p, revision 0.4p (Sept. 1, 1993):

     a. Report VBE/PM Capabilities:
        Input:   AH = 4fh       VESA Extension
                 AL = 10h       VBE/PM Services
                 BL = 00h       Report VBE/PM Capabilities
                 ES:DI          Null pointer 0000:0000h (reserved for future
                                use)
        Output:  AX =           Status (*)
                 BH =           Power saving state signals supported
                                1 = supported, 0 = not supported
                  bit 0         STANDBY
                  bit 1         SUSPEND
                  bit 2         OFF
                  bit 3         REDUCED ON (intended for flat panel)
                  bits 7-4      reserved for future power control
                 BL =           VBE/PM Version number (00010000b - 1.00)
                  bits 3-0      Minor Version number
                  bits 7-4      Major Version number
                 ES:DI          Unchanged

     b. Set Display Power State:
        Input:   AH = 4fh       VESA Extension
                 AL = 10h       VBE/PM Services
                 BL = 01h       Set Display Power State
                 BH =           Requested Power State
                      00h       ON
                      01h       STANDBY
                      02h       SUSPEND
                      04h       OFF
                      08h       REDUCED ON (intended for flat panel)
        Output:  AX =           Status (*)
                 BH =           Unchanged

     c. Get Display Power State:
        Input:   AH = 4fh       VESA Extension
                 AL = 10h       VBE/PM Services
                 BL = 02h       Get Display Power State
        Output:  AX =           Status (*)
                 BH =           Power state currently requested by display
                      00h       ON
                      01h       STANDBY
                      02h       SUSPEND
                      04h       OFF
                      08h       REDUCED ON (intended for flat panel)

     * Status information:
                 AL == 4Fh:     Function is supported
                 AL != 4Fh:     Function is not supported
                 AH == 00h:     Function call successful
                 AH != 00h:     Function call failed

