Virtual Control Program Interface

Last updated

Virtual Control Program Interface
AbbreviationVCPI
StatusPublished
Year started1989;34 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, 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.

Contents

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 INT67h,AH=DEh, but has a different set of function numbers. XVCPI install check:
    Input
    AX=DE40h;INT67h;
    Return
    AH=00h (installed); BH=main-version, BL=sub-version.
    Another known function is defined as:
    Input
    AX=DE43h;INT67h;
    Return
    DX=number of free 4 KB pages.

Related Research Articles

Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20-bit segmented memory address space and unlimited direct software access to all addressable memory, I/O addresses and peripheral hardware. Real mode provides no support for memory protection, multitasking, or code privilege levels.

In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as segmentation, virtual memory, paging and safe multi-tasking designed to increase an operating system's control over application software.

<span class="mw-page-title-main">DJGPP</span> Implementation of the GNU toolchain for DOS

DJ's GNU Programming Platform (DJGPP) is a software development suite for Intel 80386-level and above, IBM PC compatibles which supports DOS operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the GNU Compiler Collection (GCC), and mostly GNU utilities such as Bash, find, tar, ls, GAWK, sed, and ld to DOS Protected Mode Interface (DPMI). Supported languages include C, C++, Objective-C/C++, Ada, Fortran, and Pascal.

<span class="mw-page-title-main">DESQview</span> Text mode multitasking operating environment

DESQview (DV) is a text mode multitasking operating environment developed by Quarterdeck Office Systems which enjoyed modest popularity in the late 1980s and early 1990s. Running on top of DOS, it allows users to run multiple programs concurrently in multiple windows.

<span class="mw-page-title-main">DOS memory management</span> Techniques employed to give applications access to more than 640 kibibytes

In IBM PC compatible computing, DOS memory management refers to software and techniques employed to give applications access to more than 640 kibibytes (KiB) of "conventional memory". The 640 KiB limit was specific to the IBM PC and close compatibles; other machines running MS-DOS had different limits, for example the Apricot PC could have up to 768 KiB and the Sirius Victor 9000, 896 KiB. Memory management on the IBM family was made complex by the need to maintain backward compatibility to the original PC design and real-mode DOS, while allowing computer users to take advantage of large amounts of low-cost memory and new generations of processors. Since DOS has given way to Microsoft Windows and other 32-bit operating systems not restricted by the original arbitrary 640 KiB limit of the IBM PC, managing the memory of a personal computer no longer requires the user to manually manipulate internal settings and parameters of the system.

In computing, the DOS Protected Mode Interface (DPMI) is a specification introduced in 1989 which allows a DOS program to run in protected mode, giving access to many features of the new PC processors of the time not available in real mode. It was initially developed by Microsoft for Windows 3.0, although Microsoft later turned control of the specification over to an industry committee with open membership. Almost all modern DOS extenders are based on DPMI and allow DOS programs to address all memory available in the PC and to run in protected mode.

<span class="mw-page-title-main">Extended memory</span>

In DOS memory management, extended memory refers to memory above the first megabyte (220 bytes) of address space in an IBM PC or compatible with an 80286 or later processor. The term is mainly used under the DOS and Windows operating systems. DOS programs, running in real mode or virtual x86 mode, cannot directly access this memory, but are able to do so through an application programming interface called the Extended Memory Specification (XMS). This API is implemented by a driver (such as HIMEM.SYS) or the operating system, which takes care of memory management and copying memory between conventional and extended memory, by temporarily switching the processor into protected mode. In this context, the term "extended memory" may refer to either the whole of the extended memory or only the portion available through this API.

<span class="mw-page-title-main">Expanded memory</span> System of bank switching in DOS memory management

In DOS memory management, expanded memory is a system of bank switching that provided additional memory to DOS programs beyond the limit of conventional memory (640 KiB).

<span class="mw-page-title-main">Conventional memory</span> First 640K of RAM under DOS

In DOS memory management, conventional memory, also called base memory, is the first 640 kilobytes of the memory on IBM PC or compatible systems. It is the read-write memory directly addressable by the processor for use by the operating system and application programs. As memory prices rapidly declined, this design decision became a limitation in the use of large memory capacities until the introduction of operating systems and processors that made it irrelevant.

<span class="mw-page-title-main">IBM TopView</span> Former front-end to DOS

TopView is the first object-oriented, multitasking, and windowing, personal computer operating environment for PC DOS developed by IBM, announced in August 1984 and shipped in March 1985. TopView provided a text-mode operating environment that allowed users to run more than one application at the same time on a PC. IBM demonstrated an early version of the product to key customers before making it generally available, around the time they shipped their new PC AT computer.

Quarterdeck Expanded Memory Manager (QEMM) is a memory manager produced by Quarterdeck Office Systems in the late 1980s through the late 1990s. It was the most popular third-party memory manager for the MS-DOS and other DOS operating systems.

Virtual DOS machines (VDM) refer to a technology that allows running 16-bit/32-bit DOS and 16-bit Windows programs when there is already another operating system running and controlling the hardware.

CEMM, for Compaq Expanded Memory Manager was the first so-called PC "memory manager" for Intel 80386 CPUs, able to provide expanded memory (EMS) emulation by using the virtual memory features and the virtual 8086 mode of the CPU.

A DOS extender is a computer software program running under DOS that enables software to run in a protected mode environment even though the host operating system is only capable of operating in real mode.

<span class="mw-page-title-main">Phar Lap Software</span> Software company

