よもぎのOS自作入門 5日目/30日
はじめに
これは2020年夏休み企画「30日でOS自作してみよう!」5日目の記事です。
企画についてはこちら
いい感じのサムネイル画像は明日以降作ろうと思いますもうそろそろ諦めてる。
昨日やったことを書いていきます
昨日の進捗
半角英数字の文字列を表示したりポインタになるものを表示したりできました。今後このポインタは動く予定です。
昨日やったこと
C言語における構造体の説明から始まりました、懐かしい。
//おなじってやつ
(*strct).item == strct->item
その後で文字表示です。8x16のビットマップフォントです。ちっちゃくて自由が効きにくいです。
本の筆者が配布してくれているhankaku.txt
に8bit=256文字分の文字情報があって、それを読み込んで表示するみたいな感じなのですが、
セリフ体*1っぽくて嫌だったので英数字部分だけ色々変えました。
なんとなくでやったので不格好だったりするのですが、まあもともとのよりもいい感じになったと思ってます。
サンセリフ体*2のほうが好き。あと数字のゼロの中に点を入れたりした、プログラマが好きなやつ。
B,C,rあたりは少し気になるのでまたいじりたいね。
変数を含む文字列の表示のために、stdio.h
からsprintf
関数を読み込んで利用しました。sprintf
って%s指定子がやばいんだっけ。忘れてしまった。
あとはマウスカーソルもほんのやつがダサくて気に入らなかったので自分流で作りました。 いま使っているPCではこれに近いかたちで、16x16という限られたサイズにも合うくらいにシンプルなのでいいかなと思いました。
今回の最後にはセグメントの設定を取り扱うGDT*3と割り込みの設定を扱うIDT*4の初期化設定をやりましたが、 内容的には次回の準備みたいな感じでなんで今回扱ったんだ?になってる。*5 ここはちょっと難しかった。セグメント違反がSegments fault!だったよね?違うっけ、みたいな感想。
今日も一日頑張るぞい!