CCS PICC REVISION HISTORY

Revision Description
4.124 PCW Wizard was not starting right in 4.123.  It is now fixed.
4.123 Various PIC24 optimization errors have been corrected
New feature to stream RS232 data through the ICD has been added
Some register addresses have been fixed for some of the new parts
Problems selecting the alternate ICD pins on some parts is now fixed
4.122 An IDE error (List Index Out of Bounds) is fixed
Problems with complex pointers to ROM have been fixed
A bug in the handling of pointers in enhanced 16 parts is fixed
A rare problem with the PIC24 signed multiply on 48 and 64 bit numbers is fixed
4.121 A problem with PIC24 initialization and optimization in very large programs is fixed
A linker problem is fixed that caused errors like "hidden reference"
4.120 Timer A and Timer B support has been added for chips that have them
New fuses were added for the newest chips and a few fuses were changed for consistency
Built in functions have been updated for the new features in the K22 parts
A bug in the make16() for some arguments and chips is fixed
PIC24 parts with abnormal PPS register locations now work with #PIN_SELECT
The subscript notion [][xx] now works for data declarations
The wrong register being used for IOCB on some parts is now fixed
Some PIC24 code generation bugs have been fixed
Some problems with the register export in the device editor have been fixed
4.119 A PIC24 optimization bug is fixed
A problem with addressmod in some recent versions is fixed
Improved time and precision on trig functions
4.118 A bug in the PIC24 %U is fixed
4.117 A memory allocation problem for enhanced 16 parts around xA0 is fixed
A bug in complex expressions involving != or == for PCD is fixed
The #TYPE SIGNED directive now also affects char declarations
An undeserved error from SPI_XFER in PCM/PCH is fixed
4.116 A corrupt device database released with 4.115 is fixed
4.115 PCD SPI defines SPI_XMIT... have been modified to operate the same as PCM and PCH
A number of device database errors have been fixed
A PIC24 bug with &= on 32 bit operands is fixed
New #USE TIMER library added
4.114 An internal error with some bit expressions is now fixed
4.113 Using = to assign a constant string to a RAM array is now allowed
Corrected a bug dealing with bits in byte expressions
A lot of chip specific updates to work around quirks and new features
4.112 Some ROM allocation problems when using the ROM typemod have been fixed
Added QEI functions for PIC18 parts
Corrected some problems with register names in the device database
4.111 A problem with PIC24 ROM pointers inside RAM structures has been fixed
Some missing configuration fuses have been restored
4.110 Peripheral interface for a number of chips have been updated
size_t has been changed to help with large malloc's
4.109 Some errors in some device header files have been fixed
PIC18 INT_LVD is now renamed to INT_HLVD
4.108 Built in functions, device database and header files updated for the newest parts
PIC18 bug involving int32's in complex expressions is fixed
Some issues with PIC24 structure bit fields in expressions are fixed
4.107 Built in functions, device database and header files updated for the newest parts
Programmer support for PIC32 added and PIC24 programming is now much faster
4.106 Missing timer 1 defines for some chips have been restored
Some optimization problems with indirect access of bit fields on 24 bit parts is fixed
Load time for 24 bit parts has been greatly improved
4.105 Peripheral interface for a number of chips have been updated for the newest features
A problem with -> across differing address spaces is fixed
PCD problem with %w is fixed
The PCD #USE SPI now correctly sets the standard modes
printf has been improved for programs that also use interrupts
4.104 SHORT INT is now the same as SHORT and INT1 as it was in earlier versions
Problems with printf redirection to functions that use ptr registers is fixed
Some problems with complex structure pointers are fixed
PCD SPI MODE= fixed to match documentation
4.103 A problem with some initializers (the = in a declaration)is fixed
(PIC16F690-ICD debugging has been fixed in this version but re-broken above for ICDS-3V!)
4.102 Some issues with pointers to ROM have been fixed
Compiler status window now shows worst case RAM use not best case
4.101 Internal error on some projects that use dual priority interrupts is fixed
INT_RA not defined on some parts is now fixed
4.100 New command line option sourceline= to add a source line to the start of the file
Dereferencing of function pointers is no longer required
New preprocessor function definedinc() may be used to determine the use of a C identifier
Enable_interrupts() may now be used to set the edge detection on interrupts that allow it
A new function INPUT_CHANGE_x may be used to find port pins that have changed
#build/#export expanded to improve interfacing to bootloaders and resident libraries
New example set API.ZIP added to show how to use the new #build/#export features
time_t changed to rtc_time_t in the device header files, time.h not changed
4.099 A problem with interrupts corrupting port A on some parts is fixed
4.098 A number of updates made to support the newest chips
Some PIC24 problems with memory over 0x2000 are now fixed
4.097 Problems with declarations of the form "long long", "long int" and some others fixed
4.096 A problem with the 24 bit PWM is fixed
4.095 A problem running on some Vista systems is fixed
A debugger failure on some chips is fixed
4.094 Configuration fuses have been updated for many parts
A bank switching problem with the enhanced 16 parts is now fixed
A number of built in functions have been updated to support the newest chips
Some issues in the 24 bit compiler with mixing bytes and words is fixed
4.093 A PCD problem using an int1 in a switch is fixed
PCD binary output files are now correct
PMP functions were added to all parts that have this hardware
sizeof() now reports the correct size of complex adat structures
Some un-deserved IDE debugger errors are now gone
SFR addresses for the newest devices have been fixed
4.092 Optimization for 14 and 16 bit parts is improved
CCP related errors in some header files are now fixed
4.091 Some problems with the 24 bit SPI and RTC are fixed
A number of issues with the new J11 and K50 parts are resolved
A problem with bit arrays inside a structure is fixed
(PIC16F690-ICD does not debug from here and up on ICDS-3V)
4.090 A number of bug fixes have been incorporated for the 24 bit compiler
(PIC16F690-ICD debug ok here and below on ICDS-3V)
4.089 A duplicate filename error on install is fixed
4.088 The PCW IDE debugger interface to the ICD has improved speed and functionality
A problem with printf'ing bit arrays inside a structure is fixed
#PIN_SELECT has been added to PCH for the new parts with PPS
4.087 A problem with initializing constant structures with large pointers to RAM is fixed
A number of PCD issues have been resolved
Pin select fuses for parts with multiple ICSP pins have changed, see readme.txt
4.086 Some I2C bugs with some PCD parts have been fixed
Fuses for OSCIO/NOOSCIO have been flipped for several dsPIC33 parts
PCD USE SPI now correctly defaults to MSB first
4.085 A number of optimization issues on 24 parts have been fixed
A PCW IDE problem invoking the ICD software due to the CRC is fixed
4.084 CAN Bus drivers for the 24 bits parts is included with this release
Support for Microchips ICD3 has been added
Some 24 bit compiler byte/word access issues are fixed
A problem with PIC18 expressions that require a lot of scratch memory is fixed
Port addresses for some 24 bit parts were defined wrong and this is fixed
4.083 Some issues with the format of configuration data in some hex files is fixed
A bug in accessing odd bytes in memory over 8K is fixed for PCD
4.082 Some problems with ROM pointers have been fixed
If you use pointers to ROM see the readme.txt file for possible syntax changes
4.081 A PCD flaw in the 32 bit less than is fixed
An optimization bug affecting delay_us() in some programs is fixed
4.080 A PCD problem causing a overwrite of the W0 register in some expressions is fixed
A bug when mixing signed and unsigned variables in some relational expressions is fixed
A problem disabling interrupts for functions called from an ISR and MAIN is fixed
4.079 Some math functions have been improved or fixed
Some PCD debugging issues have been fixed
4.078 A number of optimization issues on 24 parts have been fixed
The PIC24/dsPIC %f has been improved
A configuration word problem with PIC24 GB parts is fixed
The arguments to SETUP_CCPx() have changed a little for some parts, see the device header file
A baud rate problem with some calls to setup_uart() is fixed
4.077 A memory allocation problem in PCD has been fixed
Some problems with slave I2C have been fixed, see the newest EX_SLAVE.C
A problem with recursive #defines is fixed

