第35回
ビットの化石
長い間,筆者の研究室の棚には1枚の8インチ・フロッピーディスクが置かれていた.その8インチFDの物理フォーマットはいわゆる片面単密度なので最大240Kバイトしか入らない.それにはタイプで打ったラベルが貼ってあり,CP/M 1.4と書かれてある.そのエンベロープの中には登録用の返信用はがきがはさんであるが,そのあて先はパシフィックグローブのデジタルリサーチ本社になっている.
これは1978年当時のCP/M 1.4版のマスタディスクなのである.しかも,デジタルリサーチ社から直接購入したもので,個人的に日本に持ち込んだ正真正銘のマスタディスクという逸品で,今なら「お宝鑑定団」で値がついても不思議ではない(?)代物である.今年は2003年だから,1978年から数えると25年目という切りのよい年でもあるし,このディスクの中を読み取ってディジタル保存してみようと,ふと思い立った.
今ならまだ8インチFDのデータを読み取るFDドライブも残っていると思うが,いつまでもあるという保障はないだろう.そこで,歴史を残すという意味でも,今のうちに中のデータをビットとして再生しておくことは意味があるはずである.
ビットの発掘
さて,ディスクからデータを読もうと思っても,残念ながら8インチFDドライブは筆者の研究室にはない.もちろんCP/Mが動くマシンもない.幸い,各種メディアを新しいフォーマットに変換してくれるサービスがあるということを聞き,物理イメージのバックアップとCP/MファイルのWindowsファイルへの変換を発注してみた.何週間かたってビットデータが納品されたのだが,そのファイルを見てびっくりする発見があった.
筆者は,このFDの中はCP/M 1.4のマスタディスクのオリジナルイメージだけが入っていると思っていたのだが,中にはPIPやSTATといったトランジェントコマンドだけではなく,1980年当時のマイクロソフト社のCP/M向け開発環境一式が入っていた.マクロアセンブラ M80やフォートランコンパイラ F80,さらにはマイクロソフトの出世作であるMBASIC5.0版や筆者が若い頃にお世話になったBASICコンパイラ BASCOMが,おそらく動くと思われる状態で残っていたのである.
CP/M時代のプログラムといえば関連ファイルは何もなく,.COMのファイル1個あれば動くものだったのである.今では,大切なマスタディスクをワークディスクのように上書きするとは非常識だと思うのだが,この非常識さが幸いして歴史的なビットデータがまとまって筆者の手元に残ることになった.世の中,何が幸いするかわからない.
エンジニア的な視点として興味深いのは,各プログラムのサイズである.このディスクは片面単密度で,全体で240Kバイトしか入らないのだが,その中にCP/M 1.4本体に始まってM80,L80,F80,MBASIC,OBASIC,BASCOMまですべて入ってしまうのが昔のプログラムだったのである.
ビットの再生
CP/M時代の「ビットの化石」をWindowsファイルに変換するという発掘作業が終わったので,次はその中身を調べるという作業に入った.まず手始めに,.COMファイルの中に埋め込まれているテキスト部分を抜き出して,そのバイナリファイルが作成された日付けや開発時代の痕跡を捜す.そのためには難しいことをする必要はなく,単にテキストエディタでバイナリファイルを開くだけで,中にあるASCII文字だけがそれらしく見えてくるはずである.
筆者が期待したのは,当時(1980年頃)ならMBASICの開発ではビル・ゲイツ氏もコンソールに向かってプログラムを書いていたはずだから,その名前がどこかに残っているのではないかということだったが,出てくるのは単なる日付とバージョン情報,それと数少ないエラーメッセージ程度だった.FD1枚の容量が240Kバイトという時代なので,無駄なデータは少しでも削るというのがその頃の常識だったのかもしれない.
次に行ったのは,このバイナリデータを実際に動かすことである.このディスクはマスタディスクなので,8080のエミュレータに簡単なBIOSをつけると自らブートできるのだが,ネット上にはCP/Mエミュレータというのもあるらしいので探してみた.そこでまず,簡単なほうからやってみた.CP/Mエミュレータをダウンロードしてコマンド引き数にMBASIC.COMをつけて立ち上げると,25年前のMBASICのプロンプトが再現されてしまった.当たり前だが,ビットの化石は劣化しない.
やまもと・つよし
北海道大学大学院工学研究科電子情報工学専攻
計算機情報通信工学講座 超集積計算システム工学分野
|