Virtual Control Program Interface

Virtual Control Program Interface (VCPI) はIA-32の仮想86モードを使用してソフトウェア的に実現したEMSマネージャとプロテクトモードアプリケーション(主としてDOSエクステンダ)を共存させるための規格である。

概要

DOSでは、アクセス可能なアドレス空間(コンベンショナルメモリ)は、最大でも640KB(IBM PC互換機およびPC-9800シリーズ等)から768KB(PC-H98シリーズ等)であった。やがてメモリ容量が不足してくると、ハードウェアによるバンク切り換え機能を持つ専用メモリカードを利用してEMS等のメモリ拡張方法が利用され始めた。一方、80286上位互換のCPUではプロテクトメモリが利用できるために、メモリ不足を補う方法としてソフトウェアエミュレーション技術を使用したEMS(ソフトウェアEMS)やDOSエクステンダが登場した。

ところが、IA-32の仮想86モードを使用したソフトウェアEMSの環境下では、次のような問題が発生したためにDOSエクステンダを動作することが出来なかった。

そこでこれらの問題を解決して、仮想86モードを使用したEMSマネージャとDOSエクステンダを共存させるための規格が、EMSマネージャのメーカーであるQuarterdeck Office SystemsとDOSエクステンダのメーカーであるPhar Lap Software, Inc.の間で策定された。

これがVirtual Control Program Interface (VCPI) である。

VCPIはLIM-EMS 4.0規格の int 67h ファンクションコールを拡張する形でEMSマネージャにVCPIサーバが実装され、VCPIサーバのファンクションコールをDOSエクステンダが呼び出すことにより、DOSエクステンダはプロテクトメモリの獲得、割り込みコントローラの設定、仮想86モードとプロテクトモード間のモード遷移を行う。

VCPIは極めて簡素であるために EMSマネージャ、DOSエクステンダの両者共に最小限の修正で実現が可能だった。しかしながら、VCPIはプロテクトモードアプリケーションを特権レベル0で動作をさせてしまうために、マルチタスクOSの仮想DOSマシンでサポートする規格としてはセキュリティ等の問題があるために不適だった。

関連項目

参考文献

外部リンク