are no longer available to distributors. All upgrades may
be obtained by users as a direct purchase from melabs:
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
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.
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
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
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.