The booted DOS in a VMB session receives XMS (HIMEM), EMS, DPMI and mouse support services from its VDM environment (assuming the virtual DOS machine has default DOS settings). DOS should not therefore load its own HIMEM, EMS or mouse drivers; indeed they may cause errors in the VDM.
DOS programs call these services via appropriate API register parameters and a designated interrupt:
Mouse
These interrupts are trapped by the VDM environment, routed outside the virtual machine and handled by the OS/2 Version 2.0 operating system itself. This may present a problem for certain programs which first test for the presence of such services by issuing an OPEN command to the associated device driver, or which check that a valid interrupt handler is referenced by the Interrupt Vector Table. When a VMB session is started, these device driver names are not present, and the interrupt vectors point to null handlers. The application will therefore assume that the required services are not useable.
In order to avoid this problem, OS/2 Version 2.0 provides three alternative "stub" drivers:
These stub drivers are very small (and use minimal memory when loaded) but satisfy programs which depend on drivers with such names being present. They respond to OPEN commands, and also set handler addresses in the Interrupt Vector Table, thereby satisfying applications which check for the presence of the device drivers in either of these ways.
The user must load these OS/2 files rather than any similarly named files which may be shipped with DOS or applications, such as:
DOS 4.0
There are two ways to achieve this. Assuming OS/2 Version 2.0 is installed on drive E:
device=a:himem.sys device=a:emm386.sys device=a:fsfilter.sys
This method should be used if FSFILTER will be loaded into high memory using DOS 5.0:
device=a:himem.sys device=a:emm386.sys devicehigh=a:fsfilter.sys
device=a:fsfilter.sys device=e:\os2\mdos\himem.sys device=e:\os2\mdos\emm386.sys
The second method has one notable advantage; if and when Corrective Service
is applied to the OS/2 Version 2.0 system, and HIMEM, EMM386 or MOUSE are
updated, it is not necessary to update your DOS diskettes and recreate image
files. FSFILTER itself will have to be updated manually (unless the OS/2
Version 2.0 partition is directly accessible to DOS and FSFILTER is also
loaded from here).
Note that EMS memory size and frame location are determined by DOS Settings, and not by parameters on the DEVICE= statement for EMM386.SYS. It is recommended that EMS and XMS support should not be configured unless required by the application running in the VMB session, since this can impact overall system performance.
We now look at the three different ways to prepare the real DOS to be booted in the VMB.