SYSCP Utility - Code Page Administration

#### Search Results

Search

# SYSCP Utility - Code Page Administration

The SYSCP utility is used to obtain information on code pages and ICU (International Components for Unicode) data libraries available in the current Natural mainframe environment. In addition, you can use the SYSCP utility to change the code page assignment of programming objects, DDMs, profiles and error messages. You can also add, remove or convert code pages.

The SYSCP utility also offers you help to avoid problems that can occur when a code page is not defined or enabled in Natural or when objects are converted to an incorrect code page or Unicode format.

For detailed information on how Natural supports Unicode and code pages and Unicode-specific items, see the descriptions and presentations in the SYSEXV Utility and Related Topics below.

Note
The use of the SYSCP utility can be controlled by Natural Security. For detailed information, see the section SYSCP - Code Page Administration - Utility Profiles in the Natural Security documentation.

The SYSCP Utility - Code Page Administration documentation covers the following topics:

- Invoking and Terminating SYSCP

- Code Page Maintenance

- All Code Pages

- Loaded Code Pages

- Unicode Properties

- ICU Information

#### Related Topics:

- Unicode and Code Page Support: Natural documentation

- Unicode: Unicode Consortium at web site at http://www.unicode.org/

- ICU: International Components for Unicode at web site http://site.icu-project.org/

- ICU: Converter Explorer documentation at web site http://demo.icu-project.org/icu-bin/convexp

- System command CPINFO: Natural documentation

## Invoking and Terminating SYSCP

Instructions for invoking and terminating the SYSCP utility and performing a function are provided in the following section.

To invoke the SYSCP utility

- Enter the following system command:

      SYSCP

  A SYSCP menu similar to the example below appears:

      11:19:07               ***** NATURAL SYSCP UTILITY *****             2020-02-18
      User SAG                           - Menu -              ICU Version 66.1
                                                           Unicode Version 13.0

                                Function

                             _  Code Page Maintenance
                             _  All Code Pages
                             _  Loaded Code Pages
                             _  Unicode Properties
                             _  ICU Information
                             _  Help
                             _  Exit

      Command ===>

      Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
             Help        Exit                                                  Canc

  The current ICU and Unicode versions are indicated at the top of the screen.

  The functions contained in the menu are explained in the remainder of this documentation.

To execute a SYSCP function

- In the SYSCP menu, place the cursor in the input field next to the required function and press ENTER.

  Or:
  In the SYSCP menu, in the input field next to the required function, enter any character and press ENTER.

Note
In the Command line of any SYSCP utility screen, you can enter any Natural system command. A system command terminates the SYSCP utility.

To terminate SYSCP

- Press PF3 or PF12.

  Or:
  From the SYSCP menu, choose Exit.

## Code Page Maintenance

The Code Page Maintenance menu provides functions that can be applied to programming objects (N), DDMs (D), profiles (P), user error messages (E) and system error messages (S). For an object you can list (L), assign (A) or remove (R) code page information. You can also convert (C) a code page or check its conversion for assigned (K) or unassigned (C) objects.

All code page maintenance functions reference the standard IANA name (see also Cmd in All Code Pages); you cannot use a code page name other than IANA when you execute a code page maintenance function.

The results of a code page maintenance function are output on a report screen, which is described in Function Result Report.

When you invoke Code Page Maintenance, a maintenance menu similar to the example below appears:

    16:53:05               ***** NATURAL SYSCP UTILITY *****             2012-06-20
    User SAG                   - Code Page Maintenance -

            Code Function                                Code Object

              L  List Code Page Information                N  Programming Objects
              C  Check Conversion of Unassigned Objects    D  DDMs
              A  Assign Code Page Information              P  Profiles
              K  Check Conversion of Assigned Objects      E  User Error Messages
              T  Convert to Different Code Page            S  System Error Messages
              R  Remove Code Page Information
              U  Convert to Unshaped Form
              ?  Help
              .  Exit

     Function _                                  Object .. N

     Library  SSZ_____     DBID ...... _____     FNR ..... _____
                           Password ..           Cipher ..

    Command ===>
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help        Exit                                                  Canc

The fields and functions contained in the Code Page Maintenance menu and the options and features provided by the functions are explained in the following sections:

- Code Page Maintenance Menu

- List Code Page Information

- Check Conversion of Unassigned Objects

