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



Thank you to everybody that responded. I will start plugging this into
a test program and see how it goes.

Thanks

Jon

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Terrence Enger
Sent: Saturday, March 21, 2009 7:01 AM
To: RPG programming on the IBM i / System i
Subject: Re: TESTN/BITON/BITOFF

All,

I cannot imagine waht I was thinking about when I wrote the bit about
array processing below. Please accept my apologies.

Terry.


On Fri, 2009-03-20 at 23:19 -0400, Terrence Enger wrote:
Jon,

You want something like this ...

*in50 = %bitand( Out(Idx) : x'01' ) <> 0;
Out(Idx) = %bitxor( Out(Idx) : x'b5' );

If, in the common idiom, the value of *in50 has no further use, then
you
need only the second of the lines.

If, perchance, you do to all eight 1-character elements of array Out,
you can reduce this to ...

Out = %bitxor( Out : x'b5b5b5b5b5b5b5b5' );

Perhaps there is some form of *ALL-constant which would save typing,
but
I do not know it. Pointers, anybody?

Cheers,
Terry.


On Fri, 2009-03-20 at 17:27 -0500, Jon Sinner wrote:
I am trying to convert some code to free format. I have searched
the
archived and found many posts about the use of

%BITAND and %BITOR. Maybe it is because it is late on Friday, but I
just do understand the bit masks and how to use these BIF's.



Can someone show me how to convert the following code to free. I
would
really appreciate it.



C TESTB '0' Out(Idx)
50
OFF

C IF *IN50

C BITON '0' Out(Idx)

C ELSE

C BITOFF '0' Out(Idx)

C ENDIF

C*

C TESTB '2' Out(Idx)
50
OFF

C IF *IN50

C BITON '2' Out(Idx)

C ELSE

C BITOFF '2' Out(Idx)

C ENDIF

C*

C TESTB '3' Out(Idx)
50
OFF

C IF *IN50

C BITON '3' Out(Idx)

C ELSE

C BITOFF '3' Out(Idx)

C ENDIF

C*

C TESTB '5' Out(Idx)
50
OFF

C IF *IN50

C BITON '5' Out(Idx)

C ELSE

C BITOFF '5' Out(Idx)

C ENDIF

C*

C TESTB '7' Out(Idx)
50
OFF

C IF *IN50

C BITON '7' Out(Idx)

C ELSE

C BITOFF '7' Out(Idx)

C ENDIF





Thanks



Jon








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.