this is great!

I'm not too sure to understand how you get the Decimal values when reading as STR and then displaying them as HEX2?

also, a bit out of topic but I get a weird error:
symbol not previously defined (ANSELH)
when trying to set ANSEL = 0, to use other ports.
On a 16F876a...
Ever seen that?