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