In computing, the Virtual Control Program Interface (VCPI) is a specification published in 1989 by Phar Lap Software that allows a DOS program to run in protected mode, granting access to many features of the processor not available in real mode. It was supplanted by DOS Protected Mode Interface (DPMI) shortly after being introduced, due in large part to VCPI's inability to work in Windows 3.0's protected mode.

Quick Facts Abbreviation, Status ...
Virtual Control Program Interface
AbbreviationVCPI
StatusPublished
Year started1989; 35 years ago (1989)
OrganizationPhar Lap Software, Quarterdeck Office Systems, A.I. Architects, Lotus Development Corp., Quadram, Qualitas, Rational Systems
DomainApplication programming interfaces
Close

Overview

Developed since 1987 in cooperation with Quarterdeck Office Systems and with support by A.I. Architects, Lotus Development Corp., Quadram, Qualitas and Rational Systems, VCPI is provided by an expanded memory manager in DOS (e.g. CEMM, QEMM, later EMM386) and does allow 80386 protected-mode DOS extenders to coexist with 80386 EMS expanded memory emulators. 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. VCPI was only supported in Windows 3.0 real mode,[1] some programs could run in Windows 3.x standard mode.[2][3][4] Standard mode (286 mode) Windows 3.1 (but not 3.0) itself was VCPI compliant (it was a VCPI client).[5] Earlier Windows/386 2.1 was not compatible with DOS extenders at all. Windows NT DOS box did not support VCPI either.[6]

VCPI also had a comparatively 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.

Extended VCPI

Between 1989 and February 1990[7] an alternative specification was proposed under the name Extended VCPI[8][9][10] (XVCPI[8][9][11]) by a number of companies including Intel's Software Focus Group,[7][9][10] Lotus,[7] Digital Research,[7] Interactive Systems, Viewport International and others to address some of the shortcomings of VCPI and better exploit the memory management and multitasking capabilities of the 386 processor.[10] It was used by a small number of products including operating systems like Interactive Unix and Concurrent DOS 386.[nb 1] Since February 1990[7] these efforts ultimately succumbed to the (parallel) development and publication of the DPMI specification in May 1990, which addressed similar problems, but was compatible with the implementation of Microsoft Windows 3.0 to be released the same year. In February 1991, the Multiuser DOS Federation (MDOS), an initiative formed in July 1990,[12] issued a statement regarding their support of DPMI.[7]

See also

Notes

  1. NB. Like VCPI, the XVCPI API sits on top of INT 67h, AH=DEh, but has a different set of function numbers. XVCPI install check:
    Input
    AX=DE40h; INT 67h;
    Return
    AH=00h (installed); BH=main-version, BL=sub-version.
    Another known function is defined as:
    Input
    AX=DE43h; INT 67h;
    Return
    DX=number of free 4 KB pages.

References

Further reading

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.