I was under the impression that bsf and bcf instructions are OK on a Port as long as the I/O directions are not changed. Example. Port Status TrisA = b'00000011' PortA = b'00000000' (Latch Value) RA0 - driven high by external stimulus RA1 - driven low by external stimulus bsf porta,2 Reads porta data. = b'00000001' Performs bit manipulation. = b'00000101' Writes data to port. = b'00000101' (Latch Value) Read PortA. = b'00000101' RA2 - RA7 are irrelevant as I am only interested in RA0 - RA1. RA0 - still driven high by external stimulus. RA1 - still driven low by external stimulus Change TrisA register. = b'00000010' RA0 - is now driving it's load with a high output. This may be undesirable because the BSF instruction changed the value in RA0 output latch from 0 to 1. Therefore if I have used BSF and BCF instructions on a Port and decide to change the I/O direction, I should set the Output Latches to a known state beforehand. movlw b'xxxxxxx0' (x in this case is irrelevant). movwf PortA Then change RA0 to an output. Tony Just when I thought I knew it all, I learned that I didn't.