- Assign Code Page Information to Objects

- Check Conversion of Assigned Objects

- Convert to Different Code Page

- Remove Code Page Information from Sources

- Convert to Unshaped Form

- Name Specification

- Object Selection List

- Function Result Report

### Code Page Maintenance Menu

The fields contained in the Code Page Maintenance menu are explained in the following table:

Field | Explanation
--- | ---
Function | The code for the function to be executed.
Object | The code for the type of object the function is applied to.
Library | The name of the Natural library that contains the objects for which to execute a code page maintenance function. The name entered by default is the name of the current library as specified with the system variable `*LIBRARY-ID` (see the System Variables documentation). Not used for DDMs, profiles, and system error messages.
DBID | The database ID (DBID) of the Natural system file where the specified library is stored. If no value (or `0`) is specified, the corresponding system file is used.
FNR | The file number (FNR) of the Natural system file where the specified Natural library is stored. If no value (or `0`) is specified, the file number of the corresponding system file is used.
Password | If the specified system file is password protected, you must supply the appropriate 8-character Adabas password.
Cipher | If the specified system file is enciphered, you must supply the appropriate 8-digit Adabas cipher code.

### List Code Page Information

To list code page information for objects of a specific kind, enter L in field Function and the code specific to these objects in field Object. For example, entering P results in a screen that lists all profiles, and the respective code page if a code page has been assigned, see the example below.

     09:52:02               ***** NATURAL SYSCP UTILITY *****             2011-03-22
     User SAG          - List Code Page Information of Profiles -
                                                             Listed Library SAG
     Cmd  Name      Code Page                         Type
     ---  *________ *________________________________ *__
     __   USER1                                        P
     __   USER2                                        P
     __   USER3     IBM01140                           P
     __   USER4     IBM01140                           P
     __   USER5                                        P
     __   USER6                                        P
     __   USER7                                        P
     __   USER8     IBM01140                           P
     __   USER9                                        P
     __   USER10                                       P
     __   USER11                                       P
     __   USER12                                       P
     __   USER13                                       P
     __   USER14                                       P

     Command ===>
     Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
           Help        Exit              --    -     +     ++                Canc

The fields and columns contained in a List Code Page Information screen are explained in the following table. Note that some fields or columns are specific to the kind of object selected:

Field/Column | Explanation | Object
--- | --- | ---
Listed Library | See Library in Code Page Maintenance Menu. | N, E, P
Cmd | Input field for the following line command to be executed for a selected programming object:
`LD` | Display object directory information.
This line command corresponds to the command `LIST DIRECTORY object-name` described in Displaying Directory Information in the System Commands documentation. | all objects
Name | The name of the object. | all objects, except E, S
Code Page | The code page information (IANA name) of the object. This column appears empty for an object that is not assigned a code page. | all objects
Type | The type of the object listed. | N, P
Error Text | The truncated text of the message. | E, S
Numbr | The number of the message. | E, S
LC | The language code character for the object, see `*LANGUAGE`. | E, S
S/L | Indication whether the message is a short message or a long message. | E, S

#### Filtering Objects

You can shorten the list of objects displayed on the List Code Page Information screen by specifying selection criteria.

To specify selection criteria

1. You can specify selection criteria for each column headed by an input field. Replace the default asterisk (*) with any of the input values listed in Name Specification.

2. In the input field underneath the column heading Type, replace the default asterisk (*) with one or more (maximum is 11) of the following type codes without a separator character:

   Code | Object Type | Code | Object Type
   --- | --- | --- | ---
   `P` | Program | `A` | Parameter data area
   `N` | Subprogram | `G` | Global data area
   `S` | Subroutine | `L` | Local data area
   `M` | Map | `C` | Copycode
   `H` | Helproutine | `T` | Text
   `7` | Function | `4` | Class
   `3` | Dialog |  |
   `5` | Processor |  |
   `*` | All Types |  |

### Check Conversion of Unassigned Objects

This function is used to check whether an unassigned object can be converted to a code page.

An unassigned object is an object without code page information, which was originally saved under a Natural version where code page information was not yet supported. Since no code page information is provided, you need to decide which code page to specify for the object to be checked for conversion. This depends on the character set used in the object.

