Is UPRX a full 256 bytes?

________________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of 
Robin Atwood <[email protected]>
Sent: Thursday, April 27, 2023 8:58 AM
To: [email protected]
Subject: Inexplicable 0C4!

I have had two of these during the course of two months, so it's getting
serious!

The abend happens in my implementation of a C strupr() function when the TRE
instruction is executed:



         L       R3,=X'7FFFFFFF'    string maximum length

         XR    R0,R0              zero terminator byte

         LA     R1,UPRX            translate table

TST  TRE   R2,R1              fold string

         BC     1,TST            resume translation



           R0              R1             R2              R3
PSW

00000000 0009C5EC 1AA748F8 7FFFFFFF  078D04008009BD14



The memory pointed to by R1 and R2 is addressable and in Sp0, key 8, so bog
standard. I know R3

looks dodgy, but that is because the string to be upper-cased must be zero
byte terminated.

R2 points at X'D4C6C9E3E2E3404000', so the format is correct. Given all
this, why has the instruction caused an

abend? The code lives in a server that is running all day, every day. I
wondered if the target data had been

released by another task, but VSMDATA showed a DQE for the data's page and
no FQE for the data itself,

so the data should still be available (as I understand it). Notice R3 hasn't
changed, so the abend happened

on the very first byte.



Any suggestions gratefully received!

Robin








----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to