にがMSX

〜最強のFS-A1FX を造る 続編〜


Panasonic MSX2+

FS-A1FX

 こちらのページから入った方は前編からどうぞ。

最強の松下FS-A1FXを目指す改造シリーズ第三回。

前回1MB止まりだった内蔵メモリを今回は4MBに拡張する。


使用メモリ

 れふてぃ氏がHB-F500の改造をしているという話を聞いて、パズル感覚で4MB改造の回路図を書いてみたのだが、その時に使用を想定したのが4Mx4bitメモリの5117400。テキトーにWEBを調べて選んだメモリなのだが、ジャンク箱を漁ったら古い16MBのSIMMに5117405が載っているのを発見。データシートを調べたところ5117400と同様に使えるらしい。

このSIMMメモリは、15年以上前に購入したPentium(無印166MHz)のFMVに刺さっていたもので、本体は既に廃棄済み。Pentiumマシンは72pのSIMMを2枚組で使うため、同じ16MBのものが2枚出てきた。パリティ付きのデータバスは36bitで、4Mx4bitDRAMが9個乗っている。合計18個収穫可能なのでMSXで使う場合4MBのマッパーメモリ9個分になる。今時のPC基準で考えると実にゴミのような容量であるが、MSX基準で考えると使いきれないような広大なメモリ空間に見えてくるから不思議なものだ。

 MSXの増設メモリといえば、かつて似非職人工房から「うっかりくん」という4MBカートリッジが販売されていたが、公式WEBサイトは2001年以降更新されていない…。2014年現在ではヤフオクで個人製作のメモリーカートリッジが出品されているのを見かけるが、今時はSRAMを使うのが一般的のようだ。SRAMだとPAUSEしてもデータ化けしないし、リフレッシュ回路が不要で回路設計が簡単というメリットがあり、2014年現在で512kBの628512が1000円程度の値段なので、1MB程度のメモリーカートリッジなら作りやすいだろう。しかし、4MB増設しようと思うとこれを8個使用しなければならず、亀の子接続にも限界があり、決して安価で簡単とも言えなくなる。

本体内蔵メモリ増設の場合はPAUSE状態であることを識別する/BUSAK信号を利用できるので、PAUSE時のデータ化け対策を行うことができるし、たった2個のDRAMでも4MBの容量が得られる。今時数MB程度のDRAMはゴミ同然に転がっていることを考えると内蔵4MB化はDRAMで行うほうが合理的と思われる。

なお、SIMMからメモリチップを剥がす時にはいつものように、サンハヤトの面実装取り外しキットの低融点半田を使用した。

回路図

クリックで実寸表示

今回使用するメモリは4Mx4bitメモリなので、2つペアでアクセスすることになり/CAS信号が共通になる。よってT9769の容量設定端子でMPSL0をGNDに落として/CAS1の出力を禁止する(デフォルトのまま)。DRAMのアドレスはA0-A10の11本で、T9769が出力するA0-A8まで流用したいのでMPSL1はプルアップしてA8を出力させる(カット&ショート)。つまり、MPSLの設定としては256kBモードと同じ。DRAMアドレスA9,A10は増設回路で生成することになる。

T9769は内部でマッパーアドレスMA14-MA17と、リフレッシュカウンタアドレスRA7-RA8を生成し、これらをマルチプレクス化してDRAMアドレスA7-A8を出力している。A9-A10生成のためには、外部でMA18-MA21RA9-RA10を生成し、マルチプレクス化すればよい。

まず、マッパーレジスタの増設だが、MA18-MA21IOアドレスFCh-FFhbit4-7の書き込みを監視して生成した。リフレッシュカウンタアドレスRA9前回同様に生成し、RA1074HC74を数珠繋ぎのようにして、RA9が1週するタイミングで反転するように生成。PAUSE時のリフレッシュ対策も前回と同様にした。

DRAMのタイミングチャート

今回のキモはマルチプレクス信号(MPX)の生成とDRAMのRow/Columnアドレスの切り替え回路となる。

上図は5117400のタイミングチャートの一部を抜粋したもの。DRAMのアドレスは、先にアドレス線にRowアドレスを与えて/RAS信号を立ち下げ、次にColumnアドレスに切り替えて/CASを立ち下げることで確定される。このRow/Columnアドレスの切り替えのタイミングで立ち上がるのがMPX信号なのだが、T9769は内部のMPX信号をピンに出力していない。よって他の信号から生成する必要がある。

MPX信号の生成