Code written for the I2C slave with compiler <=4.076 needs to be re-written for compiler >=4.077:
A bug was discovered in i2c_isr_state() that only showed up at certain speeds. The fix forced us to change the EX_SLAVE.C example as we had depended on the mis-behavior. Look at the new EX_SLAVE.C and you will see there is a minor change you need to make to your ISR as well.

4.076 The COFF file format has been modified to allow MPLAB to read complex structures
A number of PCD issues fixed including access to high memory locations
Type casting of unsigned constants to signed constants modified for ANSI
4.075 A debugger problem with 88x parts is fixed
The debugger now offers an option to freeze the PIC peripherals
A PCD bug setting and clearing bits in high memory locations is fixed
4.074 A bug in structure bit to byte transfers is fixed
A PCD problem with &=0xff on an int16 is fixed
A problem in setup_counters() for some chips is fixed
4.073 UART definitions for some chips were wrong in 4.072
4.072 A number of bug fixes made for the PCD (24 bit) compiler
Setup_WDT() and Setup_Counters() have been updated for the newest chips
Using just UNSIGNED for variable types in PCD now yields a int16, not an int8
I2C slave now defaults to the clock stretch mode for all chips that support it
4.071 A debugger problem is resolved
4.070 Some IDE issues including hidden debugger screens have been fixed
I2C slave algorithms have been updated for some chips
4.069 Compiler R/W files are now kept in the windows APPDATA directory
An interrupt bug on many PCD devices is fixed
A PCD optimization error is fixed
4.068 RS232 software timing improved a little
A math error (since 4.067) when mixing ints and floats is fixed
4.067 An addressmod bug has been fixed
A problem with LCD_SYMBOL when using more than 8 segments per symbol is fixed
An undeserved syntax error some users got in #bit is fixed
A number of PCD problems have been fixed
4.066 New PCD built in functions have been added
A problem with Vista access violations is fixed
4.065 Issues using the ICD with chips that do not report a device ID are solved
A number of PCD problems have been fixed including problems with bit fields in structures
4.064  Support for Real-ICE and ICD2 has been added
4.063 A number of bug fixes made for the PCD (24 bit) compiler
4.062 An error concerning extra data on a #device line has been corrected
4.061 A problem with #USE SPI and the hardware SPI pins is fixed
A problem linking for ICD debugging is fixed
24 Bit Wizard added to the IDE
4.060 Support has been added to allow multiple ICD units connected to the same PC
4.059 An optimization problem involving getc() in an expression is fixed
A problem managing breakpoints in the IDE is fixed
4.058 Chip specific PCD interrupt problems are now fixed
A bug involving pointers to functions is fixed
4.057 A number of PCD bug fixes were made
4.056 More PCD updates have been made
A problem with rom pointers is fixed
A problem reserving ICD ROM on some parts is fixed
4.055 A problem with #bit on some chips since 4.054 is fixed

