× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



boldt@ca.ibm.com wrote:

> Mike wrote:
> >I'm trying to join the twentieth century here and replace all my MOVEs
> >with EVALs, but this one has me stuck. If I have a 9-element array  RA and
> >I want to fill the last three elements with, say, "X", I can code:
> >
> >MOVEA          *ALL('X')           RA(7)
> >
> >Is there a way I can do the same thing  using EVAL?
>
> Barbara wrote:
> >Here's another way that will probably perform somewhat better,
> >if the number of elements is very large (which it's not in
> >your case):
> >
> >D data      s             65535a    based(pData)
> >D pData     s                  *
> >C           eval    pData = %addr(RA(7))
> >C           eval    numElems = %elem(RA) - 7 + 1
> >C           eval    %subst(data : 1 : %size(RA) * numElems)
> >C                       = *ALL'X'

I don't like MOVEA for clearing specific hardcoded elements of an array,
but, forgive me Barbara, I would much rather use MOVEA than the above
because MOVEA is clearer as to what is happening.

> If you always know that you just want to set the last three
> array elements, I'd probably just code it as:
>
>      RA(%elem(RA)-2) = *all'X';
>      RA(%elem(RA)-1) = *all'X';
>      RA(%elem(RA)  ) = *all'X';
>
> Anyways, personally, I don't think this qualifies as a
> "reasonable" use of MOVEA.  For most "normal" situations,
> the FOR loop is a good alternative.

FWIW, when I look at old code and see a MOVEA clearing some number of
elements of an array where  the element is hardcoded, I immediately feel
I have a design issue.

--
-Jeff

New email address: jlcrosby@dilgardfoods.com

The opinions expressed are my own and not necessarily
the opinion of my company.  Unless I say so.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.