先日復活に失敗したポケコンFX-702Pの修理に再チャレンジした。このポケコンはマイコンブーム初期の1982年に兄が購入したもので、創刊後間もないベーマガのプログラムを打ち込んでよく遊ばせてもらった。一番印象に残っているのが1982年7月号の「ATTACK INVADER」というゲーム。タイトルからはシューティングゲームを思わせるが、グラフィック画面を持たないFX-702Pでまともにシューティングができるはずもなく、実際は「もぐら叩き」風のゲームだった。画面に表示される文字列のパターンに応じてキーを叩くだけであるが、これでも当時は面白いと思ったものだ。
このFX-702P、1983年に兄が海外に留学した際に、暇つぶしにいいだろうと気を利かせて航空便で送ってあげたのだが、それが災いしいてか壊れてしまった。フリーエリア1680ステップ(FX-702Pはメモリの単位がbitやByteではなく「ステップ」)のうち、およそ半分を超えてプログラムを打ち込むと、それまで打ち込んだプログラムが破壊され、メモリーの内容が滅茶苦茶になるという症状だった。輸送時の衝撃で壊れてしまったのだと思われ、持ち主の兄からは「頼んでもいないのに余計なことをするからだ」と怒られてしまった。それ以降は専ら自分が暇つぶしのBASICプログラムを自作するのに使っていたが、うっかり禁断の容量を越えてプログラムを打ち込んでしまい、労力を無駄にすることもしばしばだった。
その後JR-100やMSXに移行したことで使わなくなり、しばらく実家の物置に保管してあったものを一昨年発掘してきた。物理的な衝撃で壊れたのであれば、半田割れが原因ではないかと考え、すべてのフラットパッケージのチップの半田付けをやり直したり、電解コンデンサ、タンタルコンデンサの張替えも行ったのだが、直らなかった。
メイン基板を調べてみたが、独立したCPUやROMが見当たらなかった。これらは4つのLCDコントローラHD4319A02/03に含まれているようだ。基板は両面スルーホールだが、設計が未熟なのか一部のピンがフレキケーブルで結線されている。当然これらの断線も疑ったが、問題は見つからなかった。
こうなるとメモリーチップの不良が疑わしくなってくる。サブ基板に4個載っているNECのμPD444Gという52pのQFPの石がSRAMのようだ。奇妙なことに上下の合計26pだけが基板に半田付けされており、左右の26pは基板にパターンが走っているにも関わらず半田付けされていない。FX-702Pのメモリ空間は、初期状態でフリーエリア1680ステップ+変数領域208ステップなので合計1888ステップ。メモリチップは同じものが4つ使われているので1個につき472ステップの容量があると思われる(ワークエリアのことはこの際考えない)。データシートを探したが、あまりに古いチップのためか発見できなかった。類似型番のμPD444無印のものは発見でき、普通の1024x4bitのSRAMであることは分かったが、ピンの数は違う。とりあえず適当なSRAMに張り替える方向で解析してみることにした。
通常のSRAMであれば、アドレス線、データ線が共通ラインとなっており、CPUが8bitならば、8本のデータ線が4本ずつペアのSRAMに振り分けられているので、ピンアサインはある程度推測が可能。他にSRAMには/CS,/OE,/WEの信号もあるが、数本程度であれば試行錯誤で解析することも可能だろう。ということで、μPD444Gのパターンを追いかけてみたのだが、まったく予想とは異っていた。どうもFX-702PのCPUは4bitであり、アドレス線もデータ線もすべての石で共通となっているようだ。その上謎のID設定ピンのようなものもあり、普通のSRAMとは異なる印象だった。ネットで検索してみたところ、同じカシオのPB-100系ポケコンでは、「同期SRAM」というのを使っており、アクセス方法も通常のSRAMとは異なり、置き換えは不可能ということが分かった(参考リンク:Vintage programmable calculators)。おそらくFX-702Pも同期SRAMなのだろう。
こうなったらSRAMを部品取り機から移植するしか道はない。幸いオークションで液晶が割れていると思われるジャンク品を500円で落札できた。動作確認してみたところ、液晶がお漏らしをしているものの、表示は可能で一見動作も問題ない。しかし、プログラムを入力したところ、残り800ステップを切ったあたりでデータが壊れてしまった。あろうことか元々持ってた機体と同じ故障モードではないか!
しかし、よくよく検証すると2台の故障は少し症状が異なることが分かった。元々持っていた方(1号機)は、プログラムが壊れる際、パスワードロックがかかってLIST命令を受け付けなくなる。以後は他のP1~P9のプログラムエリアに入力した場合もその都度パスワードロックがかかる。ジャンク機(2号機)のほうは、メモリ化けが発生するもののパスワードロックはかからない。この違いを利用して原因の切り分けを行うことにした。
FX-702Pでは、メイン基板とSRAM基板は別になっている。どちらに原因があるのか明らかにしておくために基板をスワップしてみたところ、SRAM基板に依存した症状が再現された。よって故障の原因はSRAM基板側にあると確定。前半800余ステップは問題なく動作するので後半800ステップを記憶しているSRAMが壊れていると思われた。SRAMには基板にシルク印刷でABCDと名前が振ってある。おそらく下位アドレスから順番にABCDと名づけるだろうと考え、死んでいるSRAMは1号機、2号機ともにCだろうと推測した。逆に上位アドレスからABCDだとするとBが死んでいる可能性も考えられたため、2号機のBを1号機のCへ移植することにした。予想が外れても、1号機Cを2号機Bに移植することで簡単に再検証が可能だからだ。
SRAMの取り外しにはパターンを痛めないようにサンハヤトの表面装部品取り外しキット(低融点半田)を使った。この取り外しキットは定価4,967円と高額なのが難点だが、使い終わった半田を画像のような極細ピッチのICの足に吸い取って保存しておけば10回くらいはリサイクルが可能だ。使い回して普通の半田が混ざると徐々に融点が上がってやりにくくなるのでそうなったら新しい半田に替えれば良い。ちなみに鉄道模型のホワイトメタル接合用に低融点半田が出回っており、これもIC取り外しに使えるという話を聴いたことがある。こっちのほうが安価なのでいずれ試してみたいと思う。
メモリチップ移植の結果は一発でビンゴ!すべてのメモリを使い切るまでプログラムを入力してもデータ化けが発生しなくなった。
ちなみにAとDのみSRAMが載った状態で2号機を動かしたところ、起動直後のフリーエリア表示は1680ステップのままだったが、プログラムを400ステップ余り入力した時点でおかしくなった。次にAとBのみにSRAMを載せて検証してみたところ、800ステップ余りを入力したあたりでおかしくなった(パスワードロックもかかった)。やはりメモリチップはABCDの順で埋まるようだ。
勢いで、もう一台FX-702Pのジャンク(3号機)を入手してしまったのだが、こちらは筐体が黄ばんで傷ついていたものの動作は完全だった。比較的綺麗だった2号機のガワに3号機の中身を移植して、最終的には完全動作の美品を2台でっち上げることに成功した。SRAMを剥ぎ取った2号機は使い物にならないが、まだ2枚のSRAMチップは生きているので、今後の部品取りとして保管しておこう。
結局故障の原因は2台ともメモリ不良だったわけだが、物理的な衝撃でこのような壊れ方をするとは考えにくい。おそらくメモリチップの品質にバラつきがあり、一部のメモリに時限爆弾が仕掛けられていたようなものだったのだろう。その炸裂のタイミングがたまたま海外に送付した時と重なっただけで。ということで26年来の濡れ衣を晴らすことができたので、事の顛末を兄に報告したところ、本人はまったく未練も無い様子で一言。「大切に使ってくれ」。