首页 > 解决方案 > 大型机迁移到 USS/Github

问题描述

我们正在尝试将程序(不是文件)从大型机迁移到 USS,然后最终迁移到 Github。

我们有一个程序在迁移过程中出现问题。这些程序包含十六进制字符,并且在从 Mainframe PDS 到 Unix 的传输过程中被重新格式化。有没有我可以插入的命令,以便 Unix 在从 MF PDS 传输期间不会重新格式化这些值?

编辑:程序包含 EBCDIC 字符 x'15'(换行符)和 x'0D'(回车),当文件从 z/OS 传输到 USS 时,它会在文件中引入空格 x'40'。这些填充的 x'40's 将其余字符推入下一行。

  1. 我正在使用以下命令从大型机传输到 Unix。此命令由批处理代理在大型机内触发。
cp -U -S a=.CPY  -T -O c=IBM-1047  "//'Insert PDS Here'" /data/Github
  1. 有问题的 2 代码片段在下面有一个十六进制值,十六进制值从 00 - 0F 和 10 - 1F 开始
444444444444444444444444444444444444470000000000000000744444444444
0000000000000000000000000000000000000D0123456789ABCDEFDB0000000000

444444444444444444444444444444444444471111111111111111744444444444
0000000000000000000000000000000000000D0123456789ABCDEFDB0000000000

  1. 在 iDZ 中查看时,Unix 用新行重新格式化

重新格式化的线路

1

标签: migrationhexmainframe

解决方案


在过去,在 1985 年标准之前,COBOL 不允许使用十六进制文字。那时,在需要时,程序员会将十六进制值直接输入到编辑器中。一些程序员没有得到备忘录,继续这样做。除了旧方式之外,任何受支持的大型机 COBOL 编译器现在都允许使用十六进制文字。

我建议修改有问题的 COBOL 程序源代码行以阅读

       05  FILLER PIC X(16) 
           VALUE X'000102030405060708090A0B0C0D0E0F'.

推荐阅读