Jump to content

Virtual Control Program Interface

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Warren (talk | contribs) at 04:01, 6 October 2008 (initial article copied from DOS Protected Mode Interface). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

VCPI (Virtual Control Program Interface) was an earlier and incompatible method for doing the same thing as DPMI and was limited to 32-bit mode. VCPI was provided by an expanded memory manager in DOS (e.g. CEMM, QEMM, later EMM386). It was eclipsed by DPMI, most notably because it was not supported for DOS programs run in Windows 3.0's native protected mode (called 386 enhanced mode) and because VCPI runs programs in Ring 0, which defeated the purpose of x86 protection. It also did not work with OS/2 2.0 and later. Windows 3.x only supported VCPI in Standard and Real modes. Earlier Windows/386 2.1 was not compatible with DOS extenders at all.

VCPI also had a more limited scope in that it allowed a protected mode DOS program to run only when the program was started from DOS already running inside a virtual 8086 mode task. (This was typically accomplished through a memory manager operating as a virtual [mode] control program for the processor.) Because the virtual 8086 mode isolates programs from the hardware, it is not possible for a program to switch to protected mode without some support from the control program.

In the late 1980s an extended version of the specification XVCPI addressed some of these problems and was implemented or used by a small number of products including INTERACTIVE UNIX and Digital Research operating systems.