初めて触ったコンピュータ その2 - データレコーダのはなし

記憶をダンプしておく」シリーズ第2号。その1は、こちらからどうぞ。

さて、PC-6001 は最近の人から見ると信じられないような低スペックでだったわけだが、おそらく最も驚かれるのがデータの記録方法であろう。PC-6001の発売された1981年、ハードディスクドライブ(HDD)は大学などのコンピュータセンターにしかなく、個人の持ち物ではなかった。フロッピーディスクドライブ(FDD)ですら高級品だったという。そこでデータの記録媒体として使われたのが、音楽用カセットテープレコーダだったのだ!

こう書いて、その衝撃が読者に十分に伝わるかどうか心配である。最近のコンピュータにはフロッピーディスクドライブは付いていないし、音楽用カセットテープを見たことがない若者もいるかもしれない。ツールバーの「保存」アイコンを指すのに「フロッピーのアイコン」と言って通じない人がいるという話を聞いて、驚いたことがある。それすら、もう数年前の話だ。2000年代なら、「データは原則 HDD に保存するものだが、時には FDD も使う」というのが常識だったし、カーステレオも安い車には CD が付いていなくてカセットだった。だから、「えっ、あの音楽カセットに保存してたの!?」と反響は抜群だったのだけれども、今となっては、FDD もカセットテープも同じように隔絶した過去の遺産という感じがして、かえって驚きが減ってしまったかもしれない。寂しいことである。

また感傷的になってしまった。ともかく、PC-6001 ではデータの保存に音楽用カセットを利用していたのである。プログラムを読み込むには、BASIC の LOAD 命令を用いる。だが、それだけでは何も始まらない。6001 に接続したカセットデッキの再生ボタンを自分で押さねばならない。そして、ライン入力の端子をウッカリ触ってノイズを加えたりすることがないように息を殺して待つのである。プログラムの大きさにもよるが、所要時間は数十秒から数分かかる。ナムナムと祈りながら待って、Ok と表示されればほっと一息、カセットデッキの停止ボタンを押す。Error と表示されれば、カセットデッキを手動で巻き戻して、もう一度読み込みを行うはめになる。

――まさかと思うけれど、カセットテープがシーケンシャル・アクセスしかできないってことは、説明しなくてもいいよね? HDD も CD も DVD も回転する円盤上にデータを記録するものだから、ヘッドの位置は円周方向と半径方向の二次元座標で指定可能であり、素早く目的の場所へ行って読み書きが可能である。一方カセットテープは一次元のテープにデータを記録するものだから、目的のデータを読みだすには延々とテープをたどっていかないといけない。特に PC-6001 の場合は普通の音楽用カセットレコーダを使っていたから、コンピュータ側からテープ走行をコントロールできない。巻き戻し・早送りによる頭出しや再生・停止操作は、人間が手作業で行なっていた。一本のテープ上に複数のデータを記録するときは十分な間隔を取ることが不可欠であり、手前のデータが予想外に大きくなって後続のデータを上書きしてしまわないように注意するのも人間の責任だった。少し高級なコンピュータには、コンピュータから制御されたテープドライブ(データレコーダ)が付属していて、再生・停止・頭出しの操作は自動化できたが、テープが一次元デバイスなのでシークに時間がかかるという弱点は全く変わらなかった(なお、PC-6001 にもオプションとしてデータレコーダが販売されており、家にはそれもあったのだが、調子が悪く、きちんと動作しなかった)。また、物理的なメディアのどこにデータが記録されているのかを管理するためにファイルシステムというものが必要となるわけだが、そのご利益は、こういう経験がないと実感できないのではないかと思う。

私が 6001 を触っていたのは1993年頃で、この頃には3.5インチフロッピーディスクが主流になっていたから、当時の私ですら、随分まどろっこしいなぁと感じたものである。ちなみに、2000年も間近になった頃、HDDのデータバックアップ用に、映像用のVHSビデオデッキを使うデバイスが登場したことがある。使い勝手の悪さから普及はしなかったが、時代は繰り返すものである。

音楽用デッキだから、プログラムの読み出し中には、プログラムが表現された「音」が聞こえてくる。ガーギャギャギャギャギャ……という音だ。FAXの音と言えば、今の人でも分かってくれるかな。あれよりはもっと低音だった気がするけれど。私にとって、デジタルデータがこういう「音」で表現されるというのは、当たり前のことである。音なんだから、電話で流してやれば、遠隔地とも通信できるだろう。ラジオみたいに電波で送ることもできるはずだ。実際、副音声でプログラムデータを配信する番組もあったという。デジタルデータを音に変換して受話器に送り込むための装置が、音響カプラ。直接電話線に接続できるようになったのがモデム。音なんだからCDに記録することもできて、そうすれば頭出しが容易になる、つまりランダムアクセスが可能になる。それがCD-ROMだ。全部、「あたりまえのこと」として理解できた。

もちろん、この理解は単純すぎる。いくら当時のコンピュータが低速だったといっても、メモリバスのクロックは 1MHz はあったはずで、音楽用テープの周波数帯域を超えていることは間違いない(CDのサンプリングレートが 44.1kHz である)。つまり、メモリから信号をそのまま出力してライン入力に繋いだとしても、何もカセットテープには記録されないのだ。そもそもメモリは 8bit のパラレルなバスだから、これを 0 と 1 のシリアル(直列)な列に変換してやらないといけない。その上で何らかの変調を加えて、音楽テープに記録できる可聴域の周波数に変換する必要がある。PC-6001 が何を採用していたかは知らないけれど、例えば Kansas City Standard という変調は、1.2kHz と 2.4kHz の FSK 変調で 300 bps だったという。それから、LOAD 命令を実行してからカセットテープの再生ボタンを押すまでには間があるから、信号の始まりを検出する仕組みが必要だ。カセットデッキのモータの回転精度なんていいかげんだから、周波数ドリフトも補償して、符号の同期を維持しないといけない。ーー実際に、どこまで実装されていたのかは分からないし、そのあたりがいい加減だから、しょっちゅうエラーを出していたのかもしれないけれど、デジタル信号を音として記録するという「概念の大雑把な理解」と「現実の実装」の間には大きな違いがあるのだ。それでも実体験としてあの「音」を聞いたことがあるからこそ、大学生になってからいろいろなことの背景にある仕組みや実装にも興味が出てきたのだろうし、楽しんでそれらを学ぶことができたのだと思っている。

ああいけない、また説教臭くなったうえ、小学校低学年から大学生まで10年も時が進んでしまった。話を戻そう。