X"B0" function 0

機能キー表を作成する。

構文:
call X"B0" using function-code
                 key-table
パラメタ:
呼び出しプロトタイプ使用時 ( 説明の読み方) PIC (32bitシステム)
function-code cblt-x1-compx pic x comp-x.
key-table 以下を含む集団項目:
  key-pressed   cblt-x1-compx   pic x comp-x.
  key-entry-list   Group item defined as one iteration of the following for each key to be detected:   Group item defined as one iteration of the following for each key to be detected:
    key-entry-len     cblt-x1-compx     pic x comp-x.
    key-entry     pic x(n)     pic x(n)
  key-list-end     cblt-x1-compx     pic x comp-x.  
入力パラメタ:
function-code 値0を含む
key-entry-len キーエントリのバイト長(1または2)
key-entry 要求されたキーによって作成されたコードシーケンス
key-list-end 値0を含む
出力パラメタ:
key-pressed 使用されるキーに対応する表エントリ。対応するものがなければ0。
説明:

ACCEPT文は通常データエントリに使用されるだけの制御キーとして認識され、Enterキーで終了する。他の制御キーはビープ音が鳴り、拒否される。本ライブラリルーチンを呼び出すことにより、他の制御キーおよび機能キーは使用可能となる。

本ルーチンはキーコードシーケンス表を提示する。これは、認識される各追加キーの表である。各キーによって送信されるコードシーケンスに関する詳細は「IBMパーソナルコンピュータ テクニカルレファレンスマニュアル(IBM Personal Computer Technical Reference Manual)」を参照。

ルーチンが呼び出された後は、ACCEPT文がEnterキーもしくは表内のエントリに合致するコードシーケンスをもつ他のキーによって終了になる。表の最初のバイトは表内のどのエントリが合致したことを示す番号が含まれている。0はEnterキーが使用されたことを表している。Enterキーが表内のエントリを保持している場合は、そのキーのエントリ番号は0以外で返される。

ルーチンは要求とともに変わっていく表を呼び出す。現行の表が変更される場合(たとえば、キーが変更されキー長が長くなった場合)、ルーチンを再度呼び出す必要はない。

特定のプログラムで使用される表は、そのプログラムが別の呼出しによって変更されるまでは有効であり、同パッケージ内の別のプログラムで本ルーチンが何度呼び出されても有効である。

本機能を使用するパッケージ内の各プログラムの表は明確に設定する必要がある。連絡節内の表を受け渡すだけでは不十分である。

キーコードが送られるのを確認できれば、表内のどのキーも定義づけできる。たとえば、長さ1でpic X VALUE "C"のキーコードの表エントリはACCEPTで終了するCの文字となる。そのため、ACCEPTの「発生」するキーを使用してプロセスを行い、ACCEPT文へ返すことができる。これにより、特定のキーの効果を再定義できる。

定義された表内のキーが押された場合のバイトは、ACCEPTでの終了とルーチンへの各呼出しを設定する。この場合、文字コードx"0D"がCBL_READ_KBD_CHAR ルーチンへ返され、表内のどのキーが押されたかをバイトによって表わされる。すなわち、CBL_READ_KBD_CHARを使用することにより、機能キーを含むすべてのキー入力を読み込むことを意味している。

キーによって送信されるコードシーケンスのリストを完成するには、各パソコンのマニュアルを参照のこと。

この呼出しによって定義されるいかなるキーもAdisCFで定義されたキーよりも優先される。

AdisCFによって設定され、x"AF"呼出しを使用する機能キー表は、x"B0"で使用される機能キー表とは別のものである。どちらの表も、Adisに返されるキャリッジリターンx"0D"の文字を生成するx"B0"表のすべてのキーシーケンスを同時に有効化することが可能である。

 キーボードルーチンの使用例

他参照:

関連項目