For example, if you apply the function Check Conversion of Unassigned Objects to Profiles, a screen similar to the example below appears:

    07:55:03               ***** NATURAL SYSCP UTILITY *****             2011-04-18
    User SAG         - Check Conversion of Unassigned Profiles -

       Check if profiles that have no code page information can be
       converted from a given code page to a target code page.

       Use selection list .. Y

       Source code page .... IBM01140______________________________________________

       Target code page .... IBM01140______________________________________________

       Profile name ........ *________     DBID ...... 10___     FNR ..... 32___
                                           Password ..           Cipher ..
       Profile types ....... *__

    Command ===>
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help        Exit                                                  Canc

The fields contained in the Check Conversion of Unassigned Objects screen are explained in the following table:

Field | Explanation | Object
--- | --- | ---
Use selection list | Specifies whether selective processing or automated processing is used for the specified objects: see Object Selection List. | all objects
Source code page | The name of the code page to be used to check whether the specified objects (to which no code pages are yet assigned) can be converted from this code page to the code page entered in the Target code page field. If the conversion check is successful, the code page specified in Target code page can be used with the Assign Code Page Information to Objects function. The default name entered is the IANA name as returned by the `*CODEPAGE` system variable (see the System Variables documentation). | all objects
Target code page | The name of the code page to check for conversion of the specified unassigned objects. The default name entered is the IANA name as returned by the `*CODEPAGE` system variable (see the System Variables documentation). | all objects
Object name/Object name range | The name of a single object or a range of names to be processed: see Name Specification for valid input values. | all objects
Language code | The language code character for the object, see `*LANGUAGE` | E, S
Short/long error msgs | Type of error message to be processed:
S | process short error messages
L | process long error messages
*/A | process any error message
| E, S
Library | See Library in Code Page Maintenance Menu. | N, E
DBID | See DBID in Code Page Maintenance Menu. | all objects
FNR | See FNR in Code Page Maintenance Menu. | all objects
Password | See Password in Code Page Maintenance Menu. | all objects
Cipher | See Cipher in Code Page Maintenance Menu. | all objects
Profile types | The type of error message to be processed:
S | process short error messages only
L | process long error messages only
*/A | process all error messages
| P

### Assign Code Page Information to Objects

This function is used to assign a code page to an unassigned object. The code of this object is not converted to the specified code page.

You can also use the function to change the code page information for an object to which a code page is already assigned. In this case, only the code page name (IANA name) changes; the source code of this object is not converted.

The fields contained in the Assign Code Page Information to Sources screen are explained in the following table:

Field | Explanation | Object
--- | --- | ---
Use selection list | Specifies whether selective processing or automated processing is used for the specified objects: see Object Selection List. | all objects
Forced assignment | Specifies whether to process objects that have already code page information or objects without code page information. Possible values are:
`Y` | Yes. Forced assignment is activated: the code page information changes to the specified code page for objects that have already code page information.
`N` | No. Forced assignment is deactivated (this is the default setting): the specified code page is only assigned to objects that have no code page information.
| all objects
Code page | The name of the code page to be assigned to the specified objects. The default name entered is the IANA name as returned by the `*CODEPAGE` system variable (see the System Variables documentation). | all objects
Object name/Object name range | See Object name/Object name range in Check Conversion of Unassigned Objects. | all objects
Language code | See Language code in Check Conversion of Unassigned Objects. | E, S
Short/long error msgs | See Short/long error msgs in Check Conversion of Unassigned Objects. | E, S
Library | See Library in Code Page Maintenance Menu. | N, E
DBID | See DBID in Code Page Maintenance Menu. | all objects
FNR | See FNR in Code Page Maintenance Menu. | all objects
Password | See Password in Code Page Maintenance Menu. | all objects
Cipher | See Cipher in Code Page Maintenance Menu. | all objects
Profile types | See Profile types in Check Conversion of Unassigned Objects. | P

### Check Conversion of Assigned Objects

This function is used to test whether an assigned object can be converted from its current code page (as entered in the object directory information) to another code page.

An assigned object is an object which has code page information.

The fields contained in the Check Conversion of Assigned screen are explained in the following table:

Field | Explanation | Object
--- | --- | ---
Use selection list | Specifies whether selective processing or automated processing is used for the selected objects: see Object Selection List. | all objects
Current code page | The code page or a range of code pages to be used as an object selection criterion: see Name Specification for valid input values. The default setting is asterisk (*) indicating all code pages. | all objects
New code page | The name of the code page to check for conversion of the specified assigned objects. The default name entered is the IANA name as returned by the `*CODEPAGE` system variable (see the System Variables documentation). | all objects
Object name/Object name range | See Object name/Object name range in Check Conversion of Unassigned Objects. | all objects
Language code | See Language code in Check Conversion of Unassigned Objects. | E, S
Short/long error msgs | See Short/long error msgs in Check Conversion of Unassigned Objects. | E, S
Library | See Library in Code Page Maintenance Menu. | N, E
DBID | See DBID in Code Page Maintenance Menu. | all objects
FNR | See FNR in Code Page Maintenance Menu. | all objects
Password | See Password in Code Page Maintenance Menu. | all objects
Cipher | See Cipher in Code Page Maintenance Menu. | all objects
Profile types | See Profile types in Check Conversion of Unassigned Objects. | P

### Convert to Different Code Page

This function is used to convert an assigned object from its current code page (as entered in the object directory information) to another code page. You cannot convert an unassigned object.

The fields contained in the Convert to Different Code Page screen are explained in the following table:

Field | Explanation | Object
--- | --- | ---
Use selection list | Specifies whether selective processing or automated processing is used for the specified objects: see Object Selection List. | all objects
Current code page | The code page or a range of code pages to be used as an object selection criterion: see Name Specification for valid input values. The default setting is asterisk (*) indicating all code pages. | all objects
New code page | The name of the code page into which to convert the specified objects. The default name entered is the IANA name as returned by the `*CODEPAGE` system variable (see the System Variables documentation). | all objects
Object name/Object name range | See Object name/Object name range in Check Conversion of Unassigned Objects. | all objects
Language code | See Language code in Check Conversion of Unassigned Objects. | E, S
Short/long error msgs | See Short/long error msgs in Check Conversion of Unassigned Objects. | E, S
Library | See Library in Code Page Maintenance Menu. | N, E
DBID | See DBID in Code Page Maintenance Menu. | all objects
FNR | See FNR in Code Page Maintenance Menu. | all objects
Password | See Password in Code Page Maintenance Menu. | all objects
Cipher | See Cipher in Code Page Maintenance Menu. | all objects
Profile types | See Profile types in Check Conversion of Unassigned Objects. | P

### Remove Code Page Information from Sources

This function is used to remove the code page information (as entered in the object directory) from an assigned object.

Caution
Be aware that the code page information is removed without conversion of the source code.

The fields contained in the Remove Code Page Information from Sources screen are explained in the following table:

Field | Explanation | Object
--- | --- | ---
Use selection list | Specifies whether selective processing or automated processing is used for the specified objects (see Object Selection List). | all objects
Current code page | The code page or a range of code pages to be used as an object selection criterion: see Name Specification for valid input values. The default setting is the IANA name as returned by the *CODEPAGE system variable (see the System Variables documentation). | all objects
Object name/Object name range | See Object name/Object name range in Check Conversion of Unassigned Objects. | all objects
Language code | See Language code in Check Conversion of Unassigned Objects. | E, S
Short/long error msgs | See Short/long error msgs in Check Conversion of Unassigned Objects. | E, S
Library | See Library in Code Page Maintenance Menu. | N, E
DBID | See DBID in Code Page Maintenance Menu. | all objects
FNR | See FNR in Code Page Maintenance Menu. | all objects
Password | See Password in Code Page Maintenance Menu. | all objects
Cipher | See Cipher in Code Page Maintenance Menu. | all objects
Profile types | See Profile types in Check Conversion of Unassigned Objects. | P

### Convert to Unshaped Form

This function is used to replace shaped Arabic characters (code page IBM420) with the corresponding unshaped characters in the following source objects: Programming Objects (N), DDMs (D), User Error Messages (E) and System Error Messages (S).

The fields contained in the Convert Natural Sources to Unshaped Form screen are explained in the following table:

