2024年7月21日日曜日

FM77AV用CP/Mカード(Z80H 韋駄天)のメモリ周りを変更

Z80Hで使用している128KBのメモリをすべて利用する工夫をしました

未使用だった128KBメモリの残り半分を使用できるように回路を変更してみました。

これが製作した第2版の基板です。


完成したZ80H第2版



2020年12月19日のブログ「Z80カードの第4作は77AV用のZ80Hカード(韋駄天)」で報告したZ80Hカードですが、ほうめいさまによるオリジナルで使用されていた2個の32KBメモリを128KBメモリ1個に置き換えることで10x8cmのサイズに収めることができました。

しかし、そのために128KBのメモリの半分は使用されないという勿体ないことになっていました。

このカードはCP/Mを使用しない場合は64KBの拡張メモリとして使用できるように設計されています。
せっかく128KBのRAMを積んでいるのですから、これを有効活用したいところですがメモリマップを見る限り、拡張できるのは$20000~$2FFFFの64KBのみのようです。(40Pコネクタに出ているアドレスラインもA15までです。)


FM77AVのメモリマップ



ということで、128KBのメモリを有効活用するためには拡張RAM空間にバンクメモリという形で置くしかないようです。


拡張RAMの配置



実際にどのようにバンク切り替えを実現するかですが、Z80Hでは$FD64というアドレスのREAD/WRITEでZ80Hの動作を切り替えているのですが、その切り替えに使用しているLS138を利用してBANK0とBANK1を切り替えられると考えました。


バンク切り替え回路


具体的には、上記回路のようにLS74を追加すれば、その出力で128KBのメモリのA16端子を制御することで、$FD65のWRITEでBANK0、READでBANK1のように切り替えることができるはずです。
しかし、2020年12月19日のブログの画像でお判りのように、10cmx8cmの基板にICを追加する余裕はありません。そこで、DIP型のSRAMをSOP型に置き換えることで74LS74を置くスペースを確保することにしました。さらに、基板の高さが8cmではカバーとの間に余裕がなかったので高さを1mm低くして79mmにしました。

基板の設計にはKiCad、自動配線にはfreeroutingを使用しているのですが、前回の基板でもfreeroutingはかなり苦労して(!)配線してくれていましたが、今回はさらにICが増え、しかも高さも1mm低くしたためかfreeroutingによる自動配線が終了しないため、配線の混んでいる付近のIC等の配置をほんの少し移動して試してみるという作業を何度も繰り返すことでようやく配線を完了することができました。

出来上った基板を示します。追加・変更箇所は左上のLS74とSRAMだけなのですが、その他の部分も位置を細かく調整しています。


密度の高い基板


実際に切り替わっているかどうかを、Z80Hの動作確認用に用意されているTiny Monitorを書き換えて作成したテストプログラムを使用して確認してみました。

確認に使用したプログラムは下記のものです。
   
   


MMRを用いて拡張メモリの$20000~$20FFFの領域をCPU空間の$6000~$6FFFにマッピングし、そのうちの$6800からの16バイトにBANK0に$31~を、BANK1に$41~を書き込んだ後にそれぞれを読み出してみました。
その結果、簡単なテストではありますが、画像のようにそれぞれのBANKメモリに正しく書き込めて読み出せていることが確認できました。

実行結果



実際にどのような形でこのBANKメモリを活用できるかについては、これから考えることになるのですが、とりあえず、128KBのメモリをすべて使用できるようになりました。


2024年7月12日金曜日

FM77AV40用増設RAMカードの製作(その4)

 768KB容量のFM77AV40用増設RAMカードを製作してみました

【2024年9月14日訂正】下記のリンク先が間違っていましたので訂正しました。

 今までにFM77AV40用増設RAMカードとして、(1)512KBのSRAMを1個使用したもの、(2)512KBのSRAMを2個使用したもの、(3)(2)の上位256KBを無効にできるスイッチを追加したものという3種を製作してきました。

(1)https://flexonsbd.blogspot.com/2022/10/fm772040512kbram.html

(2)https://flexonsbd.blogspot.com/2023/07/fm77av401024kbram.html

(3)https://flexonsbd.blogspot.com/2024/03/fm-777rs232cft2451024kbram.html

 FM77AV40の拡張メモリ容量は最大768KBですので、512KBのSRAMを2個使用すると最上位の256KBの扱いが気になります。ただ無視されるだけならそれで良いとはいうものの、それでも勿体ないという気持ちも多少残ります。

 使用していて特に不都合はないので、それで良しとすればそれだけのことなのですが、気持ち的にすっきりしないので、いっそのこと128KBのSRAMを2個使用して、512KB+128KB+128KBで768KBの拡張RAMカードを作ってみることにしました。(秋月電子で128KBのSRAMが安かったというのもありますが、ちょっとやりすぎではありますね、、、)


製作したカードがこれです。SOPチップのハンダ付けにもだいぶ慣れてきたようです。なお、富士通の48ピンコネクタは現在ほとんど入手不可能です。ここでは知人が32ピンのコネクタ2個からニコイチで作成されたものをいただいて使用していますが、全く不都合はなく使用できています。表面にスモークのシートを貼っていただいているので、見かけも全く違和感がありません。


768KB拡張RAMカード

回路図を示します。

768KB拡張RAMカード

アドレスデコードについては前回同様GALを使用しましたが、そのプログラムを下記に示します。


GALのプログラム

OS-9LevelIIのmfreeコマンドで容量を確認しました。最上位の8KBが削られているのは今までのRAMカードと同様です。


容量を確認

これでFM77AV40の拡張RAMカードについては最終形にできそうです。