Its actually pretty easy to read data from the programming port. When new data is received the flag PIR1bits.RC1IF will go high. The byte that was received will be in RCREG1.
Code:
if (PIR1bits.RC1IF == 1)
{
//grab the data
data = RCREG1;
}
The easiest way to hook it up to the OI would be to get a null modem adapter or cable from a computer store. I'm partial to the adapter since its harder to get it confused with a regular cable.