4.000 to 4.054 too tweaky to use, version 3.243 much more stable

4.054 A number of PCD bug fixes were made
4.053 A problem with the conversion of constant integers in floating point expressions is fixed
4.052 An ADC bug introduced in 4.051 is fixed
4.051 A number of PCD bug fixes were made
4.050 An optimization bug has been fixed
A number of PCD bug fixes were made
An access violation in the PCW debugger has been fixed
#ROM now has a CHAR option to compress two characters into a 14 bit word
4.049 I/O port registers for many chips were wrong in the 4.048 release, now fixed
4.048 A problem with PORT_B_PULLUPS is fixed
An issue with SIZEOF on ROM data is fixed
A number of updates for PCD, more to come soon
The 16F88x comparator function is fixed
4.047 None
4.046 Release of the PCD 24 bit compiler
4.045 Bit to Bit assignments broke in 4.044 now fixed
4.044 A PCB math error subtracting from a constant is fixed
PCH was not allowing large constant arrays in 4.043, this is fixed
4.043 A bug recently introduced concerning indirect bit assignments is fixed
4.042 COF debug files now include the full paths (instead of rel paths) to source files for MPLAB
4.041 A parameter passing bug recently introduced is fixed
4.040 A number of IDE issues are fixed including some build problems
Optimization improvements
Updates for the newest parts
4.039 The IDE file slide out is fixed
A PCB problem with subtract in some complex expressions is fixed
4.038 An RS232 problem for some configurations (since 4.037) is fixed
4.037 PJT file is no longer overwritten on each compile
IDE updates for PCD beta testing
4.036 A problem with some PCM switch statements is fixed
4.035 A problem with some constant strings in PCM is fixed
A bug in memcpy for large arrays in PCH is fixed
4.034 A problem with EXTERN on 1 bit variables is fixed
Some issues with data saved in ROM have been fixed.  See readme.txt for info on ROM data.
4.033 A new #import option for binary files has been added
Some new GETENV options have been added
Switch is fixed to work with over 128 cases
A multiple compilation unit example is now included (mcu.zip)
Some warnings in stdlib.h are removed
A problem with memset clearing too much RAM in PCH is fixed
Some issues with arrays of function pointers is fixed
Updates made for the newest chips
4.032 Some linker warnings and error messages have been fixed and clarified
A problem with < and > for bit operands is fixed
4.031 Some WDT issues on chips with a WDTCON register are fixed
A linker problem has been fixed dealing with matching overloaded functions
A problem with #define CCS3 setting the pointer size incorrectly is now fixed
4.030 Some IDE editor problems have been fixed
4.029 An optimization problem dealing with bit arrays is fixed
Some issues with write_program_memory erasing too much or not enough are fixed
Updates made for the newest chips
4.028 A run time error in CCSC for some users is fixed
4.027 Removed an IDE query after compilation concerning file reloads
4.026 A code optimization bug has been fixed
Problems with reading and writing to flash on some parts is fixed
Experimental code completion added to the IDE (defaults to off for now)
4.025 Updates made for the newest chips
4.024 A problem with the floating point unary minus operator on some chips is now fixed
The IDE now includes an option to use classic menus instead of the new ribbons
4.023 An IDE problem building some projects is fixed
4.022 An interface problem to MPLAB is fixed
4.021 More IDE issues have been fixed
Linker error messages have been clarified
 Some command line linker issues have been resolved
