Dovetailed Technologies

Appendix K. Creating a Custom Unicode Table from the IBM FTP Translate Table

Co:Z SFTP provides transfer options for specifying client (clientcp) and server (servercp) code pages to be used during file transfers. Additionally, the technique option can be used to override the default Unicode Services value of LMREC. The following are condensed instructions for adding the IBM FTP translate table to Unicode Services. The IBM FTP translate table can be used as is or modified to meet your specific custom unicode table requirements.

[Note]Note
The condensed instructions below are for illustrating how the Co:Z SFTP clientcp, servercp and technique transfer options are used. Refer to IBM's Unicode Services User's Guide and Reference (SA22-7649) for complete information on the IBM supported method for adding new conversion tables to Unicode Services.
[Note]Note
Alternatively, if using CoZ: SFTP 2.3.0 or higher, the trtab transfer option can be used to specify the translate table to use for text mode transfers. The IBM FTP translate table can be specified using trtab=STANDARD in place of the clientcp, servercp, and technique options. Refer to General transfer options for additional information on the trtab option.

Adding the IBM FTP translate table to Unicode Services:

  • Rather than modifying SYS1.SCUNTBL, create a new PDS with your own high level qualifier: HLQ.SCUNTBL with RECFM=F,LRECL=256,BLKSIZE=256

  • Create new members in HLQ.SCUNTBL

    Codepages IBM-850 and IBM-037 seem to be the closest to the IBM FTP translate table. Using IBM's Unicode Services User's Guide and Reference (SA22-7649), the two-character codes for IBM-850 and IBM-037 are EB (850) and AA (037), respectively. Select a new conversion technique code, in this example, "2" is used. This information will be used to name the new members added to HLQ.SCUNTBL.

    View TCPIP.STANDARD.TCPXLBIN in hex and verify that the translation meets or is close to meeting your requirements. TCPIP.STANDARD.TCPXLBIN has the following three records:

    • a comment

    • the 256-byte ASCII->EBCDIC table

    • the 256-byte EBCDIC->ASCII table

    Create a new member CUN2EBAA in the HLQ.SCUNTBL dataset (850->037, TECH=2). Copy the first non-comment record from TCPIP.STANDARD.TCPXLBIN into this member.

    Create another new member CUN2AAEB (037->850, TECH=2). Copy the second non-comment record from TCPIP.STANDARD.TCPXLBIN into this member.

  • Add a CUNUNIxx member to PARMLIB (choose your preferred suffix).

    REPLACE FROM(037) TO(850) TECH(2) DSN(HLQ.SCUNTBL)
    REPLACE FROM(850) TO(037) TECH(2) DSN(HLQ.SCUNTBL) 

  • Activate the new CUNUNIxx PARMLIB member using the SET command. The following shows the command and resulting messages.

     SET UNI=XX
     IEE252I MEMBER CUNUNIXX FOUND IN XXXX.PARMLIB
     IEF196I IGD103I SMS ALLOCATED TO DDNAME SYS00013
     IEF196I IGD104I HLQ.SCUNTBL            RETAINED,
     IEF196I DDNAME=SYS00013
     IEF196I IGD103I SMS ALLOCATED TO DDNAME SYS00014  

  • Once you have tested the new translate table, add UNI=xx to your IEASYSxx parmlib member so that table is available permanently.

Testing the new table added to Unicode Services:

  • The showtrtab command can be used to display the new translate table. Refer for to the Co:Z Dataset Pipes Command Reference for additional information.

    >showtrtab -s IBM-850 -t IBM-037 -q 2
    00:  00 01 02 03   37 2D 2E 2F   16 05 25 0B   0C 0D 0E 0F
    10:  10 11 12 13   3C 3D 32 26   18 19 3F 27   22 1D 35 1F
    20:  40 5A 7F 7B   5B 6C 50 7D   4D 5D 5C 4E   6B 60 4B 61
    30:  F0 F1 F2 F3   F4 F5 F6 F7   F8 F9 7A 5E   4C 7E 6E 6F
    40:  7C C1 C2 C3   C4 C5 C6 C7   C8 C9 D1 D2   D3 D4 D5 D6
    50:  D7 D8 D9 E2   E3 E4 E5 E6   E7 E8 E9 AD   E0 BD 5F 6D
    60:  79 81 82 83   84 85 86 87   88 89 91 92   93 94 95 96
    70:  97 98 99 A2   A3 A4 A5 A6   A7 A8 A9 C0   4F D0 A1 07
    80:  00 01 02 03   37 2D 2E 2F   16 05 25 0B   0C 0D 0E 0F
    90:  10 11 12 13   3C 3D 32 26   18 19 3F 27   22 1D 35 1F
    A0:  40 5A 7F 7B   5B 6C 50 7D   4D 5D 5C 4E   6B 60 4B 61
    B0:  F0 F1 F2 F3   F4 F5 F6 F7   F8 F9 7A 5E   4C 7E 6E 6F
    C0:  7C C1 C2 C3   C4 C5 C6 C7   C8 C9 D1 D2   D3 D4 D5 D6
    D0:  D7 D8 D9 E2   E3 E4 E5 E6   E7 E8 E9 AD   E0 BD 5F 6D
    E0:  79 81 82 83   84 85 86 87   88 89 91 92   93 94 95 96
    F0:  97 98 99 A2   A3 A4 A5 A6   A7 A8 A9 C0   4F D0 A1 07
    
  • The following commands can also be used to test the new translate table.

    lzopts mode=text,c=IBM-037,s=IBM-850,technique=2,l=none
    put //HLQ.TEST.DATA custom_table_test.txt
    

Copyright© 2009-2017 Dovetailed Technologies, LLC. All rights reserved.
Co:Z® is a registered trademark of Dovetailed Technologies, LLC.