キーボード マッピングと端末エミュレーション

このセクションでは、UNIX または Linux オペレーティング システムに関連するインプリメンテーション ツールセット(IT)のキーボード マッピング機能と、組み込みのセットアップ機能を含む端末のセットアップ手順の詳細について説明します。  
cagen
UNIX または Linux オペレーティング システムで使用できる端末タイプは非常に多いため、これらの構成手順が適用できない場合もあります。詳細については、コンピュータ ハードウェアのマニュアル、TCP/IP に関するソフトウェア マニュアル、通信ソフトウェアのマニュアルを参照してください。
AEF 環境を使用したターゲット システムで実行される生成アプリケーションでは、最大 24 組の特殊キーの組み合わせが利用可能です。これらのキーの組み合わせは、大部分がファンクション キーであり、IT およびターゲット システム アプリケーション ユーザに、操作の取り消し、アプリケーション ヘルプの呼び出し、選択可能な項目のリストの要求など、特殊または冗長な画面操作を実行するための効率的で簡単な方法を提供します。
ただし、端末タイプによっては、ファンクション キー機能が、IT が要求するものと完全には一致しない場合があります。キーボード マッピングでは、
Gen
のファンクション キー要件と、特定の端末タイプの個々のキーや同等のキーストロークのセットを結びつける機能を提供します。この機能を使用すると、IT および生成されたアプリケーションの機能を最適に使用できるように、ほとんどの端末タイプを簡単に調整できます。
キーボード マッピング ファイルは p3270keys という名前で、$IEFH ディレクトリにあります。AEF が p3270keys ファイルの検索に失敗した場合、またはファイルに目的の端末定義が含まれていない場合、AEF は UNIX または Linux が提供する端末情報データベース TERMINFO で端末定義情報を検索します。
TERMINFO は端末定義へのクイック アクセスを提供する、コンパイル済みの実行可能データ ファイルです。TERMINFO データベースの詳細については、UNIX または Linux システムのマニュアルを参照してください。
キーボード マッピング ファイル
p3270keys キーボード マッピング ファイルは、ターゲット システムの端末から入力されたキーストロークのセットを、IT および生成されたアプリケーションが使用するファンクション キー構造に変換します。
この変換は、キーボードから受信した文字列を特定の 3270 コントロールまたはファンクション キーに関連付けるために、AEF が、機能に対する入力キーの定義を含む p3270keys ファイルから ASCII 端末入力および出力文字列定義を取得した際に実行されます。また、AEF は、p3270keys ファイル定義を使用して、特定の画面機能を実行するために端末に出力する文字列を決定しています。
IT には、ファンクション キー定義、色コマンド、画面表示の説明など、特定の端末環境操作を説明するために必要なすべての要素を備えた標準の p3270keys 定義ファイルが含まれます。IT インストールでは、p3270keys ファイルがテキスト ファイルとして $IEFH ディレクトリに配置されます。これは、新しいキー マッピングを追加するように編集したり、既存の端末タイプに異なる機能が反映されるように変更したりすることができます。
キーボード マッピング ファイルの端末定義
端末定義の各セットは、「term=」という文字列で始まり、その後に入力および出力文字列定義が続きます。以下の例に形式を示し、その下の表に定義を示します。
term= [IEF_TERMSYS value] term= [alternative IEF_TERMSYS value] mnemonic name or phrase= definition string [ ] @endterm
要素
説明
term=
環境で指定されている端末タイプを識別し、端末の定義のセットの開始を表します。端末タイプに複数の名前がある場合は、名前ごとに term 行を追加します。
異なるプラットフォーム用に複数の「term=」端末定義ブロックが存在する場合、関連するプラットフォームの値は、[] で囲まれた「term=」キーワードに関連付けられます。この値は環境変数 IEF_TERMSYS で決められています。
注:
定義を使用するには、ユーザが TERM 環境変数で指定した名前がこのファイルの term= の名前と完全に一致している必要があります。
ニーモニック名またはフレーズ=
対応する AEF キーまたは機能を識別します。
定義文字列 [ ]
入力キー文字列または出力機能文字列を識別します。
@endterm
特定の端末のキー定義のセットを終了します。
各入力キー文字列または出力機能文字列は、ニーモニック名またはフレーズ(記号)と定義文字列のセットで個別の行に記載する必要があります。定義文字列は、スペースまたは行末(EOL)で終了します。出力文字列定義では、残りの行が無視されるため、コメントに使用できます。入力キー文字列定義では、入力文字列を生成するキー(または複数のキー)を角カッコで囲みます。ユーザが Esc + H キーを使用してヘルプを要求すると、AEF はキーを表示します。 
キーボード マッピング ファイルの例を以下に示します。
term=ps2 [HP9000] backtab=^@ lines=25 enter=\EOM [NumPad Enter] crgret=^M [Enter] delete=\EOn lns=\EOp down=\EOB upkey=\EOA left=\EOD right=\EOC home=\EOw eraseof=\Ef [Esc f] eraseIn=\Es [Esc s] pa1=\EOE [Alt F5] pa2=\EOF [Alt F6] pa3=\EOG [Alt F7] pf1=\EOP pf2=\EOQ pf3=\EOR pf4=\EOS pf5=\EOT pf6=\E[17~ pf7=\E[18~ pf8=\E[19~ pf9=\E[20~ pf10=\E[21~ pf11=\E[23~ [shift F1] pf12=\E[24~ [shift F2] pf13=\E[25~ [shift F3] pf14=\E[26~ [shift F4] pf15=\E[28~ [shift F5] pf16=\E[29~ [shift F6] pf17=\E[31~ [shift F7] pf18=\E[32~ [shift F8] pf19=\E[33~ [shift F9] pf20=\E[34~ [shift F10] pf21=\E[OK [Alt F1] pf22=\E[OL [Alt F2] pf23=\E[OO [Alt F3] pf24=\EON [Alt F4] blink=\E[1;5m normal=\E[0;1m reset=\E[0;1m reverse=\E[0;7m underscore=\E[0;4m blue normal=\E[0;1;36m red normal=\E[0;1;31m magenta normal=\E[0;1;35m green normal=\E[0;1;32m white normal=\E[0;1;37m cyan normal=\E[0;1;36m yellow normal=\E[0;1;33m white normal=\E[0;1;37m blue reverse=\E[7;1;34m red reverse=\E[7;1;31m magenta reverse=\E[7;1;35m green reverse=\E[7;1;32m white reverse=\E[7;1;37m cyan reverse=\E[7;1;36m yellow reverse=\E[7;1;33m white reverse=\E[7;1;37m blue blink=\E[5;1;34m red blink=\E[5;1;31m magenta blink=\E[5;1;35m green blink=\E[5;1;32m white blink=\E[5;1;37m cyan blink=\E[5;1;36m yellow blink=\E[5;1;33m @endterm
キーボード マッピング ファイルの入力文字列
一部の端末には、Return キーとテンキーの Enter キーで異なる文字を送信する機能がありません。その場合は、未使用のキーを選択し、現在送信している一連の文字を特定し、その端末の p3270keys ファイルを変更して、未使用のキーを Enter キーまたは Return キーとして認識するようにします。
以下の表は、AEF 入力キーと省略時解釈文字列を識別するキーワードを定義しています。
p3270keys 名
Termcap ID
省略時解釈
機能
\Eh
キーボード マッピングのヘルプ画面を表示します
^c
AEF を終了します
backtab
bt
\El
カーソルを前の保護されていないフィールドに移動します
chghat
\Ed
属性表示文字を切り替えます
clrkey
\Em
クリア・スクリーン
codes
\Et
3270 キーにマップされている入力キー/コードを表示します
crgret
^m
カーソルを次の行の最初の保護されていないフィールドに移動します
削除
kD
\EW
カーソル位置の文字を削除します
down
kd
カーソルを 1 行下に移動します
enter
^j
アプリケーションへの Enter 要求
eraseof
現在のフィールドの末尾まで消去します
home
kh
カーソルを最初の保護されていないフィールドに移動します
ins
kI
挿入モードを切り替えます
left
kl
^h
カーソルを 1 文字左に移動します
pa1
アプリケーションに PA1 キーを入力します
pa2
アプリケーションに PA2 キーを入力します
pa3
アプリケーションに PA3 キーを入力します
pf1
k1
アプリケーションに PF1 キーを入力します
pf2
k2
アプリケーションに PF2 キーを入力します
pf3
k3
アプリケーションに PF3 キーを入力します
pf4
k4
アプリケーションに PF4 キーを入力します
pf5
k5
アプリケーションに PF5 キーを入力します
pf6
k6
アプリケーションに PF6 キーを入力します
pf7
k7
アプリケーションに PF7 キーを入力します
pf8
k8
アプリケーションに PF8 キーを入力します
pf9
k9
アプリケーションに PF9 キーを入力します
pf10
k0
アプリケーションに PF10 キーを入力します
pf11
kB
アプリケーションに PF11 キーを入力します
pf12
kC
アプリケーションに PF12 キーを入力します
pf13
アプリケーションに PF13 キーを入力します
pf14
アプリケーションに PF14 キーを入力します
pf15
アプリケーションに PF15 キーを入力します
pf16
アプリケーションに PF16 キーを入力します
pf17
アプリケーションに PF17 キーを入力します
pf18
アプリケーションに PF18 キーを入力します
pf19
アプリケーションに PF19 キーを入力します
pf20
アプリケーションに PF20 キーを入力します
pf21
アプリケーションに PF21 キーを入力します
pf22
アプリケーションに PF22 キーを入力します
pf23
アプリケーションに PF23 キーを入力します
pf24
アプリケーションに PF24 キーを入力します
resetkey
\E\E
ロックをリセットし、挿入モードをクリアします
right
kr
カーソルを 1 文字右に移動します
tab
ta
カーソルを次の保護されていないフィールドに移動します
up
ku
カーソルを 1 行上に移動します
端末タイプの入力文字列定義の作成
端末タイプの入力文字列定義を作成するには、以下の手順を使用します。
  1. AEF を起動します。
  2. Esc キーを押します。
  3. T キーを押して、入力キー コードの表示をオンにします。
  4. p3270keys ファイルで指定されている機能に対応するキーを押します。
    25 行目のステータス行の列 54 から、そのキーを定義する文字列が表示されます。AEF がキーを認識すると、キー名が表示されます。
  5. p3270keys ファイルに、キー名= 文字列を入力します。
    たとえば、ANSI 端末で F1 キーを押すと、\E[M と表示され、その後に pf1 が表示されます。これは、p3270keys ファイルの term=ansi セクションに以下の行があるためです。
    pf1=\E[M [F1]
    F1 キーが定義されていない場合は、\E[M 文字列のみが表示されます。
  6. Esc キーを押します。
  7. T キーを押して、入力キー コードの表示をオフにします。
キーボード マッピング ファイルの出力文字列
Terminfo 定義には、クリア スクリーンやカーソルの移動などの出力機能に関する ASCII 文字列が含まれています。以下の表にそれを示します。ファイルには、色の定義やハイライトのための標準コードは含まれていません。p3270keys ファイルには、色、ハイライト、またはその両方のための文字列が含まれています。
p3270keys 名
Termcap ID
機能
blink
mb
点滅を開始します
ce
画面を行末までクリアします
cI
クリア・スクリーン
cm
カーソルを移動します
md
太字表示を開始します
reset
me
前の画面属性またはモードを終了します。たとえば、フィールドの太字表示、点滅、反転を停止します。
リバース
so
強調モードを開始します
underscore
us
下線モードを開始します
以下の表に、色とハイライトを識別するためのキーワードを示します。
色や他の特殊属性を設定しているアプリケーションでモノクロ端末を使用する場合は、エスケープ シーケンスの代わりに NULL (00)文字を送信するように、その特定の端末の p3270keys ファイル エントリを変更します。
ハイライト
シアン
赤紫
点滅
Normal
反転(REVERSE)
下線(Underscore)
以下の表に、生成されたアプリケーションで使用できるファンクション キーおよび特殊キーを示します。また、これらの表は、機能に対応する特定のキーストローク、カーソルの移動、特定の端末に対応する特殊キーを入力するスペースもあります。表を印刷し、IT または生成されるアプリケーションで使用される各端末タイプ用に表を完成させてください。
端末固有のファンクション キー定義
以下の表に、端末固有のファンクション キー定義を示します。
キー
端末定義
キー
端末定義
F1
F13
F2
F14
F3
F15
F4
F16
F5
F17
F6
F18
F7
F19
F8
F20
F9
F21
F10
F22
F11
F23
F12
F24
端末固有のカーソル移動キー定義
以下の表に、端末固有のカーソル移動キー定義を示します。
キー
端末定義
キー
端末定義
BackSpace
Insert
バック Tab
Left
クリア・スクリーン
リセット
削除
Return(リターン)
行末(EOL)まで削除
Right
前進スクロール(Down)
Tab
Enter
後退スクロール(Up)
ホーム
TERMINFO データベース
AEF が p3270keys ファイルの検索に失敗した場合、またはファイルに目的の端末定義が含まれていない場合、AEF は UNIX または Linux が提供する端末情報データベース TERMINFO で端末定義情報を検索します。
TERMINFO は端末定義へのクイック アクセスを提供する、コンパイル済みの実行可能データ ファイルです。TERMINFO データベースの詳細については、UNIX または Linux システムのマニュアルを参照してください。
AEF が p3270keys ファイルと TERMINFO から定義を見つけることができない場合、省略時解釈の定義に置き換えられます(利用可能な場合)。重要なキーを定義できない場合、定義されていないキー(または複数のキー)を識別するエラー メッセージが表示されて終了します。
あるキーに対して指定された文字列全体が、別のキーの文字列の全体または一部と一致する場合、AEF は処理を継続し、特定のキーが正しく動作しない可能性があることを警告するメッセージが表示されます。
組み込みセットアップを備えた端末
一部の端末には、ユーザが構成する必要がある組み込みセットアップ機能があります。セットアップした後、AEF を起動する前に、セットアップが正しいこと、および p3270keys エントリがセットアップと一致していることを確認してください。
AEF P3270 エミュレータ
UNIX または Linux に接続されている端末を使用している場合、AEF P3270 エミュレータはグラフィック機能なしで IBM 3279 端末をエミュレートします。24 x 80 の画面イメージと 25 行目のステータス行が保持されます。UNIX または Linux 端末のディスプレイで 25 行目が使用できない場合、AEF はステータス情報を表示するために 24 行目を使用する場合があります。
アクティブ化
コマンド aef は、AEF P3270 エミュレータを実行します。AEF プログラムが起動すると、3270 形式の画面がユーザに表示され、3270 エミュレータがアクティブになります。ユーザは、対話式アプリケーションまたはトランザクション アプリケーションを開始するために、適切なプログラム名またはトランザクション コードを入力します。
エラー状態
AEF プログラムの開始時にエラーが発生した場合は、P3270 端末エミュレーションが正常に動作せず、終了している可能性があることを示しています。
p3270keys ファイルや定義が見つからない場合、AEF は以下のメッセージを表示します。
Term setup file is missing/wrong!
このメッセージは、AEF が IEFH 環境変数に基づいて p3270keys ファイルを見つけることができないか、TERM 環境変数の端末タイプが p3270keys ファイルおよび TERMINFO データベースに定義されていない場合に発生します。
キーボード ロック
ユーザが誤ってデータを入力しようとすると、キーボードがロックされ、25 行目のステータス行に「X」とキーボードがロックされた理由を示す記号が表示されます。
キーボードのロックを解除するには、
Gen
のリセット キーを押します。
ステータス行
AEF P3270 エミュレータは、端末画面の 25 行目を使用して、エンコードされた演算子情報を表示します。演算子情報はさまざまな列に表示されます。24 行端末では、24 行目に、ステータス情報と 24 行目の通常のデータが交互に表示されます。
以下の表に、25 行目のステータス行に表示される演算子情報の概要を示します。
記号
説明
1
[4]
AEF P3270 エミュレータの準備が完了し、キーボード タスクが開始されました。
5
B
AEF P3270 エミュレータがプログラムに接続されています。
7
host
AEF P3270 エミュレータはホスト システム上で動作しています。
16
X
入力は禁止されています。列 18 の記号は理由を示します。
16
?+
前回の入力が受け入れられませんでした。これは通常、入力が禁止されているときにユーザがデータを入力しようとしたときに発生します。クリアするには、Esc キーを 2 回押します。
18
WAIT
アプリケーションの実行時間を確保するために、入力が禁止されています。
18
OP>NUM
ユーザが数値フィールドに数値以外のデータを入力しようとしました。入力された文字は 0 ~ 9 またはダッシュ(-)ではありません。クリアするには、Esc キーを 2 回押します。
18
<OP>
ユーザが保護されたフィールドまたは属性バイトを変更しようとしました。キーボード ロックをクリアして別の場所にカーソルを移動するには、Esc キーを 2 回押します。
18
OP>
ユーザがフィールドに入力しようとしたデータが多すぎます。クリアするには、Esc キーを 2 回押します。
36
NUM
カーソルは数値フィールド内にあります。0 ~ 9 またはダッシュ(-)のみ許可されます。
36
PRO
カーソルは保護されているフィールド内にあります。変更は許可されません。
36
ATR
カーソルは属性バイト上にあります。変更は許可されません。
36
KBD
ユーザがキーボードから画面の修正を開始しました。これが表示される場合、入力は禁止されません。
52
^
キーボードは挿入モードです。カーソル位置に文字が挿入されます。Ins キーを押すと、挿入モードのオンとオフが切り替わります。
54
codes
最後に入力されたキーと 3270 にマップされたキーのキー コードです。Esc + T キーでオンまたはオフにします。
終了
AEF のクリア キーを使用して、AEF プログラムの正常終了を要求します。多くの場合、これは F3 ファンクション キーです。AEF はメッセージを表示せずに終了します。
^C でも AEF を終了できます。これによって AEF プロセスが停止します。^C では予期せぬ結果が生じる可能性があるため、使用しないでください。