Recent ZBasic Compiler Revision History 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.