CP/M-86
CP/M-86とは、デジタルリサーチ社が開発した16bitCPU(Intel 8086シリーズ[2])用のオペレーティングシステム。
IBM PC版CP/M-86のスクリーンショット | |
開発者 | デジタルリサーチ、ゲイリー・キルドール |
---|---|
OSの系統 | CP/M |
開発状況 | 終了 |
ソースモデル | クローズドソース、後にオープンソース[1] |
初版 | 1981/1982年 |
プラットフォーム | Intel 8086 |
カーネル種別 | モノリシックカーネル |
既定のUI | キャラクタユーザインターフェース |
ライセンス | プロプライエタリ、後にBSDスタイル |
先行品 | (CP/M-80 2.2) |
後続品 | コンカレントCP/M-86 3.0 |
概要
編集8bit CPUであるIntel 8080・8085およびその互換CPU用のOSであるCP/M-80の後継にあたり、機能的にはCP/M-80のバージョン2.2に相当する。
商業的にはPC DOSとしてIBM PCに標準採用されたマイクロソフトのMS-DOSとの市場争いに敗れ、普及はしなかった。
特徴
編集CP/M-86は16bit CPU用OSとしてIntel 8086に実装された各種機能を有効活用すべく、豊富な機能を盛り込まれていた。
また、CP/M-80で多用されていたアプリケーションプログラムによるファンクションコールの呼び出し方法が変更され、call 5、つまり単純なサブルーチン呼び出し命令による0005h番地の呼び出しを止め、セグメントの導入や将来のマルチタスク化を念頭に置いてInt 224 (Int E0h)によるソフトウェア割り込み処理として実装してあるなど、将来的な発展を考慮して様々な変更が施されていた。
しかし、このように意図的に下位互換性を無視した変更は既存のCP/M-80用アプリケーションソフトの移植に当たってソースコードレベルでの膨大な量の書き換えを必要とする点で難があり、素直にCP/M-80のファンクションコール呼び出し方法を継承してcall 5での呼び出しにも対応し、CP/M-80用ソフトウェアのソースコードをほとんど手直し無しで再アセンブルするだけでも動作するほどの互換性[3]を備えていたマイクロソフトのMS-DOS[4]と比較すると、移植性で不利であった。
もっとも、この変更の恩恵により上位に当たるシングルユーザー・マルチタスク版としてコンカレントCP/M-86(CCP/M-86)[5]も早期に開発・提供され、さらにマルチユーザー・マルチタスク版としてMP/M-86も提供されており、これらは業務用途では一定の支持を受けていた。
機能面では初期のMS-DOSと大差なかった[6]CP/M-86であるが、IBMがPC DOS(≒MS-DOS)を標準扱いとしてCP/M-86はUCSD p-systemと共にオプション扱いとした結果、そのシェアには大きな開きが生じ、その後の衰退につながった。
日本語化
編集1982年4月、三菱電機のMULTI 16に搭載された「日本語CP/M-86」[7]がリリースされた。これはShift_JISを採用した初めてのオペレーティングシステムとなった。MS-DOSにおけるShift_JIS(厳密にはMS漢字コード)のサポートは1983年5月にリリースされたMS-DOS 2.01からとなる。
日本においてはMULTI 16シリーズの他、富士通FM-11シリーズ・FM-16βシリーズなどの初期のx86系CPU搭載マシンでも標準OSとして採用されたほか日本電気のPC-9800シリーズでもサポートされており、それぞれ日本語化されている。
CP/M-80との互換性
編集Intel 8080・8085のアセンブラのソースコードをIntel 8086用の同等のソースコードに変換するプログラム(XLT86)が存在した。
注釈
編集- ^ CP/M collection is back online with an Open Source licence The Register, 2001-11-26
- ^ Intel 8088を含む。
- ^ 当然ながらマシン語命令の異なるCP/M-80用ソースコードそのままでは動作しないが、特別なハードウェア依存性の無いプログラムの場合は、メモリモデルの指定などIntel 8086・8088固有の処理を除けばほぼ機械的な命令の置き換え処理を行い、再アセンブルするだけで動作した。
- ^ ただし、MS-DOSにおいてもファンクションコールの基本はInt 21hによる割り込み処理である。
- ^ コンカレント(並列性)は称してはいるが、実情は原始的なタスクスイッチャであった。後にConcurrent DOS(CDOS)と名称が変更されている。
- ^ 大きな相違の一つに、ファイルの属性およびサイズ管理の有無がある。
- ^ 北原, 拓也 (1983). CP/M-86入門 その機能・仕組み・使い方. p. 149