よもぎのメモ帳

備忘録的な感じで技術的なことをストックしていきます。

よもぎのOS自作入門 11日目/30日

はじめに

これは2020年夏休み企画「30日でOS自作してみよう!」11日目の記事です。

企画についてはこちら

y0m0g1.hatenablog.com

昨日(今日)やったことを書いていきます。だんだん遅れてる……明日2日分頑張る

昨日の進捗

f:id:y0m0g1:20200828231000p:plain
カウンタウィンドウ

ウインドウを表示して、めちゃはやくカウントアップする数字が出来上がりました。

昨日やったこと

最初はマウスカーソルが画面外に行くときの挙動を調整しました。

f:id:y0m0g1:20200828231139p:plain
雑にやった結果

vram上では一次元の配列なので右からはみ出た情報は次の行の一番左に影響しちゃうんですね、なのでそこを書き込んで上書きしないようにしてあげます。

f:id:y0m0g1:20200828231253p:plain
ちゃんと右にはみ出てる

次にウィンドウを表示します。これでだいぶそれっぽさができました。なんか20年くらい前の感じですね。

f:id:y0m0g1:20200828231359p:plain
ウインドウを表示

ただ、重ね順は動的ではなく静的に設定しているので、カーソルはウインドウの上だったり下だったりを通過させるためには、いちいち変えてmakeさせる必要があります。

f:id:y0m0g1:20200828231436p:plain
ウインドウonカーソル

ウインドウに表示する内容をいじればカウンタになります。

あとは画面の更新範囲を限定させることでちらつきを抑える、といったことをしたのですが、もとからあんまりちらついていないような……? 1文字間違えて延々とバグってて頭めっちゃ抱えた。

f:id:y0m0g1:20200828232219p:plain
2文字間違えていたとき

f:id:y0m0g1:20200828232238p:plain
1文字直して1文字間違えていたとき

明日も一日頑張るぞい!