「オペレーティングシステム」の版間の差分

削除された内容 追加された内容
編集の要約なし
編集の要約なし
71 行
 
しかし、一般的なBIOSは、アセンブラのINT 0x10命令でディスプレイに割り込みをかけられるようになっていますので、あまりハードの内情を知る必要はありません(アセンブラのINT とは、割り込み interrupt のことです。C言語の整数型変数宣言 integer とは違うので、混同しないように。)。
 
:※ なお、割り込み信号の発生のさいのチャタリングの除去は、たとえばシュミット・トリガ回路で除去できる<ref>『H8マイコン入門』、堀桂太郎、東京電機大学出版局、2003年12月20日 第1版 第2刷、162ページ</ref>。
 
また、BIOSあたりのレベルで、ディスプレイが、メモリにASCIIコードにもとづくデーターバイトを入れるだけで、その文字を順番に表示するサポートなどをしています。(ディスプレイ用のメモリに機械語のdb命令で文字を書き込むだけで、その文字をアセンブラが自動的にバイト文字に変換し、さらにBIOSとハードが連携して自動的に該当する文字を画面に表示するプログラムにしてくれる。)
76 ⟶ 78行目:
実際、日本の書店で市販の「OS自作」などを謳っている書籍を読むと、「メモリマップ」 memory map というハードウェア業者の用意した仕様にしたがって、該当するメモリの書き換えをする作業を機械語などで書いて、それでGUIを作っています。
 
けっしてOS自作界隈だけが言ってる用語ではなく、電子工作の界隈でも『メモリマップド I/O』という用語が、同じような意味であります<ref>『H8マイコン入門』、堀桂太郎、東京電機大学出版局、2003年12月20日 第1版 第2刷、54ページ</ref>。
 
原理的には、VRAMのメモリマップを書きかえる事と、(C言語でいうif文のような)条件分岐などの制御構造などの実装により、GUI画面が作れます(ディスプレイの画像はピクセル単位の点の画像の集積なので)。
1,674 ⟶ 1,677行目:
同様に IDT(Interrupt Descriptor Table)というのがある。
 
さらに、16ビット時代の昔はCPUのアドレスバスが20本までだったので、リアルモードでは利用するアドレスバスが20本までという制限が掛かっており、A00からA19までを使用している。A20以降はマスクされている。


この制限のことを「A20のマスク」という。プロテクトモードに以降するためには、このA20のマスクを解除しないといけない。