Technical Information

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.