ЯЗЫК ПРОГРАММИРОВАНИЯ БЕЙСИК
Все числа в системе могут иметь точность 9 или It) гиакон. Наибольшее число
10**38, а наименьшее положительное число 4*10**(-39). Числа имеют внутреннее
представление как числа с плавающей (двоичной) точкой, с выде.лением одного бай-
та на показатель степени 'е' (экспоненты) в интервале от I до 255. и четырех
байтов на мантиссу 'М' в интервале от 0.5 до 1 (М»1). Это представляется числом
М*2**е(-128).
Поскольку 1/2<»М<1, старший бит мантиссы всегда I. Следовательно, мы можем
заменить его на бит. обозначавший знак: О для положительного числа и 1 -для от-
рицательного.
Наименьшее целое имеет специальное представление, в котором первый байт 0.
второй байт знака (0 и FFH). а третий и четвертый -само число в дополнительном
коде (младшие значащие цифры в первом байте).
Числовые переменные имеют нмя произвольной длины, начинающееся с буквы и про-
должающееся буквами или цифрами. Пробелы и символы управления цветом игнори-
руются и все буквы преобразуются к минимально упакованному виду.
Унравляющие переменные для F0R-NEXT циклов имеют имена длиной в одну букву.
Числовые массивы имеют имена длиной в одну букву, которая может быть такой же.
как нмя скалярной переменной. Эти массивы могут иметь произвольное количество
измерений в произвольный размер. Начальный индекс всегда 1. Строки символов
более гибкие в своей длине. Нмя строковой переменной, в отличие от простой пере-
менной. заканчивается символом доллара ($).
Строковые массивы также могут иметь нронзвольное количество измерений и раз-
мер. Их имена представляют собой одну букву и следующий за ней символ $. но не
могут совпадать с именем простой строки символов.
Все строки в массивах имеют фиксированную длину, которая определяется числом,
задающим последнюю размерность в операторе DIM. Начальный индекс I.
Подстрока от строки может быть получена как сечение. Сечение может быть:
а) пустым;
в) некоторым 'числовым выражением'. ТО', другим 'числовым выражением' и
использоваться в:
*) строковых выражениях (сечениях);
**) строковых массивах переменных (индекс I. индекс 2.....индекс N. сече-
ние). или. что то же самое: (индекс 1. индекс 2..... индекс N) (сечение).
В случае *). строка выражения имеет зиачеине St.
Если сечение массива пусто, то SS считается подстрокой от самой себя.
Если сечение представлено в форме В н первое числовое выражение имен значе-
ние 'М' (умалчиваемое значение I). а второе 'N' (умалчиваемое значение S$). и
еелн 1 <=M<=-N<«. чем длина St. то результатом 4удет подстрока от SS с М-ым на-
чальным символом и N-ым конечным. Если 0<*$<М. то результатом будет пустая
строка. В любом другом случае выдается сообщение об ошибке '3'.
Сечение выполняется перед функцией или онерацней. которая осуществляется, ес-
ли скобками' не предписано сделать иначе. Подстрока может назначаться 4(смотри
оператор LET). Если часть строки записывается в строковой литерал, она должна
удваиваться.
t. ФУНКЦИИ
t. ФУНКЦИИ
|
Имя Функции |
Тип |
Действие, (возвращаемое значение) |
|
I |
* 2 |
3 |
|
ABS |
Число |
Абсолютное значение |
|
ACS |
Число |
Арккосинус в радианах.Выдает сообщение об ошибке |
|
AND |
Двгнческав ■ 1 |
— > A AND В » А. если BOO |
|
-Строка. . |
-> At AND В * AS. если BOO AS AND В » " ".если В=0 | |
|
ASM |
Число |
Арксинус в радианах. Выдает сообщение А. если X не |
|
ATN |
Число |
Арктангенс в радианах. |
|
ATTR |
Два числових |
Число, двоичный код которого, представляет собой |
|
BIN |
Это необычная функция. За BIN записывается последо- | |
|
CHR* |
Число |
Символ, чей код представим числом X. округленным к |
|
CODE |
Строка сим- |
Код первого символа в строке X (или 0. если Х- пус- |
|
COS |
Число в рад. |
Косинус X |
|
EXP |
Число |
Е в степени X |
|
FN |
FN с последующим именем, определенной пользователем | |
|
IN |
Число |
Осуществляется ввод на уровне микропроцессора из |
|
INKEY* |
Нет |
Чтение с клавиатуры. Возвращает символ введенный с |
|
INT |
Число |
Округление к ближайшему меньшему целому. |
|
LEN |
Строка символ |
Длина строки |
|
LN |
Число |
Натуральный логарифм. Выдает сообщение А. если X <=0 |
|
NOT |
Число |
0. если ХОО.1. если Х»0. Операция имеет приоритет 4 |
|
OR |
Логическая |
Операция имеет второй приоритет. |
|
PEEK |
Число |
Значение байта в памяти по адресу X. округленному к |
|
PI |
Нет |
Число пи (3.14(59265...) |
|
POINT |
Два числових |
1. Если точка экрана с координатами (X.Y)закрашена. |
|
Y.заключенных |
0<»Y<«175. | |
|
RND |
Нет |
Очередное псевдослучайное число из последователь- |
|
SCREENS |
Два числовых |
Символ (обычный или инверсный), который появляется |
|
SGN |
Число |
-1. если Х<0 0. если Х=0 I. если Х>0 |
|
SIN |
Число в рад. |
Сииус Корень квадратный. Выдает сообщение А. если Х<0 |
|
STRS |
Число |
Строка символов, которая должна быть отображена, |
|
USR |
Число |
Вызывает подпрограмму в машинных кодах, начальный |
|
USR |
Строка симво- |
Адрес груипы байтов.задающих определенный пользова- |
|
VAL |
Строка симво- |
Вычисление X как числового выражения.Выдает сообще- |
|
VALS |
Строка cHMfto- |
Вычисляет X как строковое выражение. Выдает сообще- |
2. ОПЕРАЦИИ
Префиксные:
число отрицательное значение.
Инфиксные (двухонерандовые):
+ сложение для чисел, конкатенцня для строк;
- вычитание;
* умножение;
/ деление;
** возведение в степень (стрелка вверх). Сообщение В. если левы" <перанд от-
рицательный;
* равенство г
> больше Оба операнда должны быть одного
< меньше типа. Результат равен I. если
<» меньше'или равно нет.
О ие равно L
Функции и операции нмеют следующий приоритет:
индексация я сечения - 12
Все функции за исключением:
NOT и нрефиксного минуса - 1I
возведение в степень - 10
префнкснн! минус - 9
*./ - 8
+.- (вычитание) - 6
».>.<.<-.>».<> - 5
NOT - 4
AND
OR
3.ОПЕРАТОРЫ
Принятые обозначения:
А - одна буква;
V - переменная;
X, Y, Z - числовые выражения;
М. N - числовые выражения, которые округляются к ближайшему целому;
Е - некоторое выражение;
F - выражение, имеющее строковое значение;
S - последовательность операторов, разделенных двоеточием ':';
С - последовательность символов управления цветом.
Каждый заканчивается или ';'. Цветовой символ имеет форму операндов: РА-
PEtl, INK, FLASH, BRIGHT, INVERSE иля OVER.
Текст произвольного выражения может располагаться в любом месте строки (за
исключением номера строки, который должен размещаться в начале строки).
Все операторы, кроме INPUT, DEF и DATA могут использоваться и как команды и
в программах.
Команда или строка программы может содержать несколько операторов, разделен-
ных двоеточием ':'.
Нет ограничений на положение оператора в строке, хотя есть некоторые ограни-
чения в IF и REM.
Все операторы языка сведены в следующую таблицу:
|
ОПЕРАТОР |
ДЕЙСТВИЕ ОПЕРАТОРА | | |
|
ВЕЕР X,Y |
Воспроизводит звук длительностью X сек. и высотой Y | |
|
BORDER М |
Устанавливает цвет рамки (бордюра) экрана. Выдает | |
|
BRIGHT М |
Устанавливает яркость выводимого символа: | |
|
CAT |
Без MICRODRIVE не работает. | |
|
CIRCLE X,Y,Z |
Изображает дугу или окружность с центром в точке с | |
|
CLEAR |
Уничтожает все переменные и очищает занимаемую ими | |
|
CLEAR N |
Подобно CLEAR, но дополнительно изменяет системную | |
|
CLOSE* |
Без MICRODRIVE не работает. | |
|
CLS |
(CLEAR SCREEN) очищает файл экрана. | |
|
CONTINUE |
Продолжает выполнение программы, начатой ранее и ос- | |
|
сообщение 0:1. даег сообщение 0. если было 0:2, или | ||
|
COPY |
Пересылает копию 22 строк экрана на принтер. уели j | |
|
DATA E1.E2.E3____ |
----------- ... ------ ------ -1 Часть списка данных. Должна располагаться н i | |
|
DEF FNA(A1.A2 |
----AK) |
- ------ --------1 Определяемая пользователем функция. Должна раскола- i |
|
DELETE F |
Без MICRODRIVE не работает. | |
|
DIM A(N1.N2, . |
NK) |
Уничтожает массив с именем А' и усгананлнвает чис- |
|
DIM AS(N 1,N2 |
NK) |
" 1 |
|
DRAW X,Y |
1 |
То же самое, что и DRAW X.Y.O. Чертит прямую линию.| _____ ' I |
|
DRAW X.Y.Z |
--- --------- -- -- -------------1 Изображает линию от текущей графической позиции в | _____ _______ __________ __ 1 | |
|
ERAZE |
---1 Без MICRODRIVE не работает. 1 | |
|
FLASH N |
------------------------------ --------j Определяет:будет ли символ мерцающим или с иостоян- | | |
|
FOR А-Х ТО |
Y |
FOR A»X TO Y STEP 1 |
|
FOR А-Х ТО |
Y STEP Z |
Уничтожает скалярную переменную А и устанавливает |
|
FORMAT F |
Без MICRODRIVE не работает. | |
|
GO SUB N |
Проталкивает строку с оператором GO SIB в cick для | |
| 4. если не все подпрограммы завершились с RETURN. |
| 4. если не все подпрограммы завершились с RETURN. |
|
GO TO N |
Продолжает выполнение программы со строки 'S'. Если | |
|
IF X THEN S |
Если 'X' истинно (не равно 0). то выполняется S'. 'IF X THEN номер строки' недопустима. | ___________________________ _ __ ____ ___j | |
|
INK N INVERSE N LIST |
Устанавливает цвет закрашивания (т.е. цвет, которым | -----------------------------------------------------1 Где есть последовательность вводимых символов.| а) некоторый PR 1 NT-символ. начинающийся не с буквы;) б) имя переменной; | PRINT-символы в случае а) представляются также, как Случай в) подобен случаю б) с той лишь разницей, что Символ управления инверсией выводимого символа. Если Присваивает значение 'Е' переменной 'V'. Ключевое Если 'V индексируемая строковая переменная или То же. что и LIST 0. | |
|
LIST N |
Записывает текст программы в верхнюю часть экрана, | |
|
LLIST |
То же.что и L1ST 0 | |
|
LLIST N |
Подобно LIST, но вывод осуществляется на принтер. | |
|
LOAD F |
Загружает программу и переменные. | |
|
LOAD F DATA () |
Сгружает числовой массив. | |
|
LOAD F DATS О |
Загружает строковый массив. | |
|
LOAD F CODE M.N |
Загружает старшие 'N' байтов, начиная с адреса 'vr. | |
|
LOAD F CODE M 1 Загружает байты, начиная с адреса 'М'. _____________________1___________________________ _ _ 1 | ||
|
---------------------1-------------------------- 1 LOAD F. CODE | Загружает байты по тому же адресу, с которого они | ||
|
LOAD F SCREENS | Аналогично LOAD F CODE 16384.6912. Очищает файл эк- | ||
|
LPRINT |
Подобно PRINT, но использует принтер. | |
|
MERGE F |
Подобно LOAD F. но не затирает всю старую прп-уамму | |
|
MOVE F1,F2 |
Без MICRODRIVE не работает | |
|
NEW |
Запускает по новой систему программирования бейсик, ________ ________________________ _ _ i | |
|
NEXT A |
а) находит управляющую переменную А'; в) если STEP>=0, а значение 'А'стало больше значения | |
|
OPEN# |
Без MICRODRIVE не работает. | |
|
OUT M.N |
Выводит байт 'N' в порт 'М'. Операция выполняется на | |
|
OVER N |
Улравляющнй символ надпечатывания по выведенной | |
|
вол соединяется со старим, образуя закрашивающий | ||
|
PAPER N |
Подобен INK. ио управляет цветом фона. | |
|
PAUSE N |
Останавливает выполнение программы и задерживает | |
|
PLOT С; M. N 1 1 _ __________________ |
Выводит точку закрашивающего цвета (обработанную 0 <« ABS(N)<« 175. иначе-сообщение В. | _ ______________________________ ___ _ _____I | |
|
1 - j POKF ¥.N |
1 Записывает значение 'N' в байт памяти по адресу *М'.| | |
|
PRINT ... |
Где последовательность PRJNT-символов. разде- В конце оператора PRINT, если он не заканчивается в) строковое выражение. В строке возможны пробелы г) AT M.N - вывод в строку 'М'. позицию 'N' д) TAB N - вывод управляющего символа TAB с после- е) цветовой символ в форме PAPER. 1NK.FLASH.BR 1GHT, | |
|
INVERSE или OVER оператора | ||
|
RANDOM |
ZE |
To же.что и RANDOMIZE 0 |
|
RANDOM READ V RESTOR RETURN RUN SAVE F |------- (SAVE F |SAVE F SAVE F STOP VERIF1 |
ZE N , V2.....VK E E N LINE M DATA () SCREENS i » |
Устанавливает системную переменную SEED, используе- * -------------------------------------------------ч Присваивает переменным одна за другой значения, noc-j Не выполняется.'...' может быть поспедовательностью | То же самое, что и RESTORE 0 Перезаписывает указатель данных в первый оператор Ссылается на оператор GO SUB в стеке и передает уп- То же самое, чтя и RUN 0. CLEAR, а затем GO ТО N . | Записывает на ленту программы н переменные. Записывает на ленту программу и переменные таким Запись на ленту числового массива. Запись на ленту строкового массива $. | Записывает на ленту 'N' байтов, начиная с адреса М. Аналогично SAVE F CODE 16384.G9I2. Выдает сообщение Останавливает выполнение программы с выдачей сообще- То же, что и LOAD, за исключением того, что данные |
i
| один не совпадающий байт.
4. Сообщения
Они появляются в нижней части экрана, если компьютер остлновн.к я при ныпол
нениии некоторого оператора бейсика и указывает причину, вызнлншун) останов. Со
общение содержит кодовый номер или букву. Краткое сообщение помогает иай1и оши
бочную строку и ошибочный оператор в этой строке (команда указывается стро
ка 0. оператор 1 располагается в строке первым, оператор 2 следует после перво
го или THEN и т.д.).
От состояния CONTINUE зависит очень многое в сообщениях. Обычно сообщение на
чннается с оператора, специфицированного в предыдущем (робщеини. но имеется ис
ключения - сообщение O.9.D.
|
Код |
значение |
ситуация j |
|
0 |
0К (о'кей! Порядок!) Успешное завершение или пере.ход на строку с номером, |
Ратное j ! |
|
1 |
NEXT WITHOUT FOR (NEXT без FOR) |
NEXT I |
|
Управляющей переменной нет (не была определена в опера- |
i | |
|
2 |
VARIABLE NOT FOUND. ( переменная не найдена) Для простой переменной выдается, если она испбльзуется |
разное |
|
3 |
SUBSCRIPT WRONG ( ошибочный адрес ) Индекс превышает размерность массива, либо ошибочное |
в индексной переменной или подстроке |
|
4 |
OUT OF MEMORY ( вне памяти ) В памяти недостаточно мест , для ваших действий. Вы може- |
LET. mer<;e. |
|
5 |
OUT OF SCREEN ( вне экрана ) 23 строки в нижней половине экрана. Также встречается с |
print. |
|
6 |
NUMBER ТОО В'G ( число больше макс.допуст.) |
Арифметич. |
|
7 |
RETURN WITHOUi GO SUB (RETURN без GO SUB) |
RETURN |
|
Встретилось больше операторов RETURN, чем было операторов) ______i | ||
|
8 |
END OF FILE (конец файла) |
Операции с внешней памятью. |
|
9 |
STOP STATEMENT (оператор STOP) После этого сообщения CONTINUE не может повторить STOP, |
STOP. 1 |
|
А |
INVALID ARGUMENT (ошибочный аргумент) |
SQR. LN. |
|
В |
INTEGER OUT OF RANGE (переполнение целого) Выдается, когда аргумент с плавающей точкой округляется |
RUN, RANDOM 1ZE. DIM. GO TO GO SIB. LIST. LL1ST. PAUSE. • PLOT. CHR$. PEEK. USR (с числовым аргументом) |
|
С |
NONSENSE IN BAS1Сж(выражение не бейсика) |
VAL. |
|
Текст (строка) не распознается бейсиком как допустимое | ||
|
D |
BREAK-CONT REPEATS Клавиша BREAK нажата во время действия периферийной опе- |
LOAD. |
|
Е |
OUT OF DATA ( вне данных ) Попытка видать READ когда список данных в DATA кончился. |
READ |
|
F |
INVALID FILE NAME (неверное имя файла) ] Оператор SAVE с пустой строкой вместо имени или с именем |
SAVE |
|
G |
NO ROOM FOR LINE (нет места для строки) ! Недостаточн-о места в памяти для записи очередной строки |
Ввод строки в |
|
H |
STOP IN INPUT Некоторые введенные данные начинаются с оператора STOP, |
INPI Г |
|
I |
FOR WITHOUT NEXT (FOR без NEXT) |
FOR j |
|
Цикл FOR ни разу не выполнялся, не найден NEXT. |
1 | |
|
J |
INVALID I/O DEVICE (неверное устройство ввода-вывода. |
1 в операциях |
|
К |
INVALID COLOUR (неверный цвет) |
1 NK. PAPER. BRIGHT. I. |
|
L |
BREAK INTO PROGRAM (BREAK во время выполне- Нажата клавиша BREAK; это обнаруживается между двумя |
разное |
|
** -» |
RAMTOP NO GOOD (адрес RAMTOP не гсДен) Число, указанное для RAMTOP. слишком велико |
CLEAR, RUN. |
|
N |
STATEMENT LOST (оператор отсутствует) |
RETURN CONTINUE |
|
0 |
INVALID STREAK (ошибочный поток данных) |
В о п e p а ц. |
|
P |
FN WITHOUT DEF (FN без DEF ) Определяемая пользователем функция не опре- |
FN |
|
Q |
PARAMETER ERROR (ошибка в параметре) |
| FN |
|
Ошибочное число аргументов или один из них |
1 1 | |
|
R |
ТАРЕ LOADING ERROR (ошибка загрузки с ленты) |
| VARIFY. |