Field | Explanation | Object
--- | --- | ---
Use selection list | Specifies whether selective processing or automated processing is used for the specified objects: see Object Selection List. | N, D,E, S
Current code page | A code page or a range of code pages to be used as selection criterion for objects, see Name Specification for valid input values. The default is the IANA name as returned by the `*CODEPAGE` system variable, see the System Variables documentation. | N, D, E, S
Object name | See Object name/Object name range in Check Conversion of Unassigned Objects. | N, D, E, S
Language code | See Language code in Check Conversion of Unassigned Objects. | E, S
Short/long error msgs | See Short/long error msgs in Check Conversion of Unassigned Objects. | E, S
Library | See Library in Code Page Maintenance Menu. | N, E
DBID | See DBID in Code Page Maintenance Menu. | N, D, E, S
FNR | See FNR in Code Page Maintenance Menu. | N, D, E, S
Password | See Password in Code Page Maintenance Menu. | N, D, E, S
Cipher | See Cipher in Code Page Maintenance Menu. | N, D, E, S

### Name Specification

You can specify a name or a range of names as a selection criterion.

In the list of options below, value is any combination of one or more characters:

| Input | Items Selected
--- | --- | ---
| value | All items with names equal to value.
* | All items.
? | All items with any single character for each question mark (?) entered.
Leading characters | value* | All items with names that start with value. Example: `AB*` Selected: AB, AB1, ABC, ABEZ Not selected: AA1, ACB
Wildcard | value? | A wildcard. All items with names that start with value and end with any single character for each question mark (?) entered. Example: `ABC?` Selected: ABCA, ABCZ Not selected: AXC, ABCAA
| value? value? | All items that match value combined with asterisk (*) and question mark (?) in any order. Example: `A?C*Z` Selected: ABCZ, AXCBBBZ, ANCZ Not selected: ACBZ, ABDEZ, AXCBBBZA
value*value?
*value?value*
Start value | value> | All items with names greater than or equal to value. Example: `AB>` Selected: AB, AB1, BBB, ZZZZZZZ Not selected: AA1, AAB
End value | value< | An end value: All items with names less than or equal to value. Example: `AX<` Selected: AB, AWW, AX Not selected: AXA, AY

### Object Selection List

You can set the Use selection list option to determine whether selective processing or automated processing is used for a maintenance function. If selective processing is used, a selection list of the specified objects is displayed on a selection screen before executing the function.

The Use selection list option does not apply to the List Code Page Information of Sources function.

Possible settings of Use selection list are as follows:

`Y` | Yes. Selective processing is activated (this is the default setting): a selection list of all objects that meet the specified selection criteria appears. You can then select the objects to be processed from this list.
`N` | No. Selective processing is deactivated and the function is executed immediately for all objects that meet the specified selection criteria.

An object selection list looks similar to the example shown below:

    16:28:43               ***** NATURAL SYSCP UTILITY *****             2006-10-19
    User SAG            - Check Conversion of Assigned Sources -
          Target code page IBM01140
    Cmd  Name      Code Page                           Message
    ---  --------  -------------------------------- ------------------------------
    __   LDA1      IBM01147
    __   LDA2      IBM01147
    __   LDA3      IBM01147
    __   LDA4      IBM01147
    __   MAP1      IBM01147
    __   MAP2      IBM01147
    __   MAP3      IBM01147
    __   PGM2      IBM01147
    __   PGM3      IBM01147
    __   PROG1     IBM01147
    __   PROG3     IBM01147
    __   PROG4     IBM01147

    Command ===>
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help        Exit        All X                                     Canc

The fields and columns contained in an object selection screen are described in the following table:

Field/Column | Explanation
--- | ---
Target code page | The code page to be used to check or perform a source-object assignment or conversion.
Cmd |
Input field for either of the following line commands to be executed for a selected object:
`EX` or `X` | Execute the maintenance function. You can press PF5 if you want to issue the line command to all objects in one go.
`LD` | Display object directory information. This line command corresponds to the command `LIST DIRECTORY object-name` described in Displaying Directory Information in the System Commands documentation.
Name | The name of the object that meets the specified selection criteria.
Code Page | The current code page information of the object.
Message | This column only contains text when you have finished executing the maintenance function. In this case, the column contains a message that indicates the processing status of the object. See also Function Result Report.

### Function Result Report

After a maintenance function has finished executing, the processing results are shown on a report screen. A report screen looks similar to an object selection screen an example of which is shown in Object Selection List.

The fields and columns contained in a result report screen are explained in the following table:

