カテゴリ:作りモノ
久しぶりにOS自作本を読んだ。
だいぶ間があきました。(^^; 今日もそんなにたくさんは読めませんでした。前回は第5節をちょっと読んで、フォントファイルをカウンターOS(似非・宮島達男・OS風を改名)用に作成するツールを作ろうと思ったところで止まってましたが、結局そのツールは先送りで読み進めます。適当な時点で作ろう。 っちゅうことで、今日は文字列表示関数の作成です(第6節)。文字列がヌル文字(0x00)で終わるのを利用して、文字列先頭ポインタ(文字列先頭アドレス)からヌル文字までをループして表示させる関数 putfont8_asc()を作成。おお、確かに表示されるわん。なるほど。 で、次(第7節)で変数値の表示の仕方を考えます。ここでは、sprintf()を利用して変数値をフォーマット変換した文字列を作成し、その文字列を第6節で作ったputfont8_asc()で表示する、としています。ふむふむ、そう考えるとヤヤコシイ機能の関数は不要になるか... 読んだだけやと身に付かんので、適当に書き換えてみました。init_palette()などの関数引数をBOOTINFO 構造体のポインタ渡しに変えてみたり。 今日、ハマったのは自分で書き換えた部分のバグ。(^^; putfont8_asc(... と書くべきところを、 putfont_asc(... と書いてたのが原因です。make したときの警告メッセージ、 warning: implicit declaration of function `putfonts_asc' に気付かず、あれこれハマってしまいました。 この警告が出た状態でもコンパイル・リンクして実行はできます。Vine Linux 3.2 + wine 上で make run すると、変なアドレスへ飛んでしまうのか画面がチラチラして動作が変でした。make install してメイン(ThinkPad A21m)上の VMware Player で実行しても結果は同じでした。まぁ、自分で仕込んだバグなんやからしゃーないか... (^^;; 今日の教訓:make時の警告メッセージをちゃんと読もう(^^; っちゅうことで、今日はここまで。 --- 26:30 --- お気に入りの記事を「いいね!」で応援しよう
Last updated
December 10, 2011 12:28:12 AM
コメント(0) | コメントを書く
[作りモノ] カテゴリの最新記事
|
|