「30日でできる!OS自作入門」をRustで。4日目

Posted on June 5, 2019 , Tags: OS自作入門, OS, Rust

3日目 の続きとなる。 「30日でできる!OS自作入門」の本に沿ってすすめる。

色をかえる

前回、白一色での出力だったが、本に沿っていろいろな色が表示されるように変更する。

これで make run してみると以下のように表示された。

色表示

パレットの設定をする

カラーパレットのセット用の関数を準備する。VGAまわりは vga というモジュールにまとめようと思う。
まず、エントリーポイントとなる関数に呼び出すコードを追加する。

さらに、vga.rsを追加する。

本では、カラーパレットの設定の際、EFLAGSを取得とCLIの設定をassemblyでやっている。
Rustでのうまい方法が思いつかず、結局 asm! マクロでそのまま書くことにした。assemblyをまとめるように asm.rs を作る

上記定義した関数を使って、vga.rsの方に set_palette 関数を定義する

make runすると以下のようになり、色がかわったことがわかる。

カスタムパレットでの色表示

※比較用に上記のパレットをカスタマイズする前の画像を再掲する

元の色表示

四角を描画する

四角を描画するための関数を定義する。

これを使って、4日目最後となる部分の描画を行う

make runすると以下のようにOS風の?見た目ができた。

OS風画面

4日目は以上となる。
ここまでの内容のコードはyoshitsugu/hariboteos_in_rustのday4としてタグを打ってある。