ファンクション キー テーブルを作成します。
 
	  
		注: このルーチンはネイティブ COBOL でのみサポートされます。
 
 
	  
 
	 構文:
 
		 
		call X"B0" using function-code
                 key-table
 
	  
 
	 パラメーター:
 
		 
		 
		   
			 - function-code
 
 
			 - 呼び出しプロトタイプ:cblt-x1-compx
 
 
			 - PIC:pic x comp-x
 
 
		   
		   
			 - key-table
 
 
			 - 次を含むグループ:
01 key-table 03 key-pressed cblt-x1-compx *> pic x comp-x.03 key-entry-list *> Group item defined as one iteration *> of the following for each key to be *> detected: 05 key-entry-len cblt-x1-compx *> pic x comp-x.05 key-entry pic x(n) *> pic x(n) 03 key-list-end cblt-x1-compx *> pic x comp-x.
			  
 
		   
		
 
	  
 
	 入力パラメーター:
 
		 
		 
		
 
			  
			  
			  
				 
				  | function-code | 
 
				  0 を含みます。 | 
 
				
 
				 
				  | key-entry-len | 
 
				  key-entry のバイト長 (1 または 2)。 | 
 
				
 
				 
				  | key-entry | 
 
				  必要なキーで生成されるコード シーケンス。 | 
 
				
 
				 
				  | key-list-end | 
 
				  0 を含みます。 | 
 
				
 
			 
 
		  
 
 
		 
 
	  
 
	 出力パラメーター:
 
		 
		 
		
 
			  
			  
			  
				 
				  | key-pressed | 
 
				  使用されたキーと一致するテーブル エントリ。一致するエントリがない場合はゼロになります。 | 
 
				
 
			 
 
		  
 
 
		 
 
	  
 
	 
 
   
 
説明:
ACCEPT 文は、通常、データ入力で使用されるキーのみを制御キーとして認識し、Enter キーが押されると終了します。その他の制御キーについては、ビープ音が鳴り、拒否されます。このライブラリ ルーチンを呼び出すと、その他の制御キーおよびファンクション キーが使用可能になります。
このルーチンでは、追加で認識されるようにする各キーに対応するキーコード シーケンスのテーブルを宣言します。各キーによって送信されるコード シーケンスの詳細については、IBM の『パーソナル コンピューター テクニカル リファレンス マニュアル』を参照してください。
このルーチンが呼び出された後、ACCEPT 文は、Enter キーまたはテーブル内のエントリに一致するコード シーケンスを持ついずれかのキーが押されると終了します。その際、テーブルの先頭バイトに、テーブル内のどのエントリと一致したかを示す番号が格納されます。ゼロは、Enter キーが使用されたことを示します。Enter キーに対応するエントリがテーブル内にある場合は、ゼロではなく、そのキーのエントリ番号が返されます。
このルーチンでは、使用するテーブルを必要なだけ変えることができます。現在のテーブルが変更された場合に (キーが変更された場合や長さが増えた場合など)、ルーチンを再度呼び出す必要はありません。
特定のプログラムで使用されるテーブルは、このルーチンの別の呼び出しによって置き換えられるまで、そのプログラムに対して有効なままであり、同パッケージ内の他のプログラムによってこのルーチンが何度呼び出されても影響はありません。
この機能を使用するプログラム パッケージ内のプログラムごとにテーブルを明示的に設定する必要があります。連絡節でテーブルを渡すだけでは不十分です。
送信されるキーコードを把握している限り、任意のキーをテーブルで定義できます。たとえば、長さが 1 でキーコードが pic X VALUE "C" のテーブル エントリを指定すると、文字 C によって ACCEPT が終了することになります。したがって、このようなキーを使用して ACCEPT を「中断」し、独自の処理を実行してから、ACCEPT 文に戻ることもできます。これにより、特定のキーの効果を再定義したことになります。
結果のバイトは、定義されたテーブル内のキーが押されて、ACCEPT が終了した際に、およびこのルーチンが呼び出されるたびに設定されます。この場合、文字コード x"0D" が CBL_READ_KBD_CHAR ルーチンに返され、テーブル内のどのキーが押されたかが結果のバイトで示されます。つまり、CBL_READ_KBD_CHAR を使用すれば、ファンクション キーを含むすべてのキーストロークを読み取ることができます。
キーによって送信されるコード シーケンスの完全なリストについては、ご使用のパーソナル コンピューターのテクニカル リファレンス マニュアルを参照してください。
この呼び出しで定義されたキーは、Adiscf で定義されたキーよりも優先されます。
Adiscf で設定され、x"AF" 呼び出しで使用されるファンクション キー テーブルは、x"B0" 呼び出しで使用されるファンクション キー テーブルとは別のものです。x"B0" テーブル内のすべてのキー シーケンスで、キャリッジ リターン文字 (x"0D") を Adis に返すことで、両方のテーブルを同時に有効にすることができます。