	KEYCODE.EXE for Tera Term
	T. Teranishi
	
	Copyright(C) 1994-1998 T. Teranishi
	All Rights Reserved.

KEYCODE.EXE は Tera Term のキーボード設定ファイルの中で用いられる PC key code
を調べるためのユーティリティーです。この文書では、KEYCODE.EXE の使用法および
キーボード設定ファイルの形式について説明します。

キーボード設定を変えたい場合は、この文書と Tera Term ヘルプをよく
読んでください。作者にキーボード設定に関する質問をしないでください。

-------------------------------------------------------------------------------
1. インストール

Windows Windows 3.1 または NT 3.X の場合、プログラムマネージャーに KEYCODE.EXE
のアイコンを登録してください。Windows 95 または Windows NT 4.0 の場合は
KEYCODE.EXE のショートカットを好きな場所(フォルダ、スタートメニュー、
デスクトップなど)に作成してください。

-------------------------------------------------------------------------------
2. 使用法

KEYCODE.EXE を起動すると、"Push any key." というメッセージが表示されます。
そこで、あるキーまたはキーの組み合わせ (Ctrl+ キーなど)を押すと、
"Key code is XXXX." (XXXX は最大4桁の10進数)と表示され、PC key code を知ること
ができます。

-------------------------------------------------------------------------------
3. キーボード設定ファイルについて

キーボード設定ファイルは、キーボードの各キーとそれに割りあてられる機能
(VT 端末の機能、ユーザー定義文字列の送出、Tera Term コマンドの実行、
マクロの実行)を定義します。

Tera Term インストール時のキー設定は各キーの機能が VT 端末にできるだけ近く
なるようにされています。キーボード設定ファイルを編集することによって、
自由にキー設定を変更することができます。

Tera Term のコマンドラインで Tera Term が読み込むキーボード設定ファイルの
ファイル名を指定することができます (Tera Term ヘルプ参照)。ファイル名の
拡張子を省略した場合は ".CNF" であるとみなされます。ファイル名を指定しない
場合、ファイル KEYBOARD.CNF が読み込まれます。

配布パッケージには以下のキーボード設定ファイルが含まれています。

IBMKEYB.CNF	IBM-PC/AT (いわゆる DOS/V マシン) 101 (106) キーボード用
		設定ファイルの例 (Windows 95/NT 用)

PC98KEYB.CNF	NEC PC98 キーボード用設定ファイルの例 (Windows 3.1/95 用)

NT98KEYB.CNF	NEC PC98 キーボード用設定ファイルの例 (Windows NT 用)
		(Tera Term Pro にのみ含まれています。)

KEYBOARD.CNF	標準キーボード設定ファイル
		上記 3 つのうちどれかをコピーしたもの

インストーラーは IBMKEYB.CNF, PC98KEYB.CNF, NT98KEYB.CNF のうち適切なものを
コピーして KEYBOARD.CNF ファイルを作成します。どれがコピーされるかは、
インストール中にユーザーが指定したキーボードの種類により決定されます。
もしインストール時にキーボード指定を間違った場合は、自分で適切なファイルを
コピーして KEYBOARD.CNF を作成し直してください。

*** 注意: PC98 NX シリーズの PC の場合、インストーラーで
    「IBM-PC/AT キーボード」を選択してください。***
...............................................................................
3.1 キーボード設定ファイルの形式

キーボード設定ファイルの中で用いられる PC key code は PC の各キーまたはキーの
組み合わせに対応した数値で、使用するキーボードによって異なります。

キーボード設定ファイルには、[VT editor keypad], [VT numeric keypad].
[VT function keys], [X function keys], [Shortcut keys], [User keys] の6つの
セクションが存在します。

1) [VT editor keypad] セクション
VT 端末のエディターキーを PC キーに割り当てます。

	形式:
		<VT editor key name>=<PC key code>

	<VT editor key name>
		Up, Down, Right, Left, Find, Insert, Remove, Select,
		Prev, Next

	<PC key code>
		PC key code (10進数)

	例:
		Up=328

2) [VT numeric keypad] セクション
VT端末の数値キーを PC キーに割り当てます。

	形式:
		<VT numeric key name>=<PC key code>

	<VT numeric key name>
		Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8,
		Num9, NumMinus, NumComma, NumPeriod, NumEnter, PF1,
		PF2, PF3, PF4

	<PC key code>
		PC key code (10進数)

	例:
		Num0=82

	注意: VT 端末ではメインキーパッドの "Enter" キーと数値キーパッドの
	"Enter" キーが違う文字列を送出するモードがあるので、"NumEnter=" の
	後にはメインキーの "Enter" の PC key code を書かないでください。
	メインキーパッドの "Enter" と数値キーパッドの "Enter" が同じ
	PC key code を発生するキーボード(例えば PC9801 キーボード)の場合は
	注意が必要です。

3) [VT function keys] セクション
VT 端末のファンクションキーを PC キーに割り当てます。

	形式:
		<VT function key name>=<PC key code>

	<VT function key name>
		(VT 端末のファンクションキー)
		Hold, Print, Break, F6, F7, F8, F9, F10, F11, F12,
		F13, F14, Help, Do, F17, F18, F19, F20
		(VT 端末の"ユーザー定義キー")
		UDK6, UDK7, UDK8, UDK9, UDK10, UDK11, UDK12, UDK13,
		UDK14, UDK15, UDK16, UDK17, UDK18, UDK19, UDK20

	<PC key code>
		PC key code (10進数)

	例:
		F6=64

4) [X function keys] セクション
Xterm の F1-F5 キー、およびバックタブキーを PC キーに割り当てます。

	形式:
		<Xterm function key name>=<PC key code>

	<Xterm function key name>
		XF1, XF2, XF3, XF4, XF5, XBackTab

	<PC key code>
		PC key code (10進数)

	例:
		XF1=59

5) [Shortcut keys] セクション
Tera Term の機能をPC キーに割り当てます。

	形式:
		<Shortcut key name>=<PC key code>

	<Shortcut key name>	機能
	---------------------------------------------------------
	EditCopy		[Edit] Copy コマンド
	EditPaste		[Edit] Paste コマンド
	EditPasteCR		[Edit] Paste<CR> コマンド
	EditCLS 		[Edit] Clear screen コマンド
	EditCLB 		[Edit] Clear buffer コマンド
	ControlOpenTEK		[Control] Open TEK コマンド
	ControlCloseTEK 	[Control] Close TEK コマンド
	LineUp			一行スクロールアップ
	LineDown		一行スクロールダウン
	PageUp			一ページスクロールアップ
	PageDown		一ページスクロールダウン
	BuffTop 		バッファー先頭へスクロール
	BuffBottom		バッファー最後へスクロール
	NextWin 		次の Tera Term ウィンドウへ移動
	PrevWin 		前の Tera Term ウィンドウへ移動
	NextShownWin 		次の最小化されていない Tera Term ウィンドウへ移動
	PrevShownWin 		前の最小化されていない Tera Term ウィンドウへ移動
	LocalEcho		Local echo を on/off する

	<PC key code>
		PC key code (10進数)

	例:
		LineUp=1352

6) [User keys] セクション
ユーザーキーと、そのキーを押したときに実行される機能
(文字列の送出、マクロファイルの実行、メニューコマンドの実行)を
定義します。

	形式:
		<User key name>=<PC key code>,<Control flag>,<文字列>

	<User key name>
		User1, User2, User3,...., User99
		最大99個まで設定可能、例えば10個設定する場合は User1 から
		順番に User10 までを使用し、それ以外の名前を使用してはなら
		ない。

	<PC key code>
		PC key code (10進数)

	<Control flag>
		キーを押したときに <文字列> をどのように取り扱うかを指定
		するフラグ。
			0	<文字列>をそのまま送出する。
			1	<文字列>に含まれる漢字や改行コードを
				Tera Term の設定にあわせて変換し、変換
				された文字列を送出する。
			2	<文字列>のファイル名のマクロファイルを
				実行する。
			3	メニュー ID <文字列> で指定される
				Tera Term のメニューコマンドを実行する。

	<文字列>:
		<Control flag> が 0 または 1 の場合、キーを押したときに
		送出される文字列。表示不可能な文字(制御文字等)はその
		ASCII コードを $ と2文字の16進数で表現する
		(例: CR 文字は '$0D')。"$" そのものは "$24" で表現する。
		「付録 A  ASCII コード表」参照。

		<Control flag> が 2 の場合、実行されるマクロファイルの
		ファイル名。

		<Control flag> が 3 の場合、実行されるメニューコマンドの
		メニュー ID (数字)。「付録 B  メニュー ID 表」参照。

	例:
		User1=1083,0,telnet myhost
		User2=1084,0,$0D$0A
		User3=1085,1,こんにちは。
		User4=1086,2,test.ttl
		User5=1087,3,50110

...............................................................................
3.2 注意

1つの PC key code はキーボード設定ファイルの中で一回だけ使用することが
できます。もし、1つの PC key code を複数のキー定義で使用した場合、
Tera Term がキーボード設定ファイルを読み込んだときに、
"Key code XXX is used more than once" という警告メッセージが表示されます。
この場合ある一つのキー定義だけが有効になり、その他は無視されます。

あるキー設定項目にどの PC キーも割り当てたくない場合は、以下のように
PC key code の代わりに "off" を指定してください。

EditCopy=off

...............................................................................
3.3 可能なキーの組み合わせ

キーボード設定ファイルで設定可能な PC のキーは, KEYCODE.EXE で PC key code が
表示されるキーです。単一のキーだけでなく、Ctrl, Shift, Alt を用いたキーの組み
合わせでも PC key code を表示させることができます。可能な組み合わせを
以下に示します。

	Shift+key
	Ctrl+key
	Shift+Ctrl+key
	Shift+Alt+key
	Ctrl+Alt+key
	Shift+Ctrl+Alt+key

Tera Term や Windows のショートカットキーに割り当てられているキーの組み合わせ
(例えば Alt+key など)はキーボード設定ファイルで指定できません。

ただし、Altキーをメタ・キーとして使う設定にしている場合(設定->キーボードにある
Metaキーにチェックをいれている状態)はAlt+keyも指定する事ができます。
キーコードは KEYCODE.EXE で調べられますが、単体のAltキーとの組合せには
対応していません。Altキーとの組合せでのキーコードを調べるには、単独での
キーコードを調べて、その値に2048を足してください。

たとえば、Alt+Vのキーコードは V が 47 なので、2095 となります。

; Shift + Insert
EditPaste=850

これを例えば EditPaste=2095 に変更すれば、Metaキーをパススルーにしていても
Alt+Vで張り付けができるようになります。

Shift+Insertを残したままAlt+Vでの張り付けを行いたい場合は、KEYBOARD.CNF の
[User keys]セクションに以下の設定を追加します。

User1=2095,3,50230

...............................................................................
3.4 Q & A

キーボード設定がよくわからない場合、この文書と Tera Term ヘルプを
よく読んでください。作者にキーボード設定に関する質問をしないでください。

Q. Tera Term を起動するたびに "Key code XXX is used more than once" という
   メッセージがでる。
A. 「3.2 注意」を参照。

Q. PC の F1 キーを VT100 の PF1 キーとして使いたい。以下のように設定したが
   うまくいかない。

   [VT function keys]
   F1=PF1		(これはまちがい)

A. 左辺は **PC** のキーの名前ではなく **VT端末** のキーの名前を指定しなけ
   ればなりません。また、右辺にはキーの名前ではなく、キーコードを指定して
   ください。「3.1 キーボード設定ファイルの形式」を参照。
   また、キー設定を変えるときは、キーコードの重複使用をしないようにして
   ください(「3.2 注意」を参照)。

   以下のように設定してください。

   [VT function keys]
   PF1=59			(59 は F1 キーのキーコード)
   [X function keys]
   ;XF1=59			(キーコード 59 の重複使用をさける)
   XF1=off			("off" で置き換える)

