A new software and firmware release for the ZX-24e, ZX-24ae, ZX-24pe, ZX-24ne has been issued by Elba Corporation that includes an updated version of the ZBasic installer for the compiler and update to the ZBasic firmware and library.
The new ZBasic installer version 2.6 is available from the our
ZBasic Software Downloads page. The updated ZBasic compiler has following new System Library routines, enhancements and bug fixes:
- Added support for using built-in functions and pin numbers (e.g. C.0) in conditional _expression_s (#if, etc.).
- Added support for using @ preceding an identifier as a synonym for .CodeAddress or .DataAddress.
- Added missing error detection for when a public function is of the type of a private structure or enumeration.
- Modified the input reader to correctly handle old-style Macintosh EOL (carriage return only).
- Corrected an optimization problem with For loops when the start value derived from a negative integer Const value.
- Corrected a code generation problem with decrementing a return value.
- Fixed an access violation that occurred when .CodeAddress was used with a non-procedure.
- Modified the RAM usage analysis to include the heap reserve when the Main() task stack size is specified.
- Added support for Option HeapReserve to allow better fine tuning of RAM use.
- Corrected Register.RamStart for native mode.
- Corrected a problem where a non-constant value for a Const was not being detected.
- Added support for PortMask(), Register.Port(), Register.DDR() and Register.Pin().
- Added support for a mechanism (#pragma CallTargets) to provide the compiler with call target information for based procedures so that it can correctly compute task stack size when a called procedure uses a based procedure.
- Corrected native mode code generation problems for based procedures, initialization of arrays of structures containing String members, and initialized ProgMem data items containing code and data item addresses.
- Corrected a problem where procedure declarations (external or based) were not being allowed inside a procedure.
- Modified the task stack size process for VM mode to correctly identify the invocation of based procedures as introducing indeterminacy in the absence of user-supplied call target information.
- Corrected a native mode code generation problem for PulseOut() with a non-constant Single duration parameter.
- Corrected a native mode code generation problem that occurred when invoking a task with constant 32-bit parameters (e.g. Single, UnsignedLong) when the high 16 bits were zero.
- Modified the native mode code generation to not produce interrupt protected access to 16-bit registers (e.g. Register.TCNT1) inside an ISR or inside an Atomic block. In both cases, interrupts are already turned off.
- 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.
- Added support for 8-bit PWM routines.
- Added support for an optional parameter on all PWM routines to return a success/failure indicator.
- Corrected a problem where too many ISRs were included for WaitForInterrupt().
- 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.
See the ZBasic website for the complete history of
ZBasic compiler changes.
The updated firmware version 2.6 for the ZX-24e, ZX-24ae, and ZX-24pe is available from the ZBasic Firmware page. The following fixes have been incorporated into the firmware:
- Added support for System.HeapHeadRoom, PortMask(), Register.Port(), and 8-bit PWM routines.
- Added code to prevent writes to Com channel receive queues and reads from Com channel transmit queues.
See the ZBasic website for the complete history of
ZBasic firmware changes.
The updated ZBasic library version 2.6 for the ZX-24ne is available in the ZBasic installation version 2.6. The following fixes have been incorporated into the library:
- 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.
- 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.
- 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.
- 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.
- Added support for 8-bit PWM.
- Corrected some function prototypes in zxlib.h that were causing warnings.
See the ZBasic website for the complete history of
ZBasic library changes.
Mike