[PR]生年月日で2010年占い鑑定:初回無料!貴女の運命運勢を占う
今回のマシン
今回使ったMSXは、MSX2+であるSONYのHB-F1XDJです。
CPUに周辺などを取り込んだいわゆるワンチップマイコンを
採用しているものが多い中、
この機種は純粋なZ80が載っており、こういう改造には非常に助かります。
(ただし基板に直に半田付けしてあるため、これをソケット化しておく必要はあります。)
最低限の改造
とりあえず単純にKL5C8400のモジュールに差し換えたり、
先程作った33MHz化した回路を載せても起動はします。
しかしこれだとフロッピーディスクのアクセスに失敗するのです。
フロッピーディスクが使えないとBASICしか使えなくて不便です。
(BASICは速くならないのはPC88で実証済みでしたし。)
MSXではフロッピードライブの読み込みをCPUがやっています。
モジュールまで何故ダメなのか分りませんが、
後者はウェイトがZ80本来の時間よりも長くかかるので
たぶん処理が間に合わなくなったのでしょう。
しかしMSXは(この機種はと言うべきかも知れないが)先程のPC88よりも
条件としては甘いようで、ウェイトの時間は大幅に減らせる事が分りました。
その結果回路はこうなりました。
なぜデータバスにバッファが追加されたのか
最初これはありませんでした。
しかしそれだと、ローカルRAMを有効にして高速動作を開始しようとすると
ハングアップしてしまうのです。
CPUクロックを下げていくと20MHzぐらいまでは動くことが分りました。
そこで考えたのが本体側のバスがCPUにとって電気的に
負担になっているんじゃないかということでした。
ローカルRAMにアクセスする際、
本来ならば本体側のアドレスやデータバスに
信号を乗せる必要はありませんが、
バッファがないと乗ってしまいます。
しかしこの場合でもコントロール信号(/MREQや/RD,/WRなど)を
ちゃんと操作してやれば外部に対して読み込んだり書き込んだりはしないので
論理としては問題ありません。
よって部品と配線の手間からボード内にバッファは付けなかったのです。
調べてみるとPC88には本体側にCPUのすぐ近くにバッファがありましたが
MSXにはバッファはありませんでした。
本来はアドレスバスにもバッファを付けるべきでしょうが、
取り敢えずデータバスだけに付けてみます。
すると33MHzまで動作するようになりました。
その他
「バイパス処理」という部分はウェイトを
本来より1クロック短い時間にし、
アクセスタイムを短縮するものです。
(なんとこれでもほぼ問題無く動きました。)
しかしこれは当然本体側のマージンに依存することになります。
よってあくまでもこれは「そういうことも出来た」という事に留め、
以降はちゃんとしたウェイトがかかっている場合について述べていきます。
前へ
次へ
目次へ戻る