Field/Column | Explanation
--- | ---
Target code page | The code page used to check or perform a source-object assignment or conversion.
Cmd | Input not possible.
Name | The name of the object that meets the specified selection criteria.
Code Page | The current code page information of the object.
Message | This column contains a message that indicates the processing status of the objects selected for processing. The messages indicate successful execution of a function or possible error reasons. Possible messages are:
`Assignment possible` | The object can be assigned to the specified code page.
`Conversion error, at least one code point not translated.` | The object cannot be assigned or converted to the specified code page.
`Code page assigned` | The object has been assigned to the specified code page.
`Conversion possible` | The object can be converted to the specified code page.
`Code page converted` | The object has been converted from its current code page to another code page.
`Not converted` | The object has not been converted to the specified code page because it is already encoded in this code page.

## All Code Pages

This function is used to load and list all code pages available in your current Natural environment as shown in the following example:

    17:21:36               ***** NATURAL SYSCP UTILITY *****             2007-08-02
    User SAG                      - All Code Pages -

    Cmd Stat Name                                                             Units
    --- ---- ---------------------------------------------------------------- -----
     _   D   UTF-8                                                            1 - 3
     _   D   UTF-16                                                           2 - 2
     _   D   UTF-16BE                                                         2 - 2
     _   D   UTF-16LE                                                         2 - 2
     _   D   UTF-32                                                           4 - 4
     _   D   UTF-32BE                                                         4 - 4
     _   D   UTF-32LE                                                         4 - 4
     _   D   UTF16_PlatformEndian                                             2 - 2
     _   D   UTF16_OppositeEndian                                             2 - 2
     _   D   UTF32_PlatformEndian                                             4 - 4
     _   D   UTF32_OppositeEndian                                             4 - 4
     _   D   UTF-7                                                            1 - 4
     _   D   IMAP-mailbox-name                                                1 - 4
     _   D   SCSU                                                             1 - 3

    Command ===>
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help        Exit        Sort         -     +                      Canc

You can use the following PF keys:

- PF8 (or ENTER) scrolls down one page in the list.

- PF7 scrolls up one page in the list.

- PF5 sorts the list in ascending order by code page name. Depending on the size of the list, you may have to increase the size of the sort buffer by using the `SORT` profile parameter as described in SORT - Control of Sort Program in the Parameter Reference documentation.

The columns contained in the All Code Pages screen are explained in the following table:

Column | Explanation
--- | ---
Cmd |
Input field for one of the following line commands to be executed for the selected code page:
`N` | Display all names used for the code page: The IANA (Internet Assigned Numbers Authority) name is the standard and unambiguous name of the code page. The IANA name is used by Natural as the default code page name (see the `CP` profile parameter described in the Parameter Reference documentation) for conversions to and from Unicode. The IANA name is returned by the `*CODEPAGE` system variable (see the System Variables documentation). CCSID (Coded Character Set Identifier) denotes the character set as identified by IBM. Alias names: one or more alternate names for the code page.
`C` | Display all code points of the selected code page: see Code Point List below.
`T` | Invoke a window to test code point conversion to and from Unicode: see Test Conversion below.
Stat |
All code pages to be used during a Natural session must be predefined and enabled in the NATCONFG module. This column shows the NATCONFG status of the code page:
`E` | Code page is defined in the NATCONFG module and is enabled.
`D` | Code page is defined in NATCONFG but is disabled.
`N` | Code page is not defined in NATCONFG.
For detailed information on the NATCONFG module, refer to Natural Configuration Tables in the Operations documentation.
Name | The internal ICU name.
Units | The code units (minimum and maximum numbers of bytes) assigned to the code points.

This section covers the following topics:

- Code Point List

- Test Conversion

### Code Point List

