Unicode V14
Unicode V14
Unicode V14
™
Support for Unicode :
Using Conversion Services
SA22-7649-02
z/OS IBM
™
Support for Unicode :
Using Conversion Services
SA22-7649-02
Note
Before using this information and the product it supports, be sure to read the general information under “Notices” on
page 367.
Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . 1
The Unicode™ Standard . . . . . . . . . . . . . . . . . . . . . . 1
z/OS V1 R4 support for Unicode™ . . . . . . . . . . . . . . . . . . 2
The conversion environment . . . . . . . . . . . . . . . . . . . 2
The infrastructure . . . . . . . . . . . . . . . . . . . . . . . 2
The conversion services . . . . . . . . . . . . . . . . . . . . . 3
National language support . . . . . . . . . . . . . . . . . . . . 5
Appendix A. Commands . . . . . . . . . . . . . . . . . . . . . 73
SET UNI command . . . . . . . . . . . . . . . . . . . . . . . 73
DISPLAY UNI command . . . . . . . . . . . . . . . . . . . . . 75
Appendix C. Messages . . . . . . . . . . . . . . . . . . . . . 85
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Web site disclaimer . . . . . . . . . . . . . . . . . . . . . . . 368
Programming Interface information . . . . . . . . . . . . . . . . . 368
Trademarks. . . . . . . . . . . . . . . . . . . . . . . . . . 368
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Contents v
vi z/OS support for Unicode™: Using Conversion Services
Tables
| 1. Encoding schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. CCSID conversions types of z/OS support for Unicode . . . . . . . . . . . . . . . . . 4
3. Description of jobs for MMS . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Main storage needed for conversions of type SBCS and DBCS. . . . . . . . . . . . . . 22
5. Main storage needed for conversions of type MBCS . . . . . . . . . . . . . . . . . . 23
6. Restrictions while calling the character conversion services . . . . . . . . . . . . . . . 35
7. Mapping of parameters in HLASM for character conversion . . . . . . . . . . . . . . . 38
8. Mapping of UCCE handle in HLASM for character conversion . . . . . . . . . . . . . . 39
9. Restrictions while calling the case conversion services . . . . . . . . . . . . . . . . . 48
10. Mapping of parameters in HLASM for case conversion . . . . . . . . . . . . . . . . . 49
| 11. Restrictions while calling the normalization service . . . . . . . . . . . . . . . . . . 54
| 12. Mapping of parameters in HLASM for normalization . . . . . . . . . . . . . . . . . . 56
13. Minimum and maximum character widths of the different encoding schemes . . . . . . . . . 59
14. Naming conventions of conversion tables . . . . . . . . . . . . . . . . . . . . . . 69
15. Classification of return codes from conversion services . . . . . . . . . . . . . . . . 103
16. Return and reason codes from conversion services. . . . . . . . . . . . . . . . . . 104
17. Normalization service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
| 18. List of MBCS CCSIDs supported by Unicode . . . . . . . . . . . . . . . . . . . . 355
Overview of contents
This document contains the following information:
v “Note on terminology” on page x explains the terms used in this documentation.
v Chapter 1, “Introduction” on page 1 is a quick overview of what the Unicode
Standard is and what z/OS support for Unicode on the z/OS platform is.
v Chapter 2, “Setting up the system” on page 7 includes the installation of z/OS
support for Unicode and the next steps.
v Chapter 3, “Creating the conversion environment” on page 11 describes the three
main tasks before activating the conversion environment: creating a conversion
image, creating the parmlib member CUNUNIxx and editing IEASYSxx.
v Chapter 4, “Changing the conversion environment” on page 29 explains how an
active conversion environment can be changed and how an inactive one can be
deleted.
v Chapter 5, “Converting data” on page 33 gives instructions how to use the
conversion services.
v Chapter 6, “Defining CCSIDs and conversion tables” on page 63 shows how you
can define your own knowledge base entries, coded character set identifiers
(CCSIDs), and conversion tables.
v Chapter 7, “Problem determination” on page 71 helps when problems occur.
v Appendix A, “Commands” on page 73 describes the SET UNI and the DISPLAY
UNI command and their syntax.
v Appendix B, “MBCS conversions” on page 79 describes how MBCS conversions
are handled internally.
v Appendix C, “Messages” on page 85 lists the z/OS support for Unicode
messages.
v Appendix D, “Codes” on page 103 lists the return and reason codes.
v Appendix E, “Samples” on page 109 is a compact summary of coding examples
and sample programs.
v Appendix F, “Summary of IBM-supplied conversion tables” on page 115 shows all
tables IBM provides for conversions.
Note on terminology
The following terms are used in this documentation:
z/OS V1 R4 support for Unicode™
This is the official name of the function but it is often referred to as ’z/OS
support for Unicode’.
infrastructure
The infrastructure supplies all parts necessary to customize and establish
the conversion services. It includes conversion tables, control structures,
and the commands SET UNI and DISPLAY UNI.
conversion services
This document describes the conversion services which are offered by z/OS
support for Unicode. See ’character conversion’ and ’case conversion’.
character conversion
With the conversion services, conversions between specified CCSIDs are
possible. The term ’character conversion’ is often referred to as ’conversion
between specified CCSIDs’.
| normalization
| With the normalization service, decompositions and compositions from
| Unicode encoding input are possible. The term ’normalization’ is often
| referred to as decomposition (NFD or NFKD) or composition (NFC or
| NFKC). Where:
| NFD - normalization form D (canonical decomposition)
| NFKD - normalization form KD (compatibility decomposition)
| NFC - normalization form C (canonical composition)
| NFKC - normalization form KC (compatibility composition)
CCSID
CCSID is the abbreviation of the term ’coded character set identifier’. It
specifies the character representation in a data stream.
case conversion
With the conversion services, conversion to upper or lower case is possible.
The term ’case conversion’ is often referred to as ’conversion to upper or
lower case’.
conversion image
The conversion services can only be used when conversion tables and
Additional terms used in this document are explained in “Glossary of terms and
abbreviations” on page 371.
Document conventions
This document uses visual cues to help you locate and identify information quickly
and easily. The highlighting conventions used in this document are outlined in the
following table.
A command or keyword that you must enter (a required command) is displayed like
this:
ÊÊ Command ÊÍ
ÊÊ ÊÍ
Option
Default
ÊÊ ÊÍ
ÊÊ » Repeat ÊÍ
IBM publication
To find further information, this documentation refers to the following IBM
publications:
v Character Data Representation Architecture Reference and Registry, SC09-2190
v z/OS MVS Initialization and Tuning Reference, SA22-7592
v z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN,
SA22-7609
v z/OS MVS Programming: Authorized Assembler Services Guide, SA22-7608
v z/OS MVS Programming: Authorized Assembler Services Reference ENF-IXG,
SA22-7610
v z/OS MVS Programming: Assembler Services Reference ABE-HSP, SA22-7606
v z/OS MVS System Codes, SA22-7626
Non-IBM publication
Additional information on the Unicode® Consortium can be found at the Web site
http://www.unicode.org/.
http://www.s390.ibm.com:80/bookmgr-cgi/bookmgr.cmd/BOOKS/ZIDOCMST/CCONTENTS
This document is updated weekly and lists documentation changes before they are
incorporated into z/OS publications.
or from anywhere in z/OS where you can access a TSO command line (for
example, TSO prompt, ISPF, z/OS UNIX System Services running OMVS). You can
also download code from the z/OS Collection (SK3T-4269) and the LookAt Web site
so you can access LookAt from a PalmPilot (Palm VIIx suggested).
To use LookAt on the Internet to find a message explanation, go to the LookAt Web
site and simply enter the message identifier (for example, $HASP701 or $HASP*). You
can select a specific release to narrow your search.
To use LookAt as a TSO command, you must have LookAt installed on your host
system. You can obtain the LookAt code for TSO from a disk on your z/OS
Collection (SK3T-4269) or from the LookAt Web site. To obtain the code from the
LookAt Web site, do the following:
1. Go to http://www.ibm.com/servers/eserver/zseries/zos/bkserv/lookat/.
2. Click News.
3. Scroll to Download LookAt Code for TSO and z/VM.
4. Click the ftp link, which will take you to a list of operating systems. Click the
appropriate operating system. Then click the appropriate release.
5. Open the lookat.me file and follow its detailed instructions.
After you have LookAt installed, you can access a message explanation from a
TSO command line by entering: lookat message-id. LookAt will display the
message explanation for the message requested.
Note: Some messages have information in more than one book. For example,
IEC192I can be found in z/OS MVS System Messages, Vol 7 (IEB-IEE) and
also in z/OS MVS Routing and Descriptor Codes. For such messages,
LookAt displays a list of books in which the message appears. You can then
select one of the books to view the message explanation.
Summary of changes
This document contains terminology, maintenance, and editorial changes. Technical
changes or additions to the text and illustrations are indicated by a vertical line to
the left of the change.
Starting with z/OS V1R2, you may notice changes in the style and structure of
some content in this document--for example, headings that use uppercase for the
first letter of initial words only, and procedures that have a different look and format.
The changes are ongoing improvements to the consistency and retrievability of
information in our documents.
This document supports z/OS Version 1 Release 4 and z/OS.e support for Unicode,
including the Unicode normalization services. Normalization provides for the
canonical and compatibility equivalences between any Unicode string. For
descriptions and examples beyond those discussed in this document, refer to the
Unicode normalization web site: http://www.unicode.org/unicode/reports/tr15/.
While 65,000 characters are sufficient for encoding most of the many
thousands of characters used in major languages of the world, the Unicode
standard and ISO 10646 provide an extension mechanism called UTF-16 that
allows for encoding as many as a million more characters, without use of
complex modes or escape codes. This is sufficient for all known character
encoding requirements, including full coverage of all historic scripts of the
world.
The infrastructure
The infrastructure supplies all parts to customize and initialize the conversion
services. The services are activated during IPL. All necessary resources are
allocated and conversion tables are loaded into storage as defined in the
conversion image. Changes to the conversion environment can be done with the
SET UNI command. The changed version will become the active conversion
environment and the previous version will be set to inactive. An inactive conversion
environment can be deleted. Basically, the purpose of the infrastructure is to
establish and maintain the conversion environment.
The user can specify the required conversions and control information in a text file.
A program called ’image generator for z/OS support for Unicode’ processes the text
file and generates a conversion image containing all specified conversion tables.
The image can be activated with the SET UNI command or with the next IPL.
The infrastructure also includes a DISPLAY UNI command to show the current
status of the conversion environment or to check whether the conversion services
are already enabled to the system.
z/OS support for Unicode allows customers to add up to ten different user-defined
conversion tables for conversions between the same pair of CCSIDs. Customers
can also define new CCSIDs for their own purposes. These CCSIDs must not
conflict with the predefined CCSIDs shipped with z/OS support for Unicode. See
Chapter 6, “Defining CCSIDs and conversion tables” on page 63 for the definition of
new CCSIDs.
Encoding schemes
A basic feature of a CCSID is its encoding scheme, which is uniquely identified by
the encoding scheme identifier (ESID). In this document, the following names are
used for the encoding schemes:
| Table 1. Encoding schemes
| Encoding scheme ESID Description
| SBCS x1xx pure single-byte encoding
| DBCS x2xx pure double-byte encoding
| PC MBCS 2300, 3300 IBM-PC mixed single-byte and double-byte
| encoding with implicit code extension
| PC Data Mixed 2A00 PC-Data mixed for GB 18030
| PC Data QBCS 2900 4 bytes part PC-Data for GB 18030
| EUC MBCS 4403 IBM EUC encoding
| EBCDIC MBCS 1301 EBCDIC mixed single-byte and double-byte
| encoding using SI/SO code extension
| ISO2022 MBCS 5404,5409,540A ISO2022 TCP/IP encoding
| UTF-8 7807 Unicode transformation format, 8-bit encoding
| form
| UCS-2 7200 Universal character set coded in 2 octets
| (ISO/IEC 10646 encoding form)
|
For other encoding schemes, refer to Character Data Representation Architecture
Reference and Registry, SC09-2190.
Code pages with a pure single-byte or pure double-byte encoding (SBCS, DBCS,
and UCS-2) are called simple code pages. Codepages that consist of two or more
sub code pages (PC MBCS, EUC MBCS, EBCDIC MBCS, and ISO2022 MBCS)
are called mixed code pages.
UCS-2 may be encoded in big endian or in little endian format. z/OS support for
Unicode however only handles the big endian form.
z/OS support for Unicode does not handle surrogate pairs except for conversions
from and to UTF-8. The Unicode encoding is described by different CCSIDs that
describe different versions of the Unicode Standard. z/OS support for Unicode
interprets CCSID 1200 as described in the document Character Data
Representation Architecture Reference and Registry that is the highest available
version of the Unicode Standard.
Character conversion
z/OS support for Unicode provides direct conversion between character streams
that are encoded with CCSIDs listed in Appendix F, “Summary of IBM-supplied
conversion tables” on page 115. Character conversion is also called ’conversion
between specified CCSIDs’. The following CCSID conversions types are supported
Chapter 1. Introduction 3
Introduction
for direct conversions:
Table 2. CCSID conversions types of z/OS support for Unicode
SBCS ⇔ SBCS, DBCS
DBCS ⇔ SBCS, DBCS
PC MBCS ⇔ DBCS
EUC MBCS ⇔ DBCS
EBCDIC MBCS ⇔ DBCS
ISO2022 MBCS ⇔ DBCS
UTF-8 ⇔ UCS-2
QBCS ⇔ DBCS
For character conversion, the conversion services are called using a stub routine
named CUNLCNV. z/OS support for Unicode must be called in primary mode.
Besides the direct conversions, there exists also an ’indirect conversion’ where any
CCSID can be converted into another by using the intermediate CCSID 1200. The
indirect conversion with CCSID 1200 is automatically used by z/OS support for
Unicode , if there is no table available for direct conversions between FROM-CCSID
and TO-CCSID, but if there are tables available from FROM-CCSID to CCSID 1200
and from CCSID 1200 to TO-CCSID.
The conversion of MBCS characters also uses several steps to complete the
conversion. This is called ’composite conversion’. A MBCS input data stream will be
decomposed into SBCS and DBCS parts. The conversion services will automatically
select a SBCS table for the SBCS data and a DBCS table for the DBCS data.
There is no MBCS table provided by z/OS support for Unicode. You find a detailed
description of the internal handling in Appendix B, “MBCS conversions” on page 79.
An example and an illustration is included.
Case conversion
z/OS support for Unicode provides case conversions that allow to convert Unicode
characters to their upper case equivalent or their lower case equivalent. For more
details about the case mappings, refer to the tables provided by the Unicode
Consortium.
For case conversion, the conversion services are called using a stub routine named
CUNLASE. z/OS support for Unicode must be called in primary mode.
Normalization
| z/OS support for Unicode provides support that allows the normalization
| (decomposition or composition) of Unicode characters to one of the normalization
| forms. For a detailed explanation of normalization, including specific information
| about the normalization forms, refer to The Technical Report #15 provided by the
| Unicode Consortium (http://www.unicode.org/unicode/reports/tr15/).
For normalization, the normalization service is called using a stub routine named
CUNLNORM. z/OS support for Unicode must be called in primary mode.
Chapter 1. Introduction 5
6 z/OS support for Unicode™: Using Conversion Services
Chapter 2. Setting up the system
This chapter describes how you set up the z/OS support for Unicode system.
Prerequisites
For getting information on the prerequisites of products and hardware, please refer
to z/OS Planning for Installation, GA22-7504-03.
Customizing jobs
z/OS support for Unicode provides two REXX execs to customize the provided jobs
for your conversion environment. Use the execs like this:
v Use member CUNRUCST of data set $LIB_HLQ$.SCUNREXX. ($LIB-HLQ$ is
the high level qualifier chosen at the SMP/E installation.)
v Fill in the required fields.
v If you are installing under SMS, the volume specification in the customization
exec CUNRUCST will be ignored.
v Refer to “Sample for CUNRUCST Exec” on page 109 to find a sample of the
exec.
v Concatenate $LIB_HLQ$.SCUNREXX to DD name SYSEXEC or SYSPROC.
($LIB_HLQ$.SCUNREXX is the data set where the customization execs
CUNRUCST and CUNRUALL reside.)
v Then enter in the command line:
CUNRUALL $LIB_HLQ$.SCUNJCL
The MVS Message Service (MMS) is needed for displaying translated messages on
the screen. In order to activate the MMS, you must create a MMS VSAM data set
and a parmlib member MMSLSTxx.
The NLS skeleton is a message skeleton which is the input for the MMS VSAM
data set. There is one skeleton for English and one for Japanese. The English
message skeleton is named CUNIIENU and the japanese skeleton is named
CUNIIJPN. Both can be found in $CUN_MSG_DS$. For more information refer to
z/OS MVS Planning: Operations, SA22-7601 and go to chapter ″Routing
Commands / Handling Translated Messages″.
v These are the jobs for creating the environment for English messages.:
job CUNJIMS1
job CUNJIMS2
v Now run the jobs. Return codes are listed in Table 3 on page 8.
/*********************************************************************/
/* */
/* Parmlib Member for MVS Message Service */
/* */
/*********************************************************************/
DEFAULTS LANGCODE(ENU)
LANGUAGE LANGCODE(ENU) DSN($CUN_MMS_DATASET$.DATA)
CONFIG(CNLENU00)
NAME(ENGLISH)
Activate member MMSLSTxx with the MVS system command SET MMS=xx or by
specifying MMS(xx) on the INIT statement in parmlib member CONSOLExx.
DEFAULTS LANGCODE(JPN)
LANGUAGE LANGCODE(ENU) DSN($CUN_MMS_DATASET$.DATA)
CONFIG(CNLENU00)
3. Activate member MMSLSTxx with the MVS system command SET MMS=xx or
by specifying MMS(xx) on the INIT statement in parmlib member CONSOLExx.
Note: It is important to follow the steps in the given sequence to avoid problems
while using z/OS support for Unicode!
Multiple images can be kept in datasets. Using the the SET UNI command they can
be used to replace the active image. A conversion image is built with a utility called
’image generator for z/OS support for Unicode’ running as a batch job. The utility
generates the image as a sequential data set which has the fixed block 80 format.
Note that the image must be copied into SYS1.PARMLIB or any other data set in
the logical parmlib concatenation before it can be used by IPL or the SET UNI
command. The ’image generator for z/OS support for Unicode’ is also referred to as
the ’image generator’. The name of the batch job is CUNJIUTL and it is located in
library SCUNJCL.
| Before starting the image generator you have to decide which conversions are
| required in your particulary installation. Basically there are three different conversion
| types:
| 1. case conversion for Unicode characters
| 2. character conversion between two different CCSIDs
| 3. normalizing a Unicode string
For the case conversion you can have the following conversion modes:
v NORMAL casing:
This means that one character is mapped to its upper/lower case using a
one-to-one relationship as described in the file UnicodeData.txt. Characters that
cannot be mapped one-to-one are copied to the output stream unchanged. Note
also that locale specific casing is not supported with mode NORMAL. NORMAL
is the preferred mode for converting English text.
v SPECIAL casing:
In addition to NORMAL casing locale independent special casing as listed in
document SpecialCasing.txt is performed. This can be unconditional special
casing (e.g. ’German Small Letter Sharp s’ = ’00DF’X uppercases to 2 characters
of ’Capital Letter S’ = ’00530053’X.) or conditional special casing (e.g. ’Greek
Capital Letter Sigma’=’03A3’X lowercases to either ’Greek Small Sigma’=’03C3’X
when within a word or to ’Greek Small Final Sigma’=’03C2’X when it is the last
character of a word).
v LOCALE dependent casing:
In addition to SPECIAL casing locale dependent special casing as listed in
document SpecialCasing.txt is performed (e.g. ’Capital Letter I’ =’0049’X
lowercases to ’Small Letter i’=’0069’X when caller’s language is NOT turkish, but
lowercases to ’Small Letter Dotless i’=’ 0131’X when caller’s language is Turkish
CUNBCPRM_Locale=’tr...’ ).
For the character conversions each CCSID pair between which you want to be able
to convert using the conversion services has to be identified. However, there are
different techniques to convert between two CCSIDs and you can specify your
preferred technique(s):
Roundtrip conversion
| Roundtrip conversions between two CCSIDs assure that all characters
| making the ″roundtrip″ arrive as they were originally.
Enforced Subset conversion
Enforced Subset conversions map only those characters from one CCSID
to another which have a corresponding character in the second CCSID. All
other characters are replaced by a substitution character.
Customized conversion
Customized conversions use conversion tables that have been created to
address some special requirements. IBM’s Globalization Center of
Competency (GCoC) in Toronto, Canada can provide more information
about these tables.
Language Environment-Behavior conversion
Language Environment-Behavior conversions use tables which map
characters like the iconv() function of the Language Environment Runtime
library does. These conversions differ from others primarily in their mapping
of the EBCDIC newline (NL) character to ASCII and Unicode linefeed (LF).
Modified Language Environment-Behavior conversion
Modified Language Environment-Behavior conversions use tables which
map characters like the iconv() function of the Language Environment
Runtime library does for converters ending with ″C″ (for example
IBM-932C).
User-defined conversions
User-defined conversions are supported, see Chapter 6, “Defining CCSIDs
and conversion tables” on page 63.
| There are three different control statements which can be specified in the //SYSIN
| DD statement of job CUNJIUTL:
| v CONVERSION (for character conversion)
| v CASE (for case conversion)
| v NORMALIZE (for normalization)
Format
ÊÊ CONVERSION from-ccsid , to-ccsid ; ÊÍ
, technique-search-order
technique-search-order:
(1)
» technique-character
technique-character:
blank
R
E
C
L
M
0 - 9
Notes:
1 technique-search-order can be up to 8 characters.
Parameters
from-ccsid
The value from-ccsid specifies the From-CCSID of the requested
conversion. The From-CCSID is the CCSID converting from.
to-ccsid
The value to-ccsid specifies the To-CCSID of the requested conversion. The
To-CCSID is the CCSID converting to.
Some special considerations about CCSID 1200: If CCSID 1200 is specified the
CCSID of the most recent UCS-2 version is substituted and all technique-characters
are tested. Then the second recent UCS-2 version is substituted and so on. The
supported UCS-2 CCSIDs are:
| v 21680 (UCS-2 V3.1)
| v 17584 (UCS-2 V3)
| v 13488 (UCS-2 V2)
Format
ÊÊ CASE mode ÊÍ
mode:
Normal
Special
Locale
Parameters
mode mode specifies the case conversion mode to be supported. The following
modes are supported:
v NORMAL - basic casing, preferred mode for English text
v SPECIAL - includes normal casing, adds locale independent special
casing
v LOCALE - includes special casing, adds locale dependent special casing
Examples
Here is an example of a valid CASE statement:
CASE NORMAL; /* normal casing requested */
CASE NORMAL; /* Duplicate CASE statements are ignored */
CASE LOCALE; /* locale dependent special casing requested */
| Format
| ÊÊ NORMALIZE ÊÍ
|
| Parameters
| None
| Examples
| Here is an example of a valid NORMALIZE statement:
| NORMALIZE; /* normalization requested */
| NORMALIZE; /* Duplicate NORMALIZE statements are ignored */
Invoke the image generator for z/OS support for Unicode. Member CUNJIUTL in
library SCUNJCL contains the JCL to invoke the image generator:
/*******************************/
/* example of input statements */
/*******************************/
CONVERSION 850, /* ASCII */
1047, /* EBCDIC */
RE; /* TECHNIQUE-SEARCH-ORDER */
/*
The sample JCL from step (1c) produces the following listing on the //SYSPRINT
DD:
The following paragraphs show how the listing can be used to manage the
generated images.
...
Statement Report --+----1----+----2----+----3----+----4----+----5----+----6----+-
1 CONVERSION 933,1200,RE;
/* 00933-01200-RE */
/* 00833-01200-R using CUNRDIPG */
/* 00834-01200-R using CUNRDMPG */
...
The left hand side in the comment shows a hierarchy of the top-level and sub-level
conversions. The right hand side shows the name of the tables used.
Error situations: The following paragraphs show how the listing can be used in
error situations:
1. Environmental errors:
Before the ’real’ processing starts all the required resources are checked and
allocated. When errors occur in that phase no source listing and no statement
report are generated. The identification and statistic sections are printed. No image
is generated. A listing with an environmental error might look like this:
2. Syntactical errors:
Once the initialization phase has successfully been executed the input stream is
read from //SYSIN DD and the source listing is produced. The input stream then is
parsed for syntactical errors. The values of the parameters are not checked at this
point. Syntactical errors are for instance:
v unrecognized statement keywords
v missing/excessive parameters
3. Semantical errors:
When the syntax of a statement is correct the specified parameters are checked for
reasonable values. Semantical errors are for instance:
v CCSIDs out of range
v invalid technique-characters
v invalid case conversion modes
v conversion table not found
The statement is printed in the statement report followed by the error messages
issued. No image is generated. A listing with a semantical error might look like this:
After generating the conversion image, copy it to SYS1.PARMLIB or any other data
set in the logical parmlib concatenation.
The sizing in the following table is based on the assumption that the MBCS
CCSID consists of one SBCS and one DBCS codepage.
Table 5. Main storage needed for conversions of type MBCS
conversion type size of storage
MBCS→SBCS direct 64KB
MBCS→SBCS via 1200 192KB
MBCS→DBCS direct 128KB
MBCS→DBCS via 1200 256KB
MBCS→MBCS via 1200 320KB
GB18030 MBCS→DBCS 257KB
DBCS→GB18030 MBCS 291KB
After the image was generated look for message CUN1017I in the listing of the
image generator. It shows exactly the number of pages the image requires in main
storage.
Note: Due to some overhead, the image stored on DASD occupies about 1.13
times the size.
and check the command output on section STORAGE. The output looks like:
CUN3000I 09.39.07 UNI DISPLAY 476
STORAGE: ACTIVE 566 PAGES
LIMIT 123456 PAGES
The size of the active image in pages is found behind the ACTIVE parameter. In
this example 339 pages are used.
The minimum value for the REALSTORAGE parameter depends on how the image
is activated:
v using IPL:
The storage needed is the size of the image plus 1 page.
v using the SET UNI command (parmlib member with keyword IMAGE ):
The storage needed is the size of the currently active image plus the size of the
new conversion image.
This value is the smallest value which can be specified for the REALSTORAGE
parameter. It is not possible to load the image and specify a smaller value. But
using the minimum value might cause that a new value has to be determined
everytime a new image is to be used. Therefore it might be useful to specify a
higher value, if the higher usage of the real storage can be tolerated. Consider that
the maximum allocation only occurs after a new conversion image is loaded and
two environments are established. To analyze the impact to your system, monitor
the paging activity. After determining a suitable value, consider to use it in all
parmlib members with keyword IMAGE on one system to ensure the protection.
The storage allocated by the inactive environment can be freed by deleting it. See
“Parmlib member for deleting an inactive conversion environment” on page 26 for a
description on how to delete an inactive conversion environment.
Keyword IMAGE
Purpose
This a required keyword and can only be specified once. The keyword IMAGE
identifies the name of the conversion image to be selected. This image must be
present in SYS1.PARMLIB or any other data set in the logical parmlib
concatenation.
Format
ÊÊ IMAGE member ; ÊÍ
Parameters
member
This is a required parameter. member is the name of the conversion image. The
valid range is any valid z/OS member name. There is no default value.
Examples
Here is an example of a statement with keyword IMAGE:
IMAGE CUNUNI01;
Keyword REALSTORAGE
Purpose
This is a required keyword. It can only be specified once and must be used in
combination with keyword IMAGE. The REALSTORAGE keyword defines an upper
storage limit for pages to be used by conversion images.For further information, see
“Determining the value for REALSTORAGE parameter” on page 24.
Note: Loading a new conversion environment will be rejected when the value of
the REALSTORAGE keyword is lower than the amount of storage needed.
Format
ÊÊ REALSTORAGE nnn ; ÊÍ
Parameters
nnn
This is a required parameter. nnn is the maximum amount of pages which can be
used by conversion images. The valid range is 0 to 524287. The selection of ’0’
results in no limit (=524287). There is no default value.
Keyword DELETE
Purpose
This a required keyword and can only be specified once. The keywords DELETE
and IMAGE cannot be specified in the same member. Keyword DELETE is provided
to delete an inactive, unused conversion environment.
Format
ÊÊ DELETE mode ; ÊÍ
mode:
INACTIVE
Parameters
mode
This is a required parameter. The string literal ’INACTIVE’ must be specified. There
is no default value.
Examples
Here is the only valid statement with keyword DELETE:
DELETE INACTIVE;
For a sample of a parmlib member with keyword DELETE refer to “Samples for
parmlib member CUNUNIxx” on page 109. You find information on how to delete an
inactive conversion environment in “Deleting an inactive conversion environment” on
page 30.
Editing IEASYSxx
Now edit IEASYSxx like this
1. Add parameter UNI to IEASYSxx
ÊÊ UNI= xx ÊÍ
,
( » xx )
This parameter specifies one or more CUNUNIxx parmlib members that contain
the keywords which configure the conversion environment.
2. Activate the new conversion environment: The second step is to activate the
new conversion environment by loading the new conversion image into storage
using the SET UNI command. The changes to the conversion environment can be
verified with the DISPLAY UNI command. Detailed information on both commands
are to be found in Appendix A, “Commands” on page 73.
With the SET UNI command, the changes to the conversion environment are
immediatly active (dynamic changes).
1. Check the current status of the conversion environment. Enter
DISPLAY UNI,ALL
SET UNI=xx
where xx is the suffix of the parmlib member mentioned in the previous step.
5. Verify the changes with the DISPLAY UNI command. Enter
DISPLAY UNI,ALL
Note: If step 6 is omitted, your changes are gone with the next IPL.
If a new conversion image is loaded with the SET UNI command, the old image is
preserved and flagged as inactive. Then a new conversion environment is created
and set ’active’.
The system maintains only one active and one inactive environment. A new
environment can only be established, when no inactive environment exists.
Preserving the previously active environment allows to load new definitions into the
z/OS Support for Unicode workspace, even when conversion requests are running.
When deleting an inactive conversion environment the critical cases of long running
conversion services calls have to be considered. These calls can continue the
conversions without interruption because they can still access the original
conversion image now set to inactive. This inactive conversion environment should
only be deleted when it is no longer used, that means when all calls are finished.
New conversion requests are not critical, they are rejected until the new conversion
environment is activated.
The DISPLAY UNI command shows the date and time, when the conversion
environment was set inactive. Enter the command:
DISPLAY UNI,ENV,STOR
Check the ENVIRONMENT section to get information about the last changes to the
conversion environments. MODIFIED means that a new conversion environment
was activated. In the STORAGE section, the parameter INACTIVE shows the time
stamp when the old conversion environment was set inactive. Normally MODIFIED
and INACTIVE have the same time stamps because these processes run
synchronously.
Two hours after the change of the environment, you can be sure that the inactive
conversion environment is not used any more. Then the inactive conversion
environment can be deleted to free the allocated resources (the pages fixed in
storage).
You can delete the inactive conversion environment as follows:
1. create a parmlib member specifying the keyword DELETE INACTIVE. The
parmlib member must be named CUNUNIxx. Refer to “Parmlib member for
deleting an inactive conversion environment” on page 26 and “Samples for
parmlib member CUNUNIxx” on page 109 for more information.
Character conversion
The character conversion is also referred to as ’conversion between specified
CCSIDs’. The character conversion services are called using a stub routine named
CUNLCNV. It converts a string of text characters between the specified code pages
given as CCSIDs. It works for all character conversions that have an UCCE
(Unicode character conversion control entry) which is built during IPL and may be
changed by a SET UNI command.
The CCSID is defined as a 32-bit binary integer where numbers below X'DFFF'
represent standard CCSIDs (see the document Character Data Representation
Architecture Reference and Registry, SC09-2190). Range from X'E000' to X'EFFF'
may be used for user-defined CCSIDs. Values from X'F000' to X'FFFF' are reserved
for special purposes.
All data is expected to be in big endian encoding. Conversion from and to little
endian encoding has to be done outside the z/OS support for Unicode. See
“Glossary of terms and abbreviations” on page 371 for an explanation of the endian
format.
Instead of the CCSIDs, a handle to the UCCE can be given as input. This is always
possible after the first call because the handle of the UCCE that was used is
returned. This helps speeding up the conversion because the code needed to
locate the conversion table has to be executed only in the first call.
Note: All indirect conversion services require a work buffer to be provided by the
caller of the services. Caller allocation of the work buffer eliminates the need
for the services themselves to be concerned with memory management (and
cleanup on failure). To hold at least one Unicode character the length of the
work buffer in bytes must be at least 2. For optimal performance it should be
not less than two times the number of characters in the source string.
The character conversion services convert data between any CCSID types as
described in Table 2 on page 4.
From the caller’s perspective, conversions are always done with a single call to the
conversion services. However internally, conversions between
v a mixed code page, and anything other than simple code pages
v UTF-8 and anything other than UCS-2
are done in two steps. Two step conversions require that a work buffer be supplied
by the caller. For coding simplicity, a caller may choose to always supply a work
buffer (which will go unused for single-step conversions). Alternatively, if the caller
knows that a particular conversion is ″single-step″, the work buffer need not be
supplied.
The dynamic data area (DDA) is needed to make the service reentrant, and holds
all the variables needed internally by the conversion service. The size of the DDA
required depends on the type of conversion being done (source and target
CCSIDs). The current minimum DDA size is 800 bytes, and the maximum is 3080
bytes, but the latter is subject to change in future releases as additional conversions
are added.
Regardless of how the caller determines the DDA size, IBM recommends that the
caller also provide code to recognize and react (by allocating a larger DDA buffer
and recalling the service) to a ″CUN_RS_DDA_BUF_SMALL″ error.
When the service returns, it updates the source buffer and target buffer pointers,
and lengths. Thus the callers can see how many bytes were converted and how
much of the target buffer is filled up. Return codes and reason codes notify when a
target buffer overflow was detected or any other critical case happened (see
“Conversion services – return and reason codes” on page 103). Recommendations
for the work buffer and target buffer sizes are listed in “Target buffer overflow” on
page 59.
The source code page (From-CCSID), target code page (To-CCSID) and
technique-search-order are given initially. A call with those specified always returns
a conversion handle which – for the services – is a fast path to the conversion table
and its properties. In subsequent calls, it is recommended to provide the conversion
handle. If callers want to request the conversion handle without converting, they can
do that by specifying a source buffer length of 0.
The caller can put the conversion data in any data space. To allow the conversion
service to access the data, an ALET must be specified. An ALET of 0 indicates that
the data is in the primary address space.
To indicate which code page was active at the end of conversions from and to
mixed code pages, CUNBCPRM_Subcodepage is updated by the services. The
same technique is used for designator sequences1 used for some ISO 2022
encoding. For single shift sequences that apply only to one character following the
shift sequence, the services do not stop between the shift sequence and the
character it applies to.
1. The term ’designator sequence’ is explained in the “Glossary of terms and abbreviations” on page 371.
#include<cunhc.h>
#define SLEN 1000
#define WLEN 1000
#define TLEN 4096
.....
unsigned char Sourcebuffer [SLEN ];
unsigned char Targetbuffer [TLEN ];
unsigned char Workbuffer [WLEN ];
unsigned char DDA [CUNBCPRM_DDA_REQ ];
Mapping of parameters in C
A C header file is supplied (cunhc.h) which contains the function prototypes for the
conversion services. The following structures used in the interface to the character
conversion service show the parameter list (tagCUNBCPRM) and conversion
handle within the parameter list (uccehdl):
Type ESID Start with sub code page Start with sub code page
_____________________ _____________________
conversion to UCS-2 conversion from UCS-2
ISO2022-JP, JP-1, 5404 1 2
JP-2
ISO2022-KR 5409 1 1
EBCDIC MBCS 1301 1 1
ASCII MBCS PC 2300, 1 1
3300
ASCII MBCS EUC 4403 2 2
CUNBCPRM_Substitution
Indicates to the caller whether the conversion service has converted
a character into the conversion table’s substitution character.
For a list of return and reason codes, see Table 16 on page 104.
Case conversion
The case conversion is also referred to as ’conversion to upper or lower case’. The
case conversion services are called using a stub routine named CUNLASE. It
converts the case in a string of text characters.
Case conversion must be activated by specifying the CASE control statement in the
input data set for the image generator (job CUNJIUTL). For detailed information see
“Creating a conversion image” on page 11 and “Control statement CASE” on
page 16.
Note: A dynamic data area (DDA) must always be specified. The required length is
defined by constant CUNBAPRM_DDA_Req (see interface definition file
CUNBAIDF).
When the service returns, it replaces the source and target buffer pointers and
lengths. Thus the caller can see how many bytes were converted and how much of
the target buffer is filled up. Return codes and reason codes notify when a target
buffer overflow was detected or any other critical case happened (see “Critical
cases” on page 58).
The conversion type is given initially. A call always returns a case conversion
handle which is a fast path for the conversion services to the case conversion table
and its properties. In subsequent calls, IBM recommends to provide the case
conversion handle. If the caller wants to request the case conversion handle without
converting any data, it can be done by specifying a source buffer length of 0.
The caller can put the conversion data in any dataspace. To allow the service to
access the data, an ALET must be specified. An ALET of 0 indicates that the data is
in the primary address space.
#include<cunhc.h>
#define SLEN 1000
#define TLEN 4096
.....
unsigned char Sourcebuffer [SLEN ];
unsigned char Targetbuffer [TLEN ];
unsigned char DDA [CUNBAPRM_DDA_REQ ];
Mapping of parameters in C
A C header file is supplied (cunhc.h) which contains the function prototypes for the
case conversion services. The following structure is used in the interface to the
case conversion service.
Note: C constants for the parameter area are defined in the header file cunhc.h.
For a list of return and reason codes, see Table 16 on page 104.
Normalization
| Normalization is also referred to as ’decomposition or composition’. The
| normalization service is called using a stub routine named CUNLNORM.
| Normalization allows the decomposition or composition of a Unicode input string.
| Normalization is described in ″Unicode Technical Report #15: Unicode
| Normalization Forms″, which is available at
| http://www.unicode.org/unicode/reports/tr15.
| Note: A dynamic data area (DDA) must always be specified. The required length is
| defined by constant CUNBNPRM_DDA_Req (see interface definition file
| CUNBNIDF).
| When the service returns, it replaces the source and target buffer pointers and
| lengths. Thus the caller can see how many bytes were normalized and how much
| of the target buffer is filled up. Return codes and reason codes notify when a target
| buffer overflow was detected or any other critical case happened (see “Critical
| cases” on page 58).
| Mapping of parameters in C
| A C header file is supplied (cunhc.h) which contains the function prototypes for the
| normalization service. The following structure is used in the interface to the
| normalization service.
|
|
| typedef struct tagCUNBNPRM {
| Note: C constants for the parameter area are defined in the header file cunhc.h.
For a list of return and reason codes, see Table 16 on page 104.
Critical cases
The following critical cases can occur for character conversion (“Character
conversion” on page 33) as well as for case conversion (“Case conversion” on
page 47) and normalization (“Normalization” on page 53).
For the case that the handle is invalid, the caller can specify with a flag whether the
conversion has to be terminated or retried with a new valid conversion handle.
Specifying ″retry″ does make sense, if the caller does not want a special version of
a conversion table. For example the only change of the new character conversion
table may be that the Euro symbol was added but which is not used by the caller.
Specifying ″terminate with error″ does make sense, if the conversion has to use
exactly one version of the conversion table.
There are two ways of caller reaction on reason code CUN_RS_TRG_EXH (target
buffer exhausted):
1. redo the conversion with a big enough target buffer:
Repeat the conversion with a target buffer large enough to hold at least the
maximum possible amount of target string bytes. To accomplish the necessary
’worst case’ calculation, the caller has to take into account the number of source
bytes to be converted and the nature of the CCSIDs involved (in terms of
minimum possible source character width, maximum possible target character
width, and possible shift-in/shift-out character sequences, or sub table switch
control bytes). Such a ’worst case size’ target buffer will prevent the occurrence
of the reason code CUN_RS_TRG_EXH (target buffer exhausted).
The following table lists the minimum and maximum character widths of the
different encoding schemes:
Table 13. Minimum and maximum character widths of the different encoding schemes
Encoding ESID Minimum Maximum Rationale
scheme Character Character
Width Width
SBCS x1xx 1 1 pure single byte
DBCS and x2xx 2 2 pure double byte
UCS-2
UTF-8 7807 1 4 UTF-8 uses 1 to 4 bytes to encode
Unicode characters
PC MBCS 2300 1 2 PC MBCS encodings always use one
3300 SBCS and one DBCS code page
(a) Specify the entries using the assembler macro CUNAIKBG in a source
data set
simple definition:
ES=es,SUFFIX=suffix,CCDEF=ccdef
ccdef:
(sp,sub,nl,lf,cr,eof)
mixed definition:
ES=es,SUBIDS=sub
,ACRI=acri
sub:
acri:
(type,id)
Notes:
1 specify 2 to 8 sub-ccsids
ccsid The value ccsid specifies the user-defined CCSID to be inserted
into the knowledge base. ccsid is to be specified in decimal form. It
is a unique five digit number in the range 57344 -61439 (this range
is reserved for private use).ccsid is required.
es The value es specifies the encoding scheme identifier. It is a four
digit identifier in hexadecimal form. The following encoding schemes
are supported:
| v simple:
| – SBCS: 1100, 2100, 3100, 4100, 4105, 4155, 5100, 5150,
| 5160, 6100, 8100
| – DBCS: 1200, 2200, 3200, 5200, 7200, 8200, 9200
| – TBCS: 5700
| – UTF8: 7807
| – QBCS: 2900
| v mixed:
| – EBCDIC MBCS: 1301
| – EUC MBCS: 4403
| – PC MBCS: 2300, 3300, 2A00
| – TCP/IP MBCS: 5404, 5409, 540A
For more information about encoding schemes see Character Data
Representation Architecture Reference and Registry, SC09-2190
(Chapter 3, ’CDRA Identifiers’). Note that the value es determines
which of the other operands are mandatory or forbidden. es is
required.
suffix The value suffix specifies a two-character alphanumeric identifier to
be used in constructing the conversion table name. See Table 14 on
page 69. suffix is required for simple CCSIDs. It must not be
specified for mixed CCSIDs.
ccdef The value ccdef specifies the control function definitions. They must
be specified within parenthesis, separated by commas in the
following order:
1. sp (space)
2. sub (substitute)
3. nl (new line)
4. lf (line feed)
5. cr (carriage return)
6. eof (end of line)
(b) Assemble the source data set and re-link the knowledge base module
CUNMIKBS
ORDER CUNMIKBS
ORDER USERKBS
ORDER CUNMIEOF
MODE AMODE(31),RMODE(ANY)
INCLUDE LINKLIB(CUNMIKBS)
INCLUDE LINKLIB(USERKBS)
ENTRY CUNMIKBS
NAME CUNMIKBS(R)
From this sample you can see how to generate knowledge base entries for a
EBCDIC MBCS CCSID and its components. By performing an SMP/E RECEIVE
and APPLY the source gets assembled and load module CUNMIKBS is re-linked,
containing the user-defined knowledge base CSECT USERKBS.
Notes:
1. do not change the ORDER statements of the link step. CUNMIEOF must be
the last CSECT in the load module!
2. Be sure that an SMP/E ACCEPT has been performed for FMID HUNI2A0
before installing the USERMOD. Otherwise you cannot restore the original
CUNMIKBS by performing an SMP/E RESTORE!
A utility is supplied with job CUNJITG1 to build a character map from an existing
binary conversion table. The character map looks like that:
Each code point that maps to a target character different than the substitution
character is listed in the character map. The mapping can now be changed by
editing the values within the ’<’ and ’>’ signs. You can also add or delete lines from
the character map. Do not change the lengths of the values! Those must match the
length defined by the encoding scheme of the knowledge base entry! Each code
point must be mapped in exactly one separate line!
Note that the ’%’ sign in the first column indicates a comment line. These comment
lines contain information from the knowledge base. You can add, change or delete
comment lines as desired. You also can add comments at the end of each mapping
line.
Note: Both from-ccsid and to-ccsid must be defined in the knowledge base.
CCSID 1200 is not resolved as described in “Control statement
CONVERSION” on page 14. You have to specify a destinct UCS-2 CCSID
instead of 1200. You must specify a distinct technique character. A
technique-search-order is not supported here.
You can now make your changes to the character map MAP0AAEB and then go on
with step (b)
(b) Convert the human-readable character map into the binary format
Use job CUNJITG2 to convert the (changed) character map back to the binary
format required as input to the image generator. The following is an example that
shows how to create a user-defined conversion table from the character map
MAP0AAEB created in step (a). According to Table 14 on page 69 member
CUN0AAEB is created in the private dataset UNI.USERTBL:
//UNITG2 JOB (ACCOUNT),’UNICODE-INST’,NOTIFY=&SYSUID,
// MSGCLASS=X,MSGLEVEL=(1,1),TIME=60,CLASS=A,
// REGION=0M
//CUNMITG2 EXEC PGM=CUNMITG2,PARM=’57344,00850,0’
//CHARIN DD DISP=SHR,DSN=UNI.CHARMAP(MAP0AAEB)
//TABOUT DD DISP=SHR,DSN=UNI.USERTBL
//SYSPRINT DD SYSOUT=*
Note: Both from-ccsid and to-ccsid must be defined in the knowledge base.
CCSID 1200 is not resolved as described in “Control statement
CONVERSION” on page 14. You have to specify a destinct UCS-2 CCSID
instead of 1200. You must specify a distinct technique character. A
technique-search-order is not supported here.
v //CHARIN DD: specifies the sequential data set which holds the modified
character map. This must be in FB 80 format. Note that columns 73 to 80 are
ignored!
v //TABOUT DD: specifies the partitioned dataset that holds the generated binary
table. This must be a single dataset in FB 256 format.
v //SYSPRINT DD: specifies the data set to hold the messages issued by the utility.
Note that the substitution character is assigned to each code point that is not
explicitly listed in the character map.
The image generator searches the //TABIN DD statement of job CUNJIUTL for the
required conversion tables. Each table is identified by its member name, in the form
CUNtaabb.
Table 14. Naming conventions of conversion tables
part of CUNtaabb description
t is the technique character in the range R, E, C, L, M, or 0 - 9.
aa is the suffix from the knowledge base entry representing the
user-defined From-CCSID. The range is alphanumeric..
bb is the suffix from the knowledge base entry representing the
user-defined To-CCSID. The range is alphanumeric.
The partitioned data set SCUNTBL contains the IBM-supplied conversion tables. It
is possible to add your own conversion tables. IBM recommends to use a separate
partitioned data set where you put in your conversion tables as members. The data
set must be in FB 256 format.
Concatenate the partitioned data set that holds the user-defined tables to //TABIN
DD. Specify the appropriate CONVERSION control statements in job CUNJIUTL.
The following example of job CUNJIUTL shows the valid usage of the user-defined
CCSID 57344 and the user-defined conversiontable between CCSIDs 57344 and
850 created by the previous samples:
//UNIUTL JOB (ACCOUNT),’UNICODE-INST’,NOTIFY=&SYSUID,
// MSGCLASS=X,MSGLEVEL=(1,1),TIME=60,CLASS=A,
// REGION=0M
//CUNMIUTL EXEC PGM=CUNMIUTL
//SYSPRINT DD SYSOUT=*
//* SYSIMG must be a FB 80 dataset *****************
//SYSIMG DD DISP=SHR,DSN=UNI.IMAGES(CUNIMG01)
//TABIN DD DISP=SHR,DSN=UNI.SCUNTBL
// DD DISP=SHR,DSN=UNI.USERTBL
//SYSIN DD *
/*******************************/
/* example of input statements */
/*******************************/
CONVERSION 57344, /* src is user-defined 57344 */
850, /* tgt is IBM-supplied 850 */
0; /* 0 is user technique char */
/*
Installation
Solution to problems occurring during installation are explained in z/OS Planning for
Installation, GA22-7504-03.
Message CUN2003S
If message CUN2003S is issued, look at preceeding messages describing the
reason for the problem. An additional IPL is required after the problem is fixed to
establish z/OS Unicode support (message CUN2003S appears if the conversion
environment can’t be established). After CUN2003S message CUN2002W is issued
to give the possibility to stop the IPL.
Message CUN2004S
If message CUN2005S is issued, look at preceeding messages describing the
reason for the problem. The IPL can be continued (message CUN2004S appears
when problems with the parmlib member or the conversion image occur) but an
conversion environment is established without conversion tables being available.
After fixing the problems, the environment can be loaded with the SET UNI
command. Applications using conversion services will fail until the conversion
environment has been successfully initialized. After CUN2004S message
CUN2002W is issued to give the possibility to stop the IPL.
Message CUN2002W
If an error occurs initializing z/OS support for Unicode during IPL, the IPL will be
stopped and message CUN2002W is issued. There are two possibilities to react:
1. Reply ’00’ to this message or hit the ENTER key. Than the IPL will continue with
restrictions to conversion services. The problem can be fixed locally.
2. Shutdown the system or leave it waiting. Fix the problem from a different
system and than re-IPL. This is recommended in a syplex environment.
In case the z/OS system is a member in a sysplex, you should be aware that at this
phase in the IPL, the system has already joined the sysplex and therefore lock
contention can occur.
Message CUN2029S
If message CUN2029S is issued, during processing of the SET UNI or DISPLAY
UNI command, do the following:
v check for message CUN2003S in the syslog at IPL time. Also look for preceding
error messages. These may give a reason for the problem.
v verify that the steps described in Chapter 3, “Creating the conversion
environment” on page 11 have been done correctly.
Message CUN2011E
If message CUN2011E appears, the creation of a data space has failed with the
reported return and reason code. If the return code is ’0C’ and reason code
Operator Action: Restart the abended application. Increase the wait between issuing
a SET UNI command with keyword IMAGE and deleting the old environment.
Purpose
The SET UNI command changes the conversion environment when the system is
already up and running.
Format
ÊÊ SET UNI= xx ÊÍ
,
( » xx )
Parameters
xx is the suffix of the parmlib member CUNUNIxx.
There are two different types of parmlib members to be selected. One parmlib
member covers the information to load an appropriate conversion image (keyword
IMAGE and REALSTORAGE). The other type of parmlib member is needed for
deleting an inactive conversion environment. For further information on the parmlib
members, see “Creating parmlib member CUNUNIxx” on page 24.
Usage
Activating a conversion environment:
SET UNI=04
You can also use the SET UNI command in this way:
SET UNI=(01,02)
DISPLAY UNI,ALL
and look for the INACTIVE parameter in section ENVIRONMENT. For example,
the output of the DISPLAY UNI command looks like this:
CUN3000I 09.21.59 UNI DISPLAY 534
ENVIRONMENT: CREATED 07/05/2000 AT 16.42.29
MODIFIED 07/05/2000 AT 17.43.05
IMAGE CREATED 07/05/2000 AT 17.11.22
SERVICE: CHARACTER NORMALIZATION CASE
STORAGE: ACTIVE 356 PAGES
INACTIVE 453 PAGES SINCE 07/05/2000 AT 17.43.05
LIMIT 524287 PAGES
CASECONV: NORMAL
NORMSERV: DISABLED
CONVERSION: 01047-00850-R 00850-01047-R
01047-13488-R 13488-01047-E
SET UNI=05
SET UNI=05
IEE252I MEMBER CUNUNI05 FOUND IN SYS1.PARMLIB
*69 CUN2036I INACTIVE CONVERSION ENVIRONMENT (UNICODE2) WILL BE DELETED.
ARE YOU SURE? (Y/N)
R 69,Y
IEE600I REPLY TO 69 IS;Y
CUN2038I INACTIVE CONVERSION ENVIRONMENT (UNICODE2)
WAS SUCCESSFULLY DELETED
CUN2034I SET UNI COMMAND SUCCESSFULLY EXECUTED
IEE536I UNI VALUE 05 NOW IN EFFECT
The result of the SET UNI command can be verified with the DISPLAY UNI
command. The command
DISPLAY UNI,ENV,STOR
Note: The keywords DELETE and INACTIVE have to be specified together in one
parmlib member. They can not be separated like the keywords IMAGE and
REALSTORAGE. For further information, see “Creating parmlib member
CUNUNIxx” on page 24 and “Samples for parmlib member CUNUNIxx” on
page 109.
Purpose
The DISPLAY UNI command shows the status of available conversions and
whether the conversion services are already initialized or not.
Format
,ENVIRONMENT | ENV
ÊÊ DISPLAY UNI » ÊÍ
,SERVICE | SERV
,STORAGE | STOR
,CONVERSION | CONV
,NORMALIZATION | NORM
,FROMID= ccsid
,TOID= ccsid
,CASECONV | CASE
,ALL | A
Parameters
ENVIRONMENT
displays three time stamps, the first time stamp shows when the conversion
environment was created, the second when the last change were made
with the SET UNI command and the third when the active image was
created. If all three time stamps are equal, no active image could be
loaded. In that case check your system log for Unicode error messages
during IPL. For further information see “Message CUN2002W” on page 71.
Appendix A. Commands 75
DISPLAY UNI command
SERVICE
gives the status of available conversion services.
STORAGE
shows the active and inactive conversion table data space and its limit. The
inactive data space pages only appear when an inactive data space exists.
CONVERSION
displays the supported character conversion services.
| NORMALIZATION
displays if normalization service is enabled or disabled.
FROMID=ccsid
displays only the conversions with the specified From-CCSID (related to
control statement CONVERSION, see “Control statement CONVERSION”
on page 14).
TOID=ccsid
displays only the conversions with the specified To-CCSID (related to
control statement CONVERSION, see “Control statement CONVERSION”
on page 14).
CASECONV
displays the supported case conversion services.
ALL displays a summary of all the above mentioned keywords.
Usage
The command
DISPLAY UNI,ALL
If no active conversions are available, you will get the following output when using
command
Appendix A. Commands 77
DISPLAY UNI command
DISPLAY UNI,ALL
| CUN3000I 11.00.39 UNI DISPLAY 716
| ENVIRONMENT: CREATED 08/01/2000 AT 15.18.47
| MODIFIED 08/07/2000 AT 15.18.47
| SERVICE: CHARACTER NORMALIZATION CASE
| STORAGE: ACTIVE 1 PAGES
| LIMIT 123456 PAGES
| CASECONV: NONE
| NORMSERV: DISABLED
| CONVERSION: NO CONVERSIONS FOUND
|
|
In the example, the conversion service switches between the SBCS table and the
DBCS table when a shift character is in the data stream.
The image generator selects one table that handles the SBCS part (CCSID 1027 to
CCSID 13488) and another table which handles the DBCS part (CCSID 300 to
CCSID 13488). The selection depends on the specified technique-search-order
characters and the availability of the approriate conversion tables.
For more information on how MBCS CCSIDs are composed, also refer to Character
Data Representation Architecture Reference and Registry, SC09-2190 (Appendix C
’CCSID Tables’).
rc return code
CUN1000I product VERSION version
System Action: Processing terminates.
Explanation: This message identifies the version of
the product. Operator Response: Check that a valid DD card has
been supplied and that the data set is valid.
product product name
System Programmer Response: None.
version version of the product
source: image generator for z/OS support for Unicode
System Action: Processing continues.
CUNMIMAP
Operator Response: None.
System Programmer Response: None. CUN1004E ERROR OCCURRED DURING READ
PROCESSING FOR ddname RC= rc
source: image generator for z/OS support for Unicode
Explanation: An error is encountered while attempting
to read from the specified ddname.
CUN1001I PROCESSING STARTED ON datemdy4
AT timehmsp ddname
name of the DD statement that failed read
Explanation: The image generator is initialized and
proccessing
ready to process input statements.
rc return code
datemdy4
date when processing has started System Action: Processing terminates.
timehmsp Operator Response: Check that a valid DD card has
time when processing has started been supplied and that the data set is valid. Also check
for further I/O error messages indicating a hardware
System Action: Processing continues.
problem.
Operator Response: None.
System Programmer Response: None.
System Programmer Response: None.
source: image generator for z/OS support for Unicode
source: image generator for z/OS support for Unicode CUNMIMAP
Explanation: The image generator has completed Explanation: The image generator encountered an
processing the input statements. error while attempting to write to the specified ddname.
CUN1013E IMAGE GENERATION ERROR: CUN1017I GENERATED IMAGE SIZE size PAGES
HEADER EYECATCHER = eye1
Explanation: This message identifies the size in 4k
TRAILER EYECATCHER= eye2 IMAGE
pages occupied by the image.
SIZE = size
size size of the generated image in pages
Explanation: An attempt has been made to generate
an image larger than the supported maximum size. The System Action: Processing continues.
image has been overwritten in a wrap-around.
Operator Response: None.
eye1 eyecatcher found in the header
System Programmer Response: None.
eye2 eyecatcher found in the trailer
source: image generator for z/OS support for Unicode
size size of the image
System Action: Processing terminates. CUN1018E ERROR DURING CCSID VALIDATION.
CCSID ’ ccsid ’ NOT FOUND
Operator Response: None.
Explanation: The requested CCSID is not supported
System Programmer Response: Check the SYSIN
in the knowledge base. The system continues in
control statements.
validation mode. No image will be generated.
source: image generator for z/OS support for Unicode
ccsid missing CCSID
System Action: Processing continues.
CUN1014I INPUT READ reccnt RECORDS
Operator Response: Remove or amend the
Explanation: This message identifies the number of
conversion request.
records read from SYSIN DD.
System Programmer Response: None.
reccnt number of records read from SYSIN
source: image generator for z/OS support for Unicode
System Action: Processing continues.
Operator Response: None.
CUN1019E ERROR DURING CONVERSION
System Programmer Response: None. PROCESSING. MAXIMUM OF max
CONVERSION TABLES EXCEEDED
source: image generator for z/OS support for Unicode
Explanation: The maximum number of supported
conversion tables has been exceeded.
CUN1015I STATEMENTS PROCESSED cnt
max maximum number of supported conversion
Explanation: This message identifies the number of
tables
statements found in SYSIN DD.
System Action: Processing terminates.
cnt number of statements found in SYSIN
Operator Response: Review the number of
System Action: Processing continues.
CONVERSION statements provided in SYSIN DD and
Operator Response: None. rerun the job.
source: image generator for z/OS support for Unicode source: image generator for z/OS support for Unicode
source: image generator for z/OS support for Unicode Operator Response: Review the number of
CONVERSION statements provided in SYSIN DD and
rerun the job.
Appendix C. Messages 87
Messages from z/OS support for Unicode
System Programmer Response: None. System Action: Processing continues.
source: image generator for z/OS support for Unicode Operator Response: Correct the CONVERSION
statement and resubmit the job.
CUN1021E ERROR DURING CONVERSION System Programmer Response: None.
PROCESSING. MAXIMUM OF max
source: image generator for z/OS support for Unicode
SUB_LEVEL CONVERSIONS
EXCEEDED
CUN1025E ERROR DURING CONVERSION
Explanation: The maximum number of supported
PROCESSING. INVALID TSO ’ tso ’
sub-conversions has been exceeded.
Explanation: The Technique Search Order may
max maximum number of supported sub-level
specify up to eight characters. The possible values are:
conversions
R - round trip E - enforced subset C - customized
System Action: Processing terminates. subset L - LE behavior M - modified LE behavior 0-9 -
user tables The system continues in validation mode.
Operator Response: Review the number of
No image will be generated.
CONVERSION statements provided in SYSIN DD and
rerun the job. tso technique search order
System Programmer Response: None. System Action: Processing continues.
source: image generator for z/OS support for Unicode Operator Response: Correct the technique search
order and resubmit the job.
CUN1022E ERROR DURING CASE PROCESSING. System Programmer Response: None.
INVALID MODE ’ mode ’
source: image generator for z/OS support for Unicode
Explanation: The mode specified on the CASE
statement is not supported. Valid modes are: ’NORMAL’
CUN1026E ERROR LOCATING DD STATEMENT:
- creates tables for normal casing
ddname
mode invalid case conversion mode
Explanation: The named DD statement is required but
System Action: Processing continues. missing in the image generator jcl. Required DD
statements are: - SYSIN - TABIN - SYSIMG
Operator Response: Correct the CASE statement and
resubmit the job. ddname
name of the DD statement that is missing
System Programmer Response: None.
System Action: Processing terminates.
source: image generator for z/OS support for Unicode
Operator Response: None.
CUN1023E ERROR DURING CCSID VALIDATION. System Programmer Response: Add the required
INVALID CCSID ’ ccsid ’ DD statement and resubmit the job.
Explanation: A valid CCSID is a decimal number from source: image generator for z/OS support for Unicode
1 to 65535. The system continues in validation mode.
No image will be generated.
CUN1027W DUPLICATE CONVERION STATEMENT
ccsid invalid CCSID
Explanation: The CONVERSION statement is
System Action: Processing continues. specified exactly as a previous one and therefore it is
ignored.
Operator Response: Correct the CCSID and resubmit
the job. System Action: Processing continues.
System Programmer Response: None. Operator Response: None.
source: image generator for z/OS support for Unicode System Programmer Response: Verify that this is
acceptable. If not, change the input control statements
and resubmit the job.
CUN1024E ERROR DURING CCSID VALIDATION.
BOTH CCSIDS ARE 1200 source: image generator for z/OS support for Unicode
Explanation: Conversion from and to CCSID 1200 is
not supported. The system continues in validation
mode. No image will be generated.
Explanation: An error during ALESERV DELETE reccnt number of records read from CHARIN
processing is encountered. System Action: Processing continues.
rc return code from ALESERV DELETE Operator Response: None.
rs reason code from ALESERV DELETE System Programmer Response: None.
System Action: Processing terminates. source: User support
Operator Response: Check ALESERV DELETE
return and reason codes. CUN1103I OUTPUT WRITTEN reccnt RECORDS
System Programmer Response: None. Explanation: This message identifies the number of
source: image generator for z/OS support for Unicode records written to TABOUT DD.
CUNMIMAP reccnt number of records written to TABOUT
System Action: Processing continues.
CUN1031W DUPLICATE NORMALIZE STATEMENT
Operator Response: None.
Explanation: The NORMALIZE statement is specified
exactly as a previous one, and therefore, is ignored. System Programmer Response: None.
Appendix C. Messages 89
Messages from z/OS support for Unicode
System Programmer Response: Correct the
CUN1108E ERROR DURING DYNAMIC QUERY.
hexadecimal data.
RC= rc EC= errcode INFO= info
source: User support
Explanation: The dynamic query of the dataset name
allocated to TABOUT DD failed.
CUN1105E ERROR IN COLUMN col . < EXPECTED
rc return code from SVC99
Explanation: a ’<’ sign was expected in the specified
errcode error code from SVC99
column to start hexadecimal data.
info info code from SVC99
col column in which the error was detected
System Action: Processing terminates.
System Action: Processing terminates.
Operator Response: Find the return code in the
Operator Response: None.
document z/OS MVS Programming: Authorized
System Programmer Response: Correct the Assembler Services Guide, SA22-7608, (chapter
hexadecimal data. ’Interpreting DYNALLOC Return Codes’). Follow the
actions described in the document to resolve the
source: User support problem. If you cannot resolve the problem, contact
your system programmer.
CUN1106E ERROR IN COLUMN col . > EXPECTED System Programmer Response: Check that TABOUT
Explanation: a ’>’ sign was expected in the specified DD specifies a usable PDS to hold the generated
column to terminate the hexadecimal data. conversion table.
col column in which the error was detected source: User support
Explanation: The dynamic allocation of the output System Action: Processing terminates.
member in the PDS allocated to TABOUT failed. Operator Response: Find the return code in the
rc return code from SVC99 document z/OS MVS Programming: Authorized
Assembler Services Guide, SA22-7608, (chapter
errcode error code from SVC99 ’Interpreting DYNALLOC Return Codes’). Follow the
info info code from SVC99 actions described in the document to resolve the
problem. If you cannot resolve the problem, contact
System Action: Processing terminates. your system programmer.
Operator Response: Find the return code in the System Programmer Response: Check that TABOUT
document z/OS MVS Programming: Authorized DD specifies a usable PDS to hold the generated
Assembler Services Guide, SA22-7608, (chapter conversion table.
’Interpreting DYNALLOC Return Codes’). Follow the
actions described in the document to resolve the source: User support
problem. If you cannot resolve the problem, contact
your system programmer. CUN1110E ERROR DURING PARAMETER CHECK.
System Programmer Response: Check that TABOUT INVALID FROM-CCSID
DD specifies a usable PDS to hold the generated Explanation: The from-CCSID specified is missing or
conversion table. invalid. A valid CCSID is numeric and in the range from
source: User support 1 to 65535.
System Action: Processing terminates.
Operator Response: none.
Appendix C. Messages 91
Messages from z/OS support for Unicode
Operator Response: This message might be such as diagnostic messages that precede this
preceded by other messages which are describing the message, and try to correct the problem. If you cannot
reason of the abend. In any case, a dump was issued. resolve the problem, contact your system programmer.
Gather any error indications, such as diagnostic This message is followed by message CUN2002W to
messages or dumps that precede this message and stop the IPL processing. If the problem is fixed, re-IPL
contact your system programmer. An IPL is needed to to make the conversion environment available.
make the conversion service available again.
System Programmer Response: Analyze the
System Programmer Response: Analyze the messages and resolve the reason for the problem.
messages and the dump and resolve the reason for the Contact IBM support, if you cannot find or resolve the
abend. Contact IBM support, if you cannot find or reason.
resolve the reason.
source: IEAVNPUN
source: IEECB999
CUN2004S CONVERSION ENVIRONMENT
CUN2002W HIT ENTER TO CONTINUE, OR RE-IPL PARTIALLY INITIALIZED,
NO CONVERSION TABLES LOADED
Explanation: This message is preceded by one or
(RC= retcode )
several error messages at IPL describing the cause of
the problem. This message notifies the operator that the Explanation: This message is preceded by one or
conversion services will not be available and offers the several error messages, describing a severe problem
possibility to stop the IPL processing. while initializing the conversion environment. If IPL
processing is continued, the conversion environment will
System Action: Processing stops and the system
be initialized without the availability of any conversion
waits for the reply.
table.
Operator Response: Gather any error indications,
retcode highest return code of the failing steps
such as diagnostic messages that precede this
message. Look at the description of the preceding System Action: Processing is stopped with message
messages and try to correct the problem. If the problem CUN2002W.
can be solved from a different system (for example in a
Operator Response: Gather any error indications,
sysplex environment), then it might be easier to fix the
such as diagnostic messages that precede this
problem there and re-IPL, at least if an additional IPL
message, and try to correct the problem. If you cannot
would be required to make the conversion services
resolve the problem, contact your system programmer.
available. If the IPL is continued, the availability of the
This message is followed by message CUN2002W to
conversion environment is restricted. For example,
stop the IPL processing. If the problem is fixed, use the
applications using conversion services will fail and might
SET UNI command to make conversions available.
cause problems for the users. If you cannot resolve the
problem, contact your system programmer. System Programmer Response: Analyze the
messages and resolve the reason for the problem.
System Programmer Response: Analyze the
Contact IBM support, if you cannot find or resolve the
messages and resolve the reason for the problem.
reason.
Contact IBM support, if you cannot find or resolve the
reason. Depending on whether the system is needed source: IEAVNPUN
continue IPL or re-IPL when the problem is solved.
source: IEAVNPUN CUN2005I CONVERSION ENVIRONMENT
SUCCESSFULLY INITIALIZED
CUN2003S CONVERSION ENVIRONMENT NOT Explanation: The conversion environment is
INITIALIZED. successfully initialized.
CONVERSION SERVICES NOT
AVAILABLE (RC= retcode ) System Action: None.
Appendix C. Messages 93
Messages from z/OS support for Unicode
code and resolve the reason for the problem. Contact
CUN2011E CANNOT CREATE DATA SPACE
IBM support, if you cannot find or resolve the reason.
(NAME= dsname , TYPE= dstype ,
RC= retcode , RS= rsncode ) source: CUNMISA2, CUNMIRP2, CUNMIIN2
Explanation: The system cannot create a data space
of type dstype. CUN2013S CONVERSION ENVIRONMENT
CORRUPTED:
dsname
CANNOT FIND EYE-CATCHER OF
name of the data space
crtl_block
dstype type of the data space - EXPECTED eyecatcher1 ,
- FOUND eyecatcher2
retcode return code of the DSPSERV macro with
parameter CREATE Explanation: The system cannot find the eye-catcher
of crtl_block. The hexadecimal sequence eyecatcher1 is
rsncode
expected, where the sequence eyecatcher2 was found.
associated reason code of the DSPSERV
The eye-catcher was destroyed. The conversion
macro
environment is destroyed.
System Action: Processing terminates.
crtl_block
Operator Response: Find the return code in the control block name
document z/OS MVS Programming: Authorized
eyecatcher1
Assembler Services Reference ALE-DYN, SA22-7609
eye-catcher expected (HEX)
(chapter ’Return and Reason Codes’, chapter
’DSPSERV - Create, Delete, and Control Data Spaces’). eyecatcher2
Follow the actions described in the document to resolve eye-catcher found (HEX)
the problem. If you cannot resolve the problem, contact
System Action: Processing terminates.
your system programmer.
Operator Response: Gather any error indications,
System Programmer Response: Analyze the return
such as diagnostic messages that precede this
and reason code and resolve the reason for the
message, dump the master address space and Unicode
problem. Be aware that the parameter MAXCAD in
data spaces, and contact your system programmer.
IEASYSxx may limit the number of data spaces of type
Immediately re-IPL.
COMMON (for details see document z/OS MVS
Initialization and Tuning Reference, SA22-7592). System Programmer Response: Contact IBM
Contact IBM support, if you cannot find or resolve the support .
reason.
source: IEECB999, CUNMISA1, CUNMISA2
source: CUNMISA2, CUNMIRP2, CUNMIIN2
Appendix C. Messages 95
Messages from z/OS support for Unicode
document z/OS MVS Programming: Authorized img_name
Assembler Services Reference ALE-DYN, SA22-7609 name of the conversion image
(chapter ’Return and Reason Codes’, chapter
img_size
’DSPSERV - Create, Delete, and Control Data Spaces’).
bytes loaded
Follow the actions described in the document to resolve
the problem. If you cannot resolve the problem, contact System Action: Processing continues.
your system programmer. The allocated resources will
be released after the next IPL. Operator Response: None.
System Programmer Response: Analyze the return System Programmer Response: None.
and reason code and resolve the reason for the source: CUNMIRP2
problem. Contact IBM support, if you cannot find or
resolve the reason.
CUN2024E ERROR IN PARMLIB MEMBER:
source: CUNMISA2, CUNMIRP2 INVALID VALUE ( value )
FOR KEYWORD keyword
CUN2020I START LOADING CONVERSION IMAGE REASON: NON-NUMERIC
img_name CHARACTERS WERE SPECIFIED
Explanation: The load of the image img_name has Explanation: The value value for keyword keyword
started. which is specified in the parmlib member is invalid.
Other characters are specified than the numeric
img_name characters ’0’-’9’. Evaluating the parmlib member stops,
name of the conversion image the conversion environment is left unchanged.
System Action: Processing continues. value value specified for keyword keyword
Operator Response: None. keyword
keyword
System Programmer Response: None.
System Action: Processing terminates.
source: CUNMIRP2
Operator Response: After the correction of the
parmlib member, retry to activate the parmlib member.
CUN2021I ... size_loaded BYTES DATA LOADED
System Programmer Response: Specify a correct
Explanation: This message is the progress indicator
numeric value for this keyword in the parmlib member.
for the load of a new conversion image. It shows the
total size of the image loaded at this stage. If the source: CUNMISA1
amount of data loaded is smaller than 100 MB, it will
appear for any 10 MB data read. After 100 MB of
loaded data, this message will appear in 100 MB steps. CUN2027E ERROR IN PARMLIB MEMBER:
If the image, which should be loaded, is very big, it will INVALID VALUE ( value )
take a while. This message provides feedback that the FOR KEYWORD keyword
system is still running. REASON: THE NEW LIMIT FOR FIXED
PAGES EXCEEDS THE
size_loaded MAXIMAL POSSIBLE VALUE ( max-limit
amount of bytes which are already loaded from PAGES)
the new conversion image
Explanation: The value value for keyword keyword
System Action: Processing continues. specified in the parmlib member is invalid. It is higher
than the maximal possible value max-limit. Evaluating
Operator Response: None.
the parmlib member stops, the conversion environment
System Programmer Response: None. is left unchanged.
source: CUNMIRP2 value value specified for keyword keyword
keyword
CUN2022I LOADING CONVERSION IMAGE keyword
img_name FINISHED: img_size BYTES
max-limit
LOADED
maximal limit for fixed pages
Explanation: This message indicates that the image
System Action: Processing terminates.
img_name was successfully loaded. It shows the size
img_size of the image in memory. Due to some Operator Response: After the correction of the
overhead by storing the image in a file, the image size parmlib member, retry to activate the parmlib member.
in memory is smaller than the file size.
System Programmer Response: Specify a value
Appendix C. Messages 97
Messages from z/OS support for Unicode
Appendix C. Messages 99
Messages from z/OS support for Unicode
source: IEECB999
CUN3001I UNABLE TO OBTAIN STORAGE,
REASON= reason
CUN2045E CANNOT DELETE DATA SPACE FROM
Explanation: In the initialization of the display module,
ACCESS LIST
it is not possible to obtain storage.
(NAME= name , AL-NAME= al-name ,
RC= rc ) reason reason code for ending the DISPLAY UNI
command
Explanation: The data space with name name cannot
be deleted from the access list type-al . Evaluating the System Action: The DISPLAY UNI command
parmlib member stops, the conversion environment is terminates.
left unchanged. The data space cannot be deleted and
Operator Response: Try again. When it fails again,
allocates still system resources.
contact your system programmer.
name name of the data space
System Programmer Response: Check the
al-name initialization of the multi-line display.
name of access list
source: CUNMIDAC
rc return code of the ALESERV macro with option
DELETE
CUN3002E THE PROGRAM program ENDED,
System Action: Processing terminates. OPERATION WAS NOT SUCCESSFUL
Operator Response: Find the return code in the Explanation: One operation terminates abnormally.
document z/OS MVS Programming: Authorized The program which includes the recovery routine sends
Assembler Services Reference ALE-DYN, SA22-7609 information to the console and issues a dump.
(chapter ’Return Codes’, chapter ’ALESERV - Control
program
Entries in the Access List’). Follow the actions described
name of the program which includes the
in the document to resolve the problem. If you cannot
recovery label
resolve the problem, contact your system programmer.
The allocated resources will be released after the next System Action: Processing terminates.
IPL.
Operator Response: Store the dump data sets and
System Programmer Response: Analyze the return the console output.
and reason code and resolve the reason for the
problem. Contact IBM support, if you cannot find or System Programmer Response: If the error recurs
resolve the reason. and the program is not in error, search problem
reporting data bases for a fix for the problem. If no fix
source: CUNMISA2 exists, contact the IBM Support Center. Provide all
printed output and output data sets related to the
problem (for example dump data sets).
CUN3000I text
source: IEECB998,IEECB999
Explanation: The DISPLAY UNI command shows the
status of available conversions and whether z/OS
support for Unicode is already initialized. If one input CUN3003W SET UNI COMMAND ALREADY
parameter is incorrect, this parameter will be ignored. RUNNING
text the output is described in Appendix A, Explanation: There is already another SET UNI
“Commands” on page 73 command running.
System Action: Displays the setup. Processing System Action: Execution of the command stops.
continues. Processing continues.
Operator Response: If one input parameter is wrong, Operator Response: Wait a while and repeat the
read the explanations in the message. Correct this command.
parameter on the command line and enter again.
System Programmer Response: None.
System Programmer Response: None.
source: IEECB998,IEECB999
source: IEECB998
This chapter includes z/OS support for Unicode return and reason codes.
/**********************************************************/
/* */
/* CUNUNIXX - UNICODE CONVERSION CONTROL PARAMETERS */
/* */
/**********************************************************/
/* establish a new environment */
/**********************************************************/
/* REQUIRED KEYWORD REALSTORAGE */
/* MAXIMAL USED PAGES OF REAL STORAGE, MIN=0 MAX=524287 */
/* where 0 means no explicite limit (=524287) */
/**********************************************************/
REALSTORAGE 51200; /* e.g. 200 MB */
/**********************************************************/
/* REQUIRED KEYWORD IMAGE WITH */
/* REQUIRED PARAMETER: MEMBER NAME */
/* THIS MEMBER MUST BE PLACED IN A DATA SET FROM THE */
/* LOGICAL PARMLIB CONCATENATION (def’d in LOADxx) */
/**********************************************************/
IMAGE CUNIMG00;
/**********************************************************/
/* */
/* CUNUNIYY - UNICODE CONVERSION CONTROL PARAMETERS */
/* */
/**********************************************************/
/* d e l e t e */
/* an unused inactive Unicode conversion environment */
/**********************************************************/
/* REQUIRED EXCLUSIVE KEYWORD */
/* - NO OTHER KEYWORDS ARE ALLOWED */
/**********************************************************/
DELETE INACTIVE;
/*********************************************************************/
/* CONSTANTS - Do NOT change these lines */
/*********************************************************************/
SGYES = ’ ’; /* DO NOT CHANGE THIS LINE */
SGNO = ’-- ’; /* DO NOT CHANGE THIS LINE */
JCARD = ’// ’; /* DO NOT CHANGE IR34075*/
JCOMM = ’//* ’; /* DO NOT CHANGE IR34075*/
MQMLYES = ’ ’; /* DO NOT CHANGE THIS LINE */
MQMLNO = ’/* ’; /* DO NOT CHANGE THIS LINE */
/*********************************************************************/
/*********************************************************************/
/* */
/* */
/* S T A R T C U S T O M I Z A T I O N H E R E */
/* */
/* */
/*********************************************************************/
/*********************************************************************/
/* */
/* J O B S T A T E M E N T S */
/* */
/*********************************************************************/
/* See the skeleton of a job card below. The following adjustments */
/* are required to set up the proper job card. */
/* Please take care that the length of information you give does */
/* not exceed the length of a job card. */
/* This is especially important for the $ACCOUNT and $USER info. */
/* */
/* //$JOBPREF$$JOBNAME$ JOB ($ACCOUNT$),’$USER$’,NOTIFY=$NOTIFY$, */
/* // MSGCLASS=$MC$,MSGLEVEL=$ML$,TIME=$TI$,CLASS=$CL$, */
/* // REGION=$REGION4M$ */
/* */
/*********************************************************************/
/* Replace ’BMBA’ by a four character job prefix. */
/* The job name to be used is assembled by this 4 character prefix */
/* and the last 4 characters of the member name containing the job. */
/* IMPORTANT: ’BMBA’ MUST BE EXACTLY 4 CHARACTERS IN LENGTH. */
/*********************************************************************/
"C $JOBPREF$ BMBA all" ;
/*********************************************************************/
/* Replace ’DE03235’ with your account information */
/* NOTE: The required paranthesis will be added automatically. */
/*********************************************************************/
"C $ACCOUNT$ ’DE03235’ all" ; /* use quotes */
/*********************************************************************/
/* Replace ’UNICODE-Inst’ with your user information. */
/*********************************************************************/
"C $USER$ ’UNICODE-INST’ all" ; /* use quotes */
/*********************************************************************/
/* Specify ’BMBA’ with user ID to be used for NOTIFY=. */
/* Blanks are not allowed within the following user-ID string. */
/*********************************************************************/
"C $NOTIFY$ ’BMBA’ all" ; /* use quotes */
/*********************************************************************/
/* Replace ’X’ by the MSGCLASS= to be used. */
/*********************************************************************/
"C $MC$ ’X’ all" ; /* use quotes */
/*********************************************************************/
/* Replace ’(1,1)’ by the MSGLEVEL= to be used. */
/*********************************************************************/
/*********************************************************************/
/* Replace ’60’ by the TIME= to be used. */
/*********************************************************************/
"C $TI$ ’60’ all" ; /* use quotes */
/*********************************************************************/
/* Replace ’A’ by the CLASS= to be used. */
/*********************************************************************/
"C $CL$ ’A’ all" ; /* use quotes */
/*********************************************************************/
/* Replace ’*’ with the output class to be used for SYSOUT=. */
/*********************************************************************/
"C $OUTCL$ ’*’ all" ; /* use quotes */
/*********************************************************************/
/* Change ’UNI.V110’ to the name of the high level qualifier of the */
/* Unicode distribution and target libraries. */
/*********************************************************************/
"C $LIB_HLQ$ UNI.V110 all" ;
/*********************************************************************/
/* Replace ’SYSALLDA’ with the symbolic name for your group of DASD */
/* devices. ’SYSALLDA’ is used as UNIT=SYSALLDA. */
/* SYSALLDA is the IBM assigned default group name and contains all */
/* direct access devices defined to the system and can be used. */
/*********************************************************************/
"C $SYSALLDA$ SYSALLDA all" ; /* */
/*********************************************************************/
/* Replace ’UNI.V110.SCUNTBL’ with the fully qualified */
/* name of the PDS where the conversion tables are stored. */
/* This PDS will be allocated during installation */
/*********************************************************************/
"C $CUN_TBL_DS$ UNI.V110.SCUNTBL all" ;
/*********************************************************************/
/* Replace ’UNI.V110.SCUNMSG’ with the fully qualified */
/* name of the PDS where the MMS skeletons are stored. */
/* This PDS will be allocated during installation */
/*********************************************************************/
"C $CUN_MSG_DS$ UNI.V110.SCUNMSG all" ;
/*********************************************************************/
/* Replace ’UNI.V110.IMAGES’ with the fully qualified */
/* name of the PDS where the images of the conversion environment */
/* should be stored. You have to allocate the dataset. */
/*********************************************************************/
"C $CUN_IMAGE_DS$ UNI.V110.IMAGES all" ;
/*********************************************************************/
/* Replace ’UNI.V110.MMS’ with the fully qualified */
/* name of the VSAM dataset that should contain the MMS skeletons. */
/* The dataset is allocated by job CUNJUMS1 */
/*********************************************************************/
"C $CUN_MMS_DATASET$ UNI.V110.MMS all" ;
/*********************************************************************/
/* */
/* E N D O F C U S T O M I Z A T I O N */
/* */
/*********************************************************************/
/* DO NOT CHANGE */
’END’ /* DO NOT CHANGE */
Sample program in C
The following C sample programs are provided and installed to SYS1.SAMPLIB:
v CUNSCSMC for character conversion
v CUNSASMC for case conversion
Look to the appropriate member in SYS1.SAMPLIB for a detailed description.
The following table lists the IBM-supplied conversion tables used to generate the
conversion image as described in Chapter 3, “Creating the conversion environment”
on page 11. Note that this is only a list of conversion tables, and does not
represent all possible supported conversions. In addition to the conversions listed in
the table, the following conversions (as specified in the from-ccsid and to-ccsid
parameters in CONVERSION statements - see “Control statement CONVERSION”
on page 14) are also supported:
v conversions to and from CCSID 1200. This was described in the section ″Some
special considerations about CCSID 1200″ of “Control statement CONVERSION”
on page 14.
v conversions to and from CCSID 1208 (UTF-8). These conversions are
algorithmic and do not use tables.
v composite conversions between various multibyte (MBCS) CCSIDs that consist
of multiple sub-CCSIDs. This was described in Appendix B, “MBCS conversions”
on page 79.
v conversions between any two CCSIDs for which conversions to and from
Unicode (CCSID 1200) as an intermediate CCSID are supported. These are the
indirect conversions described in the section ″Character conversion″ of
Chapter 1, “Introduction” on page 1.
The types R, E, C, L, M, and X are included in the file name. For example the file
name CUNEAAAJ is of the E type (CUNEAAAJ).
suffix CCSID
AA 00037
AB 04133
AC 08229
AD 12325
AE 16421
AF 20517
AG 24613
AH 28709
AI 32805
AJ 00256
AK 08448
AL 12544
AM 61696
AN 61697
AO 61698
AP 00259
AQ 61699
AR 61700
AS 61710
AT 61711
AU 61712
AV 00273
AW 04369
AX 00274
AY 04370
AZ 00275
A0 04371
A1 04372
A2 00277
A3 04373
A4 00278
A5 04374
A6 00280
A7 04376
A8 00281
00930
00932
00939
00958
00959
05054
05055
IBM may not offer the products, services, or features discussed in this document in
other countries. Consult your local IBM representative for information on the
products and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product,
program, or service that does not infringe any IBM intellectual property right may be
used instead. However, it is the user’s responsibility to evaluate and verify the
operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you any
license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
USA
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions, therefore, this statement may not apply to
you.
IBM may use or distribute any of the information you supply in any way it believes
appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of
enabling: (i) the exchange of information between independently created programs
and other programs (including this one) and (ii) the mutual use of the information
which has been exchanged, should contact:
IBM Corporation
Department 55JA, Mail Station P384
The licensed program described in this information and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement, or any equivalent agreement
between us.
If you are viewing this information softcopy, the photographs and color illustrations
may not appear.
This publication also documents intended Programming Interfaces that allow the
customer to write programs to obtain the services of z/OS support for Unicode. This
information is identified where it occurs, either by an introductory statement to a
chapter or section or by the following marking:
Trademarks
The following terms are trademarks of the International Business Machines
Corporation in the United States, other countries, or both:
DFSMS/MVS
IBM
IBMLink
Language Environment
OS/390
Resource Link
z/OS
z/OS.e
Unicode™ Standard
Unicode® Consortium
Other company, product, and service names may be trademarks or service marks
of others.
Notices 369
370 z/OS support for Unicode™: Using Conversion Services
Glossary of terms and abbreviations
This glossary defines technical terms and first. Big endian is used by most hardware architectures
abbreviations used in z/OS support for Unicode including the 390 architecture. Also see little endian on
documentation. If you do not find the term you are page 373.
looking for, refer to the Index of this document or
go to IBM Glossary of Computing Terms at C
http://www.ibm.com/terminology case conversion. Conversion of a lower case
character to upper case and vice versa.
This glossary includes terms and definitions from:
CCSID . coded character set identifier: A 16-bit
number identifying a specific set of encoding scheme
American National Standard Dictionary for identifier, character set identifier(s), code page
Information Systems, ANSI X3.172-1990, copyright identifier(s), and additional coding related required
1990 by the American National Standards Institute information, that uniquely identifies the coded graphic
(ANSI). Copies may be purchased from the character representation used.
American National Standards Institute, 11 West
42nd Street, New York, New York 10036. CDRA. character data representation architecture:
An IBM architecture that defines a set of identifiers,
resources, services, and conventions to achieve a
Character Data Representation Architecture
consistent representation, processing, and interchange
Reference and Registry, SC09-2190, copyright
of graphic character data in mixed environments.
1995 by International Business Machines
Corporation. Copies may be purchased from IBM. character. A member of a set of elements used for
organization, control, or representation of data. A
A character can be a graphic character or a control
character.
ACRI. additional coding-related information: A character conversion. Conversion between specified
CDRA term referring to the additional information that is CCSIDs. The process of converting a set of characters
required to complete the definition associated with using from one CCSID to another CCSID.
particular encoding schemes. This information is in
addition to the encoding scheme identifier, character set character set. A defined set of characters. No coded
identifiers and code page identifiers that are associated representation is assumed.
with the case particular encoding scheme. An example
for ACRI is the range of valid first bytes of double-byte code. A system of bit patterns to which a specific
code points in mixed single-byte and double-byte code. graphic or a control meaning has been assigned.
ANSI. American National Standards Institute: The code page. A specification of code points from a
organization originally founded in 1918 to handle the defined encoding scheme for each graphic character in
problem of manufacturing interchangeable parts. Today a set or in a collection of graphic character sets. Within
ANSI does not develop standards but coordinates and a code page, a code point can have only one specific
accredits standards development in the United States of meaning. See also code point and encoding scheme.
America.
code page conversion. The process of converting a
ASCII. American National Standard Code for set of characters from one CCSID to another CCSID.
Information Interchange: The standard code, using a The term ’code page conversion’ is not used in this
coded set consisting of 7-bit coded characters (8 bits documentation; instead the term ’character conversion’
including parity check), used for information interchange is used.
between data processing systems, data communication
systems, and associated equipment. The ASCII set code point. A unique bit pattern defined in a code.
consists of control characters and graphic characters. Depending on the code, a code point can be 7-bit, 8-bit,
16-bit, or other. Code points are assigned to a graphic
character in a code page.
B
code set. See coded character set.
big endian. Big endian is a format for storage of
binary data in which the most significant byte is placed coded character . A control or graphic character with
its assigned code point.
I P
IDF. interface definition file PC. personal computer: In the context of this
document, it is the name for an extension of the ISO
image generator for z/OS support for Unicode. This 646 (ANSI version) 7-bit code structure to an 8-bit
is a batch job supplied by z/OS support for Unicode for structure.
creating a conversion image. The job sometimes is
referred to as ’image generator’.
S
indirect conversion. When the conversion is done
using an intermediate CCSID, it is called indirect SBCS. single-byte character set: A set of characters
conversion. in which each character is represented by one byte.
infrastructure. The infrastructure supplies all parts script. A collection of graphic symbols used for writing.
necessary to customize and establish the conversion A script is not related to either a language nor a country.
services. It includes conversion tables and the Members of the same linguistic family can use different
commands SET UNI and DISPLAY UNI. scripts. For example, the Latin script is used by most
western European languages, while the Arabic script is
intermediate CCSID. An indirect conversion uses used in Arabic countries as well as in Iran for Farsi and
intermediate CCSIDs to complete the several in Pakistan for Urdu.
conversion steps.
simple code page. A codepage with a pure
single-byte or pure double-byte encoding (SBCS,
L DBCS, and UCS-2).
little endian. Little endian is a format for storage of simple conversion. Simple conversion is a conversion
binary data in which the least significant byte is placed where no mixed CCSID is involved. Also see composite
first. Little endian is used by the Intel hardware conversion on page 372.
architectures. Also see big endian on page 371.
sub code page. A code page is called sub code page
Low-surrogate. Low-Surrogate. A Unicode code value when it is mentioned in the context of the code page
in the range U+DC00 through U+DFFF. that make up a mixed codepage.
lowercase. Pertaining to the small alphabetic surrogate pair. A coded character representation for a
characters, whether accented or not, as distinguished single abstract character that consists of a sequence of
from the capital alphabetic characters. The concept of two Unicode values, where the first value of the pair is a
case also applies to alphabets such as Cyrillic and high-surrogate and the second is a low-surrogate.
Greek, but not to Arabic, Hebrew, Thai, Japanese,
Chinese, Korean, and many other scripts. Examples of
lowercase letters are a, b, and c. Lowercase stands in T
contrast to uppercase.
TBCS. triple-byte character set: A set of characters
in which each character is represented by three bytes.
M
technique. There may be multiple conversion tables
MBCS. multi-byte character set: A set of characters available for converting one CCSID to another. The
in which each character is represented by 1 or more different conversion tables use different techniques for
bytes. example ’Round Trip’ or ’Enforced Subset’.
mixed code page. It is a codepage specially defined To-CCSID. It is the CCSID converting to.
to refer to a combination of SBCS and DBCS coded
character sets (MBCS) that may be used in data
streams or files. For example, CCSID 5035 is a mixed
U
code page for Japanese that consists of Latin
UCAE. Unicode case conversion control entry:
characters in CCSID 1027 and Kanji characters in
Each UCAE contains control information for one kind of
CCSID 4396.
case conversion.
A C
accessibility 365
C interface
ACRI
mapping of parameters for case conversion 48
definition in glossary 371
mapping of parameters for character conversion 36
active conversion environment
mapping of parameters for normalization 54
in DISPLAY UNI command, section STORAGE
C interface for case conversion 48
ACTIVE 77
C interface for character conversion 35
additional coding-related information
C interface for normalization 54
see ’ACRI’ definition in glossary 371
C syntax
address space, primary
sample program 113
restriction while calling the case conversion
C: Customized Subset, value for technique-character in
services 48
CONVERSION 15
restriction while calling the character conversion
call syntax for case conversion 48, 49
services 35
call syntax for character conversion 35, 37
ALET
call syntax for normalization 54, 55
specified for character conversion 35
calling the stub routine
ALL parameter
for case conversion 4
in DISPLAY UNI command 76
for character conversion 4
American National Standard Code for Information
case conversion
Interchange
ALET 47
see ’ASCII’ definition in glossary 371
C interface, call syntax 48
American National Standards Institute
C interface, mapping of parameters 48
see ’ANSI’ definition in glossary 371
calling the stub routine 4
amode
CASE control statement 47
restriction while calling the case conversion
control statement CASE 16
services 48
definition in glossary 371
restriction while calling the character conversion
definition in terminology chapter x
services 35
general description 4
ANSI
HLASM interface, call syntax 49
definition in glossary 371
HLASM interface, mapping of parameters 49, 50
AR mode
interfaces, description of parameters 50
restriction while calling the case conversion
mapping of parameters, C interface 48
services 48
mapping of parameters, HLASM interface 49, 50
restriction while calling the character conversion
parameters in area CUNBAPRM 50
services 35
reason code CUN_RS_TRG_EXH (target buffer
ASC mode
exhausted) 59
restriction while calling the case conversion
restrictions of the calling environment 48
services 48
return and reason codes 104, 105, 106, 107
restriction while calling the character conversion
return codes, classification 103
services 35
stub routine 47
ASCII
case conversion handle 47
definition in glossary 371
CUNBAPRM_Conv_Type 51
CASE, control statement 16
Index 377
CUNBAPRM_Inv_Handle 52 CUNBNPRM_Targ_Buf_Len 57
CUNBAPRM_Length 51 CUNBNPRM_Targ_Buf_Ptr 57
CUNBAPRM_Locale 52 CUNBNPRM_Version 57
CUNBAPRM_Not_Last_Buf 52 CUNBNPRM_Wrk_Buf_ALET 58
CUNBAPRM_RC_RS 52 CUNBNPRM_Wrk_Buf_Len 58
CUNBAPRM_Reason_Code 53 CUNBNPRM_Wrk_Buf_Ptr 58
CUNBAPRM_Return_Code 53 CUNJIMS1, job needed for MMS 8
CUNBAPRM_Src_Buf_ALET 51 CUNJIMS2, job needed for MMS 8
CUNBAPRM_Src_Buf_Len 51 CUNJIUTL
CUNBAPRM_Src_Buf_Ptr 51 user-defined conversions 69
CUNBAPRM_Targ_Buf_ALET 51 CUNJIUTL, image generator, batch job 11
CUNBAPRM_Targ_Buf_Len 51 CUNMIKBS macro 65
CUNBAPRM_Targ_Buf_Ptr 51 CUNRUCST, sample of exec 109
CUNBAPRM_Version 50 CUNUNIxx
CUNBCPRM parameter area for character sample of parmlib member activating a new
conversion 40 conversion environment 109
CUNBCPRM_Conv_Handle sample of parmlib member deleting an inactive
UCCE 41 conversion environment 109
CUNBCPRM_Conv_Key 41
CUNBCPRM_DDA_ALET 42
CUNBCPRM_DDA_Len 42 D
CUNBCPRM_DDA_Ptr 42 DBCS
CUNBCPRM_Designator 44 definition in glossary 372
CUNBCPRM_Flag1 42, 44 encoding scheme identifier (ESID) 3
CUNBCPRM_Inv_Handle 43 indirect conversion 34
CUNBCPRM_Length 41 DDA, see dynamic data area
CUNBCPRM_RC_RS 44 constant CUNBAPRM_DDA_Req 47
CUNBCPRM_Reason_Code 44 constant CUNBNPRM_DDA_Req 53
CUNBCPRM_Return_Code 44 decomposition 53
CUNBCPRM_Src_Buf_ALET 41 defining CCSIDs and conversion tables 63
CUNBCPRM_Src_Buf_Len 41 deleting an inactive conversion environment 31
CUNBCPRM_Src_Buf_Ptr 41 designator sequence 35
CUNBCPRM_Src_CCSID 42 definition in glossary 372
CUNBCPRM_Sub_Action 43 direct conversion 14
CUNBCPRM_Subcodepage 43 definition in glossary 372
CUNBCPRM_Substitution 44 definition in terminology chapter xi
CUNBCPRM_Targ_Buf_ALET 41 disability 365
CUNBCPRM_Targ_Buf_Len 41 disclaimer for non-IBM Web sites 368
CUNBCPRM_Targ_Buf_Ptr 41 dispatchable unit mode
CUNBCPRM_Targ_CCSID 42 restriction while calling the case conversion
CUNBCPRM_Technique 42 services 48
CUNBCPRM_Version 40 restriction while calling the character conversion
CUNBCPRM_Wrk_Buf_ALET 42 services 35
CUNBCPRM_Wrk_Buf_Len 42 DISPLAY UNI command
CUNBCPRM_Wrk_Buf_Ptr 42 ALL parameter 76
CUNBN_DDA_req, constant 53 CASECONV parameter 76
CUNBNPRM parameter area for normalization 56 CONVERSION parameter 76
CUNBNPRM_DDA_Buf_ALET 58 description of output 77
CUNBNPRM_DDA_Buf_Len 58 ENVIRONMENT parameter 75
CUNBNPRM_DDA_Buf_Ptr 58 example output for DISPLAY UNI,ENV,STOR 30
CUNBNPRM_Flag1 58 FROMID= parameter 76
CUNBNPRM_Inv_Handle 58 NORMALIZATION parameter 76
CUNBNPRM_Length 57 output 76
CUNBNPRM_Norm_Handle 57 SERVICE parameter 76
CUNBNPRM_Norm_Type 57 STORAGE parameter 76
CUNBNPRM_Reason_Code 58 syntax 75
CUNBNPRM_Return_Code 58 syntax definitions xiii
CUNBNPRM_Src_Buf_ALET 57 time stamp 30
CUNBNPRM_Src_Buf_Len 57 TOID= parameter 76
CUNBNPRM_Src_Buf_Ptr 57 double-byte (coded) character set
CUNBNPRM_Targ_Buf_ALET 57 see ’DBCS’ definition in glossary 372
Index 379
inactive conversion environment (continued) knowledge base (continued)
in DISPLAY UNI command, section STORAGE user-defined conversion tables 69
INACTIVE 77
inactive conversion environments 30
indirect conversion 4, 14 L
between mixed code pages and anything else than L: Language Environment-Behaviour, value for
SBCS 34 technique-character in CONVERSION 15
between TBCS and anything else than DBCS 34 little endian 3
betwwen UTF-8 and anything else than DBCS 34 definition in glossary 373
definition in glossary 373 locks
definition in terminology chapter xi restriction while calling the case conversion
MBCS conversions 81 services 48
infrastructure restriction while calling the character conversion
definition in glossary 373 services 35
definition in terminology chapter x low-surrogatee
general description 2 definition in glossary 373
installation 7 lowercase
problems 71 definition in glossary 373
Program Directory 71
steps after installation 7
steps after installtion M
editing IEASYSxx 26 M: Modified Language Environment-Behaviour, value for
interface definition file technique-character in CONVERSION 15
CUNBAIDF 49 macro
CUNBCIDF 37 CUNAIKBG 63
CUNBNIDF 55 CUNMIKBS 65
definition in glossary 373 mapping of parameters
interface definiton file for case conversion 48, 49, 50
constant CUNBA_DDA_req 47 for character conversion 36, 38, 39
constant CUNBN_DDA_req 53 for normalization 54, 56
CUNBAIDF 47 mapping of parameters in C interface, for case
CUNBNIDF 53 conversion 48
intermediate CCSID mapping of parameters in C interface, for character
definition in glossary 373 conversion 36
definition in terminology chapter xi mapping of parameters in C interface, for
intermediate CCSID 1200 4 normalization 54
interrupt status mapping of parameters in HLASM interface, for case
restriction while calling the case conversion conversion 49, 50
services 48 mapping of parameters in HLASM interface, for
restriction while calling the character conversion character conversion 38, 39
services 35 mapping of parameters in HLASM interface, for
invalid conversion handle 59 normalization 56
IPL mapping of UCCE handle
errors during IPL 71 for character conversion 39, 40
ISO/IEC 10646 mapping of UCCE handle in HLASM interface, for
general description 1 character conversion 39, 40
ISO2022 MBCS MAXCAD
encoding scheme identifier (ESID) 3 problem during SET UNI command processing 71
MAXCAD, parameter in IEASYSxx 27
MBCS
J CCSIDs used in MBCS conversions 81
japanese messages 5 definition in glossary 373
MVS message service 8 internal handling of MBCS conversions
detailed description 81
general description 4
K illustration of MBCS decomposition 80
keyboard 365 list of CCSIDs used 81
knowledge base message
input to image generator 11 Abend 0E0 72
module CUNAIKBG 63 CUN2002W 71
module CUNMIKBS 63 CUN2003S 71
Index 381
range of CCSIDs (continued) simple conversion
range from X'E000' to X'EFFF' (user-defined definition in glossary 373
CCSIDs) 33 definition in terminology chapter xi
reason code single-byte character set
reason code CUN_RS_TRG_EXH (target buffer see ’SBCS’ definition in glossary 373
exhausted) 59 SMP/E installation 7
reason codes source code page, see
conversion services 103, 104, 105, 106, 107 To-CCSID xi
recommendations source code page, see From-CCSID 35
conversion handle 59 SRB or task
for deleting inactive conversion environment 30 restriction while calling the case conversion
for the calling environment (case conversion) 48 services 48
for the calling environment (character restriction while calling the character conversion
conversion) 35 services 35
target buffer size 59 standards
work buffer size 61 ISO/IEC 10646 1
recovery environment Unicode Standard 1
restriction while calling the case conversion storage
services 48 needed for a conversion image 22
restriction while calling the character conversion STORAGE parameter
services 35 in DISPLAY UNI command 76
restrictions stub routine
case conversion 48 CUNLASE 47
character conversion 35 CUNLCNV 33
return codes CUNLNORM 53
conversion services 103, 104, 105, 106, 107 sub code page
image generator 107, 108 definition in glossary 373
sub-level conversion 14
supervisor state
S restriction while calling the case conversion
sample services 48
exec CUNRUCST 109 surrogate 3
for program in C 113 surrogate pair 373
sample coding SYSIMG DD data set
for CASE control statement 16 building of the conversion image 12
for NORMALIZE control statement 17 image generator reads conversion tables from 12
SASN mode SYSIN DD statement
restriction while calling the case conversion input control statements to image generator 12
services 48 sysplex
restriction while calling the character conversion errors during IPL 71
services 35 SYSPRINT DD statement, image generator 12
SBCS
definition in glossary 373
encoding scheme identifier (ESID) 3 T
indirect conversion 34 table names
script IBM-supplied conversion tables 337
definition in glossary 373 MBCS conversions 81
SERVICE parameter target buffer
in DISPLAY UNI command 76 calculating the size 59
SET UNI command critical case when overflow 59
activating a new conversion environment 29 reason code CUN_RS_TRG_EXH (target buffer
dynamic changes, with SET UNI command 29 exhausted) 59
message CUN2011E 71 target code page, see
output 73, 74 From-CCSID xi
specifying a conversion image 73 target code page, see To-CCSID 35
syntax 73 task or SRB
syntax definitions xiii restriction while calling the case conversion
shortcut keys 365 services 48
simple code page restriction while calling the character conversion
definition in glossary 373 services 35
simple code pages 3
Index 383
384 z/OS support for Unicode™: Using Conversion Services
Readers’ Comments — We’d Like to Hear from You
z/OS
Support for Unicode™:
Using Conversion Services
Overall, how satisfied are you with the information in this book?
How satisfied are you that the information in this book is:
When you send comments to IBM, you grant IBM a nonexclusive right to use or distribute your comments in any
way it believes appropriate without incurring any obligation to you.
Name Address
Company or Organization
Phone No.
___________________________________________________________________________________________________
Readers’ Comments — We’d Like to Hear from You Cut or Fold
SA22-7649-02 IBMR Along Line
_ _ _ _ _ _ _Fold
_ _ _ and
_ _ _Tape
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Please
_ _ _ _ _do
_ _not
_ _ staple
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Fold
_ _ _and
_ _ Tape
______
NO POSTAGE
NECESSARY
IF MAILED IN THE
UNITED STATES
_________________________________________________________________________________________
Fold and Tape Please do not staple Fold and Tape
Cut or Fold
SA22-7649-02 Along Line
IBMR
Printed in U.S.A.
SA22-7649-02