Диалекты бейсика для ZX Spectrum 1992 г.

Beta Basic - Приложения: Алфавитный перечень операторов Beta Basic; Алфавитный перечень функций Beta Basic; Перечень сообщений об ошибках Beta Basic; Распределение памяти при работе с Beta Basic; Использование Beta Basic с системой TR-DOS.


ПРИЛОЖЕНИЯ

1. Алфавитный перечень операторов Beta Basic

Таблица 20.

Кмочмю»

fllHEtlW

Стр>

ALTER

[CJA

Поиск и замена по образцу имен переменных, числовых констант, строк символов в тексте программы

ALTER Nm ТО Num ALTER 1.1 ТО 1.2 ALTER "Bitte" TO "Please"

241

Смена атрибутов экрана на заданные

ALTER INK 3 TO PAPER 7

249

AUTO

[G]6

Задает режим автоматической генерации номеров строк программы

AUTO 100,10 AUTO 0

239

CLEAR

(KJX

Перемещает RAMTOP на указанное количество байтов

CLEAR 15

285

CLOCK

[GJC

Устанавливает текущее время; задает время лодачи звукового сигнала и/или перехода к подпрограмме; задает подпрограмму обработки прерывания, устанавливает режимы работы часов

CLOCK "15:30:00" CLOCK "A15:35" CLOCK 1200 CLOCK 7

258

CLS

[K]V

Стирает содержимое окна с заданным номером

CLS 3

251

COPY

[KJZ

Копирует содержимое одного массива или его части в другой массив

COPY A(2 TO 5) TO B(7) COPY A$(TO 6) TO B$(9)

274

CSIZE

[G] SS/8

Задает размер символов в текущем окне, переключает драйверы вывода на экран

CSIZE 5,9 CSIZE 0

245

DEFAULT

[GJ SS/2

Присваивает значение переменной, если она ранее не была определена

DEFAULT A=1, B=2, C=3

244

Задает по умолчанию устройство ввода-вывода

DEFAULTS

285

DEF KEY

[G]SS/1

Приписывает указанной клавише заданную последовательность операторов

DEF KEY "h";"HELLO:" DEF KEY "8": CSIZE 4,8

239

Нжчна*

£1Ю«0<

*ш&ар

Пример

Стр.

DEF PROC

[G1 1

Заголовок процедуры

DEF PROC Test А,В,REF С DEF PROC Sum DATA

261

DELETE

[G]7

Удаляет фрагмент программы

DELETE 1200 TO 2500 DELETE 0 TO 0

243

Удаляет массив или часть массива; удаляет часть символьной переменной

DELETE A(15 TO 23) DELETE D$(13)

275

DO

[GjD

Заголовок цикла типа DO...LOOP

DO:

PLOT RND*255,RND*175: LOOP

265

DPOKE

[GJP

Записывает по указанному адресу двухбайтовое число

DPOKE 42484, 5088

268

DRAW TO

[K] W + SS/F

Проводит линию или дугу из текущей точки в точку с указанными абсолютными координатами

DRAW TO 70,100 DRAW TO 120,120,3/2*PI

251

EDIT

Enter* 0

Вызывает на редактирование строку программы

EDIT 30

240

EDIT

[G] SS/5

Вызывает на редактирование переменную

EDIT A$ EDIT ;Q

278

ELSE

[GJE

Начинает блок операторов в конструкции типа IF...THEN...ELSE, выполняющийся в случае, если условие ложно

IF A=1 THEN:

PRINT "By": RETURN: ELSE:

PRINT "We'll rock you": GO TO 1282

254

END PROC

{G]3

Оператор конца процедуры. Осуществляет возврат управления основной программе. Аналогичен RETURN

DEF PROC Wiper: CLS 1:

tF=1 THEN RETURN: CLS 2: END PROC

261

EXIT IF

1С] I

Осуществляет выход по условию из цикла типа DO...LOOP

EXIT IF l=28

266

FILL

[GJF

Заливает участок экрана, ограниченный замкнутым контуром, цветом PAPER или INK

FILL INK 3; 70,70

252

GET

[G]G

Присваивает символьной переменной символ нажатой клавиши или числовой переменной — порядковый номер клавиши.

GET A$ GET A

278

Итон****

СЛ6АО,

мабор

Действ**

Пример

GET

[G]G

Считывает с экрана в символьную переменную спрайт с указанными размерами

GET А$,42,38,2,3

279

GO TO ON

[K] G + [G] О

Осуществляет переход на строку из указанного списка в соответствии со значением заданной переменной (выражением)

GO ТО ON J; 50,70,90

254

GO SUB ON

(K| H + [G] О

Осуществляет вызов подпрограммы, начинающейся со строки из указанного списка, в соответствии со значением заданной переменной (выражением)

GO SUB ON J; 70,80,90 <

255

JOIN

[Gj SS/6

Сцепляет строку программы с указанным номером или текущую строку со следующей за ней строкой, записывая их через двоеточие под одним номером

JOIN 50

241

Переносит содержимое одного массива или его части в другой массив

JOIN A(3 TO 7) TO B(10) JOIN C() TO D() JOIN E$() TO F$(5)

274

KEYIN

[G] SS/4

Помещает заданную строку символов в текст программы

KEYIN "1200 LET A=8763"

281

KEYWORDS

[G]8

Переключает режим ключевых слов Beta Basic в режим Graphics и обратно, устанавливает способ ввода ключевых слов в строку редактирования

KEYWORDS 1 KEYWORDS 4

236

LIST

(К] К

Выводит на экран (или в символьную переменную Z$ по LIST #14) листинг программы в пределах указанных строк

LIST 10 TO 50 LIST TO 70 LIST #14; 50 TO LIST

243

Распечатывает текст указанной процедуры

LIST PROC PortRead

261

Распечатывает номера строкгсодержащих указанный ключ

LIST REF "Org" LIST REF Num

243

К *Q4*ftO* слово, набор

Двйсш»

Пример

Ctp.

LIST

IK] к

Распечатывает содержимое переменных и размерности массивов программы

LIST DATA LIST VAL LIST VAL$

243

Распечатывает макроопределения клавиш

LIST DEF KEY

243

LOCAL

[G] SS/3

Объявляет переменные процедуры локальными

LOCAL A,B,C

262

LOOP

[G]L

Оператор окончания цикла типа СЮ...LOOP

см. оператор DO

265

ON

[G]0

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

ON J:

PRINT "Line 1": PRINT "Line 2": PRINT "Line 3"

255

ON ERROR [G] N

Задает номер строки, с которой начинается подпрограмма обработки ошибок, или описывает эту подпрограмму

ON ERROR 3500 ON ERROR: BEEP 1,1: RETURN

255

PLOT

[K1Q

Выводит строку символов (спрайт) в заданную точку экрана

PLOT 100,70; "Demo"

246

POKE

[K]o

Записывает в память компьютера строку кодов символов, начиная с заданного адреса

POKE 40000, "String"

268

POP

(G]Q

Снимает со стека GO SUB и присваивает переменной (если она указана) значение адреса возврата из процедуры или адрес заголовка цикла типа DO... LOOP

POP A

267

PROC

|G]2

Вызывает процедуру с заданным именем и передает ей значения фактических параметров

PROC Sub1 3, , A+2, D(5)

261

READ

[E]A

Считывает значения фактических параметров, передаваемых в процедуру списком произвольной длины

DEF PROC Test DATA: DO UNTIL ITEM()=0: READ LINE a$

263

10 Зак. № 192

289

слово, набор

ДвЙЯГвй»

Пример

Ctp.

REF

(G] SS/7

Осуществляет поиск по образцу в тексте программы и вызывает на редактирование строки, удовлетворяющие условию поиска

REF Num REF "Subl" REF 3 REF (A$)

240

задает передачу параметров в процедуру по ссылке

DEF PROC Test REF a

264

RENUM

[GJ4

Перенумеровывает строки программы из указанного диапазона, начиная с заданного номера, и с заданным шагом

RENUM 70 LINE 90 STEP 5

242

ROLL

[G)R

Осуществляет циклический скроллинг окна экрана на заданное количество пикселей в указанном направлении

ROLL 5;0,175;50,88

252

SAVE

[K]S

Производит запись на ленту фрагмента программы или области переменных

SAVE 10 TO 70; "Filename"

SAVE DATA "Filename"

285

SCROLL

[CIS

Осуществляет скроллинг окна экрана на заданное количество пикселей в указанном направлении

SCROLL 5;0,175;50{88

252

SORT

[G]M

Сортирует числовой или символьный массив по убыванию или возрастанию значений его элементов

SORT A()

SORT A$( TO 25)(2 TO ) SORT INVERSE A()

273

TRACE

[GJT

Задает номер строки подпрограммы обработки прерывания, обращение к которой будет осуществляться после каждого выполненного оператора программы или описывает эту подпрограмму

TRACE 7000 TRACE: LIST VAL: RETURN

257

UNTIL

[GJK

Задает критерий окончания цикла типа DO...LOOP

DO UNTIL ABS X<Ep*

266

USING

[GJU

В операторе PRINT (LPRINT) задает шаблон вывода чисел

PRINT USING "#.##"; A

248

VERIFY

[E]SS/R

Осуществляет проверку записанного на ленту фрагмента программы из указанного диапазона строк

VERIFY 10 TO 70; "Name"

285

слово, набор

Действие

Пример

Стр.

WHILE

[GJ J

Задает критерий продолжения цикла типа DO...LOOP

LOOP WHILE Y<>3

266

WINDOW

[G J 5

Задает координаты и размеры текстового окна с указанным номером

WINDOW 5; 0,175,9,50

249

Объявляет текущим окно с заданным номером

WINDOW 5

2. Алфавитный перечень функций Beta Basic*

Таблица 21.

Функция, набор

Возвращаемо* значение

Пример

Стр<

AND

А

Результат поразрядного "И" двух чисел

AND(A,B)

284

BIN$

в$

Двоичный эквивалент десятичного числа

BIN$(12)

282

CHAR$

CS

Представление целого числа из диапазона 0...65535 двумя байтами

CHAR$(40000)

277

COSE

с

Косинус числа. Работает быстрее стандартной функции COS

COSE(PI)

283

DEC

D

Десятичный эквивалент шестнадцатеричного числа

DEC("9C40")

283

DPEEK

P

Десятичное целое число, представленное в памяти по указанному адресу двумя байтами

DPEEK 40 000

268

EOF

E

Работает только с Interface 1

FILLED

F

Количество

инвертированных пикселей последней операцией FILL

PRINT FILLED<)

252

HEX$ H$

Шестнадцатеричный эквивалент десятичного числа

HEX$(40000)

283

* Набор функций Beta Basic осуществляется с помощью ключевого слова FN и буквы, указанной в таблице ниже названия функции.

Функция*

возвращаем oe знамение

Пример

Стр.

INARRAY

и

Номер строки двумерного символьного массива, в которой обнаружено очередное вхождение строки-образца

INARRAY(A$(7)(3 ТО 9),В$)

273

INSTRING

I

Позиция в базовой строке, начиная с которой обнаружено очередное вхождение строки-образца

INSTRING (Start,A$,"TEST")

269

ITEM

T

Тип очередного данного в списке DATA, который предстоит считывать оператору READ

ITEMQ

263

MEM

M

Количество свободной памяти для бейсик-программ

MEM()

243

MEMORY

M$

Содержимое участка памяти, представленное символьной строкой

MEMORY$()(0 TO 23295)

268

MOD

V

Остаток от деления двух чисел

MOD(A,B)

284

LENGTH

L

Размер массива по заданному измерению

LENGTH(1 ,"A(1)")

276

NUMBER

N

Целое число из диапазона 0...65535 — эквивалент двухбайтовой строки

NUMBER(CHR$ 55+CHR$ 28)

277

OR

О

Результат поразрядного "ИЛИ" двух чисел

OR (A,B)

284

RNDM

R

Случайное число в диапазоне от 0 до числа, указанного в аргументе

RNDM(175)

283

SCRN$

K$

Символ (в том числе из набора UDG), стоящий в указанных строке и столбце экрана

SCRN$(10,5)

249

SHIFTS

Z$

Строка символов, преобразованная по правилам в соответствии со значением первого аргумента

SHIFT$(3, "QWERTYqwerty")

270

SINE

s

Синус числа. Работает быстрее стандартной функции SIN

SINE(PI)

283

STRINGS S$

Приведенная строка символов, повторенная заданное количество раз

STRING$(N,"#")

269

TIMES

T$

Текущее время

TIME$()

259

Функция» И*б0р

возвращаемое зиачете

Пример

USING$ US

Символьное представление числа в соответствии с заданным форматом

USING$("##.###",D)

248

XOR

X

Результат поразрядного "исключающего ИЛИ" двух чисел

XOR(L,M)

284

3. Перечень сообщений об ошибках Beta Basic_

К стандартному перечню сообщений об ошибках (см. стр. 98) Beta Basic добавляет ряд собственных с кодами S...X. Меняются также ситуации, в которых появляются стандартные сообщения с кодами G и J:

G No room for line__нет места для строки

При перенумерации строк оператором RENUM сгенерированы номера уже существующих строк, не входящих в указанный интервал.

J Invalid I/O device_неверное устройство ввода-вывода

Обращение к окну с несуществующим номером при помощи операторов WINDOW или CLS.

S Missing LOOP_отсутствует LOOP

Не может быть найдено окончание цикла при использовании EXIT IF или при встрече DO, условие которого не предполагает ни одного прохода цикла.

Т LOOP without DO_LOOP без DO

Применен оператор LOOP без DO либо осуществлен вход в тело цикла, минуя его заголовок.

U No such line_нет такой строки

В команде DELETE указан номер несуществующей строки.

V No POP data_нет данных для POP

Сделана попытка снять оператором POP данные со стека GO SUB, когда тот был пуст.

W Missing DEF PROC_отсутствует DEF PROC

He найдено описание процедуры с указанным именем. Применен оператор LOCAL или END PROC без DEF PROC, либо осуществлен вход в тело процедуры, минуя его заголовок.

X No END PROC_нет END PROC

При попытке «перешагнуть» встреченное в тексте программы описание процедуры не может быть найдено ее окончание.

Значение, соответствующее коду ошибки, содержится в переменной ERROR, к которой имеется доступ из интерпретатора. Для сообщений с кодами 1 ...8 значение этой переменной равно самому коду, для сообщений с кодами от А до Р — соответственно, 10...27. Для ошибок интерпретатора Beta Basic (коды S...X) значение ERROR равно 28...33. Для сообщений с кодами 0 и 9 переменная ERROR не определена.

4. Распределение памяти при работе с Beta Basic

P_RAMT (23732)-

Символы, определяемые пользователем

UDG (23675)-

Интерпретатор Beta Basic

- 46960

Область системных переменных для WINDOW, описание макрокоманд RAMTOP (23730)-

EJJNE (23641)--

Переменные Бейсика

VARS (23627)--

Бейсик-программа PROG (23635)-

5. Использование Beta Basic с системой TR-DOS

Для того чтобы организовать корректную работу Beta Basic с TR-DOS, необходимо перед обращением к диску включать режим прерываний IM1, а затем возвращаться в IM2. Это можно делать, используя готовые процедуры в кодах, которые размещены в теле интерпретатора Beta Basic. Загрузка программы с диска, например, будет выглядеть так:

100 RANDOMIZE USR 63243: REM Включаем IM1 110 RANDOMIZE USR 15619: REM: LOAD "filename" 120 RANDOMIZE USR 61369: REM Включаем M2

Впрочем, не обязательно каждый раз после обращения к диску возвращаться в режим IM2. Если в программе не используется оператор CLOCK и нет необходимости использовать клавишу Break для возврата в Beta Basic из процедур в кодах, то интерпретатор не замечает «подлрга» и вполне корректно работает в IM1. Поэтому, как правило, достаточно в программе перед первым обращением к диску сменить режим прерываний на IM1, а в завершение ее работы восстановить режим IM2.




СОДЕРЖАНИЕ:
  1. Laser Basic - Вывод спрайтов на экран; Вывод на экран части спрайта; Перенос атрибутов; Преобразование окна экрана; Наборы переменных; Перемещение спрайтов; Наложение спрайтов; Копирование изображения с экрана в спрайт; Преобразование спрайтов; Скроллинг пейзажа; Изменение размеров области спрайт-файла; Вспомогательные графические операторы и функции; Определение столкновений спрайтов; Сервисные операторы и функции; Процедуры; Загрузка и запись программ.


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Нововведения - Оболочка - что нового.
Кнопки - управление в газете.
Игры - Oops! Cheat!

В этот день...   21 сентября