見出し画像

8ビットパソコンOS CP/Mの仕組み①


はじめに

身の回りの資料を整理していると「CP/M ver. 2.2 Logic 作成S57.1.2」という、手書き資料がでてきました。私が鉛筆で書いたものです。
前の勤務先からIBMに転職した人のメモが添付されており、「・・・PC DOS開発に役立てていきたいと思います。・・・」と書いてあります。
メモ中のPC DOSとは、時期的にIBM PC(IBM 5150 1981発表)のPC DOS 1.xのことでしょう。
この資料は、家族にとっては、残されても困る、処分するしかないものに分類されるでしょう。しかし、誰か役に立てられる人はいるはずだ、埋もれさせるにはもったいないと思い、記事を書くことにしました。

CP/Mとは

1976年に発売された、8ビットコンピュータIntel8080用のOSです。
他にも対抗OSはあったようですが、当時はCP/Mの独壇場でした。
 CP/M 1.4  初期に普及した
 CP/M 2.2  広く普及した
 CP/M 3.0 (CP/M Plus) 16ビットへの移行が始まったため使われなかった

当時の8ビットパソコン

当時(1980年・1981年)のCP/M関連の製品は以下でした。

FM-7/8シリーズ FM-CP/M 画面キャプチャ集(by はせりん)

インテル系CPUを採用したパソコン
NEC PC-8801    1981年9月発表(228,000円) メモリ合計184KB
NEC PC-6001    1981年9月発表(89,800円) RAM16KB ROM16KB
シャープ MZ-80B   1981年4月発売(278,000円)メモリ48KB
東芝 パソピア      1982年1月発売(163,000円)メインRAMが64KB
富士通 FM-7      1982年11月発売(126,000円)メインメモリ64KB
松下 JR-100     1981年11月発売(54,800円)RAM16KB、ROM8KB

モトローラ系CPUを採用したパソコン
日立 Basic Master L3    1980年10月発売(298,000円)RAM32KB+ROM24KB
富士通 FM-8      1981年5月発売(218,000円)メモリ64KB

このような状況で、日本ではNEC、シャープなどインテル系CPU搭載のパソコンに移植されたCP/Mのパッケージが提供されました。
提供元はハードメーカーやサードパーティーからです。
特にシャープが提供するX1シリーズ用のCP/Mは完成度が高いものでした。

このような状況で16ビットCPUへの移行が始まったのです。
どのCPUを、どのOSを採用するかでメーカーの盛衰が決まりました。

CP/M ver. 2.2 Logic資料の内容

私がOSのコードを逆アセンブルし、ロジックを解読して書いたものです。
資料の先頭はメモリマップです。

8080やZ80はリセット後0番地から命令を実行し始めます。
CP/Mは0番地にBIOSやBDOSなどをメモリの下方に読み込んでいました。

実装するメモリが少ないと、ユーザプログラムのメモリが少なくなります。
快適に実行するには56KBほどが必要でした。

1981.1に私が書いた図

メモリ空間が0000~FFFFのわずか64KBを管理するOSです。

ユーザプログラムはCCPによってTPAにロードされます
この時、Aレジスタにパラメタ(ユーザコードとドライブ番号)が渡されます。

ユーザプログラムは終了するとCCPに戻る約束です。
今から考えればとんでもない仕様ですが、ユーザプログラムは、メモリが足りない時はCCP領域を使って構いませんでした。
高価なメモリーを活用するための方策です。
この場合はCCPに戻れないので0番地にJamp、CCPを再ロードするという仕組みです。

CP/Mの仕様

以下の仕様です。
 CPU         Intel8080 または互換品(Z80)
 メモリ        16KB ~ 64KB
 フロッピーディスク  8インチ
 シリアル端末     ディスプレイ+キーボード
 プリンタ       オプション
 ハードディスク    オプション

CP/Mのプログラム構成

下記のようなシステムプログラムから構成されていました。
 CCP (Console Command Processor)    シェル
 BDOS(Basic Disk Operating System)    OSの本体
 BIOS(Basic Input and Output System) 入出力を処理する

これらは、メモリの上位アドレスからBIOS、BDOS、CCPとOSが配置され、下位アドレスの256バイトをバッファに使っていました。
ユーザプログラムが配置されるのは0100番地(16進法)以降です。

