Chapter 1 - Introduction 1.1 The ZBasic System Library 1.2 The ZX- Series Microcontrollers 1.3 Conventions Chapter 2 - ZBasic Language Elements 2.1 Identifiers 2.2 Data Types 2.3 Modules 2.3.1 The Options Section 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 Task Management 3.27.1 Task Control Block 3.28 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 Controlling Task Stack and Heap Sizes 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 - ZX-1280 Series Hardware Reference F.1 ZX-1280 Series Specifications F.2 ZX-1280 Series Devices Required External Components