Not quite. Using array + total length in the odd register would give you an 
extra iteration with garbage. Normal practice is to point it at the last entry, 
but since the entries are variable length, just cut it back by 1 and all will 
be cool.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר

________________________________________
From: IBM Mainframe Assembler List <[email protected]> on behalf 
of [email protected] <[email protected]>
Sent: Wednesday, May 29, 2024 6:43 PM
To: [email protected]
Subject: Re: BXLE usage assistance

The BXLE will work in this case, it is clearly explained in the Principles of 
Operation manual.

End the loop with BXLE R1,R3,LOOP
R3 must be an even register, then R3 shall hold the increment and R3+1 the 
compare value.
Before the LOOP set R3+1 = array + total length, and R1 = start of first entry 
(the length field).
Before the end of LOOP set R3 = the entry length
The BXLE will then update R1 with the entry length and point to the next entry, 
and branch back to LOOP.
It will fall thru when the content of R1 reaches the content of R3+1.

Gunnar


-----Original Message-----
From: IBM Mainframe Assembler List <[email protected]> On Behalf 
Of Mark
Sent: Wednesday, May 29, 2024 9:03 PM
To: [email protected]
Subject: BXLE usage assistance

Hello,

I'm writing an exit where I have to scan through an array of variable length 
entries in a table where the format is as below (all the entires are readable 
characters)

First 2 bytes = total length of array in hex then
2 bytes for length of first entry in hex First Entry in table
2 bytes for length of 2nd entry in hex
2nd entry in table
2 bytes for length of 3rd entry in hex
3rd entry in table.
repeats until end of array.

I'm thinking a BXLE will work, but getting stuck on exactly how to code it.  
any help is greatly appriciated.

Thanks,
Mark.
.

Reply via email to