CP/M

CP/Mのシステムディスク

CP/M(Control Program for Microcomputers、シーピーエム)は、1970年代デジタルリサーチ (Digital Research Inc.) の創業者であるゲイリー・キルドールによって開発され、1976年[1]に発売された、パソコン向けのシングルユーザー・シングルタスクオペレーティングシステム (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を前身としている。

動作環境

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)で構成される[2]。ハードウェア依存部分はBIOSに集中させてあるので、BIOSだけを変更することで大抵のハードウェアに移植可能となっていた。BIOSの機能はシステムの初期化、CCPのリブート(アプリケーション実行の終了とシェルの再起動)、コンソールなどのキャラクタデバイスリダイレクト付入出力、フロッピーディスク/ハードディスク等の1セクタ単位の入出力だけである。

なお、BIOSという用語は一般化して普通名詞となり、PC/AT互換機の普及以降はROMに記録された低レベル入出力プログラムを指すことが多くなったが、CP/MにおけるBIOSは殆どの場合はディスクからメモリにロードされるものである。

コマンド

ビルトインコマンド

CCPに内蔵されているコマンドをビルトインコマンド (built-in command) といい、次のようなものがある。

DIR
REN
TYPE
それぞれ、MS-DOSの同名コマンドと同様。
ERA
MS-DOSのDEL (ERASE)に相当。
SAVE
アドレス0100hから、256バイトを1ページとして指定のページ数のメモリイメージをディスクに記録する。
USER
ユーザ切り替え。主に、MP/Mでユーザごとに記録されたファイルを扱うために存在する。CP/M単独ではあまり意味がない。

これ以外はトランジェントコマンドに委ねている。

トランジェントコマンド

フロッピーディスクに実行ファイルとして記録されているコマンドをトランジェントコマンド (transient command)という。 次のようなものがある。

STAT
ディスクやファイルのサイズを表示する、ファイルの保護属性を表示・変更する、デバイスのリダイレクト状況を表示・変更する、など様々なシステムの状態を表示・操作する。
PIP
周辺装置やディスクの間でファイルをコピーする(Peripheral Interchange Program)。DECPDPシリーズのコマンドに由来する。
SUBMIT
バッチファイルを実行する。
ED
キャラクタ単位のラインエディタ。
ASM
8080用アブソリュートアセンブラ
LOAD
ASMの出力したオブジェクト(インテルHEXフォーマット)を.COMファイルに変換する。コマンド名から機能を連想しづらいことで有名。
DUMP
ファイルの16進ダンプツール。アセンブリソースコードが添付されており、プログラミングのサンプルでもあった。特に、ASCIIダンプがついていなかったため、この機能を追加することは定番の改造だった。
DDT
セルフ環境のデバッガ (Dynamic Debugging Tool)。殺虫剤のDDTにかけた命名である。
XSUB
バッチ処理中にコンソール入力をファイルから取得する際にSUBMITと同時に用いる。CP/M 2.x以降に用意された。
MOVCPM
CP/M自身の再配置ツール (move CP/M)。CP/M自身のコードは実装されたRAMの最上位に配置される。つまり、実装メモリが変わるとCP/M自身の配置を変更する必要があった。リロケータブルでない8080コードで書かれたBDOSとCCPを再配置するためのツールがMOVCPMである。各マシン向けのBIOS (Customized BIOS, CBIOS) はソースコードが供給されるのが普通だったので、インストールする人が自分で再アセンブルすることで必要なアドレスで実行できるバイナリを得られた。

パソコンメーカーが自社製品用に供給するCP/Mのパッケージには、上記以外にもフロッピーのフォーマットやコピー、ハードウェアの設定など独自コマンドが追加されていることが多かった。

なお、トランジェントコマンドがロードされるメモリ上の領域 (0100H - ) をTPA (Transient Program Area) と呼ぶ[2]

リブートについて

CP/Mの特徴的な仕様の一つに、リブート(ウォームブート、ウォームスタート)[注 1]がある[3][注 2][4]。リブートとは、アプリケーションの終了、または^Cの入力により、ディスクからCCPとBDOSをロードし直してCCPのコマンドラインに戻ることをいう。他のOSのように、IPLから完全に再起動することを指すわけではない。

リブートは以下の場合に発生する。

  • CP/Mのアプリケーションは、終了してOSに戻るために、0番地にジャンプする (JMP 0)。
  • CCPのコマンドライン上、またはアプリケーションの動作中に、^Cを入力すると、任意にリブートすることができる。
  • ディスクI/Oでエラー(BDOSエラー)が発生した際に、Abort(中断)を選ぶとリブートする。

いずれの場合も最終的にBIOSの先頭にジャンプし、BIOSはドライブAのディスクのシステム領域からCCPとBDOSをメモリにロードし、CCPの先頭にジャンプする。これにより、CCPのコマンドラインに戻ることになる。リブートはCP/Mの使用中に頻繁に発生するので、ドライブAにはCCPとBDOSの入ったフロッピー(通常、CP/Mの起動フロッピー)を入れておく必要がある。

CCPとBDOSをロードするのは、アプリケーションによって破壊されている可能性があるためである。 アプリケーションの動作中にはCCPは不要なので、CP/MのアプリケーションはCCPのメモリ領域を食いつぶしてもよいことになっている。さらに、滅多に存在しないが、BDOSすら利用しないアプリケーションでは、BDOSも食いつぶしてよい。そのため、アプリケーションの終了時にはCCPとBDOSをロードする必要がある。ただし、小規模なアプリケーションでは、JMP 0でなく単にRET命令でCCPに直接戻るものもある。この場合はリブートは発生しない。なお、MS-DOSにおいても、COMMAND.COMの非常駐部の再ロードという、似たような機能がある。

このようにリブートとはCP/Mにおけるきわめて基本的かつ重要な動作であるが、一方で多くのユーザーにとっては苦い思い出を呼び起こす言葉でもある。

CP/Mでは、フロッピーの入れ替えを検出すると、前のフロッピーのデータを現在のフロッピーに書き込んでしまうことを避けるため、一時的にフロッピーへのアクセスをリードオンリーに限定し、リブートすることで解除する。すなわち、CP/Mでフロッピーを入れ替えるときは、アプリケーションが動作中であればまず終了し、フロッピーを入れ替えてから^Cを押さなければならない。これを怠って、アプリケーションを終了せずにディスクを入れ替えてリードオンリーになってしまっているフロッピーにデータを書き込もうとすると、BDOSエラーが発生し、データは書き込めず、リブートを余儀なくされ、データは失われる。この事態に見舞われる“よくある状況”としては、フロッピーの残り記録容量が足りないことに気付かずに作業をしている際が挙げられる。こうなると、もはや通常の操作ではその作業結果を残す方法がない。救済方法としては、一旦BDOSエラーを発生させ、saveコマンドで空ディスクにメモリイメージを記録し、サードパーティー製ディスク操作ソフトを使用してその記録内容のうちトランジェントコマンド部分を削除した上ディレクトリ情報を書き換える方法がある。これは推奨された使用方法からは大きく外れた事態であり、救済に失敗することもまれではない。

これはCP/Mの重大な問題点で、この事態に陥ったときに表示される"Bdos Err On x: $R/O"(x:はドライブレター)というメッセージは、PC-9800シリーズのMS-DOSの"Int trap halt"や、Windows 3.1の一般保護例外 (GPE)、Windows 95/NTの青画面Classic Mac OS爆弾マークと同様に、ユーザーを恐怖と絶望におとしいれた。

この問題は、後のPersonal CP/MやCP/M Plus、CP/M-86では改善されている。

歴史

雑誌InfoWorld英語版1982年11月29日号に掲載されたCP/Mの広告

始まりとCP/Mの全盛期

キルドールは、インテルからマイクロコンピュータ開発システム (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を開発した。

ゲイリー・キルドールが1974年に開発したオリジナルのCP/M[5][6]は、インテルIntellec-8開発システム用に開発されたもので、シュガートアソシエイツの8インチフロッピーディスクドライブを独自のフロッピーディスクコントローラー英語版[7]で接続していた。キルドールは自分で開発したマイクロプロセッサ用のプログラミング言語であるPL/Mで記述した[8]。キルドールはメインフレームコンピュータのDECsystem-10を開発に使用したことがあり、そのOSであるTOPS-10の影響を大きく受けていた[9][10][11]

名称

CP/Mは元々Control Program/Monitorの略称で[12]、OSが起動する前の小さな内蔵モニターを意味していた。しかし商品化のため1977年11月に商標登録した際にはControl Program for Microcomputersの略であるとされた[6]。CP/Mの名前は当時流行していたスタイルに従ったもので、例えばキルドールが開発したプログラミング言語はPL/Mであり、プライムコンピュータが開発したプログラミング言語はPL/P (Programming Language for Prime)で、いずれもIBMのPL/Iからインスパイアされた。またIBMにはCP/CMSというオペレーティングシステムがあり、キルドールはNaval Postgraduate School(NPS)で働いている時にこれを使っていた。

CP/Mの名前の変遷は、キルドールと、キルドールの妻であり共同経営者でもあるドロシー・マキュアン[13]が、キルドールの個人的なプロジェクトに過ぎなかったCP/Mと、インテルと契約していたPL/Mをビジネスに変えるための努力の一環だった。IBMとマイクロソフトが後にパソコンの代名詞となったように、デジタルリサーチがマイクロコンピュータの代名詞となることをキルドールは意識していた。

インターギャラクティック・デジタルリサーチは後にデジタルリサーチへと社名変更の登記手続きを行った[13]

互換性

1981年9月までにデジタルリサーチは25万本のCP/Mを販売していた。InfoWorldによるとこれにはサブライセンスが含まれておらず実際のマーケットシェアはさらに大きいとされた。様々な企業が様々なCP/Mマシンを販売した。InfoWorldは「CP/Mがマイクロコンピュータ用のオペレーティングシステムとしてその地位を確実に確立しつつある」と述べた[14]。非常に多くのアプリケーションがあったため多くのコンピュータメーカーがCP/Mをサポートした。ゼロックスは「文字通り数千本のアプリケーションがあるのにこれをサポートしないのは賢い選択とは言えない」としてXerox 820に対応した[15]。デジタルリサーチのマニュアルは1982年にInfoWorldから批判されるほど酷く[16]、ゼロックスはハワード・サムが執筆したCP/Mマニュアルを同社の製品に同梱した。1984年までにコロンビア大学はファイル転送プロトコルのカーミットを1つのソースコードから複数のCP/M機用のバイナリを出力できるようにしており、またどのCP/M機でも動作する汎用版も開発した[17]。このオペレーティングシステムは複数のプログラムが異なるハードウェアと標準的な方法で通信でき、自らをソフトウェア・バスと呼んだ[18]。一部の例外を除き、CP/Mに記述されたプログラムは他のマシンでも動作する互換性があり、エスケープシーケンスだけを使ってコンソールやプリンタを制御することが互換性を維持するために求められた。この互換性の高さがCP/Mの普及を促し、特定のハードウェアだけで動作するソフトウェアよりもCP/M上で動作するソフトウェアがより多く開発されるようになった。Z80の拡張命令を用いた一部のプログラムは8080や8085で動作しなかった。またグラフィック処理にも互換性の問題があり、特にゲームや映像ソフトはパフォーマンスを稼ぐためにOSやBIOSを経由せず直接ハードウェアにアクセスすることが普通だった(初期のDOS機にも共通の問題があった)。

アップルのCP/Mカードとマニュアル

ビル・ゲイツによるとApple IIシリーズとZ-80 SoftCardの組み合わせはCP/Mの動作環境として当時最も普及していた[19]Altair 8800IMSAI 8080Osborne 1、Kaypro luggable、MSXなど、非常に多くの機種で動作した。最も多く売れたCP/M対応システムはアムストラッド PCW英語版だと考えられている。イギリスではリサーチマシーンズ社の教育用コンピュータでCP/Mが動作し、CP/Mのソースコードが教育用として添付されたほか、Z80コプロセッサを搭載したBBCマイクロでも動作した。さらにアムストラッドCPCシリーズ、コモドール128TRS-80ZXスペクトラムの後期モデルでも動作した。ACニールセン用に開発された、1MBのSSDメモリを搭載した携帯用マシンであるNIATでもCP/M 3が動作した。

アプリケーション

8ビット版CP/M用に発売されたワードプロセッサWordStarの最終バージョン(バージョン4)の5.25インチフロッピーのインストールディスクとパッケージ。

CP/Mは8ビットマイコン市場で広く普及したため、CP/M環境で動作するプログラムが大量に発売されており、ソフトウェア開発用ソフトのみならず1バイト文字圏におけるビジネスソフトウェアも数多くあった。

ワードプロセッサとして初めて広く普及したWordStarと、フルスクリーンエディタのWordMaster、マイクロコンピュータ用として初期に人気を博したデータベースのdBaseは、いずれも元々はCP/M用に開発された。WordStar/WordMasterのカーソル移動キーバインドはダイヤモンドカーソルと呼ばれ、その使いやすさからCP/MやMS-DOSの多くのスクリーンエディタに受け継がれた。初期のアウトラインプロセッサであるKAMAS(Knowledge and Mind Amplification System)と、その廉価版であるOut-Think(マクロ機能が削除され8080/V20互換として再設計された)もまたCP/M用に開発され、後にMS-DOSへ移植された。Delphiの祖先であるTurbo Pascalや、Microsoft Excelの祖先であるMultiplanもCP/Mでリリースされた後にMS-DOSへ移植された。世界初の表計算ソフトであるVisiCalcはCP/M用に作られた。SorcimはCP/M用の表計算ソフトSuperCalcを開発し、CP/M上ではデファクトスタンダードになった。SuperCalcはMS-DOSの表計算ソフト業界にも参入した。AutodeskはAutoCADをCP/Mでリリースした。

BASICFORTRANなど当時主流のプログラミング言語を利用できた。マイクロソフトは、当時OEM各社より発売していたマイコン用のスタンドアロンBASICとは別に、CP/M汎用のBASIC処理系としてM-BASICインタープリタ (MB80) およびコンパイラ (BASCOM) をリリースしていた。他に、マクロ機能付リロケータブルアセンブラMACRO-80やFORTRAN-80、COBOL-80なども製品ラインに存在し、これらの言語製品は当時のマイクロソフトの主力商品だった。

デジタルリサーチ自身は、PL/I-80[20]、 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向けに安価な各種言語のパッケージを販売していた。ラインアップとしては、FORTRANCOBOLLISPLOGOProlog、BDS-C(サブセット)、PascalForthなどが存在した。

また、統合開発環境という概念を打ち立てたボーランドTurbo Pascalは、WordMasterライクなスクリーンエディタ、極めて高速なコンパイラと、リンカのすべてをわずか30KB程度の実行形式に組み込んで提供されていた。さらに販売価格も廉価に抑えられていたため、驚きの目で迎えられ一時代を築いた。これは以後のマイコン向け開発用ソフトウェアに影響を与え、同時にボーランド社の地位を確立した。

CP/M用のソフトは様々な機種に対応するためにインストーラーが付属することが多かった[21]。BASICで開発されたプログラムは簡単にソースコードを見ることができ、コピープロテクトはほとんど無意味だった[22]。Kaypro IIの開発者はXerox 820フォーマットを採用し、Kayproフォーマットと名付けてソフトを提供し、この上でプログラムを実行させた[23]

グラフィック機能は標準化されておらずコンピュータゲームのサポートは限定的であったものの、Telengard英語版[24]Gorillas英語版[25]Hamurabi英語版Lunar Lander英語版、初期のテキストアドベンチャーであるゾークシリーズやコロッサル・ケーブ・アドベンチャーなどのテキストベースのゲームが移植された。テキストアドベンチャーに強いインフォコムはCP/Mで定期的にゲームをリリースしていた数少ない開発会社だった。

ユーザ・コミュニティでのフリーソフトウェアの流通もあり、当時はPDSと呼ばれていた。当時は通信環境がまだ普及しておらず、フロッピーで配布するのが主流だった。CP/M UGなど、組織的にソフトの収集と配布を行なっていたユーザグループも存在した。Lifeboat Associates英語版はユーザーが開発したフリーソフトウェアを集めて配布した。XMODEMはそうしたフリーウェアの初期の作品の1つで、電話からモデムを使って安定的にファイルを転送できた。

ディスクフォーマット

CP/Mの公式な標準フォーマットはIBM System/34IBM 3740で使われた片面単密度フォーマットの8インチディスクだった。非公式な5.25インチディスクもあり、フォーマットにはKaypro、Morrow Designs、Osborneなどの種類があった[26][16][27]InfoWorldは1981年9月に、ソフトウェアメーカーがサポートすべき主なフォーマットは20種類以上あると考えていると推測した[14]。例えばJRT PascalはNorth Star、Osborne、Apple、Heathなどのフォーマットで5.25インチディスクのハードセクタ版やソフトセクタ版をリリースし、Superbrainに8インチ版をリリースした[28]。Ellis ComputingもHeathの両フォーマットや、2つのTRS-80用CP/Mの改変版を含む16種類の5.25インチフォーマットでリリースした[29]

一部のフォーマットは普及したが他のフォーマットは普及しなかった。最も多くのソフトが採用したのはXerox 820フォーマットで、Kaypro IIなどの他のコンピュータも対応していた[23][30]。CP/Mが利用されていた時代は5.25インチディスクのフォーマットが1社に統一されるということは無く、基本的にハードメーカーが異なればフォーマットに互換性がなかった。ソフト自体はどのマシンで動作しても、ソフトメーカーはハード毎にメディアを分けてソフトを販売しなければならなかった。Kayproなど一部のメーカーのディスクドライブは、自社の製品でも機種が変わると互換性がない事すらあった。こうした状況によりフォーマット変換プログラムが流行し、混乱を軽減させる一助になったほか、カーミットなどの通信プロトコルによりどのCP/M機にもあるシリアルポートを使ってプログラムやデータを転送することもできた。

様々なフォーマットがハードの特徴や設計者の一存により選ばれた。CP/Mはディスクの予約領域やディレクトリ領域のサイズを指定でき、CP/Mのアプリケーションから見える論理セクタとディスク上の実際の配置である物理セクタのマッピングなどを指定可能だった。各システムはこれらのパラメーターを用いて様々なカスタマイズを加えることができた[31]が、一度設定を決めた後は、どのような設定のディスクであるのかを調べる標準的な方法がなかった。CP/Mの時代は8インチ、5.25インチ共に様々なフロッピーディスクのフォーマットが存在しており、異なるCP/Mマシンの互換性は採用したディスクドライブのタイプやコントローラーに依存した。ディスクはハードセクタ方式とソフトセクタ方式があり、単密度や倍密度、片面や両面、35トラック、40トラック、77トラック、80トラック、セクタのレイアウト、サイズ、インターリーブなどの様々な違いがあった。異なるマシン用のディスクを読むために変換プログラムを使用できたが、これもまたディスクのタイプやコントローラーに依存した。1982年頃にはソフトセクタ、片面、40トラックの5.25インチディスクがCP/Mソフトの配布用として最も普及したフォーマットとなり、Apple II、TRS-80、Osborne 1、Kaypro II、IBM PCなど当時主流だったマシンのほとんどが採用した。変換プログラムはタイプが近いディスクドライブ用のフォーマットを読むことを可能にした。例えばKaypro IIはTRS-80OsborneIBM PCEpson QX-10英語版などのディスクを読めた。80トラックのような他のフォーマットや、ハードセクタ方式のディスクは全く読めなかった。Epson QX-10などが採用した両面ディスクは半分だけデータを読むことができた。Apple IIはAppleのGCRフォーマットだけしか読めず他社のフォーマットを読めなかったため、Appleフォーマット版のCP/Mソフトを入手するか、またはシリアルポートで転送するしかなかった。

CP/M市場によるディスクフォーマットの断片化は、複数のフォーマットに対応したディスクの在庫を抱えたり、複数のフォーマットに対応したディスクコピー装置を購入したりすることをソフトメーカーに強いた一方で、IBM PCはディスクが規格化されて統一されており、1981年以降にCP/Mが急速に市場を失う要因となった。

1985年に発売されたコモドール128は末期に発売されたCP/M機で、6502ベースのCPUを採用しながら、CP/MをサポートするためにZ80も搭載していた。CP/Mを使うには、ソフトセクタ40トラックMFM方式のディスクが読み書きできるディスクドライブの1571英語版1581英語版が必須だった。

始めて3.5インチフロッピーを採用したSony SMC-70英語版[32]ではCP/M 2.2が動作した。

コモドール128、ラップトップのBondwell-2英語版、Micromint/Ciarcia SB-180[33]MSXTRS-80 Model 4英語版 (Montezuma CP/M 2.2が動作)なども3.5インチディスク版のCP/Mが動作した。アムストラッドPCW英語版は当初3インチフロッピーでCP/Mが動作し、後に3.5インチフロッピーへ切り替えた。

グラフィック

S-100バス(アルテアバス)に対応したグラフィックシステムは存在していたが、CP/Mは1982年にGSX (Graphics System Extension)をリリースするまでグラフィック機能を全くサポートしていなかった。当時は使用できるメモリが非常に限られており、8ビットのCP/Mでグラフィック機能が一般的になることは無かった。ほとんどの機種ではテキストモードでアスキーアートにより図表を表示するか、機種依存文字を使う事しかできなかった。KayproシリーズやTRS-80 Model 4英語版などの一部の機種は絵文字をサポートしており、アセンブラで直接ハードウェアを叩くか、BASICからCHR$コマンドを使ってアクセスすることができた。Model 4はオプションのハイレゾリューションボードで640×240ドットのグラフィックを表示できた。

マルチユーザー

1979年にマルチユーザーに対応したCP/Mがリリースされた。MP/Mは複数のユーザーが1台のコンピューターに接続でき、ユーザーはディスプレイとキーボードを備えた端末が個別に与えられた。後のバージョンは16ビットCPUで動作した。

CP/M Plus

CP/M Plus (CP/M 3) システムガイド

1983年にリリースされた8ビット版CP/Mの最終版はバージョン3で、CP/M Plusと呼ばれた。CP/M 2.2のアプリケーションと互換性があるMP/Mが持つバンク切り替えによるメモリ管理機能を、MP/Mのシングルユーザー、シングルタスク版という形で導入した。これによりCP/M 3では8080やZ80でも64KB以上のメモリを扱うことができた。ファイルにタイムスタンプを付けるようシステムを設定できた。またアセンブラとリンカが付属した[34]。CP/M 3は、アムストラッドPCW、アムストラッドCPCZXスペクトラム+3コモドール128MSXラジオシャックのTRS-80モデル4[35]など、8ビットマイコンの最後の世代で利用できた。

16ビット版

DEC PRO-CP/M-80のフロッピーディスク。Z80-Aコプロセッサを搭載したDEC Professional 3xxシリーズ用。

16ビットCPU用のCP/Mも存在した。

最初の16ビット版であるCP/M-86Intel 8086版で、続けてモトローラ68000版のCP/M-68Kがリリースされた。1982年にリリースされたオリジナル版のCP/M-68KはPascal/MT+68k英語版で開発され、後にC言語に移植された。混乱を避けるため、オリジナルの8ビット版CP/MはCP/M-80と呼ばれるようになった。1982~1983年頃にオリベッティM20英語版用としてZ8000で動作するCP/M-8000がC言語で開発された[36]

CP/M-86はIBM PCの標準OSとなることが期待されていたが、デジタルリサーチとIBMは開発や契約の話をまとめることができなかった。IBMはマイクロソフトに白羽の矢を立て、マイクロソフトは86-DOSをもとにPC DOSを開発して提供した。デジタルリサーチはIBMに対して提訴すると脅し、CP/M-86もIBM PCで利用できるようになったが、マイクロソフトを超えることはできなかった。IBMの設定価格はPC DOSが$40だったのに対してCP/M-86は$240で、その大きな差に顧客は驚かされた[37]

DECがIBMの対抗馬として発売したRainbow 100英語版は、Z80を使ったCP/M-80と、8088を使ったCP/M-86及びMS-DOSが付属し、CP/M-86とCP/M-80を同時に使用できた。Z80と8088は並列で動作した[38][39]。Rainbowでは8ビット版CP/Mの大量のソフトウェア資産を続けて利用しながら、16ビットのMS-DOSへ移行することが可能だった[38]

モトローラEXORmacs英語版で既に動作していたCP/M-68KはAtari STに搭載されて出荷されるはずだったが、アタリはGEMDOSという新しいDOSを使うことに決めた。CP/M-68KはSORDのM68とM68MXでも使われた[40]

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用)でも動作した[41]

