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