This is the same as what I had suggested.

If you put it at the end of the module, it wouldn't all need to be addressable. It could also be a separate section, addressed via adcon, no?

On November 30, 2025 8:08:51 PM Brian Westerman <[email protected]> wrote:

I'm not sure I understand how that would work.

Brian

On Sun, 30 Nov 2025 19:43:16 -0500, Steve Thompson <[email protected]> wrote:

Suppose you create an INIT variable that is the size of what you
need, have it built using all DC PL4'0' (or whatever init values
are needed) and then do an MVCL from the INIT to the working
area? Most of the overhead in that case will be in the HLASM as
opposed to the program.

Just a thought.

Regards,
Steve Thompson

On 11/30/2025 1:03 AM, Brian Westerman wrote:
Thank you!!! This is exactly what I was looking for. I had thought the limit was a single byte, but I tried this and it works perfectly. In initial testing it seems to load quite a bit faster. I'm going to add some code to compare the two (before and after) for CPU overhead. But this seems to be pretty good. It's definitely a lot less code to go through.

On Sat, 29 Nov 2025 23:30:39 -0500, Steve Smith <[email protected]> wrote:

MVC "ripple" initialization isn't limited to 1-byte.
  ZAP   P1,=P'0'
  MVC  P2(256),P1  Init P2-P65
  MVC  P66(156),P65 Init P66-P104

Check my math...  better yet use EQU and DC to do the math.

sas

On Sat, Nov 29, 2025 at 10:35 PM Brian Westerman <
[email protected]> wrote:

Hi,

I have a program in which I have 104 PL4 fields tht are used for various
counters, and when the program starts it spends a significant amount of
time initializing all of those fields to zero.

we used to use ZAP field,=PL4'0' and then I found an entry (on the web)
that said it would be "slightly" faster to use MVC, so I changed it to 104
MVC filed,=PL4'0'.

Is there not a quicker way to do this?  I know that I can ripple the first
byte of a field for up to 256 bytes with a single instruction, but can that
same type of thing be done with a 4 byte packed field?

If not, is there a quicker way to initialize these fields without doing
each one separately?

Thanks for any tips.

Brian

Reply via email to