Please stay on topic.

Here's a summary: I have two pesky devices in my circuit. A multiplexer and a decoder.The multiplexer is connected as:
Code:
MUX
'------------
'RA5	INH
'RA1	A
'RA2	B
'RA3	C
'RA4	D
'------------
notice how the selection channels are on consecutive pins thus making things easy for selecting the channels:
Code:
'mux channel selection
'low inh_mux
'for i= 0 to 15
'       Porta =  (Porta & %11000001 ) + (i *2)	'port masking for cycle purposes
'next i
On the other hand the decoder pins are scattered across PORT B and PORTC:
Code:
'DCD
'----------
'RE2	G1,G2	
'RB7	A
'RB6	B
'RB5	C
'RC6	D
here's the code i've devised:

Code:
'dcd channel selection
low g_dcd
for i=0 to 15
	portb = (portb & %00011111 ) + (i rev  3)<<5
	portc = (portc & %10111111 ) + (i<<3)
next i
The PORTB pins selection works fine (meaning lines A, B and C of the decoder behave as I expected). But line D (the only one on PORTC) gives me a headache. Am I missing something in the mask ?