I managed to have a play with this today and a few problems have appeared. The 16f887 is not big enough and I have severely run out of stack space - solution, ordered some 18F4620. I will run out of room with the free BoostC compiler very soon - solution, going to switch to the C18 compiler.
For anyone curious, this is what it does so far,
And the code so far is attached. It's a bit rough and I had to move the step code inline to keep within the stack limits, hence the very long interrupt. I should be able to tidy it up when the new chips arrive.
Mike.