FrontPage  Index  Search  Changes  RSS  wikifarm  Login

int10h,AH=12h,BL=39h

カテゴリ

V-EXT

機能

DOS/V Extension テキスト密度の設定――日本語テキストモード 03h, 73h での縦長拡張モード、70h, 71h でのデフォルト拡張モードを設定します。

設定

レジスタ内容
AH12h
AL拡張モードのインデクス値(00h〜FEh)
FFh の時は標準の 80x25 テキストモードに戻す。
BHビデオモード番号
(AL = FFh の時)
BL39h

戻り値

レジスタ内容
AL12h

説明

インデクス値は、int10h,AX=1131h で取得できる DOS/V Extension ビデオ拡張モードテーブルの番号です。 先頭のテーブルのインデクス値は 0 です。

本 BIOS コールが行うのは、ディスプレイドライバ内部に保存されているインデクス値の設定のみです。 int10h,AH=00h によってビデオモードを 70h, 71h(拡張モードを設定した方)に切りかえるまで、実際の画面状態とディスプレイドライバ内部の状態は一致しません。

拡張モードの設定を解除した場合は、03h などの標準的なビデオモードに切りかえてしまうのがいちばん無難なように思います。

モードテーブル中のビデオモードが 03h, 73h のときは、縦長拡張モードの設定になります。 縦長モードを設定したビデオモードに対して int10h,AH=00h を発行した時点では縦長モードに移行せず(int10h,AH=12h,BL=38h で設定したモードに移行します)、int10h,AX=1118h を続けて発行しなければなりません。

ビデオモードのテキスト密度設定を解除したい場合は、元に戻したいビデオモードの番号を BH に入れ、AH に FFh を設定します。 ビデオモードが 70h, 71h の場合、ビデオモードそのものが無効になり、03h, 73h の場合は縦長モードが無効になります。