The CPC implementation of Locomotive BASIC was developed directly from [[Locomotive Software]]'s existing Z80 BASIC. The existence of this is cited as one of the reasons Locomotive requested that [[Amstrad]] change the CPC's processor from a 6502 to a [[Z80]].
The 464 and Spanish 472 shipped with BASIC 1.0 on ROM.
The language was revised and debugged for the 472(British), 664, 6128 and Plus machines to become BASIC 1.1. Changes were minor but significant for the programmer, and included:
* DEC$ bug removed (in BASIC 1.0, it required two opening brackets and was undocumented)
== Variables ==
Many contemporary BASIC interpreters only supported the first few characters of a variable name as a discriminator. For example <code>WATER$</code> and <code>WALDO$</code> would refer to the same variable on a Commodore 64 or Apple II. But Locomotive BASIC allowed variable names up to 40 characters in length, so <code>THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOGFAST$</code> and <code>THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOGFATS$</code> could be use as separate variables.
=== Real (Floating Point) Numbers ===
20 b=&x1111:REM 15 binary
30 c$="***"
40 PRINT c$+SRSTR$(a+b)+c$
run
*** 270***
</pre>
==== <code><big>STRING$ (<length>,<character specifier>)</big></code> ====
: ''BASIC 1.0 & 1.1''