3
A subroutine is invoked by using the Call statement that specifies the name of the subroutine to invoke
and, optionally, the parameters to pass to the subroutine. A function is invoked by using its name in place
of a value (directly or in an expression) and specifying the parameters, if any, that are to be passed to the
function.
This concludes a rather brief introduction to the ZBasic language. The remaining sections of this manual
describe in more detail the various elements of ZBasic including data types, variables, constants,
statements, subroutines and functions. Also, more advanced topics like multi-tasking, queues, serial
communications and others are presented.
1.1 The ZBasic System Library
The ZBasic System Library provides a rich collection of over 150 subroutines and functions that you can
use to quickly add functionality to your application. The routines fall into several fundamental categories
including mathematical functions, string-oriented routines, I/O-related routines, type conversion functions,
etc. The routines are fully documented in the ZBasic System Library Reference Manual.
1.2 The ZX- Series Microcontrollers
The ZBasic language was designed to be well suited for programming microcontrollers. It is based on a
subset of Microsofts popular Visual Basic (VB6) with modifications and extensions to address the special
needs of microcontroller programming. The ZX- series microcontrollers were designed to run ZBasic
programs efficiently. At the time of publication, the ZX- series devices available from Elba Corp. include
several models with different capabilities, based on several different CPU types as shown in the table
below. The various ZX devices will be referred to collectively in this document as simply ZX unless the
context requires a specific reference to a particular model.
Underlying CPU Type for ZX Devices
Device
CPU
ZX-24, ZX-40, ZX-44
mega32
ZX-24a, ZX-40a, ZX-44a
mega644
ZX-24p, ZX-40p, ZX-44p
mega644P
ZX-24n, ZX-40n, ZX-44n
mega644P
ZX-1281
mega1281
ZX-1280
mega1280
The ZX-24, ZX-24a, ZX-24p and ZX-24n are 24-pin DIP format modules that are pin-compatible with the
Parallax Basic Stamp and the NetMedia BX-24 microcontrollers. However, many improvements have
been made with respect to those pioneering products in order to provide a more powerful and flexible
programming platform. Because of its ready-to-use configuration it is an ideal starting point for someone
just beginning to use microcontrollers. Yet, it has enough powerful capabilities for experts and advanced
users as well. See Appendix B for more detailed information on the ZX-24 series devices including
several suggested connection diagrams and detailed descriptions of the function of each pin.
The ZX-40, ZX-40a, ZX-40p and ZX-40n are 40-pin DIP format integrated circuits that are pre-
programmed with the ZX control program. However, in order to use them you must add a few external
components such as a regulated supply, a crystal, a memory chip and serial interface circuitry. The
compensating advantages of the ZX-40/ZX-40a are reduced cost, more design flexibility and availability
of more I/O pins. These attributes make the 40-pin ZX well-suited for advanced projects and commercial
applications. See Appendix C for more detailed information on the ZX-40/ZX-40a including several
suggested connection diagrams.
The ZX-44, ZX-44a, ZX-44p and ZX-44n are 44-pin TQFP format integrated circuits that are pre-
programmed with the ZX control program. Similarly, the ZX-1280 and ZX-1281 are 100-pin and 64-pin,
respectively, TQFP format integrated circuits that are pre-programmed with the ZX control program. All of
these devices are bare CPUs that require some additional support components. Because of their smaller
size, they are well suited for larger volume applications or those that require compact size. See Appendix
D for more detailed information on the ZX-44/ZX-44a including several suggested connection diagrams.