続きです。
回路に一箇所誤接続がありました。 データバスの部分でしたので、動かなかったのも納得です。
とりあえず似非ROMは後回しで、外したままですが、早速直して動かしてみると...画面が真っ白。
よく調べてみると、キーを受け付けますし、プログラムを入力したり実行したりできます。 プログラムを入れて0x8400近辺のアドレスをpeekすると、ちゃんと入っているのです。 ところが、スクリーン1と4が真っ白で、2と3はちゃんと出力されます。
それで気づいたのですが、6847からのDMAって、MREQまたはRDを使っていない?!
またしてもオマエカー!! VDG!!
これは気づきませんでした。 ええと、6847からのリード要求はコネクタ3番かな? 唯一残っているCPLDに入力して、CSのロジックを変えてみました。
...動かない。
よ く考えてみたら、SRAMのRDがアクティベートしていないようなのですから、いくらCSをいじったところで読み出しができるわけがありません。 ということは、現在拡張コネクタからダイレクトに入力してしまっているSRAMのOE信号自体に細工をする必要があるということです。
たったAND1個ですよ。 でも、CPLDのI/Oがたった1本(SRAM OE用出力)だけ足りない...。 そのために08をつけるのは馬鹿馬鹿しいし、パターンもありません。
「こ...こうなったら、醜くてイヤだが、大猿に変身してアドレス線を1本削ってぶっつぶしてやる......!!」
で、A4を削ってやってみました。 白い画面ではなくなりましたが、ページ1と4が乱れまくっています。 ちなみに、以下のようなロジックです。
OE <= RD and DRD; process (MREQ, Address15, Address14, INIT, WR, DRD) begin if DRD = '0' then CS <= '0'; elsif MREQ = '0' and Address15 = '0' and Address14 = '1' then if INIT = '1' or WR = '0' then CS <= '0'; else CS <= '1'; end if; elsif MREQ = '0' and Address15 = '1' and Address14 = '0' then CS <= '0'; else CS <= '1'; end if; end process;
DRDは拡張コネクタ3番、OEはSRAMへ行っています。 もう、DRDがアクティベートされたら無条件でSRAM READにしている感じです。
でも、ちゃんと動きません。 う~~ん、あと何が足りないんだ??
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!