I would like to implement the expand procedure of the macro CSRCESRV in another programming language (in my case Java).
Unfortunately, the exact compression algorithm that CSRCESRV uses is nowhere documented. I understand that CSRCESRV uses some run-length encoding, but I have not yet been successful in reversing (expanding) a string compressed with CSRCESRV. I am especially surprised by the presence of numerous ASCII control bytes (0x00-0x1F, 0x7F) in the compressed string, which I am confident (not 100% sure) are not part of the original uncompressed string.
Does anyone know the exact algorithm that CSRCESRV uses to compress/expand strings?
References:
- https://www.ibm.com/docs/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.ieaa700/macro.htm
- https://www.ibm.com/docs/en/zos/3.1.0?topic=services-provided-by-csrcesrv