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



On Thu, Jan 29, 2009 at 10:32 AM, Jeff Crosby <jlcrosby@xxxxxxxxxxxxxxxx> wrote:
Take the following program:

D x S 3P 0
D y S 3P 0

/free

*INLR = *On;
Y = 999;

For X = 1 To Y By 1;
EndFor;

Return;

/end-free

The program bombs with the dreaded "Message . . . . : The target for a
numeric operation is too small to hold the result (C G D F)."

Alan Campin wrote:
> The solution is simple. Don't use packed decimal for loop index. Many,
> many times slower. Always, always use integers. The compiler is
> working correctly.

While I agree that integers should be preferred, One still needs be aware of the behaviour.
D count...
D S 3I 0
/free
for count = 1 to 256 by 1;
// loop!
endfor;
*inlr = *on;
return;
/end-free

Oops - MCH1210'd!

As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.