INT 10h、INT 10H、またはINT 16は、 x86ベースのコンピュータ システムの17 番目の割り込みベクターであるBIOS 割り込み呼び出し10 hexの省略形です。BIOSは通常、ビデオ サービスを提供するこのベクターでリアル モード割り込み ハンドラーを設定します。このようなサービスには、ビデオ モードの設定、文字と文字列の出力、およびグラフィックス プリミティブ (グラフィックス モードでのピクセルの読み取りと書き込み) が含まれます。
この呼び出しを使用するには、必要なサブ機能の番号を AH にロードし、他の必要なパラメータを他のレジスタにロードして、呼び出しを行います。INT 10h はかなり遅いため、多くのプログラムはこの BIOS ルーチンをバイパスし、ディスプレイ ハードウェアに直接アクセスします。頻繁に行われることのないビデオ モードの設定は BIOS を使用して実行できますが、ゲームで画面にグラフィックスを描画するには高速に行う必要があるため、ピクセルごとに BIOS 呼び出しを行うよりも、ビデオ RAM に直接アクセスする方が適切です。
さらに、最新の x86 システムでは、 BIOS 呼び出しはリアル モードまたは仮想 8086 モードでのみ実行できます。 v8086 はロング モードでは選択できません。つまり、保護モード(32 ビット) またはロング モード(64 ビット) で動作する最新のオペレーティング システムは、リアル モードに切り替えて BIOS を呼び出す必要があり、これは非常にコストのかかる操作になります。ほとんどの最新のシステムでは通常、ビデオ モードを直接設定するデバイス ドライバーを使用しますが、趣味のシステムではすべてのビデオ カードにデバイス ドライバーを用意するのは現実的ではありません。これは、Windows 98などの古いサポートされていないシステムでも発生している問題です。そのようなシステムでは、代わりにリアル モードに切り替えてビデオ モードを切り替え、フレーム バッファーに直接描画することができます。
EFI 1.xシステムでは、INT 10HとVESA BIOS Extensions (VBE)はEFI UGAプロトコルに置き換えられました。広く使用されているUEFI 2.xシステムでは、INT 10HとVBEはUEFI GOPに置き換えられました。[1] [2]
サポートされている機能のリスト
リストは不完全です。包括的な情報については、Ralf Brown のリストを参照してください。IBM/PC またはその他の一般的な標準関数のみを追加してください。00h から 0fh は CGA です。
参照
参考文献
- ^ 「efifb とは何か? — Linux カーネルのドキュメント」www.kernel.org 。 2020 年 11 月 24 日閲覧。
- ^ 「vesafb とは何か? — Linux カーネルのドキュメント」www.kernel.org 。 2020 年 11 月 24 日閲覧。
- ^ 「フォント変更ルーチン」。Forever Young Software 。 2020年3月8日閲覧。
- ラルフ・ブラウンの割り込みリストの INT 10h、オンライン版
- INT 10h は www.ousob.com でご覧いただけます