アーキテクチャの種類ごとに各々トランジェントコマンドの拡張子が異なっており(CP/M-80:.COM、CP/M-86:.CMD、CP/M-68K:.68Kなど)、同一のファイルシステム内で複数のアーキテクチャ用のCP/Mを混在させることが出来た。実際の製品としては、PC-9800シリーズ用のSPARKシリーズがあり、実行を指示されたコマンドを拡張子によって区別し、8086で動作するコマンドと、Z80で動作するコマンドを混用することが出来た。

MS-DOSとの競争

当時多くの人が16ビット機でもCP/Mが標準になるだろうと考えていた[42]。1980年にIBMは、ビル・ゲイツの提案に従ってデジタルリサーチに連絡を取り[43]、開発中のIBM PCに提供する新しいCP/Mのライセンス契約について話し合おうとした。秘密保持契約を結ぶことができずに話し合いは決裂し、IBMは代わりにマイクロソフトへOSの提供を打診した[44]。その結果生まれたMS-DOSは間もなくCP/Mより売れるようになった。

初期バージョンのMS-DOSは基本となるコンセプトや仕組みがCP/Mと似ていた。ファイルのデータ構造が同じで、ディスクドライブにドライブレター(A:B:など)を割り当てる形も同じだった。ファイルシステムFATはCP/Mと比べてMS-DOSが最も違う所だった。全体的に大きな違いがないことから、WordStardBaseなどのCP/Mの人気ソフトウェアを簡単に移植できた。一方でCP/Mにあった、ユーザーごとにディスクの領域を分割する機能はMS-DOSに採用されることはなかった。IBM PCは一部を除いて64KB以上のメモリを利用できた一方で、CP/Mは16KBのメモリで動作するよう設計されていたため、MS-DOSは多くのメモリを使ってCOMMAND.COMの内蔵コマンドを増やすことができ、フロッピーディスクからコマンドを読む必要が減ることで処理が速くなり、OSのフロッピーをアプリケーションやデータファイルのフロッピーに変えても操作できることが増えて使いやすくなった。

