Virtual Control Program Interface
Das Virtual Control Program Interface bzw. kurz VCPI ist ein Standard für DOS-Extender, der von Phar Lap Software und Quarterdeck Office Systems in einem joint development agreement[1] ab 1987 gemeinsam entwickelt wurde.[2][3] VCPI benötigt einen 80386-kompatiblen x86-Prozessor.[4] VCPI wurde von den meisten DOS-Extendern übernommen und im April 1989 als Industriestandard akzeptiert,[3] bevor es nach 1990 vom DOS Protected Mode Interface (DPMI) weitestgehend abgelöst wurde. Zur Wahrung der Kompatibilität mit bestehender DOS-Software unterstützen die meisten DOS-Extender weiterhin VCPI.
Die verbreitete DOS-Speicherverwaltung EMM386 stellt ab der in MS-DOS 5.0, Windows 3.1 und DR DOS 6.0 enthaltenen Version VCPI zur Verfügung.
Entwicklung
[Bearbeiten | Quelltext bearbeiten]Quarterdeck nutzte für dessen grafischen Aufsatz für DOS, DESQview/386, den Speichermanager QEMM-386. Um auch in DESQview von den erweiterten Fähigkeiten des 80386 Gebrauch machen zu können, musste der DOS-Extender von Phar Lap fit für den Betrieb unter Multitasking-Bedingungen gemacht werden.[1]
Ab 1989 wurde daraus das Virtual Control Program Interface (VCPI), das auch von anderen DOS-Extendern als Industriestandard implementiert wurde. Per VCPI sind Protected-Mode-Programme untereinander kompatibel und können mit Speichermanagern wie 386Max und QEMM auch unter reinem DOS verwendet werden.[3]
Technik
[Bearbeiten | Quelltext bearbeiten]Software-seitig besteht VCPI aus zwei Teilen:[5]
- einem Server, der immer ein Speichermanager für EMS 4.0 sein muss. Dieser regelt den gemeinsamen Zugriff auf den Expanded Memory (daher EMS), der auf einem 80386 im Extended Memory emuliert werden kann.
- mindestens einem Client, das ist jenes Programm, das per DOS-Extender im Protected Mode läuft und dabei die Funktionen des VCPI-Servers nutzt, damit mehrere Clients sich nicht gegenseitig stören.
Schwächen und Nachfolge
[Bearbeiten | Quelltext bearbeiten]Einer der Nachteile von VCPI ist, dass es nicht im 16-Bit-Protected-Mode des 80286 verwendet werden kann. Daher sind DOS-Extender wie DOS/16M nicht VCPI-kompatibel. Es ist auch nicht voll Multitasking-fähig und daher inkompatibel zum „386 Erweiterten Modus“ von Windows 3.x und Windows 9x.[6] Obwohl viele DOS-Programme, die einen DOS-Extender nutzen, Kompatibilität mit VCPI herstellten, wurde es ausgerechnet von Microsoft nicht unterstützt.[3]
Gerade als an einer Erweiterung von VCPI gearbeitet wurde, einer zweiten Generation „Extended VCPI“ (XVCPI), stellte Microsoft die erste Testversion von Windows 3.0 mit inkludiertem DPMI vor. Um eine Fragmentierung des DOS-Extender-Marktes zu verhindern gab Microsoft die Spezifikation von DPMI frei, woraufhin die Unterstützer von XVCPI zu DPMI überwechselten.[7]
Implementierungen
[Bearbeiten | Quelltext bearbeiten]Unter PC-kompatiblem DOS gibt es nur drei verbreitete EMS-Speichermanager, die als VCPI-Server fungieren:
- 386MAX ab Version 4
- EMM386, zumindest implementiert von:
- Microsoft in MS-DOS/PC DOS ab Version 5.0
- Microsoft in Windows 3.1 und neueren Windows-3.x-Versionen und Windows 9x
- Digital Research in DR DOS ab Version 6.0
- QEMM ab Version 5
Kompatible DOS-Extender fungieren als Clients, wenn ein Server verfügbar ist.
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Virtual Control Program Interface specification v1 (englisch), auf der EDM/2 Wiki
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ a b Ed Scannell: Desqview update offers simultaneous program use. In: Computerworld. Band 11, Nr. 45, 9. September 1987, ISSN 0010-4841, S. 140 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “…Desqview/386 reportedly will be able to run 32-bit programs on the 80386 because it works with a 386-version of Phar Lap, Inc.’s DOS-Extender. Desqview/386 running Ansa Software Co.’s Paradox 386 data base along with other popular DOS-compatible programs at Comdex/Fall ’87. Paradox 386 is the first to use DOS-Extender. … Through a joint development agreement with Phar Lap, Quarterdeck has built into Desqview/386 the support necessary to run multiple 386/DOS-Extender programs simultaneously with DOS programs…”
- ↑ Byteweek, Band 2. In: Byteweek. Band 2. Byte Publications, 1989 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “… VCPI (Virtual Control Program Interface) was jointly developed by Phar Lap and Quarterdeck in 1987 …”
- ↑ a b c d Ray Duncan: Power Programming – An Introduction to The DOS Protected Mode Interface. In: PC Magazine. Band 10, Nr. 3. Ziff Davis, 12. Februar 1991, S. 365 ff., S. 366 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “VCPI was developed in 1987 by Phar Lap Software and Quarterdeck Office Systems with a fairly narrow objective: to allow 80386 protected-mode DOS extender applications coexist with 80386-specific memory managers and expanded memory (EMS) emulators such as Qualitas’s 386-to-the-Max and Quarterdeck Office Systems’s QEMM-386. In spite of (or because of) its limited goals, the VCPI was quite successful. It became an accepted industry standard in April 1989, and by 1990 virtually every 80386-specific software product on the market supported or was capable of using the VCPI interface—except for Microsoft’s products.”
- ↑ Marcus Johnson: PC Programmer's Guide to Low-level Functions and Interrupts. Sams Publishing, 1994, ISBN 0-672-30475-9, S. 889 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “VCPI (Virtual Control Program Interface) is an extension of EMS that provides a minimal set of services so that a 80386+ protected-mode master supervisor program can retain control of the system …”
- ↑ Phar Lap Software, Inc., Quarterdeck Office Systems (Hrsg.): Virtual Control Program Interface, Version 1.0. 12. Juni 1989 (englisch, edm2.com [abgerufen am 25. Januar 2026]): “… the VCPI interface is defined as a superset of the EMS version 4.0 interface (an EMS 4.0 driver must be provided underneath the VCPI interface; a copy of the EMS 4.0 interface specification may be read here as Expanded Memory Specification v4.0). If an EMS emulator with the VCPI interface is installed, a multitasker and/or an arbitrary number of DOS-Extender programs which use the VCPI interface can be run. Control programs which utilize the VCPI interface provided by the EMS emulator will be referred to as "clients" for the remainder of this document. The control program providing the VCPI interface (and the EMS 4.0 interface) will be referred to as the "server" for the remainder of this document.”
- ↑ Ray Duncan: Power Programming – An Introduction to The DOS Protected Mode Interface. In: PC Magazine. Band 10, Nr. 3. Ziff Davis, 12. Februar 1991, S. 365 ff., S. 366 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “In the context of the problems it was design to solve, the VCPI works extremely well, but it is an inadequate platform for the multitasking of DOS extender applications. … Another, somewhat less important drawback of the VCPI is that it is fundamentally based on the concept of 80386 hardware paging and therefore can't be implemented on 80286 machines.”
- ↑ Ray Duncan: Power Programming – An Introduction to The DOS Protected Mode Interface. In: PC Magazine. Band 10, Nr. 3. Ziff Davis, 12. Februar 1991, S. 365 ff., S. 366 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “The creators of 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 … Luckily cooler heads prevailed. 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.”