2005-12-16 (金)
7時前に起きる.
*OS
とりあえず,授業を聞きながらデザインプロジェクト用のプログラムを書く.昨日書き始めたエミュレータを動かしてみる.色々とプログラムを走らせてると,コンパイラにバグがあることに気付いたので修正.
*昼休み
サークル棟に行って少し仮眠.
まだちゃんと確認してませんが,ロボコンの書類選考は通ったみたいです.また忙しくなるのかなぁ.今回は,ちょっと挑戦してみようかと思っていることがあるので勉強しておかないと.
*コンピュータ通信
課題を提出.
出来上がったエミュレータ上で動くブロック崩しを作ってみる.使えるメモリが1Kワードしかないので,ボールの反射がかなり不自然.プログラムカウンタは10ビットに拡張しましたが,ジャンプ命令に渡すアドレスが8ビットしか無かったのでそっちも修正.使ってないビットが1ビット余ってたので,とりあえず9ビットということに.
ブロック崩しは頑張れば256ワードくらいで書けました.コンパイラでもっと高度な最適化をすれば,まだ小さくなりそう.ただ,基本的にデータの置き場所がレジスタとスタックしか無いのがなぁ.VRAMはCPU側からは書き込み専用の設計だし.指定したメモリの内容を読めれば,変なアドレッシングモードを追加して,凄く短くできるのだけど….おかげでブロックの管理が凄いことになってます.複数のレジスタにビットを詰め込むより,スタックポインタを弄った方が良かったかな….
ブロックが消えると背景画像が表示されるようにしたり,ゲームオーバーの画面を作って332ワード.動いているところを見ると,ちゃんとジャンプ命令が9ビットになっているようです.急いで書いて無駄な部分があるので,このプログラムなら300ワード以内にはできるな.
大学の裏に100円ショップが出来たので行ってくる.さり気なく2フロアもあって色々ある.工具が微妙に充実している気がするのは,工学部が近いからですか?…昨日ダイソーに行ったような…….
今日はたこ焼き(のようなもの)でした.