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.
- 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.
- Assemble the translation tables.
- 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.
- 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 tablesTRTAB1 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