Spectrum Basic Variables

Post Reply
Posts: 12
Joined: Fri Jan 23, 2015 11:31 am

Spectrum Basic Variables

Post by derek » Sat Aug 11, 2018 10:01 am


I have been reading some Spectrum Basic programming books, I was wondering if a variable can have the same name as an array, i.e.

LET score=0


DIM score(50)

Both seem to be allowed by the Spectrum Basic interpreter, but clearly bad programming practise to have an array the same name as a variable.


User avatar
Posts: 866
Joined: Thu May 08, 2008 9:30 am
Location: Dauernheim, Germany

Re: Spectrum Basic Variables

Post by siggi » Tue Sep 25, 2018 12:46 pm

Works also on ZX81:
My ZX81 web-server: online since 2007

Posts: 5
Joined: Thu Aug 09, 2018 9:06 am

Re: Spectrum Basic Variables

Post by gregc » Tue Sep 25, 2018 5:11 pm

That is quite common to BASIC interpreters. Variables are saved on different stacks and any checking is on that stack so you can sometimes have A (float), A% (integer), A(..) (array) and A$ (string). Yes, confusing, but it is best practice to use longer variable names anyway if possible (not always easy in 16K and impossible in 1K). On the BBC Micro, variable A to Z (float) and A% to Z% (integer) were actually at fixed addresses so referencing them was incredibly fast.

User avatar
Posts: 2113
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: Spectrum Basic Variables

Post by 1024MAK » Tue Sep 25, 2018 9:47 pm

Yeah, keep in mind that on the ZX Spectrum the array name can only be a single letter.
Simple numeric variables with the same name can coexist with numeric array variables with the same name.
But you cannot have a simple string variable with the same name as a string array variable.
Also variable names are not case sensitive.


Post Reply