本来であればT9769のタイミングチャートを参考にMPX信号のタイミングを決めるべきなのだが、データシートが手に入らないので、図のS1985(MSX SYSTEM II)のタイミングチャートとZ80マシンを自作した方の記事を参考にして、MPXの立ち上がりのタイミングを/MREQがアクティブになった後のクロックの立ち上がりになるように74HC74で生成することにした。立下りのタイミングは/RFSHと同期させれば良いだろう。3倍速改造にも対応できるように、タイミングはCPUと同期させる必要がある。よってクロックはゲートアレイから出ているCLKXを使う。

S1985で想定されているMPX信号より若干立ち上がりが早くなると思われるが、使用するDRAMは元々166MHzのPentium機で動いていたものであり、十分に高速で動作すると思われるので問題ないだろう。

マルチプレクサ

今回新たに作った部分を抜粋した回路図がこちら。DRAMに与えるアドレスを切り替えるマルチプレクサは4ch、2回路入りの74HC153を使用した。

マッパーレジスタで生成したアドレスMA18A9のRowアドレス、MA19をColumnアドレスとして4入力のマルチプレクサ74HC153に入力し、生成したMPX信号でRow/Columnを切り替えている。別に生成したリフレッシュアドレスRA9/RFSHまたは/BUSAKがアクティブなときにDRAMに与えている。A10A9と同様に生成。

容量設定端子

まずは容量設定端子から。このメインボードでは一度512kB化してしまったので、MPSL0をプルアップした名残があるが、これをC74下側のGNDに接続してデフォルトの状態へ戻した。無改造機ならここを弄る必要はないMPSL1はデフォルトではJ2でGNDに落ちているのでここをパターンカットしてJ3をジャンパー線でショートしてプルアップする(この基板では部品面でショート)。

/CAS1については、あえて基板から取り外すのも面倒なので、断端だけ処理してワイヤーは残したままにした。PAUSE対策に必要な/BUSAK信号もT9769から直接取り出した。

マッパーレジスタの増設

マッパーレジスタは前回と同様に、DIPパッケージのHC08HC138でIOのFCh-FFhを監視、HC670でマッパーレジスタの上位4ビット拡張している。前回はbit5のみの拡張であったが、今回はbit4-7の拡張なのでワイヤーの本数は増えている。生成したMA18-MA21をマルチプレクサHC153に入力。

リフレッシュカウンタ+MPX生成回路

リフレッシュカウンタ周りの回路は、SOPパッケージの74ACシリーズをパターン面に貼り付けて実装した。配線は細かくなるが、パターン面は電源などが取り易い。

MPX信号の生成で利用するCLKXC66の上側のパターンから取り出せる。

4MBメモリの実装

DRAM5117405前回514800と同じ手法で実装。2つのDRAMを亀の子接続しているが、今回は4bitのDRAMなので、データ線4本以外を上下のチップで繋いでいる。

アドレス線のA0-A8と、/RAS/CAS信号はそのままIC21,IC24のパターンから取り出している。

新しく生成したA9,A10はワイヤーで74HC153から接続。

2つのチップから4本ずつ出ているデータ線は、IC21、IC24のパターンから信号を取り出しているが、ワイヤーの引き回しの都合で順番が入れ替わっている。データ線の入れ替わりはROMなら問題だが、DRAMなので問題はない。


動作チェック

 起動画面と、藤本さんのMEMTEST.COMの実行結果がこちら。セグメントが256個もあるとメモリチェックにも時間がかかる。前回のノウハウがあるので、リフレッシュ対策もバッチリで、PAUSEしてもデータは保持されている。クロックは3.58MHz、5.37MHz、10.74MHzでチェックしたが、いずれも問題はなく、動作は安定。生成したMPX信号のタイミングとマルチプレクサでの切り替え回路が適切であったことが確認できた。

ディスクキャッシュソフトLUNAを使った場合、ノーマル3.58MHzだとメモリアクセスがMEGA-SCSIのHDDアクセスと同じくらいの速度しか出ず、あまり恩恵が受けられないが、3倍速にするとキャッシュが高速になって多少は快適になる。DOS2のRAMディスク機能を利用すれば、拙作NSTOOLNGLOAD.COM(おかえり機能付き)などでのゲームデータのセーブ、ロードも快適になることが期待できる。

とはいえ、今更MSXに4MBのメモリを与えても、1MB化と比べて取り立てて有効な使い道がなかったりする。内部で余っているスロット信号#01-03を使って/CAS1-/CAS3を生成すると16MBまで増設できそうな気もするが…

 ちなみにターボRではこの手法での内部増設はできないらしい。原因はシステムROMをDRAMに転送して高速動作させるDRAMモードに対応できないからだとか。詳しいことはBaboo!掲示板のつじかわさんの書き込み(メモリ増設方法…まとめ)を参照のこと。2001年の書き込みだから13年も前だ…。


ご意見、ご感想、ご質問はにがBBSまで!

Top pageへ戻る

copyright (C) 2014 Niga.