A bug dealing with pointers to constants is fixed
The & unary operator by default no longer returns a generic (int8 *)
4.020 Some problems with arrays of function pointers have been fixed
The cursor disappearing on blank lines in the IDE is fixed
A Linux version has been released
4.019 More IDE issues have been dealt with
WDT setup has been clarified for several chips, check the header file if you get a compile error
4.018 A problem with the registers used by SETUP_CCPx for some chips is fixed
4.017 Several IDE issues have been fixed
Updates made for the newest chips
4.016 An error message problem with very large programs is fixed
An access violation error in the IDE is fixed
4.015 A number of IDE issues have been fixed, more are coming
4.014 A problem using ZERO_RAM and ICD=TRUE together on some PIC18 parts is fixed
Sending a constant string to functions with a char param no longer sends an extra byte
The reserved bits in the configuration words are now set correctly
Constant data structure names now appear in the .SYM file in the ROM section
4.013 Fixed a bug in PCM concerning some bit arrays
Configuration word for 12 bit parts has been moved for MPLAB
A post increment problem with 1 bit data types is fixed
4.012 A number of IDE issues have been fixed, more are coming
A type conversion problem with some >> operations is fixed
A new method to calculate a ROM checksum for PIC16 is added (see ex_checksum.c)
4.011 A number of error messages have been improved
Some reported problems with the IDE have been corrected
A problem passing bit arrays is now fixed
4.010 Fixed a bug with the RS232 timeout feature
A memory allocation bug involving local bit arrays is fixed
Support for real tabs added to the IDE
4.009 An internal error message is now fixed
Several IDE issues have been cleaned up
A problem dealing with constants in a switch statement is fixed
An error for large constant arrays in PCM is now fixed
4.008 A "Can not focus" error when starting PCW is fixed
4.007 The debugger mouse-over problem is fixed
Some syntax errors with #USE are fixed
4.006 Some wizard bugs have been fixed
Some issues with the debugger windows is now fixed
A problem with initializers is fixed
4.005 Reported bugs have been fixed concerning default parameters, and overloaded functions
A problem with arithmetic on fixed point data types is fixed
4.004 An error 103 for some installations when using within MPLAB is now fixed
Some error messages relating to overloaded functions are fixed
Some missing Wizard files are now included in the build
The IDE no longer saves files not modified for a save-all or compile
Various glitches reported for both the IDE and compiler have been corrected
4.001 Initial release of the version 4 compiler

PICC 3.xxx to 4.xxx

