Recent ZBasic Compiler Revision History

v2.2.3 - 07 January 2008  (experimental)
-------------------------
- Modified the code generation strategy so that the code for Main() is always
  at the same address for all programs.

- Added support on 24-pin devices for various pins of Ports B and D that
  are coupled to pins on Ports A and C.

- Fixed a code generation error for CBit() and CNibble() when supplied
  with a String parameter.

- Added an error message when attempting to assign a structure that contains
  one or more allocated strings.  Also, added a warning for structure
  comparisons in the same circumstance.

- Corrected a situation where an error message about referencing a variable
  before its definition was sometimes omitted.

- Corrected a problem where While..Wend was not being accepted by the compiler.


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.
