CP/M-86とは、デジタルリサーチが開発した16ビットCPU(Intel 8086シリーズIntel 8088を含む。)用のオペレーティングシステム (OS)。
概要 8ビットCPUであるIntel 8080・8085およびその互換CPU用のOSであるCP/M-80の後継にあたり、機能的にはCP/M-80のバージョン2.2に相当する。
商業的にはPC DOSとしてIBM PCに標準採用されたマイクロソフトのMS-DOSとの市場争いに敗れ、普及はしなかった。
特徴 CP/M-86は16ビット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用ソフトウェアのソースコードをほとんど手直し無しで再アセンブルするだけでも動作するほどの互換性当然ながらマシン語命令の異なるCP/M-80用ソースコードそのままでは動作しないが、特別なハードウェア依存性の無いプログラムの場合は、メモリモデルの指定などIntel 8086・8088固有の処理を除けばほぼ機械的な命令の置き換え処理を行い、再アセンブルするだけで動作した。を備えていたマイクロソフトのMS-DOSただし、MS-DOSにおいてもファンクションコールの基本はInt 21hによる割り込み処理である。と比較すると、移植性で不利であった。
もっとも、この変更の恩恵により上位に当たるシングルユーザー・マルチタスク版としてコンカレントCP/M-86(CCP/M-86)コンカレント(並列性)は称してはいるが、実情は原始的なタスクスイッチャであった。後にConcurrent DOS(CDOS)と名称が変更されている。も早期に開発・提供され、さらにマルチユーザー・マルチタスク版としてMP/M-86も提供されており、これらは業務用途では一定の支持を受けていた。
機能面では初期のMS-DOSと大差なかった大きな相違の一つに、ファイルの属性およびサイズ管理の有無がある。CP/M-86であるが、IBMがPC DOS(≒MS-DOS)を標準扱いとしてCP/M-86はUCSD p-systemと共にオプション扱いとした結果、そのシェアには大きな開きが生じ、その後の衰退につながった。
日本語化 1982年4月、三菱電機のMULTI 16に搭載された「日本語CP/M-86」がリリースされた。これは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) が存在した。
注釈