
NATUを作る(パート31)
HARUは失敗に終わってしまった。
だが、その悔しさをバネに、新たにNATUを作ることになった。
今回は、I/Oポートのテストをしていきたいと思います。
テスト
今回のテスト内容は全てのインプットポートで1111 1111をインプットするのと、
全てのアウトプットポートで1111 1111をアウトプットする感じにしたいと思います。
そして、最後に全てのインプットポートの値を加算してアウトプットするのも試して、終わりにしたいと思います。
具体的には、1番地のI/Oポートと1番地のレジスタにアクセスしてインプットやアウトプットを行い、2番地のI/Oポートは2番地のレジスタ、3番地のI/Oポートは3番地のレジスタ、、、といった感じにしたいと思います。
1111 1111をインプット(アウトプット)してから、そのあとに0000 0000をインプット(アウトプット)することで、すべての配線が正常かどうか調べます。
また、1010 1010と0101 0101を順番に並べて、前後のデータが混ざっていないかも調べます。
そして、最後にレジスタの中身を確認して、ちゃんとインプット(アウトプット)されているか調べます。
インプット
まずは、インプットです。
まずは、1111 1111をインプットさせます。

1番地、OK
2番地、OK
3番地、OK
4番地、OK
5番地、OK
6番地、OK
7番地、OK
お!
、、、と思いましたが、どうやらうまくいっていないみたいです。
なぜか3番地のアウトプットポートから1111 1111が出力されています、、、

二回繰り返しても起きるので、おそらくどこかがおかしいのだと思います。
まず、プログラムを確認しました。

プログラムのミスでした。
3番地のところだけ、アウトプットもかねてしまっています、、、
でも、このプログラムで動かされていたと考えると、正常ですね。
よし、インプットはOK
それじゃあ、アウトプットもテストしてみます。
アウトプット
それじゃぁ、今レジスタに1111 1111が保存されているので、これをアウトプットさせたいと思います。
プログラムをインプットからアウトプットに書き換えます。

プログラムを全て書き換えました。
それでは、実行させてみたいと思います。
1番地、OK
2番地、OK
3番地、OK
4番地、OK
5番地、OK
6番地、OK
7番地、OK
お!全て問題なさそうです!
それじゃぁ、次は、、0000 0000にするテストです。
インプット(2)
プログラムをまたインプットに書き換えます。
そして、インプットポートの赤石ブロックをすべて破壊し、0000 0000をインプットさせてみます。
1番地、OK
2番地、OK
3番地、OK
4番地、OK
5番地、OK
6番地、OK
7番地、OK
おぉ
それじゃぁ、次は、0000 0000をアウトプットさせてみたいと思います。
アウトプット(2)
アウトプット用に、命令を書き換えました。
今回は0000 0000をアウトプットするので、ゼロレジスタを使っています。

それじゃあ、早速実行させてみたいと思います!
1番地、OK
2番地、OK
3番地、OK
4番地、OK
5番地、OK
6番地、OK
7番地、OK
おお
成功しました!
それじゃぁ、最後は、、、
1010 1010と0101 0101だな
最後のテスト
1010 1010と0101 0101を順番に並べて、インプットとアウトプットを同時に行い、ちゃんと動作できるか調べたいと思います。
赤石ブロックとランプの配置、完了。

プログラムの書き換え、完了

それでは、、、実行させてみたいと思います!
おおお!

成功、、、かと思いきや、、、あれ?
レジスタの中身がおかしいぞ?
実は、インプットとアウトプットを同時に行いながら、レジスタへの保存も行っていました。
ですが、3番地と4番地の中身がおかしいです、、
ですが、プログラムを再度確認し、実行してみると、問題なく保存されました。
アレ、、?マイクラのバグ?
その後、2回動かして確認しましたが、2回とも正常でした。
おそらく、マイクラのバグだと思います。
それでは、このプログラム済みの製作中NATUは、なんとなく残しておきたいので、この制作中NATUをコピーして、これからはそのコピー先で制作したいとおもいます。
もし、修正不可能なバグに遭遇したら、ここからやり直せばいいわけですし。
それでは、最後はコピーをして終わりにしたいと思います。
最後
それでは、コピーをしたいと思います。
どうやら、サイズは63×48×51みたいです。
Xがギリギリ!

それじゃぁ、コピーしてペーストしたいと思います。
手前にコピーしました!
こうしてみると、NATUも結構進んだなぁ

それでは、手前の方はROMとレジスタとI/Oポートをリセットしていきます。
これでOK

それじゃぁ、今回はここまでにしたいと思います。
それでは、次回はレジスタに指定した値を書き込む命令を実行できるようにしていきたいと思います。
今回は、約1時間10分の作業でした。
お疲れさまでした。
それじゃあ、次回、また会いましょう