8ビット版CP/Mのソフトが利用できるSoftCardのような拡張ボードがIBM PC用にすぐにリリースされたが[45]、マイコン市場がIBM互換機市場に移るにつれてCP/Mのシェアは急速に小さくなり、以前のようなCP/Mブームが再び訪れることはなかった。マイコン業界誌最大手のByte誌は、IBM PCがリリースされると1年も経たないうちにCP/M関連商品の記事を事実上扱わなくなった。1983にはS-100ボードの広告がわずかにあり、CP/Mソフトの記事も数件あったが、1987年には全く見られなくなった。1984年にInfoWorldが掲載した記事では、企業に普及したCP/Mを一般家庭に広めようとする努力は失敗に終わり、CP/Mソフトは個人で買うには高すぎたとし[46]、1986年にはこれまで他社が次々にCP/Mから撤退する中でCP/M用の周辺機器やソフトのリリースを長く続けていたKayproがついに8ビット版CP/M用のソフト開発を中止してMS-DOS互換機の開発販売に集中するという記事が掲載された[47]

後期バージョンのCP/M-86はパフォーマンスや使い勝手で大幅な進化を遂げた。マルチユーザー版のMP/Mからマルチプロセスなどの機能をマージしてコンカレントCP/Mとなり、Linux仮想コンソールのように画面を切り替えて複数のアプリケーションを使用することができるようになった。MS-DOSとの互換性が実現してDOS Plusと改名され、さらにDR-DOSと改名された。一方MP/MもDR-DOSから逆マージされ、マルチユーザーDOSに改名した。

