電脳伝説さんところで、M5M4416 を 4464 で置き換えられるかどうか、って話が出ていましたが、あの回路のままではまるでだめです。この件でデータシート眺めたので、一応結果だけメモっておきます。しかし、丁度世代の分かれ目なのであちこち面倒。
まず、なぜだめなのかというと、純正の Zilog/Sharp の Z80 CPU はリフレッシュアドレスが7bit 分しか出ていないのにも関わらず、4464 は 8bit リフレッシュアドレスを要求するから。A7 の部分でリフレッシュがかからないです。
Z80 CPUのリフレッシュアドレスは A0-7 は基本的に R レジスタの中身が出てきますが、命令実行でカウントアップされる範囲は純正品はだいたい bit 0-6 で、違うものが出てくるのは例外的なものだけです。
CPU | リフレッシュアドレス |
純正Z80 | R Reg 0-6 |
NEC uPD780 | R Reg 0-6 |
東芝Z80CMOS | R Reg 0-6 |
NEC uPD70008 | R Reg 0-6 |
HD64180/Z180 | 独立レジスタ 8bit |
NSC800 | R Reg 0-7 |
Zilog のマニュアルだと、適当にタイマで割り込んで R レジスタの bit7 を反転してやれば 8-bit 分リフレッシュできる、とありますが、まぁ電脳伝説版だとタイマもないので出来ませんな。
で、全然手がないかというと、ヒドンリフレッシュを使うように回路を書き換える手があります。ヒドンリフレッシュのばあい、4464 系だと外部からリフレッシュアドレスを与える必要がないので、リフレッシュアドレスを無視できるため。ところが、4416 の場合メーカーによってサポートがてんでバラバラなんですな。以下わかった範囲で。
デバイス | ヒドンリフレッ シュサポート |
RAS Refreshで アドレス要 |
Hidden Ref でアドレス要 |
電脳伝説版 | 下の仮回路 |
TMS4416 | なし | 8ビット必要 | - | 動かない | 動かない |
M5M4416P | あり | 7ビット必要 | 7ビット必要 | OK | OK |
HM48416AP | なし | 7ビット必要 | - | OK | 動かない |
MB81416 | あり | 7ビット必要 | 7ビット必要 | OK | OK |
uPD41416C | あり | 7ビット必要 | 7ビット必要 | OK | OK |
IMS2620 | あり | 8ビット必要 | 不要 | 動かない | OK |
各社4464 | あり | 8ビット必要 | 不要 | 動かない | OK |
4464 は、富士通、日立、NEC、東芝、沖、Motorola, INMOS, Mosel, Micron は確認しました。
以下に電脳伝説版をそのまま置き換えるヒドンリフレッシュを用いた版を示しますが、未確認です。/RFSH↑ → /MREQ↓ の遷移時間が厳しいのと、見落としあるやも。