This document contains 3 sections:

I.	Procedure for mapping function keys under LWPD 4.1 using decudk 
	method in TNVT220
II.	Procedure for mapping function keys under LWPD 4.1 using decudk
	method in Host Presenter
III.	Procedure for mapping function keys under LWPD 4.1 in ANSI
	emulation in TNVT220


Section I.

PROCEDURE FOR MAPPING FUNCTION KEYS UNDER LWPD 4.1 USING DECUDK METHOD
----------------------------------------------------------------------

			*** TNVT220 ***

Contents:

1. Introduction
2. modified EXTMAP.TXT file
3. diff summary of original EXTMAP.TXT and the modified version
4. sample .decudk file
----------------------------------------------------------------------

1. Introduction

To assign arbitrary character or escape sequences to function keys in
TNVT220 in VT220 emulation, implement the DECUDK method:

a. reassign PC Function keys to DEC Programmable Shift-Function
   keys in EXTMAP.TXT file (assuming the extended keyboard is being
   used) 

b. create .decudk file and define character or escape sequences to be
   assigned to the DEC Programmable keys

In the example below I assigned:

        PC keys F1 - F10 to DEC keys Shift-F11 - Shift-F20
        PgUp (Numeric)   to Shift-F6
        PgDown (Numeric) to Shift-F7
        Home (Numeric)   to Shift-F8
        End (Numeric)    to Shift-F9
        Insert (Numeric) to Shift-F10

You may copy this file into C:\NET\HSTACC directory as is, or use diff
summary to make modifications to the existing EXTMAP.TXT. It is
*ESSENTIAL* that you save the original file first to a safe location
in case an error occurs. Then compile the EXTMAP.TXT file with the
KEY220 utility:

C:\NET\HSTACC> key220 extmap.txt extmap.bin

Before executing that command, also save the existing file EXTMAP.BIN.

