Useful new information :

Switching to HSERIN solved two problems at one stroke.

The timeout now works correctly AND it doesn't make any
difference whether the input pin is high or low (just so long
as it isn't noisy).

There are a couple of remaining issues with HSEROUT, primary
being that it's sometimes "tardy" about outputting a character,
waiting until another "pushes it out" - presumably out of a small
buffer. Alas it's one of those evil "sometimes" problems - sometimes
the character prints promptly, sometimes it doesn't - which makes
a generic 'dump your buffer' solution difficult. I may just have to
add extra, pointless, characters to the output.

The timeout seems to run fast also ... maybe 30% ... although
PAUSE() statements time perfectly. This isn't a biggie.

Of course none of this will help people using chips without an
internal USART. I wonder if the USART somehow interferred
with using my chosen I/O pins for the SERIN2 command ? I'm
pretty sure I'd disabled anything to do with it, the chip should
have responded as if it were an 'F84 ... should have. Lots of
subtle, poorly documented, interactions in these things however.

Anyway, I think I can proceed with my app now. I really didn't
want to change it over to CC5X just to get around one little
issue like this. Besides, I'd have to write more complex ISR
and serial routines in that language ...

- Jimbo