Welcome PIC fans!
(to Pascal language fans too!)
How to support PMP
How to support PMP
The last 5 downloads
The last 5 most downloaded
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.
PMP is still under construction. Source code is not available yet.
Creation date : 2006.08.24 8:11 PM
Reactions to this article
Members : 94
[ Password lost ? ]
[ Join us ]
Member online :
Anonymous online : 4
Total visits: 851344
Most ever online
Total : 77
The 07/11/2014 @ 07:38
Webmaster - Infos
Where are you from?