McKown, John wrote:
I don't think you have a choice, in the general case. That is because
all the new TRxx type instructions seem to terminate when the data in
your buffer equals to the contents of the low order byte general
register 0. I.e. they stop at an "end of buffer" type character, like a
<null> in a C string. If you can tolerate this behaviour, then I'd look
at the TRE or TROO instruction. The TRE seems easier to use, to me.
The following fragment should work if you prefer looping TRE over
traditional TR. TRE requires you to manually translate the so-called
"stop" character with an MVC. But, at least there's no EXecute for the
final segment.
LM R14,R15,xxxxxx Load string ptr and its length
LA R1,xxxxxx Ptr to translation table
XR R0,R0 Set stop char = x'00'
DO INF Do for translate
TRE R14,R1 Translate the string
DOEXIT Z Exit if no more data
IF O If iterate needed
ITERATE , Process another segment
ENDIF , EndIf
MVC 0(1,R14),0(R1) Translate x'00' to whatever
LA R14,1(,R14) Advance past stop character
AHI R15,-1 Decrement length remaining
DOEXIT NP Exit if no more data
ENDDO , EndDo for translate
--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html