Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ZX Spectrum для пользователей и программистов.doc
Скачиваний:
56
Добавлен:
28.09.2019
Размер:
1.92 Mб
Скачать

__________Формат хранения текста программы на Бейсике

Строки бейсик-программы размещаются в порядке возрастания номеров в области памяти, адрес начала которой задается системной переменной PROG (23635/36). Они хранятся в следующем формате:

ст. байт

мл. байт

мл.байт ст.байт

Номер | строки

Длина |строки

Текст  строки

Байт #0D

Номер строки может принимать значения от 0 до 9999 (правда, из Бейсика редактировать строку с номером 0 невозможно). Обратите внима­ние также на то, что номер записан «наоборот», то есть сначала размещается старший байт, а затем младший. Длина текста бейсик-программы рассчитывается с учетом символа перевода строки (код #0D).

Текст строки хранится в виде кодов ASCII-символов и токенов — кодов операторов Бейсика (см. «Таблица символов»). Непосредственно после сим­вольной записи числа размещается его образ во внутреннем формате: байт #ОЕ и 5 байт собственно числа (1 байт порядка и 4 байта мантиссы). При записи пользовательской функции DEF FN после каждого параметра резервируются 6 байт для записи чисел в аналогичном формате.

___________________________Формат хранения переменных

В именах переменных бейсик-программы допускается использовать буквы латинского алфавита A...Z и a...z (в числовых переменных могут также использоваться цифры от 0 до 9). Интерпретатор Бейсика не делает различий между строчными и прописными буквами. Кроме того, пробелы в именах числовых переменных игнорируются, например, имена «Label 12» и «LABEL12» в программе будут указывать на одну и ту же переменную.__________________

*)Некоторые внешние устройства, например, Interface 1, могут перехватывать это сообщение и заменять стандартное ПЗУ своим, существенно расширяя возможности работы с каналами.

После определения переменной в бейсик-программе она помещается в специально отведенную область памяти, адрес начала которой задается системной переменной VARS (23627/28). Порядок расположения переменных соответствует последовательности их определения в программе.

При записи переменных их тип задается тремя старшими битами первого байта формата:

010 — символьная переменная;

011 — числовая переменная с одним символом в имени; i

100 — числовой массив;

101 — числовая переменная с несколькими символами в имени;

110 — символьный массив;

111 — переменная цикла FOR...NEXT.

В остальные биты первого байта записываются младшие 5 бит имени переменной (если переменная многосимвольная, то младшие 5 бит первой буквы ее имени):

7 6 5 4 3 2 1 0

Тип переменной

Младшие 5 бит имени переменной

Составленный подобным образом байт называется идентификатором переменной.

Числовые переменные (numeric variables)

Имена числовых переменных в бейсик-программе могут состоять из неограниченного числа символов (букв или цифр), но первым символом имени обязательно должна быть буква. Хранение в памяти переменных, имя которых задано одним символом, и переменных с многосимвольным именем осуществляется в различных форматах.

Для записи числовых переменных с односимвольным именем исполь­зуется 6 байт: 1 байт идентификатора и 5 байт под численное значение переменной во внутреннем формате:

Идентификатор

1 байт порядка

4 байта мантиссы

Формат размещения переменной с многосимвольным именем:

Имя переменной, символы:

первый

второй

последний

5 байт

Идентификатор

Код символа

Код символа с установленным 7-м битом

значение