ZCPR

1982年2月2日に公開されたZCPR[48] (Z80 Command Processor Replacement)はデジタルリサーチ標準のコンソールコマンドプロセッサ(CCP)をそのまま置き換えるプログラムで、CCPグループと呼ばれる趣味のユーザーグループが開発した。フランク・ワンチョ、キース・ピーターセン(Simtel英語版の管理者)、ロン・フローラー、チャーリー・ストローム、ボブ・マティアス、リチャード・コンらが開発に参加した。実際にはリチャードがこのグループを推進していた(全員電子メールで連絡を取り合っていた)。

ZCPR1はニュージャージーにあるアマチュアコンピュータークラブのパソコン通信掲示板SIG/M(Special Interest Group/Microcomputers)のメンバー間でディスクを直接手渡しする形で配布された。

ZCPR2は1983年2月14日に公開された。SIG/Mでディスク10枚組のパッケージでリリースされた。ZCPR2は2.3にバージョンアップし、8080版もリリースされ、8080や8085でZCPR2が使えるようになった。

ZCPR3[49]は1984年7月14日のパリ祭の日にSIG/Mからディスク9枚組のパッケージでリリースされた。ZCPR3のソースコードは一部機能を制限することで8080用としてビルドすることができ、Z80ではない機種でも実行できた。

1987年1月にリチャード・コンがZCPRの開発から撤退し、ZCPRを個人的に3.1へバージョンアップしていた実績のあるジェイ・セージにエシュロンは開発の継続を頼んだ。結果的にZCPR 3.3がリリースされた。ZCPR 3.3は8080系CPUをサポートせず、大きな機能拡張もなかった。

ZCPRバージョン3には以下の機能があった。

  • シェル
  • エイリアス
  • I/Oリダイレクト
  • フロー処理
  • 名前付きディレクトリ
  • 検索パス
  • カスタムメニュー
  • パスワード
  • オンラインヘルプ

ZCPR3.3はまた使い勝手を大幅に改善する数多くのユーティリティがフルセットで付いてきた。当時CP/Mユーザーから熱烈な歓迎を受けたが、ZCPRだけではCP/Mの衰退を止めることはできなかった。

旧東ヨーロッパの派生版CP/M

旧東ドイツロボトロンPC 1715英語版で動作する派生版CP/Mの1つSCP

SCP(Single User Control Programドイツ語版)、SCP/M、CP/A、CP/KC、CP/L、CP/KSOB、CP/Z、MICRODOS、BCU880、ZOAZ、OS/M、TOS/M、ZSDOS、M/OS、COS-PSA、 DOS-PSA、CSOC、CSOS、CZ-CPMなど、旧東ヨーロッパには非常に多くの派生版CP/M-80が存在した[50][51]。またSCP1700、CP/K、K8918-OSなどのCP/M-86の派生版も存在した[51]。旧東ドイツのロボトロンなどが開発していた[51][50]

日本での状況

  • 日本電気 (NEC) のPC-8000シリーズ/PC-8800シリーズシャープMZシリーズ/X1シリーズなど、Z80プロセッサ搭載の8ビットパソコンに移植されたCP/Mのパッケージが、ハードメーカーやサードパーティーから提供されていた。特にシャープ自ら供給したX1シリーズ用のものは完成度が高く、しかも安価だった。
  • NECのワープロ専用機、文豪ミニ5シリーズは、特定のキーを押しながら電源を入れるとCP/M-80が起動し、パソコンとして利用することができた。
  • ソニーのSMCシリーズのうち、SMC-777は、CP/M 1.4ベースのSONY FILERというOSを標準搭載した。SMC-70, SMC-70G は、別売りではあったが事実上、CP/M 2.2が標準OSとして利用されていた。
  • 6809プロセッサを採用した富士通FMシリーズでも、オプションのZ80ボードを搭載することでCP/Mが動作する。ワープロ専用機MY OASYSでも同等のボードが提供されていた。
  • シャープのMZ-2500版はPersonal CP/Mの名前で提供された。
  • MSXに提供されたMSX-DOSは、外見はMS-DOS、中身はCP/MとでもいうべきOSで、CP/Mのソフトがおおむね動作した。
  • CP/M-86は、日本語化されたものが三菱電機MULTI 16、富士通FM-11EX/BS、FM-16β/πなどに標準採用された他、NECのPC-9800シリーズにも提供されていた。三菱電機とアスキーによるCP/M-86の日本語化の過程で三菱電機側の提案で策定されたのがシフトJISである。
  • 68000プロセッサ用のCP/M-68Kは各社製パソコンに対応する68000搭載拡張CPUボード向けに提供された他、ソードの68000とZ80をデュアル搭載するM68およびシャープX68000に提供された。また、X68000の標準添付OSであるHuman68k上で動作するCP/M-68kエミュレータが2社から発売された。
  • 一部機種には、CP/M PlusやコンカンレントCP/M-86も提供されていた。
  • 日本でCD-ROMにて初めてCP/Mシリーズを提供していたのは、LASER 5であった。このCP/MはNEC PC-8801MC2等を使用して実機に導入可能なものである。

