9. BETA BASIC
BETA BASIC дополняет BASIC ZX SPECTRUM тридцатью новыми
командами и двадцатью одной новой функцией. Все старые ко-
манды и функции выполняются.
Новые команды вызываются в режиме "GRAPHIC".
Описание команд BETA BASICa
ALTER <описание атрибутов> ТО <описание атрибутов> САЗ
позволяет быстро изменить атрибуты экрана (INC, FLASH,
BRIGHT, PAPER) без необходимости очищения экрана. Нап-
ример: ALTER ТО PAPER i, INC 6 или ALTER INC 7 ТО
PAPEfc 2,INC 0.
AUTO <номер линииX,шаг> С6 3
включение автоматической нумерации линий, начиная от
данного номера и с данным шагом (если задан), либо от
текущей линии с шагом 10. Выключение - нажатие и удер-
жание клавиши BREAK более 1 сек.
BREAK [SHIFT-SPACED
это не ключевое слово, но используется оно' в режиме
GRAPHICS. Оно может прерывать действие каждой програм-
мы, т.к. система BETA BASIC работает в режиме
INTERRUPT 2 микропроцессора Z80.
CLOCK число или цепочка [С]
управляет 24-часовыми часами, которые выполняют раз-
личные функции, зависящие от поданного аргумента.
Аргумент Переход на Звучание Показание
Линию по ALARM ALARM'А (Высвечивание)
0 Нет Выкл Нет
1 Нет Выкл Есть
2 Нет Установ Нет
3 Нет Установ Есть
4 Да Выкл Нет
5 Да Выкл Есть
6 Да Установ Нет
7 Да Установ Есть
Пример:
CLOCK "09:29:05" - установка времени:
CLOCK "А006:20" - установка будильника;
CLOCK "А9000" - переход на линию.
CHRS 8 - курсор влево;
CHRS 9 - курсор влево;
CHRS 10 - курсор влево;
CHRS 11 - курсор влево.
Эти знаки, примененные в цепи печати с помощью PRINT,
изменяют позицию печати в соответствии с описанием.
DEF KEY - цепь однознаковая; цепь SHIFT 1.
DEF KEY - цепь однознаковая: инструкция: инструкция:—
Подстановка под клавишу с данным знаком данной цепочки
либо цепи инструкций.
DEF РИЭС название процедуры С1]
ключевое слово, начинающее определение процедуры, выз-
ванной через название.
DELETE <номер линии> ТО <номер линии> С73
удаление линий программы в заданной области. Допуска-
ется использование различных вариантов, например:
DELETE ТО 50; DELETE 10 ТО 50; DELETE ТО и т.д.
DO
DO WHILE условие
DO UNTIL условие CD!
ключевые слова, начинающие определение петли. Петля
заканчивается словом LOOP.
DPOKE адpec,число CP]
загрузка двух очередей байтов памяти с данным адресом
числом из области от 0 до 65535.
EDIT номер линии [0]
нормальный ввод. Позволяет редактировать произвольную
линию,строку. Появляется после нажатия клавиши 0, если
до этого была нажата клавиша ENTER.
ELSE инструкция СЕ 1
это часть инструкции IF-THEN как альтернатива началь-
ной инструкции. Пример использования:
IF условие THEN инструкция ELSE инструкция.
ENDPRQC СЗЗ
слово, оканчивающее определение процедуры, вызываемой
через название.
EXIT IF условие £13
условный выход из петли DO-LOOP.
FILL X Y CF3
FILL <{NC цвет>;Х,У CF3
FILL <PAPER цвет>;X,Y CF3
заполнение области фона цветом знака (если использует-
ся FILL или FILL INC) или области знака цветом фона
(если используется FILL PAPER). Допускается также ис-
пользование сложных конструкций, заполнение при этом
начинается от текущих координат X, Y:
FILL INC 2; PAPER 1; FLASH i; X,Y.
GET цифровая переменная или рядовая переменная CG3
присваивает переменной номер клавиши (с цифровой кла-
вишей или 11 - для А, 12 - для В, 13 - для С и т.д.)
Или знак при нажатой клавише.
JOIN <номер линии^ [SHIFT 63
связывает линию с данным номером, либо текущую линию,
если номера нет, с линией, находящейся в нижней части
экрана, придавая новой линии заданный номер (либо но-
мер текущей линии).
KEYIN цепь-ряд [SHIFT 43
допускается использовать только как инструкцию в прог-
рамме. Вызывает вставление в программу поданной цепи
Хк примеру, это может быть строка программы).
KEYWORDS 1 С83
KEYWORDS 0 [83
переключатели ключевых слов BETA BASICa на графичес-
кие знаки ZX SPECTRUM,получаемые в режиме* G. Это слово
никогда не выключается.
LIST номер линии ТО номер линии
(LLIST ~ также, но не для принтера) расширение синтак-
сиса нормального ключевого слова SINCLAIR BASICa.
LOOP [L3
LOOP UNTIL условие [L3
LOOP WHILE условие [L3
заканчивающая цикл часть структуры DO-LOOP.
ON [03
применяется в структурах вида:
Gu ТО ON переменная;номер линии,номер линии,... Или
GO SUB ON переменная;номер линии,номер линии,...
Производит переход к соответствующей линии в зависи-
мости от переменной.
ON ERROR номер линии [N3
включение обслуживания ошибок через линию с заданным
номером (к ней переходит программа при появлении
ошибки при ее выполнении), дополнительно переменной
ERROR присваивается значение, равное коду ошибки. Не
выполняется при кодах 0 (O.K.) И 9 (STOP}. Выключе-
ние обслуживания ошибок наступает после перехода к
программе обработки ошибок, либо по команде
ON ERROR 0.
PLOT Х,У;цепь
нормальный ввод. Позволяет рисовать в любом месте
экрана. Координаты относятся к левому верхнему краю
первого знака цепи. В цепи можно использовать знаки
управления курсором.
РОКЕ адрес,цепь
ключевое слово, расширяющее синтаксис. Производит
запись в память заданной цепи знаков, начиная с за-
данного адреса.
POP <цифровая переменная> [Q3
записывает адрес со стека G0SUB,D0-L00P,PR0C. Ука-
занный этим адресом номер линии подставляется как
значение переменной, если ее название было задано.
PR0C название [23
выполнение процедуры с заданным названием.
ВЕДОМ <начало то конецХЫЫЕ новое началоXSTEP шаг> [43
перенумерация строк в заданной области в соответст-
вии с заданными параметрами. Если не был задан ни
один параметр, то начальный номер строки принимает
значение 10 и шаг равен 10.
ROLL код направления <,пиксельX;X,Y;ширина,высота> [R3
"переворот" определенного окна экрана. Образ, исче-
зающий с одной стороны, появляется с другой. Задан-
ная ширина окна касается количества позиций знака, а
не элементов образа. Координаты X и У показывают ле-
вый верхний угол выбранного окна. Команда вызывает
перемещение на 1 элемент.
Если задан только код управления, то смещается
целый экран.Можно переместить целый образ вместе с
атрибутами, только атрибуты, либо только часть обра-
за. При повороте атрибутов заданное число должно
быть равно 8. Коды направлений имеют следующие зна-
чения :
Коды направления Направление Охватывает
1 Влево Атрибуты
2 Вниз Атрибуты
3 Вверх Атрибуты
4 Вправо Атрибуты
5 Влево Содержимое образа
6 Вниз Содержимое образа
7 Вверх Содержимое образа
8 Вправо Содержимое образа
9 Влево Весь образ
10 Вниз Весь образ
11 Вверх Весь образ
12 Вправо Весь образ
SCROLL <код направленияХ,пиксель><;Х,У;ширина,высота> [S3
перемещение содержимого определенного окна экрана на
один элемент. Синтаксис такой же, как и у ROLL
Здесь также можно не задавать ни одного параметра и
тогда наступит переход всего экрана на одну линию
вверх (как в ZX-81). Содержание экрана пропадает на
краю окна.
SORT таблица или цепь [ИЗ
SORT INVERS таблица или цепь СМЗ
упорядочивает знаковую таблицу или цепь в очереднос-
ти кодов знаков или наоборот, а цифровую таблицу -
от наибольшей цифры до наименьшей или наоборрт. Чис-
ловая таблица может иметь не более двух измерений.
SPLIT
это не ключевое слово,вместо него применяется нор-
мальный знак"<>" (SS/W). Он указывает,,в каком Месте
программы строка может быть разделена на две части.
Часть перед знаком присоединяется к программе; часть
после знака остается в программе с тем же самым но-
мером .
TRACE <номер линии> СТЗ
команда, приводящая к пошаговому выполнению програм-
мы. Ее подача вызывает переход GOSUB к заданной
строке непосредственно перед выполнением каждой инс-
т|у^кции программы. Выключение через RUN, CLEAR или
UNTIL условие [КЗ
часть петли DO-LOOP, используемая в DO UNTIL или в
LOOP UNTIL,позволяющая ее условное выполнение.
USING цепь-образец;число CU]
применяемое в инструкции PRINT USING, позволяет за-
давать соответствующий формат печатаемой цифры. Знак
в цепи-'образце означает предварительное разреже-
ние.
WHILE условие CJ]
часть петли DO LOOP, используемая в DO WHILE или в
LOOP WHILE. Позволяет условное выполнение цикла.
Описание функций BETA BASICa
Ниже дано описание функций, дополненных в системе BETA
BASIC, вместе с описанием их аргументов и способов вызова.
AND (число,число) [FN А( 3
логическое произведение двух чисел, выполненное в
двоичном представлении.
BINS (число) [FN В$< 3
двоичное представление десятичного числа.
SHARS (число) [FN С$( 3
преобразование целого числа без знака из области
0...65535 В соответствующее двузначное число.
COSE (число) [FN С( 3
косинус числа (4 значащих цифры, работает быстрее,
чем в оригинале системы SPECTRUM).
DEC (цепь) [FN D( 3
значение двухбайтового числа, находящегося по задан-
ному адресу.
FILLED ( ) [FN F( 3
количество элементов образа, заполненных перед пос-
ледней командой FILL.
HEXS (число) [FN HS( 3
переводит шестнадцатеричное число в десятичное.
INSTRING (старт, последоват. 1, последоват. 2) [FN К 3
позиция первого знака последовательности 2 в после-
довательности i при просмотре последовательности от
заданной стартовой позиции, либо 0, если элементы
последовательности 2 не содержат в последовательнос-
ти 1.
ИЕН С ) CFN М( 3
количество свободных байтов памяти.
HEJDRYS ( )CFN М$( 3
содержимое всей памяти (от адреса 1 до 65 532) трак-
туется как цепь-последовательность.
HDD (число 1,число 2) СFN V( 3
результат деления числа 1 по модулю числа 2.
NUMBER (последовательность) СFN N< 3
целое число без знака в пределах 0...65535, Которое
является соответствием двузначной последовательности.
OR (число 1,число 2) СFN 0( 3
логическая сумма двух чисел, представленных в двоич-
ной записи.
RNDM (число) С FN R( 3
псевдослучайное число в пределах от 0 до заданного
числа включительно.
SCRMS (строка,столбец) СFN К$( 3
знак, находящийся на заданной позиции (также знак,
определенный пользователем.
SINE (число) СFN S( 3
синус данного числа (4 значащих цифры).
STRINGS (число,цепь) С FN SS( 3
повторение последовательности заданное число раз.
TIMES ( ) СFN Т( 3
прошедшее время, задаваемое через CLOCK.
USINGS (цепь-образец,число) [FN US( 3
знаковая запись числа в заданном формате (как USING).
XDR (число 1,число 2) СFN Х( 3
логическая операция EXCLUSIVE OR на двоичной записи
двух чисел.
Специальные переменные
В системе BETA BASIC существуют определенные переменные,
генерируемые через систему и доступные через названия. Ниже
приведено их описание:
XDS.YOS
координаты середины системы расположения (вначале
установлены на 0,0). Их можно изменять: х=0...255
Y=0...i75. Обнуление через команды CLEAR и RUN.
XRG,YRG
диапазон координат на экране (XRG=256, YRG=176), ко-
торые можно свободно изменять. CLEAR и RUN задают
начальные значения.
Во время выполнения команды ON ERROR или TRACE создаются
специальные переменные:
ERROR
выдает код последней обнаруженной ошибки.
LINE
номер остановленной исполняемой линии (при TRACE)
или линии, в которой была обнаружена ошибка (при ON
ERROR ) •
STAT
номер остановленной выполняемой инструкции (при
TRACE), либо инструкции, в которой была найдена
ошибка (при ON ERROR).
Названия специальных переменных можно набирать как боль-
шими, так и малыми буквами.