2017.9.19
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
ROM/RAM/RTCボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
作戦その3は、SDカードインターフェースです。
作戦その4は、ROM/RAM/RTCボードです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第29回]


●増設ROM(27C4001)のテスト

前回はROM/RAM/RTCボードのRAM(628128および628512)のテストをしました。
今回はROMのテストです。
ROMのテストはRAMに比べると少し面倒です。
なにしろROM(Read Only Memory)ですから、RAMのようにWRITEしてからREADして値を確認する、というわけにはいきません。
あらかじめROM WRITERを使ってテストデータをROMに書き込んでおく必要があります。
ROM/RAM/RTCボードには27C256のほかに27C1001(1Mbit、128KB、628128相当)、27C4001(4Mbit、512KB、628512相当)が実装できるように考えてあります。
当初はそういうことだったのですが、後から考えて27C512も実装可能にするよう設計変更しました。

それで。
上に書きましたようにROMにテストデータを書くためにはROM WRITERが必要です。
27C256用にはND80Z3.5(ND80ZV)、MYCPU80、ND8080に接続して使える27C256専用のROM WRITERがあります。
もっとも27C256についてはすでに動作確認済みです([第4回])。
実は27C1001、27C4001用WRITERもプリント基板は出来ているのですが、時間がなくてまだ基板のままで置いてあります。
どうしましょう?

こういうものがあるのです。
昔販売していたROM WRITR(商品名WR98)です(その試作品です)。

PC9801、Windows95、Windows98パソコンのパラレルポート(プリンタポート)に接続して使うROM WRITERです。
2764〜27C4001まで書き込みできるという優れものです。
どうして今は販売していないのかといいますと、そりゃあいまどき需要がないから、ということもありますし、とにかくパソコンからパラレルポートがなくなってしまって、全部USBになってしまったものですから、もうどうしようもないのです。
私のところでは今でもWindows98SEパソコンが何台か現役で動いていますので、こういう年代物のボードも接続して使うことができます。
このボードは随分昔のしかも試作品なのですが、まだしっかり動きます(これには私自身が驚いています)。

使用中の画面です。

実はとりあえずのテストとして27C4001にND80Z3.5のモニタROMをコピーしたのですが、書込済みの27C4001をROM/RAM/RTCボードに実装して、それをND80Z3.5に接続して、ND80Z3.5上のROMは外してパワーオンしたところ、一瞬だけ7セグLEDに00000000が表示されるのですが、そのあとすぐに暴走してしまいました。
ROM/RAM/RTCボードの配線ミスか?
ちょいとあせりましたがよくよく確認してみましたら、キースキャンルーチンがバンク切り換えに完全には対応していないことがわかりました。
ROMとRAMの切り替えはOUT 9C のビット3で行ないます。
今までのシステムでは上位4ビットは使いませんでしたから、ビット3のみを0にすればシステムROMが選択されましたから、それでよかったのです。
しかしROMを27C4001にして、その先頭の32KBを選択しようとすると、上位4ビットも0にしなければならないことに気が付きました。
それで、そこを手直ししている画面です。
romwr[Enter]でromwr.com(WR98プログラム)を起動して、r4mで27C4001の内容をメモリバッファに読み込んでいます。
eコマンドでバッファの一部を書き換えることができます。


キースキャンデータのF6、F5、F3を06、05、03に書き換えています。

w4mコマンドでバッファの内容をROMに書き込みます。

このように1バイトだけでもアドレスを指定して書き込むことができます。
今回は特殊なケースです。
27C4001は書込済みのROMなのですが、上の該当部分は一部のビットを1から0に書き換えるだけなので上書きが可能なのです(1を0にすることはできますが、0を1にすることはできません。そうするには消去が必要です)。

そのようにして作成した27C4001をROM/RAM/RTCボードに実装して、ND80Z3.5に接続してパワーオンしました。

ND80Z3.5にはシステムROM(27C256)は載っていません。
ROM/RAM/RTCボード上の27C4001に書き込んだモニタプログラムによって動作しています。

ROM/RAM/RTCボードの部分を少し拡大しました。

とりあえずここまでは動作OKです。

ROM/RAM/RTCボードの製作[第29回]
2017.9.19upload

前へ
次へ
ホームページトップへ戻る