Recent ZBasic Compiler Revision History

v2.5.6 - 21 July 2008
-------------------------
- Added task stack size computation for native mode.

- Added an error message for native mode when code size exceeds the available space.

- Corrected a native mode code generation error for RamPoke() and related routines.

- Corrected an internal error that occurred when an unused variable has an initializer.


v2.5.5 - 09 July 2008
-------------------------
- Added support for 8-bit PWM routines.

- Added support for an optional parameter on all PWM routines to return a
  success/failure indicator.


v2.5.4 - 07 July 2008
-------------------------
- Corrected a problem where too many ISRs were included for WaitForInterrupt().


v2.5.3 - 04 July 2008
-------------------------
- Modified the type checking to allow conversion functions like CByte(), CInt(),
  CUInt(), etc. to take a Boolean parameter as documented.

- Corrected a VM code generation for CBit() with a constant string parameter
  with optimization off.

- Corrected a VM code generation problem for CNibble() with a string parameter.

- Added support for pins B.4 to B.7 for Oak Micros native mode devices with SPI EEPROM.


v2.5.0 - 16 June 2008
-------------------------
- Added OpenI2CSlave(), OpenSPISlave() and CloseSPI().

- Added an optional fourth parameter to OpenSPI() to regulate receive timing.

- Added support for GetQueueSpace().

- Added support for "raw" initialization data for Program Memory data items
  using Attribute(raw).  The initialization file should contain the raw binary data.

- Corrected a false warning regarding the state of initialized variables.

- Corrected a problem with a missing temp variable for a string parameter.

- Corrected a VM code generation problem for IIF() with a Boolean result.

- Corrected a native mode code generation problem with a For loop having a negative step.

- Corrected a native code generation problem with an empty If statement.


v2.4.5 - 14 April 2008
-------------------------
- Corrected a problem where a Boolean parameter to a task resulted in
  an internal error.


v2.4.4 - 08 April 2008
-------------------------
- Added Option.ExtRamAble constant to indicate if external RAM is supported.

- Added support for the defined() operator in conditional expressions.

- Corrected a problem with port configuration directives.

- Corrected a native code generation problem for ZXCmdMode().


v2.4.3 - 17 March 2008
-------------------------
- Added the ability to build native-mode libraries.


v2.4.2 - 11 March 2008
-------------------------
- Corrected an initialization problem that sometimes caused a false error message
  about the application consuming all available memory.


v2.4.1 - 10 March 2008
-------------------------
- Added support for native mode devices.

- Added out-of-range warnings for Delay() and Sleep().

- Added support for defining Enum constants.

- Added support for Based procedures.

- Added support for default parameter values in procedures.

- Added optional support for conditionals in project and argument files.

- Added support for enabling/disabling warning messages in the source code.

- Added support for automatic value-to-string conversion for the & operator and Debug.Print.

- Added support for using the operator + for strings like operator &.

- Added missing port constants for ports H, J, K, and L.

- Fixed a problem with LCase() when it had a constant parameter.

- Fixed an access violation related to use of While..Wend.


v2.2.1 - 30 August 2007
-------------------------
- Fixed an access violation that occurred when invoking a Sub as if it were a Function.

- Added support for structure assignment from/to a function's return value and parameters.


v2.2.0 - 26 August 2007
-------------------------
- Added support for StrReplace(), ValueI() and ValueL().

- Added support for CSng(), CInt(), CLng(), et al to take a string argument.

- Added support for the ZX-1280.

- Added support for defining a "Persistent String" type which results
  in a Persistent BoundedString of the default length.

- Added pin parameter validation for InputCaptureEx().

- Added array bounds checking for structure member references.

- Added a check for exceeding the available Persistent space for the target device.

- Added Register.FirstTime (read-only).

- Added Register.PRR for the mega644-based devices.

- Modified the parameter checking for WaitForInterrupt() to ignore the "internal
  reference" bit for the analog compare interrupt.

- Fixed a problem in validating pin parameters for InputCaptureEx() and
  GetADC() expressed in the port/bit form and WaitForInterrupt() intNum values.

- Fixed an internal error that occurred when a non-existent file was specified
  with the .Source initialization method.

- Fixed a problem with code generated for comparing structure members.

- Fixed a problem where InputCaptureEx() wasn't allowed on mega32- and mega644-based devices.

- Fixed a problem where an erroneous warning was being issued about
  possible use of an uninitialized variable.

- Corrected the constant value for CStrHex(b) where b is True.

- Fixed a problem where Option Base had no effect.

- Fixed an access violation due to a syntax error in concatenation of constant strings.

- Corrected a problem relating to defining an array of Persistent BoundedString.

- Corrected an internal error related to processing concatenation of constant strings.

- Fixed a code generation problem with PWM() having a real literal second parameter.

- Fixed a problem where a missing array dimension on BoundedString types was not detected.

- Fixed a problem where an array dimension was erroneously being required on a Based structure.

- Fixed a problem with WaitForInterrupt() parameter validation.


v2.1.0 - 22 February 2007
-------------------------
- Added support for the ZX-1281, ZX-128e and ZX-1281e.

- Added support for Option RamSize, Option HeapSize and Option ExtRamConfig.

- Fixed an unusual code generation problem where code was omitted that
  initialized a variable but the value was later used.