This function is used to list all code points of the selected code page as shown in the following example:

    13:38:33               ***** NATURAL SYSCP UTILITY *****             2007-08-06
    +--------------------------- Code Points of UTF-8 ----------------------------+
    ! CP: 00000000  U: 0000        NULL                                           !
    ! CP: 00000001  U: 0001  ?     START OF HEADING                               !
    ! CP: 00000002  U: 0002  ?     START OF TEXT                                  !
    ! CP: 00000003  U: 0003  ?     END OF TEXT                                    !
    ! CP: 00000004  U: 0004  ?     END OF TRANSMISSION                            !
    ! CP: 00000005  U: 0005  ?     ENQUIRY                                        !
    ! CP: 00000006  U: 0006  ?     ACKNOWLEDGE                                    !
    ! CP: 00000007  U: 0007  ?     BELL                                           !
    ! CP: 00000008  U: 0008  ?     BACKSPACE                                      !
    ! CP: 00000009  U: 0009  ?     CHARACTER TABULATION                           !
    ! CP: 0000000A  U: 000A  ?     LINE FEED (LF)                                 !
    ! CP: 0000000B  U: 000B  ?     LINE TABULATION                                !
    ! CP: 0000000C  U: 000C  ?     FORM FEED (FF)                                 !
    ! CP: 0000000D  U: 000D  ?     CARRIAGE RETURN (CR)                           !
    ! CP: 0000000E  U: 000E  ?     SHIFT OUT                                      !
    ! CP: 0000000F  U: 000F  ?     SHIFT IN                                       !
    +-----------------------------------------------------------------------------+
     _   D   ibm-912_P100-1995                                                1 - 1
     _   D   ibm-913_P100-2000                                                1 - 1
     _   N   ISCII,version=0                                                  1 - 4
     _   N   ISCII,version=1                                                  1 - 4

    Command ===>
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help        Exit  LByte Prop   --    -     +          <<    >     Canc

The list contains the following information:

- The byte sequence of the code page code points (`CP`).

- The byte sequence of the corresponding Unicode code points (`U`).

- The Unicode character. If the character cannot be interpreted by the current terminal emulation, the substitution character (as defined in the code page; here: `?`) is displayed instead.

- The normative name of the Unicode character.

The PF keys provided for each code point list are explained in the following table:

PF Key | Function
--- | ---
PF4 | Not applicable to a code page with a 1-byte unit as the maximum. Opens the Leading Bytes of Code Point window (see the relevant section) in which you can enter the byte range you want to view. Press PF3 or ENTER to confirm your current input of leading bytes and to close the window. Press PF12 to cancel your current input and to close the window.
PF5 | Invokes the Unicode Properties screen (see the relevant section) for the list item where the cursor is placed.
PF6 | Resets the first (non-leading) byte of the byte range to the hexadecimal value 0x00.
PF7 | Scrolls up one page in the selected byte range (see also Specifying Leading Bytes). In a UTF-16 or UTF-32 code page, you can scroll through all byte ranges.
PF8 (or ENTER) | Scrolls down one page in the selected byte range (see also Specifying Leading Bytes). In a UTF-16 or UTF-32 code page, you can scroll through all byte ranges.
PF10 | Moves to the leftmost screen position.
PF11 | Moves to the right of the screen.

#### Specifying Leading Bytes

This function does not apply to a code page with a 1-byte unit as the maximum.

You can use the Leading Byte of Code Point window to view the byte range (hexadecimal values 0x00 to 0xFF) of a particular leading byte for a code point.

In the following example of a UTF-8 code page, the hexadecimal values 0x22 and 0x32 have been entered as the leading bytes:

    +--------- Leading Bytes of Code Point ---------+
    !                                               !
    !    Maximum number of bytes .. 3               !
    !                                               !
    !                                               !
    !    Enter leading bytes ...... 00 22 32 00     !
    !                                               !
    !                                               !
    !                                               !
    +-----------------------------------------------+

After pressing PF3 (or ENTER) the code point list then displays the bytes from hexadecimal 0x00223200 to 0x002232FF.

Note
For byte-swapped code pages such as UTF-16LE or UTF-32LE, the bytes are read and displayed in a reversed byte order.

### Test Conversion

You can test code-point conversion from a selected code page to the default code page (value of `*CODEPAGE`) defined with the `CP` profile parameter:

- from an alphanumeric character string to Unicode code points and vice versa, or

- from hexadecimal values to Unicode code points and vice versa.

The example below shows the conversion window of a code page (here: `ibm-1140_P100-1997`) which contains the following information:

- the number of byte units (minimum and maximum numbers of bytes) assigned to the code points,

- an alphanumeric character string and its equivalent hexadecimal values and

