すでに1年以上が経過してしまいましたが5日目まで来ました。4日目までは章の見出しを見てもどうしていいかわからず、本文とサンプルとを見比べながら理解を進めるしかなかったのですが、5日目(の最初の方)は最初のページの章立てを見て、本文とサンプルを見ずに自分でソースコードを書いてみました。こなした(つもり)のは以下の6項目です。
- 起動情報の受け取り
- 構造体を使ってみる
- 矢印表記を使ってみる
- とにかく文字を出したい
- フォントを増やしたい
- 文字列を書きたい
すでに1年以上が経過してしまいましたが5日目まで来ました。4日目までは章の見出しを見てもどうしていいかわからず、本文とサンプルとを見比べながら理解を進めるしかなかったのですが、5日目(の最初の方)は最初のページの章立てを見て、本文とサンプルを見ずに自分でソースコードを書いてみました。こなした(つもり)のは以下の6項目です。
間隔があいてしまいました。
まだまだ4日目です。
前回、いろいろ疑問が出てきたのですが、
まだ疑問を解消するレベルまで僕が達していないと思うので
とりあえずもう少し進めることにしました。
さて前回までは描画を行うために、いちいちVRAMとして使われているメモリにアクセスしていました。しかしこれではただ点を打つだけでも、大変です。
そこで今回はVRAMへのアクセス処理を隠蔽した、DrawRectという関数を作成しました。(本文中でやっていることとほぼ同じです。)
(続きを読む...)
4日目の後半はシステムパレットの変更方法について書かれていました。
具体的にはビデオDAコンバータという装置に対して、
アセンブラのOUT命令を使用して
パレット番号と番号に対応するパレットの色のデータを送るという
処理を行っていました。
OS自作入門読書継続中。。
前回の続き。
使用されているツールを一つ一つ確認しながら、
何がそんなに難しいのか考えてみたところ、
3日目の終わりごろからC言語でコードを書き出しています。
それによりコンパイルして実行イメージを作る際に
多くの中間ファイルが生成されていることがややこしい原因になっているように感じました。基本的にはC言語の知識しかない僕にとってはgas形式やnask形式のアセンブラやオブジェクトファイルというものが概念として理解できていても、実際にそれらのコードやフォーマットに触れていないので動作がイメージできない状態なのです。
しかし、そう愚痴ばかりこぼしていても仕方ないので、
Makeファイルの中身をひとつずつ紐解いていくことにします。