PC-8001とPasocomMini PC-8001 PC-8001は1981年に、筆者が高校に入学してすぐに、それまで貯めてきたお小遣いすべてをつぎ込んで購入したマシン。今年(2019年)が40周年であるとおり、PC-8001自体の発売は1979年だったが、1981年4月に内部のファームウェアとも言えるBASICインタプリタ、N-BASICのバージョンが1.0から1.1になったタイミングだ。 消費税がなかったその当時、本体価格は168,000円だったが、それにPC-8048という89,000円のディスプレイとセットで18万円程度で購入。ただ、1.1への切り替えで生産に時間がかかっていたようで、製品が届くまで1カ月程度を要し、ゴールデンウィーク明けに入手したのを今も覚えている。今回のPasocomMiniに搭載されているのも、その時と同じN-BASIC Ver1.1となっている。 高校時代に買ったPC-8001は、とっくの昔に廃棄してしまったのだが、つい数週間前、ふと気になって中古市場で入手したばかりだった。運よく、完動品で、ディスプレイに接続して動くことを確認したところだったが、そこに小さいヤツがやってきたわけだ。 見た目はそっくりだけど、大きさ的には4分の1のサイズであり、当然キーボードもスイッチ類もすべてダミー。上のカバーを取り外すと、なかに小さなRaspberry Piの基板が入っているだけ。PC-8001の中身と見比べてみると、その差は歴然。ちなみに、このいっぱい並んだICのなかで「NEC D780C-1」というチップがザイログのZ-80コンパチで作られたNECのCPUだ。40年の技術進化はすごいんだな、と改めて感じる次第だ。 Raspberry Pi Zero WHiにはMicro USBが2つ、Mini HDMIが1つ、そしてmicroSDスロットが1つ用意されている。microSDスロットに付属のmicroSDカードを入れるとともに、Micro USB端子の片方に電源供給し、もう片方に一般のPC用のキーボードを接続、Mini HDMIにディスプレイを接続するとPC-8001を起動させることができる。 最初、Micro USB端子に接続できるキーボードなんてもってないぞ……と焦ったが、スマートフォンに周辺機器を接続するために使っていたOTGケーブルを介すことで、ワイヤレスキーボードのUSBレシーバとうまく接続することができた。 ちなみに付属のmicroSDカードにはPC-8001のエミュレータが入っており、このバックアップをとることもできるし、PasocomMiniのサイトからイメージファイルをダウンロードして使うことも可能。ただし、特殊なプロテクトが仕掛けられているので、市販のRaspberry PiにこのmicroSDカードを挿しても動作はしないようだ。

PasocomMini PC-8001に電源投入 電源を入れると、ローダーがソフトウェアの読み込みをはじめ、HAL Laboratoryのコピーライト表示がされた後、昔ながらのPC-8001の画面が現れる。オリジナルのPC-8001の解像度的には640×200ドット(正確には8×8ドットで構成される文字を最大で80×25で表示できるという仕様で、グラフィック表示は160×100しかできない)であり、縦横比率が現在のディスプレイとは違うわけだが、Raspberry Piからは1,280×720で出力されるとともに、その中央部に640×200の画面が展開される格好だ。 【お詫びと訂正】初出時に「640×400ドット」という表記がありましたが、正しくは640×200ドットです。お詫びして訂正させていただきます。 PC-8001など、当時の8bitマイコンをご存知の方ならおわかりのとおり、そのころのほとんどのマシンにはOSという概念がなく、電源を入れると、すぐにBASIC画面が起動するかたちだった。 現在のように、ソフトウェアが簡単に入手できる時代ではなかったため、基本的にはユーザーがBASICのプログラムを入力して動かす。だから所有者は、自然とプログラミングが身につくというか、プログラミングができないと、まともに使うことができなかったのだ。 もっとも、その作成したプログラムをユーザー同士が共有したり、広めるためのメディアとして、コンピュータ雑誌が存在した。当時はアスキー、I/O、マイコン、RAMという4誌だったが、それぞれの雑誌にはプログラムが掲載されており、それをみんな1文字も間違えないよう一所懸命に入力して、動作させるという、なんともローテクな時代だったのだ。 そして入力したプログラムは、電源を落とすと消えてしまうため、保存する必要があるが、USBメモリも、HDDも、フロッピーディスクもない時代(実際にはPC-8001用のFDDは存在していたが、高校生ユーザーには高価すぎて手の届くものではなかった)。そこで、このプログラムを600ボー(600bps)のオーディオ信号に変換した上でカセットテープレコーダに保存したのだ。反対に、プログラムを呼び戻すさいは、カセットテープレコーダを再生して読み込ませるという仕組み。その辺が、PasocomMiniでどうなっているのかも気になっていたところだ。

