CPU実験室

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

Z80-DMA

ネット掲示板をつらつら見ていたらZ80CPUがHALT命令をフェッチして停止しているときに、そのHALT命令をDMAで書き換えてしまったらどうなるか?
という話題がのぼっていました。
そういえばHALTなんていうのは実装で使った覚えがありません。致命的エラーで動作をロックさせたいときも「JR $」の方が直感的でした。
HALTさせたら動作が完全に固まりリセットするしかないんでは、と思っていましたが答えは書き換えたコードをフェッチして実行するらしいです。
たまたまZ80ボードの動作環境があるのでおもしろそうなのでやってみました
 
これも久しぶりに火を入れますがちゃんと動くか?? ・・・ モニタが起動しました
 
イメージ 2
 
以前作ったDMAによるメモリ-メモリ転送テストをロード実行すると動作しているので実験する環境は問題ないようです。
 
このテストプログラムを作ったのが7年も前か・・ 時間の経過が恐ろしい
 
イメージ 1