よもぎのメモ帳

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

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

はじめに

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

企画についてはこちら

y0m0g1.hatenablog.com

昨日やったことを書いていきます。

昨日の進捗

f:id:y0m0g1:20200906115338p:plain
小文字の入力ができるようになった

コンソール*1*2 を作るために、文字入力を複数のウィンドウでできるようにし、Shiftキーに対応して記号の入力や小文字・大文字入力の切り替えなどしました。

昨日やったこと

すべてのタスクがなくなったときに回す”番兵タスク”をまず作りました。なにもタスクがないときにHLT命令を回し続けます。

f:id:y0m0g1:20200906121600p:plain
アイドルタスクを回している

次にコンソール画面っぽいウィンドウを作ります。

f:id:y0m0g1:20200906121739p:plain
黒背景ならそれっぽい

タブキーでアクティブウィンドウを変えられるようにして*3

f:id:y0m0g1:20200906122535p:plain
後ろの画面がアクティブ

コンソールウィンドウでも文字入力ができるようにして

f:id:y0m0g1:20200906122612p:plain
後ろのウィンドウにも文字入力

記号入力もできるようにして

f:id:y0m0g1:20200906122648p:plain
記号入力

小文字の入力もできるようにしました。

あとはBIOSからとってきた情報をもとにしてキーボードの情報、つまりCapsLockとかScrollLockとかNumLock*4とかの状態をとってきました。

明日も一日頑張るぞい!

*1:MS-DOSでいうところのコマンドプロンプトLinuxで言うところのターミナル、Windowsで言うところのPowershell

*2:そういえばPowershellはすごいんだぞって話を昨日の講演で聞いた

*3:実際には色変えているだけ

*4:使ってるキーボードにNumLockはないけど