> There's a major flaw in the Change-on-Port-B Interrupt logic. If you > read from Port B at the same instant that a change on RB4-7 occurs, the > RBIF flag will NOT be set. BSF/BCF instructions perform a read, of > course, so if you ever do BCFs, BSFs, or any other Port-B read operation, > you can pretty much forget about using the Change-on-Port-B interrupt. Does MOVWF perform a read-before-write? [I realize, of course, that if it did so it would ignore the value read, but it's probably easier to have the hardware do the read for all of the ALU-freg ops]. What about CLRW? Does that read [IND] if the 7 lsb's of opcode are zero? Would changing the 7 LSB's to something else cause that something else to be read [hopefully harmlessly] instead?