Page 1 of 1

Cobol Code Migration to USS

PostPosted: Tue Sep 15, 2020 12:10 pm
by UnixNoob
We are trying to migrate Programs (Not Files) from Mainframe to USS, then ultimately to Github.

We have a Program that is having an issue during the migration. These program(s) contains hex character(s) and is being reformatted during the transfer from Mainframe PDS to Unix. is there a command i can insert so that Unix will not reformat the values during transfer from MF to PDS?

Program contains EBCDIC characters x'15' (newline) and x'0D' (carriage return) which introduces spaces x'40' to the file as it is transported from z/OS to USS. These padded x'40's pushes the rest of characters into the next line.

1. I am using the below command to transfer from Mainframe to Unix. This command is triggerred inside the Mainframe by a Batch Agent.
cp -U -S a=.CPY  -T -O c=IBM-1047  "//'Insert PDS Here'" /data/Github


2. The code snippet that is having an issue has a hex value below, Hex values start on 00 - 0F
hex code
444444444444444444444444444444444444470000000000000000744444444444
0000000000000000000000000000000000000D0123456789ABCDEFDB0000000000


actual code
01 AC-IN-ARRAY.
   05 FILLER                         PIC  X(16)  VALUE
                                    '                '.


3. When program is transferred to USS, reformatted as below
Actual viewable code, notice that the closing single quote has moved to the next line
      01 AC-IN-ARRAY.
          05 FILLER                         PIC  X(16)  VALUE
                                           '
  '
.


Code in Hex View, next line hex value '0E' is moved to the next line upon transfer to USS
         05 FILLER                         PIC  X(16)  VALUE
4444444444FF4CCDDCD4444444444444444444444444DCC44E4FF544ECDEC44444444444
00000000000506933590000000000000000000000000793007D16D005134500000000000
-----------------------------------------------------------------------
                                           '
444444444444444444444444444444444444444444470000000000000444444444444444
0000000000000000000000000000000000000000000D0123456789ABC000000000000000
-----------------------------------------------------------------------
  '
.
007444444444444444444444444444444444444444444444444444444444444444444444
EFDB00000000000000000000000000000000000000000000000000000000000000000000

Re: Cobol Code Migration to USS

PostPosted: Tue Sep 15, 2020 5:37 pm
by NicC
You can avoid your hex being translated by transferring as binary but then your ebcdic does not get translated. Transferring as Text allows the ebcdic to be translated to ascii but your hex values will also be translated. Neither of these is what you want so do as suggested elsewhere - change your program code to use VALUE X'blah blah'.