Recent ZBasic Library Revision History

v3.3.3 - 09 January 2012
--------------------------
- Corrected issues with PWM setup on the xmega devices.

- Corrected an issue where calling OpenWatchDog() with invalid an parameter
  could leave interrupt enable in an indeterminate state.

- Corrected a potential problem with use of WaitInterval() in an
  application with a single task.


v3.3.2 - 29 May 2011
--------------------------
- Corrected a problem with SPI setup on the xmega devices.


v3.3.1 - 18 May 2011
--------------------------
- Corrected a problem with A/D conversion on the xmega devices.


v3.3.0 - 05 March 2011
--------------------------
- Added the ability to specify a particular Com channel for Debug.Print,
  Console.Write, Console.WriteLine, Console.Read and Console.ReadLine.

- Modified the low level X-10 code to allow specifying the zero-crossing
  interrupt.  For VM devices, the choice is limited to INT0 and INT2.  For
  native mode devices any external interrupt may be used.

- Added support for using alternate SPI and I2C hardware on xmega devices.

- Added support for software-based SPI (native mode devices only).

- Corrected a problem with initializing the receive pin for xmega UARTs.


v3.1.1 - 29 November 2010
--------------------------
- Corrected a problem in string concatenation that could arise when combining
  a zero-length string with string of non-zero length.


v3.1.0 - 09 July 2010
--------------------------
- Added support for xmega-based devices.

- Modified OpenCom() for the SW UART channels so that if either the rx or tx
  queue is null corresponding pins are not configured.


v3.0.6 - 14 June 2010
--------------------------
- Re-build due to a possible problem with SW UART inverted mode for the ZX-128ne.


v3.0.5 - 28 May 2010
--------------------------
- Corrected an out-of-range error in the WaitForInterrupt() code for the ZX-1280n.


v3.0.4 - 10 May 2010
--------------------------
- N.B. Version v3.0.6 or later of the ZBasic Compiler is required for this version.

- Corrected a problem with the software UART inverted mode that was introduced
  in v3.0.0.


v3.0.3 - 24 February 2010
--------------------------
- Corrected some problems with InputCapture() for mega1284P-based devices.


v3.0.2 - 16 February 2010
--------------------------
- Corrected a defect where the wrong I/O pin was being made an output for
  PWM8() on the mega328P-based devices.

- Corrected a problem in InputCapture() where some input segments equal to or
  slightly longer than the timer full-count period would be stored as a small
  width.  The corrected code now stores such segments as an overflow.  Also, an
  input segment having the length of &Hfffe units (the "no data" value) wasn't
  being stored as an overflow.

- Corrected a defect that could cause ProgMem writes to fail on native mode
  devices with more than 64K of Flash memory.


v3.0.0 - 01 February 2010
--------------------------
- Added support for ZBasic Object Extensions

- Added support for serial channel flow control.

- Added support for MemFind() and progMemFind().

- Added a bit in the return value of StatusCom() to indicate a SW UART channel.

- Corrected a problem where the task status wasn't being updated properly
  when a task was suspended.


v2.7.6 -  06 November 2009
--------------------------
- Corrected a problem where setting up a task to await a pin change interrupt
  would disable a pin change interrupt set up by another task.


v2.7.5 -  30 September 2009
--------------------------
- Corrected a problem in taskPause() where RTC ticks were being counted
  instead of RTC timer ticks as it should have been.

- Modified defineCom() so that invocation with the 'stopBits' parameter larger
  than the maximum results in 1 stop bit, matching the documentation.


v2.7.4 -  16 June 2009
--------------------------
- Added support for the ZX-328nu.

- Corrected a problem with the internal code used to implement StatusQueue()
  and similar queue access routines.

- Modified the task switching code to avoid problems with high speed serial
  I/O on the software UART channels.


v2.7.2 -  23 May 2009
--------------------------
- Added support for low level X10 "end of command" status.

- Added ResetX10() used to selectively reset X10 status bits.


v2.7.1 -  07 May 2009
--------------------------
- Added support for collision detection and CM15A AGC to the low level X10 routines.


v2.7.0 -  08 April 2009
--------------------------
- Added support for SearchQueue().

- Added support for half duplex and bussed Tx line in the software UART.

- Corrected a problem in strCopy() which would occur when assigning an
  allocated string to itself.


v2.6.4 -  05 January 2009
-------------------------
- Added support for the ZX-328n.

- Added support for GetDayNumber(year, month, day)

- Corrected atomicity issues in rnd() and randomize().


v2.6.3 -  19 November 2008 
-------------------------
- Corrected a potential interrupt timing error in the GetMicroTime() implementation.


v2.6.2 -  03 November 2008 
-------------------------
- Modified OpenCom() to first close the specified channel.

- Corrected a few problems with conversion between day numbers and year/month/day.


v2.6.1 -  03 October 2008 
-------------------------
- Added support for higher resolution timing routines.


v2.6.0 -  15 September 2008 
-------------------------
- Changed the minimum heap size to 40 bytes from 64 bytes.

- Corrected a problem in the task initialization code that sometimes caused
  task stack initialization to fail thus causing TaskHeadRoom() to not work.


v2.5.7 -  10 August 2008 
-------------------------
- Added code to prevent writes to Com channel receive queues and reads from
  Com channel transmit queues.

- Added getPortMask() and getPinAddress() functions to support PortMask()
  and Register.Port(), Register.Pin() and Register.DDR() functions in ZBasic.


v2.5.5 -  15 July 2008 
-------------------------
- The entry taskHeadRoom() was missing from the native mode libraries.

- Corrected an error with setting up the watchdog timer with delays 8 and 9.

- Corrected a problem with setting up an A/D conversion for channels 0-7
  on devices with 16 channels.


v2.5.4 -  14 July 2008 
-------------------------
- Corrected an error in cmdI2C() that could cause HW I2C operations to fail.

- Added support for the SPI pins (MISO, MOSI, SCK) for all ZX devices that
  don't use external Program Memory since they can be used for general I/O.


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

- Corrected some function prototypes in zxlib.h that were causing warnings.


v2.5.2 -  27 June 2008 
-------------------------
- Added support for pins B.4 through B.7 for the ZX-24ne.


v2.5.1 -  26 June 2008 
-------------------------
- Corrected a problem with the low level X-10 functions (OpenX10(), etc.)


v2.5.0 -  16 June 2008 
-------------------------
- Added support for GetQueueSpace().

- SPI enhancements:
    added slave mode and CloseSPI()
    added support for an optional delay before each received byte on SPICmd()

- I2C enhancements:
    added slave mode

- Improved the performance of writes to EEPROM.

- Added support for generation of ZX object code archives.

- Fixed an internal linkage problem in code related to the software UARTs.

- Corrected an initialization problem where the RNG seed was always zero.


v2.4.8 - 10 March 2008
-------------------------
- Initial public release.

- Corrected a problem where DefineCom() on Com1 didn't work.


v2.4.7 - 20 February 2008
-------------------------
- Corrected a problem in the routines that perform value-to-string
  conversion for 32-bit integral values.

- Corrected a problem with the routine that implements SerialNumber().

- Modified the code for System.TaskHeadRoom() to use less stack space
  when invoked for the current task.


v2.4.6 - 10 February 2008
-------------------------
- Fixed a problem with handling the ATN character.

- Corrected code generation problems related to accessing 32-bit values in
  Persistent and Program Memory.


v2.4.4 - 08 February 2008
-------------------------
- Initial release.

























Recent ZX Library Revision History

v3.1.0 - 09 July 2010
--------------------------
- Added support for xmega-based devices.

- Modified OpenCom() for the SW UART channels so that if either the rx or tx
  queue is null corresponding pins are not configured.


v3.0.6 - 14 June 2010
--------------------------
- Re-build due to a possible problem with SW UART inverted mode for the ZX-128ne.


v3.0.5 - 28 May 2010
--------------------------
- Corrected an out-of-range error in the WaitForInterrupt() code for the ZX-1280n.


v3.0.4 - 10 May 2010
--------------------------
- N.B. Version v3.0.6 or later of the ZBasic Compiler is required for this version.

- Corrected a problem with the software UART inverted mode that was introduced
  in v3.0.0.


v3.0.3 - 24 February 2010
--------------------------
- Corrected some problems with InputCapture() for mega1284P-based devices.


v3.0.2 - 16 February 2010
--------------------------
- Corrected a defect where the wrong I/O pin was being made an output for
  PWM8() on the mega328P-based devices.

- Corrected a problem in InputCapture() where some input segments equal to or
  slightly longer than the timer full-count period would be stored as a small
  width.  The corrected code now stores such segments as an overflow.  Also, an
  input segment having the length of &Hfffe units (the "no data" value) wasn't
  being stored as an overflow.

- Corrected a defect that could cause ProgMem writes to fail on native mode
  devices with more than 64K of Flash memory.


v3.0.0 - 01 February 2010
--------------------------
- Added support for ZBasic Object Extensions

- Added support for serial channel flow control.

- Added support for MemFind() and progMemFind().

- Added a bit in the return value of StatusCom() to indicate a SW UART channel.

