No i dont know what 4xPLL is (thats the bit i need explaining).

I definately read in a datasheet somewhere that the PICs supported 60MHz. Now that you mention it im not completely sure that was for the actual resonator value but it had something to do with it.

So far ive been working it out that a 24MHz resonator divided by 4 gives me 6,000,000 instruction cycles per second. Ive also counted how many my program uses. Apart from variable declarations the whole program is in ASM now so i know exactly how many instruction cycles everything should take. I adjusted the timing so it should have taken under 6M cycles and it worked. Then i adjusted it to go slightly over and i started seeing the kind of behaviour that you get when its using too many commands so it seemed like i had worked everything out correctly.

I take it crystals are more accurate than resonators. I like resonators because they are nice and small and simple. I currently have 2 circuits running outside where its -2C. They worked exactly the same inside at room temperature. The timing in just about ever circuit i do isnt critical. As long as it is timed well enough to use serial then its good enough. I do usually add allowances anyway by varying the timing a little.

I do know exactly where my timing problems are and how to fix them (one way being a fastor resonator). I would rather do that first as my other ideas invovle removing functionality.

Edit: I just opened a datasheet randomly for a PIC18F2420. It says "Two External Clock modes, up to 40 MHz". I thought that was the max resonator speed. Is it something else?