
Logitech Mouse Driver and VESA Super VGA Support

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.