- Corrected a problem where the task status wasn't being updated properly
  when a task was suspended.


v2.7.6 -  06 November 2009
--------------------------
- Corrected a problem where setting up a task to await a pin change interrupt
  would disable a pin change interrupt set up by another task.


v2.7.5 -  30 September 2009
--------------------------
- Corrected a problem in taskPause() where RTC ticks were being counted
  instead of RTC timer ticks as it should have been.

- Modified defineCom() so that invocation with the 'stopBits' parameter larger
  than the maximum results in 1 stop bit, matching the documentation.


v2.7.4 -  16 June 2009
--------------------------
- Added support for the ZX-328nu.

- Corrected a problem with the internal code used to implement StatusQueue()
  and similar queue access routines.

- Modified the task switching code to avoid problems with high speed serial
  I/O on the software UART channels.


v2.7.2 -  23 May 2009
--------------------------
- Added support for low level X10 "end of command" status.

- Added ResetX10() used to selectively reset X10 status bits.


v2.7.1 -  07 May 2009
--------------------------
- Added support for collision detection and CM15A AGC to the low level X10 routines.


v2.7.0 -  08 April 2009
--------------------------
- Added support for SearchQueue().

- Added support for half duplex and bussed Tx line in the software UART.

- Corrected a problem in strCopy() which would occur when assigning an
  allocated string to itself.


v2.6.4 -  05 January 2009
-------------------------
- Added support for the ZX-328n.

- Added support for GetDayNumber(year, month, day)

- Corrected atomicity issues in rnd() and randomize().


v2.6.3 -  19 November 2008 
-------------------------
- Corrected a potential interrupt timing error in the GetMicroTime() implementation.


v2.6.2 -  03 November 2008 
-------------------------
- Modified OpenCom() to first close the specified channel.

- Corrected a few problems with conversion between day numbers and year/month/day.


v2.6.1 -  03 October 2008 
-------------------------
- Added support for higher resolution timing routines.


v2.6.0 -  15 September 2008 
-------------------------
- Changed the minimum heap size to 40 bytes from 64 bytes.

- Corrected a problem in the task initialization code that sometimes caused
  task stack initialization to fail thus causing TaskHeadRoom() to not work.


v2.5.7 -  10 August 2008 
-------------------------
- Added code to prevent writes to Com channel receive queues and reads from
  Com channel transmit queues.

- Added getPortMask() and getPinAddress() functions to support PortMask()
  and Register.Port(), Register.Pin() and Register.DDR() functions in ZBasic.


v2.5.5 -  15 July 2008 
-------------------------
- The entry taskHeadRoom() was missing from the native mode libraries.

- Corrected an error with setting up the watchdog timer with delays 8 and 9.

- Corrected a problem with setting up an A/D conversion for channels 0-7
  on devices with 16 channels.


v2.5.4 -  14 July 2008 
-------------------------
- Corrected an error in cmdI2C() that could cause HW I2C operations to fail.

- Added support for the SPI pins (MISO, MOSI, SCK) for all ZX devices that
  don't use external Program Memory since they can be used for general I/O.


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

- Corrected some function prototypes in zxlib.h that were causing warnings.


v2.5.2 -  27 June 2008 
-------------------------
- Added support for pins B.4 through B.7 for the ZX-24ne.


v2.5.1 -  26 June 2008 
-------------------------
- Corrected a problem with the low level X-10 functions (OpenX10(), etc.)


v2.5.0 -  16 June 2008 
-------------------------
- Added support for GetQueueSpace().

- SPI enhancements:
    added slave mode and CloseSPI()
    added support for an optional delay before each received byte on SPICmd()

- I2C enhancements:
    added slave mode

- Improved the performance of writes to EEPROM.

- Added support for generation of ZX object code archives.

- Fixed an internal linkage problem in code related to the software UARTs.

- Corrected an initialization problem where the RNG seed was always zero.


v2.4.8 - 10 March 2008
-------------------------
- Initial public release.

- Corrected a problem where DefineCom() on Com1 didn't work.


v2.4.7 - 20 February 2008
-------------------------
- Corrected a problem in the routines that perform value-to-string
  conversion for 32-bit integral values.

- Corrected a problem with the routine that implements SerialNumber().

- Modified the code for System.TaskHeadRoom() to use less stack space
  when invoked for the current task.


v2.4.6 - 10 February 2008
-------------------------
- Fixed a problem with handling the ATN character.

- Corrected code generation problems related to accessing 32-bit values in
  Persistent and Program Memory.


v2.4.4 - 08 February 2008
-------------------------
- Initial release.
