Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mapchan(F) — OpenDesktop 1.1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ascii(M)

keyboard(HW)

lp(C)

lpadmin(ADM)

mapchan(M)

trchan(M)

mapkey(M)

parallel(HW)

screen(HW)

serial(HW)

setkey(M)

tty(M)


     MAPCHAN(F)                           UNIX System V



     Name
          mapchan - format of tty device mapping files


     Description
          mapchan configures the  mapping  of  information  input  and
          output.

          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 specified, an additional 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 additional buffer.  The maximum number  of  map
          buffers  available  on a system is configured in the kernel,
          and is adjustable via the  link  kit  NEMAP  parameter  (see
          configure(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 character 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''  mapping.
          Nulls  can  be produced with compose sequences or as part of
          an output string.

          It is recommended that no mapping be enabled on the  channel
          used  to  create or modify the mapping files.  This prevents
          any confusion of the actual  values  being  entered  due  to
          mapping.  It  is  also  recommended 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 allowed).
            y z A
            B C D        # x followed by B and C yields D.
            output
            e f          # e is mapped to f.
            g h i j      # g is mapped to hij - one to many.
            k l m n o    # k is mapped to lmno.
            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 FG are followed by 2 more
                         unmapped characters

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

                            56       # decimal
                            045      # octal
                            0xfa     # hexadecimal
                            'b'      # quoted char
                            '\076'   # quoted octal
                            '\x4a'   # quoted hex

          All of the above  formats  are  translated  to  single  byte
          values.

          The control sections (which must be the last  in  the  file)
          contain  specifications  of character sequences which should
          be passed through to or from  the  terminal  device  without
          going   through   the   normal  mapchan  processing.   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  instructing  the terminal to interpret the
          following two characters as a cursor position; the values of
          the following two characters are variable, and depend on the
          cursor position requested.  Such a control sequence would be
          specified as:

               \E=   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  '#'  (HASH)  character introduces a
          comment, 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
               CONTROL and x keys together.

          \E or \e
               The ESCAPE character, octal 033.

          \c   Where c is one  of  b,  f,  l,  n,  r  or  t,  produces
               BACKSPACE  , FORM FEED , LINE FEED , NEWLINE , CARRIAGE
               RETURN or TAB characters respectively.

          \0   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 directly.

          \    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
          mapfile:


           ⊕   More than one compose key.

           ⊕   Characters mapped to more than one thing.

           ⊕   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 mapping and should
          be going to 8859.


     Files
          /etc/default/mapchan
          /usr/lib/mapchan/*


     See Also
          ascii(M),  keyboard(HW),  lp(C),  lpadmin(ADM),  mapchan(M),
          trchan(M),  mapkey(M), parallel(HW), screen(HW), serial(HW),
          setkey(M), tty(M)


     Notes
          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 hardware manual for information on the capabilities
          of the peripheral device.


     Warnings
          Use of mapping files that specify a  different  ``internal''
          character set per-channel, or a set other than the 8-bit ISO
          8859 set supplied by default can cause strange side effects.
          It is especially important to retain the 7-bit ASCII portion
          of the character set (see  ascii(M)).   UNIX  utilities  and
          applications assume these values.  Media transported 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 eight bit characters.


     Value Added
          mapchan is an extension of AT&T System  V  provided  by  the
          Santa Cruz Operation.


     (printed 2/15/90)                                 MAPCHAN(F)



















































































































































































































































































































































































Typewritten Software • bear@typewritten.org • Edmonds, WA 98026