CPU実験室

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

Z80-DMA(3)

実験結果は・・・
いわれているようにはなりませんでした。
HALT状態でHALTをNOPに書き換えてもHALTが解除されません。
 
まずは各信号をモニタしてみました
 
イメージ 1
 
 
動作をわかりやすくするために書き換えるデータを2バイトとしました
つまり、コードをこのようにDMAで書換えて上から下へ流れるか?ということです
 
    :                   :
    :                   :
76   HALT     →      00   NOP
76   HALT            00   NOP
    :                   :
    :                   :
 
DMA動作時の信号の様子です
上からアドレスA0、/HALT、/MEMRD、/MEMWR、/BUSACK
 
イメージ 2
 
たしかにHALT中であってもCPUからのメモリ読出しがあり、さらにDMAが動作すると2バイトのメモリ間転送が行われているのがわかります。
ところが次の命令に進んでいるようにはみえません。
 
ということはHALT中はフェッチはするが命令がデコードされて実行されるということはないのでは?