DOS Emulation Overview

DOS Emulation is implemented by running a very small portion of the DOS Emulation kernel in V86 mode and a much larger portion of this code in protected mode outside the VDM. In OS/2 Version 2.0, physical device drivers are loaded above 1MB and only the DOS Emulation kernel resides below 1MB. Any user-installed OS/2 device drivers will not affect the amount of application space available to a DOS application running in a virtual DOS machine. Similarly, adding LAN drivers to the OS/2 configuration to support a network server or redirector does not impact DOS application space, even though DOS applications may make use of these OS/2 network devices. Virtual device drivers are also loaded outside the VDM address space, and therefore do not reduce the amount of memory available to a DOS application.

In this way, the MVDM architecture makes the maximum amount of memory available to DOS applications. In fact, up to 630KB are free for use by DOS applications; this represents an increase of approximately 100KB over memory available to the single DOS session that was available under OS/2 Version 1.3. Note that this amount may be reduced if DOS device drivers and/or TSR programs are loaded in a VDM. The following DOS features are implemented by the DOS Emulation:

  • DOS console device driver
  • DOS device driver loading/support
  • DOS program loading and execution
  • DOS FCB I/O support
  • DOS memory manager
  • DOS NLS support
  • DOS PDB process support
  • VDM entering and exiting kernel mode support
  • Special DOS compatibility mechanisms.

    DOS Emulation supports all documented DOS interrupts and features. In addition, some undocumented aspects of these functions (especially INT 21h) are supported. This support is incorporated in the DOS Emulation component because a large number of popular DOS applications rely upon these interfaces.

    The following list shows the documented DOS system interrupt services which are implemented by DOS Emulation and which are available to DOS applications running in VDMs:

    INT 20h

    INT 21h INT 22h/INT 23h INT 24h INT 25h/INT 26h INT 27h INT 28h INT 2Fh

    Other DOS compatibility functions are implemented by the 8086 Emulation component of MVDM, and by virtual device drivers. The functions provided by these components are explained in 8086 Emulation and in Device Drivers, respectively.


    [Back: MVDM DOS Emulation]
    [Next: DOS Emulation Implementation]