さて、前回のアップから随分間が開いてしまいましたf(^^;

別に何もしてなかったわけではなく、PC-8801FHに拡張メモリを追加するために試行錯誤をしてました。

今日はその顛末を書くわけですが、その前に。

○PC-8801FHブラック!!
FHブラック

手に入れました、FHのブラックモデルです。
学生時代にFHを買ったとき、このブラックモデルが欲しかったのですが、お店で取り扱っていませんでした。やむなくホワイトモデルにしたわけですが、先日オクで出ていたのをゲットしました。
これでFHの予備環境ができたので、FHの拡張メモリ増設の試行錯誤ができたわけです。

○FHブラックの二次電池周辺
FHブラック二次電池周辺

例によって、何をおいても真っ先にするべきなのは二次電池の撤去です。案の定液漏れして周辺のパターンを侵し始めていますが、幸いまだ動いていますので、とっとと撤去します。

○FHブラックの二次電池撤去後
FHブラック二次電池撤去後

二次電池のマイナス極部分がかなりやられています。もうちょっとで動かなくなっていたかもしれません。これで一安心です。

さて本題に戻りますが、以前FHが起動しなくなって部品交換等をしていたときに、気になる箇所がありました。

○FH拡張メモリの空きパターン
FHのERAM空きパターン

シルク印刷に「ERAM」とあるので、間違いなくMHでは搭載されている128KBの拡張メモリ用のパターンです。FHとMHのマザーは共通なんですね。
実際後日手に入れたMHを見てみると、この部分にはDRAMが載っています。
こういうパターンを見るとどうしても埋めたくなるんですよね~。

○FH拡張メモリ搭載後
FHのERAM実装後

ちょうどいいことにFM音源が死にかけているMHのマザーがありましたので、そこからこのDRAMを引っこ抜いてFHに移植してみましたが、それだけでは拡張メモリを認識しませんでした。
この頃のパソコンは最近のと違って起動時にハードが自動で搭載メモリ量をチェックしてくれるわけではないので当然なんですけど(そもそもメモリがリニアに配置されてませんしね)、問題は搭載メモリが増えたことをどうやってソフトに伝えるかです。

実はPC-88の場合、I/OポートのE3番地を使って拡張メモリの存在チェックやバンクの切り替えをします。この番地からの読み込みに対して、メモリボードが自分の持っているメモリの有無を返す仕様になっているんですね。つまり、拡張メモリを足すのとは別に、I/Oポートへのアクセスに対しても対処しなければならないわけです。
標準搭載の拡張メモリの場合、マザー上のどこかでこのI/Oポートに対する応答をしているはずなんですが、どこで行っているのかわからず、2週間ぐらいあれやこれやと試行錯誤していました。

誰か先人がいるだろうと、ネットで検索してみたんですが、全然見つからなかったんですよね。FHの拡張メモリ増設なんて誰もやったことがないのかな~。

○拡張メモリ有無の切り替え
FHのERAM切り替え

ようやく見つけたのがこの「R104」とシルク印刷された抵抗です。FHとMHではこの抵抗値が異なっています。パターンをたどっていくと、D65013というカスタムチップにたどり着きます。このチップにはCPUのバスラインがほぼそのままつながっていますので、I/O周りを司っているのは間違いなさそうです。抵抗のもう一方はアレイ抵抗の端子のひとつに繋がっていました。これは明らかにプルアップかプルダウンを選択する抵抗ですね。ということは抵抗値はそれほど厳密に合わせなくてもいいかも…。

まずはDRAMを引っこ抜いたにもかかわらず、拡張メモリがあるというステータスを返してきていたMHのマザーのR104をFHと同じ1MΩ(…はなかったので代わりに910kΩ)のものに交換してみます。I/OポートのE3を叩いてみると、確かに拡張RAMが存在しないというステータスが返ってくるようになりました。
それならば、とMHのR104に実装されていたものをFHに実装してみると、こちらは拡張メモリがあるというステータスが返ってきます。これでソフトは問題なくメモリの有無を正しく判定できそうです。

○ソフトのメモリ認識状況
FHのERAM拡張後メモリ表示

FHのERAM拡張前メモリ表示

上が拡張メモリを増設したFHブラック、下が拡張メモリを載せていないFHホワイトの日本語BASICでのメモリ容量表示です。使用可能メモリが増えているのがわかります。どうやら成功したようです。

ちなみに拡張メモリが載っている装置では、日本語BASICの半角文字が、全角文字とバランスのとれた16x8ドットの綺麗なフォントに変わります。上の写真で見比べてみてください。

さて、やり方はわかったし、FHホワイトも拡張メモリを増設しましょうかね。

【'15/11/13追記】
その後、kitahei88さんがさらに検証を行い、R104は「FH/MHを切り替えるジャンパなので、拡張メモリの有無だけでなく、CMTの使用可否も切り替わる」ことがわかったそうです。(kitahei88さんのブログ記事はこちら)
私はCMTは使っていなかったので、気づきませんでしたorz
【'15/11/13追記終わり】