Document Number 1004 Logitech Mouse Driver and VESA Super VGA Support 1/27/93 Background : ------------ The VGA Standard which was established by IBM, defines a video architecture and video modes. Many video manufacturers follow this standard and add enhancements to it. As manufacturers refine their video boards, a new set of 'above VGA' video resolutions and architecture's have been created. To bring these many different video schemes together VESA (Video Electronics Standard Association) was formed to give direction to the future of video standards for the IBM personal computer. Super VGA is loosely defined as anything above the VGA standard. This includes higher resolutions (e.g. 800 x 600 for VESA mode 100h) and greater or equal number of colors (e.g. 256 colors for VESA mode 103h). DOS Mouse Driver: ----------------- Under DOS, many applications require that the mouse driver draw the mouse cursor. To do this the mouse driver must have knowledge of the underlying video architecture and the video mode that is being displayed. This presents problems as video boards surpass the VGA limit. As video boards become more complex the mouse driver must be expanded to handle all situations. To remedy this both VESA and Logitech have established the Video Cursor Interface (VCI) Standard. This standard outlines the interface between an input device, such as a mouse, and a small overlay program that contains hardware dependent cursor drawing code. The interface contains initialization, cursor movement and cursor function calls. The host (or mouse in this case) calls the VCI module to perform all cursor functions. The host need not have any knowledge of the cursor drawing software/hardware. The VCI module program can be implemented in one of three forms: A] overlay program that the host program loads B] TSR/device driver program that redirects INT 10h to itself C] as a ROM resident code For Logitech Mouse Software the overlay program (LVESA.OVL) is the only method used. Other Operating Environments/Systems: ------------------------------------- Under other operating environments (Windows, GEM) and operating systems (OS/2, UNIX) the mouse driver is not required to display the cursor on the video screen. The mouse driver simply acquires button and movement information and passes this information to the operating environment/system which does the rest of the work. The VCI does not apply to such operating systems/environments. Logitech VCI Compatible Mouse Driver: ------------------------------------- As outlined above the LVESA.OVL module allows for a separation of the cursor drawing code from the input device code. Additional video modes or hardware configurations can be added to the overlay without rewriting a complete mouse driver. Any driver that supports the VCI interface will support the overlay module. Starting from the 6.10 release, the Logitech DOS driver is made up of the three following files: 1) MOUSE.COM : mouse driver 2) LMOUSE.INI : mouse driver configuration file 3) LVESA.OVL : video module for the DOS driver MOUSE.COM: ---------- During initialization MOUSE.COM searches for the LMOUSE.INI initialization file. This text file contains information used for mouse driver initialization such as the drive and path of a LVESA.OVL overlay program. The mouse driver searches for a LVESA.OVL overlay module, if specified, and loads it into memory. The driver calls the LVESA.OVL initialization routine. If initialization is successful the overlay code is copied into the mouse driver. If initialization fails the mouse driver uses it's default video cursor code. The Logitech DOS mouse driver contains cursor enhancements which enhance cursor viewing in DOS programs that use the mouse driver's cursor. Cursor enhancements are not available when the LVESA.OVL is being used. LMOUSE.INI: ----------- This text file contains initialization information that is used on the initial loading of the mouse driver. The initialization file contains information such as the operating mode of the mouse (for left handed users) and the drive and path of the LVESA.OVL file. If no drive or path are used, the mouse driver launching drive:directory is assumed. If LMOUSE.INI is not present the mouse driver assumes a right handed mouse and uses it's internal video cursor drawing code. LMOUSE.INI is created by the mouse installation program at installation time. The search order for the LMOUSE.INI is as follows: -------------------------------------------------- 1) A SET statement in the AUTOEXEC.BAT file contains the drive and path to the mouse directory (implemented but not currently used by Logitech). e.g. SET MOUSE=C:\TEST\MOUSE; 2) Search the same directory as the mouse driver (DOS Version 3.0 and above). 3) Search the root of the C: disk drive (DOS 2.X and lower). 4) Search the root of the A: disk drive for floppy drive systems. LMOUSE.INI is used by the DOS mouse driver only. Later expansions may include usage by other mouse drivers (Windows mouse driver). Currently LMOUSE.INI contain 2 main sections, MOUSE and DISPLAY. The MOUSE section tells the mouse driver if a left handed mouse is attached to the driver. This is used for Logitech software only, it does not swap the mouse buttons. [MOUSE] mode = right (or left) The DISPLAY section gives the drive, path and name of the video overlay (drive and path are optional if the overlay is located in the same directory as the mouse driver). If the user wishes to change video overlays they must edit this entry to a new drive, path and overlay name. This entry may also contain the reserved word RESIDENT. RESIDENT is used for a TSR or ROM version of the VCI module. [DISPLAY] VideoModule = DRIVE:\PATH\OVERLAY_NAME.OVL ;use a separate .OVL program or VideoModule = RESIDENT ;use the resident VCI module or VideoModule = ;nothing, use the drivers default cursor LVESA.OVL: ---------- The Logitech VCI overlay program that contains video cursor support for CGA, EGA, VGA and VESA Super VGA video modes. This program is copied into the mouse driver at initialization and becomes part of the resident mouse driver. MOUSE.SYS: ---------- Because of DOS system constraints the device driver version of the mouse driver (MOUSE.SYS) does not have the ability to read the LMOUSE.INI file or load the LVESA.OVL file. This may change in future releases. DOS Driver Cursor Enhancements: ------------------------------- As mentioned above the Logitech DOS mouse driver cursor enhancements are not available with the LVESA.OVL. Using the cursor enhancements will disable loading the LVESA overlay. To load the cursor enhancements, use the following command line parameters on the first call to the mouse driver: CENHANCE COFF, CSLOW, CFAST LCURSOR, DCURSOR TOFF, TON Example: MOUSE CENHANCE If the cursor enhancements are not loaded these parameters will not work on following calls to the mouse driver. Loading Other VCI Overlays Modules: ----------------------------------- The VCI standard is very new and currently not used by any other mouse makers or video manufactures. Other video manufactures may adopt it and their end users will need to install these new overlay files. To change the overlay file being used the LMOUSE.INI file will need to be edited as follows: [DISPLAY] VideoModule = DRIVE:PATH\NEW_OVL.OVL where NEW_OVL is the name of the new users overlay program. The DRIVE:PATH are needed if the overlay is not located in the mouse drivers directory. ROM Resident Overlay or TSR's: ------------------------------ Some video manufactures may put their video overlay code in ROM BIOS or in a TSR (Terminate and Stay Resident) program. The video manufacturer should provide information to the user about this. To enable the mouse driver to search for a BIOS VCI implementation or TSR the LMOUSE.INI should be edited as follows: [DISPLAY] VideoModule = RESIDENT This line tells the mouse driver to search for the video overlay that is already present in memory. Disabling LVESA.OVL Loading: ---------------------------- Two methods are used to disable the usage of the LVESA.OVL overlay: 1) Alter the 'VideoModule' string in the LMOUSE.INI file. This is done by: a) removing the overlay file name from the string: VideoModule = LVESA.OVL ;current setting change to VideoModule = ;nothing b) commenting out the entire VideoModule line: ; VideoModule = LVESA.OVL Note: This will cause an error to be displayed during the mouse driver initialization. This error will have no effect on the mouse drivers loading. 2) Use the 'NOVCI' parameter on the first call to the DOS mouse driver: MOUSE NOVCI This forces the mouse driver to use it's internal video code.