MS-DOSとの比較

初期のMS-DOS/PC DOS(の前身であるシアトルコンピュータプロダクツの86-DOS)は、CP/Mをモデルとして設計されたため、さまざまな面で類似点が見られる。

  • ファイル名が8文字+3文字であり、拡張子でファイルの種類を区別する。実行可能ファイルの拡張子は.COMである。ワイルドカード「*」「?」がある。ワイルドカード自体はUNIX由来だが、CP/M、MS-DOSとも機能は大幅に簡略化されている。なお、CP/Mでは「ファイルマッチ」の名称を用いる。
  • ドライブレター、カレントドライブ、デバイス名などの概念がある。
  • コマンドプロンプトは「>」である(例: A>)。
  • DIR、REN、TYPEなどのビルトインコマンドがある。
  • ^Sで出力の一時停止、^Cでアプリケーションの中断、^Pでプリンタ出力の切り替えを行う。これもUNIX系のシェル環境由来の機能である。
  • CP/MのCCP、BDOS、BIOSの三層構造は、MS-DOSではCOMMAND.COM、MSDOS.SYS、IO.SYS(PC DOSではCOMMAND.COM、IBMDOS.COM、IBMBIO.COM)となる。
  • システムコールの機能や呼び出し方法、アプリケーションのメモリ配置、コマンドライン引数の渡し方などが酷似している。通常、MS-DOSでシステムコールを利用する場合には「INT 21H」のソフトウェア割り込みを利用するという大原則があるが、「CALL 5H」でもそのまま動作するようになっていた。アセンブラのソースファイルをMS-DOSへ転送後、レジスターの名称を置換するだけで動作するプログラムもある。
  • ファイルを削除すると、ディレクトリエントリの先頭バイトがE5Hになる。
このE5Hという値は、当時フロッピーを物理フォーマットする際に書き込まれた値に由来する。つまり、物理フォーマット後に論理フォーマットする必要がないように設計されている。ただし、MS-DOSの場合はFATやブートセクタを書き込む必要があるため、別途論理フォーマットが必須である。

一方で、以下のような相違点(改善点)もある。

  • CP/Mでファイルを削除するERA (ERASE) コマンドに相当するMS-DOSのコマンドは、DEL (DELETE) である。ただしERASEという別名も使用可能。
  • CP/MのDIRコマンドは、MS-DOSのDIR/Wに相当する出力形式しかない。ファイルの詳細を知るにはSTATコマンドを使う。
  • CP/MのRENコマンドは「REN 新ファイル名 = 旧ファイル名」と書き、さらにMS-DOSのそれとは引数の順序が逆である。
  • CP/MではファイルのコピーはトランジェントコマンドのPIPを必要としたが、MS-DOSでは内部コマンドのCOPYで行える。引数の順序もRENコマンドと同様に逆になる。
  • CP/Mでは前述したようなフロッピー入れ替えにまつわる問題があるが、MS-DOSではそのようなことはない。
  • CP/Mではバッチファイル(.SUB)の実行にはトランジェントコマンドのSUBMITを必要としたが、MS-DOSではCOMMAND.COM自身がバッチファイル実行機能を持っている。
  • CP/MではCCPなどのOS構成要素はディスク上の専用領域に格納されるが、MS-DOSではCOMMAND.COMについては通常のファイルと同様の方法で格納されるようになった。
  • CP/MのディスクI/Oの基本単位は128バイトであり、ファイルサイズも128バイト単位である[52]。これは、標準メディアが8インチ単密度フロッピー(セクタサイズ128バイト)だったことによる。一方、MS-DOSのディスクI/Oは128/256/512/1024バイトなどの単位で行え、ファイルサイズもバイト単位でとることができる。
  • CP/Mのファイルシステムではファイルの配置情報がディレクトリと一体化しており、大きなファイルがあるとディレクトリエントリをいくつも消費するという問題があったが、MS-DOSではFATとして独立している。

また、マイクロソフトがCP/M向けに出していたソフトでは、コマンドラインのスイッチはスラッシュで始まっており(例: M80 =FOO.MAC /R)、PC DOS/MS-DOS 1.xではこれがOS標準の書式として受け継がれた。 そのため、PC DOS/MS-DOS 2.xで階層ディレクトリを導入する際に、UNIXのようにパス名の区切りにスラッシュを使うことができず、バックスラッシュを使うことになった。 しかし、ASCIIのバックスラッシュはISO 646各国版で置き換えが認められており、たとえば日本のJIS X 0201では円記号になっているため、日本のPCではパス名の区切りが円記号で表示されることになった。

なお、これはコマンドラインに限った話であり、MS-DOSのシステムコールやWindows APIにパス名を渡す場合には、コマンドラインスイッチと混同するおそれがないため、区切りとしてスラッシュもバックスラッシュも受け付ける。

CP/MとDOSのソースコード比較

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のコードを一切基にしていないとのことであるものの、システムコールの多くの部分が真似られた[53]

現状

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

現在、日本国内でのCP/Mの商標技術少年出版が保有する[54]

脚注

注釈

  1. ^ 通常のコールド・スタートに対してこう呼ばれるようになった。
  2. ^ なお、国産機の多く(NEC PC等)は更に通常の電源断からの再起動を「コールドリスタート」、CP/Mのリブート相当の再起動を「ホットリスタート」とも呼ぶ。

