> Doesn't the latter cater for complete portability? It probably > caters for twice as much overhead; or does the assembler take > care of that all upon code assembly ? It's a bit swings and roundabouts. I think without exception registers like PORTA/GPIO on 12/16 PICs are always in bank0, TRIS/TRISIO are in bank1. 18s are not banked so BANKSEL is unnecessary. If 12/16 code might one day be ported to an 18 or whatever comes in the future then it would be best to use a universally compatible style. I suggested grouping registers with a common bank together to cut down on clutter - I have a slight leaning towards that, but not at the cost of code screwing up. I did say that you might rationalise when you get to know the PIC better, but you should take note of Olin's comments -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist