VESA : Video Electronics Standards Association Edit

目次 Edit

VESAとは Edit

VESA(Video Electronics Standards Association)
ビデオ周辺機器に関する業界標準化団体のこと。

VBE Edit

VBE(VESA BIOS Extensions)
VESAが作ったビデオ周辺機器に関するBIOSコールの拡張。
これを利用することにより、ドライバがなくても、高解像度やフルカラーが利用できる。
BIOSコールだが、プロテクトモードからも実行が可能。ただし、古いVBEは対応していない。

動作を速くしたりグラフィックスボードの力を発揮するにはドライバが必須。

VESAの情報取得(al:0x00) Edit

パラメータ Edit

レジスタ内容
ahVESAファンクション(0x4f)
alVESAの情報を取得するコマンド(0x00)
es:diVESA情報を受け取るバッファアドレス(256Byte以上)

戻り値 Edit

レジスタ内容
ah0x00正常に終了した
0x01失敗した
0x02現在のハードウェアでは実行できない
0x03現在のモードでは実行できない
al0x4fVESAファンクションが有る
!0x4fVESAファンクションサポート外

取得できる情報 Edit

es:diからの256Byteに取得できる情報は以下のとおりです。

オフセットサイズ内容
0x000x04シグネチャ"VESA"
0x040x02VESAのバージョン
0x060x04
0x0a0x04各種フラグ
0x0e0x04
0x120x02VESAがサポートするVRAM容量(KB単位)
0x140xf2予約
	#情報格納アドレスの指定
	movw	$0xhhhh,	%ax
	movw	%ax,		%es
	movw	$0xhhhh,	%di

	#VESAの情報取得
	movw	$0x4f00,	%ax		#ah:0x4f, al:0x00
	int	$0x10

画面モード情報取得(al:0x01) Edit

パラメータ Edit

レジスタ内容
ahVESAファンクション(0x4f)
al画面モード情報を取得するコマンド(0x01)
cx情報を得る画面モード番号
es:di画面モード情報を受け取るバッファアドレス(256Byte以上)

戻り値 Edit

レジスタ内容
ah0x00正常に終了した
!0x00エラー
al0x4fサポート
!0x4fサポート外

取得できる情報 Edit

es:diからの256Byteに取得できる情報は以下のとおりです。

オフセットサイズ内容
0x000x02モード属性
0x020x01ウインドウAの属性
0x030x01ウインドウBの属性
0x040x02ウィンドウグラニュラリティ
0x060x02ウインドウサイズ
0x080x02ウインドウAの開始セグメント
0x0a0x02ウインドウBの開始セグメント
0x0c0x04ウインドウ関数へのポインタ
0x100x02スキャンラインのバイト数
0x120x02ディスプレイの横の大きさ
0x140x02ディスプレイの縦の大きさ
0x160x01文字1つ分の横の大きさ
0x170x01文字1つ分の縦の大きさ
0x180x01メモリプレーンの数
0x190x011ピクセルあたりのビット数
0x1a0x01バンクの数
0x1b0x01メモリモデル
0x1c0x01キロバイト単位でのバンクの大きさ
0x1d0x01イメージページの数
0x1e0x01予約:1
0x1f0x01赤成分のビット数
0x200x01赤成分のLSBの位置
0x210x01緑成分のビット数
0x220x01緑成分のLSBの位置
0x230x01青成分のビット数
0x240x01青成分のLSBの位置
0x250x01使用されないビットの数
0x260x01使用されないビットのLSBの位置
0x270x01ダイレクトカラーの属性
0x280x04リニアフレームバッファーの開始アドレス
0x2c0x04画面外の先頭VRAMオフセット
0x300x02画面外のVRAMのサイズ(KB単位)
0x320xce予約
	#情報格納アドレスの指定
	movw	$0xhhhh,	%ax
	movw	%ax,		%es
	movw	$0xhhhh,	%di

	#画面モード情報取得
	movw	$0x4f01,	%ax		#ah:0x4f, al:0x01
	movw	$0xhhhh,	%cx
	int	$0x10

画面モード設定(al:0x02) Edit

パラメータ Edit

レジスタ内容
ahVESAファンクション(0x4f)
al画面モード設定コマンド(0x02)
bxbit0-13:情報を得る画面モード番号
bit14:1_リニアアクセスモード(VESA 2.0以降)
bit15:1_VRAMクリア省略

戻り値 Edit

レジスタ内容
ah0x00正常に終了した
!0x00エラー
al0x4fサポート
!0x4fサポート外
	#画面モードの設定
	movw	$0x4f02,	%ax		#ah:0x4f, al:0x02
	movw	$0xhhhh,	%bx
	int	$0x10

モード番号と解像度 Edit

4,8bitはインデックス方式(パレット方式)、15,16,24,32bitはダイレクトカラー方式。

モード番号解像度カラー
0x0100640x4008bit
0x0101640x4808bit
0x0102800x6004bit
0x0103800x6008bit
0x01041024x7684bit
0x01051024x7688bit
0x01061280x10244bit
0x01071280x10248bit
0x010880x60テキストモード
0x0109132x132テキストモード
0x010b132x50テキストモード
0x010c132x60テキストモード
0x010d320x20015bit
0x010e320x20016bit
0x010f320x20024bit/32bit
0x0110640x48015bit
0x0111640x48016bit
0x0112640x48024bit/32bit
0x0113800x60015bit
0x0114800x60016bit
0x0115800x60024bit/32bit
0x01161024x76815bit
0x01171024x76816bit
0x01181024x76824bit/32bit
0x01191280x102415bit
0x011a1280x102416bit
0x011b1280x102424bit/32bit

ダイレクトカラー方式の詳細。 Edit

カラーAlphaRedGreenBrue備考
15bit1bit5bit5bit5bit本当は16bitだが、MSBが使用されないため、実効15bit。
16bit-5bit6bit5bit
24bit-8bit8bit8bit
32bit8bit8bit8bit8bit

関連リンク Edit


Since 2008 July. OS Project Wiki
リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS