FrontPage  Index  Search  Changes  RSS  wikifarm  Login

int10h,AX=1302h

カテゴリ

BIOS, DISP

機能

指定位置に、属性入りの文字列を書き込みます。

設定

レジスタ内容
AX1302h
BHページ番号
(日本語モードでは 0 のみ)
CX書き込む文字数
(データ配列のバイト数ではない)
DH先頭行位置(Y 座標)
DL先頭桁位置(X 座標)
ES:BPデータ配列の先頭ポインタ

データ配列

基本的には、文字コードと表示属性の対になった配列です。

オフセット内容
0文字コード
1属性
2nn 文字目の文字コード
2n+1n 文字目の属性

ただし、制御コードに対応する属性バイトは必要ありません。 つまり、制御コードが含まれる場合、データ配列のバイト数は文字数 * 2 よりも制御コードの文字数ぶんだけ短くなります。

戻り値

説明

CX は表示する文字数を示します。 データ配列のバイト数ではありません。 ES:BP から始まる文字と属性の並びが CX 個(制御コードが含まれない場合、CX * 2 バイト)表示されます。 1文字ごとに個別の属性での表示が可能です。 全角文字は2文字とみなされます。

int10h,AX=1300h と同様に、カーソル位置は変化しません。

  • 文字列の終端が 0 である必要はありません。ヌル文字も単なる文字コードとして処理されます。
  • ベル(07h)、後退(08h)、改行(0Ah)、復帰(0Dh)は制御コードとして処理されます(int10h,AH=0Eh と同様)。制御コードが含まれる文字列を表示した場合、互換性に難があるように思います*1
    制御コード部分の属性値は指定しないでください。制御コードの部分では、「文字コード+属性値」の2バイト組ではなく、制御コード1バイトのみを記述します。
  • 画面最下行の右端をこえる文字数を書き込もうとした場合、表示は切り捨てられず、必要に応じて画面がスクロールします。

*1 int10h,AX=1300h 参照。