FrontPage  Index  Search  Changes  RSS  wikifarm  Login

int10h,AH=FEh

カテゴリ

DISP

機能

日本語テキストモードの擬似テキストバッファアドレスを返します。

設定

レジスタ内容
AHFEh
ES:DIB800:0000h

戻り値

レジスタ内容
ES:DI擬似テキストバッファのアドレス
擬似テキストバッファが存在しない場合、レジスタは変更されない(B800:0000h のまま)

説明

本 BIOS コールはもともと別のシステムソフトウェア(TopView*1 だっけ?)で定義されたものですが、DOS/V ビデオサブシステムでもその仕様を流用しています。

DOS/V ビデオサブシステム(ディスプレイドライバ)がインストールされている場合、日本語テキストモード(ビデオモード 03h, 70h)で有効な値が返されます。 $DISP.SYS, JDISP.SYS においては拡張 CGA モード(71h, 73h)でも有効です。

IBM の技術解説書によると、ES:DI にはあらかじめ B800:0000h(英語テキストモードの VRAM アドレス)を与えておくことになっています。 日本語テキストモードでないときは本 BIOS コール(および int10h,AH=FFh による再描画機能)は何も行わないため、この値をあらかじめ与えておけば英語テキストモードでもソフトウェアを変更せずにテキスト描画を行うことができる、というわけです。

もしこれ以外の値をあらかじめ設定しておいたらどうなるのか、ですが、擬似テキストバッファがない時にはディスプレイドライバ内部で int 10h, ah=FEh に相当する部分が実行されないだけの話なので、あらかじめ与えておいた値がそのまま戻されるだけです(仕様としては保証されないのですが)。

*1 はるか昔、IBM(たぶん米国本社)が作ったマルチウィンドウシステム。商業的にはたぶん失敗作。ほかにこの機能をサポートしているものとして DesqView がある。