IMO R3 should be set to a length that reflects the end of the storage containing the string. Setting the length to 2 GB-1 is sloppy programming.
-- Tom Marchant On Thu, 27 Apr 2023 14:09:17 -0700, Michael Stein <m...@zlvfc.com> wrote: >On Thu, Apr 27, 2023 at 07:54:56PM +0000, Seymour J Metz wrote: >> R1 is the table address; only 256 bytees need to be addressable. R2 >> is the string address, and you need write access to everything up until >> the delimiter ('00'x in this case.) > >No! You need write access for at least 4K from the start of the string even >if that's past the x'00'. > >From z/Architecture Priciples of Operation for the TRE instruction: > > Access exceptions for the portion of the first operand to the right > of the last byte processed may or may not be recognized. For an > operand longer than 4K bytes, access exceptions are not recognized > for locations more than 4K bytes beyond the last byte processed. > >His operand is 7fffffff long so it's longer than 4K so the at a minimum >he needs write access to the 4K where the string starts and the >next 4K too since the string doesn't start on a 4K boundary. > >That's probably why his 0C4 only happens sometimes -- it depends >on the status/protect key of the next 4K block. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN