|
*IN50 = (%BITAND(CHAR:x'80') = x'80'); *IN51 = (%BITAND(CHAR:x'40') = x'40'); *IN52 = (%BITAND(CHAR:x'20') = x'20'); *IN53 = (%BITAND(CHAR:x'10') = x'10'); *IN54 = (%BITAND(CHAR:x'08') = x'08'); *IN55 = (%BITAND(CHAR:x'04') = x'04'); *IN56 = (%BITAND(CHAR:x'02') = x'02'); *IN57 = (%BITAND(CHAR:x'01') = x'01'); Better yet: d BIT0 c x'80' d BIT1 c x'40' d BIT2 c x'20' d BIT3 c x'10' d BIT4 c x'08' d BIT5 c x'04' d BIT6 c x'02' d BIT7 c x'01' *IN50 = (%BITAND(CHAR:BIT0) = BIT0; *IN51 = (%BITAND(CHAR:BIT1) = BIT1; *IN52 = (%BITAND(CHAR:BIT2) = BIT2; *IN53 = (%BITAND(CHAR:BIT3) = BIT3; *IN54 = (%BITAND(CHAR:BIT4) = BIT4; *IN55 = (%BITAND(CHAR:BIT5) = BIT5; *IN56 = (%BITAND(CHAR:BIT6) = BIT6; *IN57 = (%BITAND(CHAR:BIT7) = BIT7; > From: Fisher, Don > > Looks like a good idea to me, but you're using TESTB to determine the > status > of each bit. That op-code is not available in free-form, which is why I'm > trying to figure out the equivalent using %BITAND. > > Were I to substitute %BITAND for TESTB in your example, would it look like > the following: > *IN50 = %BITAND(CHAR:x'F0') > *IN51 = %BITAND(CHAR:x'F1') > *IN52 = %BITAND(CHAR:x'F2') > *IN53 = %BITAND(CHAR:x'F3') > *IN54 = %BITAND(CHAR:x'F4') > *IN55 = %BITAND(CHAR:x'F5') > *IN56 = %BITAND(CHAR:x'F6') > *IN57 = %BITAND(CHAR:x'F7')?
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.