CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

387制御修正(2)

ROMに焼きこんだモニタプログラムはスタートアップ時に80x87検出のために
いくつかのFPUのインストラクションを実行しますが、その後、コマンド待ちのループでは
一切FPUはアクセスしないはずです。

ところが387のERROR#信号を見ながらメモリダンプ等のモニタのコマンドを実行させていると
ERROR#がアサートされるときがあります。
気持ちが悪いので387制御信号あたりのタイミングを見てみました

グラバではPGAの足をつかめないので基板裏から線を引出してます
イメージ 1


ERROR#の立下りでトリガを掛けると、その少し前のところでA31,A2がHigh、M/IO#がLowで
387がマップされているI/Oをアクセスしようとしているところがあります。
80387はコプロセッサといってもハード的には0x800000F8と0x800000FCにレジスタを持つI/Oなので
ここを叩かれてしまうと想定外のプロトコルとして387がエラーになることは充分考えられます。
W/R信号もハザードっぽいんですがこれらの信号は386-387間でダイレクトに接続されているわけで
パタンの引回しの問題とかファンアウト多すぎで負荷容量が大きいとかかもしれません
しかし200MHzロジアナではこれ以上細かくは見えず。

イメージ 2