Cobol Code Migration to USS

Support for OS/VS COBOL, VS COBOL II, COBOL for OS/390 & VM and Enterprise COBOL for z/OS
UnixNoob
Posts: 1
Joined: Tue Sep 15, 2020 11:53 am
Skillset: Mainframe
DB2
Cobol
Referer: Internet

Cobol Code Migration to USS

Postby UnixNoob » Tue Sep 15, 2020 12:10 pm

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.

Code: Select all

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

Code: Select all

444444444444444444444444444444444444470000000000000000744444444444
0000000000000000000000000000000000000D0123456789ABCDEFDB0000000000


actual code

Code: Select all

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

Code: Select all

      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

Code: Select all

         05 FILLER                         PIC  X(16)  VALUE
4444444444FF4CCDDCD4444444444444444444444444DCC44E4FF544ECDEC44444444444
00000000000506933590000000000000000000000000793007D16D005134500000000000
-----------------------------------------------------------------------
                                           '
444444444444444444444444444444444444444444470000000000000444444444444444
0000000000000000000000000000000000000000000D0123456789ABC000000000000000
-----------------------------------------------------------------------
  '
.
007444444444444444444444444444444444444444444444444444444444444444444444
EFDB00000000000000000000000000000000000000000000000000000000000000000000

NicC
Global moderator
Posts: 3025
Joined: Sun Jul 04, 2010 12:13 am
Skillset: JCL, PL/1, Rexx, Utilities and to a lesser extent (i.e. I have programmed using them) COBOL,DB2,IMS
Referer: Google
Location: Pushing up the daisies (almost)

Re: Cobol Code Migration to USS

Postby NicC » Tue Sep 15, 2020 5:37 pm

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'.
The problem I have is that people can explain things quickly but I can only comprehend slowly.
Regards
Nic


  • Similar Topics
    Replies
    Views
    Last post