Phar Lap Software, Inc., was a software company specializing in software development tools for DOS operating systems. The company was named after the champion New Zealand racehorse Phar Lap. They were most noted for their software allowing developers to access memory beyond the 640 KiB limit of DOS and were an author of the VCPI standard.

EMM386 is the expanded memory manager of Microsoft's MS-DOS, IBM's PC DOS, Digital Research's DR-DOS, and Datalight's ROM-DOS which is used to create expanded memory using extended memory on Intel 80386 CPUs. There also is an EMM386.EXE available in FreeDOS.

<span class="mw-page-title-main">Windows 2.1x</span> Major release of Microsoft Windows

Windows 2.1 is a major release of Microsoft Windows. It was released to manufacturing on May 27, 1988, as a successor to Windows 2.0.

<span class="mw-page-title-main">Windows 2.0x</span> Second major release of Microsoft Windows

Windows 2.0 is a major release of Microsoft Windows, a family of graphical operating systems for personal computers developed by Microsoft. It was released to manufacturing on December 9, 1987, as a successor to Windows 1.0.

<span class="mw-page-title-main">Windows 3.0</span> Third major release of Microsoft Windows

Windows 3.0 is the third major release of Microsoft Windows, launched in 1990. It features a new graphical user interface (GUI) where applications are represented as clickable icons, as opposed to the list of file names seen in its predecessors. Later updates would expand the software's capabilities, one of which added multimedia support for sound recording and playback, as well as support for CD-ROMs.

VM/386 is a multitasking operating system or 'control program' that took early advantage of the capabilities of Intel's 386 processor. By utilizing Virtual 8086 mode, users were able to run their existing text-based and graphical DOS software in safely separate environments. The system offered a high degree of control, with the ability to set memory limits, CPU usage and scheduling parameters, device assignments, and interrupt priorities through a virtual machine manager menu. Unique CONFIG.SYS and AUTOEXEC.BAT files could be configured for each application, and even different DOS versions. In 1991 the vendor announced intentions to support DPMI 1.0 in VM/386.

References

  1. "KB81493: Using VCPI Programs with Windows". Microsoft Corporation. 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.[ dead link ]
  2. "KB64478: Mathematica 387 and Mathlab 386 with Windows 3.0". Microsoft Corporation. Archived from the original on 2012-10-26. These programs use the VCPI […] to access extended memory that conflicts with Windows in protected mode (standard and enhanced).
  3. "KB82298: Windows 3.1 Standard Mode and the VCPI". Microsoft Corporation. Archived from the original on 2013-03-09. […] an MS-DOS-based application that uses extended memory probably will fail to run in the standard-mode MS-DOS box.
  4. "KB86018: Windows 3.1 Has Limited Support for VCPI". Microsoft Corporation. Archived from the original on 2012-10-26. It is possible to run some VCPI applications in standard mode.
  5. "KB81476: MS-DOS Customers Who Want Windows 3.1 EMM386.EXE". Microsoft Corporation. Archived from the original on 2012-10-26. Standard mode Windows 3.1 is VCPI-compliant; standard mode Windows 3.0 is not.
  6. "KB101780: VCPI Not Supported in Windows NT". Microsoft Corporation. Archived from the original on 2012-10-26. VCPI […] is not supported in Windows NT.
  7. 1 2 3 4 5 6 Wurthmann, Gerold; Wopperer, Bernhard; Wiesböck, Johann (1991). "Die DPMI-Spezifikation – Eine Einführung" [An introduction to the DPMI specification]. Vorträge und Begleittexte zum 2. Entwicklerforum der Design & Elektronik zum Thema: PC-Architektur, 17. September 1991, München[Presentations and supplemental material for the second developer forum on PC architecture on 17 September 1991, Munich] (book) (in German) (1 ed.). Munich, Germany: Markt & Technik Verlag Aktiengesellschaft. p. 223. (NB. The forum was organized by the German magazine Design & Elektronik and Intel.)
  8. 1 2 Duncan, Ray (1991-02-12). "Power Programming - An Introduction to the DOS Protected Mode Interface". PC Magazine . 10 (3): 367–371, 369. Retrieved 2016-05-21. […] The creators of the VCPI were well aware of its limitations and were already hard at work on a second generation specification called Extended VCPI (XVCPI), when Microsoft barged onto the scene with the beta-test versions of Windows 3.0 and its 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 […]
  9. 1 2 3 Duncan, Ray; Petzold, Charles; Schulman, Andrew; Baker, M. Steven; Nelson, Ross P.; Davis, Stephen R.; Moote, Robert (1992). Extending DOS: A Programmer's Guide to Protected-Mode DOS. 2 (2 ed.). Addison-Wesley Publishing Company, Inc. ISBN   0-201-56798-9.
  10. 1 2 3 The DPMI Committee (1991-03-12). DOS Protected Mode Interface (DPMI) Specification - Version 1.0 - Application Program Interface (API) for Protected Mode DOS Applications (PDF). 1.0. Intel. pp. 4–5. Intel order code 240977-001. Archived from the original (PDF) on 2013-05-31. Retrieved 2013-05-24. 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.
  11. Brothers, Hardin (November 1992). "Breaking the 1M/640K Barrier - Accessing and using extended memory from DOS applications" (PDF). ComputerCraft. 2 (11): 16–21, 20. 0-74820-08559-11. Retrieved 2016-05-21. […] 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 […]
  12. "NetWorld 90 - NetWorld: Multi-Vendor Answers". Communications News. Nelson Publishing / Gale, Cengage Learning. 1990-11-01. Archived from the original on 2018-08-20. Retrieved 2014-09-10.

Further reading