OS自作入門 onLinux 10日目



10日目が終わりましたー。
今回は、重ね合わせ処理の日です。マウスがタスクバーに重なってます。

マウスがチラチラするのは11日目で解決するっぽいです。
たぶん、ダブルバッファリングとかやるのかな?まだ読んでないからわからないけど。

今回のソースコードこちら
====
さて、今回は大幅な書き直しに追われて少々時間がかかりました。

どこを書き直していたかというと、描画系関数のvramの指定です。
たとえばboxfillやputfontみたいな関数ね。

今まではみんなbinfo->vramに直接書き込んでいたので、引数でわざわざ指定するのは
冗長だから、binfoをグローバル変数にして、各関数からbinfo->vramにアクセスしていたけれど、
この仕様は重ね合わせ処理のためだったんですね。

重ね合わせ処理では、各レイヤーのためのバッファを用意して、バッファの内容を
sheet_refresh関数でbinfo->vramに反映しているので、各々のバッファを関数に指定する必要があったのです。
背景に文字を描画するために、putfont関数にbuf_backを渡す、みたいな。

その際に、恒例の=と==のミスを今回も犯してしまい、なかなかデバッグできなかったところを
Livaさんに助けていただきました。この場を借りてお礼をさせていただきますm(_ _)m



さて、これからの予定なんですが、ここからは自作本の説明が十分っぽいので、特筆することがありません。
というよりは、内容がハードウェア的内容からソフトウェア的内容になっていくんですよね。
後残されてるハードウェア的内容は大きく見て…
・タイマ
マルチタスク(TSSなどなど)
ぐらいだと思います。正確には読んでないのでわかんないです。
アルゴリズムの説明は十分になされています。(というか、そうじゃなければ読んでいてもわかりません)

なので、これ以降はほとんどソースをアップして、スクリーンキャスト&ショットをアップして、
概要をまとめて…くらいになっちゃうんじゃないかと思います。その点はご了承ください。

勿論、これは説明が要りそうだなーと思ったら適宜はさむつもりです。


そしてもう一つ。


僕は現高2なので、受験まであと1年です。
正直、今の状況でもパソコンを触るのもどうかと思いますが、子供のうちにやりたいことは
やっておかないと絶対に後々後悔するのでなんとか…。
それでも流石に、来年はこんなに更新できないと思います。

今のところ、14日目までは最低でもやる予定です。マルチタスクに入る前です。
理由は特にないです。敢えて言うならキリがいいのと、あと4日分ならたぶん大丈夫だと何となく思ったくらい。

そんなわけで、この点もご了承ください。


ご覧になっている方には本当に感謝しておりますので、心苦しいのですが…。