The Technical Rundown
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
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
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