>> maybe the problem is that you're trying to do a bitwise AND on individual >> bits, rather than on bytes? A bitwise AND on two separate bits makes no >> sense, really... >IMHO it does. > > A & B = C > 0 0 0 > 0 1 0 > 1 0 0 > 1 1 1 That's the truth table for a logical AND, not a bitwise one. Actually, in this case (comparing two individual bits) maybe bitwise reduces to the same thing as logical? But typically you use bitwise AND to compare several individual bits simultaneously, and their positions in the byte are important, for instance: A & B = C 00001111 01010101 00000101 This is just like the PIC AND instructions. I'd think that the compiler would want to make a bitwise AND in C compile to a single PIC instruction, since it can. But if you give the compiler two separate bits in the same byte (like these flag bits in the intcon register), it can't do that. But in any case, if he's comparing two discrete values to see if they're both "set", then conceptually he's doing a logical AND, and IMHO he should use the logical AND operator (&&) to do it. If nothing else, it'll make for easier reading 6 months from now when he's trying to figure out what he did :-) Dave Johnson