Translating national characters to uppercase

In CICS®, translation of terminal user-input to uppercase characters can be done either by using the UCTRAN option on the PROFILE and TYPETERM definitions, or by using the EXEC CICS SET TERMINAL(termid) UCTRANST command.

However, some languages have characters which are not part of the set of EBCDIC characters translated by UCTRAN, and so are never translated to uppercase, regardless of what you have specified on your resource definitions. To translate these national characters, you have two options:

Whichever method you use, the Character Data Representation Architecture Level 1 - Registry manual, SC09-1391-00, is a useful reference for information on code pages.

Using the XZCIN exit

XZCIN is described on page 121. To use it for uppercase translation, you must supply your own translation routine, which is then invoked when terminal input occurs.

Using DFHTCTxx

To translate national characters which are not handled by UCTRAN, you can modify the translation table in the terminal control table.

If you use RDO for all your terminals and have TCT=NO specified in your SIT or its overrides, CICS uses the dummy TCT, DFHTCTDY, to create control blocks for RDO-defined and autoinstalled terminals. It is not recommended that you modify DFHTCTDY directly. Instead, take a copy of the DFHTCTDY source file, save it under a new name, and modify the copy. The steps you need to follow are:

  1. Take a copy of the DFHTCTDY assembler source file. CICS provides this in the CICSTS31.CICS.SDFHSAMP library.
  2. Modify the translation table in the source file, as shown in Figure 114.
  3. Save the source file as DFHTCTxx, where 'xx' is any 2-character suffix other than 'DY'.
  4. Use the CICS-supplied DFHAUPLE job to assemble, define to SMP/E, and linkedit the new table.
  5. Specify the 2-character suffix of your new TCT on the SIT TCT parameter.
  6. Restart CICS, so that the new TCT takes effect.
Note:
If you are already using a customized TCT rather than DFHTCTDY (that is, something other than 'NO' or 'DY' is specified on the SIT TCT parameter), you must add your translation code to the TCT you are using.

Figure 114 shows a suggested way to code the assembler source statements to translate your national characters.

Figure 114. Suggested coding for national language character translation
         MACRO
         NATLANG
DFHUCTRT CSECT                         Resume UCTRAN table CSECT
.*
.* This example translates lowercase 'a' ( EBCDIC X'81') to
.* uppercase 'A' (EBCDIC X'C1') for a US code page.
.*
         ORG  TCZUCTAB+X'81'           Reset the counter to the
                                       character to be translated.
         DC   X'C1'                    Declare the replacement
                                       character as a constant.
.*
.* Repeat the above two statements for each extra character you wish
.* to be translated.
.*
         ORG  ,                        Reset the location counter
&SYSLOC  LOCTR                         Resume previous location counter
         MEND                          End of macro definition
         DFHTCT TYPE=INITIAL,SUFFIX=xx,                                *
               MIGRATE=COMPLETE,                                       *
               ACCMETH=(VTAM),                                         *
               DUMMY=DUMMY
         NATLANG                       Execute NATLANG
         DFHTCT TYPE=FINAL
         END DFHTCTBA

Related tasks
Translating TS data sharing messages to uppercase
[[ Contents Previous Page | Next Page Index ]]