続きです。 西田さんからBELUGAのアダプターの回路図を参考にせよとの指摘があったので、それに習って調べています。
まず、BELUGAのアダプターは次のように信号を作っています。
CS = (RAS2 and EXCAS) or (MREQ & デコード済みアドレス) OE = DRD2 or CS3
なお、全部負論理である点に注意してください。
私のカードの論理は次のように修正しました。
CS = EXCAS or (MREQ & デコード済みアドレス) OE = DRD2 or RD
これで動かしてみたことろ、テキストモードのページ1とページ4がちらついた状態で表示されました。 ただし、スクリーンモードを4などにすると画面が乱れます。
どうも、ページ1にはページ1とページ3が、ページ4にはページ2とページ4が混じって表示されているみたいです。 その証拠に、画面左下のページ番号がちらついて両方表示されており、たとえばページ3のスクリーンモードを変更するとページ1の表示に影響しています。
BELUGAのカートリッジでCS3を使っているのはROMエリア読み出し用だと思うのですが、DRD2のみでRDを使ってない理由はよく分かりません。 DRD2はVRAM DMA用のRD信号ですが、通常のメモリアクセスでもアサートされるのでしょうか?
CSを作るのにRASとのandを取っているのもよく分かりません。 SRAMですから、CASだけ見れば十分じゃないかと思っているのですが、タイミング的にRASも見ないとネゲートのタイミングが遅すぎたりするのかな?
CS2/CS3などを扱うROMエリアがメモリデコードだけでアクセス可能になるかどうかも気になりますが、その前にRAMエリアももう少し調査・実験が必要です。
(20 July 2009追記)
CSの入力をEXCASの代わりにRAS2に変更してみると、まったく画面が乱れたままなので、やはりEXCASのほうが「近い」のですが、andを取らなければならないのかもしれません。
と思い、EXCASとRAS2の両方を使ってみました。 つまり、
CS = (RAS2 and EXCAS) or (MREQ & デコード済みアドレス) OE = DRD2 or RD
であり、ほとんどBELUGAと同じです。 しかし、何も症状が変わりません。 画面は乱れたままです。 RAS2の入力をはずすと元に戻ります。 すなわち、ちらついた状態になります。 何で...???
もう降参。 ダレカタスケテ...;-(
ちなみに表示の様子。
ちらついてるのが分かるでしょうか?
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!