On 10/19/2011 6:38 PM, Roberts, John J wrote:
I just ran a test using my z/OS 1.11 system and it worked.

And a stopped clock is correct twice a day.....

If I had a dollar for every problem in your little code segment, I could buy something nice at Starbucks.

1. There is no check to handle a deleted entry.

2. The code should save the caller's AMODE (e.g., BSM 14,0 / STM 14,12,12(13) at start; BSM 0,14 at end) and switch to AMODE 31, as pointed out by Shmuel. Having AMODE and RMODE statements in your assembly indicates a preference, but is not enforced at execution time.

3. The code is inefficient. There are unused registers, but it accesses TIOELNGH twice. It would be simpler to do an ICM at the top of the loop, branch out of the loop on zero, and at the end of the loop, just add that register to 14.

4. Your RX instructions use index registers rather than base registers [e.g., L 2,0(1) instead of L 2,0(,1)]. That may cause problems when called by a program that uses access registers. And if you don't need to update the access register, the code is easier to maintain if that's shown explicitly [LA 15,54(15,0)]

5. And as I mentioned originally, you must either treat the JFCB address as an SVA (preferred), or test whether it's an address. While SVAs are odd, IBM has made no commitment to that effect, so using SWAREQ is the preferred approach.

Gerhard Postpischil
Bradford, VT

----------------------------------------------------------------------
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

Reply via email to