Q. F1 キーを押したときにエスケープシーケンス ESC [ A を送出するように
   するための設定方法は?
A. ユーザーキーを使えば、好きな文字列を送出することができます。
   くわしくは、「3.1 キーボード設定ファイルの形式」を読んでください。
   また、キー設定を変えるときは、キーコードの重複使用をしないようにして
   ください(「3.2 注意」を参照)。

   以下のように設定してください。

   [X function keys]
   ;XF1=59			(F1 キーのキーコード 59 の重複使用をさける)
   XF1=off			("off" で置き換える)
   [User keys]
   User1=59,0,$1B[A		(ESC の ASCII コードは $1B)

-------------------------------------------------------------------------------
付録 A	ASCII コード表 (16 進表現)

例えば、"A" の ASCII コードは $41。

------------------------------------------------------------
 Char    Code | Char    Code | Char    Code | Char    Code |
------------------------------------------------------------
 NUL (^@) $00 | DLE (^P) $10 | SPACE    $20 | 0        $30 |
 SOH (^A) $01 | DC1 (^Q) $11 | !        $21 | 1        $31 |
 STX (^B) $02 | DC2 (^R) $12 | "        $22 | 2        $32 |
 ETX (^C) $03 | DC3 (^S) $13 | #        $23 | 3        $33 |
 EOT (^D) $04 | DC4 (^T) $14 | $        $24 | 4        $34 |
 ENQ (^E) $05 | NAK (^U) $15 | %        $25 | 5        $35 |
 ACK (^F) $06 | SYN (^V) $16 | &        $26 | 6        $36 |
 BEL (^G) $07 | ETB (^W) $17 | '        $27 | 7        $37 |
 BS  (^H) $08 | CAN (^X) $18 | (        $28 | 8        $38 |
 HT  (^I) $09 | EM  (^Y) $19 | )        $29 | 9        $39 |
 LF  (^J) $0A | SUB (^Z) $1A | *        $2A | :        $3A |
 VT  (^K) $0B | ESC (^[) $1B | +        $2B | ;        $3B |
 FF  (^L) $0C | FS  (^\) $1C | ,        $2C | <        $3C |
 CR  (^M) $0D | GS  (^]) $1D | -        $2D | =        $3D |
 SO  (^N) $0E | RS  (^^) $1E | .        $2E | >        $3E |
 SI  (^O) $0F | US  (^_) $1F | /        $2F | ?        $3F |
------------------------------------------------------------
 Char    Code | Char    Code | Char    Code | Char    Code |
------------------------------------------------------------
 @        $40 | P        $50 | `        $60 | p        $70 |
 A        $41 | Q        $51 | a        $61 | q        $71 |
 B        $42 | R        $52 | b        $62 | r        $72 |
 C        $43 | S        $53 | c        $63 | s        $73 |
 D        $44 | T        $54 | d        $64 | t        $74 |
 E        $45 | U        $55 | e        $65 | u        $75 |
 F        $46 | V        $56 | f        $66 | v        $76 |
 G        $47 | W        $57 | g        $67 | w        $77 |
 H        $48 | X        $58 | h        $68 | x        $78 |
 I        $49 | Y        $59 | I        $69 | y        $79 |
 J        $4A | Z        $5A | j        $6A | z        $7A |
 K        $4B | [        $5B | k        $6B | {        $7B |
 L        $4C | \        $5C | l        $6C | |        $7C |
 M        $4D | ]        $5D | m        $6D | }        $7D |
 N        $4E | ^        $5E | n        $6E | ~        $7E |
 O        $4F | _        $5F | o        $6F | DEL      $7F |
------------------------------------------------------------

...............................................................................
付録 B	メニュー ID 表

メニュー ID の指定法については「3.1  キーボード設定ファイルの形式」を参照。
メニュー ID は将来変更される可能性があります。

1) VT window

メニューコマンド                    ID
-----------------------------------------
[File] New connection               50110
[File] Duplicate session            50111
[File] Cygwin connection            50112
[File] Log                          50120
[File] Comment to Log               50121
[File] View Log                     50122
[File] Show Log dialog              50123
[File] Send file                    50130
[File] Transfer/Kermit/Receive      50141
[File] Transfer/Kermit/Get          50142
[File] Transfer/Kermit/Send         50143
[File] Transfer/Kermit/Finish       50144
[File] Transfer/XMODEM/Receive      50145
[File] Transfer/XMODEM/Send         50146
[File] Transfer/YMODEM/Receive      50157
[File] Transfer/YMODEM/Send         50158
[File] Transfer/ZMODEM/Receive      50151
[File] Transfer/ZMODEM/Send         50152
[File] Transfer/B-Plus/Receive      50153
[File] Transfer/B-Plus/Send         50154
[File] Transfer/Quick-VAN/Receive   50155
[File] Transfer/Quick-VAN/Send      50156
[File] Change dir                   50170
[File] Replay Log                   50171
[File] LogMeTT                      50172
[File] Print                        50180
[File] Disconnect                   50190
[File] Exit                         50199
[File] Exit All                     50200
[Edit] Copy                         50210
[Edit] Copy table                   50220
[Edit] Paste                        50230
[Edit] PasteCR                      50240
[Edit] Clear screen                 50250
[Edit] Clear buffer                 50260
[Edit] Cancel selection             50270
[Edit] Select screen                50280
[Edit] Select all                   50290
[Setup] Terminal                    50310
[Setup] Window                      50320
[Setup] Font                        50330
[Setup] Keyboard                    50340
[Setup] Serial port                 50350
[Setup] TCPIP                       50360
[Setup] General                     50370
[Setup] Additional settings         50375
[Setup] Save setup                  50380
[Setup] Restore setup               50390
[Setup] Load key map                50395
[Control] Reset terminal            50410
[Control] Are you there             50420
[Control] Send break                50430
[Control] Reset port                50440
[Control] Broadcast command         50445
[Control] Open TEK                  50450
[Control] Close TEK                 50460
[Control] Macro                     50470
[Control] Show Macro Window         50480
[Window] Window                     50810
[Window] Minimize All               50811
[Window] Restore All                50812
[Window] Cascade                    50813
[Window] Stacked                    50814
[Window] Side by Side               50815
[Window] Undo - XXX                 50816
[Help] Index                        50910
[Help] About Tera Term              50990

TTSSH メニューコマンド              ID
-----------------------------------------
[Setup] SSH                         52310
[Setup] SSH Authentication          52320
[Setup] SSH Forwarding              52330
[Setup] SSH KeyGenerator            52340
[Help] About TTSSH                  52910

TTProxy メニューコマンド            ID
-----------------------------------------
[Setup] Proxy                       53310
[Help] About TTProxy                53910

TTXKanjiMenu メニューコマンド       ID
-----------------------------------------
[KanjiCode] Recv: Shift_JIS         54010
[KanjiCode] Recv: EUC-JP            54011
[KanjiCode] Recv: JIS               54012
[KanjiCode] Recv: UTF-8             54013
[KanjiCode] Recv: UTF-8m            54014
[KanjiCode] Send: Shift_JIS         54110
[KanjiCode] Send: EUC-JP            54111
[KanjiCode] Send: JIS               54112
[KanjiCode] Send: UTF-8             54113
[KanjiCode] Use one setting         54200

TTXAlwaysOnTop メニューコマンド     ID
-----------------------------------------
[Control] Always on top             55000
-- SetWindowPos(HWND_TOP)           55001 (メニュー割り当て無し)
-- SetWindowPos(HWND_BOTTOM)        55002 (メニュー割り当て無し)
-- SetWindowPos(HWND_TOPMOST)       55003 (メニュー割り当て無し)
-- SetWindowPos(HWND_NOTOPMOST)     55004 (メニュー割り当て無し)

TTXResizeMenu メニューコマンド      ID
-----------------------------------------
[Resize] Menu(1) - Menu(20)         55101 - 55120

TTXViewMode メニューコマンド        ID
-----------------------------------------
[Setup] ViewMode password           55200
[Control] View mode                 55210

TTXttyrec メニューコマンド          ID
-----------------------------------------
[File] TTY Record                   55301

TTXttyplay メニューコマンド         ID
-----------------------------------------
[File] TTY Replay                   55302

TTXRecurringCommand メニューコマンド ID
-----------------------------------------
[Setup] Recurring Command           55500
[Control] Recurring Command         55501
-- Enable Recurring Command         55502 (メニュー割り当て無し)
-- Disable Recurring Command        55503 (メニュー割り当て無し)

2) TEK window

メニューコマンド                    ID
-----------------------------------------
[File] Print                        51110
[File] Exit                         51190
[Edit] Copy                         51210
[Edit] Copy screen                  51220
[Edit] Paste                        51230
[Edit] PasteCR                      51240
[Edit] Clear screen                 51250
[Setup] Window                      51310
[Setup] Font                        51320
[VTWin]                             51410
[Window] Window                     51810
[HELP] Index                        51910
[HELP] About Tera Term              51990
