[PR]子育てママさんへ:3年毎に15万円うけとれる保険?

ソフト開発において、書いたコードがそのまま動くことは稀です。
開発の多くの時間は通常、 不具合の洗い出し(テスト)や 各種不具合への対策(デバッグ)に費やされることになります。
通常のプログラミングでは、デバッガを駆使してこれを行います。
しかし残念ながら、OS作りの初期段階でデバッガを使うのは 簡単ではありません。
このような時でも、文字表示だけでもできれば、最低限の テストやデバッグは可能になります。
そこで、最初に文字出力のシステムコールを実装することにします。

DOSのシステムコールにあるように、 文字出力のシステムコールは INT 29h です。
当面はエスケープシーケンスを考えないことにすれば、 INT 29h は次のように簡単に実装できます。


VIDEO BIOS によってレジスタが破壊されても問題が起こらないように、 念のためレジスタを保存しています。
次に、これをシステムコールとして提供するコードを追加します。
INT 29h はリアルモード割り込みですから、 ハンドラの far アドレスを0000h:[29h*4] からの4バイトに 設定すれば良いことになります。
これを実現するコードは次のとおりです。


ここでは INT 29h について説明しましたが、 他のシステムコールも同じように設定する必要があります。
また INT 20h〜INT 3Fh の割り込みのうち機能提供のないものについては、 iret するだけのハンドラを設定する必要があります。
これらは プロテクトモードを使った設計で 説明したようにリアルモードのハンドラを必要とします。 初期化時に次のようにまとめて設定しておくと良いでしょう。



2005-08-27: ChangeLog作成 (最終更新)
Copyright (C) 2005 hoverkid, all rights reserved.
[PR]当たる!無料占いで仕事鑑定:大人気!無料占い『スピリチュアルの館』