It's because you're looking at a new chip family. In the 8-bit PICs, the F used to mean flash based (aside from, IIRC, pic16c84 which was the first one) and are therefore more popular than the C series, which had to be erased with UV lights. Some of those didn't even have a window for that, making them one time programmable.
The actual processor families themselves are divided into numbers from PIC 10 to PIC 32 and dsPIC 33; of which 18 and lower are the well known 8-bit PIC family. I think these numbers once indicated the instruction width, but that changed somewhere (pic18f2550 has 16 bit instructions). The PIC24 I haven't looked closely at, but it's some sort of DSP cousin, and PIC32 isn't even based on the PIC processor architecture but MIPS. You'll find the PIC18 and lower are grouped under 8 bit microcontrollers, while the PIC24 is in the 16 bit category along with dsPIC 30 and 33 (yep, that's a higher number than the PIC32 which is 32-bit).
In short, the reason you're finding sample code that doesn't quite apply is because Microchip decided to use its well known PIC brand to market nearly all their microcontrollers. The effect you suffer from is known as brand dilution.
For a comparison, it's like the 10..18 families are like x86 processors from the 386 to the Pentium II, each time adding some instructions but largely similar to program, but the PIC24 is the sudden shift to a dissimilar IA-64 instruction set (Itanium) and the PIC32 is a third party product (like StrongARM). All those were made by Intel, but they avoided this level of confusion by not (at the time) branding the Itanium as a Pentium or Xeon device. AMD, on the other hand, is about to add some confusion with ARM architecture Opteron brand chips.
What you are doing wrong is making instruction-level assumptions about compiled code. If you want to test the execution speed of instructions, you need to write a known loop in assembler. For example:
loop:
btg LATA, #6
bra loop
Next you carefully count how many cycles in one full RA6 output cycle. From the datasheet or programmers reference manual you can see tgat BTG takes one instruction cycle and BRA two. Each loop iteration therefore takes 3 cycles, and it takes two iterations for one complete cycle of RA6, so RA6 should toggle at 1/6 the instruction rate, or Fcy/6 using symbols from the Microchip documentation.
Now check whether that part uses 2 or 4 clocks per instruction cycle. Let's say this one uses 2, so now the RA6 frequency is Fosc/12.
Next you have to go thru the config settings and see exactly how the oscillator is derived. It can get pretty complicated on some of the newer parts. Many of them have additional clock chain state that can be adjusted at run time, so you have to look at the code too, not just the config settings. There can be various clock taps, dividers, and usually a PLL that is a multiplier but also usually with its on set of dividers. Eventually you should be able to start at your crystal frequency or the internal oscillator frequency if you're using that, follow thru the whole clock chain, determine what the instruction clock rate is, then divde that by 6 to get the RA6 frequency.
Best Answer
The pic 16F88 can run up to 20 MHz with an external oscillator. Then up to 8 MHz with the internal oscillator selected. This is usually done by setting the fuse bits(I use AVR not PICs so not completely sure on how to do that usually in the IDE).
As for the programmer I would look at just getting a PICKIT 2 or 3 for programming easy to use also made my microchip. And forgot to mention USB :).