Table of Contents Previous Next PDF


Codeset Conversion

Codeset Conversion
This chapter contains the following topics:
Overview of Codeset Conversion
Purpose
The purpose of this chapter is to describe the configurations required to convert the z/OS EBCDIC CodeSet/CodePage to the UNIX/Linux ASCII CodeSet.
The COBOL copy file CONVERTMW.cpy stores the correspondence between source z/OS hexadecimal values and target UNIX/Linux hexadecimal values. The copy file is used by all of the COBOL reloading files generated by Oracle Tuxedo Application Rehosting Workbench (Tuxedo ART Workbench) data conversion tools when transcoding z/OS characters to UNIX characters.
Audience
This chapter is intended to be used by people migrating z/OS files and DB2 tables to UNIX/Linux files and Oracle tables or Db2/luw (udb). A good understanding of the z/OS platform, z/OS CodeSet, and Codepage as well as the Oracle CharacterSet and UNIX CodePage is required.
z/OS – Displaying Graphical Characters
In order to transcode data assets, you need to determine the character mapping grid in the source z/OS environment.
Reference Monitor
You need to use a monitor that is configured with all of the graphical characteristics linked to the application in order to display all of the characters included in the data used by the z/OS application to be migrated.
The monitor will be used to display the contents of the following file. This step is important because it is the characters displayed by this monitor that enables the completion of the EBCDIC to ASCII conversion phase.
REFCOD80 File
Retrieve the REFCOD80 file from <refinedir>/<release>/convert-data/codeset-tool and transfer it in BINARY format to a z/OS PDS with a RecordLength = 80 parameter. This type of PDS is commonly used to stock JCL and COBOL components.
The REFCOD80 file contains a list of all the characters in the EBCDIC alphabet. Each line in the file has the following format:
DEC MVS:<dec>, HEXA MVS:<hex>, CAR=/<car>/
Where:
<dec>
Is an EBCDIC decimal value between 000 and 255.
<hex>
Is an EBCDIC hexadecimal value between 00 and FF.
<car>
Is a graphical character as displayed on the reference monitor.
Listing 2‑1 REFCOD80 File Example
DEC MVS:000, HEXA MVS:00, CAR=/ /
[…]
DEC MVS:192, HEXA MVS:C0, CAR=/{/
DEC MVS:193, HEXA MVS:C1, CAR=/A/
DEC MVS:194, HEXA MVS:C2, CAR=/B/
DEC MVS:195, HEXA MVS:C3, CAR=/C/
DEC MVS:196, HEXA MVS:C4, CAR=/D/
[…]
 
Notes:
The transfer in binary mode is mandatory because the file is stored in z/OS format on the UNIX/Linux platform, and the contents should not be altered;
Viewing Characters Under z/OS
A VIEW under TSO is sufficient to look at the file.
The following pictures are screen captures of the complete REFCOD80 file using a test monitor.
Figure 2‑1 REFCOD80 File From Test Monitor: Part 1
Figure 2‑2 REFCOD80 file from test monitor: Part 2
Figure 2‑3 REFCOD80 file from test monitor: Part 3
 
Figure 2‑4 REFCOD80 file from test monitor: Part 4
Notes:
The first screen captures do not show any graphic characters under CAR:/ /, because these characters do not have a graphical representation under z/OS.
The test monitor used displays 38 lines per page, other monitors may differ.
UNIX/Linux: Displaying Graphical Characters
Reference Monitor
As under z/OS it is important that the monitor on the target platform as well as all of the graphical environment parameters are equivalent to those configured for the data migration:
The characters displayed on this screen must be in line with the character set that has been chosen.
COBOL CONVERTMW.cpy
The COBOL CONVERTMW.cpy file is located in <refinedir>/<release>/convert-data/codeset-tool. The copy file is used by reloading scripts of Tuxedo ART Workbench data tools to convert character strings from EBCDIC to ASCII along with the DB2 table data and the VSAM/SAM files.
Listing 2‑2 COBOL CONVERTMW.cpy Copy File Supplied Code
*
* TEMPLATE:
*
* Version: <project_name>
* Date: <date_input>
* Source: <source_name>
* Source Information:
* <insert_here_any_information>
*
*
 
01 TRANSCODE-INFO PIC X(70) VALUES "<project_name> <date_input>".
01 TRANSCODE-LENGTH PIC 9(4) VALUE 256.
01 TRANSCODE-SOURCE.
* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
02 FILLER PIC X(32) VALUE X"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f".
02 FILLER PIC X(32) VALUE X"202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f".
02 FILLER PIC X(32) VALUE X"404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f".
02 FILLER PIC X(32) VALUE X"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f".
02 FILLER PIC X(32) VALUE X"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f".
02 FILLER PIC X(32) VALUE X"a0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf".
02 FILLER PIC X(32) VALUE X"c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf".
02 FILLER PIC X(32) VALUE X"e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff".
 
01 TRANSCODE-CIBLE.
* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
02 FILLER PIC X(32) VALUE X"000102039c09867f978d8e0b0c0d0e0f101112139d0a08871819928f1c1d1e1f".
02 FILLER PIC X(32) VALUE X"808182838485171b88898a8b8c050607909116939495960498999a9b14159e1a".
02 FILLER PIC X(32) VALUE X"20a0e2e4e0e1e3e5e7f15b2e3c282b2126e9eaebe8edeeefecdf5d242a293b5e".
02 FILLER PIC X(32) VALUE X"2d2fc2c4c0c1c3c5c7d1a62c255f3e3ff8c9cacbc8cdcecfcc603a2340273d22".
02 FILLER PIC X(32) VALUE X"d8616263646566676869abbbf0fdfeb1b06a6b6c6d6e6f707172aabae6b8c6a4".
02 FILLER PIC X(32) VALUE X"b57e737475767778797aa1bfd0dddeaea2a3a5b7a9a7b6bcbdbeac7cafa8b4d7".
02 FILLER PIC X(32) VALUE X"7b414243444546474849adf4f6f2f3f57d4a4b4c4d4e4f505152b9fbfcf9fa9f".
02 FILLER PIC X(32) VALUE X"5cf7535455565758595ab2d4d6d2d3d530313233343536373839b3dbdcd9daff".
 
Generally, the transcoding copy file is composed of three parts:
A description and COBOL comment part and the definition of two COBOL variables: TRANSCODE-INFO containing information about the project and TRANSCODE-LENGTH containing a constant that must not be modified.
The TRANSCODE-SOURCE variable represents the 256 hexadecimal values of the source platform.
The TRANSCODE-CIBLE COBOL variable contains 256 hexadecimal values corresponding to the ASCII equivalents of the EBCDIC hexadecimal values stored in TRANSCODE-SOURCE.
When "enable-buffer-converter" or "enable-reverse-converter" is set in system description file, to correctly compile the newly generated COBOL programs (please refer to File to File chapter), this copy file must be replaced by one of the following two files in the same directory. They both contain additional two fields:
Contains the punch code for signed number on z/OS.
Contains the punch code for singed number on UNIX/Linux.
For Micro Focus COBOL, the CONVERTMW.cpy.mf file is renamed to CONVERTMW.CPY. The additional two fields are:
02 POSITIVE-NUM PIC X(10) VALUE X"C0C1C2C3C4C5C6C7C8C9".
02 NEGATIVE-NUM PIC X(10) VALUE X"D0D1D2D3D4D5D6D7D8D9".
02 POS-MARK PIC X VALUE X"4E".
02 NEG-MARK PIC X VALUE X"60".
01 PUNCHCODE-LINUX
02 POSITIVE-NUM PIC X(10) VALUE X"7B414243444546474849".
02 NEGATIVE-NUM PIC X(10) VALUE X"7D4A4B4C4D4E4F505152".
02 POS-MARK PIC X VALUE X"2B".
02 NEG-MARK PIC X VALUE X"2D".
For COBOL-IT, the CONVERTMW.cpy file .cit is renamed to CONVERTMW.CPY. The additional two fields are:
02 POSITIVE-NUM PIC X(10) VALUE X"C0C1C2C3C4C5C6C7C8C9".
02 NEGATIVE-NUM PIC X(10) VALUE X"D0D1D2D3D4D5D6D7D8D9".
02 POS-MARK PIC X VALUE X"4E".
02 NEG-MARK PIC X VALUE X"60".
01 PUNCHCODE-LINUX
02 POSITIVE-NUM PIC X(10) VALUE X"30313233343536373839".
02 NEGATIVE-NUM PIC X(10) VALUE X"70717273747576777879".
02 POS-MARK PIC X VALUE X"2B".
02 NEG-MARK PIC X VALUE X"2D".
Note:
Viewing characters under UNIX
To view the result of the configuration of the COBOL CONVERTMW.cpy copy file, execute the show_convertmw.sh script stored in <refinedir>/<release>/convert-data/codeset-tool using the location and name of the copy file as a parameter:
<refinedir>/<release>/convert-data/codeset-tool/show_convertmw.sh <refinedir>/<release>/convert-data/codeset-tool/CONVERTMW.cpy
Note:
This script requires the initialization of the TMPPROJECT UNIX variable. For example:
export TMPROJECT=$HOME/tmp
The script produces a list of all of the characters in the ASCII alphabet sorted in exactly the same manner as the REFCOD80 file viewed under z/OS. Each line displayed has the following format:
DEC MVS:<dec>, HEXA MVS:<hex>, DEC UNIX:<decU>, HEXA UNIX:<hexU>, CAR=/<carU>/
Where:
<dec>
Is an EBCDIC decimal value between 000 and 255.
<hex>
Is an EBCDIC hexadecimal value between 00 and FF.
Is a graphical character as displayed on the reference monitor.
<decU>
Is an ASCII equivalent decimal value between 000 and 255.
<hexU>
Is an ASCII equivalent hexadecimal value between 00 and FF.
<carU>
Is an ASCII graphical character of the UNIX/Linux platform.
Listing 2‑3 UNIX Character Example
DEC MVS:000, HEXA MVS:00, DEC UNIX:000, HEXA UNIX:00, CAR=//
[…]
DEC MVS:192, HEXA MVS:C0, DEC UNIX:123, HEXA UNIX:7b, CAR=/{/
DEC MVS:193, HEXA MVS:C1, DEC UNIX:065, HEXA UNIX:41, CAR=/A/
DEC MVS:194, HEXA MVS:C2, DEC UNIX:066, HEXA UNIX:42, CAR=/B/
DEC MVS:195, HEXA MVS:C3, DEC UNIX:067, HEXA UNIX:43, CAR=/C/
DEC MVS:196, HEXA MVS:C4, DEC UNIX:068, HEXA UNIX:44, CAR=/D/
[…]
 
Notes:
If you view the results on an XTERM configured in 7-bit mode, you will only see some of the graphical characters.
Listing 2‑4 Complete UNIX Character List
DEC MVS:000, HEXA MVS:00, DEC UNIX:000, HEXA UNIX:00, CAR=/ /
DEC MVS:001, HEXA MVS:01, DEC UNIX:001, HEXA UNIX:01, CAR=/ /
DEC MVS:002, HEXA MVS:02, DEC UNIX:002, HEXA UNIX:02, CAR=/ /
DEC MVS:003, HEXA MVS:03, DEC UNIX:003, HEXA UNIX:03, CAR=/ /
DEC MVS:004, HEXA MVS:04, DEC UNIX:156, HEXA UNIX:9c, CAR=/œ/
DEC MVS:005, HEXA MVS:05, DEC UNIX:009, HEXA UNIX:09, CAR=/ /
DEC MVS:006, HEXA MVS:06, DEC UNIX:134, HEXA UNIX:86, CAR=/†/
DEC MVS:007, HEXA MVS:07, DEC UNIX:127, HEXA UNIX:7f, CAR=/?/
DEC MVS:008, HEXA MVS:08, DEC UNIX:151, HEXA UNIX:97, CAR=/-/
DEC MVS:009, HEXA MVS:09, DEC UNIX:141, HEXA UNIX:8d, CAR=/?/
DEC MVS:010, HEXA MVS:0A, DEC UNIX:142, HEXA UNIX:8e, CAR=/Ž/
DEC MVS:011, HEXA MVS:0B, DEC UNIX:011, HEXA UNIX:0b, CAR=//
DEC MVS:012, HEXA MVS:0C, DEC UNIX:012, HEXA UNIX:0c, CAR=//
DEC MVS:013, HEXA MVS:0D, DEC UNIX:013, HEXA UNIX:0d, CAR=/ /
DEC MVS:014, HEXA MVS:0E, DEC UNIX:014, HEXA UNIX:0e, CAR=//
DEC MVS:015, HEXA MVS:0F, DEC UNIX:015, HEXA UNIX:0f, CAR=/ /
DEC MVS:016, HEXA MVS:10, DEC UNIX:016, HEXA UNIX:10, CAR=/ /
DEC MVS:017, HEXA MVS:11, DEC UNIX:017, HEXA UNIX:11, CAR=/ /
DEC MVS:018, HEXA MVS:12, DEC UNIX:018, HEXA UNIX:12, CAR=/ /
DEC MVS:019, HEXA MVS:13, DEC UNIX:019, HEXA UNIX:13, CAR=/ /
DEC MVS:020, HEXA MVS:14, DEC UNIX:157, HEXA UNIX:9d, CAR=/?/
DEC MVS:021, HEXA MVS:15, DEC UNIX:010, HEXA UNIX:0a, CAR=//
DEC MVS:022, HEXA MVS:16, DEC UNIX:008, HEXA UNIX:08, CAR=/ /
DEC MVS:023, HEXA MVS:17, DEC UNIX:135, HEXA UNIX:87, CAR=/‡/
DEC MVS:024, HEXA MVS:18, DEC UNIX:024, HEXA UNIX:18, CAR=/ /
DEC MVS:025, HEXA MVS:19, DEC UNIX:025, HEXA UNIX:19, CAR=/ /
DEC MVS:026, HEXA MVS:1A, DEC UNIX:146, HEXA UNIX:92, CAR=/'/
DEC MVS:027, HEXA MVS:1B, DEC UNIX:143, HEXA UNIX:8f, CAR=/?/
DEC MVS:028, HEXA MVS:1C, DEC UNIX:028, HEXA UNIX:1c, CAR=/ /
DEC MVS:029, HEXA MVS:1D, DEC UNIX:029, HEXA UNIX:1d, CAR=/ /
DEC MVS:030, HEXA MVS:1E, DEC UNIX:030, HEXA UNIX:1e, CAR=/ /
DEC MVS:031, HEXA MVS:1F, DEC UNIX:031, HEXA UNIX:1f, CAR=//
DEC MVS:032, HEXA MVS:20, DEC UNIX:128, HEXA UNIX:80, CAR=/€/
DEC MVS:033, HEXA MVS:21, DEC UNIX:129, HEXA UNIX:81, CAR=/?/
DEC MVS:034, HEXA MVS:22, DEC UNIX:130, HEXA UNIX:82, CAR=/‚/
DEC MVS:035, HEXA MVS:23, DEC UNIX:131, HEXA UNIX:83, CAR=/ƒ/
DEC MVS:036, HEXA MVS:24, DEC UNIX:132, HEXA UNIX:84, CAR=/"/
DEC MVS:037, HEXA MVS:25, DEC UNIX:133, HEXA UNIX:85, CAR=/…/
DEC MVS:038, HEXA MVS:26, DEC UNIX:023, HEXA UNIX:17, CAR=/ /
DEC MVS:039, HEXA MVS:27, DEC UNIX:027, HEXA UNIX:1b, CAR=/ /
DEC MVS:040, HEXA MVS:28, DEC UNIX:136, HEXA UNIX:88, CAR=/ˆ/
DEC MVS:041, HEXA MVS:29, DEC UNIX:137, HEXA UNIX:89, CAR=/‰/
DEC MVS:042, HEXA MVS:2A, DEC UNIX:138, HEXA UNIX:8a, CAR=/Š/
DEC MVS:043, HEXA MVS:2B, DEC UNIX:139, HEXA UNIX:8b, CAR=/‹/
DEC MVS:044, HEXA MVS:2C, DEC UNIX:140, HEXA UNIX:8c, CAR=/Œ/
DEC MVS:045, HEXA MVS:2D, DEC UNIX:005, HEXA UNIX:05, CAR=/ /
DEC MVS:046, HEXA MVS:2E, DEC UNIX:006, HEXA UNIX:06, CAR=/ /
DEC MVS:047, HEXA MVS:2F, DEC UNIX:007, HEXA UNIX:07, CAR=//
DEC MVS:048, HEXA MVS:30, DEC UNIX:144, HEXA UNIX:90, CAR=/?/
DEC MVS:049, HEXA MVS:31, DEC UNIX:145, HEXA UNIX:91, CAR=/'/
DEC MVS:050, HEXA MVS:32, DEC UNIX:022, HEXA UNIX:16, CAR=/ /
DEC MVS:051, HEXA MVS:33, DEC UNIX:147, HEXA UNIX:93, CAR=/"/
DEC MVS:052, HEXA MVS:34, DEC UNIX:148, HEXA UNIX:94, CAR=/"/
DEC MVS:053, HEXA MVS:35, DEC UNIX:149, HEXA UNIX:95, CAR=/o/
DEC MVS:054, HEXA MVS:36, DEC UNIX:150, HEXA UNIX:96, CAR=/-/
DEC MVS:055, HEXA MVS:37, DEC UNIX:004, HEXA UNIX:04, CAR=/ /
DEC MVS:056, HEXA MVS:38, DEC UNIX:152, HEXA UNIX:98, CAR=/˜/
DEC MVS:057, HEXA MVS:39, DEC UNIX:153, HEXA UNIX:99, CAR=/™/
DEC MVS:058, HEXA MVS:3A, DEC UNIX:154, HEXA UNIX:9a, CAR=/š/
DEC MVS:059, HEXA MVS:3B, DEC UNIX:155, HEXA UNIX:9b, CAR=/›/
DEC MVS:060, HEXA MVS:3C, DEC UNIX:020, HEXA UNIX:14, CAR=/ /
DEC MVS:061, HEXA MVS:3D, DEC UNIX:021, HEXA UNIX:15, CAR=/ /
DEC MVS:062, HEXA MVS:3E, DEC UNIX:158, HEXA UNIX:9e, CAR=/ž/
DEC MVS:063, HEXA MVS:3F, DEC UNIX:026, HEXA UNIX:1a, CAR=/ /
DEC MVS:064, HEXA MVS:40, DEC UNIX:032, HEXA UNIX:20, CAR=/ /
DEC MVS:065, HEXA MVS:41, DEC UNIX:160, HEXA UNIX:a0, CAR=/ /
DEC MVS:066, HEXA MVS:42, DEC UNIX:226, HEXA UNIX:e2, CAR=/â/
DEC MVS:067, HEXA MVS:43, DEC UNIX:228, HEXA UNIX:e4, CAR=/ä/
DEC MVS:068, HEXA MVS:44, DEC UNIX:224, HEXA UNIX:e0, CAR=/à/
DEC MVS:069, HEXA MVS:45, DEC UNIX:225, HEXA UNIX:e1, CAR=/á/
DEC MVS:070, HEXA MVS:46, DEC UNIX:227, HEXA UNIX:e3, CAR=/ã/
DEC MVS:071, HEXA MVS:47, DEC UNIX:229, HEXA UNIX:e5, CAR=/å/
DEC MVS:072, HEXA MVS:48, DEC UNIX:231, HEXA UNIX:e7, CAR=/ç/
DEC MVS:073, HEXA MVS:49, DEC UNIX:241, HEXA UNIX:f1, CAR=/ñ/
DEC MVS:074, HEXA MVS:4A, DEC UNIX:091, HEXA UNIX:5b, CAR=/[/
DEC MVS:075, HEXA MVS:4B, DEC UNIX:046, HEXA UNIX:2e, CAR=/./
DEC MVS:076, HEXA MVS:4C, DEC UNIX:060, HEXA UNIX:3c, CAR=/</
DEC MVS:077, HEXA MVS:4D, DEC UNIX:040, HEXA UNIX:28, CAR=/(/
DEC MVS:078, HEXA MVS:4E, DEC UNIX:043, HEXA UNIX:2b, CAR=/+/
DEC MVS:079, HEXA MVS:4F, DEC UNIX:033, HEXA UNIX:21, CAR=/!/
DEC MVS:080, HEXA MVS:50, DEC UNIX:038, HEXA UNIX:26, CAR=/&/
DEC MVS:081, HEXA MVS:51, DEC UNIX:233, HEXA UNIX:e9, CAR=/é/
DEC MVS:082, HEXA MVS:52, DEC UNIX:234, HEXA UNIX:ea, CAR=/ê/
DEC MVS:083, HEXA MVS:53, DEC UNIX:235, HEXA UNIX:eb, CAR=/ë/
DEC MVS:084, HEXA MVS:54, DEC UNIX:232, HEXA UNIX:e8, CAR=/è/
DEC MVS:085, HEXA MVS:55, DEC UNIX:237, HEXA UNIX:ed, CAR=/í/
DEC MVS:086, HEXA MVS:56, DEC UNIX:238, HEXA UNIX:ee, CAR=/î/
DEC MVS:087, HEXA MVS:57, DEC UNIX:239, HEXA UNIX:ef, CAR=/ï/
DEC MVS:088, HEXA MVS:58, DEC UNIX:236, HEXA UNIX:ec, CAR=/ì/
DEC MVS:089, HEXA MVS:59, DEC UNIX:223, HEXA UNIX:df, CAR=/ß/
DEC MVS:090, HEXA MVS:5A, DEC UNIX:093, HEXA UNIX:5d, CAR=/]/
DEC MVS:091, HEXA MVS:5B, DEC UNIX:036, HEXA UNIX:24, CAR=/$/
DEC MVS:092, HEXA MVS:5C, DEC UNIX:042, HEXA UNIX:2a, CAR=/*/
DEC MVS:093, HEXA MVS:5D, DEC UNIX:041, HEXA UNIX:29, CAR=/)/
DEC MVS:094, HEXA MVS:5E, DEC UNIX:059, HEXA UNIX:3b, CAR=/;/
DEC MVS:095, HEXA MVS:5F, DEC UNIX:094, HEXA UNIX:5e, CAR=/^/
DEC MVS:096, HEXA MVS:60, DEC UNIX:045, HEXA UNIX:2d, CAR=/-/
DEC MVS:097, HEXA MVS:61, DEC UNIX:047, HEXA UNIX:2f, CAR=///
DEC MVS:098, HEXA MVS:62, DEC UNIX:194, HEXA UNIX:c2, CAR=/Â/
DEC MVS:099, HEXA MVS:63, DEC UNIX:196, HEXA UNIX:c4, CAR=/Ä/
DEC MVS:100, HEXA MVS:64, DEC UNIX:192, HEXA UNIX:c0, CAR=/À/
DEC MVS:101, HEXA MVS:65, DEC UNIX:193, HEXA UNIX:c1, CAR=/Á/
DEC MVS:102, HEXA MVS:66, DEC UNIX:195, HEXA UNIX:c3, CAR=/Ã/
DEC MVS:103, HEXA MVS:67, DEC UNIX:197, HEXA UNIX:c5, CAR=/Å/
DEC MVS:104, HEXA MVS:68, DEC UNIX:199, HEXA UNIX:c7, CAR=/Ç/
DEC MVS:105, HEXA MVS:69, DEC UNIX:209, HEXA UNIX:d1, CAR=/Ñ/
DEC MVS:106, HEXA MVS:6A, DEC UNIX:166, HEXA UNIX:a6, CAR=/¦/
DEC MVS:107, HEXA MVS:6B, DEC UNIX:044, HEXA UNIX:2c, CAR=/,/
DEC MVS:108, HEXA MVS:6C, DEC UNIX:037, HEXA UNIX:25, CAR=/%/
DEC MVS:109, HEXA MVS:6D, DEC UNIX:095, HEXA UNIX:5f, CAR=/_/
DEC MVS:110, HEXA MVS:6E, DEC UNIX:062, HEXA UNIX:3e, CAR=/>/
DEC MVS:111, HEXA MVS:6F, DEC UNIX:063, HEXA UNIX:3f, CAR=/?/
DEC MVS:112, HEXA MVS:70, DEC UNIX:248, HEXA UNIX:f8, CAR=/ø/
DEC MVS:113, HEXA MVS:71, DEC UNIX:201, HEXA UNIX:c9, CAR=/É/
DEC MVS:114, HEXA MVS:72, DEC UNIX:202, HEXA UNIX:ca, CAR=/Ê/
DEC MVS:115, HEXA MVS:73, DEC UNIX:203, HEXA UNIX:cb, CAR=/Ë/
DEC MVS:116, HEXA MVS:74, DEC UNIX:200, HEXA UNIX:c8, CAR=/È/
DEC MVS:117, HEXA MVS:75, DEC UNIX:205, HEXA UNIX:cd, CAR=/Í/
DEC MVS:118, HEXA MVS:76, DEC UNIX:206, HEXA UNIX:ce, CAR=/Î/
DEC MVS:119, HEXA MVS:77, DEC UNIX:207, HEXA UNIX:cf, CAR=/Ï/
DEC MVS:120, HEXA MVS:78, DEC UNIX:204, HEXA UNIX:cc, CAR=/Ì/
DEC MVS:121, HEXA MVS:79, DEC UNIX:096, HEXA UNIX:60, CAR=/`/
DEC MVS:122, HEXA MVS:7A, DEC UNIX:058, HEXA UNIX:3a, CAR=/:/
DEC MVS:123, HEXA MVS:7B, DEC UNIX:035, HEXA UNIX:23, CAR=/#/
DEC MVS:124, HEXA MVS:7C, DEC UNIX:064, HEXA UNIX:40, CAR=/@/
DEC MVS:125, HEXA MVS:7D, DEC UNIX:039, HEXA UNIX:27, CAR=/'/
DEC MVS:126, HEXA MVS:7E, DEC UNIX:061, HEXA UNIX:3d, CAR=/=/
DEC MVS:127, HEXA MVS:7F, DEC UNIX:034, HEXA UNIX:22, CAR=/"/
DEC MVS:128, HEXA MVS:80, DEC UNIX:216, HEXA UNIX:d8, CAR=/Ø/
DEC MVS:129, HEXA MVS:81, DEC UNIX:097, HEXA UNIX:61, CAR=/a/
DEC MVS:130, HEXA MVS:82, DEC UNIX:098, HEXA UNIX:62, CAR=/b/
DEC MVS:131, HEXA MVS:83, DEC UNIX:099, HEXA UNIX:63, CAR=/c/
DEC MVS:132, HEXA MVS:84, DEC UNIX:100, HEXA UNIX:64, CAR=/d/
DEC MVS:133, HEXA MVS:85, DEC UNIX:101, HEXA UNIX:65, CAR=/e/
DEC MVS:134, HEXA MVS:86, DEC UNIX:102, HEXA UNIX:66, CAR=/f/
DEC MVS:135, HEXA MVS:87, DEC UNIX:103, HEXA UNIX:67, CAR=/g/
DEC MVS:136, HEXA MVS:88, DEC UNIX:104, HEXA UNIX:68, CAR=/h/
DEC MVS:137, HEXA MVS:89, DEC UNIX:105, HEXA UNIX:69, CAR=/i/
DEC MVS:138, HEXA MVS:8A, DEC UNIX:171, HEXA UNIX:ab, CAR=/"/
DEC MVS:139, HEXA MVS:8B, DEC UNIX:187, HEXA UNIX:bb, CAR=/"/
DEC MVS:140, HEXA MVS:8C, DEC UNIX:240, HEXA UNIX:f0, CAR=/ð/
DEC MVS:141, HEXA MVS:8D, DEC UNIX:253, HEXA UNIX:fd, CAR=/ý/
DEC MVS:142, HEXA MVS:8E, DEC UNIX:254, HEXA UNIX:fe, CAR=/þ/
DEC MVS:143, HEXA MVS:8F, DEC UNIX:177, HEXA UNIX:b1, CAR=/±/
DEC MVS:144, HEXA MVS:90, DEC UNIX:176, HEXA UNIX:b0, CAR=/°/
DEC MVS:145, HEXA MVS:91, DEC UNIX:106, HEXA UNIX:6a, CAR=/j/
DEC MVS:146, HEXA MVS:92, DEC UNIX:107, HEXA UNIX:6b, CAR=/k/
DEC MVS:147, HEXA MVS:93, DEC UNIX:108, HEXA UNIX:6c, CAR=/l/
DEC MVS:148, HEXA MVS:94, DEC UNIX:109, HEXA UNIX:6d, CAR=/m/
DEC MVS:149, HEXA MVS:95, DEC UNIX:110, HEXA UNIX:6e, CAR=/n/
DEC MVS:150, HEXA MVS:96, DEC UNIX:111, HEXA UNIX:6f, CAR=/o/
DEC MVS:151, HEXA MVS:97, DEC UNIX:112, HEXA UNIX:70, CAR=/p/
DEC MVS:152, HEXA MVS:98, DEC UNIX:113, HEXA UNIX:71, CAR=/q/
DEC MVS:153, HEXA MVS:99, DEC UNIX:114, HEXA UNIX:72, CAR=/r/
DEC MVS:154, HEXA MVS:9A, DEC UNIX:170, HEXA UNIX:aa, CAR=/ª/
DEC MVS:155, HEXA MVS:9B, DEC UNIX:186, HEXA UNIX:ba, CAR=/º/
DEC MVS:156, HEXA MVS:9C, DEC UNIX:230, HEXA UNIX:e6, CAR=/æ/
DEC MVS:157, HEXA MVS:9D, DEC UNIX:184, HEXA UNIX:b8, CAR=/¸/
DEC MVS:158, HEXA MVS:9E, DEC UNIX:198, HEXA UNIX:c6, CAR=/Æ/
DEC MVS:159, HEXA MVS:9F, DEC UNIX:164, HEXA UNIX:a4, CAR=/¤/
DEC MVS:160, HEXA MVS:A0, DEC UNIX:181, HEXA UNIX:b5, CAR=/µ/
DEC MVS:161, HEXA MVS:A1, DEC UNIX:126, HEXA UNIX:7e, CAR=/~/
DEC MVS:162, HEXA MVS:A2, DEC UNIX:115, HEXA UNIX:73, CAR=/s/
DEC MVS:163, HEXA MVS:A3, DEC UNIX:116, HEXA UNIX:74, CAR=/t/
DEC MVS:164, HEXA MVS:A4, DEC UNIX:117, HEXA UNIX:75, CAR=/u/
DEC MVS:165, HEXA MVS:A5, DEC UNIX:118, HEXA UNIX:76, CAR=/v/
DEC MVS:166, HEXA MVS:A6, DEC UNIX:119, HEXA UNIX:77, CAR=/w/
DEC MVS:167, HEXA MVS:A7, DEC UNIX:120, HEXA UNIX:78, CAR=/x/
DEC MVS:168, HEXA MVS:A8, DEC UNIX:121, HEXA UNIX:79, CAR=/y/
DEC MVS:169, HEXA MVS:A9, DEC UNIX:122, HEXA UNIX:7a, CAR=/z/
DEC MVS:170, HEXA MVS:AA, DEC UNIX:161, HEXA UNIX:a1, CAR=/¡/
DEC MVS:171, HEXA MVS:AB, DEC UNIX:191, HEXA UNIX:bf, CAR=/¿/
DEC MVS:172, HEXA MVS:AC, DEC UNIX:208, HEXA UNIX:d0, CAR=/Ð/
DEC MVS:173, HEXA MVS:AD, DEC UNIX:221, HEXA UNIX:dd, CAR=/Ý/
DEC MVS:174, HEXA MVS:AE, DEC UNIX:222, HEXA UNIX:de, CAR=/Þ/
DEC MVS:175, HEXA MVS:AF, DEC UNIX:174, HEXA UNIX:ae, CAR=/®/
DEC MVS:176, HEXA MVS:B0, DEC UNIX:162, HEXA UNIX:a2, CAR=/¢/
DEC MVS:177, HEXA MVS:B1, DEC UNIX:163, HEXA UNIX:a3, CAR=/£/
DEC MVS:178, HEXA MVS:B2, DEC UNIX:165, HEXA UNIX:a5, CAR=/¥/
DEC MVS:179, HEXA MVS:B3, DEC UNIX:183, HEXA UNIX:b7, CAR=/·/
DEC MVS:180, HEXA MVS:B4, DEC UNIX:169, HEXA UNIX:a9, CAR=/©/
DEC MVS:181, HEXA MVS:B5, DEC UNIX:167, HEXA UNIX:a7, CAR=/§/
DEC MVS:182, HEXA MVS:B6, DEC UNIX:182, HEXA UNIX:b6, CAR=//
DEC MVS:183, HEXA MVS:B7, DEC UNIX:188, HEXA UNIX:bc, CAR=/¼/
DEC MVS:184, HEXA MVS:B8, DEC UNIX:189, HEXA UNIX:bd, CAR=/½/
DEC MVS:185, HEXA MVS:B9, DEC UNIX:190, HEXA UNIX:be, CAR=/¾/
DEC MVS:186, HEXA MVS:BA, DEC UNIX:172, HEXA UNIX:ac, CAR=//
DEC MVS:187, HEXA MVS:BB, DEC UNIX:124, HEXA UNIX:7c, CAR=/|/
DEC MVS:188, HEXA MVS:BC, DEC UNIX:175, HEXA UNIX:af, CAR=/¯/
DEC MVS:189, HEXA MVS:BD, DEC UNIX:168, HEXA UNIX:a8, CAR=/¨/
DEC MVS:190, HEXA MVS:BE, DEC UNIX:180, HEXA UNIX:b4, CAR=/´/
DEC MVS:191, HEXA MVS:BF, DEC UNIX:215, HEXA UNIX:d7, CAR=/×/
DEC MVS:192, HEXA MVS:C0, DEC UNIX:123, HEXA UNIX:7b, CAR=/{/
DEC MVS:193, HEXA MVS:C1, DEC UNIX:065, HEXA UNIX:41, CAR=/A/
DEC MVS:194, HEXA MVS:C2, DEC UNIX:066, HEXA UNIX:42, CAR=/B/
DEC MVS:195, HEXA MVS:C3, DEC UNIX:067, HEXA UNIX:43, CAR=/C/
DEC MVS:196, HEXA MVS:C4, DEC UNIX:068, HEXA UNIX:44, CAR=/D/
DEC MVS:197, HEXA MVS:C5, DEC UNIX:069, HEXA UNIX:45, CAR=/E/
DEC MVS:198, HEXA MVS:C6, DEC UNIX:070, HEXA UNIX:46, CAR=/F/
DEC MVS:199, HEXA MVS:C7, DEC UNIX:071, HEXA UNIX:47, CAR=/G/
DEC MVS:200, HEXA MVS:C8, DEC UNIX:072, HEXA UNIX:48, CAR=/H/
DEC MVS:201, HEXA MVS:C9, DEC UNIX:073, HEXA UNIX:49, CAR=/I/
DEC MVS:202, HEXA MVS:CA, DEC UNIX:173, HEXA UNIX:ad, CAR=/­/
DEC MVS:203, HEXA MVS:CB, DEC UNIX:244, HEXA UNIX:f4, CAR=/ô/
DEC MVS:204, HEXA MVS:CC, DEC UNIX:246, HEXA UNIX:f6, CAR=/ö/
DEC MVS:205, HEXA MVS:CD, DEC UNIX:242, HEXA UNIX:f2, CAR=/ò/
DEC MVS:206, HEXA MVS:CE, DEC UNIX:243, HEXA UNIX:f3, CAR=/ó/
DEC MVS:207, HEXA MVS:CF, DEC UNIX:245, HEXA UNIX:f5, CAR=/õ/
DEC MVS:208, HEXA MVS:D0, DEC UNIX:125, HEXA UNIX:7d, CAR=/}/
DEC MVS:209, HEXA MVS:D1, DEC UNIX:074, HEXA UNIX:4a, CAR=/J/
DEC MVS:210, HEXA MVS:D2, DEC UNIX:075, HEXA UNIX:4b, CAR=/K/
DEC MVS:211, HEXA MVS:D3, DEC UNIX:076, HEXA UNIX:4c, CAR=/L/
DEC MVS:212, HEXA MVS:D4, DEC UNIX:077, HEXA UNIX:4d, CAR=/M/
DEC MVS:213, HEXA MVS:D5, DEC UNIX:078, HEXA UNIX:4e, CAR=/N/
DEC MVS:214, HEXA MVS:D6, DEC UNIX:079, HEXA UNIX:4f, CAR=/O/
DEC MVS:215, HEXA MVS:D7, DEC UNIX:080, HEXA UNIX:50, CAR=/P/
DEC MVS:216, HEXA MVS:D8, DEC UNIX:081, HEXA UNIX:51, CAR=/Q/
DEC MVS:217, HEXA MVS:D9, DEC UNIX:082, HEXA UNIX:52, CAR=/R/
DEC MVS:218, HEXA MVS:DA, DEC UNIX:185, HEXA UNIX:b9, CAR=/¹/
DEC MVS:219, HEXA MVS:DB, DEC UNIX:251, HEXA UNIX:fb, CAR=/û/
DEC MVS:220, HEXA MVS:DC, DEC UNIX:252, HEXA UNIX:fc, CAR=/ü/
DEC MVS:221, HEXA MVS:DD, DEC UNIX:249, HEXA UNIX:f9, CAR=/ù/
DEC MVS:222, HEXA MVS:DE, DEC UNIX:250, HEXA UNIX:fa, CAR=/ú/
DEC MVS:223, HEXA MVS:DF, DEC UNIX:159, HEXA UNIX:9f, CAR=/Ÿ/
DEC MVS:224, HEXA MVS:E0, DEC UNIX:092, HEXA UNIX:5c, CAR=/\/
DEC MVS:225, HEXA MVS:E1, DEC UNIX:247, HEXA UNIX:f7, CAR=/÷/
DEC MVS:226, HEXA MVS:E2, DEC UNIX:083, HEXA UNIX:53, CAR=/S/
DEC MVS:227, HEXA MVS:E3, DEC UNIX:084, HEXA UNIX:54, CAR=/T/
DEC MVS:228, HEXA MVS:E4, DEC UNIX:085, HEXA UNIX:55, CAR=/U/
DEC MVS:229, HEXA MVS:E5, DEC UNIX:086, HEXA UNIX:56, CAR=/V/
DEC MVS:230, HEXA MVS:E6, DEC UNIX:087, HEXA UNIX:57, CAR=/W/
DEC MVS:231, HEXA MVS:E7, DEC UNIX:088, HEXA UNIX:58, CAR=/X/
DEC MVS:232, HEXA MVS:E8, DEC UNIX:089, HEXA UNIX:59, CAR=/Y/
DEC MVS:233, HEXA MVS:E9, DEC UNIX:090, HEXA UNIX:5a, CAR=/Z/
DEC MVS:234, HEXA MVS:EA, DEC UNIX:178, HEXA UNIX:b2, CAR=/²/
DEC MVS:235, HEXA MVS:EB, DEC UNIX:212, HEXA UNIX:d4, CAR=/Ô/
DEC MVS:236, HEXA MVS:EC, DEC UNIX:214, HEXA UNIX:d6, CAR=/Ö/
DEC MVS:237, HEXA MVS:ED, DEC UNIX:210, HEXA UNIX:d2, CAR=/Ò/
DEC MVS:238, HEXA MVS:EE, DEC UNIX:211, HEXA UNIX:d3, CAR=/Ó/
DEC MVS:239, HEXA MVS:EF, DEC UNIX:213, HEXA UNIX:d5, CAR=/Õ/
DEC MVS:240, HEXA MVS:F0, DEC UNIX:048, HEXA UNIX:30, CAR=/0/
DEC MVS:241, HEXA MVS:F1, DEC UNIX:049, HEXA UNIX:31, CAR=/1/
DEC MVS:242, HEXA MVS:F2, DEC UNIX:050, HEXA UNIX:32, CAR=/2/
DEC MVS:243, HEXA MVS:F3, DEC UNIX:051, HEXA UNIX:33, CAR=/3/
DEC MVS:244, HEXA MVS:F4, DEC UNIX:052, HEXA UNIX:34, CAR=/4/
DEC MVS:245, HEXA MVS:F5, DEC UNIX:053, HEXA UNIX:35, CAR=/5/
DEC MVS:246, HEXA MVS:F6, DEC UNIX:054, HEXA UNIX:36, CAR=/6/
DEC MVS:247, HEXA MVS:F7, DEC UNIX:055, HEXA UNIX:37, CAR=/7/
DEC MVS:248, HEXA MVS:F8, DEC UNIX:056, HEXA UNIX:38, CAR=/8/
DEC MVS:249, HEXA MVS:F9, DEC UNIX:057, HEXA UNIX:39, CAR=/9/
DEC MVS:250, HEXA MVS:FA, DEC UNIX:179, HEXA UNIX:b3, CAR=/³/
DEC MVS:251, HEXA MVS:FB, DEC UNIX:219, HEXA UNIX:db, CAR=/Û/
DEC MVS:252, HEXA MVS:FC, DEC UNIX:220, HEXA UNIX:dc, CAR=/Ü/
DEC MVS:253, HEXA MVS:FD, DEC UNIX:217, HEXA UNIX:d9, CAR=/Ù/
DEC MVS:254, HEXA MVS:FE, DEC UNIX:218, HEXA UNIX:da, CAR=/Ú/
DEC MVS:255, HEXA MVS:FF, DEC UNIX:255, HEXA UNIX:ff, CAR=/ÿ/
 
Validating and Adapting the Transcoding Copy File
Validation
To validate the transcodage of EBCDIC characters to ASCII, compare the lines displayed on the z/OS monitor with the lines displayed on the UNIX/Linux monitor.
Listing 2‑5 Examples of Different Displays Under ZOS and UNIX:
ZOSDEC MVS:192, HEXA MVS:C0, CAR=/{/
UNIXDEC MVS:192, HEXA MVS:C0, DEC UNIX:123, HEXA UNIX:7b, CAR=/{/

ZOSDEC MVS:193, HEXA MVS:C1, CAR=/A/
UNIXDEC MVS:193, HEXA MVS:C1, DEC UNIX:065, HEXA UNIX:41, CAR=/A/
ZOSDEC MVS:090, HEXA MVS:5A, CAR=/]/
UNIXDEC MVS:090, HEXA MVS:5A, DEC UNIX:093, HEXA UNIX:5d, CAR=/]/
 
Adapting the COBOL CONVERTMW.cpy Copy File
Adaptations are required when the graphical characters displayed on the UNIX reference monitor are different from the characters displayed on the z/OS reference monitor.
An adaptation consists in modifying the hexadecimal value stored in the TRANSCODE-CIBLE variable of the COBOL CONVERTMW.cpy copy file.
Finding the z/OS Character
Look for the original hexadecimal value in the TRANSCODE-SOURCE section by reading the characters in pairs.
The same value may appear to be present several times it is important to read the hexadecimal values in pairs.
Using a hypothetical example, where under z/OS the source hexadecimal character EA is not "² " but "# ".
The two monitors indicate
ZOS DEC MVS:234, HEXA MVS:EA, CAR=/#/
UNIX DEC MVS:234, HEXA MVS:EA, DEC UNIX:178, HEXA UNIX:b2, CAR=/²/
Figure 2‑5 Looking for z/OS Character Part 1
The string "ea" can be found on the sixth and eighth lines. Which string should be chosen?
The "ea " string on the sixth line corresponds to the intersection of two strings "ae " and "af ", whereas the "ea " string found on the eight line is the one we are looking for. It starts in the 21st position of the eighth line, so is the 11th hexadecimal value on the line (a hexadecimal value being composed of two characters).
Figure 2‑6 Looking for z/OS Character Part 2
Finding the UNIX Characters to Replace
Once the hexadecimal value has been found in the z/OS file, it is easy to retrieve the value of the variable TRANSCODE-CIBLE that is situated in the same location (8th line, 21st character) of TRANSCODE-SOURCE. Using the show_convertmw.sh script we can see that the hexadecimal value in the TRANSCODE-CIBLE is "b2".
Replacing the UNIX Character
The value “b2” should be modified to the hexadecimal equivalent of “ #”. The hexadecimal value is “23”, as indicated by the file produced by running show_convertmw.sh:
DEC MVS:123, HEXA MVS:7B, DEC UNIX:035, HEXA UNIX:23, CAR=/#/
Remarks Concerning the Example
Special Characters
Special characters such as:
should keep the same decimal value between the source and target platforms to preserve the iso-functional behavior of COBOL between the different platforms.
Using the COBOL CONVERTMW.cpy File
This copy file is used by the COBOL reloading programs generated by Tuxedo ART Workbench file and database migration tools. The copy file is installed during the installation of Tuxedo ART Workbench.
Check the directories indicated in the UNIX variable:
COBCPY
used by the COBOL compiler.
Error Messages
DATART-1001:
Example: COPY file $convertmwCopyFile not found. Check argument 1.
Explanation: Argument 1 must contain the COBOL copy file name.
DATART-1002:
Example: can not access to directory $TMPPROJECT: $TMPPROJECT.
Explanation: UNIX Variable TMPPROJECT must be set.
DATART-1003:
Example: bad status returned by awk.
Explanation: Check previous messages.
See Also
File Convertor Reloading the Data.

Copyright © 1994, 2017, Oracle and/or its affiliates. All rights reserved.