|
To summarize (and to provide some background) I was faced with the
following coding style during a modification to some RPG III code:
C MOVEA'101' *IN,30
This has been used extensively in my shop for the last 30 years. I'm
trying to show the other guys the advantages of /Free but I wasn't
able to do the same thing with just a single line of code. Posting the
problem to the forum helped me a lot, and it also garnered the usual
comments about bad coding techniques. I'll give you that, but I'm in a
bit of an ideological war here and unless I can reproduce the samefor background...
results using a single line of code, I'll lose this battle. So much
following:
Got pointed to a Jon Paris article (thanks!) and came up with the
dim(99)
D pIndicators s * inz(%addr(*in))
D indicators ds based(pIndicators)
D ind 1a overlay(indicators)
In his original, the array elements were defined as 1n, but I changed
it to what you see. The calc statement became this (since there's no
equivalent to MOVEA in free form):
C %subarr(ind:30:3) = '101';
The compiler balked when the array was defined as 1n, but accepted 1a.
I ran some test data and things looked OK, and I thought my problemfollowing:
was solved, until I tested more thoroughly.
In short folks, it didn't work. Debugging the statement shows the
General Indicators:
... 30 '1' 31 '1' 32 '1' ...
Before the %subarr statement, they were all '0'.
So, I'm back to the drawing board but needed to inform the list so
someone else doesn't try the same thing!
Buzz
As an Amazon Associate we earn from qualifying purchases.
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.