Well, lot of new things... Generally they are tagged with NEW! (V2.x) in this document.
Also, chapters which have been updated since V2.0 have a red-tagged icon.
Version 2.1 :
IDE:
- Added: A text LCD font generator.
- Added: Help on identifiers by mouse hoovering.
- Added: Information on SFR bits in the SFR display window (partial, to be improved).
- Added: The new compiler directive $TODO generates data available in the code tree.
- Added: Limited pseudo-XML embedded documentation with extended bubble help.
- Added: User tools configuration export / import.
- Added: Several nice editing commands.
- Improved: Parameters insight for built-in and user functions and procedures.
- Changed: Project options dialog look & feel.
- Changed: Project's tree look & hierarchical behaviors.
Compiler:
- New data types support: signed and unsigned 64-bit integers (just for fun: this is definitely not for processors with a small code size!); real Pascal SET support (subset, with limitations).
- New extended syntax for arrays.
- New built-in function: RANDOM and procedure: RANDOMIZE.
- A parameter of a procedure or function may have a default value.
- Main program may have an initialization clause.
- Dual access RAM support for variables.
- Updated processors' data with latest MPLAB-X V3.40 files.
- Improved optimizations.
Version 2.0 :
IDE:
First of all, the IDE editor is completely new, it is now based on the Scintilla editor. Lot of new functionalities, code folding and embedded messages for example.
A new great functionality is to display the device's common package pin-out and the ability to manage datasheets, with a mechanism for downloading the documents from Microchip's site and check for updates...
Also an improved registers display.
Compiler:
The compiler comes with a new database of devices characteristics and is no more using .DEV and .INC files. .LKR files are still used. Now GPUTILS may be fully used without MPLAB installed.
The compiler has been partially rewritten to manage dead code removal (DCR). That was the bigger work.
Next, there's better or new functionalities in the language:
Built-in functions:
MUL16(variable1, variable2) or MUL18
MIN(expression_1, expression_2)
MAX(expression_1, expression_2)
IS_SFR(identifier [. subfield ] )
Built-in procedures:
FILL(variable, value-expression)
New / modified directives:
$A | $ASSERTIONS - Generate assertion code
$CG | $CODEGEN - PLC mode code
$H | $HINT | $HINTS - Define compiler hints behavior
$OPTIMIZE_RAM - Define RAM optimization mode
$UHINT - Generate a compiler hint
$VECTORS - Define reset and interrupt vectors
Declarations:
Constants, System constants and pseudo variables, EEPROM constants
Variables, EEPROM memory allocation
Tools: