Make sure your programmer is a good one. The 14000 has trim bits in the config word that must be saved and merged each time the part is programmed. Not all programmers do this and vital calibration information is lost. Check that your calibration files contain a saved config word. B1 and B6 are the important bits and you may see differences between devices. Jim At 10:36 24/01/99 -0500, you wrote: >Now I *am* truly pulling my hair out. After finding >that the on-board oscillator on the 14000 varies considerably >from chip to chip, I rewrote my synchronous serial port code >to establish its timing from the on-board clock calibration >constant. I've got the serial output going on on pion3 of PORT A, >and that's the only pin of PORTA I'm using. The serial pin writes >to a 9600b serial LCD for debugging. > >I wrote a function putch() to output a character, and putstr() >to dump a string. > >It all works absolutely perfectly in the test main() I put >together, but when I plug the functions into my real application code, >it works 1 in 20 times (of applying power). When it doesn't work, >the pin just goes low and stays there. > >I'm definitely not tromping TRISA or anything in the rest >of the code, and I've been trying to fix this for three >days now... > >-Will >"Life is a meritocracy" -------------------------------------------------------- Jim Robertson Email: newfound@pipeline.com.au http://www.pipeline.com.au/users/newfound --------------------------------------------------------