Thanks for the response. Is there a way to do it in circuit without a PIC programmer? The 16F685 has two pins designated ICSP (In Circuit Serial Programming) and on the board I am trying to reverse engineer, these two pins are going out to some through holes I could solder leads onto.
It sounds like it is laid out to be programmed by a PICkit2 or PICkit3. You can see the connections at https://ww1.microchip.com/downloads/en/devicedoc/51553e.pdf on page 9. That has the connections in a different order, but I don't know if the board that you are looking at has them in a line.
You cannot read the data with a serial port. You can buy a programmer from microchip for not much money. The PICkit2 is £32+vat from Farnell, while the PICkit3 is £45+vat. The PICkit3 will work with a wider range of devices, but the PICkit2 has a really useful terminal emulator and a logic analyser. The PICkit2 will work with the PIC16F685. There are of course copies that are cheaper.
It is also possible to use very simple programmers that are little more than level converters, where a lot more of the work is done by the PC.
Whatever programmer you use, if it is code protected, you can't read it.