> Bottom line is that it's risky to trust the value that you read > from an output pin. Which is not so unreasonable, if you think of > it that way. I just hate that the PIC does it automatically with the > BCF and BSF, I wish they were "write only" instructions, that really > only affected their intended bit. Perhaps this is the cost of > simple, stupid (therefore cheap) RISC ALUs. The AVR has a PORTn, DDRn and PINn register. DDR sets the data direction. PORT s ets the output status (and is readable, sort of the shadow register that PIC users implement in software) and PIN is the actual external signal (inputs as well as outputs "overvoted" by a strong signal). As a side effect, it also makes the pullup resistors selectable on a per-pin basis (set DDR to input, but PORT t o 1). Very nice that is, and can be found even in the cheapest member of the family.