I can tell you more about hardware than software.
The Program port is a standard DCE RS-232 port.
To my knowledge, TTL uses an almost identical format as RS-232, the difference is that it uses different voltages. The wave forms are identical, though.
RS-232 is 1 = -3v to -25v; 0 = 3v to 25v.
TTL is (generally) 1 = 5v; 0 = 0v.
My favorite site on this is
Beyond Logic, and
Thier serial article.
In the RCs, the Prog port is USART1 in api, the TTL is USART2.
In the MCC18 Libraries Doc (C:\mcc18\doc\MPLAB-C18-Libraries.pdf), the API info can be found in section 2.10 (p. 58). There is probably more info on Microchip's web site, but that's down at the moment.