MSX Datapack wiki化計画

14章 画面制御コード

※
※ このページは書きかけです。以下の可能性があります。
※ ・誤字、脱字等のチェックをおこなっていません。
※ ・テキスト、表などフォーマットがされていない。
※ ・画像が抜けている。
※

 以下に示すのは、MSX-DOS2の文字ファンクションによる文字の出力やBIOSコールを実行するとき、あるいはCONデバイスへ書くときに使用することができるすべての制御コードとエスケープシーケンスのリストです。これらはMSX-DOS1と互換性があり、VT-52制御コードを含みます。画面は2〜80文字×24行です。印字可能文字が表示されるとカーソルは次の位置に移動し、行の終わりの場合には次の行の先頭に移動します。文字が画面の右下に書かれると、画面はスクロールして次の行の最初にカーソルを置きます。エスケープシーケンス中の文字は大小文字の区別を正しく行わなくてはなりません。また、読みやすいように空白が入れてありますが、空白はシーケンスの一部ではありません。数値(<n>や<m>で示されている)は通常20Hのオフセットを加えた単一バイトとしてシーケンス中に含まれます。

表2.16 制御コード

シーケンスコード機能
CTRL+G 07H ベル
CTRL+H 08H カーソルを左に。前の行にラップアラウンドして画面の左上で停止。
CTRL+I 09H タブ。次の8番目のカラムまで空白で埋め、次の行の始めにラップアラウンドし、画面の右下でスクロール。
CTRL+J 0AH 改行。画面の最下行ではスクロール。
CTRL+K 0BH カーソルをホームポジションへ。
CTRL+L 0CH 画面をクリアしてカーソルをホームポジションへ。
CTRL+M 0DH 復帰。
CTRL+[ 1BH エスケープ(後のエスケープシーケンスを参照)。
CTRL+\ 1CH カーソルを右に。次の行にラップアラウンドして画面の右下で停止。
CTRL+] 1DH カーソルを左に。前の行にラップアラウンドして画面の左上で停止。
CTRL+^ 1EH カーソルを上に。画面の左上で停止。
CTRL+_ 1FH カーソルを下に。画面の左上で停止。
DEL 7FH 文字を削除してカーソルを左に移動。前の行にラップアラウンドして画面の一番上で停止。

表2.17 エスケープシーケンス

シーケンスコード 機能
ESC A 1BH 41H カーソルを上に。画面の一番上で停止。
ESC B 1BH 42H カーソルを下に。画面の一番下で停止。
ESC C 1BH 43H カーソルを右に。行の終わりで停止。
ESC D 1BH 44H カーソルを左に。行の始めで停止。
ESC E 1BH 45H 画面をクリアしてカーソルをホームポジションに移動する。
ESC H 1BH 48H カーソルをホームポジションに移動する。
ESC J 1BH 4AH カーソルはそのままで、画面の一番下まで消去する。
ESC j 1BH 6AH 画面をクリアしてカーソルをホームポジションに移動する。
ESC K 1BH 4BH カーソルはそのままで、行の終わりまで消去する。
ESC L 1BH 4CH カーソル行の上に行を挿入し、画面の残りの部分を下にスクロールする。カーソルは新しい空行の始めに置く。
ESC l 1BH 6CH 行全体を消去する。カーソルはそのまま。
ESC M 1BH 4DH カーソル行を削除し、画面の残りの部分を上にスクロールする。カーソルは次の行の最初に置く。
ESC x 4 1BH 78H 34H ブロックカーソルを選択する。
ESC x 5 1BH 78H 35H カーソルを表示しない。
ESC y <n><m>1BH 59H <n> <m>カーソルを行<n>列<m>に置く。画面の左上隅はn=m=20H(空白)。
ESC y 4 1BH 79H 34H カーソルの形状をアンダーラインにする。
ESC y 5 1BH 79H 35H カーソルを表示する。