テレタイプ式書き込み――1文字表示し、カーソルを動かし、必要ならスクロールします。
設定戻り値
- AL
- 文字コード
- BL
- 色(グラフィックモードのみ)
なし
現在のカーソル位置に文字を書き込み、カーソルをひとつ進め(右に動かし)ます。 カーソルが右端に達していた場合は次の行の左端に移動します。 カーソルが画面の最下行の右端にあった場合は画面が1行分上にスクロールします。 その際、最下行左端の文字属性がスクロール後のブランク行属性になります(グラフィックモード時は黒、つまり 0 です)。 つまりいたって自然な文字出力です。
Int 10h, ah=0Ah と同様に、テキストモードでは属性が更新されず、テキストバッファ中の属性がそのまま使われます。
一部の文字コードは文字として表示されず、制御コードとして処理されます。
- 07h(ベル)
- スピーカからビープ音を出します(けっこううるさい)。
- 08h(バックスペース――後退)
- カーソルをひとつ左に戻します。 文字の消去は行いません。 カーソルが画面の左端にあるときは何もしません。
- 0Ah(ラインフィード――改行)
- カーソルを1行下に移動します。 画面最下行では1行スクロールします。 カーソルの桁位置(X 座標)は変化しません。
- 0Dh(キャリッジリターン――復帰)
- カーソルを画面左端に移動します。 カーソルの行位置(Y 座標)は変化しません。
全角文字を右端の座標に表示しようとした場合は「その桁に半角ブランクが書き込まれ、次行の最初にその全角文字が書き込まれ」ると技術解説書に書かれています。 ドキュメント化されててよかった。
グラフィックモード時は BL に色を指定する必要があります。 Int 10h, ah=0Ch と同様に、256色以外のグラフィックモードでは BL の bit7 をセットすることにより XOR 値で書くことができます。
Int 10h, ah=09h
Int 10h, ah=0Ah