標準 Adis キー機能

以下は、Adis キーが実行する全機能のリストです。機能 0 から 27 は単一の機能です。機能 55 から 62 は、特定の状況に応じて異なる動作を実行できる複合機能です。たとえば、RM 互換性のために提供されるこれらの機能は、UPDATE 句が ACCEPT 文で指定されているかどうかによって異なる動作をします。

機能 0:ACCEPT を終了
この機能は、ACCEPT 操作を終了します。CRT STATUS フィールドの最初のバイト (pic 9 display として定義) は文字「0」(ASCII 48) に設定され、2 番目のバイト (PIC 9(2) COMP-X として定義) は 0 に設定されます。
機能 1:プログラムを終了
この機能を有効にすると、画面に中止確認のメッセージが出力され、ユーザーに文字入力が求められます。ユーザーが「Y」または「y」以外の文字で応答すると、メッセージは空白になり、ACCEPT 操作の通常の処理が続行されます。ユーザーが「Y」または「y」を押すか、何もメッセージを指定しない場合、STOP RUN を実行した場合と同様にプログラムが終了します。
機能 2:キャリッジ リターン
カーソルは、画面上の次の行の 1 列目以降のフィールド内に登場する最初の文字位置に移動されます。そのようなフィールドがない場合、何も行われません。
機能 3:カーソル左
フィールド内の前の文字にカーソルを移動します。現在の文字がフィールド内の最初の文字である場合、カーソルは前のフィールドの最後の文字に移動します。現在の文字が画面上の最初のフィールドの最初の文字である場合、エラーがユーザーに通知されます。
機能 4:カーソル右
フィールド内の次の文字にカーソルを移動します。現在の文字がフィールド内の最後の文字である場合、カーソルは次のフィールドの最初の文字に移動します。現在の文字が画面の最後のフィールドの最後の文字である場合、エラーがユーザーに通知されます。
機能 5:カーソル上
カーソルは保護されていない次の文字位置 (現在の位置の直上にあるフィールド内の位置) に移動します。
機能 6:カーソル下
現在の位置の直下にある、保護されていない次の文字位置にカーソルを移動します。

カーソルを上下に移動する場合 (機能 5 および 6)、カーソル移動機能は、フィールド内にあるが挿入文字または抑制された数字を含むことによって保護されている位置が見つかった場合は、CURSOR IS 句を使用して定義された項目と同じ規則に従います。そのような場合、カーソルは右に移り、そのフィールド内の保護されていない最初の文字位置に移動します。そのような位置がすべて保護されている場合、カーソルはフィールド内の保護されていない最後の文字位置に移動します。

機能 7:画面の先頭に移動
現在の画面の保護されていない最初の文字位置にカーソルを移動します。
機能 8:次のタブ位置に移動
カーソルを次の列のタブの停止位置に移動します。カーソルは、現在のフィールド (または複数行フィールドの行) の最後より後にある、使用可能な最初の文字位置よりも前方には移動しません。
機能 9:前のタブ位置に移動
カーソルを前の列のタブの停止位置に移動します。カーソルは、現在のフィールド (または複数行フィールドの行) の開始前にある、使用可能な最後の文字位置よりも後ろには移動しません。
機能 10:末尾
次の順序で、保護されていない文字位置にカーソルを移動します。
  1. 複数行の英数字フィールドの場合、現在の行の最後の文字位置。
  2. 現在のフィールドの最後の文字位置。
  3. 現在の画面の最後のフィールドの最初の文字位置。
機能 11:次のフィールドに移動
画面上の次のフィールドの保護されていない最初の文字位置にカーソルを移動します。カーソルが最後のフィールドにすでに存在し、ACCEPT の自動スキップがこのキーに対して使用可能でない場合、カーソルはフィールドの最後の文字に置かれ、要求は失敗したと見なされます。
機能 12:前のフィールドに移動
現在のフィールドの保護されていない最初の文字位置にカーソルを移動します。カーソルがすでに最初の位置にある場合は、前のフィールドの最初の文字位置に移動します。カーソルがすでに最初のフィールドの最初の文字にある場合、要求は失敗と見なされます。
機能 13:現在の文字の大文字小文字を変更
現在のカーソル位置の文字を取得し、アルファベットの場合は大文字小文字を切り替え、キーで入力した場合と同様に処理します。この機能は数値または漢字フィールドでは使用できません。アルファベット以外の文字での大文字小文字の変更処理は、単に文字を再度入力した場合と同じ扱いとなります。この機能は、文字を小文字に変換する場合には、元の大文字に再変換するメカニズムをオーバーライドできません。
機能 14:文字のバックスペース
現在の文字に対し論理的に先行する保護されていない文字の位置にカーソルを移動し、その文字を再入力用のバッファーにプッシュし、復元用のバッファーから取得した文字に置き換えます。挿入モードで文字を削除する場合は、フィールド内の残りの文字を位置に沿って移動し、オーバーフロー バッファーから文字を取り出して最後にギャップを埋めます。

