FrontPage  Index  Search  Changes  RSS  wikifarm  Login

int10h,AH=09h

カテゴリ

BIOS, DISP

機能

指定ページのカーソル位置に文字を書き込みます(属性つき)。

設定

レジスタ内容
AH09h
AL文字コード
BHページ番号
(日本語モードでは 0 のみ)
BL属性
CX文字数

戻り値

説明

CX に書き込む文字数を設定することにより、特定の文字を特定の数だけカーソル位置以降に表示します。 実行後もカーソル位置は変化しません。
画面右端の桁に達する以上の文字数の場合は、次の行の左端に折り返して表示を続けます。
画面最下行の右端に達してもスクロールせずに、その時点で表示が打ち切られるようです。 CX が 0 の場合は何も表示されないようです。

グラフィックモードの場合、背景色(属性値上位4ビット)は無視され、つねに黒になります。

全角文字を書く場合は、1バイトづつ(つまり CX に1を設定して)書き込む必要があります。 1バイト目(ShiftJIS 上位)を書き込んだあと、カーソルを(BIOS コールかワークエリア書き換えで)1文字分右に移動し、2バイト目(ShiftJIS 下位)を書き込みます。 この間に他のビデオ BIOS コールを行った場合はしかるべき結果が得られるかどうか保証の限りではないようですが、技術解説書によると int10h,AH=13h 系の文字列書き込みは使えるようです。 (そこから類推すると、int10h,AH=FFh の画面更新も使えそうです。単に定数値やワークエリアの値を取り出しているだけと見られるものもおそらく大丈夫でしょう)