A implies that it is an advanced/enhanced version but it is functionally the same. The A type only comes as a 20Mhz version and it has a different (faster) programing algorithm. You cannot program the A type with the same program as the non A type and the other way around.A implies that it is an advanced/enhanced version. eg 16F877A has an analog comparator that the 16F877 doesn't have.
Mainly, there were *many* errata with the original, the -A corrected some of them. The -A came in 20MHz variations as well. Do they even make 16F84s anymore?Part number suffixes
The F in a name generally indicates the PICmicro uses flash memory and can be erased electronically. Conversely, a C generally means it can only be erased by exposing the die to ultraviolet light (which is only possible if a windowed package style is used). An exception to this rule is the PIC16C84 which uses EEPROM and is therefore electrically erasable.
An L in the name indicates the part will run at a lower voltage, often with frequency limits imposed.
Parts designed specifically for low voltage operation, within a strict range of 3 - 3.6 volts, are marked with a J in the part number. These parts are also uniquely I/O tolerant as they will accept up to 5 V as inputs.