cool Welcome PIC fans!
(to Pascal language fans too!)

Close General documentation

Close How to support PMP

Close Manuals

Close Tips

Other stuff

Close Documentation

Close How to support PMP

Close Off Topic

Close Today's favourites


General documentation - Overview

Pic Micro Pascal (aka PMP) is a language tool that is targeted for small and medium Microchip PIC family of microcontrollers (8 bits, mostly PIC10, PIC12, PIC16, PIC18 and since V1.4: PIC16 enhanced mid-range).

Initially PMP was created for my personal use because I thought that other free compilers were too far from "a simple standard Pascal compiler" and commercial ones was too expensive for personal use. So PMP is not a commercial compiler that does everything, but it is intended to assist developers with the generation of small to medium (both in scope and in code size) applications for the PIC, and it is free.

Major axis of development was to not use special built-in functions and procedures to interface hardware registers; these registers are accessed directly as variables, there is no wrapper functions and the generated code is quite compact; The dark side is that the source code is not portable to other manufacturer processors (sometimes between different PIC families), but the target is PIC, and will stay PIC!

In its present implementation, PMP supports multiple files compilation, by include directives and by a per unit concept, as in TP or Delphi. PMP supports simple records, bit booleans, signed and unsigned types, long integers, arrays (one dimension), strings. Support for floating point variables and operations is for PIC16 and PIC18 only (IEEE 32 bits single and 40 bits internal formats).

PMP does not include an assembler or linker; it is designed to work with Microchip MPLAB suite installed, and it uses MPASM and MPLINK .inc, .dev and .lkr files for standard registers definition and processor / memory mapping initialization.

The generated code is quite compact but may be optimized for memory size (default) or speed (less calls to internal subroutines, use of inline code if possible).

For more details refer to: Documentation for Pic Micro Pascal.



PMP was initially inspired by the MPTINY implementation by Thomas J. LeMense and "Let's Build A Compiler" series written by Jack Crenshaw in 1988 through 1992. A web search for "Crenshaw" and "compiler" should help you find where this excellent reference may be found. The PMP scanner was made with the help of TPLex, a Turbo Pascal implementation of LEX. TPLex was made possible by Albert Graef and Berend de Boer. Information on this program and a companion port of Yacc may be found on the TPLY homepage. PMP's float library was inspired by Mike Gore's excellent work named PicFloat library.



cry PMP is still under construction. Source code is not available yet. 

Creation date : 2006.08.24 8:11 PM
Last update : 2013.04.12 5:25 PM
Category : General documentation
Page read 25069 times

Print the article Print the article

react.gifReactions to this article

Nobody gave a comment yet.
Be the first to do so!

 Members List Members : 75

Your Username:


[ Password lost ? ]

[ Join us ]

Member online :  Member online :
Anonymous online :  Anonymous online : 5

Total visits Total visits: 1633223  

Most ever online
Most ever onlineTotal : 170

The 01/01/2021 @ 17:50

Webmaster - Infos



Friends News
Where are you from?

Sentence to think about :  The enterprise's computing [...] is just like of an archaeological site. [...] Deep inside, you find real fossils, calcified: the punched card is no longer physically there,
but one can find
its "footprint" on the latest hard drives, up to traces of organization in eighty "columns".
Pierre Vandevingste, La Recherche, december 1996
^ Top ^