>>QUOTING Most of my bugs involved getting the polarity wrong on the btfsc and btfss. Whats methods do you Gurus use to help getting these right the FIRST time. >>ME Experience, I guess, and care. Personally I wish that Microchip had defined the opcodes as "execute if set"/"execute if clear" rather than "skip if clear"/"skip if set". If they changed it now, though (documentation change only) they'd just really confuse everyone. For the common case where the instruction to be skipped is a jump, I think of a "btfss" as "execute the stuff, FOLLOWING THE JUMP, if the bit is set", and vice versa for "btfsc". Still make mistakes occasionally, but not too often. Another thing which I do, which I've seen some others here do as well though Microchip hasn't officially sanctioned it, is to indent by one extra space the instruction following a conditional skip. For example: ; Routine to convert a number 0-15 in W into an ASCII character '0'-'F' [untested] addlw h'F6' ; 0-9 A-F -> F6-FF 00-05 btfsc C addlw 7 ; 0-9 A-F -> F6-FF 07-0C addlw h'3A' ; 0-9 A-F -> 30-39 41-46 >>QUOTING Also I see instructions in example code that are not in my databook.. Like skpnz. They seem to assemble under MPASM fine. Are these built in assembler macros? >>ME The Microchip assembler provides macros for "skpc", etc. which simply expand to "btfss C", etc. Generally, these macros simply expand to the one obviously-suitable instruction though in the Parallax assembler some people use there are a number of multi-instruction macros as well.