Upgrades: Upgrades are no longer available to distributors. All upgrades may be obtained by users as a direct purchase from melabs:
http://store.melabs.com/cat/PBPUP.html
Users must have registered a previous version of PBP, a Dontronics serial number or must supply proof of purchase. Proof of purchase can be: a copy of an invoice showing a purchase of PBP or a PBP upgrade, or an image of the PBP disk/CD and manual.
What is PBP?
PBP is a BASIC programming language for Microchip's PIC microcontrollers.
It has evolved over the span of 15 years, making it the industry standard in its field. It has become a professional-level development tool for embedded programmers, though it retains the easy-to-learn syntax that makes it popular among experimenters and educators worldwide.
PBP should not be confused with the slow BASIC interpreters of the past. This is a full-blown development tool that produces code in the same manner as a C compiler (without the pain of C). PBP is widely used by engineering professionals who depend on its stability and maturity to produce commercial firmware. It is also used by educational institutions because it is very easy to learn and understand.
PBP has existed for almost 15 years. Development and evolution has been ongoing since its inception. This maturity gives the software a reputation for dependability that is unequaled among its competitors.
PBP is strictly software. It produces the device-ready HEX file, but doesn't include the means to burn the code into the chip or run the chip. To complete the system, you need a device programmer like the melabs U2 Programmer and a test platform like our LAB-X Experimenter series. Full Development Systems are available that include everything you need to program and test.
Technical Stuff
PBP is a mature BASIC compiler for Microchip's PIC microcontrollers. Its licensed user base of 10,000+ is composed mostly of engineers and companies. It is intended to be a professional development tool, though its painless syntax also makes it a favorite among hobbyists and institutions of learning.
PBP generates Assembly language that consists of hand-tuned macros and library routines. This laborious approach in development makes for extreme efficiency in handling operations with a variety of variable types. Each math and comparison operation is generated according to the specific variable types that are used as inputs and output. High-level commands are included as library routines that are reused to minimize code space consumption, and these routines are tuned based on the device's memory characteristics and selected oscillator frequency.
The code that PBP generates is efficient and optimized. Execution speed rivals that of any C compiler (for PIC MCUs) on the market. You don't have to compromise product performance in order to save time in development. You can have both.
PBP does not use a software stack. This speeds execution of subroutine calls and limits PBP programming to a single, global namespace. All variables are globally accessible and care should be taken not to 'step on' critical values in subroutines and interrupt handlers. PBP uses the hardware stack for GOSUB and interrupts. The depth of the stack imposes limits on nested subroutines.
Unless specifically noted, PBP commands don't consume internal resources like timer modules. Our timed pauses are software-based and none of our loop structures touch the hardware stack. The peripheral modules are free for the developer to use when needed.
Each supported device is mapped thoroughly in the PBP device files. PBP handles all RAM-bank and code-page switching, inserting code only when needed for the target device. All internal registers are known to PBP by name. This allows Direct Register Access with BASIC statements like "T1CON = 0", without the requirement of pre-defining the location of the register.
PBP includes a purpose-built IDE called MicroCode Studio, but many prefer to work in the well-known MPLAB IDE from Microchip. We include a language tool plugin for MPLAB to allow seamless development using Microchip's development tools from within MPLAB. Debugging in this environment can be switched from Source to Assembly level for full access to the generated code.