Yes, EX is used to put varying lengths into instructions.
And if you are doing 4 or 8 groups of 8 nibbles and a blank into a
print line of 80 or 132,
do the unpacks then translate the bytes then move the blanks.
On Tue, Jul 28, 2020 at 4:00 AM Giuseppe Vitillaro
<giuseppe@...> wrote:
On Mon, 27 Jul 2020, Mike Schwab wrote:
Well, do it as two passes.
Use the maximum length of the UNPK instruction then the left over part.
Then do the translate which has a 256 byte limit.
Yep, I had some thought about this way, which actually seems
the faster way to go for "long streams" (which it is actually my case
as I'm coding a PL/I-F small program to hex dump datasets, please
I know IDCAMS may do the job under MVS3.8j, but it is a PL/I exercise
from one side and I like to get UNIX like HEX/EBCDIC dump, identical
to the output of "xxd -E" under UNIX).
But in this case the remainder should have a variable size between
1 and 125 (maximum should be 126 bytes, 252 hex digits, executing
a single UNPK/TR couple).
So, it can't be coded using one routine for each value of the remainder,
too long and a nightmare to modify, but it requires, I guess, to write
the UNPK/TR instructions LL fields, at runtime, executing them only
after their LL fields are correctly defined for current value
of the remainder.
Which directly lead to the "EX" instruction, if I got the correct
picture, an "EX" for UNPK and an "EX" for TR.
Am I on the right side of the "force"? ;-) Or there are better ways?
Peppe.
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?