EBCDIC user table incorporation example

This section explains how to create a user table that converts uppercase alphabetic characters into lowercase alphabetic characters.

 

Based on the Figure 3.1 Table for Conversion from EBCDIC Alphanumeric and Katakana Characters to ASCII, create a table that converts uppercase alphabetic characters into lowercase alphabetic characters. The Table in Figure 3.1 converts '0xC1' (hexadecimal number) into '0x41' (hexadecimal number). This means 'A' is converted into 'A.'

To convert uppercase alphabetic character 'A' into lowercase alphabetic character 'a,' modify the table so that '0xC1' (hexadecimal number) is converted into '0x61' (hexadecimal number). Figure 3.2 shows an example of a conversion table that is created based on the code conversion table shown in Table 3.12 .

Table 3.12 Code Conversion Table

EBCDIC

Hexadecimal Number

ASCII

Hexadecimal Number

A

0xC1

a

0x61

B

0xC2

b

0x62

C

0xC3

c

0x63

D

0xC4

d

0x64

E

0xC5

e

0x65

F

0xC6

f

0x66

G

0xC7

g

0x67

H

0xC8

h

0x68

I

0xC9

i

0x69

J

0xD1

j

0x6A

K

0xD2

k

0x6B

L

0xD3

l

0x6C

M

0xD4

m

0x6D

N

0xD5

n

0x6E

O

0xD6

o

0x6F

P

0xD7

p

0x70

Q

0xD8

q

0x71

R

0xD9

r

0x72

S

0xE2

s

0x73

T

0xE3

t

0x74

U

0xE4

u

0x75

V

0xE5

v

0x76

W

0xE6

w

0x77

X

0xE7

x

0x78

Y

0xE8

y

0x79

Z

0xE9

z

0x7A

0F 0.  1. 2. 3. 4. 5. 6. 7. 8. 9. A. B. C. D. E. F.
 X'20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D'   0 
 X'2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D'   1 
 X'2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D'   2 
 X'2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D'   3 
 X'20 A1 A2 A3 A4 A5 A6 A7 A8 A9 2D 2E 3C 28 2B 7C'   4 
 X'26 AA AB AC AD AE AF 2D B0 2D 21 5C 2A 29 3B 2D'   5 
 X'2D 2F 2D 2D 2D 2D 2D 2D 2D 2D 7C 2C 25 5F 3E 3F'   6 
 X'2D 2D 2D 2D 2D 2D 2D 2D 2D 60 3A 23 40 27 3D 22'   7 
 X'2D B1 B2 B3 B4 B5 B6 B7 B8 B9 BA 2D BB BC BD BE'   8 
 X'BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 2D 2D CA CB CC'   9 
 X'2D 7E CD CE CF D0 D1 D2 D3 D4 D5 2D D6 D7 D8 D9'   A 
 X'2D 2D 2D 2D 2D 2D 2D 2D 2D 2D DA DB DC DD DE DF'   B 
 X'7B 61 62 63 64 65 66 67 68 69 2D 2D 2D 2D 2D 2D'   C 
 X'7D 6A 6B 6C 6D 6E 6F 70 71 72 2D 2D 2D 2D 2D 2D'   D 
 X'24 2D 73 74 75 76 77 78 79 7A 2D 2D 2D 2D 2D 2D'   E 
 X'30 31 32 33 34 35 36 37 38 39 2D 2D 2D 2D 2D 2D'   F

Figure 3.2 User Table Created Based on Code Conversion Table

 

Example of JCL

The examples of JCL below show the JCL for creating the following user tables as user table 1:

  • User table to convert from EBCDIC to ASCII (Shift-JIS)

  • User table to convert from ASCII (EUC-JP) to EBCDIC

The value in the line immediately before the user table is the user table availability flag. The default value is '00' (Do not use). When you create a user table, set it to 'FF' (Use).

[Example of JCL 1]

The example of JCL below shows the JCL for creating a user table to convert from EBCDIC to ASCII (Shift-JIS). In this example, the user table availability flag is the value 'FF' in the line 'REP 0700.'

//XREBCASC  JOB  CLASS=A,MSGCLASS=B                                             
//ZAP       EXEC PGM=IMASPZAP                                                   
//SYSPRINT  DD   SYSOUT=*                                                       
//SYSLIB    DD   DSN=HULFT.LOAD,DISP=SHR                                        
//SYSIN     DD   *                                                              
NAME  XREBCAS2 XREBCASC                                                         
REP  0700 FF                                                                    
REP  0704 202D2D2D2D2D2D2D2D2D2D2D2D2D2D2D                                      
REP  0714 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D                                      
REP  0724 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D                                      
REP  0734 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D                                      
REP  0744 20A1A2A3A4A5A6A7A8A92D2E3C282B7C                                      
REP  0754 26AAABACADAEAF2DB02D215C2A293B2D                                      
REP  0764 2D2F2D2D2D2D2D2D2D2D7C2C255F3E3F                                      
REP  0774 2D2D2D2D2D2D2D2D2D603A2340273D22                                      
REP  0784 2DB1B2B3B4B5B6B7B8B9BA2DBBBCBDBE                                      
REP  0794 BFC0C1C2C3C4C5C6C7C8C92D2DCACBCC                                      
REP  07A4 187ECDCECFD0D1D2D3D4D52DD6D7D8D9                                      
REP  07B4 2D2D2D2D2D2D2D2D2D2DDADBDCDDDEDF                                      
REP  07C4 7B6162636465666768692D2D2D2D2D2D                                      
REP  07D4 7D6A6B6C6D6E6F7071722D2D2D2D2D2D                                      
REP  07E4 242D737475767778797A2D2D2D2D2D2D                                      
REP  07F4 303132333435363738392D2D2D2D2D2D                                      
REP  0804 00                                                                    
REP  0808 00000000000000000000000000000000                                      
REP  0818 00000000000000000000000000000000                                      
REP  0828 00000000000000000000000000000000                                      
REP  0838 00000000000000000000000000000000                                      
REP  0848 00000000000000000000000000000000                                      
REP  0858 00000000000000000000000000000000                                      
REP  0868 00000000000000000000000000000000                                      
REP  0878 00000000000000000000000000000000                                      
REP  0888 00000000000000000000000000000000                                      
REP  0898 00000000000000000000000000000000                                      
REP  08A8 00000000000000000000000000000000                                      
REP  08B8 00000000000000000000000000000000                                      
REP  08C8 00000000000000000000000000000000                                      
REP  08D8 00000000000000000000000000000000                                      
REP  08E8 00000000000000000000000000000000                                      
REP  08F8 00000000000000000000000000000000                                      
REP  0908 00                                                                    
REP  090C 00000000000000000000000000000000                                      
REP  091C 00000000000000000000000000000000                                      
REP  092C 00000000000000000000000000000000                                      
REP  093C 00000000000000000000000000000000                                      
REP  094C 00000000000000000000000000000000                                      
REP  095C 00000000000000000000000000000000                                      
REP  096C 00000000000000000000000000000000                                      
REP  097C 00000000000000000000000000000000                                      
REP  098C 00000000000000000000000000000000                                      
REP  099C 00000000000000000000000000000000                                      
REP  09AC 00000000000000000000000000000000                                      
REP  09BC 00000000000000000000000000000000                                      
REP  09CC 00000000000000000000000000000000                                      
REP  09DC 00000000000000000000000000000000                                      
REP  09EC 00000000000000000000000000000000                                      
REP  09FC 00000000000000000000000000000000                                      
/*                                                                              
//                                                                              

DD Name

Value

Description

SYSLIB

HULFT.LOAD

HULFT load module library

[Example of JCL 2]

The example of JCL below shows the JCL for creating a user table to converts from ASCII (EUC-JP) to EBCDIC. In this example, the user table availability flag is the value 'FF' in the line 'REP 0700.'

//XREUCEBC  JOB  CLASS=A,MSGCLASS=B                                             
//ZAP       EXEC PGM=IMASPZAP                                                   
//SYSPRINT  DD   SYSOUT=*                                                       
//SYSLIB    DD   DSN=HULFT.LOAD,DISP=SHR                                        
//SYSIN     DD   *                                                              
NAME  XREUCEB2 XRASCTB2                                                         
REP  0700 FF                                                                    
REP  0704 000102030405060708090A0B0C0D0E0F                                      
REP  0714 101112131415161718191A1B1C1D1E1F                                      
REP  0724 202122232425262728292A2B2C2D2E2F                                      
REP  0734 303132333435363738393A3B3C3D3E3F                                      
REP  0744 404142434445464748494A4B4C4D4E4F                                      
REP  0754 505152535455565758595A5B5C5D5E5F                                      
REP  0764 606162636465666768696A6B6C6D6E6F                                      
REP  0774 707172737475767778797A7B7C7D7E7F                                      
REP  0784 808182838485868788898A8B8C8D8E8F                                      
REP  0794 909192939495969798999A9B9C9D9E9F                                      
REP  07A4 A0A1A2A3A4A5A6A7A8A9AAABACADAEAF                                      
REP  07B4 B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF                                      
REP  07C4 C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF                                      
REP  07D4 D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF                                      
REP  07E4 E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF                                      
REP  07F4 F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF                                      
REP  0804 00                                                                    
REP  0808 00000000000000000000000000000000                                      
REP  0818 00000000000000000000000000000000                                      
REP  0828 00000000000000000000000000000000                                      
REP  0838 00000000000000000000000000000000                                      
REP  0848 00000000000000000000000000000000                                      
REP  0858 00000000000000000000000000000000                                      
REP  0868 00000000000000000000000000000000                                      
REP  0878 00000000000000000000000000000000                                      
REP  0888 00000000000000000000000000000000                                      
REP  0898 00000000000000000000000000000000                                      
REP  08A8 00000000000000000000000000000000                                      
REP  08B8 00000000000000000000000000000000                                      
REP  08C8 00000000000000000000000000000000                                      
REP  08D8 00000000000000000000000000000000                                      
REP  08E8 00000000000000000000000000000000                                      
REP  08F8 00000000000000000000000000000000                                      
REP  0908 00                                                                    
REP  090C 00000000000000000000000000000000                                      
REP  091C 00000000000000000000000000000000                                      
REP  092C 00000000000000000000000000000000                                      
REP  093C 00000000000000000000000000000000                                      
REP  094C 00000000000000000000000000000000                                      
REP  095C 00000000000000000000000000000000                                      
REP  096C 00000000000000000000000000000000                                      
REP  097C 00000000000000000000000000000000                                      
REP  098C 00000000000000000000000000000000                                      
REP  099C 00000000000000000000000000000000                                      
REP  09AC 00000000000000000000000000000000                                      
REP  09BC 00000000000000000000000000000000                                      
REP  09CC 00000000000000000000000000000000                                      
REP  09DC 00000000000000000000000000000000                                      
REP  09EC 00000000000000000000000000000000                                      
REP  09FC 00000000000000000000000000000000                                      
/*                                                                              
//                                                                              

DD Name

Value

Description

SYSLIB

HULFT.LOAD

HULFT load module library