|
|
This chapter describes the translation tables available for Cisco IOS for S/390. It includes these sections:
Cisco IOS for S/390 provides character translation for both the data connection and the Telnet connection. Telnet connections are made for these services:
FTP also makes a data connection when files are transferred. During translation, ASCII-encoded data on the TCP/IP network is converted to EBCDIC-encoded data on the MVS system, and vice-versa. Translation tables for several languages are distributed with Cisco IOS for S/390 in both source and load format. You can specify any of the tables provided, modify them, or define and use your own translation tables.
The Telnet connection for an application uses the translate table specified by the TRANTBL parameter on the appropriate APPCFGxx configuration statement; the data connection uses the translate table specified by the CHARSET parameter. If these parameters are not coded in the configuration table, the ENGLISH translate table is the default.
Data connection translation can be done with both single- and double-byte translate tables. Telnet connection translation requires single-byte tables. The single-byte character set translate tables distributed with the product are ENGLISH (the default), DANISH, FCANADA, FRENCH, GERMAN, GSWISS, ITALIAN, KANJI83, KOREAN, JAPANES, SJIS83, SPANISH, SWEDISH, SW850 SW88591 and THAI. Distributed double-byte tables are HANGUL and KANJI. The source code for these tables is located in the SAMP data set and their load module forms are in the LOAD data set.
The TRANTBL parameter can be specified on the following APPCFGxx statements: Telnet, APPL, FTP, SMTP and LPR. CHARSET can be specified on the FTP statement. Read the specific application chapter for more information about each of these statements and how the table name should be specified.
Consider these notes when specifying translate tables:
Because of translation differences between languages, when using a table other than English for Telnet translation, you should first do the following:
The SMTP service uses the @ character as part of the mailing address. In the Danish table however, an EBCDIC X'7C' does not represent an @. Rather, in that table an ASCII X'40' is translated to an EBCDIC X'40' (which is a blank), and an EBCDIC X'7C' is translated to an ASCII X'5C'. Therefore, the Danish table cannot be used for SMTP.
This table indicates the 14 national-use characters. The first row is the EBCDIC character representation for English, the second row is the EBCDIC hexadecimal equivalent, and the third row is the 7-bit ASCII hexadecimal equivalent. The translation of these characters may vary from language to language.
CHAR | ¢ | ! | | ` | $ | # | @ | ¬ | ~ | { | } | \ | | | " |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| HEX(E) | 4A | 5A | 6A | 79 | 5B | 7B | 7C | 5F | A1 | C0 | D0 | E0 | 4F | 7F |
| HEX(A) | no
symbol | 21 | 7C | 60 | 24 | 23 | 40 | 5E | 7E | 7B | 7D | 5C | ns | 22 |
This information was taken from a table in the IBM 3270 Information Display System Character Set Reference, GA27-2837.
If necessary, the translate tables can be modified to suit customer requirements. Also, other translate tables with similar structure can be added. It is recommended that new tables be developed using an existing table as a model.
A translate table module has a special structure containing a set of translate tables as described below. The national language translate table modules used by the Telnet and Telnet-based applications must have this structure:
Prefix - XLTBL TYPE=START Set of translate tables Suffix - XLTBL TYPE=FINISH
For Telnet purposes, there should be four translate tables in the set. An ATOE table for ASCII-to-EBCDIC translation, ETOA for EBCDIC-to-ASCII translation, AUPC for ASCII lower case to upper case folding, and EUPC for EBCDIC lower case to upper case folding, respectively. Each individual table is 256 bytes long and suitable for use with the IBM System/370 TR instruction. Also, the statement labels for these tables must be listed in the XLTBL macro TABLE parameter in the order listed above.
Data translation requires only the first two tables (ATOE and ETOA), as there are no case changes involved in the transfer. Various command line entries require all four translate tables in the set.
The XLTBL macro generates the prefix and suffix needed by a national language translate table module.
The syntax for the XLTBL macro is as follows:
[name] XLTBL [TYPE = (START | FINISH)] [, KIND = (CHAR | NUMBS | DBCS)] [, TABLE = label_name,.,.,.] [, FLAG = (REFLEX | ASCII8 | ASCI16 | NOSOSI | BKTSUB)] [, TITLE = 'char_string'] [, TAG = character] [, ID = character (s)] [, DSECT = (YES | NO)]
| TYPE = (START | FINISH) | Specifies whether header or trailer data is to be generated. START generates the translate module prefix, FINISH its suffix.
Default: START |
| KIND = (CHAR | NUMS | DBCS) | This keyword defines the translation set to be defined:
CHAR: single byte, 4-table set NUMS: single byte, 2-table set Default: CHAR |
| TABLE = (label_name, label2, label3,...) | List of addresses for individual translate tables (label1, label2,...)] contained in the translate table module. label1 is the statement label for the first translate table, label2 for the second, etc. The number of items depends upon KIND.
For Telnet translate tables, KIND=CHAR should be coded, and TABLE should list four labels for ATOE, ETOA, AUPC, and EUPC translate tables, in that order. There is no default. |
| FLAG = (REFLEX | ASCII8 | ASCI16) | List of options to be set in the flag area of the fixed header:
REFLEX: ASCII to EBCDIC and EBCDIC to ASCII is symmetric. ASCII8: ASCII data is 8 bit (SBCS). ASCI16: ASCII data is 16 bit. There is no default. |
| TITLE = 'char_string' | Specifies a character string used to describe the translation set. Length is limited to 30 characters.
The default is 'name Translation', where name is the label on the XLTBL invocation statement. |
| TAG = character | One-byte character identifier used to group the soft key definitions.
Default: $ |
| ID = character(s) | Three-byte character identifier used as a root for macro generated label names.
This needs to be changed only if the XLTBL macro is issued multiple times in the same TYPE. Default: XS@ |
| DSECT = YES | NO | YES generates a DSECT map of the data area.
NO generates a CSECT map of the data area. When you create your own translation tables, the DSECT parameter should always be set to NO. Although the default value of YES is used by Cisco IOS for S/390 for internal applications, if YES is selected when you create a translation table, the translation table will be invalid. When YES is specified the keywords TITLE, FLAG, and TABLE are ignored, so this parameter should always be set to NO. Default: YES |
ENGLISH XLTBL TYPE=START, KIND=CHAR, TABLE=(ATOE,ETOA,AUPE,EUPA), FLAG=(ASCII8), TITLE='English Single byte table', DSECT=NO
SMP/E maintains all translate table source in the SAMP library. For existing tables, make changes in the SAMP member before executing UMODTRAN. Build new translate tables in a different library, as UMODTRAN will copy them into the SAMP library as part of its SMP/E processing. Once the table has been copied, all subsequent changes should be made in the SAMP library.
Directions for using UMODTRAN are located within the member. When needed, make a copy of the UMODTRAN provided and adapt it to your environment.
Sample JCL for UMODTRAN is shown below:
//UMODTRAN JOB //* //* SAMPLE JCL STREAM TO ADD OR MODIFY TRANSLATE TABLES //* //* //* ************************************************************ //* * *** INSTRUCTIONS *** * //* ************************************************************* //* * //* * TO ADD OR MODIFY A TRANSLATE TABLE, DO THE FOLLOWING: //* * //* * 1. MAKE THE FOLLOWING GLOBAL CHANGES TO THIS JCL STREAM //* * //* * . CHANGE 'UMODNAM' TO A UNIQUE 7 CHARACTER USERMOD NAME //* * (IF THIS IS NOT THE FIRST UPDATE TO THE TABLE YOU WILL //* * NEED TO ADD A PRE PARAMETER TO THE ++VER STATEMENT //* * NAMING THE LAST USERMOD THAT WAS APPLIED.) //* * . CHANGE 'TABNAME' TO THE TRANSLATE TABLE NAME. //* * . CHANGE 'SMPINDX' TO THE SMP HIGH LEVEL QUALIFIER NAME. //* * . CHANGE 'XXX' TO THE APPROPRIATE RELEASE NUMBER.* //* * . CHANGE 'HOLDCL' TO YOUR SYSOUT HOLD CLASS. //* * //* * DO 2.A -OR- 2.B //* * //* * 2.A FOR UPDATING AN EXISTING TABLE: //* * //* * . VERIFY TABLE UPDATES WERE MADE IN THE SAMP LIBRARY //* * MEMBER PRIOR TO RUNNING THIS JOB. //* * //* * 2.B FOR ADDING A NEW TABLE: //* * //* * . POINT THE TEXTLIB DD STATEMENT TO THE LIBRARY //* * CONTAINING THE NEW TABLE SOURCE. //* * //* * . UNCOMMENT THE SYSLIB PARAMETER IN THE ++SRC //* * STATEMENT. (USERMOD WILL COPY TABLE TO SAMP LIBRARY) //* * //* * 3. VERIFY THE JOB STATEMENT IS CORRECT AND SUBMIT THE JOB. //* //************************************************************** //* //* //SMPE EXEC PGM=GIMSMP,REGION=4096K,TIME=960, // PARM='CSI=SMPINDX.CSI,PROCESS=WAIT' //SMPHOLD DD DUMMY //SMPLOG DD DSN=SMPINDX.SMPLOG,DISP=MOD //SMPOUT DD SYSOUT=HOLDCL //TEXTLIB DD DSN=SMPINDX.SAMP,DISP=SHR //SMPPTFIN DD * ++ USERMOD ( UMODNAM ) . ++ VER (Z038) FMID(T00XXX). ++JCLIN . //JCLINASM JOB ( COMPANY ),'TRANSLATE',MSGCLASS=X //ASM EXEC PGM=ASMBLR, // REGION=512K, // PARM='OBJ,NODECK,LIST,NORENT' //* //SYSIN DD DSN=IOS390.ATCPSAMP(TABNAME), // DISP=( SHR,KEEP,KEEP ) //* //SYSGO DD DSN=&&PUNCH ( TABNAME ), // UNIT=3380, // SPACE=( 80,( 200,50 ) ), // DISP=(MOD,PASS) //JCLINLNK JOB ( COMPANY ),'UMOD XLATE',MSGCLASS=X //LKED EXEC PGM=IEWL,PARM='REUS,OL,LIST,NCAL',REGION=512K //SYSLMOD DD DSN=IOS390.TCPLOAD,DISP=SHR //ATCPLOAD DD DSN=IOS390.ATCPLOAD,DISP=SHR //SYSLIN DD * INCLUDE ATCPLOAD ( TABNAME ) MODE AMODE ( 31 ),RMODE ( ANY ) ENTRY $TABNAME NAME TABNAME ( R ) //* ++SRC ( TABNAME ) TXLIB ( TEXTLIB ) DISTMOD ( ATCPLOAD ) /* SYSLIB(TCPSAMP) */ DISTLIB ( ATCPSAMP ) . //SMPCNTL DD * SET BDY ( GLOBAL ) . RECEIVE S ( UMODNAM ) . SET BDY ( TCPTZN ) . APPLY S ( UMODNAM ) . /*
|
|