CPU実験室

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

データバスの異常

アドレス0x800200と/WRのANDをとったパルス状の/LEDCS信号を8ビットラッチ74HC574のクロックに接続しパラレルLEDをドライブしていますが、先ずこの/LEDCSが全くアクティブになりません。
それではこのアドレスの元となるMOV命令のオペランド0x800200がROMからデータバスへ出力されているかを確認しました。
アドレスの上位0x80はROM3にコードとして納められていて、幸いROM3の他のアドレスは0x00なので1回でも出力されれば捉えられます。

 

f:id:O3I:20191122094651p:plain

そこでシステムの読出し信号/RD(ch1)とROM3の最上位ビットD31(ch2)をプローブしてみました。最初/RDでトリガかけるとD31がLOWのままなので0x80が全く読みだされてないじゃん?と思ったのですが、
なぜか妙にch2の輝線が太い。注意深くch2でトリガをかけてみると1Vレベルの中途半端なパルスが一瞬出力されてます。

 

 

f:id:O3I:20191122094826j:plain


しかも/RDがLOWの読出しタイミングじゃない時です
このとき、データバスバッファの転送方向を示す/DDIN信号(Lでメモリ→CPU、HでCPU→メモリ)ch1を見てみると、

f:id:O3I:20191122095000j:plain

 

まさしくH期間。

つまりCPUがデータバスに出力(メモリ書込み)しようとするバッファ出力とROMのデータ出力が衝突してます
これではダメです。まともに動くわけがありません。