Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
 mapchan(8)			      06       January	     1993
mapchan(8)

 NAME

    mapchan - format of tty device mapping files

 DESCRIPTION

    mapchan configures the mapping of information input and  out-
put.

    Each  unique channel map requires a multiple of 1024 bytes (a
1K buffer)
    for mapping the input and output of  characters.  No  buffers
are required
    if	no  channels are mapped.  If control sequences are speci-
fied, an addi-
    tional 1K buffer is required.

    A method of sharing maps is  implemented  for  channels  that
have the same
    map  in place. Each additional, unique map allocates an addi-
tional buffer.
    The maximum number of map buffers available on  a  system  is
configured in
    the  kernel, and is adjustable via the link kit NEMAP parame-
ter (see con-
    figure(ADM)).  Buffers of maps no longer in use are  returned
for use by
    other maps.

    Example of a map file

    The  internal character set is defined by the right column of
the input
    map, and the first column of the output map in place on  that
line.  The
    default  internal character set is the 8-bit ISO 8859/1 char-
acter set,
    which is also known as dpANS  X3.4.2  and  ISO/TC97/SC2.   It
supports the
    Latin alphabet and can represent most European languages.

    Any  character  value  not	given is assumed to be a straight
mapping:  only
    the differences are shown  in  the	mapfile.   The	left-hand
columns must be
    unique.   More  than one occurrence of any entry is an error.
Right-hand
    column characters can appear more than once. This  is  ``many
to one'' map-
    ping.   Nulls  can	be  produced with compose sequences or as
part of an out-
    put string.

    It is recommended that no mapping be enabled on  the  channel
used to cre-
    ate or modify the mapping files.  This prevents any confusion
of the
    actual values being entered due to mapping. It is also recom-
mended that
    numeric rather than character representations be used in most
cases, as
    these  are	not likely to be subject to mapping. Use comments
to identify
    the characters represented. Refer to the ascii(M) manual page
and the
    hardware reference manual for the device being mapped for the
values to
    assign.

    #
    # sharp/pound/cross-hatch is the comment character
    # however, a quoted # ('#') is 0x23, not a comment
    #
    # beep, input, output, dead, compose and
    # control are special keywords and should appear as shown.
    #
    beep		    # sound the bell when errors occur
    input

    'a' 'b'
    'c' 'd'

    dead 'p'
    'q' 'r'		    # p followed by q yields r
    's' 't'		    # p followed by s yields t

    dead 'u'
    'v' 'w'		    # u followed by v yields w

    compose 'x' 	    # x is the compose key (only one  al-
lowed)
    'y' 'z' 'A' 	    # x followed by y and z yields A
    'B' 'C' 'D' 	    # x followed by B and C yields D

    output
    'e' 'f'		    # e is mapped to f
    'g' 'h' 'i' 106	    # g is mapped to h i j - one to many
    'k' 0x6c 0155 'n'	    # k is mapped to l m n

    control		    # the control sections must be last

    input
    E  1		    # the character E is followed by
			    # 1 more unmapped character

    output
    FG 2		    # the characters F G are followed by
			    # 2 more unmapped characters

    All  of  the  single  letters above preceding the ``control''
section must be
    in one of these formats:

       'j'     # quoted character
       106     # decimal value
       0x6a    # hexadecimal value
       0152    # octal value

    All of the above formats are translated to single  byte  val-
ues.

    The  control  sections  (which  must be the last in the file)
contain speci-
    fications of  character  sequences	which  should  be  passed
through to or
    from  the  terminal  device  without going through the normal
mapchan pro-
    cessing.  These specifications consist of two parts:  a fixed
sequence of
    one or more defined characters indicating the start of a  no-
map sequence,
    followed by a number of characters of which the actual values
are
    unspecified.

    To	illustrate this, consider a cursor-control sequence which
should be
    passed directly to the terminal without being mapped.  Such a
sequence
    would typically begin with a fixed escape sequence	instruct-
ing the termi-
    nal to interpret the following two characters as a cursor po-
sition; the
    values  of the following two characters are variable, and de-
pend on the
    cursor position requested.	Such a control sequence would  be
specified
    as:

       =     2	     # Cursor control: escape = <x> <y>

    There  are	two subsections under control:	the input section
is used to
    filter data sent from the terminal to UNIX,  and  the  output
section is
    used  to filter data sent from UNIX to the terminal.  The two
fields in
    each control sequence are separated by white space,  that  is
the Space or
    Tab  characters.   Also the ``#'' (number sign) character in-
troduces a com-
    ment, causing the  remainder  of  the  line  to  be  ignored.
Therefore, if any
    of	these  three characters are required in the specification
itself, they
    should be entered using one of alternative means of  entering
characters,
    as follows:

    ^x		   The	character  produced  by  the  terminal on
pressing the
		  <Ctrl> and <x> keys together.

     or \      The <Esc> character, octal 033.

    c		 Where c is one of b, f, l, n, r or  t,  produces
Backspace,
		  Formfeed,  Linefeed,	Newline, Carriage Return,
or Tab char-
		  acters respectively.

		 Since the NULL character can not be represented,
this
		  sequence is stored as the character with  octal
value 0200,
		  which behaves as a NULL on most terminals.

    nn	or  nnn    Specifies the octal value of the character di-
rectly.

		 followed by any other character  is  interpreted
as that
		  character.   This  can  be used to enter Space,
Tab, or Hash
		  characters.

 DIAGNOSTICS

    mapchan performs these error checks when processing the  map-
file:

    +  More than one compose key.

    +  Characters mapped to more than one value.

    +  Syntax errors in the byte values.

    +  Missing input or output keywords.

    +  Dead or compose keys also occurring in the input section.

    +  Extra information on a line.

    +  Mapping a character to null.

    +	Starting an output control sequence with a character that
is already
       mapped.

    If characters are displayed as the 7-bit value instead of the
8-bit
    value, use stty -a to verify that -istrip is set.  Make  sure
input is
    mapping to the 8859 character set, output is mapping from the
8859 to the
    device  display character set. dead and compose sequences are
input map-
    ping and should be going to 8859.

 WARNING

    Use of mapping files that specify  a  different  ``internal''
character set
    per-channel,  or a set other than the 8-bit ISO 8859 set sup-
plied by
    default can cause strange side effects. It is especially  im-
portant to
    retain  the  7-bit	ASCII  portion	of the character set (see
ascii(M)).  UNIX
    utilities and applications assume these values.  Media trans-
ported
    between machines with different internal  code  set  mappings
may not be
    portable as no mapping is performed on block devices, such as
tape and
    floppy  drives.  trchan can be used to ``translate'' from one
internal
    character set to another.

    Do not set ISTRIP (see stty(C)) on channels that have mapping
that
    includes 8-bit characters.

 LIMITATIONS

    Some non-U.S. keyboards and display devices  do  not  support
characters
    commonly  used  by	UNIX command shells and the C programming
language. Do
    not attempt to use such  devices  for  system  administration
tasks.

    Not  all terminals or printers can display all the characters
that can be
    represented using this utility. Refer to the  device's  hard-
ware manual for
    information on the capabilities of the peripheral device.

 FILES

    /usr/local/etc/mapchan/default
    /usr/local/etc/mapchan/*.map

 SEE ALSO

    ascii(7), keyboard(4), lp(1), screen(4), tty(1)

 STANDARDS

    mapchan  is  not part of any currently supported standard; it
is an exten-
    sion of AT&T System V provided by The Santa  Cruz  Operation,
Inc.


Want to link to this manual page? Use this URL:
<
https://man.freebsd.org/cgi/man.cgi?query=mapchan&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help