- the corresponding Unicode code points.

    +------------------- Test Conversion of ibm-1140_P100-1997 -------------------+
    !                                                                             !
    ! Code page units .. 1 - 1   (minimum, maximum of bytes)                      !
    !                                                                             !
    !                                                                             !
    ! Code Page Characters                                                        !
    ! Alphanumeric .. ABC                                                         !
    ! Hexadecimal ... C1 C2 C3 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 !
    !                 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 !
    !                                                                             !
    ! Unicode                                                                     !
    ! Code points ... 0041 0042 0043 0020 0020 0020 0020 0020 0020 0020           !
    !                 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020           !
    !                 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020           !
    !                 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020           !
    !                                                                             !
    !                                                                             !
    !                                                                             !
    +-----------------------------------------------------------------------------+

To convert a character or code point

1. Activate the field where you want to enter the literal string or code unit sequence to be converted:

   Press PF6 to enter a literal string in the Alphanumeric field (default input field).

   Or:
   Press PF7 to enter hexadecimal values in the Hexadecimal field.

   Or:
   Press PF8 to enter Unicode code points in the Unicode field.

2. Press ENTER.

   The value entered in one of the fields is converted to its equivalent code points or literal string.

## Loaded Code Pages

This function is used to list the already loaded code pages in your current Natural environment as shown in the following example:

    09:52:33               ***** NATURAL SYSCP UTILITY *****             2020-07-22
    User XYZ                     - Loaded Code Pages -

     Name                                                             Member
     ---------------------------------------------------------------- --------
     ibm-1140_P100-1997                                               I66C0067
     ibm-1125_P100-1997                                               I66C0060
     ibm-939_P120-1999                                                I66C0203
     ibm-930_P120-1999                                                I66C0199
     ibm-1147_P100-1997                                               I66C0074

    Command ===>
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help        Exit        Sort         -     +                      Canc

You can use the following PF keys:

- PF8 (or ENTER) scrolls down one page in the list.

- PF7 scrolls up one page in the list.

- PF5 sorts the list in ascending order by code page name. Depending on the size of the list, you may have to increase the size of the sort buffer by using the `SORT` profile parameter as described in SORT - Control of Sort Program in the Parameter Reference documentation.

The columns contained in the Loaded Code Pages screen are explained in the following table:

Column | Explanation
--- | ---
Name | The internal ICU name of the loaded code page.
Member | The name of the data item which is the load module from the STEPLIB dataset.

## Unicode Properties

This function is used to display whether a Unicode character property is true (`yes`) or false (`no`) for a character contained in the default code page (value of `*CODEPAGE`) as shown in the example of the letter `A` in code page `IBM01140` below:

    14:43:19               ***** NATURAL SYSCP UTILITY *****             2008-09-23
    User SAG                    - Unicode Properties -

    Default code page ... IBM01140

    Alpha character ..... A     C1       hexadecimal    Substitution .. ? 3F
    Unicode code point .. 0041

    Unicode char. name .. LATIN CAPITAL LETTER A

    Alphabetic .......... yes            Control ........ no
    Alphanumeric ........ yes            Space .......... no
    Lower case .......... no             Whitespace ..... no
    Upper case .......... yes            Blank .......... no
    Digit ............... no             Punctuation .... no
    Hexadecimal ......... yes            Combining ...... no
    Graphic ............. yes            Surrogate ...... no
    Printable ........... yes            Right to left .. no

    Command ===>

    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help        Exit        Uni                                       Canc

In the Alpha character field, you can enter the character whose properties you want to view. Press PF5 if you want to enter a Unicode code point.

For explanations of the Unicode character properties displayed on the screen, refer to Unicode Consortium's documentation Unicode Character Database at web site http://www.unicode.org/Public/4.1.0/ucd/UCD.html.

## ICU Information

This function is used to display information on the ICU used:

Product | Product name: International Components for Unicode for Software AG (ICS)
Product code | ICS
Product version | ICS product version
Cumulated fix | Cumulated fix (if available and applied) for the current ICS product version
Architecture level | IBM architecture level. The default is zero (`0`) denoting that no architecture level is used.
Revision | ICS revision number
ICU version | ICU version supported by ICS
Unicode version | Unicode version supported by ICS
*CODEPAGE | Current code page used. Default is `IBM01140`. See also system variable `*CODEPAGE`.
*LOCALE | Current locale used. Default is `en_US`. See also system variable `*LOCALE`.

Note
Similar information is displayed by the system command `CPINFO`.

### On this page

- Invoking and Terminating SYSCP
- Code Page Maintenance
- All Code Pages
- Loaded Code Pages
- Unicode Properties
- ICU Information