よもぎのメモ帳

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

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

はじめに

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

企画についてはこちら

y0m0g1.hatenablog.com

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

昨日の進捗

f:id:y0m0g1:20200829234719p:plain
1/10msのカウンタ+カーソル

10msで1カウントアップするカウンタでタイマをつくりました。

昨日やったこと

タイマ割り込みをするわけで、割り込み要求IRQ0を発生させることになります。 そのハンドリングをしていきました。

タイマ割り込みで、起動してから何秒かかったか調べられる様になったので、タイムアウト機能を追加します。*1 10秒経ったら”10[sec]”と表示するようにしました。

f:id:y0m0g1:20200829235345p:plain
10秒経過している

これを複数化してみたのがこちら。

f:id:y0m0g1:20200829235529p:plain
起動してすぐ

f:id:y0m0g1:20200829235546p:plain
3秒経過している

f:id:y0m0g1:20200829235603p:plain
10秒経過している

なんとなく時間は遅く経過している気がする……?

多分この感覚は正しくて、割り込みの処理が重くなっていて、このあとは高速化みたいな感じです。

if文 / for文の処理を減らしていくという方向性でやっておしまいです。

明日も一日頑張るぞい!

*1:設定した時間が経過するとOSが通知してくれる感じ?