トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第281回]
●MMU回路(7)動作テスト(その3)全メモリ範囲を対象にしたテストプログラム#2(前回の続き)
前回は[第279回]で作ったテストプログラムをリアルクロックで実行しました。
今回は同じプログラムを[第277回]と同様SLOWモードで実行してみます。
前回のテストが終ったところからモードを変えて再実行します。
OT 83,08
を実行してリセット状態にしています。
CLOCKとメモリアドレスはリセットされています。
CLK表示LEDは2個とも消灯してCLK0の状態になっています。
メモリアドレス表示LEDも全消灯してアドレス00を示しています。
CPU回路はPC(プログラムカウンタ)以外はリセットされないので前回のプログラムを実行したときのままです。
Aレジスタには8がBレジスタには7が表示されています。
この状態で写真下方のMEMORY/CLOCK回路基板のSP1のSLOWにジャンパピンをセットしました。
下は拡大写真です。
ちょっと見にくいですけれどSP1の真ん中(SLOW)のところにジャンパピンをセットしています。
この状態で
OT 83,09
を実行するとリセットが解除されてCPUがSLOWモードでスタートします。
CPUがスタートしました。
アドレス1Fです。
Aレジスタ、Bレジスタはともにクリアされたあと、Aレジスタには最初の加算が行なわれて1が表示されています。
アドレス4Fです。
Aレジスタには1+2+3+4の計算が行なわれた結果”A”(10)が表示されています。
アドレス66です。
上の結果の値10に+5+6が計算された結果21(16進数15)になるはずですが、上位桁への繰り上がりが発生するためこの写真ではその計算途中の状態が表示されています。
メモリアドレスは66ですがCLKは0表示なので丁度アドレス65の命令の実行が終った直後の状態と思われます。
アドレス65の命令コードは30なのでLD B,Aです([第279回]、[第249回]参照)。
上位桁への繰り上がりが行なわれた結果の値1がAレジスタとBレジスタに表示されています。
アドレス82です。
上の結果の値21に+7+8までの計算が行なわれた結果21+7+8=36((16進数24)がレジスタに表示されるところなのですが、アドレス82はこれから繰り上がり計算に入るところなのでBレジスタにはまだ繰り上がり前の1が表示されています。
説明の途中ですが本日は時間がなくなってしまいました。
続きは次回にいたします。
トランジスタでCPUをつくろう![第281回]
2020.12.25upload
前へ
次へ
ホームページトップへ戻る