MAP3270(5)                                                          MAP3270(5)



NAME
       map3270 - database for mapping ascii keystrokes into IBM 3270 keys

SYNOPSIS
       map3270

DESCRIPTION
       When  emulating  IBM-style 3270 terminals under UNIX (see tn3270(1)), a
       mapping must be performed between sequences of keys  hit  on  a  user's
       (ascii) keyboard, and the keys that are available on a 3270.  For exam-
       ple, a 3270 has a key labeled EEOF which erases  the  contents  of  the
       current  field from the location of the cursor to the end.  In order to
       accomplish this function, the terminal user and a program  emulating  a
       3270 must agree on what keys will be typed to invoke the EEOF function.

       The requirements for these sequences are:

           1)   that the first character of the sequence be outside of the
                standard ascii printable characters;

           2)   that no sequence be an initial part of another (although
                sequences may share initial parts).


FORMAT
       The file consists of entries for various keyboards.  The first part  of
       an  entry lists the names of the keyboards which use that entry.  These
       names will often be the same as in /usr/share/misc/termcap  (see  term-
       cap(5));  however,  note  that often the terminals from various termcap
       entries will all use the same map3270 entry; for example, both 925  and
       925vb  (for  925 with visual bells) would probably use the same map3270
       entry.  Additionally,  there  are  occasions  when  the  terminal  type
       defines  a  window  manager, and it will then be necessary to specify a
       keyboard name (via the KEYBD environment variable) as the name  of  the
       entry.  After the names, separated by vertical bars (`|'), comes a left
       brace (`{'); the definitions; and, finally, a right brace (`}').

       Each definition consists of a reserved keyword (see list  below)  which
       identifies  the  3270 function (extended as defined below), followed by
       an equal sign (`='), followed by the various ways to generate this par-
       ticular  function,  followed  by  a  semi-colon  (`;').   Each way is a
       sequence of strings of printable ascii characters enclosed inside  sin-
       gle quotes (`''); various ways (alternatives) are separated by vertical
       bars (`|').

       Inside the single quotes, a few characters are special.  A caret  (`^')
       specifies that the next character is the ``control'' character of what-
       ever the character is.  So, `^a' represents control-a, ie:  hexadecimal
       1  (note  that  `^A' would generate the same code).  To generate rubout
       (DEL), one enters `^?'.  To represent a control character inside a file
       requires using the caret to represent a control sequence; simply typing
       control-A will not work.  Note: the ctrl-caret sequence (to generate  a
       hexadecimal 1E) is represented as `^^' (not `^\^').

       In  addition  to  the  caret,  a  letter may be preceded by a backslash
       (`\').  Since this has little effect for most characters,  its  use  is
       usually  not  recommended.   For  the case of a single quote (`''), the
       backslash prevents that single quote from terminating the string.   For
       the case of a caret (`^'), the backslash prevents the caret from having
       its special meaning.  To have the backslash be part of the  string,  it
       is necessary to place two backslashes ('\\') in the file.

       In addition, the following characters are special:

            `\E'  means an escape character;
            `\n'  means newline;
            `\t'  means tab;
            `\r'  means carriage return.

       It  is  not  necessary  for  each  character in a string to be enclosed
       within single quotes.  `\E\E\E' means three escape characters.

       Comments, which may appear anywhere on a line, begin with a  hash  mark
       (`#'), and terminate at the end of that line.  However, comments cannot
       begin inside a quoted string; a hash mark inside a quoted string has no
       special meaning.


3270 KEYS SUPPORTED
       The  following is the list of 3270 key names that are supported in this
       file.  Note that some of the keys don't really exist  on  a  3270.   In
       particular,  the developers of this file have relied extensively on the
       work at the Yale University Computer Center with  their  3270  emulator
       which  runs  in  an  IBM Series/1 front end.  The following list corre-
       sponds closely to the functions that the developers of  the  Yale  code
       offer in their product.

       In the following list, the starred ("*") functions are not supported by
       tn3270(1).  An unsupported function will  cause  tn3270(1)  to  send  a
       (possibly visual) bell sequence to the user's terminal.

               3270 Key Name   Functional description

            (*)LPRT            local print
               DP              dup character
               FM              field mark character
               CURSEL          cursor select
               CENTSIGN        EBCDIC cent sign
               RESHOW          redisplay the screen
               EINP            erase input
               EEOF            erase end of field
               DELETE          delete character
               INSRT           toggle insert mode
               TAB             field tab
               BTAB            field back tab
               COLTAB          column tab
               COLBAK          column back tab
               INDENT          indent one tab stop
               UNDENT          undent one tab stop
               NL              new line
               HOME            home the cursor
               UP              up cursor
               DOWN            down cursor
               RIGHT           right cursor
               LEFT            left cursor
               SETTAB          set a column tab
               DELTAB          delete a columntab
               SETMRG          set left margin
               SETHOM          set home position
               CLRTAB          clear all column tabs
            (*)APLON           apl on
            (*)APLOFF          apl off
            (*)APLEND          treat input as ascii
            (*)PCON            xon/xoff on
            (*)PCOFF           xon/xoff off
               DISC            disconnect (suspend)
            (*)INIT            new terminal type
            (*)ALTK            alternative keyboard dvorak
               FLINP           flush input
               ERASE           erase last character
               WERASE          erase last word
               FERASE          erase field
               SYNCH           we are in synch with the user
               RESET           reset key-unlock keyboard
               MASTER_RESET    reset, unlock and redisplay
            (*)XOFF            please hold output
            (*)XON             please give me output
               ESCAPE          enter telnet command mode
               WORDTAB         tab to beginning of next word
               WORDBACKTAB     tab to beginning of current/last word
               WORDEND         tab to end of current/next word
               FIELDEND        tab to last non-blank of current/next
                               unprotected (writable) field.

               PA1             program attention 1
               PA2             program attention 2
               PA3             program attention 3

               CLEAR           local clear of the 3270 screen
               TREQ            test request
               ENTER           enter key

               PFK1            program function key 1
               PFK2            program function key 2
               etc.            etc.
               PFK36           program function key 36

A SAMPLE ENTRY
       The  following  entry is used by tn3270(1) when unable to locate a rea-
       sonable    version    in    the    user's    environment     and     in
       /usr/share/misc/map3270:

               name {          # actual name comes from TERM variable
               clear = '^z';
               flinp = '^x';
               enter = '^m';
               delete = '^d' | '^?';   # note that '^?' is delete (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 = ' ';
               # program attention keys
               pa1 = '^p1'; pa2 = '^p2'; pa3 = '^p3';
               # program function keys
               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 KEY DEFINITIONS FOR AN ABOVE DEFINITION
       The  charts  below  show  the proper keys to emulate each 3270 function
       when using the default key mapping supplied with tn3270(1) and mset(1).

            Command Keys             IBM 3270 Key                  Default Key(s)
                                     Enter                         RETURN
                                     Clear                         control-z
            Cursor Movement Keys
                                     New Line                      control-n or
                                                                   Home
                                     Tab                           control-i
                                     Back Tab                      control-b
                                     Cursor Left                   control-h
                                     Cursor Right                  control-l
                                     Cursor Up                     control-k
                                     Cursor Down                   control-j or
                                                                   LINE FEED
            Edit Control Keys
                                     Delete Char                   control-d or
                                                                   RUB
                                     Erase EOF                     control-e
                                     Erase Input                   control-w
                                     Insert Mode                   ESC Space
                                     End Insert                    ESC Space
            Program Function Keys
                                     PF1                           ESC 1
                                     PF2                           ESC 2
                                     ...                           ...
                                     PF10                          ESC 0
                                     PF11                          ESC -
                                     PF12                          ESC =
                                     PF13                          ESC !
                                     PF14                          ESC @
                                     ...                           ...
                                     PF24                          ESC +
            Program Attention Keys
                                     PA1                           control-p 1
                                     PA2                           control-p 2
                                     PA3                           control-p 3
            Local Control Keys
                                     Reset After Error             control-r
                                     Purge Input Buffer            control-x
                                     Keyboard Unlock               control-t
                                     Redisplay Screen              control-v
            Other Keys
                                     Erase current field           control-u

FILES
       /usr/share/misc/map3270

SEE ALSO
       tn3270(1), mset(1), Yale ASCII Terminal Communication System II Program
       Description/Operator's Manual (IBM SB30-1911)

AUTHOR
       Greg Minshall

BUGS
       Tn3270 doesn't yet understand how to process all the  functions  avail-
       able  in map3270; when such a function is requested tn3270 will beep at
       you.

       The definition of "word" (for "word erase", "word  tab")  should  be  a
       run-time  option.   Currently  it  is  defined as the kernel tty driver
       defines it (strings of non-whitespace);  more  than  one  person  would
       rather  use  the  "vi"  definition  (strings  of  specials,  strings of
       alphanumeric).



4.3 Berkeley Distribution        July 31, 1991                      MAP3270(5)