本記事は、自作資料の1ページ分だけを抜き出して書いたものです。
多くの方が関心をお持ちなら、続編を書きたいと思います。

MS-DOSの誕生

CP/Mの時代は長くは続きませんでした。
マイクロコンピュータが16ビットへ移行したためです。
1981年に16ビットのIBM PCが発売され、MS DOSへと世代交代しました。

MS-DOSとOS市場を争ったのは主にCP/M-86とPC-DOSです。
CP/M-86
 デジタルリサーチ社が開発したCP/Mの16ビット版です。
 当初、8ビット時代のブランドイメージは健在でした。
 しかし、MS-DOSとの競争に敗れ、CP/Mの時代は終わりました。
富田さんの「パソコン創世記」を読めばこの敗戦の謎は解けるでしょう。
CP/M-86 - MS-DOSに遅れを取ったのは何故かにも解説があります。
PC DOS
 IBMがIBM PC用にマイクロソフト(MS)に依頼して、開発したOSです。
 MSとの共同開発であり、バージョン5まではMS-DOSと同一内容でした。
 その後はMS-DOSとの市場競争に敗れることになります。

IBMとの共同開発契約の終了後のビルゲーツの動きが成功し、16ビットコンピュータOSの市場でマイクロソフトが独り勝ちしました。
日本のパソコン市場でのMS-DOSが独り勝ちしたいきさつは、青空文庫創設者である富田倫生さんの「パソコン創世記」に詳しく書かれています。
『当時、MS副社長だった西和彦はMS-DOSをNECに無償提供、一挙にMS DOSとNEC PC9801は日本市場を取った・・・』は本書の一部です。
当時のビジネスの状況に関心がありましたらぜひお読みください。
高齢者でしたら、当時を思い出し、読んでいる間は若返ることでしょう。

終わりに

処分すべき資料から取り出して書いた記事です。
読者は誰か、誰の役に立つか、そもそも読む人がいるのかどうかわからないで書いている記事です。

語りかける相手が想定できていないのですから、ひな姫さんの🥚【たまご】講義内容に違反する記事です。
でも、捨てるにはもったいない、「身のまわりに受け取りたい人がいなくても、ネット上のどこかにいるかも知れない」との気持ちで書いています。

「役に立った」「参考になった」・・・なんて感想は期待していません。
「思い出したよ」「懐かしかった」「昔はそうだったのか」・・・など、何でもいいので、感想を知らせていただければ嬉しく思います。
もし、「・・・の役に立つかも」というコメントがあれば、ご希望の意図に沿って、続編を頑張って書くかもしれません。

本書はCP/M 2.2の解説です。
当時は、8ビットパソコン最高性能機、16ビットパソコン発売開始時期であり、8 → 16ビットコンピュータ移行時期の時代解説にもなりました。

実は、一昨日書いた「54年前の超高性能コンピュータプロジェクトのOSの構造の説明」が1日でビュー数が1000人以上の方が見て下さったのです。
どなたが見て下さっているのか知りたいのです。
古い資料を「見ていただきたい人に届き、捨てなくてよかった」と思えればうれしいのです。



【マガジン】IT技術
AIは年寄りに若者の気持ちを教えるツールになれる?
去年前半の生成AIは嘘つきだった、去年後半の生成AIはバカだった、今年の生成AIにあなたは何を期待しますか?
トップの座を脅かすとこのような試練が訪れる(前編)
PhotoSwiper V5を使っておしゃれな写真集ウェブページを簡単に作成する
Blazor.BrowserExtension.Templateでブラウザ拡張機能を作る
6年前に新品10万円台だったパソコンを1万円台中古パソコンに買い替える
高齢者、Excelでシートの目次を作って情報をすっきり管理
クラウドを利用しよう、パソコンとスマホでデータ共用・・・
54年前の超高性能コンピュータプロジェクトで開発したOS・・・
初めてのパソコンOS CP/Mの仕組み①(本記事)


よろしければサポートお願いします! いただいたサポートは全て『「思い出の場所」の記事とGoogle地図を関連付けるWeb地図アプリ』のLancersでのプログラミングの外注に使わせていただきます。 よろしくお願いします。