Chapter 1 - Introduction
   1.1 The ZBasic System Library
   1.2 The ZX Microcontroller Family
   1.3 Conventions
Chapter 2 - ZBasic Language Elements
   2.1 Identifiers
   2.2 Data Types
   2.3 Modules
       2.3.1 The Options Section
           Option <pin>
           Option <port>
           Option Base
           Option Explicit
           Option Language
           Option AllocStr
           Option StringSize
           Option Strict
           Option TargetDevice
           Option TargetCPU
           Option PortPinEncoding
           Option CodeLimit
           Option SignOn
           Option TaskStackMargin
           Option ExtRamConfig
           Option RamSize
           Option HeapSize
           Option HeapReserve
           Option HeapLimit
           Option MainTaskStackSize
           Option TxQueueSize
           Option RxQueueSize
           Option Com1Speed
           Option Library
       2.3.2 The Definitions Section
           Defining Constants
           Defining Variables
           Defining Arrays of Variables
           Defining Subroutines
           Defining Functions
   2.4 Expressions
       2.4.1 Operator Precedence
       2.4.2 Operator Associativity
       2.4.3 Arithmetic Operators
       2.4.4 Logical Operators
       2.4.5 Comparison Operators
       2.4.6 Miscellaneous Operators
       2.4.7 No “Short Circuit” Evaluation
   2.5 Statements
       2.5.1 Assignment Statement
       2.5.2 Call Statement
       2.5.3 CallTask Statement
       2.5.4 Console.Write and Console.WriteLine Statements
       2.5.5 Debug.Print Statement
       2.5.6 Do-Loop Statement and Variants
       2.5.7 Exit Statement
       2.5.8 For-Next Statement
       2.5.9 Goto Statement
       2.5.10 If-Then-Else Statement
       2.5.11 Select-Case Statement
       2.5.12 Set Statement
       2.5.13 While-Wend Statement
       2.5.14 With Statement
   2.6 Literals
       2.6.1 Boolean Literals
       2.6.2 Numeric Literals - Integral Values
       2.6.3 Numeric Literals - Real Values
       2.6.4 String Literals
       2.6.5 Built-in Binary Constants
   2.7 Comments
   2.8 Line Continuation and Multiple Statements Per Line
   2.9 Persistent Variables
   2.10 Program Memory Data Items
   2.11 String Types
       2.11.1 Bounded Strings
       2.11.2 Fixed-Length Strings
   2.12 Variable Initialization
   2.13 Type Conversions
   2.14 Parameter Passing Conventions
   2.15 Program and Data Item Properties
Chapter 3 - Advanced Topics
   3.1 Scope and Lifetime
   3.2 Enumerations
   3.3 Serial Channels
   3.4 Queues
       3.4.1 System Queues
   3.5 Multitasking
       3.5.1 Advanced Multi-tasking Options
   3.6 Semaphores
   3.7 Timers
   3.8 Built-in Variables
       3.8.1 CPU Registers
       3.8.2 Control Program Variables
   3.9 Built-in Constants
   3.10 Exception Handling
   3.11 Run Time Stack Checking
   3.12 Conditional Compilation Directives
   3.13 Error Directive
   3.14 Notice Directive
   3.15 Include Directive
   3.16 Using Conditional Directives in Project and Argument Files
   3.17 Preprocessor Symbols
   3.18 Array Data Order
   3.19 Recursion in Subroutines and Functions
   3.20 Using Default Parameter Values in Subroutines and Functions
   3.21 Aliases
   3.22 Based Variables
   3.23 Based Procedures
   3.24 Sub-byte Types
       3.24.1 Forcing Byte Alignment
   3.25 Structures
       3.25.1 Structures in Persistent Memory and Program Memory
   3.26 Data Type Implementation Information
       3.26.1 User-defined Type Details
       3.26.2 String Data Type Details
       3.26.3 String Address and String Type
   3.27 Controlling the Heap Size and Main() Task Stack Size
   3.28 Task Management
       3.28.1 Task Control Block
   3.29 Dynamic Memory Allocation
Chapter 4 – Special Considerations for Native Mode Devices
   4.1 Using Inline C and Assembly Code
   4.2 Defining and Using External Subroutines, Functions and Variables
   4.3 Defining Interrupt Service Routines
   4.4 Executing Blocks of Code Atomically
   4.5 Attributes for Procedures and Variables
   4.6 Considerations for Task Stack Size
   4.7 Creating and Using Object Libraries
Chapter 5 - Compatibility Issues
   5.1 Known Differences and Compatibility Issues Between ZBasic and BasicX
   5.2 Known Differences and Compatibility Issues between ZBasic and Visual Basic
Chapter 6 - The ZBasic IDE
   6.1 Using the Editor
       6.1.1 Basic Editing
       6.1.2 Special Code Editing Features
       6.1.3 Expand/Collapse
       6.1.4 Auto-Completion
       6.1.5 Call Tips
   6.2 Project Configuration, Compiling and Downloading
   6.3 Compiling and Downloading Individual Files
   6.4 Setting Serial Port Options
   6.5 Setting Device Options
   6.6 Updating Device Firmware
   6.7 Setting the Debug Output Limit
   6.8 Other Configurable Items
Chapter 7 - Compiler Guide
   7.1 Compiler Invocation
   7.2 Compiler Options in Detail
   7.3 Error and Warning Messages
       7.3.1 Controlling Warnings
       7.3.2 Internal Errors
Chapter 8 - Downloader Utility
   8.1 Firmware Updates
       8.1.1 Emergency Update Procedure
   8.2 Device Configuration
   8.3 Downloader API
Appendix A - Reserved Words
Appendix B - ZX-24 Series Hardware Reference
   B.1 External Connections
   B.2 Pin Configuration
       B.2.1 Standard Pins
           Detailed Pin Descriptions
       B.2.2 Expansion Pins
           Detailed Pin Descriptions
Appendix C - ZX-40 Series Hardware Reference
   C.1 ZX-40 Series Specifications
   C.2 ZX-40 Series Required External Components
Appendix D - ZX-44 Series Hardware Reference
   D.1 ZX-44 Series Specifications
   D.2 ZX-44 Series Required External Components
Appendix E - ZX-1281 Series Hardware Reference
   E.1 ZX-1281 Series Specifications
   E.2 ZX-1281 Series Required External Components
Appendix F - ZX-1280 Series Hardware Reference
   F.1 ZX-1280 Series Specifications
   F.2 ZX-1280 Series Devices Required External Components