Since the piclist is back down to only 50 messages or so a day, I figured it was time to throw another bit-banging challenge out there. This is very similar to the the bit-ANDing one I threw out a few weeks ago. This time the goal is to exclusive-or two bits. Given: bit_a of register A bit_b of register B bit_c of register C The goal in C parlance is: C.bit_c = A.bit_a ^ B.bit_b; A.bit_a B.bit_b | C.bit_C ---------------------+--------- 0 0 | 0 0 1 | 1 1 0 | 1 1 1 | 0 Here's a reasonably slow version to get you started: CLRW ;and set Z (i.e. result is zero) BTFSC A,bit_a ;If A.bit_a is high XORLW 1 ; then W=1 and clear Z BTFSC B,bit_b XORLW 1 SKPZ ;If the above was non-zero BSF C,bit_c ; then set C accordingly SKPNZ ;otherwise BCF C,bit_c ; clear C Let's optimize the speed vector: points = 9 - max execution cycles My best version scores 3 points. Scott PS. Andy, I'll give you back the beer if you can score 4 points or buy you a bud lite if you score 3.