出典

  1. ^ 伏見 (1982:11)
  2. ^ a b 伏見 1982, p. 13.
  3. ^ 伏見 1982, p. 19 大方の概念について言及。
  4. ^ この2者の用語はNEC PC-8801シリーズやPC-9801シリーズのリファレンスマニュアル等(機種によって構成が違う場合には名称も異なる場合があるので一概に文献名を記載し得ない)に明記されている。
  5. ^ In His Own Words: Gary Kildall”. Remarkable People. コンピュータ歴史博物館 (2016年8月2日). 2016年12月17日時点のオリジナルよりアーカイブ2019年12月22日閲覧。
  6. ^ a b Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry (Manuscript, part 1). Kildall Family. (2016-08-02). オリジナルの2016-11-17時点におけるアーカイブ。. https://web.archive.org/web/20161117231531/http://www.computerhistory.org/atchm/computer-history-museum-license-agreement-for-the-kildall-manuscript/ 
  7. ^ The History of CP/M, THE EVOLUTION OF AN INDUSTRY: ONE PERSON'S VIEWPOINT”. Dr. Dobb's Journal. pp. 6–7 (January 1980). 2016年11月24日時点のオリジナルよりアーカイブ2013年6月3日閲覧。 “[…] The first commercial licensing of CP/M took place in 1975 with contracts between Digital Systems英語版 and Omron of America for use in their intelligent terminal, and with Lawrence Livermore Laboratories where CP/M was used to monitor programs in the Octopus network. Little attention was paid to CP/M for about a year. In my spare time, I worked to improve overall facilities […] By this time, CP/M had been adapted for four different controllers. […][ In 1976, Glenn Ewing approached me with a problem: Imsai, Incorporated, for whom Glenn consulted, had shipped a large number of disk subsystems with a promise that an operating system would follow. I was somewhat reluctant to adapt CP/M to yet another controller, and thus the notion of a separated Basic I/O System (BIOS) evolved. In principle, the hardware dependent portions of CP/M were concentrated in the BIOS, thus allowing Glenn, or anyone else, to adapt CP/M to the Imsai equipment. Imsai was subsequently licensed to distribute CP/M version 1.3 which eventually evolved into an operating system called IMDOS英語版. […]”
  8. ^ CP/M 1.1 or 1.2 BIOS and BDOS for Lawrence Livermore Laboratories, (June 1975), "An excerpt of the BDOS.PLM file header in the PL/M source code of CP/M 1.1 or CP/M 1.2 for Lawrence Livermore Laboratories (LLL):" 
  9. ^ CP/M and Digital Research Inc. (DRI) History”. www.retrotechnology.com (2009年1月4日). 2008年8月20日時点のオリジナルよりアーカイブ2009年1月28日閲覧。
  10. ^ “First word on a floppy-disk operating system”. Dr. Dobb's Journal (Menlo Park, CA, USA) 1 (4): 5. (April 1976).  Subtitle: Command language & facilities similar to DECSYSTEM-10.
  11. ^ Digital Research (1978). CP/M. Pacific Grove, CA, USA: デジタルリサーチ. OCLC 221485970. オリジナルの2016-03-23時点におけるアーカイブ。. https://web.archive.org/web/20160323132843/http://www.worldcat.org/title/ltcpmgt/oclc/221485970 
  12. ^ Erik Sandberg-Diment (May 3, 1983). “Personal Computers: The Operating System in the middle”. ニューヨーク・タイムズ. https://www.nytimes.com/1983/05/03/science/personal-computers-the-operating-system-in-the-middle.html 
  13. ^ a b John Markoff (July 13, 1994). “Gary Kildall, 52, Crucial Player In Computer Development, Dies”. ニューヨーク・タイムズ. https://www.nytimes.com/1994/07/13/obituaries/gary-kildall-52-crucial-player-in-computer-development-dies.html 
  14. ^ a b “State of Microcomputing / Some Horses Running Neck and Neck”. (1981年9月14日). pp. 10–12. https://books.google.com/books?id=Mj0EAAAAMBAJ&lpg=PA14&pg=PA10#v=onepage&q&f=true 2019年4月8日閲覧。 
  15. ^ “Mainframe makers court third-party vendors for micro software”. InfoWorld英語版: pp. 21–22. (1982年5月10日). オリジナルの2015年3月18日時点におけるアーカイブ。. https://web.archive.org/web/20150318064450/https://books.google.com/books?id=bDAEAAAAMBAJ&lpg=PA22&pg=PA21 2015年1月25日閲覧。 
  16. ^ a b “The Xerox 820, a CP/M-operated system from Xerox”. InfoWorld: 101–104. (1982-06-14). https://books.google.com/books?id=YDAEAAAAMBAJ&lpg=PA102&pg=PA101 2019年3月30日閲覧。. 
  17. ^ da Cruz, Frank (27 April 1984). "New release of KERMIT for CP/M-80". Info-Kermit Digest (Mailing list). Kermit Project, Columbia University. 2016年2月23日閲覧
  18. ^ “Gary Kildall and Collegial Entrepreneurship”. Dr. Dobb's Journal. (1997-04-01). オリジナルの2007-01-24時点におけるアーカイブ。. https://web.archive.org/web/20070124184442/http://www.ddj.com/184410428 2006年11月20日閲覧。. 
  19. ^ “The Man Behind The Machine? / A PC Exclusive Interview With Software Guru Bill Gates”. PC Magazine英語版: p. 16. (February 1982). オリジナルの2013年5月9日時点におけるアーカイブ。. https://web.archive.org/web/20130509162040/http://books.google.com/books?id=w_OhaFDePS4C&lpg=RA2-PA18&pg=PA16 2012年2月17日閲覧。 
  20. ^ PL/I Language Programmer's Guide”. デジタルリサーチ. 2019年12月22日閲覧。
  21. ^ “IBM PC clone makers shun total compatibility”. InfoWorld英語版: pp. 79–81. (1984年1月9日). オリジナルの2015年3月16日時点におけるアーカイブ。. https://web.archive.org/web/20150316182214/https://books.google.com/books?id=ey4EAAAAMBAJ&lpg=PA14&ots=qxysACmBMb&pg=PA79 2015年2月4日閲覧。 
  22. ^ “Zenith Z-100, Epson QX-10, Software Licensing, and the Software Piracy Problem”. BYTE 8 (6): pp. 411. (June 1983). オリジナルの2014年6月9日時点におけるアーカイブ。. https://web.archive.org/web/20140609081942/http://archive.org/stream/byte-magazine-1983-06/1983_06_BYTE_08-06_16-Bit_Designs#page/n411/mode/2up 2013年10月20日閲覧。 
  23. ^ a b “Kaypro II—a low-priced, 26-pound portable micro”. InfoWorld英語版: pp. 59. (1982年10月18日). オリジナルの2014年1月1日時点におけるアーカイブ。. https://web.archive.org/web/20140101062305/http://books.google.com/books?id=CjAEAAAAMBAJ&lpg=PA59&pg=PA59 2013年10月22日閲覧。 
  24. ^ More on Avalon Hill Computer Games on Heath/Zenith platforms”. Armchair Arcade (2012年7月28日). 2015年7月23日時点のオリジナルよりアーカイブ2015年7月22日閲覧。
  25. ^ Gorillas for CP/M” (2015年12月1日). 2016年2月5日時点のオリジナルよりアーカイブ2015年7月22日閲覧。
  26. ^ “The Osborne 1, Zeke's New Friends, and Spelling Revisited”. BYTE: pp. 212. (April 1982). オリジナルの2013年10月26日時点におけるアーカイブ。. https://web.archive.org/web/20131026185358/http://archive.org/stream/byte-magazine-1982-04/1982_04_BYTE_07-04_Human_Factors_Engineering 2013年10月19日閲覧。 
  27. ^ “The CP/M Mode”. The Official Book for the Commodore 128 Personal Computer. Howard W. Sams & Co.英語版. (1985). p. 98. ISBN 0-672-22456-9. https://archive.org/details/The_Official_Book_for_the_Commodore_128/page/n109 
  28. ^ “Now: A Complete CP/M Pascal for Only $29.95!”. BYTE: 11. (December 1982). オリジナルの2016-07-21時点におけるアーカイブ。. https://web.archive.org/web/20160721132531/http://archive.org/stream/byte-magazine-1982-12/1982_12_BYTE_07-12_Game_Plan_1982 2016年10月1日閲覧。. 
  29. ^ “Ellis Computing”. BYTE: 69. (December 1983). https://archive.org/stream/byte-magazine-1983-12/1983_12_BYTE_08-12_Easy_Software#page/n69/mode/2up. 
  30. ^ “The Kaypro II”. BYTE: pp. 212. (September 1983). オリジナルの2014年3月2日時点におけるアーカイブ。. https://web.archive.org/web/20140302195830/http://archive.org/stream/byte-magazine-1983-09/1983_09_BYTE_08-09_Portable_Computers_in_Depth#page/n221/mode/2up 2013年10月20日閲覧。 
  31. ^ “3”. The programmer's CP/M handbook. Berkeley, CA: Osborne/McGraw-Hill. (1983). ISBN 0-88134-103-7 
  32. ^ Old-computers.com: The Museum”. 2017年10月6日閲覧。
  33. ^ Build the SB-180”. CMP Media. p. 100 (September 1985). 2019年6月18日閲覧。
  34. ^ “CP/M Plus, a third, updated version of CP/M”. InfoWorld英語版 5 (33): 49ff. (1983-08-15). ISSN 0199-6649. 
  35. ^ Radio Shack Computer Catalog RSC-12 page 28”. www.radioshackcomputercatalogs.com. Tandy/Radio Shack. 2016年10月13日時点のオリジナルよりアーカイブ2016年7月6日閲覧。
  36. ^ Digital Research Source Code”. 2016年2月5日時点のオリジナルよりアーカイブ2019年12月22日閲覧。
  37. ^ The complete history of the IBM PC, part two: The DOS empire strikes”. Ars Technica. p. 3 (July 31, 2017). September 8, 2019閲覧。
  38. ^ a b “Running 8-bit software on dual-processor computers”. Electronic Design英語版: 157. (1982-09-16). オリジナルの2017-08-19時点におけるアーカイブ。. https://web.archive.org/web/20170819183737/http://archive.computerhistory.org/resources/access/text/2016/12/102762506-05-01-acc.pdf 2017年8月19日閲覧。. 
  39. ^ “A DEC on Every Desk?”. BYTE: pp. 104–106. (June 1983). オリジナルの2015年1月2日時点におけるアーカイブ。. https://web.archive.org/web/20150102123537/http://archive.org/stream/byte-magazine-1983-06/1983_06_BYTE_08-06_16-Bit_Designs#page/n105/mode/2up 2015年2月5日閲覧。 
  40. ^ M 68 / M 68 MX”. 2016年3月6日時点のオリジナルよりアーカイブ。2016年3月6日閲覧。
  41. ^ Digital Research (1981): XLT86 - 8080 to 8086 Assembly Language Translator - User's Guide Archived 2016-11-18 at the Wayback Machine. Digital Research Inc, Pacific Grove
  42. ^ “New Machines, Networks, and Sundry Software”. BYTE: pp. 46. (March 1984). オリジナルの2015年2月2日時点におけるアーカイブ。. https://web.archive.org/web/20150202232111/http://archive.org/stream/byte-magazine-1984-03/1984_03_BYTE_09-03_Simulation#page/n47/mode/2up 2013年10月22日閲覧。 
  43. ^ Walter Isaacson, The Innovators: How a Group of Inventors, Hackers, Geniuses, and Geeks Created the Digital Revolution英語版 (2014, Simon & Schuster, ISBN 978-1476708690), page 358
  44. ^ Mary Bellis, Inventors of the Modern Computer Series, The History of the MS-DOS Operating Systems, Microsoft, Tim Paterson, and Gary Kildall (accessed Sept 9, 2010)
  45. ^ “Baby Blue”. PC: pp. 49. (February 1982). オリジナルの2015年3月18日時点におけるアーカイブ。. https://web.archive.org/web/20150318054554/https://books.google.com/books?id=w_OhaFDePS4C&lpg=RA2-PA50&ots=cWqvhfFKjb&pg=RA2-PA49 2015年1月4日閲覧。 
  46. ^ Scott Mace, CP/M Eludes Home Market, InfoWorld, 1984-06-11 page 46
  47. ^ Nancy Groth, Kaypro is retreating on CP/M, InfoWorld英語版 1986-02-10, page 6
  48. ^ ZCPR - oldcomputers.ddns.org”. 2019年12月22日閲覧。
  49. ^ The Wonderful World of ZCPR3” (November 30, 1987). 2019年12月22日閲覧。
  50. ^ a b Betriebssysteme” (ドイツ語). www.robotrontechnik.de (2019年1月3日). 2019年4月27日時点のオリジナルよりアーカイブ2019年4月27日閲覧。
  51. ^ a b c Betriebssystem SCP” (ドイツ語). www.robotrontechnik.de (2019年1月3日). 2019年4月27日時点のオリジナルよりアーカイブ2019年4月27日閲覧。
  52. ^ 伏見 1982, p. 120.
  53. ^ Bob Zeidman (2016-10-18). “Source Code Comparison of DOS and CP/M” (英語). Journal of Computer and Communications (Scientific Research Publishing) 4 (No.12). doi:10.4236/jcc.2016.412001. https://www.scirp.org/journal/paperinformation.aspx?paperid=71259 2021年10月3日閲覧。. 
  54. ^ 株式会社技術少年出版 会社概要

参考文献

  • 伏見良隆『パソコンを使いこなすためのわかるCP/M入門』誠文堂新光社、1982年。ISBN 4-416-18212-0 

関連項目

外部リンク