BETA-BASIC VI. 8
ВВЕДЕНИЕ.
BETA-BASIC — расширение стандартного языка BASIC, защитного в ПЗУ компьютера ZX-SPECTRUM. BETA-BASIC включает в себя 30 новых команд и 31 новую функцию. Некоторые стандартные команды дополнены расширенным синтаксисом. Введены функции для удобства редактирования программ, слияние и разделение строк программы. Расширены функции клавиши "BREAK".
В общем, работа с системой BETA-BASIC не отличается от работы со стандартным Бейсиком. Новые команды набираются в режиме курсора "GRAPHICS" ("G") нажатием соответствующих клавиш. Соответствующие им ключевые слова перечислены в главе 2. Новые функции вводятся путем нажатия стандартной клавиши "FN", а затем нужной литеры и символа "$" или символа "(". В главе 3 перечислены новые функции с их аргументами.
Система BETA-BASIC загружается по стандартной команде:
LOAD "" или LOAD "BETA-BASIC"
Система состоит из двух частей. Первая — программа на Бейсике из 3-х строк с номерами 0,1 и 2. Другая часть (9.3К) написана в машинных кодах. Строка 0 определяет функции BETA-BASIC. Она выводится на экран лишь в случае, когда является единственной строкой программы.
Другие строки осуществляют автоматическую загрузку и пуск BETA-BASIC, после чего стираются. RAMTOP снижается до 55800 для защиты машинных кодов, сохраняющихся в верхней части памяти. Загрузка считается законченной после того, как в нижней части экрана высветится надпись COPYRIGHT. После загрузки система готова к работе.
Строка 1 содержит процедуру SAVE, которая сохраняет BETA-BASIC на ленте. Для использования строки 1 нужно устранить автостарт использованием следующих команд при загрузке системы:
MERGE " "
CLEAR 55800: LOAD "" CODE
Теперь команда RUN позволит записать BETA-BASIC на ленту.
Программы, написанные не в BETA-BASIC, или программы, где отсутствует строка 0, не следует загружать посредством команды LOAD — в этих случаях используется команда MERGE.
По сравнению с BASIC-ПЗУ ZX SPECTRUM, BETA-BASIC ускоряет вычисления. Особенно в случае длинных программ, где часто применяются команды GOTO или GOSUB. Более быстро осуществляется также команда RETURN, причем возврат к последней строке выполняется быстрее, чем к первой строке (в BASIC-ПЗУ наоборот).
Команда NEW стирает программу, кроме строки 0 Для быстрого удаления из памяти BETA-BASIC применяют RANDOMIZE- USR 0.
Запись программы на ленту осуществляется обычным способом. При вводе программы в компьютер сначала надо ввести BETA-BASIC, и только после этого свою программу с внешнего носителя. Копия строки 0 будет введена вместе с программой, поэтому нет необходимости применять MERGE. Если BETA-BASIC не был введен перед вводом новой программы, надо поступить следующим образом:
MERGE " " : GOTO 2
и ввести BETA-BASIC. Команда GOTO 2 необходима для выполнения строки 2 AUTORUN ( обычно MERGE задерживает AUTORUN).
Звук при нажатии на клавиши можно устранить, если ввести: POKE 23609, 0
ОПИСАНИЕ КОМАНД BETA-BASIC.
Ниже перечислены в алфавитном порядке ключевые слова со списками аргументов. Аргументы в угловых скобках — необязательные. В квадратных скобках указано, какие клавиши соответствуют данному ключевому слову.
ALTER <описание_атрибутов> ТО описание_атрибутов [А]
Команда, позволяющая изменять атрибуты экрана (INK, FLASH, BRIGHT,PAPER) без перерисовки экрана. Если указано первое "описание_атрибутов", то цвет меняется только в знакоместах, удовлетворяющих этому описанию. Например:
ALTER TO PAPER 1
— это изменит фон всех символов на голубой; или ALTER INK 7 ТО PAPER 1, INK 0
— изменит цвет всех белых символов на черный, а их фон
— на голубой. Можно создавать более сложные композиции, например:
ALTER INK 3, BRIGHT 1, PAPER 7 TO INK 5, FLASH 1
AUTO <номер_строки> <,шаг> [6]
Включение автоматической нумерации строк от указанного значения с указанным шагом, если они заданы. По умолчанию
— от текущей строки с шагом 10. Выход из автоматической нумерации — нажатие клавиши "BREAK" в течение одной секунды.
Команда "BREAK" [SHIFT SPACE]
Не имеет ключевого слова и не требует перехода в режим "GRАРНIСS". Прерывает выполнение любой команды системы BETA-BASIC, вызывая прерывание микропроцессора Z80 по уровню 2.
CLOCK число или строка [С]
Команда запускает 24-часовой таймер, выполняющий в зависимости от числового аргумента следующие функции:
|
ЧИСЛОВОЙ АРГУМЕНТ
|
ПЕРЕХОД НА МЕТКУ ПО ТАЙМЕРУ
|
ЗВУКОВОЙ СИГНАЛ по ТАЙМЕРУ
|
ВЫВОД ТЕКУЩЕГО ВРЕМЕНИ В УГЛУ ЭКРАНА
|
|
CLOCK 0 |
- |
-
|
-
|
|
CLOCK 1
|
-
|
-
|
+
|
|
CLOCK 2
|
-
|
+
|
-
|
|
CLOCK 3
|
-
|
+
|
+
|
|
CLOCK 4
|
+
|
-
|
-
|
|
CLOCK 5
|
+
|
-
|
+
|
|
CLOCK 6
|
+
|
+
|
-
|
|
CLOCK 7
|
+
|
+
|
+
|
УСТАНОВКА ВРЕМЕНИ: CLOCK "09:29:05"
УСТАНОВКА ВРЕМЕНИ ТАЙМЕРА:CLOCK "A09:29:05"
УСТАНОВКА МЕТКИ ПЕРЕХОДА: CLOCK "A9000"
CHR$ цифра
Следующие символы, выведенные с помощью PRINT, вызывают перемещение курсора:
CHR$ 8 — курсор влево,
CHR$ 9 — курсор вправо,
CHR$ 10 — курсор вниз,
CHR$ 11 — курсор вверх,
DEF KEY строка_из_1_буквы; строка
DEF KEY строка из 1 буквы: инструкция: инструкция:... [SHIFT 1 ]
Ставит в соответствие указанной клавише строку или набор инструкций.
DEF PROC имя_процедуры [1]
Определяет начало процедуры, вызываемой по имени.
DELETE <номер_строки> то <номер_строки> [7]
Удаление строк программы из заданного интервала. Допускается опускать аргументы, например:
DELETE TO 50
DELETE 10 ТО 50
DELETE TO
DO [D]
DO WHILE условие входа [D]
DO UNTIL условие [D]
Ключевое слово определяет начало цикла. Цикл должен заканчиваться ключевым словом LOOP.
DROKE адрес, число [Р]
Запись двухбайтового числа (от 0 до 65535) по указанному адресу.
EDIT <номер_строки> (SHIFT 5]
Вызов стандартного редактора для указанной строки. Если номер строки не указан, редактируется текущая строка. Вызывается также по нажатию клавиши "О" после "ENTER" в режиме курсора "к".
ELSE инструкция [Е]
Используется в конструкции IF-THEN для указания альтернативной инструкции. Способ использования: IF условие THEN инструкция: ESLE инструкция
END PROC [3]
Определяет конец процедуры, вызываемой по имени.
EXIT IF условие [1]
При выполнении условия осуществляется выход из цикла DO-LOOP.
FILL X,Y [F]
FILL INK цвет; X,Y [F]
FILL PAPER цвет; X,Y [F] • FILL FLASH значение; X;Y [F]
Заполнение ограниченной области указанным цветом или текущим, если он не указан. Если указано PAPER, то заполняются и атрибуты фона. Заполнение начинается из точки с координатами X, Y. Можно указывать сложные конструкции типа: FILL INK 2; PAPER 1; FLASH 1; X,Y