よもぎのOS自作入門 6日目/30日
はじめに
これは2020年夏休み企画「30日でOS自作してみよう!」6日目の記事です。
企画についてはこちら
昨日やったことを書いていきます
昨日の進捗
キーボードからのキー入力割り込みに反応して、左上に文字列を表示しています。まだ、マウス入力には対応していないという*1
見た目の変化は大きくない一日でした。
昨日やったこと
最初は、だんだん書いているCファイルが長くなってきたので、ファイルを分割したりヘッダを導入したりしていました。
GDTの初期化にミスが有ったのにそれに気づかず*2、今回の最後の方で急に動かなくなったときは焦りました。
for
文、いままで終了条件では<
の比較演算子使いがちだったのに*3、
OS入門では<=
をつかうことが多くてミスが起きがち。
これを済ませたら割り込みをハンドルするPIC*4の設定です。
PICとはIntel 8259であって、Intel 8086ファミリの割り込みコントローラでいて、8本の割り込み端子がある。*5 PC/AT互換機にはこれが2つあって、CPUと繋がっているPICをPIC(master)、PIC(master)の3番目の割り込み端子であるIRQ2に繋がっているPICをPIC(slave)というみたいです。 もしかしたら、こういった名称も変わるかもしれないですね。
プログラム中ではPIC(master)をPIC0、PIC(slave)をPIC1としています。そしてPIC0にはIRQ0~7が、PIC1にはIRQ8~15が対応していて、IRQ1がキーボードの、IRQ12がマウスの担当になっています。 割り込みハンドラを作って、進捗にあげたようなのができあがりました。
見た目的な変化が少ない一日でした。
今日も一日頑張るぞい!