• PBP Version History

    by Published on 04-26-2017 08:27 AM

    We've classified PBP 3.1 as a major upgrade due to additional assembly-libraries necessary to support Microchip's changes in memory map on their latest devices. The new libraries allow us to continue adding support for the latest 8-bit microcontrollers as they are released.

    • Added support for devices: 10(L)F320, 10(L)F322, 16(L)F15313, 16(L)F15323, 16(L)F15324, 16(L)F15325, 16(L)F15344, 16(L)F15355, 16(L)F15356, 16(L)F15375, 16(L)F15376, 16(L)F15385, 16(L)F15386, 16(L)F1773, 16(L)F1776, 16(L)F1777, 16(L)F1778, 16(L)F1779, 16(L)F18324, 16(L)F18344, 16(L)F18854, 16(L)F18855, 16(L)F18856, 16(L)F18857, 16(L)F18875, 16(L)F18876, 16(L)F18877, 18(L)F24K40, 18(L)F25K40, 18(L)F26K40, 18(L)F27K40, 18(L)F45K40, 18(L)F46K40, 18(L)F47K40, 18(L)F65K40, 18(L)F66K40, 18(L)F67K40
    • Added Peripheral Pin Select (PPS) initialization for HPWM, HSERIN, HSEROUT, HSERIN2 and HSEROUT2 commands on devices equipped with modern-format PPS.
    by Published on 02-25-2017 05:52 AM

    PBP 3.0.10 and later requires Windows 7/8/10. Windows XP is no longer supported.

    • Fixed bank-boundary vulnerability for LONG array variables
    • Fixed SPBRG register names on 16F1824 family
    • Fixed READ/WRITE issues for 16(L)F183xx
    • Changed default config for 18F87K22 for better results
    • Added DAC1CON0/DAC1CON1 SFRs for 12F1571/72
    • Added support for 16(L)F18326, 16(L)F18346
    by Published on 05-18-2016 05:47 AM

    • Fixed READ/WRITE errors (missing EEADR>NVADR) for 16F176x
    • Fixed RESUME bad-BSR vulnerability in enhanced mid-range families
    by Published on 06-03-2015 04:52 AM

    • Added support for devices: 16(L)F1454, 16(L)F1458, 16(L)F1459, 12(L)F1571, 16(L)F1572,
      16(L)F1574, 16(L)F1575,16(L)F1578, 16(L)F1579, 12(L)F1612, 16(L)F1613, 16(L)F1614, 16(L)F1615,
      16(L)F1618, 16(L)F1619, 16(L)F1703, 16(L)F1704, 16(L)F1705, 16(L)F1707, 16(L)F1708, 16(L)F1709,
      16(L)F1713, 16(L)F1716, 16(L)F1717, 16(L)F1718, 16(L)F1719, 16(L)F1764, 16(L)F1765, 16(L)F1768,
      16(L)F1769, 16LF1554, 16LF1559, 16(L)F18313*, 16(L)F18323*, 16(L)F18325*, 16(L)F18345*, 16F753,
      16HV753, 18F97J94, 18F87J94, 18F67J94, 18F96J99, 18F86J99, 18F66J99, 18F96J94, 18F86J94,
      18F66J94, 18F95J94, 18F85J94, 18F65J94
      * preliminary support, no datasheet available at time of build
    • Removed support for 16F527 (device not currently compatible with PBP)
    • Fixed HPWM for 16(L)F1788, 1789
    • Suppressed error 311 for K50 parts with PBPL
    • Fixed WRITECODE block size for 16(L)F1946, 1947
    • Added message concerning use of high-level commands on PORTF/G on 16(L)F1946/7, 16(L)F1526/7, 16F946
    • Fixed problem with WORD-array calculations into LONG result variable
    • Fixed erroneous add/subtract macro warnings
    Published on 04-30-2013 03:16 PM

    • Suppressed assembler message (303) for Enhanced Mid-Range families
    • Increased path and filename limit for MCSPX ICD
    • Replaced deprecated __CONFIG directives for PIC18
    • Fixed bug in LOOKUP2?TCLW macro for PIC18
    • Added support for devices: PIC12LF1552, 16F527, 16(L)F1784, 16(L)F1786, 16(L)F1787, 16(L)F1788, 16(L)F1789, 18(L)F24K50, 18(L)F25K50, 18(L)F45K50
    Published on 06-21-2012 09:26 AM

    • Fixed HPWM defines for 12F1501
    • Fixed SFR list for 12F1501, 16F1503, 16F1507
    • Removed "W" from SFR list for all devices
    • Fixed PIC18 BANK15 SFR-access for HSER2 and HPWM commands
    Published on 03-19-2012 09:01 AM

    • Fixed WRITECODE block size for 16(L)F1826/1827
    • Fixed configuration defaults for 12(L)F752 to match MPASM 5.44
    • Legacy SFR names restored for many devices
    • New Parts: 12F1501, 16F1503, 16F1508, 16F1509, 16F1512, 16F1513
    Published on 12-13-2011 10:00 AM

    • Fixed #IF/#IFDEF (# directives having effect in uncompiled blocks)
    • New Activation Manager
    • List default configuration in device reference files (.info)
    Published on 12-02-2011 09:58 AM

    • Fixed CCP register names for 18F4480, 18F4580
    Published on 10-21-2011 07:42 AM

    • Fixed hardware id problems evident on some computers
    • Fixed GPIO/TRISIO register names for 12F519, 12CE519
    • Fixed errors in .info files
    Published on 08-26-2011 02:35 PM

    • Fixed bit aliases pointing to WORD variables bit-8 through bit-15.
    • Fixed problem in offline activation.
    • Activation in Windows7 changed to per-machine instead of per-user.

    New Functionality:

    • Conditional-compilation with #IF, #IFDEF, and #IFNDEF. Control all PBP code with conditional statements, including DEFINE, Variable and Alias declarations, and Configuration Directives.
    • Conditional constants can be defined in source code or passed to PBP via command-line options.
    • #CONFIG block allows configuration directives in source code without modifying system files. Multiple configuration blocks can be selected with conditional compile.
    • Custom compiler message, warning, and error generation.
    • Mechanism to create custom PBP commands. (Undocumented at the time of this writing.  More information to come.)

    Installation and Compatibility:

    • License protection through online/offline activation.
    • MPLABX/MPASMX Compatibility with PBP-aware syntax highlighting.
    • Automatic MPLAB 8.x setup and configuration.
    • Assembler selection from Start Menu allows specific assembler-version selection, regardless of PATH variable entries. Selection setting accessible as an environment variable.
    • PATH environment modification no longer required for assembly process.
    • 63-character limit on path\filename removed.
    • Complete compatibility with 64-bit Windows.

    Structural Changes:

    • Various include files consolidated into one support file per device.
    • SFR names declared for each individual device.
    • Device-specific command library capability.
    • Single executable (PBPX.exe) for both PBPW and PBPL compilation.
    • PM Assembler no longer supported.

    Usability and Accessibility:

    • Newly revised and expanded, 300+ page reference manual.
    • Configuration information provided for each supported device.
    • Multiple editions with different device-support subsets available.
    • Free major upgrades for one year with every upgrade or full-version purchase.
    • Minor updates and new-device support distributed frequently through free downloads for all current-version licensed users.
    • All PBP3 editions and upgrades may be purchased as downloads.

    Bug fixes and tweaks:

    • Limit on LOOKUP2 item list increased to 1024 for Mid-Range and Enhanced Mid-Range architectures.
    • HPWM changed to accommodate 1:64 prescaler in Enhanced Mid-Range Architecture. (lower minimum frequency limit)
    • Fixed HPWM compile error for 18FxxK80.
    • Fixed HPWM compile error for Enhanced Mid-Range parts in which CCPTMRS0 doesn't exist.
    • Fixed HPWM channel-5 bug for Enhanced Mid-Range parts.
    • Fixed ERASECODE/WRITECODE/READCODE for 12F617 and similar parts.

    Support added for:

    • Silver and Gold Editions:  12F752, ,12HV752
    • Gold Edition:  12(L)F1840, 16(L)F1507, 16(L)F1516, 16(L)F1517, 16(L)F1518, 16(L)F1519, 16(L)F1526, 16(L)F1527, 16(L)F1782, 16(L)F1783, 16(L)F1847, 16LF1902, 16LF1903, 16LF1904, 16LF1906, 16LF1907

    • Fixed ADCIN for parts with 5-bit channel select
    • Fixed HPWM for parts with CCPTMRSx SFRs
    • Added support for PIC18F66K80 family
    • Fixed "Argument out of range" for COUNT in 16F1xxx parts
    • Fixed errors in PBPL for I2C commands forward-looking labels
    • Fixed ADCIN GO_DONE error for new PIC18F parts
    • Fixed LCDOUT for 8-bit mode with 64MHz system clock
    • Adds support for: PIC16F1824, 16F1825, 16F1828, 16F1829, 16F707, 16F720, 16F721, 18F26J13, 18F26J53, 18F27J13, 18F27J53, 18F46J13, 18F46J53, 18F47J13, 18F47J53, 18F65K22, 18F65K90, 18F66K22, 18F66K90, 18F67K22, 18F67K90, 18F85K22, 18F85K90, 18F86J72, 18F86K22, 18F86K90, 18F87J72, 18F87K22, 18F87K90, 18F25K80, 18F26K80, 18F45K80, 18F46K80, 18F65K80, 18F66K80, 18LF25K80, 18LF40K80, 18LF45K80 18LF26K80, 18LF45K80, 18LF46K80, 18LF65K80, 18LF66K80
    • Support added for second USART on PIC16F1xxx family.
    • HPWM frequency calculation fixed for PIC16F1xxx family.

    Download and run the following patch file.
    You must have PICBASIC PRO™ version 2.60, 2.60A or 2.60B. If you have modified files in your existing installation, you may need to reinstall from the PBP CD before applying this patch.
    This is not an upgrade. This patch will not work on versions earlier than 2.60.

    Download (P260C.exe, 3337K)

    Latest Release: 2.60 (July 2009)

    • DOWNLOAD PATCH for 2.60A (June 2010):
      • Adds support for: PIC12F1822, 12LF1822, 16F1823, 16LF1823, 12F617, 16F722A, 16F723A, 16LF722A, 16LF723A, 18F23K22, 18F24K22, 18F25K22, 18F26K22, 18F43K22, 18F44K22, 18F45K22, 18F46K22, 18LF23K22, 18LF24K22, 18LF25K22, 18LF26K22, 18LF43K22, 18LF44K22, 18LF45K22, 18LF46K22
      • Fixes WRITE for WORD variables
      • Fixes assembly errors for 16F1826/16F1827
      • Fixes baud rate accuracy for SERIN/SEROUT commands
      • Fixes ADCIN for 18F46J11 family
      • Fixes WRITECODE for 18F4520 family
      • Workaround added for enhanced 14-bit devices and MPASM 5.36
      • Fixes PBPMPLAB.BAT for 64-bit systems
    • Adds support for Enhanced Mid-range Core PIC16F1826, 1827, 1933, 1934, 1936, 1937, 1938, 1939, 1946, 1947, PIC16LF1826, 1827, 1933, 1934, 1936, 1937, 1938, 1939, 1946 and 1947.
    • Adds support for PIC18F13K22, 13K50, 14K22, 14K50, 24J11, 24J50, 25J11, 25J50, 26J11, 26J50, 44J11, 44J50, 45J11, 45J50, 46J11, 46J50, 66J90, 66J93, 67J90, 67J93, 86J90, 86J93, 87J90, 87J93, PIC18LF13K22, 13K50, 14K22, 14K50, 24J10, 24J11, 24J50, 25J10, 25J11, 25J50, 26J11, 26J50, 44J10, 44J11, 44J50, 45J10, 45J11, 45J50, 46J11 and 46J50.
    • Adds new functions ATN (arctangent) and HYP (hypotenuse).
    • Adds new commands ARRAYREAD, ARRAYWRITE (for enhanced string handling), DO..LOOP, ELSEIF, EXIT, ON GOSUB and ON GOTO.
    • Adds Word and Long modifiers and allows multiple data for READ and WRITE.
    • Adds NO_CLEAR_STKPTR Define for more control of stack for RESUME to label.
    • Adds RESET_ORG Define for 14-bit core.
    • Adds WRITE_INT Define to disable/enable interrupts for WRITECODE.
    • Adds COFF debug file support for MPLAB 8.20 and beyond.
    • Changes plugin for MPLAB 8.20 and beyond.
    • Changes to new USB framework for support of new USB parts.
    • Fixes DATA statement for up to 256 values on one line.
    • Fixes OWIN and OWOUT presence detect for PIC18.
    • Lengthens default command and data times for LCDOUT.
    • Adjusts timing for SOUND command for 12-bit core.

    Previous Release: 2.50 (August 2007)

    • DOWNLOAD PATCH to 2.50c (March 2009):
      • Adds support for PIC16F722, 723, 724, 726, 727, PIC16LF722, 723, 724, 726, 727, PIC18F6393, 6493, 6628, 66J11, 66J16, 6723, 67J11, 8393, 8493, 8628, 86J11, 86J16, 8723 and 87J11.
      • Adds Erasecode to erase data space for 12-bit core.
      • Fixes Owout for greater than 8MHz for 14-bit core.
      • Fixes PORTH and TRISH for PIC18F85J50, 86J50, 86J55 and 87J50.
      • Fixes byte + word = long for PIC18.
      • Fixes PBPL bit access for bits 8 through 31 of long variables.
      • Fixes PBPW division of constants (folding) for constants greater than 32767.
      • Adds Microchip USB 1.3 fixes for PIC18.
      • Fixes USB for PIC18F87J50 series parts.
      • Sets Adcin default clock to rc for PIC16F882, 883, 884, 886 and 887.
      • Fixes Hpwm pin for PIC12F615, PIC12HV615, PIC16F616, 685, 690, 785, PIC16HV616 and 785.
      • Fixes Hserin2 timeout for PIC18.
      • Fixes I2C_SLOW Define for PIC18.
      • Fixes operator precedence in If..Then for long PIC18 (be safe - use parentheses.)
      • Fixes Lookup2 for non-long PIC18.
    • Adds support for PIC12F519, 609, 615, PIC12HV609, 615, PIC16F526, 610, 882, PIC16HV610, PIC18F2458, 2553, 4458 and 4553.
    • Adds support for low-voltage: PIC18F23K20, 24K20, 25K20, 26K20, 43K20, 44K20, 45K20, 46K20, PIC18F65J50, 66J50, 66J55, 67J50, 85J50, 86J50, 86J55 and 87J50.
    • Adds signed long (32-bit) variable type for PIC18Xxxxx.
    • Adds Read and Write EEPROM data for 12-bit core.
    • Adds WRITE_INT Define to disable/enable interrupts for Write.
    • Revises HPWM and adds additional channels.
    • Adds further optimizations.
    • Adds CAN registers for PIC18F4585.
    • Fixes Adcin for PIC16F88x.
    • Fixes RAM bank allocation for PIC16F631, 946, PIC18F2515, 2523, 2525, 2610, 2620, 4515, 4523, 4525, 4610 and 4620.
    • Fixes additional possible memory allocation of word-sized variable at bank boundary for PIC18Xxxxx.
    • Fixes PM assembler for PORTF, PORTG TRISF and TRISG for PIC16F946.
    • Fixes more miscellaneous warning/error messages.

    Previous Release: 2.47 (June 2006)

    • Adds support for PIC16F616, 631, 677, 883, 884, 886, 887, PIC16HV616, 785, PIC18F2423, 2420, 2450, 2523, 2682, 2685, 4423, 4420, 4450, 4523, 4682 and 4685.
    • Adds support for low-voltage PIC18FJ devices: PIC18F24J10, 25J10, 44J10, 45J10, 63J11, 63J90, 64J11, 64J90, 65J10, 65J11, 65J15, 65J90, 66J10, 66J15, 66J60, 66J65, 67J10, 67J60, 83J11, 83J90, 84J11, 84J90, 85J10, 85J11, 85J15, 85J90, 86J10, 86J15, 86J60, 86J65, 87J10, 87J60, 96J60, 96J65 and 97J60.
    • Adds HSER_SPBRGH and HSER2_SPBRGH defines for PIC18Xxxxx.
    • Adds minor optimizations for PIC18Xxxxx.
    • Increases number of table elements allowed for Lookup and Lookup2 for PIC18Xxxxx.
    • Improves accuracy for Nap and Sleep for PIC18Xxxxx.
    • Allows temp variable in banks other than 0 for 12-bit core.
    • Changes internal bit names to avoid possible conflicts.
    • Hides "__CONFIG Deprecated" warning for PIC18Xxxxx.
    • Fixes Readcode and Writecode for PIC16F88.
    • Fixes Adcin and Dig for 12-bit core.
    • Fixes possible memory allocation of word-sized variable at odd address on page boundary for PIC18Xxxxx.
    • Fixes PM for PORTD and PORTE for PIC16F59.
    • Fixes miscellaneous error messages.

    Previous Release: 2.46 (January 2005)

    • DOWNLOAD PATCH 2.46A (October 2005):
      • Adds support for PIC10F222, PIC12F510, PIC16F506, 685, 687, 689, 690, 946, PIC18F1230, 1231, 1330, 1331, 2221, 2321, 4221, 4321, 6527, 6622, 8527 and 8622.
      • Fixes Hserin/Hserout defines for PIC16F688.
      • Fixes possible bank select issues for moving data into a bit on PIC18 series MCUs.
    • Adds support for PIC10F202, 206, PIC12F635, PIC16F59, 636, 639, 785, 913, 914, 916, 917, PIC18F2410, 2420, 2455, 2480, 2510, 2520, 2550, 2580, 4410, 4420, 4455, 4480, 4510, 4520, 4550, 4580, 6310, 6390, 6627, 6722, 8310, 8390, 8627 and 8722.
    • Adds support for full speed USB PIC18F2455, 2550, 4455, and 4550.
    • Adds OPTION2 for PIC16HV540.
    • Adds CAN externals to PIC18F2680 and 4680.
    • Changes XINST default to off for PIC18Fxxxx.
    • Fixes bank addresses for PIC18F6410, 6490, 8410 and 8490.
    • Fixes Next for word index with a byte variable Step.
    • Fixes possible Debugin, Hserin2 or Serin2 Dec timeout at wrong time.
    • Fixes no Debugin or Hserin2 modifier timeout for PIC17Cxxx.
    • Fixes no Hserin2 modifier timeout for PIC18Xxxxx.
    • Fixes USBOut for length in any bank for PIC16C745 and 765 low speed devices.
    • Fixes USB descriptor for PIC16C745 and 765 Jan Axelson demo.

    Previous Release: 2.45 (Febuary 2004)

    • Adds support for PIC12F508, 509, 683, PIC16F505, 684, 688, 716, 737, 747, 767, 777, 87, 88, PIC18F2331, 2431, 2515, 2525, 2585, 2610, 2620, 2680, 4331, 4431, 4515, 4525, 4585, 4610, 4620, 4680, 6410, 6490, 8410 and 8490.
    • Allows spaces in path/filename.
    • Improves compatility with MPLAB® 6.
    • Updates USB routines to version 1.25.
    • Removes dependence on some Microchip PIC18Xxxxx macros.
    • Fixes subtract bit from byte and word to word result.
    • Fixes PIC16F648A BANK2 RAM setting.
    • Fixes some PIC18Xxxxx bank selections.

    Previous Release: 2.44 (July 2003)

    • Adds support for PIC16F54, 57, PIC18F2439, 2539, 4439, 4539, 6520, 6525, 6585, 6621, 6680, 8520, 8525, 8585, 8621 and 8680.
    • Adds REPEAT..UNTIL.
    • Adds 9 bit parity to HSERIN, HSERIN2, HSEROUT and HSEROUT2.
    • Changes PIC18Fxxxx DATA and EEPROM to allow odd locations.
    • Fixes constant folding for large numbers.
    • Fixes unable to load COD file for MPLAB 6.
    • Fixes parity with timeout in serial instructions.
    • Fixes PIC18Xxxxx DEBUGIN modifier timeout.
    • Fixes PIC18Xxxxx SERIN2 DEC modifier timeout.
    • Fixes PIC18F1220 and 1320 configuration error.
    • Fixes PIC18F6620, 6720, 8620 and 8720 BANK12 RAM setting.

    Previous Release: 2.43 (December 2002)

    • Adds support for PIC16C557, 16F627A, 628A, 630, 648A, 676, 818, 819, PIC18F1220, 1320, 2220, 2320, 4220 and 4320.
    • Adds HSERIN2 and HSEROUT2.
    • Eliminates warnings for PULSIN_MAX and some registers.
    • Fixes ADCIN resetting VREF on some devices.
    • Fixes some bank preference selections for 18Xxxxx.
    • Fixes USBIN and USBOUT to work with variable length.
    • Changes PICStic 5 support.

    Previous Release: 2.42 (August 2002)

    • Adds support for PIC12F629, 675, PIC16F873A, 874A, 876A and 877A.
    • Adds separate CAN definition file.
    • Changes PBPW to work with upper ASCII characters.
    • Fixes SYSTEM for bit variables.
    • Changes DEBUG and DEBUGIN baud rate rounding.
    • Changes OWIN and OWOUT timing for high OSC frequencies.
    • Fixes SELECT CASE for byte arrays.
    • Fixes USBIN and USBOUT jump to forward references label.
    • Changes 12-bit core CLEAR to not clear bank 0.
    • Fixes PIC17Cxxx HSERIN timeout.
    • Fixes PIC17Cxxx logical and bitwise NOT.
    • Changes PIC18Xxxx I2CREAD and I2CWRITE timing.
    • Fixes READ and WRITE for PIC18Fxx2.

    Previous Release: 2.41 (March 2002)

    • Adds support for PIC16F72, PIC18F6620, 6720, 8620, 8720 and PicStic5.
    • Adds CHS3 to ADCIN.
    • Adds PIC18Fxxx Defines for loaders.
    • Changes configuration for PIC18Fxxx to match latest MPASM.
    • Changes PicStic variable usage.
    • Fixes Bad Val Op xx fatal error.
    • Fixes SYMBOL for alias + 1.
    • Fixes SEROUT2 with flow control and no timeout didn't clear WDT.
    • Fixes missing PAUSEUS Define for SHIFTOUT.
    • Changes 12-bit core TO, PD to NOT_TO, NOT_PD.
    • Fixes 12-bit core NAP, SLEEP wakeup didn't restore OPTION register.
    • Fixes 12-bit core PULSOUT.
    • Fixes PIC17Cxxx end of page call/goto problem.
    • Fixes PIC17Cxxx COUNT, NAP and SLEEP.
    • Fixes access bank location for PIC18Xxx8.
    • Fixes # for PIC18Xxxx.
    • Fixes ADCIN for PIC18Cxx8.


    Previous Release: 2.40 (September 2001)

    • Adds support for PIC16C432, 433, 745, 765, 781, 782, 925, 926, PIC18C601, 801, PIC18F242, 248, 252, 258, 442, 448, 452 and 458.
    • Adds limited support for 12-bit core PIC12C508, 509, PIC12CE518, 519, PIC16C505, 54, 55, 56, 57, 58 and PIC16HV540.
    • Adds BASIC source level debugging for MPLAB.
    • Adds DIV32 31-bit x 15-bit divide function.
    • Adds HPWM hardware PWM command.
    • Adds OWIN and OWOUT one-wire commands.
    • Adds SELECT CASE statements.
    • Adds USBINIT, USBIN and USBOUT low-speed USB commands.
    • Adds NO_CLRWDT Define.
    • Adds PULSIN_MAX Define.
    • Changes PEEK and POKE to be more compatible with the standard PICBASIC Compiler.
    • Changes REV to be more compatible with BS2.
    • Changes PIC16F627 and 628 default oscillator to XT.
    • Fixes label address for DATA with @.
    • Fixes parity for HSERIN.
    • Multiple serial WAIT modifiers no longer combined into one.
    • TRIS can now be used on PIC17Cxxx devices, as well as, DDR.
    • Fixes PIC17Cxxx END, NAP and SLEEP statements.
    • Fixes PIC18Cxxx illegal opcode with MPLAB 5.40.

    Previous Release: 2.33

    • Adds support for PIC16F73, 74, 76, 77, 18C658, 858 and PicStic 2K.
    • Adds semicolon (;) as comment character.
    • Adds odd parity to SERIN2 and SEROUT2.
    • Adds Define for loaders.
    • Changes READ and WRITE to work with PIC16F627 and 628.
    • Saves count if WAITSTR times out.
    • Fixes SHIFT_PAUSEUS Define for SHIFTIN and SHIFTOUT.

    Previous Release: 2.32

    • Code page optimization changed to fix subroutine ordering problems.
    • Fixes alias for bit numbers > 7 and bit array bank allocation.
    • Header files for PIC16F87x changed from _LVE_OFF to _LVP_OFF.

    Previous Release: 2.31

    • Adds support for PIC16F870 and 871.
    • Adds STR modifier to I2CREAD and I2CWRITE.
    • Adds READCODE and WRITECODE commands.
    • Adds word array element aliases.
    • Adds path to includes to allow source files to be in their own subdirectory.
    • Adds -E command line option to redirect errors to a file.
    • Adds 18Cxxx USE_LFSR Define.
    • Fixes ADCIN for 10 and 12 bits.
    • Fixes STR modifer for arrays in BANK2 and 3.
    • Fixes for 18Cxxx only: ADCIN for 8 bits, I2CREAD, I2CWRITE, Serout and Serout2 open drain modes.

    Previous Release: 2.30

    • Support added for 16-bit core PIC18C242, 18C252, 18C442, 18C452 and 14-bit core PIC16C717, 770, 771 and PIC16F872.
    • Adds ADCIN and LCDIN commands.
    • LCDOUT improved to handle more types of displays.
    • PBP DOS compile time constant folding now can use constants greater than 32767.
    • I2C commands now work properly with arrays.
    • Fixes some table alignment problems.
    • 17Cxxx Lookdown2, Lookup2 now works properly with non-constant table elements.
    • Fixes PM for 17Cxxx register page access greater than 7 and code size greater than 4K.

    Previous Release: 2.21

    • Adds support for PIC16C712, 716, PIC16F627 and 628.
    • Adds CLEARWDT command.
    • Adds support for Microchip ICD.
    • Adds more modes to SHIFTIN and SHIFTOUT.
    • Debug monitor stack contents added.
    • I2C now masks R/W bit of command byte.
    • Byte array elements can now be overlayed with other variable names.
    • Improves some error checks.
    • SOUND now works properly with noise above 4MHz.
    • Fixes 17Cxxx port access for COUNT, POT, PULSIN and PULSOUT.
    • PBPW now works properly with NT.

    Previous Release: 2.20

    • Support added for 16-bit core PIC17C42A, 17C43, 17C44, 17C752, 17C756, 17C762 and 17C766.
    • ON DEBUG, DISABLE DEBUG, ENABLE DEBUG and DEBUGIN commands added to support debug monitor.
    • SER2_BITS define added to send/receive different number of bits in SERIN2 and SEROUT2.
    • New I2C defines added.
    • New IF..THEN optimizations added.
    • LCDOUT is now faster.
    • READ and WRITE now sets data switch for PIC16F87x.

    Previous Release: 2.12

    • ON INTERRUPT now checks before each BASIC instruction instead of after.
    • Less ON INTERRUPT checks performed.
    • ON INTERRUPT vector didn't get set.
    • Stub added for assembler interrupts to save W, STATUS and PCLATH.
    • Bin, Dec and Hex modifiers didn't work correctly in SERIN2 and HSERIN.
    • Top bit didn't get cleared in input byte in SERIN2 and HSERIN parity.

    Previous Release: 2.11

    • Rev, << and >> changed to handle the 0 case.
    • Better error checking on command line switches.
    • More than 255 blanks on a line made compiler stop.
    • LOOKDOWN2 could loop endlessly (fixed in 2.10b).
    • Multiplying a word variable by a constant 2 may yield an incorrect answer (fixed in 2.10a).
    • Adds support for PIC16F873, 874, 876 and 877.

    Latest Release: 2.10

    • Added many new instructions including DEBUG, HSERIN, HSEROUT, SERIN2, SEROUT2, SWAP, XIN and XOUT.
    • Adjusted instruction timing.
    • Adjusted FOR..NEXT to check for loop variable under and overflow.
    • Rearranged bit handling for BS2 compatibility.
    • Arrays didn't work in most input instructions.
    • Branchl, Lookdown2 and Lookup2 didn't compensate for page breaks properly.
    • Fixed 0 length file bugs.
    • PBPW.EXE included to compile large programs.
    • Many manual additions and revisions (new manual recommended).

    Previous Release: 2.04

    • IF..THEN..ELSE..ENDIF didn't always generate GOTO macro.
    • SERIN didn't always handle decimal qualifiers properly.
    • SERIN didn't read decimal numbers properly.
    • Adjusted SEROUT timing, notably the ON and OT modes.
    • Added character pacing capability to SEROUT.
    • LCD defaults could keep 12C67x and 14C000 programs from compiling.
    • I2CREAD wouldn't read more than 1 byte at a time.
    • Miscellaneous bit handling fixes.

    Previous Release: 2.03

    • SERIN wrote over some qualifiers.
    • More array fixes.
    • More page boundary crossing adjustments.

    Previous Release: 2.01

    • Fixed forward references past 2K.
    • Fixed bit-array RAM assignment / handling.
    • SERIN with qualifier and timeout wouldn't timeout.
    • Lookup2 returned bad values.
    • Replaced square root routine.

    Initial Release: 2.00