いずれの場合も、該当するバッファーが空であるか、次の文字がフィールドで有効でない場合は、フィールドのタイプに応じてスペースまたはゼロが使用されます。数値フィールドの小数点の左側についてはアクションが少し異なりますが、論理的な効果は通常同じです。つまり、文字入力の効果を逆にします。

論理要件から生じる珍しい効果の 1 つに、フィールドの最後の位置に文字をキー入力した際にカーソルがフィールドの外に出られない場合、カーソルが文字の置換に先立って移動しない点が挙げられます。

機能 15:文字の再入力
復元用のバッファーから文字を取得し、キーボードから受け取った場合と同様に処理します。バッファーが空であるか、現在のフィールド内の文字が不正である場合、エラーが通知されます。
機能 16:単一文字の挿入
現在のカーソル位置に、フィールドの種類に応じて空白またはゼロ文字を挿入し、フィールドに沿って文字をシャッフルしてスペースを確保します。数値フィールドの小数点の左側を除いて、有効な文字を最後から押し出すことができます (失われた文字はオーバーフロー バッファーにプッシュされ、エラーがユーザーに通知されます)。数値フィールドの小数点の左側については、有効な数字が失われた場合や、カーソルが一番左の桁の位置にある場合、挿入処理が失敗します。これは、このような状況で数値挿入の操作機能を行うと、現在の数字の前に挿入されることになるためです。
機能 17:文字の削除
カーソルの位置にある文字を復元用のバッファーにプッシュし、フィールド内の残りの文字を 1 つ左に移動し、オーバーフロー バッファーから文字を取得して最後にギャップを埋めます。オーバーフロー バッファーが空の場合は、フィールドの種類に応じてスペースまたはゼロが使用されます。数値フィールドの小数点の左側についてはアクションが少し異なりますが、論理的な効果は通常同じです。つまり、文字を挿入または復元する効果を逆にします。フィールドが数値の場合、文字は破棄され、復元用のバッファーにはプッシュされません。
機能 18:文字の復元
この機能の効果と制約は、挿入される文字が復元用のバッファーから取得される以外は、文字の挿入機能 (上記の機能 16) と同じです。バッファーが空であるか、取得した文字が現在のフィールドで有効でない場合、エラーが通知されます。この機能は数値フィールドでは使用できません。
機能 19:フィールドの最後までクリア
現在のフィールド内の現在のカーソル位置およびその右側にある文字は、復元用のバッファーにプッシュされ、フィールドの種類に応じてスペースまたはゼロに置き換えられます。操作は左から右に行われ、無意のスペースとゼロが続きます。カーソルは移動しません。複数行の英数字フィールドは、この操作の目的で行の境界で分割されているものとして扱われます。
機能 20:フィールドのクリア
現在のフィールド (複数行の英数字フィールドの場合は現在の行) の内容全体を、フィールドの最初の文字位置から終わりまでクリアして復元用のバッファーにプッシュします。フィールドにはスペース (英数字フィールドの場合) またはゼロ (数値フィールドの場合) が移動され、カーソルはフィールドの種類および形式に定義されている初期位置に配置されます。
機能 21:画面の終わりまでクリア
フィールドの終わりまでクリアするために定義されたアクションは、現在のフィールド (またはライン) 上で実行され、次のフィールドにはスペースまたはゼロが適宜移動されます。
機能 22:画面のクリア
画面上のすべてのフィールドにはスペースまたはゼロが適宜転記され、カーソルがホーム ポジション (最初のフィールドの保護されていない最初の文字) に移動します。この機能により、復元用のバッファーと再入力用のバッファーがクリアされます。
機能 23:挿入モードの設定
現在の編集モードを挿入モードに設定し、関連する構成済みのインジケーターを表示または消去します。フィールド末尾インジケーターはこの機能によってクリアされます。
機能 24:置換モードの設定
現在の編集モードを置換モードに設定し、関連する構成済みのインジケーターを表示または消去します。フィールド末尾インジケーターはこの機能によってクリアされます。

挿入モードと置換モードの概念は、英数字フィールドにのみ適用されます。したがって、モード フラグは数値フィールドでは抑制され、別の英数字フィールドに移動すると復活します。

置換モードは、上書きモードと呼ばれることもあります。

機能 25:元に戻す
現在のフィールド (または行) を、カーソルが最後に移動した状態に戻します。現在のフィールドからの非表示の MOVE 操作を含む操作 (画面のクリア、画面の終わりまでクリア) は、編集が元に戻せなくなるだけでなく、フィールド タブや自動スキップ アウトなどのより明白な操作にもつながります。
機能 26:先頭
次の順序で、保護されていない文字位置にカーソルを移動します。
  1. 複数行の英数字フィールドの場合、現在の行の最初の文字位置。
  2. 現在のフィールドの最初の文字位置。
  3. 現在の画面の最初の文字位置。