Next, create the .decudk file in the home account of the person who
will be using remapped keyboard (or in a central location if all users
are to be affected).  When creating .decudk file, please note that ^[
means "Escape" key as quoted literally using vi, *NOT* two separate
characters.  Enter quoted characters through opening a file with vi,
pressing "i" for "insert mode" then pressing "Ctrl-v" for
"quote-next-character-literally" then pressing "Esc" key. Enter
character sequences to be assigned using HEX notation between "/" and
second "^[" on each line in the .decudk file. To activate the function
keys, "cat" the .decudk file to the environment.  You can also do it
at the command prompt:

$ cat .decudk

or at the login time by placing the same command at the end of user's
.profile (if login shell is sh, ksh, bash or zsh) or in .login if user's
login shell is csh, tcsh or other csh-derivative.
----------------------------------------------------------------------
2. modified EXTMAP.TXT

# ---- cut here --------
#
#       Copyright (c) 1992 Novell, Inc.  All Rights Reserved.
#
#       THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS 
#       AND TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, 
#       PERFORMED COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, 
#       ABRIDGED, CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, 
#       RECAST, TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT
#       OF NOVELL, INC.  ANY USE OR EXPLOITATION OF THIS WORK WITHOUT 
#       AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND CIVIL
#       LIABILITY.
#

# VT220 Function Keys Map File - EXTMAP.TXT

# This file is for the PCs with an enhanced 101/102 keys keyboard.
# The enhanced PC keyboard has keys f11 and f12, and the functions keys 
# are on top. This file maps VT220 function keys to the PC keys	as
# closely as possible.

#     Line format:

#     VT220 Function Key = PC Key Sequence [, PC Key Sequence] ;


# Defining VT220 Top-Row Function Keys

      DOSGate       = Alt d;        # Escape to DOS
      PrintScreen   = Alt p;   	    # Print Screen
      Set-up        = Alt s;        # Set-Up
      NextSession   = Alt n;        # Switch to Next TNVT220 Session
      TNVTGate      = Alt t;        # Escape to TNVT220 command proc

      Hold Screen   = NULL;         
      Break         = NULL;
      Ctrl Break    = NULL;
      Esc           = Esc;

      F6            = Alt 6;
      F7            = Alt 7;
      F8            = Alt 8;
      F9            = Alt 9;
      F10           = Alt 0;
      F11           = Alt F1;
      F12           = Alt F2;
      F13           = Alt F3;
      F14           = Alt F4;
      F15           = Alt F5;
      F16           = Alt F6;
      F17           = Alt F7;
      F18           = Alt F8;
      F19           = Alt F9;
      F20           = Alt F10;

      Shift F6      = PgUp;
      Shift F7      = PgDn;
      Shift F8      = Home;
      Shift F9      = End;
      Shift F10     = Ins;
      Shift F11     = F1;
      Shift F12     = F2;
      Shift F13     = F3;
      Shift F14     = F4;
      Shift F15     = F5;
      Shift F16     = F6;
      Shift F17     = F7;
      Shift F18     = F8;
      Shift F19     = F9;
      Shift F20     = F10;

# Auxiliary Keypad keys

      PF1           = Alt 1;
      PF2           = Alt 2;
      PF3           = Alt 3;
      PF4           = Alt 4;

      Aux 0	     = Num 0;
      Aux 1	     = Num 1;
      Aux 2	     = Num 2;
      Aux 3	     = Num 3;
      Aux 4	     = Num 4;
      Aux 5	     = Num 5;
      Aux 6	     = Num 6;
      Aux 7	     = Num 7;
      Aux 8	     = Num 8;
      Aux 9	     = Num 9;
      Aux Period     = Num Period;

      Divide         = Num Divide;      # Not a VT220 Auxillary keypad key
      Multiply       = Num Multiply;    # Not a VT220 Auxillary keypad key
      Plus           = Num Plus;        # Not a VT220 Auxillary keypad key
      Aux Minus	     = Num Minus;
      Enter          = Num Enter;

      Aux Comma	     = NULL;            # Set to NULL for 4.1 release


# Main Keypad keys

      Delete        = Del;


# Editing keypad keys

      Find          = Insert;
      InsertHere    = EditHome;
      Remove        = PageUp;
      Select        = Delete;
      PrevScreen    = EditEnd;
      NextScreen    = PageDown;

      Up Arrow      = EditUp Arrow,    Up Arrow;
      Down Arrow    = EditDown Arrow,  Down Arrow;
      Left Arrow    = EditLeft Arrow,  Left Arrow;
      Right Arrow   = EditRight Arrow, Right Arrow;


# Miscellaneous Defines

      Home          = NULL;         # if defined, generates Esc[H

      Vi-LineHome   = NULL;
      Vi-LineEnd    = NULL;
      Vi-ScreenHome = Ctrl Home;
      Vi-ScreenEnd  = Ctrl End;
      Vi-Middle     = Center;
      Vi-PgUp       = NULL;
      Vi-PgDn       = NULL;
      Vi-FileHome   = Ctrl PgUp;
      Vi-FileEnd    = Ctrl PgDn;
      Vi-Ins        = NULL;

# ---- cut here ----

----------------------------------------------------------------------
3. diff summary of the modified EXTMAP.TXT and the original EXTMAP.TXT

39,43c39,43
<       F6            = Alt 6;
<       F7            = Alt 7;
<       F8            = Alt 8;
<       F9            = Alt 9;
<       F10           = Alt 0;
---
>       F6            = F6;
>       F7            = F7;
>       F8            = F8;
>       F9            = F9;
>       F10           = F10;
55,69c55,69
<       Shift F6      = PgUp;
<       Shift F7      = PgDn;
<       Shift F8      = Home;
<       Shift F9      = End;
<       Shift F10     = Ins;
<       Shift F11     = F1;
<       Shift F12     = F2;
<       Shift F13     = F3;
<       Shift F14     = F4;
<       Shift F15     = F5;
<       Shift F16     = F6;
<       Shift F17     = F7;
<       Shift F18     = F8;
<       Shift F19     = F9;
<       Shift F20     = F10;
---
>       Shift F6      = Shift F6;
>       Shift F7      = Shift F7;
>       Shift F8      = Shift F8;
>       Shift F9      = Shift F9;
>       Shift F10     = Shift F10;
>       Shift F11     = Shift Alt F1;
>       Shift F12     = Shift Alt F2;
>       Shift F13     = Shift Alt F3;
>       Shift F14     = Shift Alt F4;
>       Shift F15     = Shift Alt F5;
>       Shift F16     = Shift Alt F6;
>       Shift F17     = Shift Alt F7;
>       Shift F18     = Shift Alt F8;
>       Shift F19     = Shift Alt F9;
>       Shift F20     = Shift Alt F10;
70a71
> 
73,76c74,77
<       PF1           = Alt 1;
<       PF2           = Alt 2;
<       PF3           = Alt 3;
<       PF4           = Alt 4;
---
>       PF1           = F1;
>       PF2           = F2;
>       PF3           = F3;
>       PF4           = F4;
123,124c124,125
<       Vi-LineHome   = NULL;
<       Vi-LineEnd    = NULL;
---
>       Vi-LineHome   = Home;
>       Vi-LineEnd    = End;
128,129c129,130
<       Vi-PgUp       = NULL;
<       Vi-PgDn       = NULL;
---
>       Vi-PgUp       = PgUp;
>       Vi-PgDn       = PgDn;
132c133
<       Vi-Ins        = NULL;
---
>       Vi-Ins        = Ins;

----------------------------------------------------------------------
4. sample .decudk file

^[P0;1|17/1B5B4A^[\ DEC Programmable Shift F6   - assigned to PgUp
^[P1;1|18/1B5B4E^[\ DEC Programmable Shift F7   - assigned to PgDown
^[P1;1|19/1B344A^[\ DEC Programmable Shift F8   - assigned to Home
^[P1;1|20/1B334A^[\ DEC Programmable Shift F9   - assigned to End
^[P1;1|21/1B4F60^[\ DEC Programmable Shift F10  - assigned to Insert
^[P1;1|23/1B4F50^[\ DEC Programmable Shift F11  - assigned to F1
^[P1;1|24/1B4F51^[\ DEC Programmable Shift F12  - assigned to F2
^[P1;1|25/1B4F52^[\ DEC Programmable Shift F13  - assigned to F3
^[P1;1|26/1B4F53^[\ DEC Programmable Shift F14  - assigned to F4
^[P1;1|28/1B4F54^[\ DEC Programmable Shift F15  - assigned to F5
^[P1;1|29/1B4F55^[\ DEC Programmable Shift F16  - assigned to F6
^[P1;1|31/1B4F56^[\ DEC Programmable Shift F17  - assigned to F7
^[P1;1|32/1B4F57^[\ DEC Programmable Shift F18  - assigned to F8
^[P1;1|33/1B4F58^[\ DEC Programmable Shift F19  - assigned to F9
^[P1;1|34/1B4F59^[\ DEC Programmable Shift F20  - assigned to F11
----------------------------------------------------------------------

Section II.

			*** HOST PRESENTER ***

Contents:

1. Introduction
2. modified UNIX_MAP.TXT file
3. diff summary of original UNIX_MAP.TXT and the modified version
4. sample .decudk file
----------------------------------------------------------------------

1. Introduction

To assign arbitrary character or escape sequences to function keys in
Host Presenter in VT220 emulation, implement the DECUDK method:

a. reassign PC Function keys to DEC Programmable Shift-Function
   keys in UNIX_MAP.TXT file

b. create .decudk file and define character or escape sequences to be
   assigned to the DEC Programmable keys

In the example below I assigned:

        PC keys F1 - F11          to DEC keys Shift-F11 - Shift-F20
        PgUp (Numeric and Edit)   to Shift-F6
        PgDown (Numeric and Edit) to Shift-F7
        Home (Numeric and Edit)   to Shift-F8
        End (Numeric and Edit)    to Shift-F9
        Insert (Numeric and Edit) to Shift-F10

You may copy this file into C:\NET\HSTACC directory as is, or use diff
summary to make modifications to the existing UNIX_MAP.TXT. It is
*ESSENTIAL* that you save the original file first to a safe location
in case an error occurs. Then compile the UNIX_MAP.TXT file with the
KEY220 utility:

C:\NET\HSTACC> key220 unix_map.txt unix_map.win

Before executing that command, also save the existing file unix_map.win.

Next, create the .decudk file in the home account of the person who
will be using remapped keyboard (or in a central location if all users
are to be affected).  When creating .decudk file, please note that ^[
means "Escape" key as quoted literally using vi, *NOT* two separate
characters.  Enter quoted characters through opening a file with vi,
pressing "i" for "insert mode" then pressing "Ctrl-v" for
"quote-next-character-literally" then pressing "Esc" key. Enter
character sequences to be assigned using HEX notation between "/" and
second "^[" on each line in the .decudk file. To activate the function
keys, "cat" the .decudk file to the environment.  You can also do it
at the command prompt:

$ cat .decudk

or at the login time by placing the same command at the end of user's
.profile (if login shell is sh, ksh, bash or zsh) or in .login if user's
login shell is csh, tcsh or other csh-derivative.
----------------------------------------------------------------------
2. modified UNIX_MAP.TXT

#
#       Copyright (c) 1992 Novell, Inc.  All Rights Reserved.
#
#       THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS 
#       AND TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, 
#       PERFORMED COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, 
#       ABRIDGED, CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, 
#       RECAST, TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT
#       OF NOVELL, INC.  ANY USE OR EXPLOITATION OF THIS WORK WITHOUT 
#       AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND CIVIL
#       LIABILITY.
#

# VT220 Function Keys Map File - UNIX_MAP.TXT

# This file is for the PCs with an enhanced 101/102 keys keyboard.
# The enhanced PC keyboard has keys f11 and f12, and the functions keys 
# are on top. This file is provided for the users who don't access DEC
# machines (don't need DEC VT Edit keys) and would prefer easy access to
# Unix VI functions.

TYPE = WINDOWS;
NAME = Unix VI Map ;

#     Line format:

#     VT220 Function Key = PC Key Sequence [, PC Key Sequence] ;


# Defining VT220 Top-Row Function Keys

# The following 5 keys are not used in Host Presenter

      PrintScreen   = NULL;      	# Print Screen
      Set-Up        = NULL;      	# Set-Up
      DOSGate       = NULL;      	# Escape to DOS
      NextSession   = NULL;      	# Switch TNVT220 Session
      TNVTGate      = NULL;      	# TNVT220 command proc gate

      Hold Screen   = ScrollLock; 	# Hold Screen
      Break	    = NULL;	 	# Break
      Ctrl Break    = Ctrl Break; 	# Answer back key
      Esc	    = Esc;		# Escape key
	    
      F6	    = NULL;
      F7	    = NULL;
      F8	    = NULL;
      F9	    = NULL;
      F10	    = NULL;
      F11	    = NULL;
      F12	    = NULL;
      F13	    = NULL;
      F14	    = NULL;
      F15           = Ctrl F5;
      F16           = Ctrl F6;
      F17           = Ctrl F7;
      F18           = Ctrl F8;
      F19           = Ctrl F9;
      F20           = Ctrl F11;      	# F10 is used by Windows
                    
      Shift f6      = PageUp;
      Shift f7      = PageDown;
      Shift f8      = editHome;
      Shift f9      = editEnd;
      Shift f10     = Insert;
      Shift f11     = f1;
      Shift f12     = f2;
      Shift f13     = f3;
      Shift f14     = f4;
      Shift f15     = f5;
      Shift f16     = f6;
      Shift f17     = f7;
      Shift f18     = f8;
      Shift f19     = f9;
      Shift f20     = f11; 	# F10 is used by Windows


# Main Keypad keys

      Delete        = Delete, Del;


# Editing keypad keys

      Find          = NULL;
      InsertHere    = NULL;
      Remove        = NULL;
      Select        = NULL;
      PrevScreen    = NULL;
      NextScreen    = NULL;

      UpArrow       = EditUpArrow,    UpArrow;
      DownArrow     = EditDownArrow,  DownArrow;
      LeftArrow     = EditLeftArrow,  LeftArrow;
      RightArrow    = EditRightArrow, RightArrow;
                    

# Auxiliary Keypad keys

      PF1            = Ctrl f1;
      PF2            = Ctrl f2;
      PF3            = Ctrl f3;
      PF4            = Ctrl f4;

      Aux 0	     = Num 0;
      Aux 1	     = Num 1;
      Aux 2	     = Num 2;
      Aux 3	     = Num 3;
      Aux 4	     = Num 4;
      Aux 5	     = Num 5;
      Aux 6	     = Num 6;
      Aux 7	     = Num 7;
      Aux 8	     = Num 8;
      Aux 9	     = Num 9;
      Aux Period     = Num Period;

      Divide         = Num Divide;      # Not a VT220 Auxillary keypad key
      Multiply       = Num Multiply;    # Not a VT220 Auxillary keypad key
      Plus           = Num Plus;        # Not a VT220 Auxillary keypad key
      Aux Minus	     = Num Minus;
      Enter          = Num Enter;          

      Aux Comma	     = NULL;            # Set to NULL for 4.1 release


# Miscellaneous defines

      Home           = NULL;         	# If defined, generates Esc[H

      Vi-ScreenHome  = AltEditHome;
      Vi-PgUp        = NULL;
      Vi-PgDn        = NULL;
      Vi-ScreenEnd   = AltEditEnd;
      Vi-Ins         = NULL;
      Vi-Middle      = NULL;            # Aux keypad not avail in Windows
      Vi-LineHome    = NULL;
      Vi-LineEnd     = NULL;
      Vi-FileHome    = shiftEditHome;
      Vi-FileEnd     = shiftEditEnd;
# ---- cut here ----

----------------------------------------------------------------------
45,53c45,53
<       F6	    = NULL;
<       F7	    = NULL;
<       F8	    = NULL;
<       F9	    = NULL;
<       F10	    = NULL;
<       F11	    = NULL;
<       F12	    = NULL;
<       F13	    = NULL;
<       F14	    = NULL;
---
>       F6            = F6;
>       F7            = F7;
>       F8            = F8;
>       F9            = F9;
>       F10           = F11;           	# F10 is used by Windows
>       F11           = Ctrl F1;
>       F12           = Ctrl F2;
>       F13           = Ctrl F3;
>       F14           = Ctrl F4;
61,75c61,75
<       Shift f6      = PageUp;
<       Shift f7      = PageDown;
<       Shift f8      = editHome;
<       Shift f9      = editEnd;
<       Shift f10     = Insert;
<       Shift f11     = f1;
<       Shift f12     = f2;
<       Shift f13     = f3;
<       Shift f14     = f4;
<       Shift f15     = f5;
<       Shift f16     = f6;
<       Shift f17     = f7;
<       Shift f18     = f8;
<       Shift f19     = f9;
<       Shift f20     = f11; 	# F10 is used by Windows
---
>       Shift f6      = Shift f6;
>       Shift f7      = Shift f7;
>       Shift f8      = Shift f8;
>       Shift f9      = Shift f9;
>       Shift f10     = Shift f11;     	# F10 is used by Windows
>       Shift f11     = Shift Ctrl f1;
>       Shift f12     = Shift Ctrl f2;
>       Shift f13     = Shift Ctrl f3;
>       Shift f14     = Shift Ctrl f4;
>       Shift f15     = Shift Ctrl f5;
>       Shift f16     = Shift Ctrl f6;
>       Shift f17     = Shift Ctrl f7;
>       Shift f18     = Shift Ctrl f8;
>       Shift f19     = Shift Ctrl f9;
>       Shift f20     = Shift Ctrl f11; 	# F10 is used by Windows
100,103c100,103
<       PF1            = Ctrl f1;
<       PF2            = Ctrl f2;
<       PF3            = Ctrl f3;
<       PF4            = Ctrl f4;
---
>       PF1            = f1;
>       PF2            = f2;
>       PF3            = f3;
>       PF4            = f4;
131,132c131,132
<       Vi-PgUp        = NULL;
<       Vi-PgDn        = NULL;
---
>       Vi-PgUp        = PageUp;
>       Vi-PgDn        = PageDown;
134,137c134,137
<       Vi-Ins         = NULL;
<       Vi-Middle      = NULL;            # Aux keypad not avail in Windows
<       Vi-LineHome    = NULL;
<       Vi-LineEnd     = NULL;
---
>       Vi-Ins         = Ins;
>       Vi-Middle      = NULL;		# Aux keypad not avail in Windows
>       Vi-LineHome    = editHome;
>       Vi-LineEnd     = editEnd;
----------------------------------------------------------------------
4. sample .decudk file

^[P0;1|17/1B5B4A^[\ DEC Programmable Shift F6   - assigned to PgUp
^[P1;1|18/1B5B4E^[\ DEC Programmable Shift F7   - assigned to PgDown
^[P1;1|19/1B344A^[\ DEC Programmable Shift F8   - assigned to Home
^[P1;1|20/1B334A^[\ DEC Programmable Shift F9   - assigned to End
^[P1;1|21/1B4F60^[\ DEC Programmable Shift F10  - assigned to Insert
^[P1;1|23/1B4F50^[\ DEC Programmable Shift F11  - assigned to F1
^[P1;1|24/1B4F51^[\ DEC Programmable Shift F12  - assigned to F2
^[P1;1|25/1B4F52^[\ DEC Programmable Shift F13  - assigned to F3
^[P1;1|26/1B4F53^[\ DEC Programmable Shift F14  - assigned to F4
^[P1;1|28/1B4F54^[\ DEC Programmable Shift F15  - assigned to F5
^[P1;1|29/1B4F55^[\ DEC Programmable Shift F16  - assigned to F6
^[P1;1|31/1B4F56^[\ DEC Programmable Shift F17  - assigned to F7
^[P1;1|32/1B4F57^[\ DEC Programmable Shift F18  - assigned to F8
^[P1;1|33/1B4F58^[\ DEC Programmable Shift F19  - assigned to F9
^[P1;1|34/1B4F59^[\ DEC Programmable Shift F20  - assigned to F11
----------------------------------------------------------------------

Section III.

PROCEDURE FOR MAPPING FUNCTION KEYS IN TNVT220 UNDER ANSI EMULATION
-------------------------------------------------------------------

Contents:
---------
1. Introduction
2. Default key mappings under ANSI emulation
3. How to use it in practice
4. Final caveat

-----------------------------------------------------------------
1. Introduction

One of the elements of setting up ANSI emulation in TNVT220 is mapping
the keys on the keyboard through KBDDATA, a file found in \NET\HSTACC
directory on the drive where LWPD 4.1 is installed.  The KBDDATA file as
shipped included only few mappings.  The following is a list of all
defaults (as shipped), and also a list of the codes that all mappable
keys produce both on the PC side and the UNIX side (if not remapped).
Those codes are presented in the form that is understood by KBDDATA.
This listing also contains additional information where appropriate.

-----------------------------------------------------------------
2. Default key mappings under ANSI emulation

Key on the PC   Codes on the    Codes on the    
keyboard	DOS side	UNIX side	Additional Info
-------------	------------	------------	---------------
      Esc	27		27
      F1	0;59		59
      F2	0;60		60
      F3	0;61		61
      F4	0;62		62
      F5	0;63		63
      F6	0;64		64
      F7	0;65		65
      F8	0;66		66
      F9	0;67		67
      F10	0;68		68
  Alt-F1	0;104		104
  Alt-F2	0;105		105
  Alt-F3	0;106		106
  Alt-F4	0;107		107
  Alt-F5	0;108		108
  Alt-F6	0;109		109
  Alt-F7	0;110		110
  Alt-F8	0;111		111
  Alt-F9	0;112		112
  Alt-F10	0;113		113
 Ctrl-F1	0;94		94
 Ctrl-F2	0;95		95
 Ctrl-F3	0;96		96
 Ctrl-F4	0;97		97
 Ctrl-F5	0;98		98
 Ctrl-F6	0;99		99
 Ctrl-F7	0;100		100
 Ctrl-F8	0;101		101
 Ctrl-F9	0;102		102
 Ctrl-F10	0;103		103
Shift-F1	0;84		84
Shift-F2	0;85		85
Shift-F3	0;86		86
Shift-F4	0;87		87
Shift-F5	0;88		88
Shift-F6	0;89		89
Shift-F7	0;90		90
Shift-F8	0;91		91
Shift-F9	0;92		92
Shift-F10	0;93		93
      ~		126		126
      `		96		96
      !		33		33
      @		64		64
      #		35		35
      $		36		36
      %		37		37
      ^		94		94
      &		38		38
      (		40		40
      )		41		41
      _		95		95
      +		43		43
      1		49		49
      2		50		50
      3		51		51
      4		52		52
      5		53		53
      6		54		54
      7		55		55
      8		56		56
      9		57		57
      0		58		58
      -		45		45
      =		61		61
 Ctrl-2		3		3	Same as Ctrl-C - interrupt
 Ctrl-6		30		30
 Ctrl--		31		31
      Bsp	8		8
 Ctrl-Bsp	127		127	Sometimes used as interrupt 
					on the UNIX side.  Often 
					used as backspace.
Shift-Bsp	8		8	See Bsp
  Alt-1		0;120		120
  Alt-2		0;121		121
  Alt-3		0;122		122
  Alt-4		0;123		123
  Alt-5		0;124		124
  Alt-6		0;125		125
  Alt-7		0;126		126
  Alt-8		0;127		127	See Ctrl-Bsp
  Alt-9		0;128		128	UNIX host echoes 
					back 0;10 (^@)
  Alt-10	0;129		1	Actually sent is 129, but 
					UNIX host translates it 
					into 1
  Alt--		0;130		2	Sent is 130, translated 
					into 2
  Alt-=		0;131		3	Sent is 131, translated 
					to 3, works like Ctrl-C
      Del	0;83		127	See Ctrl-Bsp
      Ins	0;82		82
      Home	0;72		72
      End	0;76		76
      PgUp	0;73		-1	EOF
      PgDn      0;81            21
 Ctrl-Home	0;119		119
 Ctrl-End	0;117		117
 Ctrl-PgUp	0;132		-1	EOF
 Ctrl-PgDn	0;118		118
      left	0;75		8	Same as Bsp
      right	0;77		12	Same as Ctrl-L - "treat 
					this line as the last one 
					on the page, start next 
					page from the top of the 
					screen".  In DOS known 
					as Form Feed.
      q         113             113
      w         119             119
      e         101             101
      r         114             114
      t         116             116
      y         121             121
      u         117             117
      i         105             105
      o         111             111
      p         112             112
      [         91              91
      ]         93              93
      \         92              92
      a         97              97
      s         115             115
      d         100             100
      f         102             102
      g         103             103
      h         104             104
      j         106             106
      k         107             107
      l         108             108
      ;         59              59
      '         39              39
      z         122             122
      x         120             120
      c         99              99
      v         118             118
      b         98              98
      n         110             110
      m         109             109
      ,         44              44
      .         46              46
      /         47              47
      Q         81              81
      W         87              87
      E         69              69
      R         82              82
      T         84              84
      Y         89              89
      U         85              85
      I         73              73
      O         79              79
      P         80              80
      {         123             123
      }         125             125
      |         124             124
      A         65              65
      S         83              83
      D         68              68
      F         70              70
      G         71              71
      H         72              72
      J         74              74
      K         75              75
      L         76              76
      :         58              58
      "         34              34
      Z         90              90
      X         88              88
      C         67              67
      V         86              86
      B         66              66
      N         78              78
      M         77              77
      <         60              60
      >         62              62
      ?         63              63
 Ctrl-q         17              17      Resume display
 Ctrl-w         23              23
 Ctrl-e         5               5
 Ctrl-r         18              18
 Ctrl-t         20              20
 Ctrl-y         25              25
 Ctrl-u         21              21
 Ctrl-i         9               9       Tab
 Ctrl-o         15              3       Interrupt
 Ctrl-p         16                      Captured by DOS for printing
					mode
 Ctrl-[ 	27		27	Esc
 Ctrl-] 	29		29
 Ctrl-\ 	28		28	Quit - Diagnostic Core Dump
 Ctrl-a 	1		1
 Ctrl-s 	19		19	Stop display
 Ctrl-d 	4		-1	EOF
 Ctrl-f 	6		6
 Ctrl-g 	7		7	Bell
 Ctrl-h 	8		8	Bsp
 Ctrl-j 	10		10	Newline
 Ctrl-k 	11		11
 Ctrl-l 	12		12	See Ctrl-right
 Ctrl-z 	26		26	Sometimes used to stop jobs
					in job control (if supported)
 Ctrl-x 	24		24
 Ctrl-c 	3		3
 Ctrl-v 	22		22	Quote next keystroke literally
 Ctrl-b 	2		2
 Ctrl-n 	14		14
 Ctrl-m 	13		13	CR
  Alt-q         0;16            16      UNIX echoes back Ctrl-p (16) to
                                        terminal, which turns on local
                                        printing from screen
  Alt-w         0;17            17
  Alt-e         0;18            18
  Alt-r         0;19            19      On UNIX side same as Ctrl-s -
                                        stop display
  Alt-t         0;20                    Captured by TNVT220 - Prompt
                                        Gate
  Alt-y         0;21            21
  Alt-u         0;22            22      Same as Ctrl-v - quote next
                                        keystroke literally
  Alt-i         0;23            23
  Alt-o         0;24            24
  Alt-p         0;25            25
  Alt-a         0;30            30
  Alt-s         0;31                    Captured by TNVT220 - Setup
                                        Menu Gate
  Alt-d         0;32                    Captured by TNVT220 - DOS Gate
  Alt-f         0;33            33
  Alt-g         0;34            34
  Alt-h         0;35            35
  Alt-j         0;36            36
  Alt-k         0;37            37
  Alt-l         0;38            38
  Alt-z         0;44            44
  Alt-x         0;45            45
  Alt-c         0;46            46
  Alt-v         0;47            47
  Alt-b         0;48            48
  Alt-n         0;49                    Captured by TNVT220 - Next
                                        Session Gate
  Alt-m         0;50            50

----------------------------------------------------------------------
3. How to use it in practice

To remap a key you should:

a. Find the code(s) for the key to be remapped
b. Find the code(s) for the string you want to assign to the key
c. Edit top and bottom portion of KBDDATA.

Example:

To remap Alt-F4 (Alt-Function key 4) and assign it a string "^[[Ot"
(without quotes; ^[ symbolizes escape) follow these steps:

a. Find Alt-F4 in the table listed in 2.  It is 0;107
b. Find codes for ^[[Ot - it is: 27;91;79;116
c. Edit top and bottom portions of KBDDATA:
	- top portion entry would look as follows:
	[0;107;27;91;79;116p#
	- bottom portion:
	[0;107;0;107p#

When you now launch TNVT220 in ANSI mode, your Alt-F4 should work the
way you like it.  To verify that your string is indeed being sent,
enter the following command at the UNIX host prompt (assuming sh-like
shell and SUN, AIX, SYSV and similar OS):

$ echo -n ^v<Alt-F4> | od -c

Here is how to read the above: type "echo -n" (without quotes), press
Ctrl-V, then press the key you wish to verify (Alt-F4 in this case),
then type "| od -c" and press <Enter>.  You should see the following:

0000000 033 [ O t
0000004

Ignore the first "0000000" string.  The rest shows "033" - octal for
"Esc", then [Ot - characters which follow escape in your sequence.
The "0000004" shows number of characters sent.

You may change the switch at "od" from -c to -x if you wish to see all
characters in hex notation.

NOTE: A few UNIX OSes may not react to the above command in a standard
way.  Ask your UNIX SysAdmin for correct syntax.

-----------------------------------------------------------------------
4. Final caveat

Due to less than perfect compatibility of the ANSI emulation definition
on many UNIX hosts with the common PC driver ANSI.SYS, ANSI emulation
may sometimes prove to be unpredictible. Consult with your knowledgeable
UNIX SysAdmin.

Tony Porczyk

--------------------------------------------------------------------
* Internet: tporczyk@novell.com  *  Tony Porczyk  -  1-800-NETWARE *
* MHS Mail: tonyp @ novell       *  Novell Tech Support - San Jose *
--------------------------------------------------------------------
