MAP3270(5)

名称
map3270 - ASCII のキー入力を IBM 3270 キーにマッピングするためのデータベース

書式
map3270

解説
IBM タイプの 3270 端末を UNIX でエミュレーションする場合 (tn3270(1) 参照)、 ユーザが (ASCII) キーボードを押すシーケンスと 3270 で使用可能なキーの間でマッピングを行わなければなりません。 例えば、3270には EEOF とラベルされたキーがあり、これはカーソル位置から終わりまでの 現在のフィールドの内容を消去するものです。 この機能を実現するためには、 EEOF 機能を起動するためにタイプするキーについて、 端末のユーザと 3270 をエミュレートしているプログラムが 合意しておく必要があります。

これらのシーケンスには以下の項目が要求されます。

	1)	シーケンスの最初の文字が標準の ASCII の印字可能文字でないこと。

	2)	どのシーケンスも他のシーケンスの最初の部分でないこと。
		(ただしシーケンスは最初の部分を共有できます。)

フォーマット
本ファイルはいろいろなキーボードのエントリから成ります。 エントリの最初の部分はそのエントリを使用するキーボード名を列挙します。 これらの名称はたいていは /etc/termcap ( termcap(5) 参照) にあるものと同じものです。 しかし、termcap の様々なエントリの端末すべてが、同じ map3270 のエントリを使用することがあることに注意してください。 例えば、925 と 925vb (ビジュアルベルを有する 925) はおそらく両方とも同じ map3270 のエントリを使用するでしょう。 さらに、端末のタイプがウィンドウマネージャを定義していることがあり、 その場合はキーボード名を (環境変数 KEYBD によって) エントリ名として指定する必要があります。 キーボード名の後には縦棒 (`|') で区切って、 左中括弧 (`{')、定義、そして右中括弧 (`}') が続きます。

各定義は 3270 の機能 (以下に定義するように拡張されたもの) を示す 予約語 (下のリストを参照)、等号 (`=')、この機能を生成するための 様々な方法、セミコロン (`;') の順で続きます。 各方法は 印字可能な ASCII 文字の文字列のシーケンスをシングルクォート (`´') で括ったものであり、 様々な (別の) 方法は縦棒 (`|') で区切られています。

シングルクォートではいくつかの文字は特別な扱いを受けます。 キャレット (`^') は次の文字が何であろうが ``制御'' 文字 であることを指定します。 つまり `^a' は control-a を表し、 すなわち 16 進数の 1 となります (`^A' は同じコードを生成することに注意)。 rubout (DEL) を生成するには `^?' を入力します。 ファイルの中で制御文字を表現するにはコントロールシーケンスを表示する ためにキャレットを使う必要があります。 ただ単に control-A をタイプするだけではうまくいきません。 注釈: control-^ シーケンス (16 進数で 1E) は `^^' (`^\^' ではありません) として表現されます。

キャレットのほかに、バックスラッシュ (`\') に文字を続けることもできます。 これはほとんどの文字では効果はないので、 通常はこうすることは推奨されていません。 シングルクォート (`´') の場合、バックスラッシュをつけると シングルクォートによって文字列は終了しません。 キャレット (`^') の場合、バックスラッシュによって キャレットは特殊な意味を持たなくなります。 文字列中にバックスラッシュを含めるには、 ファイル中に 2 つバックスラッシュ (`\\') を置く必要があります。

これらの他に、以下の文字が特殊な意味を持ちます。

`\E'  はエスケープ文字の意です。
`\n'  は改行の意です。
`\t'  はタブの意です。
`\r'  は復改の意です。

各文字は文字列中でシングルクォートで囲まれている必要はありません。 `\E\E\E' は 3 つのエスケープ文字を示します。

コメントは行の中でどこにでも置くことができますが、 ハッシュマーク (`#') で始まり行末で終了します。 しかし、コメントはクォートで囲まれた文字列の中で開始することはできません。 クォートで囲まれた文字列の中でのハッシュマークは特別の意味を持たなくなります。

サポートされている 3270 のキー
以下はこのファイルにおいてサポートされている 3270 のキーの名称のリストです。 これらのキーには、 実際には 3270 に存在しないものがあることに注意してください。 特にこのファイルの開発者は Yale University Computer Center で IBM の Series/1 のフロントエンドとして動作していた 3270 エミュレータ を使用した作業にかなり依存しています。 以下のリストは Yale のコードの開発者が彼らの製品に適用していた 機能に非常に密着したものです。

以下のリストで スター ("*") 印がつけられた機能は tn3270(1) ではサポートされていません。 サポートされていない機能がある場合、 tn3270(1) はユーザの端末にベル (もしくはビジュアルベル) シーケンスを送信します。

        3270 キー名称   機能説明
     (*)LPRT            ローカルプリント
        DP              文字複写
        FM              フィールドマーク文字
        CURSEL          カーソル選択
        CENTSIGN        EBCDIC のセント (¢) 記号
        RESHOW          スクリーンの再描画
        EINP            入力消去
        EEOF            フィールドの末尾まで消去
        DELETE          文字削除
        INSRT           挿入モードのトグル
        TAB             フィールドタブ
        BTAB            フィールド逆タブ
        COLTAB          カラムタブ
        COLBAK          カラム逆タブ
        INDENT          1 タブ分インデント
        UNDENT          1 タブ分逆インデント
        NL              改行
        HOME            カーソルをホーム位置へ
        UP              カーソルを上へ
        DOWN            カーソルを下へ
        RIGHT           カーソルを右へ
        LEFT            カーソルを左へ
        SETTAB          カラムタブをセット
        DELTAB          カラムタブを削除
        SETMRG          左マージンをセット
        SETHOM          ホーム位置をセット
        CLRTAB          すべてのカラムタブストップを消去
     (*)APLON           apl オン
     (*)APLOFF          apl オフ
     (*)APLEND          入力を ASCII として扱う
     (*)PCON            xon/xoff オン
     (*)PCOFF           xon/xoff オフ
        DISC            接続断 (サスペンド)
     (*)INIT            新端末タイプ
     (*)ALTK            DVRAK キーボード
        FLINP           入力消去
        ERASE           最後の文字を消去
        WERASE          最後の単語を消去
        FERASE          フィールド消去
        SYNCH           ユーザと同期中
        RESET           リセットキー - キーロック解除
        MASTER_RESET    リセットし、ロック解除し、再表示する
     (*)XOFF            出力保留
     (*)XON             出力促進
        ESCAPE          telnet コマンドモードに入る
        WORDTAB         次の語へタブ移動
        WORDBACKTAB     現在/最後の語の最初にタブ移動
        WORDEND         現在/次の語の最後にタブ移動
        FIELDEND        現在/次の保護されていない (書き込み可能)
                        フィールドの最後の空白でない位置へタブ移動
        PA1             プログラムアテンション 1
        PA2             プログラムアテンション 2
        PA3		プログラムアテンション 3
        CLEAR           3270 画面のローカルクリア
        TREQ            テスト要求
        ENTER           エンターキー
        PFK1            プログラムファンクションキー 1
        PFK2            プログラムファンクションキー 2
        etc.            etc.
        PFK36           プログラムファンクションキー 36

エントリの例
以下のエントリは、ユーザ環境と /usr/share/misc/map3270 において 適切なものが見つからない場合に tn3270(1) で使用されるエントリです。

        name {          # 環境変数 TERM による実際の名前
        clear = '^z';
        flinp = '^x';
        enter = '^m';
        delete = '^d' | '^?';   # '^?' は削除 (rubout) です。
        synch = '^r';
        reshow = '^v';
        eeof = '^e';
        tab = '^i';
        btab = '^b';
        nl = '^n';
        left = '^h';
        right = '^l';
        up = '^k';
        down = '^j';
        einp = '^w';
        reset = '^t';
        xoff = '^s';
        xon = '^q';
        escape = '^c';
        ferase = '^u';
        insrt = '\ ';
        # プログラムアテンションキー
        pa1 = '^p1'; pa2 = '^p2'; pa3 = '^p3';
        # プログラムファンクションキー
        pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4';
        pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8';
        pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E=';
        pfk13 = '\E!'; pfk14 = '\E@'; pfk15 = '\E#'; pfk16 = '\E$';
        pfk17 = '\E%'; pfk18 = '\E'; pfk19 = '\E&'; pfk20 = '\E*';
        pfk21 = '\E('; pfk22 = '\E)'; pfk23 = '\E_'; pfk24 = '\E+';
        }

上記の定義での IBM 3270 キー定義
tn3270(1) と mset(1) が提供するデフォルトキーマッピング使用時の、 3270 の各機能をエミュレートするキーを下表に示します。

     コマンドキー           IBM 3270 キー               デフォルトキー
                            Enter                       RETURN
                            Clear                       control-z
     カーソル移動キー
                            New Line                    control-n もしくは
                                                        Home
                            Tab                         control-i
                            Back Tab                    control-b
                            Cursor Left                 control-h
                            Cursor Right                control-l
                            Cursor Up                   control-k
                            Cursor Down                 control-j もしくは
                                                        LINE FEED
     編集制御キー
                            Delete Char                 control-d もしくは
                                                        RUB
                            Erase EOF                   control-e
                            Erase Input                 control-w
                            Insert Mode                 ESC Space
                            End Insert                  ESC Space
     プログラムファンクションキー
                            PF1                         ESC 1
                            PF2                         ESC 2
                            ...                         ...
                            PF10                        ESC 0
                            PF11                        ESC -
                            PF12                        ESC =
                            PF13                        ESC !
                            PF14                        ESC @
                            ...                         ...
                            PF24                        ESC +
     プログラムアテンションキー
                            PA1                         control-p 1
                            PA2                         control-p 2
                            PA3                         control-p 3
     ローカル制御キー
                            Reset After Error           control-r
                            Purge Input Buffer          control-x
                            Keyboard Unlock             control-t
                            Redisplay Screen            control-v
     その他のキー
                            Erase current field         control-u

関連ファイル
/usr/share/misc/map3270

関連項目
tn3270(1), mset(1), Yale ASCII Terminal Communication System II Program Description/Operator's Manual (IBM SB30-1911)

作者
Greg Minshall

バグ
map3270 で提供されている機能すべてについてどのように処理すれば良いのかを、未だ tn3270 は理解していません。 その様な機能が要求されると tn3270 はビープを鳴らします。

(「語消去」や「語タブ」での) 「語」の定義は実行時オプションにするべきです。 現在これはカーネルの tty ドライバでの定義のまま (空白以外の文字列) に 定義されています。"vi" での定義 (特殊文字の文字列、アルファベット数字の文字列) を使用したい人もいるでしょう。