| Virtual Control Program Interface | |
|---|---|
| Abbreviation | VCPI |
| Status | Published |
| Year started | 1989; 37 years ago (1989) |
| Organization | Phar Lap Software,Quarterdeck Office Systems, A.I. Architects,Lotus Development Corp., Quadram, Qualitas,Rational Systems |
| Domain | Application programming interfaces |
In computing, theVirtual Control Program Interface (VCPI) is a specification published in 1989 byPhar Lap Software that allows aDOS program to run inprotected mode, granting access to many features of the processor not available inreal mode. It was supplanted byDOS Protected Mode Interface (DPMI) shortly after being introduced, due in large part to VCPI's inability to work inWindows 3.0's protected mode.
Developed since 1987 in cooperation withQuarterdeck Office Systems and with support byA.I. Architects,Lotus Development Corp.,Quadram,Qualitas andRational Systems, VCPI is provided by anexpanded memory manager in DOS (e.g.CEMM,QEMM, laterEMM386) 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 nativeprotected mode (called386 enhanced mode) and because VCPI runs programs inRing 0, which defeated the purpose ofx86 protection. It also did not work withOS/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 NTDOS 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 avirtual 8086 mode task. (This was typically accomplished through amemory manager operating as avirtual [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.
Between 1989 and February 1990[7] an alternative specification was proposed under the nameExtended VCPI[8][9][10] (XVCPI[8][9][11]) by a number of companies includingIntel'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 likeInteractive Unix andConcurrent DOS 386.[nb 1] Since February 1990[7] these efforts ultimately succumbed to the (parallel) development and publication of theDPMI 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, theMultiuser DOS Federation (MDOS), an initiative formed in July 1990,[12] issued a statement regarding their support of DPMI.[7]
INT67h,AH=DEh, but has a different set of function numbers. XVCPI install check:AX=DE40h;INT67h;AX=DE43h;INT67h;Many MS-DOS-based applications use the Virtual Control Program Interface (VCPI) specification […] These programs do not work with Microsoft Windows version 3.0 in 386 enhanced mode. They work in Windows in real mode and may work in standard mode.
These programs use the VCPI […] to access extended memory that conflicts with Windows in protected mode (standard and enhanced).
[…] an MS-DOS-based application that uses extended memory probably will fail to run in the standard-mode MS-DOS box.
It is possible to run some VCPI applications in standard mode.
Standard mode Windows 3.1 is VCPI-compliant; standard mode Windows 3.0 is not.
VCPI […] is not supported in Windows NT.
[…] The creators of the VCPI were well aware of its limitations and were already hard at work on a second generation specification calledExtended VCPI (XVCPI), whenMicrosoft barged onto the scene with the beta-test versions ofWindows 3.0 and itsDPMI. For a few months it appeared that the fledglingDOS extender market would fragment into two mutually exclusive directions […] Microsoft turned control of the DPMI specification over to an industry committee with open membership, and the backers of the XVCPI effort decided to join forces behind the DPMI. […] Microsoft agreed to delete the portions of the DPMI that crossed into DOS extender territory - specifically, direct support of the DOS andROM BIOS interrupts inprotected mode. Consequently, DPMI, Version 0.9, the first public version, released by the DPMI Committee in May 1990, defines only the low-level or building-block functions […] Naturally, the higher level or DOS extender interface of Windows 3.0 still exists, but it has receded into the twilight zone of undocumented functionality. Undocumented, but hardly unusable […]
The initial DPMI prototype was developed by Microsoft for Windows version 3.0, with input from Lotus Corporation and Rational Systems, as part of a general effort to enhance Windows' performance by allowing the Windows kernel to run in extended memory. In parallel, Intel was working with manufacturers of multitasking environments, EMS emulators, and DOS extenders to ensure that an extended VCPI specification could fully utilize the 80386's virtualization and protection features. In February 1990, the parties involved in the above activities agreed to form the DPMI Committee and formulate an industry-wide standard for protected-mode DOS applications. The Committee released the first public DPMI Specification, Version 0.9 in May 1990.
[…] By 1990, the VCPI standard had been adopted by virtually all DOS-based programs that were specific to 386 and 486 CPUs-except programs fromMicrosoft. The VCPI committee was working on an upgrade to VCPI that would have been called XVCPI (X for Extended) when Microsoft released beta copies ofWindows 3.0 […] Included in Windows 3 is the DPMI, orDOS Protected Mode Interface, a more general solution to running protected-mode, DOS-extended and real-mode applications simultaneously. At first, DPMI seemed like a competitor to XVCPI, and there were threats of lawsuits and chaos in the DOS-extender field. When Microsoft turned over control of DPMI to an industry committee with open membership, XVCPI supporters joined the committee, making DPMI a de facto industry standard. […] DPMI version 0.9 appeared in Windows 3.0 […]