Каждый язык программирования высокого уровня и, конечно же, Бейсик, кроме обработки числовых значений должен уметь преобразовывать и символьные данные — строки, составленные из букв, цифр и прочих знаков.
Простейшее действие, которое можно выполнить над символьными значениями, — это сложить их с помощью обычного знака +:
Результат такой же, как если бы мы попросили компьютер напечатать слово BASIC целиком (PRINT "BASIC").
В Бейсике ZX Spectrum можно выполнить операцию, обратную сложению: выделить из символьного значения некоторую его часть — подстроку. Это действие также называют сечением. Для его выполнения после строки символов в скобках через ключевое слово ТО указывается, с какого и по какой символы требуется выделить подстроку:
Если подстрока выделяется, начиная с первого символа, то можно писать сокращенно: (ТО 5). И, аналогично, если подстрока выделяется до конца символьной строки, то разрешается записать: (2 ТО). Допустимо задавать сечение и вообще без параметров:
Последнее сечение можно было записать и без ТО: ABCDEF0
Слово ТО также можно опустить, если выделяется лишь один символ, то есть вместо (3 ТО 3) использовать (3):
Если границы сечения выходят за пределы строки, компьютер выдаст сообщение об ошибке. Попробуйте ввести:
PRINT "ABCDEF"(2 ТО 10) — и получите внизу экрана сообщение Subscript wrong (неправильный индекс).
Вообще, если компьютеру что-нибудь не нравится в наших действиях, он будет ругаться различными английскими словами. Перевод сообщений об ошибках и описание ситуаций, в которых они возникают, можно посмотреть в «Справочнике».
С помощью функции LEN можно выяснить длину символьной строки, то есть определить, сколько позиций займет она на экране при печати4:
Пробелы также считаются символами и учитываются при расчете длины.
Функция STR$ преобразует числовые значения в символьные («прицепляет» к числу кавычки). Например, STR$ 3 возвращает символьное значение "3м.
Можно рассчитать его длину:

При необходимости можно выполнить преобразование, обратное функции STR$, — превратить строковое значение в числовое. Нужно только воспользоваться функцией VAL:
VAL «оторвала» кавычки, превратив строковое значение в нормальное число, с которым можно производить математические операции.
Функция VAL может обрабатывать и числовые выражения, представленные как символьные значения. Например:
PRINT VAL "353+1"
Если VAL применить к символьному значению, не имеющему ничего общего с числами, то компьютер воспримет это как ошибку.

CODE, CHR$
Каждая буква, цифра, знак — вообще все, что мы называем символами, кроме визуального представления на экране (и клавиатуре), имеет еще и свой числовой эквивалент — код. Именно последовательность этих кодов сохраняется в памяти компьютера при записи символьного значения.
ZX Spectrum так организован, что ключевые слова Бейсика (PRINT, VAL ит. д.) также являются отдельными знаками, каждый со своим кодом*.
Всего в ZX Spectrum определено 256 символов с кодами от 0 до 255. Полный набор и тех и других можно посмотреть в таблице символов на стр. 100.
Выяснить, какой код соответствует символу или, наоборот, символ — коду, можно и не пользуясь таблицей, а с помощью функций CODE и CHR$:

PRINT CODE "А" 65
Так мы узнали, что код заглавной буквы А равен 65. Или, наоборот:
Что и требовалось проверить — коду 65 соответствует символ А.
Если символьное значение, подставляемое вслед за CODE, состоит больше чем из одного символа, функция возвратит код первого символа.
Основной экран
Рис. 3. Строение графического экрана.