CE-150互換機の製作は失敗に終わる
- 2023/06/27 14:56
- カテゴリー:マニアックなおはなし, make:
PC-1500はなかなか個性的なマシンで,ビジネスで使うことを想定した本格的なマシンですから,当然カナの表示や入力,印刷も可能になっています。
しかし,標準ではダメというのがまず謎。そして別売りのオプションもROMとカセットと2つ用意されていることがなかなか興味深いです。
後者はカナテープと呼ばれていて,約2kBのマシン語を読み込むと,以後はカナが使えるようになるというものです。なんでカナにそんなにメモリがいるのかとか,そもそもROMに焼いておくべきだろうとか,今なら当然思うのですが,PC-1500ならではの事情があったのだと思います。
思うに,カナのビットマップデータだけではなく,プロッタプリンタのベクトルデータも持つ必要があり,それでデータ量が大きくなったのではないかと。そしてそのデータをROMに置くのは容量が足りず,ROMカートリッジかテープによる供給かを選ばざるを得なかったんじゃないかと思います。
さて,私のPC-1500はメモリがフル実装されています。そうなるとカナが使えるようになるといいなと思う訳で,しかしカナテープは入手困難ですし,そもそもカセットインターフェースを持っていません。ROMカートリッジはRAM増設の関係で使えなくなっています。
カナテープは某所にWAVファイルが落ちていたのでなんとかなったのですが,カセットインターフェースが最大の問題です。PC-1200シリーズのように簡単に自作出来ればいいんですが,PC-1500はそれが出来ないのです。
PC-1500は,60ピンの拡張スロットがCPUのバスそのものです。ここにオプションを取り付ける時に,同時にROMもぶら下げて,サポート用のソフトを一緒に供給する仕組みを持っています。
カセットインターフェースはプリンタのCE-150と同時に提供されるのですが,CE-150に内蔵されたROMがないと,CLOADやCSAVEといったカセット関係のコマンドが使えないのです。(ハードウェアは本体側のPIOが担っています)
ということで,壊れやすくて利用価値もそんなにないプリンタを避けてきた私も,ここへ来てもう一度CE-150を手に入れる必要が生じたのでした。
もう一度と書いたのは,かつてCE-150を手に入れたことがあったからです。この時はCE-150に入っていたPIOをあてにして入手したため,電池の液漏れで復活出来ないほどに壊れたCE-150はさっさと捨ててしまいましたが,まさかこんな形で必要になると思いませんでした。(ちなみに当時のCE-150には壊れたPC-1500もついてきたのですが,綺麗だったLCDが交換されたあと,修理して動くようになっていましたが,先日みると壊れていました。キーが入力出来なくなっていました・・・)
今回はプリンタがダメでもカセットインターフェースを目的にしているので,なんとしても修理したいと思って,とにかくジャンクを手に入れて見たのですが,これが想像を超える状態のひどさで,もうとにかく手の下しようがないという状態でした。
Ni-Cd電池の液漏れが強烈で,基板も無数にパターンが切れていますし,ICの足も真っ青に錆びています。一番厳しいのは基板と本体を繋ぐフレキで,これが腐食していたり,基板から剥がれたりしていて手の施しようもありません。
ちょっとだけ修理を試みましたが,とにかく破損箇所が多くて追いつかず,回路図を見ながら基板の修復を行う手間を考えたら,もういっそのこと作り直した方が早いいうことになっていて,基板からROMとPIOを移植してカセットインターフェースをどうやって作ろうかと思案している状態です。
ここのところレトロゲームやレトロPCの値段が上がっていて,気軽に楽しめるような感じではなくなってきました。CE-150はもともと生存率が低いですし,不人気だった時代が嘘のように値段も上がっていますので,悩ましいところです。
てなわけで,CE-150からROMとPIO,そして60品ピンコネクタを摘出し,カセットインターフェースの機能だけを持つ新しい基板を起こし,組み立ててみたのです。
実際に回路図を書いて基板を作って見ると分かるのですが,後悔されているCE-150の回路図というのが結構間違いが多く,信号名が違っていたり,誤字があったりと,これもまた一筋縄ではいきません。
加えて特殊なLSIにあわせたマクロ(フットプリント)も自分で作る必要があったりして大変ではありましたが,万能基板を使って手配栓をするよりはずっと楽だと思います。
今回はJLCPCBさんに発注しました。評判通り爆速で爆安。万能基板よりも安いくらいです。
ワクワクして組み立てて見ますが,全然動きません。それどころか暴走します。PIOが死んでいるかも知れないと生きているPIOに交換すると暴走することはなくなりましたが,やはりカセット関係の命令が有効になりません。
ROMのアドレスを読み出してみても正しい値が読み出せず,これはもうROMが死んでいるという結論になってしまいました。(もちん回路のミスで読めていない可能性もあるのですが,今ある資料と実際の波形から,最善を尽くした回路です)
ROMのイメージも実は入手出来たので,これをEPROMに焼いて試すことも考えたのですが,もうそこまでする気力もなく,あきらめました。もともとカナテープを読み込んで,かなが扱えるようになることが目的でしたからね・・・
そこでアプローチを変えます。
某所にて,PC-1500にシリアルポートを介してPCと通信を行う方法が紹介されていました。PC-1500側に短いローダとセーバをあらかじめ手で打ち込んでおく必要があるのですが,逸れさえ済んでしまえば高速でPCとの送受信が可能です。
問題は,このローダとセーバのアドレスが,カナテープとぶつかってしまうこと。ならよければいいじゃないかと考えたのですが,カナテープのバイナリが実はリロケータブルであることを知るのはずっと後で,この時は別のアドレスにロードしてから転送する方法を考えていました。
入手が難しい60ピンコネクタは手元にありますし,今や失敗作となった基板も流用出来そうです。この基板をちょっと改造して,USB-シリアル変換基板からの配線と取り付けて,PC-1500とPCの間の通信が出来るようにしました。
結果は上々で,カセットなんかもう使えないと思うほど快適です。
ただ,問題はこのローダ/セーバがどういう動きをしているのかわっぱりわからないことです。そこでハンド逆アセンブルし,初めてのLH5801のニーモニックを読んでみました。
やってることは割に単純で,BASICのテキストエリアのRAMを,そのままバイナリとして転送しているだけのようです。ならば,スタートアドレスを書き換えてやれば,任意のアドレスにバイナリをロード出来そうです。
ということで,試行錯誤の末,カナテープのロードの成功しました。
詳しい手順は次回。