Pic Micro Pascal (aka PMP) is a language tool that is targeted for small and medium Microchip PIC® family of microcontrollers (MCUs).

All PIC10, PIC12, PIC16 and PIC18 are supported, including the new Enhanced Core devices). 

PMP is not a commercial compiler that does everything, but is intended to assist developers with the generation of small to medium (both in scope and in code size) applications for the PIC.

The major guidelines of PMP development:

In the present implementation, PMP supports multiple files compilation, by include directives and by a per unit concept, as in TP or Delphi.

The data types supported by PMP:

PMP does not include an assembler or linker. It was designed to work with Microchip's MPASM™ / MPLINK™ from MPLAB® suite and uses their .lkr files for processor / memory mapping, but it may as well use GPUTILS suite.

See also: PMP's site, Hall of fame, Legal stuff, PMP internals

Some abbreviations that may be used in this document:

PICnn        Only PIC devices of the nn family. E.g.: PIC12.

PICnn+        PIC devices starting from nn (included), up to PIC18. E.g.: PIC16+ for all PIC16 to PIC18 devices, including PIC16 Enhanced Mid Range devices.        

PIC16E        PIC16 Enhanced Mid-Range devices

The above abbreviations are now deprecated; the new levels, based on Microchip's categories that had given the PMP's conditional defines families, from lowest to highest hierarchy:

BASELINE        Baseline PIC devices, mostly 12-bit core PIC10 and PIC12 devices.

MIDRANGE        Mid-range PIC devices, mostly 14-bit core PIC16 devices, some PIC12 devices.

ENHANCED        Enhanced-code PIC devices, mostly 14-bit core PIC16 and some PIC12 devices, with the numerical suffix starting by a "1".

HIGHPERF        High performance PIC devices, 16-bit core PIC18 devices.

As above, a plus sign after the range says "this level and higher level devices"

FP        General term that denotes a Floating Point operation or data.

MPLAB        Microchip's PIC Lab software.

MPASM        Microchip's PIC assembler.

MPLINK        Microchip's PIC linker.

GPUTILS        General Purpose Utilities for PIC devices. Open-sourced tool-chain for PIC micro-controllers.

GPASM        GPUTIL's assembler.

GPLINK        GPUTIL's linker.