DFSORT (IBM Mainframe sorting program)
OPTION COPY
INREC BUILD=(1,80,TRAN=ALTSEQ)
No SORT control statement can start in column one.
For the above to work on its own, you'd have to change the default installation alternate translation table, to offset all values for upper- and lower-case letters, wrapping around the final two letters.
Without changing the default table, it would require an ALTSEQ statement listing all the required pairs of hex values (from-hex-code immediately followed by to-hex-code, each pair of hex values separated by a comma):
OPTION COPY
INREC BUILD=(1,80,TRAN=ALTSEQ)
ALTSEQ CODE=(xxyy,...)
So to get upper-case EBCDIC A to C and B to D:
ALTSEQ CODE=(C1C3,C2C4)
For the whole thing, that would be a lot of error-prone typing, of course, so you'd use another SORT step to generate the control cards for this step, and let SORT read them from the dataset created by that new step.
Of course, for any language which supports a "translation table", it is as easy as changing the translation table. Nice COBOL program, with a specific Codepage, and it could be done in one line of COBOL procedure code (plus the obligatory lines of COBOL that go with everything... not so many in this particular case).
Oh, the 1,80 is the "card image" which will contain the text. Probably all in upper-case on the first run...
x=z, y=a, z=b
? \$\endgroup\$a=c
isa -> c
. \$\endgroup\$