CP/M

CP/M（Control Program for Microcomputers、シーピーエム）は1970年代にデジタルリサーチ (Digital Research Inc.) の創業者ゲイリー・キルドールによって開発、1976年に発売された、パソコン用のシングルユーザー・シングルタスクのオペレーティングシステム (OS) である。
最初は8ビットのCPUであるインテルの8080プロセッサ用に作られ、8ビットのパソコン用OSとしては最も代表的な存在だった。初期に普及したバージョンはCP/M 1.4で、そののち改訂されたCP/M 2.2が広く普及した。さらに、より洗練されたCP/M 3.0 (CP/M Plus) が登場したが、既に16ビットマシンへの移行が始まっていた時期でもあり普及することはなかった。
他のプロセッサに移植されたバージョンも存在するが、単にCP/Mといえば8080プロセッサ用のもの（中でもバージョン2.2）を指す。なおマイクロソフトによってOEMされたIBMのPC DOS（及び、のちにマイクロソフト自らが直販したMS-DOS）は、CP/Mをモデルに開発されたシアトル・コンピュータ・プロダクツの86-DOS（後に "QDOS" と改名）を前身としている。

生い立ち

キルドールは、インテルからマイクロコンピュータ開発システム (MDS) 用の高級言語を受注。PL/I風に作られた8080用のシステム記述向け言語であるPL/M（Programming Language for Microcomputer、後のPL/M-80）コンパイラを開発した。
このPL/Mの動作環境として、キルドールがインテルに提案したフロッピーディスクベースのDOSがあった。これは採用されなかったため、後に自ら販売することにしたものがCP/Mである。インテルは後に8080/8085からの移行を支援するため、8086/8088用にPL/M-86を開発した。

動作環境

CP/Mは8080マイクロプロセッサ（およびその上位互換CPU）、0番地から配置されたRAM（最小はCP/M 1.4で16KB）、最低1台の8インチフロッピーディスク装置、シリアル端末（CRTディスプレイとキーボード、あるいはASR-33のようなテレタイプ端末）があれば動作した。オプションとして、プリンタ、紙テープ読取装置・紙テープ穿孔装置、ハードディスク装置をサポートした。一般的には32KB以上、可能なら56KBくらいのRAMがあると、当時としては大規模なコンパイラなどが実行できた。

構成

CP/Mは、シェルであるCCP (Console Command Processor)、OSの本体であるBDOS（ビードス、Basic Disk Operating System）、入出力を処理する下位プログラムの集合体であるBIOS（バイオス、Basic Input and Output System）で構成される。ハードウェア依存部分はBIOSに集中させてあるので、BIOSだけを変更することで大抵のハードウェアに移植可能となっていた。BIOSの機能はシステムの初期化、CCPのリブート（アプリ実行の終了とシェルの再起動）、コンソールなどのキャラクタデバイスのリダイレクト付入出力、フロッピーディスク/ハードディスク等の1セクタ単位の入出力だけである。
なお、BIOSという用語は一般化して普通名詞となり、PC/AT互換機の普及以降はROMに記録された低レベル入出力プログラムを指すことが多くなったが、CP/MにおけるBIOSは殆どの場合はディスクからメモリにロードされるものである。

アプリケーション

CP/Mは8ビットマイコン上で主要な地位を占めたため、CP/M環境で動作するプログラムが大量に発売されており、ソフトウェア開発用ソフトのみならず1バイト文字圏におけるビジネスソフトウェアも数多くあった。
ユーザ・コミュニティでのフリーソフトウェアの流通もあり、当時はPDSと呼ばれていた。当時は通信環境がまだ普及していなかったので、フロッピーによって配布するのが主流だった。CP/M UGなど、組織的にソフトの収集と配布を行なっていたユーザグループも存在した。
マイクロソフトは、当時OEM各社より発売していたマイコン用のスタンドアロンBASICとは別に、CP/M汎用のBASIC処理系としてM-BASICインタープリタ (MB80) およびコンパイラ (BASCOM) をリリースしていた。他に、マクロ機能付リロケータブルアセンブラMACRO-80やFORTRAN-80、COBOL-80なども製品ラインに存在した。
デジタルリサーチ自身は、PL/I-80、 CBASIC（ビジネス向きBASICコンパイラ）、MACとRMAC（マクロアセンブラとリロケータブル・マクロアセンブラ）、Pascal/MT+（これはMT Microsystemsから買収。Z80専用コードも生成できるコンパイラ。高速なオブジェクトコードを出力した）などを出荷した。
CP/M上でC言語の処理系として名高いものは、Leor ZolmanのBDS-C、Whitesmith、AZTEC、HITECHのCコンパイラ、日本のLSIジャパンのLSI-C80などがある。日本では、ライフボート（当時）とそのOEM供給を受けたシャープが、CP/M向けに安価な各種言語のパッケージを販売していたこともある。ラインアップとしては、FORTRAN、COBOL、LISP、LOGO、Prolog、BDS-C（サブセット）、Pascal、Forthなどが存在した。
また、統合開発環境という概念を打ち立てたボーランドのTurbo Pascalは、WordMasterライクなスクリーンエディタ、極めて高速なコンパイラと、リンカのすべてをわずか30KB程度の実行形式に組み込んで提供されていた。さらに販売価格も廉価に抑えられていたため、驚きの目で迎えられ一時代を築いた。これは以後のマイコン向け開発用ソフトウェアに影響を与え、同時にボーランド社の地位を確立した。
事務処理用のアプリケーションソフトとしては、WordStar（フルスクリーンワードプロセッサ）、WordMaster（フルスクリーンエディタ）、SuperCalc等があった。WordStar/WordMasterのカーソル移動キーバインドはダイヤモンドカーソルと呼ばれ、その使いやすさからCP/MやMS-DOSの多くのスクリーンエディタに受け継がれた。

他CPU版

後に、16ビットCPUであるインテル8086用のCP/M-86およびモトローラMC680x0用のCP/M-68K、またザイログZ8000用のCP/M-8000が作られた。これら16ビット版と区別するために、8080用のCP/MをCP/M-80と呼ぶようになった。
しかし、CP/M-86がIBM PCに公式採用されなかったこともあり、結局MS-DOS (PC DOS) に押されて16ビット以降の世界ではマイナーな存在に終わった。
面白い特徴としては、各々トランジェントコマンドの拡張子が異なっており（CP/M-80:.COM、CP/M-86:.CMD、CP/M-68K:.68Kなど）、同一のファイルシステム内で複数のアーキテクチャ用のCP/Mを混在させることが出来た。実際の製品としては、PC-9800シリーズ用のSPARKシリーズがあり、実行を指示されたコマンドを拡張子によって区別し、8086で動作するコマンドと、Z80で動作するコマンドを混用することが出来た。

バリエーション

CP/Mのシリーズには、他に、Personal CP/M (P-CP/M、CP/M Ver.2.8) や、複数のプログラムを同時に走らせることができるMP/M1.1やMP/M II、コンカレントCP/M(-86)というものも存在した。Linuxの仮想コンソールのように、画面を切り替えて使う。

現状

デジタルリサーチは1991年にノベルに買収され、さらにカルデラ（2002年SCOに改称）に売却された。現在CP/M資産は同社の子会社であるリネオが所持しており、その大半は同社の許諾を受けた「非公式なCP/Mサイト」からダウンロードすることが可能である。
現在、日本国内でのCP/Mの商標は技術少年出版が保有する。