Hi Malcom,

Try changing the end of your code to this:
Code:
Term_RX:
	TempWD = 0
	HSERIN 1000,RX_Bombed,[DEC3 TempWD]
	normtemp[0] = TempWD
	RETURN
RX_Bombed:
	HSEROUT ["Term_RX bombed out, all we got was", dec TempWD,13,10]
return
This should at least provide some insight into what's going on inside the PIC.

In your test application you ought to put a pause of at least 10 msec or so between when the "S" and the rest of the data are sent. You could also probably test this using the Serial Communicator inside of MicroCode Studio, if you have that. Hyperterm would also work.

I couldn't find your OSC define in this thread. Which oscillator speed are you using?

Oh, and DOH! I just recalled that I think you "terminate" the DEC3 by sending something that isn't a numeric ASCII character. Try sending a carriage return or a line feed after the 3-character value.

Best Regards,
Paul