FrontPage  Index  Search  Changes  RSS  wikifarm  Login

int10h,AH=FFh

カテゴリ

DISP

機能

画面表示の更新――擬似テキストバッファの内容を元に表示画面を再描画します。

設定

レジスタ内容
AHFFh
CX再描画する文字数
(テキストバッファのバイト数ではない)
ES:DI擬似テキストバッファ内の更新部分の先頭アドレス

戻り値

説明

本 BIOS コールはもともと別のシステムソフトウェアで定義されたものですが、DOS/V ビデオサブシステムでもその仕様を流用しています(int10h,AH=FEh 参照)。

ES:DI は擬似テキストバッファ中のアドレスである必要があります。 ES の値をチェックせず、DI の値のみを判定に利用する実装が多いようですが*1、仕様上は ES の値も正しく設定する必要があります。

CX の値が文字数であることに注意してください。 テキストバッファのバイト数ではありません。 このあたりの事情は int10h,AX=1320h などと同じです。

*1 少なくとも $DISP.SYS, JDISP.SYS は ES の値を問わない。逆にいうと、再描画時のテキストアドレス計算の際は必ず int10h,AH=FEh で得られたセグメント:オフセット値をそのまま画面原点にしなければならない。C 言語の FAR, HUGE ポインタ による正規化が行われるとセグメント値が変更される可能性があるため注意が必要。