3.249 A debugger problem with PIC18 is fixed
3.248 Some poor optimization in 3.246 is now fixed
Over-allocation of some unions is fixed
3.247 DOA - Never released
3.246 A switch() problem resulting in an internal error message for some programs is fixed
3.245 The optimization level was being reduced for some programs, this is now fixed
3.244 ICD interface updated

Last really stable build of this version was 3.243, PIC16 wizard broken past here up to 3.249

3.243 Optimization problem with MAKExx is now fixed
The 16F88 INT_OSC_FAIL interrupt now works correctly
The PIC18 #ASM instructions CALL and RETURN now allow a 0/1 S option
3.242 Internal changes to support version 4 resulted in minor code generation and optimization changes
A bug in MAKE16 sometimes causing nearby statements to fail is fixed
3.241 A problem installing on systems with international date formats is fixed
A serious optimization bug (introduced in 3.240) is fixed
3.240 Minor code generation and optimization changes
3.239 Resolved some problems with the power PWM initialization
Some menu items grayed out in the PCW IDE are fixed
3.238 Fixed a problem where some users were getting an undeserved file mis-match error
3.237 The EXTERN qualifier is now implemented, if your code uses EXTERN see the readme.txt
Left justification has been added to %f, use %x.yf where x<=y to get left justification
3.236 restart_cause() problems on some PIC16 parts is fixed
Some list file and coff file generation changes made to support the upcoming linker
A PCB optimization problem with write_bank() is fixed
3.235 A PIC18 optimization problem has been fixed
An ADC problem with 16C774 like chips is fixed
An undeserved syntax error involving forward structure declarations is fixed
A problem with high priority interrupts on some chips is fixed
Problems with setup_wdt() and setup_oscillator on some new chips is fixed
The compiler now tolerates a .PJT file that is marked read-only
Extra, non-applicable information in errors and warnings has been removed
PCW now highlights INT8 properly
3.234 Still more %f adjustments.  It should now solve everyone's problems.
More return results added to RESTART_CAUSE() for many chips
3.233 A problem with #ZERO_RAM on parts with 4K of RAM is fixed
The %f, %w and %g formats have been adjusted to be more consistent
%w now accepts signed numbers
3.232 printf %f now puts a leading 0 for numbers less than 1
A number of new example files have been added
A limit on the number of #rom directives has been removed
3.231 New function added:  I2C_ISR_STATE()
I2C_START() has been improved for use in multi_master mode
New function added:  _MUL
New printf specifications %g and %w added and %f improved
New #INT_* option: HIGH for more complete handling of PIC18 high priority interrupts
3.230 A number of new example files have been added
Device definitions have been cleaned up for some parts
3.229 LCD_SYMBOL now allows 1-16 segments per symbol
#error now allows warning and information level messages
Built in functions have been updated for the newest parts
3.228 New function added to help jump from a boot loader ISR to the application ISR
3.227 Various improvements have been added to the PCW IDE
A number of new example files have been added
3.226 A bug involving reference parameters in inline functions that are nested structures is fixed
The I2C master algorithms have been updated to make multi-master more robust
A PIC18 optimization bug causing incorrect bank switching is fixed
A PIC18 problem when SWITCH is used inside and outside an ISR is fixed
PCW Wizard updated for the newest chips
3.225 The #type has been expanded to allow a default address space to be specified
The capability to read an encrypted include file has been added
PCW allows the generation of an encrypted include file for distribution
A bug with rotate_right/left when using arrays with expression indexes is fixed
Some formatting issues with %LD are fixed
User defined functions in a #ORG DEFAULT block are now always included in ROM
A bug in TYPEMOD with ranges spanning over 256 bytes is fixed
A bug in relational expressions involving both int32's and floats is fixed
3.224 Duplicate #defines in some header files are corrected
A problem with the %02d format in printf is fixed
Built in functions have been updated for the newest parts
3.223 A problem with I2C_START() on some parts is fixed
Formatting inconsistencies with %U and %D are fixed
LCD support for the newest parts with direct LCD drive has been added
Help file brought up to date with the newest features
A problem with the evaluation of (!bitvar = = 1) in some expressions is fixed
Some optimization improvements have been made
3.222 PCW debugger now shows port status in the peripheral window
Some optimization improvements have been made and some bugs fixed
Baud rate generation for parts with 16 bit generators is improved
Fuse names for some chips have been updated to avoid confusion
The programming algorithm for 12 bits parts has been updated
A bug in PCB (12 bit parts) floating point math is fixed
3.221 A problem with the way local static variables are initialized is fixed
3.220 The device filenames have changed so all the center C and F characters are upper case (Linux note)
A few optimization bugs have been fixed
Some device definitions have been updated
3.219 Some device definitions updates for the newest parts
A bug in #INT_DEFAULT is fixed affecting code located outside page 0
An optimization bug affecting some subtract operations or rare bit operations is fixed
PCW Replace next fixed to restart from cursor position
A #ZERO_RAM bug affecting parts with RAM in bank 15 is fixed
A problem with SETUP_POWER_PWM_PINS() is fixed
A problem treating some 32 bit unsigned numbers as signed in rel expressions is fixed
3.218 A bug with interrupt handling is fixed.  If you use FAST ints see readme.txt
3.217 PIC10F inserts MOVWF 0x005 at ROM location 0x000 (OSCCAL load)
PIC10F will compile without a SLEEP instruction after the last user code by using #BUILD (NOSLEEP)
PIC10F correctly compiles without GOTO 0x001 (Interrupt skip) at ROM location 0x000 by using #BUILD (RESET=NONE)
A bug in the PCB switch statement is fixed
The #IF !x evaluation now works like if(!x) the same as #IF x==0
A problem with the 18F1220/30 UART is fixed
The PIC18 compiler now only disables low priority interrupts to prevent reentrancy
3.216 An optimization bug involving complex multiplies is fixed
A problem with 32 bit constants in a printf with %lx is fixed
A malloc() problem in PIC18 is now fixed
3.215 A problem with %u during printf redirection is fixed
The SSP pins are corrected for non-standard chips
PCW not recognizes MPLAB 7.0
Flash programming algorithms updated for the newest chips, see readme.txt
New function WRITE_CONFIGURATION_MEMORY has been added
Some baud rate issues with parts that have a EUART are fixed
#USE I2C now allows the speed to be set in BPS using FAST=xxxxxxx
3.214 An underserved syntax error in #IF is fixed
A bug in set_tris_x() in PIC18 in fast_io mode is fixed
Some problem with the header files for new chips are fixed
A PIC18 optimization bug is fixed
3.213 Updates for the newest chips
An internal error with some shift operations involving int32's is fixed
3.212 A %u and %d bug is fixed
3.211 A problem causing the compiler to hang rather than reporting some errors is fixed
SPI_WRITE now uses the BF flag to signal complete, not the interrupt flag
A problem with interrupt handling when an ISR uses a PIC18 ROM table is fixed
3.210 A bug in the printf %f is fixed
A PIC18 problem with arrays exactly 256 bytes is fixed
Updates for the newest chips
The \ line continuation character is now accepted for all preprocessor directives
3.209 An error 217 after compiling programs for large ROM chips is fixed
3.208 A bug involving (bit_test(...)==x) is fixed
Some PIC18 optimization problems are fixed, including problems with larger constant arrays
WRITE_PROGRAM_MEMORY was broke on some parts and is now fixed
The PCW version number is now synchronized with the compilers
3.207 Some new features added to setup_uart for the newest PIC parts
A bug involving some constant array references in an ISR is fixed
The number of error messages is now limited to 100
Bit operations with == and != are now more optimized
A bug with input_e() and output_e() is fixed
3.206 A problem with the 16F688 UART is fixed
A PIC18 problem with constant bit fields in structures is fixed
New function INPUT_STATE() added to read a pin without changing the pin to input
3.205 A #OPT 9 optimization bug has been fixed
Some formatting issues with %e are fixed
3.204 Optimization bug from 2.203 is fixed
Missing nibble on larger addresses in the LST file is fixed
Date/Time added to the LST file
Support for Timer 5 added
3.203 Floating point multiply for PIC18 is now much faster
A bug in 3.202 accessing bit fields in constant structures is fixed
Some optimization bugs including one involving & is fixed
3.202 A problem with the definition of external ROM is now fixed
The extra NOP FFFF inserted for some chips is now removed by default
An optimization bug dealing with the BSR is fixed in the PIC18
The <<= and >>= operators on the PIC18 with int32's no longer corrupt memory
The +P command line option was failing on some systems, this is fixed
SET_PWMx_DUTY broke in 3.200 is now fixed
Some reported problems with the Bootloader examples are fixed
3.200 A/D built in functions overhauled to support the newest chips (see readme.txt)
PCW device editor updated to support new chip features including dsPIC
New RFID drivers added
PIC18 optimization has been improved
#build has been added to allow location of reset and interrupt vectors
#build also allows the specification of external ROM on PIC18 parts
3.191 The read/write program_memory functions missing from some parts is now back
An accuracy problem in the delay functions is fixed
A bug involving some relational expressions (like sint32>=0) is fixed
3.190 This is a baseline release
3.190  The internal error PPUSE has been fixed
3.189 Some #org issues have been addressed
Some new examples added (mag card reader and 2mb serial flash)
Some more device specific issues have been fixed
Problems with very large PIC18 data structures are now fixed
Macro processing algorithm has been updated to meet ANSI requirements
3.188 Some device specific issues have been fixed
The %used for some parts in the ICD mode is now fixed
Problems with non-administrator users on XP and Win2000 have been fixed
New separate boot loader examples have been added
3.187 A problem with the compiler generating bad code inside MPLAB 6.4x is fixed
New PIC18 optimization has been added for beta test (see readme.txt)
3.186 A bug with #typemod and bit variables is fixed
A problem with * inside bit_set and bit_clear is fixed
A problem with some table reads in PIC18 is fixed
Various debugger issues have been resolved in PCW/PCWH
Updates for the newest chips
3.185 Error reporting has been improved
A problem with two dim arrays in the COFF debug file is fixed
A new #device option now prevents WRITE_EEPROM from waiting for the write
A new directive #fill_rom allows filling unused ROM with a fixed data word
Updates for the newest chips
3.184 A problem with fuses in the ICD=TRUE mode has been fixed
A new built in function CLEAR_INTERRUPT has been added
3.183 The #INT_RB was changed to #INT_RA on parts with no port B
A bug with the ++ operator on field pointers in *=16 mode is fixed
A PIC18 problem with floating point - when a float crosses a bank is fixed
The fuse settings forced in ICD=TRUE mode have changed for some parts
The LABEL_ADDRESS function now may be used to obtain the address of CONST data
3.182 Updates for the newest chips
3.181 The internal error PC_PR is fixed
Access violations with very large programs is fixed
Error messages are now limited to 100 errors
#ROM now allocates a dedicated segment, see README.TXT for more info
Improved optimization
Support for newest chips has been added (including the 648A debugger)
3.180 New RS485 support has been added (see readme.txt)
3.179 Better support for parts with external memory has been added
A new function SETUP_OSCILLATOR has been added to control the INTRC
An access violation during COFF generation is fixed
Support for newest chips has been added
3.178 A missing DLL error for some ICD users is now fixed
3.177 Support for newest chips has been added
Some debugger and ICD programming issues have been resolved
Various PCW menu bar issues are fixed
A problem with #org's over 0x20000 is fixed
3.176 An out of RAM error in 3.175 is fixed
CONST data used by #SERIALIZE is no longer optimized by the compiler
Debug support for 16F87/88 has been added
3.175 Problems with error messages in PCW are fixed
Chip database has been updated for the newest chips
3.174 Error reporting has been improved
Some PCW IDE updates have been put in
3.173 A #bit bug is fixed
Some PCW IDE updates have been put in
3.172 A bug in the PIC18 interrupt handling is fixed
More debugger updates
3.171 More debugger updates
A PIC18 bug with ++ in complex expressions is fixed
A PIC18 problem passing large structures by value to functions is fixed
A list file problem with programs that have over 64K list file lines is fixed
3.170 A problem with hw multiply on PIC18 between interrupt and non-interrupt functions is fixed.
A type conversion problem involving signed numbers and constants is fixed.
A number of debugger updates have been incorporated
3.169 Debugger: Breakpoint toggles on margin double click
Debugger: Editor jumps to source line when double click on line in break, stack or ROM window.
Debugger: Crash on stop, adding a break or displaying rom is fixed
3.168 More debugger problems have been fixed and the performance is much improved
3.167 An IDE Access violation is fixed
3.166 Some IDE bugs have been fixed
COFF file now has new MPLAB 6.30 fields
3.165 The newest MPLAB 6.30 requirements are now incorporated in the COFF file
The error "Function not defined" is now fixed
Some bugs with programs > 128K are now fixed
Many debugger problems have been fixed and the performance is improved
A bug in PIC18 32 bit multiply is fixed
3.164 Compile time conversions from float to int now truncate (not round) per ANSI
3.163 The .SYM file now contains various compiler settings and output files
A debugger error is now fixed
3.162 Serial number support added and more advanced ICD.EXE is released
More PCW IDE improvements incorporated
A problem with error reporting and sometimes a compiler hang is fixed
3.160 Some COFF debug file problems are resolved
Pointers to functions are now supported
PCW IDE improvements incorporated
Examples updated to use more modern chips
3.158 A new format for the help file (.CHM) has been released
A hang problem (since 3.157) is fixed
3.157 The compiler can now generate COFF debug files
CCSC has a new look
3.156 A bug in STRCPY for PIC18 is fixed
3.155 Newest Microchip parts have been added
An access violation problem in ICD.EXE (since 3.154) is fixed
3.154 PCW Debugger updates
Install program has changed
Example programs and headers updated to reduce warnings
3.152 A problem with the .COD file introduced in 3.151 is fixed
3.151 PIC18 WRITE_PROGRAM_MEMORY algorithm has been updated
A bank select bug for PCM has been fixed
3.150 IDE updates to support more open files and play nice with other programs
Debugger updates: 12F675-ICD support and mouse-over variable viewing
An access violation problem is fixed
3.149 Some data type problems have been resolved fixing SIZEOF issues
PCW Debugger updates
New capability to define memory regions has been added (see readme.txt)
3.148 Some bugs with error message locations are fixed
read_adc() has some new options (see readme.txt)
New capability for 629,630,675,676 chips has been added (see readme.txt)
3.147 PCW Debugger updates
Newest chips added
3.146 Fixed a bug in MAKE8() that caused a lot of code to be generated
3.145 Some debugger problems are resolved
Compiler hangs with certain preprocessor errors in the +EA mode are fixed
A problem with %x.yf when x is too small is fixed
3.144 Multiple error messages are now available (see readme.txt)
A TAB problem in PCW is fixed
3.143 Optimization is improved
Additional warning messages added
A problem with very large constant arrays on PIC18 parts is fixed
A problem detecting recursive macros is fixed
A bug was fixed that occurred with nested switches across a 64K boundary
3.142 Some warning messages have been added
Some problems with the -> operator have been fixed
3.141 Some problems with structure pointers (since 3.140) are fixed
3.140 Some internal limits increased to permit very large programs
PIC16 interrupt scheme has changed a little
3.139 Optimization bug fixed and improvements added
Configuration word settings now included in .LST file
3.137 Interrupts now use compatibility mode unless the FAST keyword is used to avoid chip problems
3.131 The COD file has been updated for compatibility with MPLAB 6
3.130 The volatile keyword is now implemented
The %f, %e and %u formatting has been improved
#ROM now accepts constant strings
3.129 Some confusion over PIC18 byte and word addresses resolved, PIC18 always uses bytes
3.127 SIOW has been improved
3.125 Compiler work-arounds added for the latest PIC18 errata
A problem with interrupts getting disabled is fixed
3.122 The PCW IDE has new customizable editor functions
3.108 Support for large PIC18 constant arrays has been added.
PIC18 now uses interrupt priorities (see readme.txt)
New #ORG ... DEFAULT option added
3.104 PIC18 PROGRAM_EEPROM read/write fixed/changed -- See readme.txt
3.101 Substantial optimization improvements
3.093 Linker algorithm has been optimized
Example programs updated to avoid using ICD pins B6,B7
3.089 PCW IDE Improvements
ICD-2 support has been added
3.076 PIC18 arrays over 128 bytes is now supported and outputs use the Latch registers
getenv() has been added
3.072 Various ANSI features added such as SPRINTF
3.069 RS232 functions now allow stream IDs
3.061 Added support for inner block {} variables
3.050 PIC18 now stable and out of beta state
3.043 A symbolic list file format has been added for all compilers
3.000 Compilers are now a full 32 bit Windows product and PIC18 support added

PICC 2.xxx to 3.xxx