|
Приложение - краткое описание функций и операторов, реализуемых данной версией языка БЕЙСИК.
|
ПРИЛОЖЕНИЕ А.
Краткое описание функций и операторов, реализуемых данной версией языка БЕЙСИК
ФУНКЦИИ
Функции — это зашитые в БЕЙСИК — систему подпрограммы, которые получая на входе одни значения, называемые аргумен- тами, возвращают другие значения —- результаты.
Функции используются в выражении простым включением в него имени функции с последующими аргументами.
Если в одном выражении используются и функции, и опе- рации, то функции будут вычислены перед выполнением любых операций. Однако, этот порядок можно изменить, применяя скобки.
Принятые обозначения:
X, Y — аргументы функций;
А, В — операнды функций.
Все функции языка Бейсик сведены в следующую таблицу:
Имя функции |
Тип аргумента |
Действие *» (возвращаемое значение) |
1 |
2 |
3 |
ABS |
Число |
Абсолютное значение |
ACS |
Число |
Арккосинус в радианах, число должно быть в интервале от — 1 до 1 |
ASN |
Число |
Арксинус а радианах, число должно быть в интервале от — I до 1 |
ATN |
Число |
Арктангенс в радианах |
ATTR |
Два число- вых аргумен- та X и Y, заключенных в скобки |
Число, двоичный код которого представляет собой атрибуты Y-ой позиции Х-ой строки экраиа. Бит 7 (старшяй) равен 1 для мерцающего поля, и 0 для немерцающего. Биты с 5 по 3 — цвет фона. Биты с 2 по 0 — цвет закрашивания. 0<=Х<=23 и 0<=Y<=31. |
BIN |
|
Это не обычная функция. За BIN записывается после- довательность нулей и единиц, представляющая собой дво- ичное представление числа, которое записывается в память |
CHR$ |
Число |
Символ, чей код представим числом X, округленным к
ближайшему целому. |
CODE |
Строка символов |
Код первого символа в строке X (или 0,если строку пустая)
|
COS |
Число в радианах |
Косинус X |
EXP |
Число |
F, в степени X |
FN |
|
FN с последующим именем, определенной пользователем функции (см. DEF). Аргументы должны заключаться в скобки. Даже если иет аргументов, скобки все равно должны записываться |
IN |
Число |
Осуществляется ввод на уровне микропроцессора из порта X (0<;=Х<—FFFFH). Загружается пара регистров ВС и выполняется команда ассемблера IN А, (С). |
INKEY$ |
Нет |
Чтение с клавиатуры. Возвращает символ, введенный с кла- виатуры (в режиме |L] или [С]) .если было действительное нажатие клавиши, или пустую строку в противном случае. |
INT |
Число |
Округление к ближайшему меньшему целому |
LEN |
Строка символов |
Длина строки |
LN |
Число |
Натуральный логарифм, Х>-0. |
NOT |
Число |
0, если ХоО; 1, если Х=0. Операция име.эт четвертый приоритет. |
1 |
2 |
з |
OR |
Оба операн да числа |
1
Логическая операция
1, если В<>0
A OR В-
А, если В=0 Операция имеет второй приоритет. |
РЕЕК |
Число |
Значение байга в памяти по адресу X, округленному к ближайшему целому |
PI |
Нет |
Число ПИ (3.14159265...) |
POINT 1 |
Два числовых аргумента X и Y, заклю- ченных в скобки |
1, если точка экрана с координатами (X,Y) закрашена. 0, если эта точка имеет цвет фона. 0<=Х<=255 и 0<=Y<=175. |
RND |
Her |
Очередное псевдослучайное число из последовательности, получаемой возведением в 75 степень модуля числа 65537, вычитанием 1 и делением иа 65536. Число лежит в интер- вале 0<=Y<=1. |
S(,Rfh.N$ |
Два числовых аргумента X и Y, заклю- ченных в скобки; |
Символ (обычный или инверсный), который появляется на экране в строке X, позиии Y. Дает пустую строку, если символ ие опознан.
|
SON |
Число |
-1,:если Х<0
0, если X—0
1, если Х> 0 |
SIN |
Число в радианах |
Синус X |
SQR |
Число |
Корень квадратный. Ошибка, если Х<0. |
STR$ |
Число |
Строка символов, которая должна быть отображена," " если X выводится |
USR |
Число |
Вызывает подпрограмму в машинных кодах, начальный адрес которой X. При возврате результатом будет содер- жимое регистровой пвры ВС. |
USR |
Строка символов |
Адрес группы байтов, задающих определённый пользова- телем символ для закрепления его за X. |
VAL |
Строка символов |
Вычисляет X как числовое выражение. Выдает сообщение об ошибке, если X содержит синтаксическую ошибку или дает строковое (не числовое) значение. |
VAL$ |
Строка символов |
Вычисляет X как строковое выражение. Выдает сообщение об ошибке, если X содержит синтаксическую ошибку или дает не строковое (числовое) значение. |
ОПЕРАТОРЫ
Принятые обозначения: А — одна буква; V — переменная; X, Y, Z — числовые выражения;
М, N — числовые выражения, которые округляются к ближай- шему целому; Е — некоторое выражение; F — выражение, имеющее строковое значение; S — последовательность операторов, разделенных двоеточием «:»;
С — последовательность символов управления цветом. Каждый заканчивается запятой или точкой с запятоц. Цветовой символ имеет форму операндов: PAPER, INK, FLASH, BRIGHT, INVERSE или OVER. Текст произвольного выражения может располагаться в любом месте строки (за исключением номера строки, который должен размещаться в начале строки).
Все операторы, кроме INPUT, DEF и DATA могут исполь- зоваться и как команды и в программах.
Команда или строка программы может содержать несколько операторов, разделенных двоеточием «:».
Нет ограничений на положение оператора в строке, хотя есть некоторые ограничения в IF и REM.
Все операторы языка БЕЙСИК сведены в следующую таблицу:
Оператор |
Действие оператора |
1 |
2 |
ВЕЕР X, Y |
Воспроизводит звук длительностью X сек. и высотой Y полу- тонов вверх от основного тона ДО (или вниз, если Y отрица- тельное) |
BORDER М |
Устанавливает цвет рамки (бордюра) экрана. 0<—М<=7 |
BRIGHT М |
Устанавливает яркость выводимого символа:
0 — для обычной яркости;
1 — для повышенной яркости;
8 — сохраняет существующую яркость. |
CAT |
Без MICRODRIVE не работает |
CIRCLE X,Y,Z |
Изображает дугу или окружность с центром в точке с коорди- натами (X.Y) и радиусом Z. |
CLEAR |
Уничтожает все переменные и очищает занимаемую ими память Выполняет RESTORE и CLS, устанавливает PLOT позицию в нижнюю левую точку экрана и очищает GO SUB стек. |
CLEAR N |
Подобно CLEAR, но дополнительно изменяет системную пере- менную RAMTOP на 'N' и задает новый GO SUB стек. |
CLOSE* |
Без MICRODRIVE ие работает |
CLS |
(CLEAR SCREEN) очищает файл экрана |
CONTINUE |
Продолжает выполнение программы, начатой ранее и остановлен- ной с сообщением, отличным от 0. Если было сообщение 9 или L то выполнение продолжается со следующего оператора. В других случаях с того оператора, где случилась ошибка. |
COPY |
11ересылает копию 22 строк экрана на принтер, если он подключен |
DATA EI, E2, E3„. |
Часть списка данных Располагается только в программе. |
DEF
FNA(Al,...,AK)=E |
Определяемая пользователем функция Должна располагаться в программе. А,А1 и т.д. единственные буквы или буквы и $ для строковых аргументов, значений. Если нет аргументов, исполь- зуется форма DEF FNA( ). |
DELETE F |
Без MICRODRIVE не работает |
DIM
A (NI,N2,...,NK) |
Уничтожает массив с именем 'А' и устанавливает числовой массив 'А' с 'К' измерениями и присваивает всем его элементам значение 0. |
DIM
A$ (N1.N2.....NK) |
Уничтожает массив или строку с именем ' ' и устаиавлн вает символьный массив с 'К' измерениями и присваивает всем его элементам значение « ». Массив не определен до его опи- сания в операторе DIM. |
DRAW X, Y |
То же самое, что и DRAW X, Y, 0. Чертит прямую линию |
DRAW X,Y,Z |
Изображает линию от текущей графической позиции в точку приращениями X,Y по дуге в Z радиан. |
ERASE |
Без MICRODRIVE не работает |
1 |
2 |
FLASH N |
Определяет, будет ли символ мерцающим или с постоянным свечением. N=0 для постоянного свечения, N=1 для мерцания N—8 — для сохранения предыдущего состояния. |
FOR А=-Х ТО Y |
FOR А=Х ТО Y STEP 1 |
FOR А=Х ТО Y STEP Z
|
Уничтожает скалярную переменную 'А' и устанавливает управ ляющую переменную 'X', предел 'Y', шаг приращения 'Z', зацикливает адрес, указанный и утверждении после FOR оде ратора. Проверяет, если начальное значение больше (если STEP>=0) или меньше (если STEP<0), чем предел, то про- исходит переход к утверждению NEXT А. |
GO SUB N |
Проталкивает строку с оператором GO SUB в стек для исполь- зования затем как GO ТО N. |
G6 ТО N |
Продолжает выполнение программы со строки. 'N', если 'N' опущено, то с первой строки после этой. |
IFX THEN S |
Если 'X' истинно (не равно 0), то выполняется 'S', 'S' вклю- чает все операторы до конца строки. |
INK N |
Устанавливает цвет закрашивания (т.е. цвет, которым будут изображаться символы иа цвете фона). 'N' в интервале от 0 до 7 указывает цвет. N=8 — оставить цвет без изменения, N=9 — увеличение контраста. |
INPUT...
/
- 4 '*' |
'...' есть последовательность вводимых символов, разделяемых как в операторе PRINT запятыми, точками с запятой или апострофами. Вводимыми символами могут быть:
а) некоторый PRINT — символ, начинающийся не с буквы;
б) имя переменной;
в) строка имен переменных строкового типа.
PRINT — символы в случае а) представляются так же, как и в операторе PRINT, за исключением того, что они все выводятся в нижнюю часть экрана. В случае б) компьютер остаиавли- иается и ждет ввода некоторого иыражеиия с клавиатуры, зна- чение которого будет присвоено переменной. Ввод осуществля- ете» обычным образом, а синтаксические ошибки выдаются мерцающим знаком [?]. Для строкового выражения вводной буфер устанавливается для размещения двух таких строк. Если первый вводимый символ STOP, то программа останавливается Случай в) подобен случаю б) с той лишь разницей, что вводимая информация представляет собой строковый литерал неограни- ченной длины, и STOP в этом случае ие сработает. Для останова надо нажать клавишу 'курсор вниз'. |
INVERSE N |
Символ управления инверсией выводимого сямвола. Если N—0, символ выводится в обычном виде с прорисовкой цветом закра- шивания (INK) иа цвете фона (PAPER) Если N=1, то цветовое решение изображения символа меняется на обратное. |
LET V=E |
Присваивает значение 'Е' переменной 'V'. Ключевое слово LET не может быть опущено. Скалярная переменная ие опре- делена, пока не встретится в операторах LET, READ или INPUT.
Если индексируемая строковая переменная или сечеиие стро- кового массива (подстрока), то присваивание осуществляется с усечением справа или дополнением пробелами до фиксирован- ной длины. " |
1 |
2 |
LIST |
To же, что и LISTO. |
LIST N |
Записывает текст программы в верхнюю часть экрана, начиная с первой строки, меньшей, чем 'N', и делает 'N' текущей строкой. |
LLIST |
То же, что и LLISTO. ЙНВ&гт |
LLIST N |
Подобно LIST, но вывод осуществляется на принтер |
LOAD F |
Загружает программу и переменные. Р |
LOAD F DATA ( ) |
Загружает числовой массив |
LOAD F DATA $ ( ) |
Загружает строковый массив. |
LOAD F CODE M,Is |
Загружает старшие 'N' байтов, начиная с адреса 'М'. |
LOAD F CODE M |
Загружает байты, начиная с адреса 'М'. |
LOAD F CODE |
Загружает байты по адресу, с которого они были записаны на ленту. |
LOAD F SCREEN$ |
Аналогично LOAD F CODE 16384, 6912. Очищает файл экрана и загружает его с кассетного магнитофона. |
LPRINT |
Подобно PRINT, но использует принтер. |
MERGE F |
Подобно LOAD F, но ие затирает всю старую программу в памяти, а заменяет только те строки и переменные, у которых совпадают номера или имена с такими же иа лейте |
MERGE F1.F2 |
Без MICRODRIVE ие работает Я! |
NEW |
Запускает по новой систему программирования БЕЙСИК, унич- тожая старую программу и переменные и используемую память |
NEXT A |
а) находит управляющую переменную 'А';
б) прибавляет к ней значение STEP;
в) если STEP>=0, а значение 'А' стало больше значения 'предел', или STEPcO, а значение 'А' меньше, чем значение 'предел', то происходит переход к оператору цикла. |
OPEN# |
Без MICRODRIVE не работает |
OUT M.N |
Выводит байт 'N' в порт 'М'. Операции выполняется на уровне микропроцессора (загружает в регистровую пару ВС адрес 'М', а в регистр А — 'N' и выполняет команду ассемблера OUT (С). А .
0<=М <=65535. — 255<=N<=255. |
OVERN |
Управляющий символ надпечатываиия по выведенной строке. Если N—0, то выводимый символ затирает существующий в данной позиции. Если N=1, то новый символ соединяется со ста- рым, образуй закрашивающий цвет, при условии, что старый символ имел указание цветв, отличное от старого, или цвет фона, если оба указывают на один и тот же цвет (либо фона, либо закрашивания). |
PAPER N |
Подобен INK, но управляет цветом фона. |
I |
2 |
PAUSE N |
■
Останавливает выполнение программы и задерживает изображе ние на экране на 'N' кадров (50 кадров в сек. — частота кадровой развертки) или до нажатия любой клавиши. 0<= N<=65535. При N=0 время задержки не учитывается и продолжается до первого нажатия клавиши. |
PLOT C; M,N
|
Выводит точку закрашивающего цвета (обработанная OVER и INVERSE) с координатами (ABS (М), ABS(N)), смещает гра фическую позицию.
Если цветовой символ 'С' ие специфицирован иначе, то цвет закрашивания в позиции, где расположена эта точка, изме- няется на текущий сплошной закрашивающий цвет, и другие указания (цвет фона, мерцание, яркость) остаются без изме- нения.
0<=ABS(M) <=255 0<=ABS(N) <=175 |
POKE M,N |
Записывает значение 'N' в байт памяти по адресу 'М'. 0<=М <=65535, — 255 <=N <=255 |
PRINT. |
'...' последовательность PRINT — символов, разделенных запя тыми, точками с запятой или апострофами, которые выводятся в экранный файл для отображения на экране телевизора. Точка с запятой сама действия не вызывает, а используется для разграничения символов. Запятая порождает управляющий символ «запятая>, а апостроф порождает символ ENTER В конце оператора PRINT, если он не заканчивается точкой с запятой, запятой илн апострофом, автоматически выводится символ ENTER PRINT — символом может быть:
а) пустая строка;
б) числовое выражение.
Если значение выражения отрицательно, то выводится знак минус. Если Х<=10**( 5) или Х>=10**13, вывод осущест- вляется в показательной форме. Мантисса представляется 8-мью цифрами (с нормализацией) и десятичной точкой (отсутствует только тогда, когда в мантиссе одна цифра) после первой цифры. Показатель степени записывается после буквы 'Е' с последующим знаком и двумя цифрами порядка. Иначе X выво- дится как обычное десятичное число с 8-мью значащими циф- рами;
в) строковое выражение.
В строке возможны пробелы до и после символов. Управляющие символы вызывают определяемое ими действие. Не отображаемые на экране символы выводятся как '7';
г) AT M,N
Вывод в позицию 'N' строки 'М';
д) TAB N
Перемещает позицию вывода в столбец N текущей строки;
е) цветовой символ в форме PAPER, INK, FLASH, BRIGHT, INVERSE или OVER оператора. |
Hn
RANDOMIZE |
To же, что и RANDOMIZE 0 |
1 |
' ' 2 |
RANDOMIZE N |
Устанавливает системную переменную SEED, используемую для вычисления очередного значения функции RND. Если N< >0, то SEED принимает значение 'N'. Если N=0, то SEED принимает значение другой системной переменной FRAMES, подсчитывающей кадры, отображаемые на экране, что обеспечивает вполне случайное число. N должно лежать в интервале от 0 до 65535. |
READ V1,V2,...,VK |
Присваивает переменным VI,...VK одной за другой значения, последовательно представленные в списке DATA. |
REM... ^ |
Вставка комментариев. Не выполняется. '...' может быть по- следовательностью символов (исключая ВК). |
RESTORE |
То же самое, что н RESTORE О |
RESTORE N |
я
Перезаписывает указатель данных в первый оператор DATA в строке меньшей, чем N. Следующий оператор READ начнет считывание отсюда. |
RETURN |
Возврат из подпрограммы, ссылается на оператор GO SUB в стеке и передает управление на строку после него. |
RUN ■ |
То же самое, что н RUN О. |
RUN N |
Запуск выполнения БЕЙСИК-программы. Выполняет CLEAR, а затем GO ТО N. |
SAVE F |
Вывод на ленту программ н данных. |
SAVE F LINE M |
Записывает на ленту программу и переменные таким образом, что при загрузке программа автоматически выполняется со стро- ки 'М'. |
SAVE F DATA ( ) |
Запись на ленту числового массива. |
SAVE F DATA $ ( ) |
Запись на ленту строкового массива |
SAVE F CODE M,N |
Запись на лепту 'N' байтов, начиная с адреса 'М'. |
SAVE F SCREEN$ |
Аналогично SAVE F CODE 16384, 6912 |
STOP |
Останавливает выполнение программы. Продолжение (CONTINUE) будет осуществляться со следующего оператора. |
VERIFY |
Го же, что н LOAD, за исключением того, что данные не загружаются в ОЗУ, а сравниваются с находящимися там кодами. |
|
|