CP/M
モトローラEXORmacs(英語版)で既に動作していたCP/M-68KはAtari STに搭載されて出荷されるはずだったが、アタリはGEMDOSという新しいDOSを使うことに決めた。CP/M-68KはSORDのM68とM68MXでも使われた。
16ビット版CP/Mのアプリケーションは新CPU向けに再コンパイルが必要で、もしアプリケーションがアセンブラで記述されている場合は、ゲイリー・キルドールが1981年に開発したトランスレーターのXLT86を使い、8080用のASMファイルを8086用のA86ファイルに変換した。8080のレジスタがどのように使われているのかを分析し、関数呼び出しを正しく理解して、CP/M-80やMP/M-80用に書かれたアプリケーションを自動的にCP/M-86やMP/M-86用アプリケーションへコードを最適化しつつ変換することができた。XLAT86はそれ自身がPL/I-80で記述されており、CP/M-80だけでなくDEC VMS (VAX 11/750用と11/780用)でも動作した。
アーキテクチャの種類ごとに各々トランジェントコマンドの拡張子が異なっており(CP/M-80:.COM、CP/M-86:.CMD、CP/M-68K:.68Kなど)、同一のファイルシステム内で複数のアーキテクチャ用のCP/Mを混在させることが出来た。実際の製品としては、PC-9800シリーズ用のSPARKシリーズがあり、実行を指示されたコマンドを拡張子によって区別し、8086で動作するコマンドと、Z80で動作するコマンドを混用することが出来た。
マイクロソフトは、当時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程度の実行形式に組み込んで提供されていた。
CP/Mの公式な標準フォーマットはIBM System/34やIBM 3740で使われた片面単密度フォーマットの8インチディスクだった。非公式な5.25インチディスクもあり、フォーマットにはKaypro、Morrow Designs、Osborneなどの種類があった。InfoWorldは1981年9月に、ソフトウェアメーカーがサポートすべき主なフォーマットは20種類以上あると考えていると推測した。例えばJRT PascalはNorth Star、Osborne、Apple、Heathなどのフォーマットで5.25インチディスクのハードセクタ版やソフトセクタ版をリリースし、Superbrainに8インチ版をリリースした。Ellis ComputingもHeathの両フォーマットや、2つのTRS-80用CP/Mの改変版を含む16種類の5.25インチフォーマットでリリースした。
一部のフォーマットは普及したが他のフォーマットは普及しなかった。最も多くのソフトが採用したのはXerox 820フォーマットで、Kaypro IIなどの他のコンピュータも対応していた。CP/Mが利用されていた時代は5.25インチディスクのフォーマットが1社に統一されるということは無く、基本的にハードメーカーが異なればフォーマットに互換性がなかった。ソフト自体はどのマシンで動作しても、ソフトメーカーはハード毎にメディアを分けてソフトを販売しなければならなかった。Kayproなど一部のメーカーのディスクドライブは、自社の製品でも機種が変わると互換性がない事すらあった。こうした状況によりフォーマット変換プログラムが流行し、混乱を軽減させる一助になったほか、カーミットなどの通信プロトコルによりどのCP/M機にもあるシリアルポートを使ってプログラムやデータを転送することもできた。
2016年に、ザイドマン・コンサルティングのボッブ・ザイドマンは、デジタルリサーチが開発したCP/Mとティム・パターソンが開発し、長年前者のコードを基にしたと疑われたDOSのソースコードを比較し、初版のDOSのソースコードがCP/Mのソースコード基にしたかを調べた。
DOSとCP/Mのコマンドを比べると、一致するものは極僅かである。DOSとOS/8のコマンドの間には、DOSとCP/Mの間よりも共通コマンドが多くある。当該コマンドは全て動作を直接表す英単語となることが原因である。
しかし、両OSのシステムコールを分析すると、DOSにあるシステムコールは、明らかにCP/Mのシステムコールを真似るものであることがわかる。同じ機能を表す同じ数字がいくつもあることから、ティム・パターソンがDOSを開発した時にCP/Mの説明書を参考にしたことは明らかである。
ザイドマンの結論は、DOSはCP/Mのコードを一切基にしていないとのことであるものの、システムコールの多くの部分が真似られた。