If you are really trying to do an FSK decode in software on a PIC, with A/D input and DSP style noise bandwidth, you could base it on:
"A Dual-Tone Multifrequency Receiver Using Synchronous Additions and
Subtractions" by Y.Tadokoro and Y. Haneda published in IEEE
Transactions on Communications, Vol. COM-35, No. 4, April 1987.
As far as I know, this is not available on the net. The IEEE has a
service by which it can be orderred for $12 (more if you are not a member) by calling 800-949-4333 in the USA, or you can probably find
it in print at a university engineering library.
The algorithm requires sampling at 4x the center frequency of each tone
to be detected (for the simplest case). The algorithm given is in the
form of buffering these samples for a fixed interval, then processing the
buffer. The processing step is of the form:
(New sample)-(accumulator) =>accumulator
for the entire buffer.
I converted this into a continuous, sliding form in a previous life as:
(New sample)-(accumulator)-(oldest sample)=> accumulator
with a FIFO sample buffer of a length evenly divisible by 4.
The buffer length has an effect similar to filter Q.
Sorry, but I do not have the code at this time.