MSX Datapack wiki化計画

2章 コマンド行の編集

 MSX-DOSにおいてコマンド行で入力を行う場合には、入力ミスの訂正や以前のコマンドの再入力および編集といった、簡単な編集機能が使用できます。キーボードで通常の文字を入力すると、それらの文字はそのまま画面上に表示されます。大部分のコントロール文字を入力すると、それらは「^」記号に続くコントロール文字によって表現されます。例えば [CTRL]+[A]は ^A と表示されます。例外は、以下のコントロール文字です。

表2.1 コントロール文字

特殊キー 機能
[CTRL] + [M]、[⏎] コマンドの実行を開始します。コマンド行の入力、編集が完了したときに押します。
[CTRL] + [H]、[BS] カーソルのすぐ左にある文字を削除することができます。コマンド行で入力しているときはいつでも使うことができます。
[CTRL] + [I]、[TAB] タブ
[CTRL] + [R]、[INS] 「上書モード」と「挿入モード」を切り換えます。上書きモードのとき、カーソルの形状は1文字分の大きさの矩形で、入力された文字はカーソルの下にある文字を重ねがきします。挿入モードのとき、カーソル形状は1文字の半分の大きさの矩形で、入力された文字はカーソルの前に挿入されます。
[CTRL] + [[]、[ESC] 行をクリアし、新しい行の入力ができるようにします。
[CTRL] + [X]、[SELECT]       〃
[CTRL] + [K]、[HOME]カーソルを行の先頭に移動します。
[CTRL] + [C] ブレークキーとして機能します。より効果的で望ましいブレークキーは[CTRL] + [STOP]です。
[CTRL] + [J] 改行コードですが、コマンド行で入力されたときは何もおきません。
[CTRL] + [N] [CTRL] + [P]によって音にされてプリンタエコーをオフにします。
[CTRL] + [P] プリンタエコーをオンにします。オンにすると、画面上に表示される全ての文字がプリンタにも送られます。
[CTRL] + [S] 他のキーが押されるまで、全ての文字の出力を停止します。
[CTRL] + [U] 現在入力中の行を消去します。

その他の編集機能は以下のとおりです。

表2.2 編集機能

特集キー機能
[DEL] カーソルの下にある文字を削除します。
[←]、[→]カーソルを行の中で左右に移動させます。
カーソル移動後に文字を入力すると、上書きモードの時は、その時点でカーソルの下にある文字に重ね書きし、挿入モードの時は、その時点でカーソルの前に入力した文字が挿入されます。

 また、コマンド行エディタのリストは以前に入力されたコマンドのリストを最大256文字まで保存しています。[↑]キーを押すと、そのリストをさかのぼって、以前に入力されたコマンド行が表示され、コマンド行を編集したり再入力したりすることができるようになります。同様に、[↓]キーを押すと、その次に入力されたコマンド行に移動します。
 以前のコマンド行が変更されると、それは新しいコマンド行として、リストの最後に追加されます。変更されずに入力された場合は、その行はリストに追加されず、現在行がその行に移動します。これによって、以前のコマンドのすべてのシーケンスが簡単に入力できるようになります。
 リストは実際にはリング状構造になっており、リストの一番上あるいは一番下を超えて移動すると、リスト中の最後あるいは最初のコマンドにそれぞれ移動します。
 ここで記述された機能は、実際にはMSX-DOS上で実行される多くのプログラムから利用できます。MSX-DOSの「バッファ行入力」ファンクションコールを実行するプログラムでは、上に述べられたように以前の行を呼び出して再入力したり編集したりすることができます。もちろん以前の行には以前のコマンドも含まれます。