Egghead.page Logo

Did the Sinclair ZX Spectrum +3 Support Lowercase BASIC?

This article examines the character handling capabilities of the Sinclair ZX Spectrum +3 computer, specifically focusing on its BASIC interpreter. It clarifies whether lowercase letters were permissible in programming commands and strings, details the changes introduced in the +3 ROM compared to earlier models, and explains how the tokenized nature of Sinclair BASIC affected case sensitivity during code execution.

The Sinclair ZX Spectrum +3, released in 1987, featured an updated 48K BASIC ROM that built upon the foundation of the original 48K and 128K models. A common question among retro computing enthusiasts concerns the ability to use lowercase characters within the BASIC environment. The short answer is that the ZX Spectrum +3 did support lowercase characters, but with specific limitations inherent to Sinclair BASIC. While users could type and display lowercase letters in strings and data statements, the interpreter itself handled programming keywords differently due to its tokenized structure.

Sinclair BASIC is a tokenized language, meaning that when a user types a keyword such as PRINT, LOAD, or GOTO, the interpreter converts it into a single-byte token stored in memory. On the ZX Spectrum +3, just like its predecessors, these keywords were standardized to uppercase tokens regardless of the case used during input. If a programmer typed a command in lowercase, the system would recognize the keyword and convert it to its uppercase token representation upon pressing Enter. Therefore, while lowercase input was accepted for commands, the stored program code would always display keywords in uppercase.

Variable names in the ZX Spectrum +3 BASIC interpreter were case-insensitive. A variable defined as score was treated identically to SCORE or Score. This allowed programmers the flexibility to type variable names in lowercase for readability without causing syntax errors or creating distinct variables. However, the visual output in the program editor would typically reflect the system’s standard casing conventions, which favored uppercase for clarity on the low-resolution display.

The most significant improvement in the +3 ROM regarding text input was the keyboard handling mode. On the original ZX Spectrum 48K, the cursor defaulted to uppercase mode, requiring the user to hold the CAPS SHIFT key to type lowercase letters. The ZX Spectrum +3 ROM introduced a more flexible cursor mode, often defaulting to lowercase or allowing easier toggling between cases without constant modifier key usage. This made writing text-heavy programs, such as adventure games or dialogue-heavy applications, less tedious than on earlier hardware revisions.

In terms of string manipulation and output, the +3 fully supported lowercase characters. Commands like PRINT could output mixed-case text to the screen without issue, provided the characters were enclosed in quotation marks. This capability was essential for creating professional-looking text displays and user interfaces. The underlying character set included both uppercase and lowercase glyphs, and the video hardware rendered them identically to previous models, ensuring compatibility with existing software libraries.

Ultimately, the Sinclair ZX Spectrum +3 supported lowercase characters within its BASIC interpreter for strings, variables, and input, but maintained uppercase tokens for system keywords. The updated ROM improved the typing experience by easing the restriction on shift keys required for lowercase entry, marking a quality-of-life improvement over the original 48K model. While the core logic of the interpreter remained case-insensitive for variables and case-standardized for commands, the +3 provided a more versatile environment for text processing and program entry.