懐かしのBASICでプログラムを走らせる さっそく簡単にBASICでプログラムを入力し、RUNコマンドで実行させてみると、普通に動く。 久しぶりに触るBASICは懐かしい感覚であり、古い記憶がフラッシュバックしてくる。とはいえPC-9801時代のMS-DOSの記憶とやや混同しているところもあり、BASICのプログラムなどでグチャグチャになった画面をクリアしようと「CLS」と入力すると、「Syntax Error」と表示され、ピーとビープ音が鳴ってしまう。 どうするんだっけ……と、いろいろ試しているうちに思い出した。「PRINT CHR$(12)」とするのだ。PC-8001は漢字などは扱えず8×8ドットで構成される半角文字、全256文字が扱え(コード番号0～255)、そのうち0～31までがコントロールコードに割り振られていて12番が画面を消すコードだったのだ。 もっとも、そんな大昔の記憶だけを頼りにこのPasocomMiniを使うのは無理だし、はじめてのユーザーにとっては完全に不可能。そこで、PasocomMini独自機能としてヘルプが用意されている。ファンクションキーのF11を押すと、画面右側にオーバーレイされるかたちでQuick Comand Referenceというヘルプ画面が現れ、全18ページで簡単なコマンド紹介が出てくる。 これを頼りにしていけば、なんとか使えそうになっているのだ。ちなみに前述の256文字のキャラクタコード表も、このヘルプ内に表示されるようになっている。

PasocomMini PC-8001からmicroSDカードにファイルを保存可能 前述のとおり、オリジナルのPC-8001ではカセットテープレコーダを使ってプログラムのセーブ、ロードができるようになっていた。BASICコマンドとしてはCSAVE、CLOADを使い、たとえば「CSAVE "PC-WATCH"」とすれば、保存ができ、「CLOAD "PC-WATCH"」とすると読み込んで再現することができるようになっていた。当然、ファイル容量によって読み込み、書き出し時間に差が出るし、カセットテープレコーダとテープメディアの相性によってはロードエラーが起きるようなこともあった。 そこで、このPasocomMiniにおいては、カセットテープレコーダを仮想的に実現させ、オーディオデータとしてではなく、バイナリファイルとしてmicroSDに保存する仕組みを実装している。 具体的には、先ほどのリセットと同様にF9を押した画面でMEDIAタブ画面で、保存するファイルをあらかじめ作成。 その後、BASIC画面に戻ってCSAVEを実行することで、ここに保存することができるのだ。 その後MEDIA画面を見ると、そのファイル名の右側に3桁の数字が表示されており、ファイルが大きくなるほど大きな数字になる。 これがなにかの説明はされていなかったが、先日の記者発表会で、開発を担当されたハル研究所の開発担当ディレクターの郡司照幸氏に聞いたところ、カセットテープレコーダのカウンタを意味しているのだとか。本当に細かなところまでマニアックに作り込んでいるのには感激する。このファイルベースでのCSAVE、CLOADなので、カセットテープへの読み書きと異なり、圧倒的に高速だし、当然ながら安定していて、エラーなども起こらないのはうれしいところだ。 じつは、ここで読み書きするファイル形式はCMTファイルというものなのだが、PasocomMini独自というわけではない。これまでコアな愛好家が作り上げてきたPC-8001をエミュレーションするWindows上のソフトなどで使われていたファイル形式だ。 実際、ネットを検索してみると、CMTファイルが公開されていたりもするのだが、これを入手すれば読み込んで使えるようになっている。この際は一度PasocomMiniからmicroSDを取り外した上で、microSDカード内のPCMというフォルダにコピーすればいいのだ。また、読み書きできるのはBASICのプログラムだけでなく、マシン語のプログラムも対象となっているので、昔のPC-8001と比較して圧倒的に扱いやすくなっている。

カセットテープからファイルを読み出す機能も実装 このカセットテープとの関係で、もう1つおもしろいのはPasocomMiniには、当時のカセットテープが残っていれば、それを読み込む機能も備えているという点。これはあらかじめカセットテープを再生した音をデジタル的に録音したWAVファイルを用意しておく必要がある。 簡単に説明しておくと、可能であれば当時使っていたカセットテープレコーダを使用して再生するのがベストだが、なければ手持ちのポータブルプレーヤーでもOK。 そのLINE出力をPCのオーディオ入力に接続して録音するのだ。もちろん最近のUSB端子搭載のカセットプレーヤーで、USB経由での取り込みでもかまわない。ただし、DOLBY NRなどノイズリダクションを搭載のプレーヤーの場合は、その機能をオフに設定すること。そして、レベルオーバーにならない範囲で、なるべく大きなレベルで録音するのが重要だ。 録音するソフトはなんでもかまわないが、ファイルフォーマットとして44.1kHz/8bit/モノラルで保存できるものを使用する。 このようにして保存したWAVをCONVERTフォルダにコピーしておく。その後、PasocomMini側において、CONVタブ画面で変換を行なうと、CMTファイルに変換され、読み込むことができるのだ。 試しに手元にあったカセットテープをこの方法で変換し、読み込んでみたところ完全に再現できたのは、ちょっと感動ものだった。ちなみに、ここで試してみたのは、当時、工学舎の雑誌I/Oに掲載されていた、「スクランブル」というマシン語でのプログラム。ドラクエの開発者でもある現スパイク・チュンソフト会長の中村光一氏が、学生時代に開発し、雑誌で公開したプログラムだ。 このようにマシン語レベルのプログラムが完璧に再現できるというのが、PasocomMini PC-8001のすごいところ。発表会の場で、開発したハル研究所の取締役所長・三津原敏氏に伺ったところ、PC-8001のハードウェア、そしてその内部にあるCPU、Z-80そのものをエミュレーションしていて、その上にホンモノのPC-8001のファームウェアをそのまま搭載しているので、マシン語レベルでのプログラムも含め、実機そのままに動作するのだと話していた。