<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=Virtual_Control_Program_Interface</id>
	<title>Virtual Control Program Interface - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=Virtual_Control_Program_Interface"/>
	<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=Virtual_Control_Program_Interface&amp;action=history"/>
	<updated>2026-04-23T04:32:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>http://70.231.62.181/index.php?title=Virtual_Control_Program_Interface&amp;diff=8933030&amp;oldid=prev</id>
		<title>imported&gt;WikiJuanBeltran: /* growthexperiments-addlink-summary-summary:3|0|0 */</title>
		<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=Virtual_Control_Program_Interface&amp;diff=8933030&amp;oldid=prev"/>
		<updated>2025-07-07T23:43:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:3|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Use dmy dates|date=April 2019|cs1-dates=y}}&lt;br /&gt;
{{Use list-defined references|date=December 2021}}&lt;br /&gt;
{{Infobox standardref&lt;br /&gt;
| title             = Virtual Control Program Interface&lt;br /&gt;
| status            = Published&lt;br /&gt;
| year_started      = {{Start date and age|1989|df=yes}}&lt;br /&gt;
| version           = &lt;br /&gt;
| versionDate       = &lt;br /&gt;
| organization      = [[Phar Lap (company)|Phar Lap Software]], [[Quarterdeck Office Systems]], A.I. Architects, [[Lotus Development Corp.]], Quadram, Qualitas, [[Rational Systems]]&lt;br /&gt;
| related_standards = &lt;br /&gt;
| abbreviation      = VCPI&lt;br /&gt;
| domain            = [[Application programming interface]]s&lt;br /&gt;
| website           = &lt;br /&gt;
}}&lt;br /&gt;
In computing, the &amp;#039;&amp;#039;&amp;#039;Virtual Control Program Interface&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;VCPI&amp;#039;&amp;#039;&amp;#039;) is a specification published in 1989 by [[Phar Lap (company)|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&amp;#039;s inability to work in [[Windows 3.0]]&amp;#039;s protected mode.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
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&amp;#039;s native [[protected mode]] (called &amp;#039;&amp;#039;386 enhanced mode&amp;#039;&amp;#039;) and because VCPI runs programs in [[Ring (computer security)|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,&amp;lt;ref name=&amp;quot;Microsoft_KB81493&amp;quot;/&amp;gt; some programs could run in Windows 3.x standard mode.&amp;lt;ref name=&amp;quot;Microsoft_KB64478&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;Microsoft_KB82298&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;Microsoft_KB86018&amp;quot;/&amp;gt; Standard mode (286 mode) [[Windows 3.1]] (but not 3.0) itself was VCPI compliant (it was a VCPI client).&amp;lt;ref name=&amp;quot;Microsoft_KB81476&amp;quot;/&amp;gt; Earlier Windows/386 2.1 was not compatible with DOS extenders at all. [[Windows NT]] [[NTVDM|DOS box]] did not support VCPI either.&amp;lt;ref name=&amp;quot;Microsoft_KB101780&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 [[DOS memory management|memory manager]] operating as a &amp;#039;&amp;#039;virtual [mode] control program&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
== Extended VCPI{{anchor|XVCPI}} ==&lt;br /&gt;
Between 1989 and February 1990&amp;lt;ref name=&amp;quot;DesignElektronik_1991_PC-Architektur&amp;quot;/&amp;gt; an alternative specification was proposed under the name &amp;#039;&amp;#039;&amp;#039;Extended VCPI&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;Duncan_1991&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;Duncan_1992_Extended_DOS&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;DPMI_1991_1.0&amp;quot;/&amp;gt; (&amp;#039;&amp;#039;&amp;#039;XVCPI&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;Duncan_1991&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;Duncan_1992_Extended_DOS&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;Hardin_1992&amp;quot;/&amp;gt;) by a number of companies including [[Intel Software Focus Group|Intel&amp;#039;s Software Focus Group]],&amp;lt;ref name=&amp;quot;DesignElektronik_1991_PC-Architektur&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;Duncan_1992_Extended_DOS&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;DPMI_1991_1.0&amp;quot;/&amp;gt; [[Lotus Development Corporation|Lotus]],&amp;lt;ref name=&amp;quot;DesignElektronik_1991_PC-Architektur&amp;quot;/&amp;gt; [[Digital Research]],&amp;lt;ref name=&amp;quot;DesignElektronik_1991_PC-Architektur&amp;quot;/&amp;gt; [[Interactive Systems]], [[Viewport]] International and others&amp;lt;!-- DesignTechnik_1991_PC-Architektur does not mention names except for Intel and Lotus, but says, vendors of DOS multitasking environments, EMS emulators and DOS extenders took part as well. Another WP editor mentioned Viewport and Grey Matter, but while they may have been an early adopter, they do not seem to have been directly involved https://en.wikipedia.org/w/index.php?title=User_talk%3AMarkMLl&amp;amp;diff=557021250&amp;amp;oldid=557014566 --&amp;gt; to address some of the shortcomings of VCPI and better exploit the memory management and multitasking capabilities of the 386 processor.&amp;lt;ref name=&amp;quot;DPMI_1991_1.0&amp;quot;/&amp;gt; It was used&amp;lt;!-- or supposed to be used? --&amp;gt; by a small number of products including operating systems like [[Interactive Unix]] and [[Concurrent DOS 386]].&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;NB_XVCPI_API&amp;quot;/&amp;gt; Since February 1990&amp;lt;ref name=&amp;quot;DesignElektronik_1991_PC-Architektur&amp;quot;/&amp;gt; these efforts ultimately succumbed to the (parallel) development and publication of the [[DOS Protected Mode Interface|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.&lt;br /&gt;
In February 1991, the [[Multiuser DOS Federation]] (MDOS), an initiative formed in July 1990,&amp;lt;ref name=&amp;quot;Networld_1990&amp;quot;/&amp;gt; issued a statement regarding their support of DPMI.&amp;lt;ref name=&amp;quot;DesignElektronik_1991_PC-Architektur&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[DOS Protected Mode Interface]] (DPMI)&lt;br /&gt;
* [[DOS Protected Mode Services]] (DPMS)&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist|group=&amp;quot;nb&amp;quot;|refs=&lt;br /&gt;
&amp;lt;ref group=&amp;quot;nb&amp;quot; name=&amp;quot;NB_XVCPI_API&amp;quot;&amp;gt;NB. Like VCPI, the XVCPI API sits on top of {{code|lang=nasm|1=INT 67h, AH=DEh}}, but has a different set of function numbers. XVCPI install check: &lt;br /&gt;
; Input: {{code|lang=nasm|1=AX=DE40h;&lt;br /&gt;
INT 67h;}}&lt;br /&gt;
; Return: {{mono|AH}}=00h (installed); {{mono|BH}}=main-version, {{mono|BL}}=sub-version. &lt;br /&gt;
Another known function is defined as: &lt;br /&gt;
; Input: {{code|lang=nasm|1=AX=DE43h;&lt;br /&gt;
INT 67h;}}&lt;br /&gt;
; Return: {{mono|DX}}=number of free 4 KB pages.&amp;lt;!-- http://en.wikipedia.org/w/index.php?title=User_talk%3AMarkMLl&amp;amp;diff=557021250&amp;amp;oldid=557014566 --&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|refs=&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Microsoft_KB81493&amp;quot;&amp;gt;{{cite web |title=KB81493: Using VCPI Programs with Windows |url=http://support.microsoft.com/kb/81493/en-usIN |archive-url=https://archive.today/20130128195308/http://support.microsoft.com/kb/81493/en-usIN |archive-date=28 January 2013 |publisher=[[Microsoft Corporation]] |url-status=dead|quote=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.}}&amp;lt;/ref&amp;gt;&amp;lt;!-- TODO: Find archived version! --&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Microsoft_KB64478&amp;quot;&amp;gt;{{cite web |title=KB64478: Mathematica 387 and Mathlab 386 with Windows 3.0 |url=http://support.microsoft.com/kb/64478 |publisher=[[Microsoft Corporation]] |url-status=dead |archive-url=https://web.archive.org/web/20121026110153/http://support.microsoft.com/kb/64478 |archive-date=2012-10-26 |quote=These programs use the VCPI […] to access extended memory that conflicts with Windows in protected mode (standard and enhanced).}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Microsoft_KB82298&amp;quot;&amp;gt;{{cite web |title=KB82298: Windows 3.1 Standard Mode and the VCPI |url=http://support.microsoft.com/kb/82298 |publisher=[[Microsoft Corporation]] |url-status=dead |archive-url=https://web.archive.org/web/20130309020041/http://support.microsoft.com/kb/82298 |archive-date=2013-03-09 |quote=[…] an MS-DOS-based application that uses extended memory probably will fail to run in the standard-mode MS-DOS box.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Microsoft_KB86018&amp;quot;&amp;gt;{{cite web |title=KB86018: Windows 3.1 Has Limited Support for VCPI |url=http://support.microsoft.com/kb/86018 |publisher=[[Microsoft Corporation]] |url-status=dead |archive-url=https://web.archive.org/web/20121026110225/http://support.microsoft.com/kb/86018 |archive-date=2012-10-26 |quote=It is possible to run some VCPI applications in standard mode.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Microsoft_KB81476&amp;quot;&amp;gt;{{cite web |title=KB81476: MS-DOS Customers Who Want Windows 3.1 EMM386.EXE |url=http://support.microsoft.com/kb/81476 |publisher=[[Microsoft Corporation]] |url-status=dead |archive-url=https://web.archive.org/web/20121026110258/http://support.microsoft.com/kb/81476 |archive-date=2012-10-26 |quote=Standard mode Windows 3.1 is VCPI-compliant; standard mode Windows 3.0 is not.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Microsoft_KB101780&amp;quot;&amp;gt;{{cite web |title=KB101780: VCPI Not Supported in Windows NT |url=http://support.microsoft.com/KB/101780 |publisher=[[Microsoft Corporation]] |url-status=dead |archive-url=https://web.archive.org/web/20121026110313/http://support.microsoft.com/KB/101780 |archive-date=2012-10-26 |quote=VCPI […] is not supported in Windows NT.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;DPMI_1991_1.0&amp;quot;&amp;gt;{{cite book |title=DOS Protected Mode Interface (DPMI) Specification - Version 1.0 - Application Program Interface (API) for Protected Mode DOS Applications |publisher=[[Intel]] |id=Intel order code 240977-001 |version=1.0 |date=1991-03-12 |pages=4–5 |access-date=2013-05-24 |author=The DPMI Committee |url=http://homer.rice.edu/~sandmann/cwsdpmi/dpmispec1.pdf |url-status=dead |archive-url=https://web.archive.org/web/20130531075902/http://homer.rice.edu/~sandmann/cwsdpmi/dpmispec1.pdf |archive-date=2013-05-31 |quote=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&amp;#039; 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&amp;#039;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.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Duncan_1992_Extended_DOS&amp;quot;&amp;gt;{{cite book |author-first1=Ray |author-last1=Duncan |author-first2=Charles |author-last2=Petzold |author-link2=Charles Petzold |author-first3=Andrew |author-last3=Schulman |author-first4=M. Steven |author-last4=Baker |author-first5=Ross P. |author-last5=Nelson |author-first6=Stephen R. |author-last6=Davis |author-first7=Robert |author-last7=Moote |author-link7=Robert Moote |year=1992 |title=Extending DOS: A Programmer&amp;#039;s Guide to Protected-Mode DOS |edition=2 |series=2 |publisher=[[Addison-Wesley Publishing Company, Inc.]] |isbn=0-201-56798-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;DesignElektronik_1991_PC-Architektur&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
|title=Vorträge und Begleittexte zum 2. Entwicklerforum der Design &amp;amp; Elektronik zum Thema: PC-Architektur, 17. September 1991, München |trans-title=Presentations and supplemental material for the second developer forum on PC architecture on 17 September 1991, Munich |chapter=Die DPMI-Spezifikation – Eine Einführung |trans-chapter=An introduction to the DPMI specification&amp;lt;!-- Actually, these three authors of the corresponding chapter are also the editors of this book, which contains contributions from many other authors as well. --&amp;gt;|author-first1=Gerold |author-last1=Wurthmann |author-first2=Bernhard |author-last2=Wopperer |author-first3=Johann |author-last3=Wiesböck |publisher=[[Markt &amp;amp; Technik Verlag Aktiengesellschaft]] |publication-place=Munich, Germany |date=1991 |edition=1 |type=book |isbn=&amp;lt;!-- no ISBN --&amp;gt; |issn=&amp;lt;!-- no issn --&amp;gt; |language=de |page=223}} (NB. The forum was organized by the German magazine Design &amp;amp; Elektronik and [[Intel]].)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Duncan_1991&amp;quot;&amp;gt;{{cite journal |title=Power Programming - An Introduction to the DOS Protected Mode Interface |author-first=Ray |author-last=Duncan |journal=[[PC Magazine]] |date=1991-02-12 |volume=10 |number=3 |pages=367–371; 369 |url=https://books.google.com/books?id=YxFTezF9-sMC&amp;amp;pg=PT376 |access-date=2016-05-21 |quote=[…] The creators of the VCPI were well aware of its limitations and were already hard at work on a second generation specification called &amp;#039;&amp;#039;Extended VCPI&amp;#039;&amp;#039; (XVCPI), when [[Microsoft]] barged onto the scene with the beta-test versions of [[Windows 3.0]] and its [[DOS Protected Mode Interface|DPMI]]. For a few months it appeared that the fledgling [[DOS 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 and [[ROM BIOS]] interrupts in [[protected 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 […]}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Networld_1990&amp;quot;&amp;gt;{{cite news |title=NetWorld 90 - NetWorld: Multi-Vendor Answers |date=1990-11-01 |newspaper=Communications News |publisher=Nelson Publishing / Gale, Cengage Learning |url=http://www.thefreelibrary.com/NetWorld%3a+multi-vendor+answers-a09603947 |access-date=2014-09-10 |url-status=live |archive-url=https://web.archive.org/web/20180820095715/https://www.thefreelibrary.com/NetWorld%253a+multi-vendor+answers-a09603947 |archive-date=2018-08-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Hardin_1992&amp;quot;&amp;gt;{{cite journal |title=Breaking the 1M/640K Barrier - Accessing and using extended memory from DOS applications |author-first=Hardin |author-last=Brothers |journal=ComputerCraft |volume=2 |number=11 |id=0-74820-08559-11 |date=November 1992 |pages=16–21; 20 |url=http://www.americanradiohistory.com/Archive-Modern-Electronics/Computer-Craft-1992-11.pdf |access-date=2016-05-21 |quote=[…] By 1990, the VCPI standard had been adopted by virtually all DOS-based programs that were specific to 386 and 486 CPUs-except programs from [[Microsoft]]. The VCPI committee was working on an upgrade to VCPI that would have been called XVCPI (X for Extended) when Microsoft released beta copies of [[Windows 3.0]] […] Included in Windows 3 is the DPMI, or [[DOS 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 […]}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
* {{cite book |title=Virtual Control Program Interface: Version 1.0 |publisher=[[Phar Lap Software]], [[Quarterdeck Office Systems]] |date=1989-06-12 |version=1.0 |url=https://www.hornet.org/code/hardware/pmode/vcpi.doc|access-date=2016-05-21 }}&amp;lt;!-- TODO: Add archived version! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:DOS technology]]&lt;br /&gt;
[[Category:DOS memory management]]&lt;br /&gt;
[[Category:DOS extenders]]&lt;/div&gt;</summary>
		<author><name>imported&gt;WikiJuanBeltran</name></author>
	</entry>
</feed>