z/OS TSO/E Customization
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Building translation tables for TSO/VTAM users

z/OS TSO/E Customization
SA32-0976-00

Certain characters are unavailable on some types of keyboards. For example, on correspondence keyboards, the characters "<", ">", and "|" are unavailable.

Translation tables allow TSO/VTAM users to internally replace unavailable characters with characters that are available on the keyboard. For example, you can represent the following, unavailable characters as different characters:
Character:
Represented As:
<
[
>
]
|
!

For character translation, either default translation tables (ones supplied by IBM®) or your own translation tables (ones that you write) are used. The default translation tables are part of the TSO/VTAM programs. They translate each character to itself.

When translation tables are in use, input translations are done after TSO/VTAM translates the line code to EBCDIC characters. Output translations take place before TSO/VTAM translates the EBCDIC characters to line code.

With translation tables, a terminal user can use the TERMINAL command and its operands TRAN and CHAR to specify replacement characters. The TERMINAL command invokes the STTRAN macro instruction to set up the translation tables.

A user can specify the TERMINAL command with different combinations of the CHAR and TRAN operands. The following describes the different combinations. See for more information about the syntax of the TERMINAL command and the TRAN and CHAR operands.
CHAR (characters)
Using the CHAR (characters) operand alone results in a copy of the default translation tables in the user's storage to be updated according to the characters that the user specifies. The system then uses the updated tables to translate all inbound and outbound characters. This method of translation takes place until the user specifies the TERMINAL command with the NOTRAN or NOTRAN operand or until the user's terminal session ends.
TRAN (name)
Using the TRAN (name) operand alone results in a copy of the translation tables located in name to be used to translate all inbound and outbound characters. This method of translation takes place until the user specifies the TERMINAL command with the NOTRAN operand or until the user's terminal session ends.
CHAR (characters)
TRAN (name)
Using the CHAR (characters) and TRAN (name) operands results in a copy of the translation tables located in name to be updated according to the characters which the user specifies. The system then uses the updated tables to translate all inbound and outbound characters. This method of translation takes place until the user specifies the TERMINAL command with either the NOTRAN or NOCHAR operand or until the user's terminal session ends.
The following steps describe how to build translation tables.
  1. Code a pair of translation tables.
    You need one table for input (to TSO/E) and one table for output (to the terminal), with each pair in a control section. Each control section must consist of a fullword containing the:
    • Address of the output table, followed by
    • A 256-byte EBCDIC table (on a fullword boundary) for translating the inbound code, followed by
    • A 256-byte EBCDIC table for translating the outbound code.

    Format the tables according to the rules for the TRANSLATE instruction. For information about the TRANSLATE instruction, see z/Architecture® Principles of Operation, SA22-7832. Translation of numbers and uppercase letters is not allowed.

  2. Assemble the translation tables.
  3. Link-edit the translation tables into a load module library. One CSECT is allowed per member. The translation tables must be link edited as RMODE(24) to ensure correct addressing to the TERMINAL command module.
  4. Place a JOBLIB DD or STEPLIB DD statement, containing the name of the load module library, into a logon procedure. The user can specify the logon procedure when logging on.
Figure 1 shows translation tables that perform the following translation:
Translates:
To:
[  (X'AD')
<  (X'4C')
]  (X'BD')
>  (X'6E')
!  (X'5A')
|  (X'4F')

In the figure, these characters are highlighted. All other characters are translated to themselves.

Suppose the tables are located in member TRTAB1, and the data set which contains the member was specified in a logon procedure when the user logged on. To use the translation tables, the user would enter:
terminal tran (trtab1)
Figure 1. Example of a CSECT containing translation tables
TRTAB1   CSECT
OUTADR   DC   A(OUTTAB)
INTAB    DS   OF
         DC   X'000102030405060708090A0B0C0D0E0F'   0X
         DC   X'101112131415161718191A1B1C1D1E1F'   1X
         DC   X'202122232425262728292A2B2C2D2E2F'   2X
         DC   X'303132333435363738393A3B3C3D3E3F'   3X
         DC   X'404142434445464748494A4B4C4D4E4F'   4X
         DC   X'505152535455565758594F5B5C5D5E5F'   5X
         DC   X'606162636465666768696A6B6C6D6E6F'   6X
         DC   X'707172737475767778797A7B7C7D7E7F'   7X
         DC   X'808182838485868788898A8B8C8D8E8F'   8X
         DC   X'909192939495969798999A9B9C9D9E9F'   9X
         DC   X'A0A1A2A3A4A5A6A7A8A9AAABAC4CAEAF'   AX
         DC   X'B0B1B2B3B4B5B6B7B8B9BABBBC6EBEBF'   BX
         DC   X'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'   CX
         DC   X'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'   DX
         DC   X'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'   EX
         DC   X'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF'   FX
OUTTAB   DS   OF
         DC   X'000102030405060708090A0B0C0D0E0F'   0X
         DC   X'101112131415161718191A1B1C1D1E1F'   1X
         DC   X'202122232425262728292A2B2C2D2E2F'   2X
         DC   X'303132333435363738393A3B3C3D3E3F'   3X
         DC   X'404142434445464748494A4BAD4D4E5A'   4X
         DC   X'505152535455565758595A5B5C5D5E5F'   5X
         DC   X'606162636465666768696A6B6C6DBD6F'   6X
         DC   X'707172737475767778797A7B7C7D7E7F'   7X
         DC   X'808182838485868788898A8B8C8D8E8F'   8X
         DC   X'909192939495969798999A9B9C9D9E9F'   9X
         DC   X'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'   AX
         DC   X'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'   BX
         DC   X'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'   CX
         DC   X'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'   DX
         DC   X'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'   EX
         DC   X'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF'   FX
         END

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014