CPU実験室

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

デコーダ変更

8089のマニュアルを読み進めています。
 
8089をiPAX86システムに組み込むには、まず「ローカルモード」と「リモートモード」の2通りがあるようです。
ローカルモードは8086と同じローカルCPUバスに共存させる方法で今回の8086ボードの構成です
一方、リモートモードはI/O専用のバス上で専用CPUのように動作させる方法となっており今回は関係ありません
 
マニュアルには以下のようなローカルモードの接続例が示されています
 
イメージ 1
ローカルバスに複数のプロセッサがある場合、誰がバスの主導権を持っているか(バスマスターか)を決めてやらねばなりませんが、ローカルモード接続の場合、8086CPUがマスター8089IOPはスレーブの一択となります。

イメージ 3
 
8089をスレーブ設定にするにはどうするかというと「CA」と「SEL」の2本の入力ピンで行うとあります
 
イメージ 4

リセット直後にSELを「1」の状態でCAの立下りでスレーブ設定されるとなっていおりこのため上記の赤枠のような書込みパルスを出す回路が必要なのですが、
GALのロジックをいじって8089用のCA信号(IOPCS)を生成しました。
 
ついでにLCD用のE信号も作っておきます。
イメージ 2

これで電源投入! 元通りにモニタが起動するようになりました。
 
別に8089の正常動作が確認できたわけではないですが、8089がホルト状態:全ピンHi-Z状態になって8086の邪魔をしなくなったようです