making_os

OS自作14日目

高解像度化します。これはアセンブラで画面モードを指定するときに、VBE(VESA Bios Extension)対応のビデオカードかどうか確認して、対応なら解像度を変化させるものです。ダメなら以前と同様に320x240で動作させます。あとは、キー入力ができるようにします…

OS自作12日目〜13日目

タイマの実装です。OSにおいてタイマは非常にたくさんを同時に扱う必要があるので、最初は単純に配列で管理します。が、先日のウィンドウ管理と同様、使用状態(使用中/未使用)が頻繁に変わるようなものは単純に配列でもつと、そのあとの管理が非常に非効…

OS自作11日目

とうとうウィンドウを描画します。 今までに作ってきたz軸管理の関数を使いますが、このままだと画面にちらつきがあるので、そこを直します。ここでは、mapというvramと同サイズの領域を使って再描画する領域を限定することでちらつきを回避しています。

OS自作10日目

先日放っておいた重ね合わせ処理です。 ウィンドウズのようなz軸の処理をやって、どんどん改良していきます。マウスカーソルを動かしたり、新たに別の文字を表示したときに、再描画する部分をなるべく小さくするように工夫していきます。

OS自作9日目

8日目までの内容とは少し違うことをやってます。・CPUのキャッシュ機能を一時的にOFFにしてメモリ容量チェックする ・メモリの割り当てと解放ができるようにする ・空き容量を表示するフラグメンテーションについてはほとんど未対応。このままだとおそらく細…

OS自作8日目

かなりペースが遅れてしまいました。。。難所は、最後の「32ビットへの道」ってとこでしょう。 asmhead.nasの中身をもう一度おさらい。・画面モードを設定(INT 0x10を使う) ・キーボードのLEDの状態をBIOSに教えてもらう(INT 0x16を使う) ・PIC(Programm…

OS自作7日目

マウス制御回路とマウスそのものに有効化命令を送って、マウスを使えるようにした。しかしまだ、マウスカーソルの位置は変わらない。表示まわりの処理は明日になるのかな? でも、まあ、着実に進んでる!

OS自作6日目

割り込みができるようになった。といっても、キーボードからの割り込みは問題ないけど、マウスのほうはまだできない段階。複雑になってまいりましたよー。

OS自作5日目

いやー、だんだん遅れ気味になってきました。(汗) このチャプターでは、描画関数を使ってフォントやマウスカーソルを表示することと、GDT/IDTの初期化を行うところです。まだ初期化しかしてないので、マウスカーソルは動きません〜。 フォントは出来合いの…

OS自作4日目

画面上にWindowsぽい画面表示を出すことができるようになった。 矩形表示関数を何度も呼び出して地道に画面づくりした結果です。^^ でもここまでずっと『OS自作入門』の筆者自作ツールに頼っているんですが・・・。これでOS作ったと言えるんだろうか。…

OS自作3日目

1日分のボリュームが結構あって大変です^^;すでに昨日さぼってしまっていますが。。。 9月末くらいには終わるでしょうか・・・?最後にC言語とアセンブラの連携があるところとかは非常に勉強になりますね。C言語ではHLTができないので、アセンブラ上…

OS自作2日目

アセンブラで書いたソースファイルを探検。 最後にMakefileの基本とか。これが結構勉強になった。Makefile結構賢いよね。

OS自作1日目

『OS自作入門』が届いたので、さっそくやってみました。 まず最初はバイナリエディタで手打ち。 その次は、アセンブラ(naskというそうです)のソースを本にある通りに書き写して動くことを確認。 中身はようわからんけど、とりあえず書いてみる、というスタ…