PHC-70FD のメモリを増設する
Sanyo の MSX2+ 機である PHC-70FD のメモリを 512KB に改造しました。
はじめに
今回のターゲットは Sanyo の PHC-70FD です。 ちょっと大きな筐体に 1FDD を積んだ MSX 2+ 機です。
兄弟機種に 2FDD の PHC-70FD2 もありますが、今回の改造は同じようにすることができます。
この機種は本体メモリを 64KB 積んでいます。 BASIC とか ROM カートリッジのソフトを使うだけなら問題ないのですが、 MSX-DOS Ver.2 や Nextor2 を動かすためには最低でも 128KB のマッパーRAM が必要なので、 増設しないと動かすことができません。
なので、何らかの方法でメモリを増設してあげる必要があります。
MSX-Engine
PHC-70FD では、CPU としてディスクリートの Z80 ではなく、東芝の T9769B、通称 MSX-Engine を使用しています。 MSX-Engine は MSX の主要機能をワンチップで実現するためのもので、以下の機能が含まれています。
- CPU
- メモリコントローラ
- PPI (スロット・キーボード制御)
- PSG
MSX2 以降では、メモリの増設にマッパーRAM を採用しているのですが、マッパーの制御も内蔵しています。
メモリインターフェース
MSX-Engine を使った機種においては、メモリの制御が Z80のバスに出ていないという問題があります。 外部回路を簡単にするために DRAM のインターフェースは出ているのですが、 逆にそれしか出ていないために、MSX-Engine で想定されている範囲のメモリ増設しかできないことになります。
T9769B においては、以下の信号が DRAM 制御用に割り当てられています。
- RA0 ~ RA8
- RAS
- CAS0/CAS1
つまり、256K x 2 の 512KB が最大容量となります。
PHC-70FD のメモリ
一方 PHC-70FD のメイン基板を見ると、64k x 4 構成の DRAM が 2 個搭載されていて、 隣に DRAM が搭載可能なパターンが 2 箇所あります。
- パターンに来ているのは RA0 ~ RA7 までで、RA8 は来ていない
- 空きパターンに CAS1 が来ている
単純に同じメモリを空きエリアに搭載すれば、 簡単に 128KB まで増設できる構造になっています。 (このほかに MSX-Engine のメモリ搭載量設定を変える必要があります)
使用するメモリ
レトロ PC で使用するような古いパーツは高かったり入手困難だったりするので、 秋月電子で入手できる安いパーツを探します。 今回使うのは4Mbit DRAM M11B416256A-35Jです。 一応在庫限り品のようですが、まだ大量に在庫があるようなので当面は問題ないかと思います。 しかも一つ 100円と大変お値打ちとなっています。
これは 256k x 16 構成の DRAM なのですが、CAS 信号が 2 つ存在していて、 上位 8 bit と下位 8 bit を分離してアクセス可能です。
つまりこれを使えば、MSX-Engine のメモリインターフェースに直結できて、 メモリを 512KB まで拡張できるのではないかと目論見ました。
基板とか
配線が面倒なので、さっさと基板化しました。 PHC-70FD の DRAM を外して、IC ソケット化して装着します。
RA8 だけは、パターン上に来ていないので、MSX-Engine から引き出します。 幸いどこにも接続されていないようでしたので、単純に細いワイヤーで引っ張りまわして、 増設メモリ基板の J5 ポイントに接続します。 本体に装着したら、MSX-Engine のメモリ搭載量設定を 512KB に変更します。
テスト
起動時の MSX ロゴが表示されるときに RAM 512KB と表示されれば OK です。 MSX-DOS で動作するテストメモリツールがいくつかあるので、それを使ってメモリのテストを行ってください。
応用
MSX-Engine から信号を引っ張るのが、面倒なら 128KB のメモリとして使うことができます。 この場合は、増設メモリ基板上の J5 をどこかの GND (例えば、J1 の 18番pin)に接続する必要があります。
他の機種では 256k x 4 の DRAM が搭載できるパターンが存在しているものがあります。 この場合は、直接 IC ソケットから RA8 から拾うことができます。
そのかわりに CAS1 の信号が来ていないものもあります、 この場合は MSX-Engine から CAS1 の信号を引き出せば OK です。