最近、PC-8001 で microSDカードから .CMT形式のファイルを読み込むボードを手に入れました。
詳しくは、下記サイトをご確認ください。
GitHub – yanataka60/PC-8001_SD: PC-8001でSD-CARDからCMT形式ファイルのロード、セーブ機能を実現するものです。
さっそく手持ちの PC-8001 で実行しようと思ったら、N-BASIC の バージョンが 1.0 (初期の複数バグありバージョン) であったため、拡張ROM の検出ができないというPC-8001側の致命的なバグにより、そのまま実行できないことが判明。 (回避方法もありますが)
それじゃ、ROMのバージョンを 1.1 にということで、秋葉原のラジ館 Bit-INNに買いに行こう!
と思ったけど、それは45年以上前の話で、2026年現在では自分でなんとかするしかありません。
まずは、PC-8001の御開帳ということで、本体裏の 四つ角のネジを外してオープン。

写真の基板の中央より左側に、縦に3つ PROM (2364)が並んでいますが、これが N-BASIC のROMです。

2364 は、その型番からわかるように、64KBit (8KB) のPROMで、3つで 24KB。その下の拡張ROMソケットに青いソケットに刺さった 2516がありますが、これは何でしょうね? と思って中身を軽く解析したら当時のドットインパクトプリンタのコントロール用の何かが書いてあるようでした。不要なので外しちゃいます。
EPROM 2764 に換装する
今回使う EPROM は、富士通の MBM2764-30 (30と25がありますがこれは、応答速度で 300msと 250ms) です。
ヤフオクでまとめて購入したので、消費しないとね。


窓から見える細い配線がきれいですね。

EPROMライター GQ-4×4 でチェックしたらすべて何か書き込み済みだったので、紫外線で消去する ERASER で一気に消去。

30年ぶりくらいの倉庫から探し出してきました。使えるかな?

両サイドに EPROMを並べて差し込んで、蓋を閉めてスイッチオン!

30分程度で、消去完了。
変換基板をつくる
2364 と 2764 はピン数が違いますが、アドレス バスとデータ バスの位置はほとんど一緒 (A12以外)なので、回路図はそんなに難しくありません。

上記の図では、ジャンパ線だけ書いてあります。その他は同じ位置でブリッジ ハンダです。
とりあえず、1つ分だけ作成して、N-BASICの 1番目だけテストで換装してみる。

3つの ROMの間は、2ピン分しか空いていないので、かなりコンパクトにぴっちり作成しないと干渉しちゃいますね。
もしくは、1枚の基板にすべて乗せてという手もありますが、ハンダ付けが結構難しい。これはちょっと悩みどころ。
電源投入してテスト
1つのROMだけ換装して、ちゃんと機能するかテスト。わかりやすいように (C) を (@) に書き換えてEPROMに書き込みました。


無事うまくいきましたね。
あとは、3つ分の換装でOKですね。
microSDからマシン語ゲームをロード
最初に紹介した、microSDから .cmtファイルを読み込む基板を取り付けて、当時衝撃的だったラリーXの読み込みテストをしてみました。無事に動きました。


これで、ようやく PC-8001の快適な環境が出来上がりました。
PC-8001のマシン語開発について
今は 2026年です。21世紀に入ってから四半世紀が立ってしまった現在、正直なところ実機でプログラム開発はしんどすぎるので、私は、秀丸でソースコードを書いて、AILZ80ASM でコンパイルして、DumpListEditor で .cmt ファイルを作成して、XM8 というエミュレータで動作テストという手順でクロス開発しています。なかなか快適です。
また、画面の設計も方眼紙ではきついので、IORI を利用させていただいております。

あとは、PC-8001でグラフィカルなタイトル画面を作成するときに、凝ったものを描画するのは大変なので、Photo Shop や Illustrator で作成した画像ファイルを最終的には Photo Shop で8色の GIFファイルにします。
これをDelphi で自作したツールで、読み込んで 160×100 (PC8001のグラフィックス解像度) の16進数データに変換して、マシン語データとして組み込みます。

実際 PC8001 で画面いっぱいのグラフィクスを描くとなると、テキスト画面で 40×25の 1000byteとアトリビュートエリア (色付けなどの装飾データ) 1,000byte の 合計2,000byte をデータとして持たなければならないので、フル増設 32KBしたPC-8001でもフリーエリアは最大で27KB前後しかありませんので、ゲーム本体をかなりコンパクトにつくらなければなりません。
この制約の中での開発はなかなか痺れます。



