СПРАВОЧНИК ПО SPECTRUM-ББЙСИКУ
В этом разделе в сжатой и более строгой форме
повторено все, что говорилось о Spectrum-Бейсике в первой главе.
«Справочник» предназначен для тех, кто постоянно работает с
Бейсиком.
Ключевые слова размещаются в алфавитном
порядке, для каждого приведены: формат, класс, последовательность
набора на клавиатуре, ссылка на страницу основного текста, краткое
описание и пример использования. Результаты выполнения примеров,
выводимые на экран, выделены более жирным шрифтом. Примеры, набираемые
в непосредственном режиме (без номера строки), запускаются нажатием
клавиши Enter, программы — выполнением оператора RUN. В примерах
RUN и Enter опущены.
После описания ключевых слов приведены:
«Тематический указатель», в котором операторы и функции
объединены по сферам их применения, перечень сообщений об ошибках,
таблица символов ZX Spectrum и таблица контрольных кодов.
При описании ключевых слов используются обозначения, перечисленные в начале книги, а также:
[Е] - расширенный режим клавиатуры (включается одновременным нажатием клавиш CS и SS).
Классы ключевых слов
• числовая переменная — имя
переменной, хранящей числовую константу, начинается с буквы и может
состоять из произвольного количества символов, пробелы игнорируются,
заглавные и строчные буквы не различаются;
• числовое выражение —
допустимая интерпретатором комбинация констант, переменных, функций,
объединенных знаками математических операций, в результате вычисления
которой получается числовая константа;
• числовое значение — числовая константа, числовая переменная, числовое выражение;
• целочисленное значение — числовая константа, переменная, выражение, округляющиеся до ближайшего целого;
• символьная константа — последовательность символов, заключенная в кавычки (строка символов);
• символьная переменная — имя
переменной, хранящей символьную константу; составляется из двух
символов: буквы и знака $; заглавные и строчные буквы не различаются;
• символьное выражение —
допустимая комбинация констант, переменных, функций, объединенных
математическими операциями, в результате вычисления которой получается
символьная константа;
• символьное значение — символьная константа, символьная переменная, символьное выражение.
- числовое значение;
- целочисленное значение;
- символьное значение;
- числовая или символьная переменная;
- допустимая комбинация числовых и символьных значений, объединенных знахами сравнения и логическими операторами;
- допустимый в данном контексте бейсик-оператор;
- значение адреса ячейки памяти (0...65535);
- номер строки программы (0...9999)
- номер строки экрана (0...21), отсчитывается от верхнего края экрана;
- номер столбца экрана (0...31), отсчитывается от левого края экрана;
Формат
Формат отражает, какие ключевые слова и
значения и в какой последовательности необходимо использовать для
составления операторов и функций. При записи формата приняты следующие
обозначения:
<z> <с>
< string > <var>
< условие >
< оператор > <addr> <п> <row>
<col>
<х> - горизонтальная координата точки (0... 1 75),
отсчитывается от нижнего края основного экрана; <у> - вертикальная координата точки (0...255),
отсчитывается от левого края экрана; <q> — угол, заданный в радианах;
<color> - код цвета.
Коды цветов
0 - черный
1 - синий
2 - красный
3 - фиолетовый
4 - зеленый
5 - голубой
6 - желтый
7 — белый
8 - режим прозрачности23
9 — режим черно-белого
контраста24
Знаки математических операций
+
|
сложение
|
-
|
равно
|
-
|
вычитание
|
О
|
не равно
|
♦
|
умножение
|
<
|
меньше
|
/
|
деление
|
>
|
больше
|
т
|
возведение в степень
|
< =
|
меньше или равно
|
0
|
скобки
|
> =
|
больше или равно
|
Порядок выполнения операций при расчете выражений
1. выделение подстроки (сечение)
2. функции
3. возведение в степень
4. минус перед числом (отрицательное число)
5. умножение и деление
6. сложение и вычитание
7. сравнение (=, >, <, <=, >=, О)
8. NOT
9. AND 10. OR
Первыми рассчитываются части выражения, заключенные в скобки.
spectrum-Basic
ABS <z> (Ejo
функция стр. 16
модуль числового значения <z>. Пример' PRINT ABS -3 3
ACS <z>
функция стр. 15
арккосинус, значение аргумента <z> должно находиться в интервале от — 1 до 1.
Пример25: PRINT 180/PI*ACS 0.5
AND___ss/y
логический оператор, функция стр. 35
Логический оператор
реализует логическое умножение. Комбинация условий, объединенных AND, истинна, если истинно каждое из условий.
Пример: LET Х=10: IF Х>5 AND Х<15 THEN PRINT "YES"
YES
Функция
• возвращает значение, стоящее перед ключевым словом, если аргумент не равен нулю;
• возвращает ноль или «пустую
строку» (в зависимости от того, числовое или символьное значение
стоит перед ключевым словом), если аргумент равен нулю.
Пример: PRINT "A" AND 1
А
PRINT 3 AND 0 0
ASN <z>_[е] ss/q
функция стр. 15
арксинус, значение аргумента <z> должно находиться в интервале от -1 до 1.
Пример: PRINT 180/PI*ASN 0.5
at <row>, <col>_ __SS/I
оператор стр. 14
задает знакоместо для вывода данных в
операторах PRINT и INPUT. Параметр <row> (0...21) определяет
номер строки, <col> (0...31) — номер столбца. Данные
отделяются от AT знаками-разделителями (запятая, точка с запятой,
апостроф).
Пример: PRINT "AAA"; AT 10,15; "ООО"
ATN <Z> ___[E] SS/E
функция стр. 15
арктангенс числового значения <z>.
Пример: PRINT 180/PI*ATN 1
attr (<rOW>, <Col>) __[E] SS/L
функция стр. 55
возвращает значение, соответствующее атрибутам знакоместа.
Позиция знакоместа задается двумя
целочисленными значениями, записанными через запятую и заключенными в
скобки: <row> — номер строки (0...23), <col> —
номер столбца (0...31), ATTR возвращает число от 0 до 255, рассчитанное
по следующей формуле:
1 x<INK>+8x<PAPER>+64x<BRIGHT> + l 28х< FLASH >, где <INK>, <PAPER>, <BRIGHT> и <FLASH> — значения атрибутов*.
Пример:
Если символ в знакоместе с <row> = ! 1, <col>=16 напечатан
синим (код 1) на желтом (6) с повышенной яркостью без мерцания, то
функция ATTR (11, 16) вернет число 1+6x8+64+0=112
ВЕЕР <t>, <h> ________[Щ SS/Z
оператор стр. 40
генерирует звук заданной длительности и высоты.
Параметр <t> задает длительность звучания в секундах, <h>
— высоту в полутонах: 0 соответствует ноте ДО первой октавы,
диапазон изменения от -60 до 69. При большой длительности звучания
допустимый диапазон высот уменьшается.
Пример: ВЕЕР 0.5, 1: REM Нота ДО# первой октавы в течение 0,5 секунды
bin <ь>_m
функция стр. 53
переводит шестнадцатиразрядное двоичное число <Ь> в десятичное
(нули в левой части числа можно опускать).
Пример: PRINT BIN 11111110 254
border < color > в
оператор стр. 22
задает цвет поля вокруг рабочей области экрана и цвет фона служебного экрана. Цвет определяется параметром < color >.
В отличие от операторов INK и PAPER, оператор BORDER не может быть использован в операторе PRINT.
bright <р>_[е] ss/b
оператор стр. 22
устанавливает яркостный режим отображения информации. Параметр <р> может принимать одно из целочисленных значений:
1 — включает режим повышенной яркости отображения информации;
8 — задает режим прозрачности, при
котором яркость отображения информации будет повторять яркость, ранее
установленную для данного знакоместа, то есть при печати новых символов
яркие знакоместа будут оставаться яркими, а нормальные —
нормальными; 0 — отменяет режимы повышенной яркости и
прозрачности.
Режим яркости устанавливается целиком для знакоместа и одновременно для цвета тона и цвета фона.
В качестве самостоятельного оператора BRIGHT
устанавливает тот или иной режим яркости для всех последующих выводов
на экран (постоянный атрибут).
BRIGHT может также использоваться в операторах
PRINT, INPUT, PLOT, DRAW, CIRCLE, устанавливая режим яркости
отображения информации, выводимой только данным оператором (временный
атрибут). В операторах PRINT и INPUT ключевое слово BRIGHT размещается
в любом месте блока данных, отделяясь от них знаками-разделителями
(запятая, точка с запятой, апостроф).
BRIGHT в операторах PLOT, DRAW, CIRCLE ставится сразу за ключевым словом и отделяется от параметров точкой с запятой.
Пример: PRINT "AAA", BRIGHT 1; "AAA"; BRIGHT 0; "AAA"
AAAAAAAAA
cat_
ключевое слово в Spectrum-Бейсике не задействовано.
chr$ <к> _го и
функция стр. 18
возвращает символ по указанному в аргументе
коду <k> (0...255). Соответствие символов кодам приведено в табл.
1 на стр. 100.
Коды от 0 до 32 являются управляющими и не
имеют символьного представления. Функция CHR$ с этими кодами в качестве
аргумента влияет на вывод информации на экран и принтер (см. табл. 2 на
стр. 101).
Пример: PRINT CHR$ 65 А
circle <х>, <у>, <r>__IE]ss/н
оператор стр. 20
строит на экране окружность. Параметры
окружности задаются в пикселях тремя целочисленными значениями:
<х> (0...175) и <у> (0...255) — вертикальная и
горизонтальная координаты центра окружности, <г> — радиус.
Цвет окружности соответствует текущим
постоянным значениям атрибутов либо задается операторами INK, PAPER и
другими, поставленными непосредственно за ключевым словом CIRCLE и
отделенными друг от друга и от параметров точкой с запятой.
Пример: CIRCLE INK 3; 128, 88, 87
clear [<addr>]_X
оператор стр. 65
обнуляет значения всех переменных, выполняет
операторы CLS и RESTORE, сбрасывает позицию PLOT и очищает стек GO SUB.
CLEAR с параметром, кроме того, заносит значение <addr> в
системную переменную RAMTOP (см. стр. 65).
close #<с> _
оператор используется при работе с потоками и каналами (см. [1]).
cls _v
оператор стр. 21
очищает основной экран и.окрашивает его в текущий постоянный цвет фона.
code <string>__W
функция стр. 18
возвращает код первого символа символьного значения < string > в
соответствии с таблицей символов ZX Spectrum
(см. табл. 1 на стр. 100). Если аргумент равен «пустой
строке», функция возвращает 0.
Пример: PRINT CODE "ABC" 65
continue
оператор стр. 33
продолжает выполнение программы с оператора, на котором оно было прервано.
СОРУ Е
оператор стр. 51
распечатывает копию экрана на принтере.
cos <q> __[e]w
функция стр. 15
вычисляет косинус угла <q>, заданного в радианах.
data <данные>, ...__№1 Р
оператор стр. 43
задает список данных — произвольный набор
числовых и символьных значений. Элементы данных размещаются
непосредственно за ключевым словом и отделяются друг от друга запятыми.
Оператор DATA можно помещать в любом месте программы. Список данных
может быть распределен между несколькими операторами DATA.
Считывание данных (занесение данных в
переменные) производится оператором READ. Переменные, используемые в
качестве элементов данных, к моменту считывания должны быть определены.
Последовательность считывания данных изменяется с помощью оператора
RESTORE.
Пример: 10 LET D1=31: LET D2=28 20 FOR N=1 TO 2 30 READ X,A$ 40 PRINT A$;" ";X;" DAYS" 50 NEXT N
60 DATA D1,"JAN",D2,"FEB" JAN 31 DAYS FEB 28 DAYS
Ключевое слово DATA может быть использовано
также в комбинации с LOAD. SAVE, и VERIFY (см. LOAD...DATA, SAVE...DATA
и VERIFY,.. DAT A).
PEE FN ___________[e] ss/i
оператор
определяет пользовательские функции
(дополнительно к «встроенным» в Бейсик). Для задания'
числовой функции после DEF FN ставится буква (имя функции), за ней в
скобках одна или несколько отделенных друг от друга запятыми
однобуквенных переменных (параметры функции) и следом через знак
равенства — числовое выражение, задающее саму функцию.
Пример: 100 DEF FN R{X,Y)=X+Y
Оператор DEF FN помещается в любое место программы.
Вызов пользовательской функции осуществляется
ключевым словом FN. Вслед за ним указывается имя функции и в скобках
через запятую — значения параметров в порядке, соответствующем их
следованию в определении функции.
Пример: PRINT FN R(3,4)
7
В этом примере параметру X присваивается значение 3, a Y — значение 4.
При расчете пользовательской функции переменные, совпадающие по имени с параметрами функции, не изменяются.
В выражении, задающем функцию, могут
использоваться и не указанные в скобках переменные. При вызове функции
они принимают значения, заданные в программе.
Символьная функция определяется аналогично числовой, только в качестве ее имени используется буква со знаком $.
Пример: 150 DEF FN A$(C$,i,j)=C$(i ТО j) 200 PRINT FN A$ ("Speccy",2,4)
pec
DIM ____
оператор
задает массив и его размерность
Числовые массивы
При задании числового массива вслед за DIM
ставится однобуквен-ное имя массива и в скобках через запятые одно или
несколько (в зависимости от размерности массива) целочисленных
значений, задающих количество элементов массива по каждому измерению.
Пример: 10 DIM Y(5)
20 DIM Z(10,3)
В первой строке примера задается одномерный
числовой массив, состоящий из 5 -элементов (индексированных переменных)
Y(1)...Y(5). Во второй — двумерный массив из 30 элементов
Z(1,1)...Z(10,3).
После задания массива его элементам присваивается нулевое значение.
Число измерений массива не может превышать 255.
Параллельно с числовыми массивами в программе могут использоваться неиндексированные числовые переменные с тем же именем.
Символьные массивы
Имена символьных массивов состоят из буквы и
знака $. При определении массива в скобках после имени, кроме числовых
значений, задающих его размерность, указывается число, определяющее
длину элементов массива (количество символов в них).
Пример: 10 DIM Z$(20,10) 20 DIM С$( 10,4,5)
В строке 10 задается одномерный символьный
массив из 20 элементов Z((1)...Z$(20), каждый из которых представляет
собой строку длиной в 10 символов. В строке 20 — двумерный массив
из 40 строк длиной по 5 символов.
N-мерный символьный массив можно рассматривать
как (N+1)-мерный массив с элементами длиной в один символ.
Следовательно, можно выделить любой символ элемента массива, указав в
индексированной переменной, кроме значений индексов, еще и номер
позиции символа в строке.
Пример: 70 LET Z$(2)="QWERTYUIOP" 75 PRINT Z$(2,3)
E
После определения символьного массива его
элементам присваивается значение строки, состоящей из пробелов.
Символьные значения, присваиваемые элементам массива, либо дополняются
пробелами до нужной длины, либо усекаются.
В отличие от числовых массивов, одновременно с
символьным массивом не может существовать неиндексированная символьная
переменная с тем же именем.
Символьные массивы нулевой размерности
Можно определить символьный массив нулевой размерности, указав в скобках после имени массива только одно значение.
Пример: 10 DIM А$(15)
Заданный массив имеет один элемент А$ —
строку фиксированной длины, равной указанному в скобках значению, в
данном случае — 15 символов.
draw <а>, <b>[, <q>] ___ w
оператор стр. 20
строит на экране отрезок прямой линии или дугу окружности.
Для проведения прямой линии следом за DRAW
через запятую ставятся два целочисленных значения, задающих
относительное расстояние в пикселях от начала отрезка до его конца,
соответственно, по горизонтали (<а>) и вертикали (<Ь>). При
проведении отрезка влево и вниз эти значения должны быть
отрицательными. За начало отрезка принимается точка, выставленная
последним выполненным графическим оператором fDRAW, PLOT, CIRCLE).
После включения компьютера начальная точка построения линий
устанавливается в левый нижний угол основного экрана (0, 0).
Для проведения дуги окружности после значений,
определяющих расстояние от начальной точки построения до конечной,
через запятую указывается числовое значение <q>. Оно задает угол
в радианах, получающийся при соединении концов дуги с центром
окружности, частью которой она является. При положительном значении
<q> дуга строится против часовой стрелки, при отрицательном
— по часовой.
Цвета линии соответствуют текущим постоянным
значениям атрибутов либо задаются операторами INK, PAPER и другими,
поставленными непосредственно за ключевым словом DRAW и отделенными
друг от друга и от параметров точками с запятой.
Пример: DRAW INK 2; 80, 50, -0.5
erase_
ключевое слово в Spectrum-Бейсике не задействовано.
exp <z>_[Ejx
функция стр. 15
экспонента: возводит число е=2,7182818 в степень, заданную числовым значением <z>. Пример: PRINT EXP 1
2.7182818
flash <р>_[е]ss/v
оператор стр. 22
устанавливает режим мерцания при отображении
символьной и графической информации. Параметр <р> может принимать
одно из целочисленных значений:
1 - включает режим мерцания. Изображение на
экране компьютера при включенном режиме периодически меняет цвет тона
на цвет фона и обратно;
8 - задает режим прозрачности, при котором
режим мерцания будет повторять режим, ранее установленный для данного
знакоместа, то есть при печати новых символов мерцающие знакоместа
будут оставаться мерцающими, а нормальные — нормальными; О -
выключает мерцание и режим прозрачности. FLASH устанавливает режим
мерцания целиком для знакоместа.
В качестве самостоятельного оператора FLASH задает режим мерцания для всех последующих выводов на экран (постоянный атрибут).
FLASH может также использоваться в операторах
PRINT, INPUT, PLOT, DRAW, CIRCLE, устанавливая режим мерцания
графического и символьного изображения, выводимого только данным
оператором (временный атрибут).
В операторах PRINT и INPUT ключевое слово FLASH
размещается в любом месте перед данными, отделяясь от них
знаками-разделителями (запятая, точка с запятой, апостроф). FLASH в
операторах PLOT, DRAW, CIRCLE ставится сразу за ключевым словом и
отделяется от параметров точкой с запятой.
Пример: PRINT "A"; FLASH 1; "В"; FLASH 0; "С"
fn__IE] SS/2
функция
возвращает значение пользовательской функции, заданной оператором DEF FN. См. описание DEF FN.
for <i> = <a> то <Ь> istep <s>]_F
оператор стр. 37
определяет начало и параметры цикла
FOR...NEXT, позволяющего выполнять часть программы, заключенную между
операторами FOR и NEXT, заданное число раз. Вслед за FOR ставится буква
— управляющая переменная цикла
(<i>), знак равенства и два числовых значения, разделенных
ключевым словом ТО: <а> задает начальное значение переменной
цикла, <Ь> — конечное. Далее может следовать ключевое слово
STEP со стоящим за ним числовым значением <$>, задающим шаг
приращения управляющей переменной. Шаг может быть как целым, так и
дробным, как положительным, так и отрицательным. При отсутствии
ключевого слова STEP шаг устанавливается равным 1.
Пример: 50 FOR 1=1 ТО 25 STEP 5
После конструкции FOR...ТО...STEP размещается тело цикла
— фрагмент программы, который требуется повторить заданное число
раз. В теле цикла может использоваться переменная цикла. Тело цикла
завершается оператором NEXT со стоящей за ним переменной цикла.
Пример: 100 NEXT i 78
Оператор NEXT увеличивает значение переменной
цикла на заданный шаг и сравнивает ее новое значение с конечным
значением <Ь>. Если переменная цикла не превысила конечное
значение, то тело цикла выполняется еще раз, в противном случае цикл
завершается и программа переходит к выполнению следующего за NEXT
оператора.
Возможно построение неограниченного числа вложенных циклов FOR...NEXT.
format_
ключевое слово в Spectrum-Бейсике не задействовано.
go sub <n> _н
оператор стр. 45
передает управление подпрограмме. Номер строки,
с которой начинается подпрограмма, задается целочисленным значением
<п>. Текст подпрограммы должен заканчиваться оператором RETURN,
который возвращает управление оператору, следующему за GO SUB.
Из подпрограммы может осуществляться вызов другой подпрограммы. Количество таких вызовов (вложений) не ограничено.
Пример: 25 GO SUB 1000
30 GO SUB 1000+X
go to <n>_„__2
оператор стр. 32
передает управление строке программы. Номер
строки задается целочисленным значением <п>. В режиме
непосредственного исполнения GO ТО используется для запуска программы с
любой строки без обнуления переменных и очистки экрана.
if <усповие> then <оператор>[:<оператор>] ... U
оператор стр. 33
передает управление последовательности
операторов при выполнении заданного условия. Условие ставится за IF,
последовательность операторов — после ключевого слова THEN. При
невыполнении (ложности) условия управление сразу передается на
следующую строку программы.
Условием может быть и числовое значение. При
этом считается, что истинным значением является отличное от нуля
значение, а ложным — равное нулю.
Несколько условий может быть объединено логическими операторами в логическое выражение.
Пример: 50 IF Х<3 THEN PRINT "KU-KU": GO TO 250 75 IF X+Y/5 THEN PRINT X+5; 85 IF A$="AAA" AND A=25 THEN GO SUB 100
in <addr>_[E] SS/I
функция
считывает число (байт) из порта (см. [1]). Адрес порта задается целочисленным значением <addr> (0...65535), записываемым за ключевым словом.
Пример: 150 LET X=IN Y
ink < color >__IE] ss/*
оператор стр. 21
устанавливает цвет тона — цвет, в который окрашиваются выводимые на экран символы, точки, линии. Вслед за INK указывается целочисленное значение <color> в интервале от 0 до 9, которым кодируется цвет.
После выполнения оператора INK 8 выводимые на
экран символы и графические объекты будут окрашиваться в цвета, ранее
установленные для данных знакомест (режим прозрачности). INK 9
устанавливает белый или черный цвет тона в зависимости от цвета фона с
целью достижения наибольшего контраста (режим черно-белого контраста).
В качестве самостоятельного оператора INK
устанавливает постоянный цвет тона, влияющий на все последующие выводы
на экран (постоянный атрибут).
INK может также использоваться в операторах
PRINT, INPUT, PLOT, DRAW и CIRCLE, устанавливая временный цвет тона. В
этом случае INK влияет на цвет символов и графических объектов,
выводимых только данным оператором (временный атрибут). В операторах
PRINT и INPUT ключевое слово INK размещается в любом месте блока
данных, отделяясь от них знаками-разделителями (запятая, точка с
запятой, апостроф).
Пример: PRINT "DU-DU-DU";INK 3;"KU-KU"
INK в операторах PLOT, DRAW, CIRCLE ставится сразу за ключевым словом и отделяется от параметров точкой с запятой.
Пример: CIRCLE INK 4; 128,88,87
inkey$ [#<с>]_ie]n
функция стр. 39
возвращает символ» соответствующий клавише, нажатой в момент выполнения функции
(прописные и строчные буквы различаются), либо «пустую
строку», если ни одна из клавиш не нажата. Аргумента не требует.
Используется для обнаружения факта нажатия клавиши на клавиатуре.
С параметром #<с> функция используется при работе с потоками и каналами (см. [!)).
Пример: 60 IF INKEY$<>"q" THEN GO TO 60: REM Останавливает работу программы до тех пор, пока не будет нажата клавиша q (без С5)
input ___i
оператор стр. 31
вводит данные в программу:
присваивает числовым или символьным переменным, расположенным за
ключевым словом, соответственно, числовые или символьные значения,
набираемые на клавиатуре. Вводимые значения могут содержать
определенные в программе переменные. Следом за INPUT в произвольном
порядке размещаются переменные любого типа и текст комментариев. Текст
комментариев составляется из символьных и числовых констант или
переменных. Комментарии, содержащие переменные, заключаются в скобки.
Элементы, следующие за оператором INPUT,
отделяются друг от друга знаками-разделителями (запятая, точка с
запятой, апостроф), действие которых аналогично их действию в операторе
PRINT. В INPUT также могут быть использованы ключевые слова INK, PAPER,
FLASH, BRIGHT, AT и TAB.
Пример: 10 INPUT INK 2;"WHAT IS YOUR NAME? ";N$, ("HOW OLD ARE YOU,"+N$+"? ");AGE
Комментарии и вводимые данные оператор INPUT
отображает в нижней строке служебного экрана. После заполнения строки
текст смещается на строку выше.
Встретив переменную, не входящую в текст
комментария (расположенную вне скобок), компьютер выводит на экран
курсор и ожидает ввода данных. При ожидании символьных данных на экран
выводятся две кавычки. Данные набираются на клавиатуре и отображаются
на экране. Они могут редактироваться подобно строкам бейсик-программы.
После нажатия клавиши Enter набранное значение присваивается переменной.
Введя оператор STOP на запрос ввода числовой
константы, можно остановить выполнение программы. Останов программы в
момент ожидания символьных данных также производится вводом STOP, но
предварительно нужно удалить первую кавычку.
Избежать появления кавычек при ожидании ввода
символьных данных можно, используя конструкцию INPUT LINE. Ключевое
слово LINE ставится перед символьной переменной. Комментарий помещается
между INPUT и LINE. Прерывание работы оператора INPUT...LINE
производится нажатием клавиш CS/6.
Пример: 70 INPUT "WHAT IS YOUR NAME? "; LINE N$
Используя параметр #<c> в произвольном
месте списка параметров и данных оператора INPUT, можно переключать
ввод и вывод информации на другие потоки (см. [1]).
int <z> м»
....... ■■■■■ - —■—.................... ......■""■—" "' ————
функция стр. 16
округляет числовое значение <z> до ближайшего меньшего целого числа.
Пример: PRINT INT 45.67;" ";INT -7.66 45 —8
inverse <p> __[e]ss/m
оператор стр. 22
устанавливает режим инвертированного отображения графической и символьной информации. Следом за INVERSE ставится целочисленное значение <р>, которое может равняться либо 0, либо 1.
После выполнения оператора INVERSE 1 при печати
символов цвет тона и цвет фона меняются местами. Графическая информация
при включенном режиме инверсии отображается цветом фона и становится
невидимой. Оператор INVERSE 0 устанавливает нормальный режим
цветопередачи.
В качестве самостоятельного оператора .INV6ERSE устанавливает режим инвертирования для всех последующих выводов на экран.
INVERSE может также использоваться в операторах
PRINT, INPUT, PLOT, DRAW, CIRCLE. При этом устанавливается режим
инвертирования графической и символьной информации, выводимой только
данным оператором. В операторах PRINT и INPUT ключевое слово INVERSE
размещается в любом месте перед данными, отделяясь от них
знаками-разделителями (запятая, точка с запятой, апостроф).
INVERSE в операторах PLOT, DRAW, CIRCLE ставится сразу за ключевым словом и отделяется от параметров точкой с запятой.
len <string> __=_
функция стр. 17
возвращает длину (число символов) символьного значения.
Пример: 120 INPUT А$; IP LEN А$>9 THEN GO ТО 120: REM «Пропускаются» строки длиной только до 9 символов
let <var>= L
оператор стр. 28
присваивает значение переменной. После LET ставится переменная, следом за которой через знак равенства записывается присваиваемое ей значение.
Пример: 60 LET Х=Х+1
80 LET A$="PITER"+STR$ X 90 LET S(5f10)=LEN A$
До присвоения переменной значения (операторами
LET, READ или INPUT) она является неопределенной и не может быть
использована в программе.
line__ГО ss/з
См. SAVE, INPUT.
list [<n>]___
оператор стр. 27
отображает на экране листинг бейсик-программы,
находящейся в памяти компьютера. LIST без каких-либо значений после
ключевого слова начинает вывод листинга с начала программы. Указав
после LIST номер строки <п>, можно начать вывод листинга с
требуемого места программы. При этом указатель текущей строки
устанавливается на строку с номером <п>.
После заполнения экрана вывод листинга
приостанавливается и может быть продолжен после нажатия любой клавиши,
кроме N, Space, Break. Перечисленные клавиши прерывают выдачу листинга.
list #<о
оператор используется при работе с потоками и каналами (см. (1J). llist [<n>] iejv
оператор стр. 51
распечатывает на принтере листинг бейсик-программы, находящейся в памяти компьютера, начиная со строки <п>. LLIST без параметров распечатывает листинг с начала программы.
llist #<о_
оператор используется при работе с потоками и каналами (см. [1]).
ln <z>
функция
натуральный логарифм положительного числового значения <z>.
load < string > __J
оператор стр. 47
загружает в память компьютера бейсик-программу с магнитной
ленты. Имя загружаемой программы задается
символьным значением <strlng>. LOAD с «пустым» именем
загружает первую встретившуюся на ленте программу. При загрузке ранее
находящаяся в памяти программа уничтожается.
Пример: LOAD "FILENAME" LOAD N$ LOAD ""
load <string> cope [<addr>][,<c>] «ME}!
оператор стр. 50
загружает с магнитной ленты в память компьютера блок кодов
(последовательность байтов). Имя файла, в
котором был сохранен блок на магнитной ленте, задается символьным
значением < string >.
За ключевым словом CODE указываются через
запятую два целочисленных значения: <addr> — адрес
размещения блока кодов в памяти компьютера и <с> —
количество загружаемых байт. При отсутствии параметра <с> по
приведенному адресу загружается весь блок.
Без указания числовых значений оператор
LOAD.,.CODE загружает блок кодов по адресу, с которого он был записан
на магнитную ленту оператором SAVE...CODE.
Пример: LOAD "NAME" CODE
LOAD "PICTURE" CODE 16384, 6912 LOAD "" CODE
load <string> data <a>[$]() _ J...jE] P
оператор стр. 49
загружает с магнитной ленты в память компьютера массив. Имя
файла, содержащего массив, задается символьным
значением < string >. Следом за ключевым словом DATA указывается
однобук-венное имя массива <а> с пустыми скобками. Значения,
считываемые с ленты, загружаются в индексированные переменные этого
массива.
Пример: LOAD "NUMBER" DATA N() LOAD "NAMES" DATA N$()
load < string> screen$__j...[e]ss/k
оператор стр. 49
загружает с магнитной ленты блок кодов непосредственно в экранную область памяти,
при этом на экране воспроизводится ранее записанная картинка. Имя
файл^, в котором она была сохранена на ленте, указывается символьным
значением <string>.
Пример: LOAD "PICTURE" SCREENS
lprint _ wc
оператор с гр. 51
распечатывает данные на печатающем устройстве.
Формат оператора зависит от типа принтера и программы, его обслуживающей (драйвера принтера).
Пример: LPRINT "ABCDEF"
lprint #<о_
оператор используется при работе с потоками и каналами (см. [1]).
merge < string>____ №1 ss/т
оператор стр. 48
подгружает бейсик-программу с магнитной ленты в
память компьютера, не стирая уже находящейся там программы. Имя
загружаемой программы задается символьным значением <string>.
Оператор MERGE с двумя пустыми кавычками подгружает первую
встретившуюся на ленте программу.
Оператор MERGE соединяет две программы,
располагая их строки по порядку возрастания номеров. При совпадении
номеров строк «старые» строки заменяются на
«новые».
move__
ключевое слово в Spectrum-Бейсике не задействовано.
new
оператор
очищает область памяти, отведенную для
размещения и работы бейсик-программы (область памяти до адреса,
занесенного в системную переменную RAMTOP). Параметров не требует.
next <i> _____^^n
оператор стр. 37
ограничивает тело цикла FOR...NEXT (не используется отдельно от ключевого слова FOR). См. FOR.
not ___ss/s
логический оператор, функция стр. 35
Логический оператор
реализует логическое отрицание условия, стоящего за ключевым словом: истинное условие делает ложным, ложное — истинным.
Пример: 90 LET Х=2: IF NOT Х>10 THEN PRINT "YES"
YES
Функция
возвращает 0, если числовое значение, следующее за ключевым словом, не равно нулю; 1 — если значение равно нулю.
Пример: PRINT NOT(5*5-25)
ОРЕМ #<c>, "N"
оператор используется при работе с потоками и каналами (см. OR__________ss/u
логический оператор, функция стр. 35
Логический оператор
логическое сложение условий. Комбинация
условий, объединенных одним или несколькими операторами OR, истинна,
если истинно хотя бы одно из условий.
Пример: LET Х=20: IF Х=50 OR Х=20 THEN PRINT "YES"
YES
Функция
• возвращает значение, стоящее перед ключевым словом, если ее аргумент равен 0;
• возвращает 1, если аргумент не равен 0.
Пример: PRINT 45 OR 5 1
OUT <addr>, <byte>_IE] SS/0
оператор
записывает в порт целочисленное значение <byte> (0...255), адрес которого задается целочисленным значением <addr> (0...65535).
Пример: OUT 254,3
OVER <Р>_т SS/N
оператор стр. 22
устанавливает режим наложения изображений на экране. Целочисленное значение <р> может принимать значения:
1 - изображение (символьное или графическое)
накладывается на изображение, уже существующее на экране, не стирая
его; точки пересечения изображений принимают окраску фона; 8 - задает
режим прозрачности, при котором режим наложения соответствует ранее
установленному для данного знакоместа;
0 - устанавливает нормальный режим отображения информации.
В качестве самостоятельного оператора OVER устанавливает режим наложения для всех последующих выводов на экран.
Ключевое слово OVER может также размещаться в
операторах PRINT, INPUT, PLOT, DRAW, CIRCLE. При этом режим наложения
задается для графической и символьной информации, выводимой только
данным оператором. В операторах PRINT и INPUT ключевое слово OVER
размещается в любом месте блока данных, отделяясь от них
зна-ками-разделителями (запятая, точка с запятой, апостроф).
OVER в операторах PLOT, DRAW, CIRCLE ставится за ключевым словом и отделяется от параметров точкой с запятой.
Пример: PRINT AT 11,15; "YES"; OVER 1; AT 11,15; "_"
XESl
paper K. color У __[EI ss/c
оператор стр. 21
устанавливает цвет фона
— цвет, в который окрашивается экран. Следом за PAPER указывается
целочисленное значение < color> в интервале от 0 до 9, которым
кодируется цвет.
После выполнения оператора PAPER 8 при печати в
знакоместо цвет фона будет принимать значение, ранее установленное для
данного знакоместа. PAPER 9 устанавливает белый или черный цвет фона в
зависимости от цвета тона с целью достижения наибольшего контраста.
В качестве самостоятельного оператора PAPER
устанавливает постоянный цвет фона, влияющий на все последующие выводы
на экран (постоянный атрибут).
PAPER может также использоваться в операторах
PRINT, INPUT, PLOT, DRAW, CIRCLE, устанавливая временный цвет фона. В
этом случае PAPER влияет на фон знакомест, в которые выводится
информация только данным оператором (временный атрибут). В операторах
PRINT и INPUT ключевое слово PAPER размещается в любом месте перед
данными, отделяясь от них знаками-разделителями (запятая, точка с
запятой, апостроф).
Пример: PRINT INK 1 ;"DI-DI-DI";PAPER 5;"KU"
PAPER в операторах PLOT, DRAW, CIRCLE ставится сразу за ключевым словом и отделяется от параметров точкой с запятой.
pause <t> ____м
оператор стр. 39
приостанавливает работу программы на время, задаваемое целочисленным значением <t> (0,..65535). Пауза исчисляется в 1/50 сек. Прервать паузу можно нажатием любой клавиши. Оператор PAUSE 0 продолжит работу программы только после нажатия клавиши.
peek <addr>_[ЩО
функция стр. 60
считывает число в интервале от 0 до 255 (байт) из ячейки памяти.
Адрес ячейки задается целочисленным значением <addr> (0...65535).
PI _ __ |E]M
функция стр. 16
возвращает значение числа «пи» (3,1415927). Аргументов не требует.
plot <х>, <у> _ _ __Q
оператор стр. 19
ставит на экран точку
(включает пиксель). Позиция точки задается двумя целочисленными
значениями, следующими через запятую после ключевого слова: <х>
(0...255) определяет горизонтальную координату, <у> (0...175)
— вертикальную.
Цвета точки и фона знакоместа, в которое она
помещается, определяются постоянными значениями атрибутов либо задаются
временными атрибутами. Ключевые слова, задающие временные атрибуты,
размещаются непосредственно за ключевым словом PLOT и отделяются друг
от друга и от параметров точками с запятой.
Пример: 160 PLOT INK 2; INVERSE 1; х,у
point (<Х>, <у>)_tElss/8
функция
проверяет состояние пикселя.
Если пиксель включен (окрашен в цвет тона), функция возвращает 1 й если
выключен (окрашен в цвет фона), — 0. Координаты пикселя задаются
двумя целочисленными значениями, следующими после ключевого слова в
скобках через запятую: <х> (0...255) — горизонтальная
координата, <у> (0...175) — вертикальная.
Пример: 240 IF POINT (X,Y)=1 THEN GO SUB 600
poke <addr> , <byte>_О
оператор стр. 62
записывает в память целочисленное значение <byte> (0...255). Адрес ячейки памяти задается целочисленным значением <addr> (0...65535).
Пример: РОКЕ 23609.255
print __р
оператор стр. 8
выводит на экран
данные — числовые и символьные значения, следующие за ключевым
словом. Перед блоками данных в любом порядке могут ставиться ключевые
слова, задающие позицию, и атрибуты выводимых на экран символов (TAB,
AT, INK, PAPER, FLASH, BRIGHT, INVERSE и OVER). Друг от друга ключевые
слова и блоки данных отделяются знаками-разделителями: точкой с
запятой, запятой или апострофом.
Символьные значения оператор PRINT освобождает
от кавычек и выводит на экран. Числовые выражения, стоящие за PRINT,
вычисляются, и на экране отображается результат в десятичной форме (не
более восьми значащих цифр). Числа больше 1 О8 и меньше 10~5 отображаются в экспоненциальной форме.
Пример: PRINT 500000000
5Е8
PRINT .0000092 9.2Е-*
Блоки данных, разделенные точкой с запятой,
отображаются оператором PRINT один за другим без пробелов. Запятая
переводит текущую позицию печати на середину текущей строки или в
начало следующей, в зависимости от позиции последнего напечатанного
символа. Данные, отделенные апострофом, отображаются с новой строки.
Знак, стоящий в конце оператора PRINT, оказывает действие на последующий оператор PRINT.
Пример: PRINT 10-9;2,3'"ASD"
12 3
ASD
Используя параметр #<с> в произвольном
месте списка параметров и данных оператора PRINT, можно переключать
вывод информации на другие потоки (см. [1]).
randomize [<о]____т
оператор стр. 54
задает начало последовательности случайных чисел,
генерируемой оператором RND. Целочисленное значение <с>
(1...65535) задает фиксированное начало последовательности. RANDOMIZE
без параметра либо с нулевым значением задает начало последовательности
в зависимости от содержимого системной переменной FRAMES (см. стр. 61).
При этом достигается относительная случайность начала
последовательности.
reap <var>[, < var> ]...__(Е|А
оператор стр. 43
присваивает переменным значения, считываемые из списка данных,
следующих за операторами DATA. Переменные
указываются через запятую за ключевым словом. Тип переменных (числовые
или символьные) должен соответствовать типу DATA-данных.
Первый в программе оператор READ
последовательно считывает данные, начиная с первого элемента первого
встреченного в программе оператора DATA, и присваивает их расположенным
за ним переменным. Следующий READ продолжает считывание данных.
Последовательность считывания данных может быть изменена оператором RESTORE.
Пример: 20 READ А$, X
rem е
оператор стр. 31
отделяет текст комментариев от текста программы. Следом за REM могут стоять любые символы.
Пример: 50 GO ТО 1000: REM Переход на конец программы
restore [<n>]
оператор стр. 44
указывает оператор DATA, с которого нужно считывать данные следующим по программе оператором
READ. Строка, в которой расположен требуемый оператор DATA, задается
целочисленным значением <п>. Если следом за RESTORE не указано
никакого значения либо оно равно 0, следующий оператор READ обращается
к первому в программе оператору DATA.
return ^
оператор стр. 45
передает управление оператору, следующему за последним выполненным оператором GO SUB.
rnd гот
функция стр. 54
возвращает псевдослучайное число в интервале: больше или равно 0 и меньше 1. Аргументов не требует.
После включения (сброса) компьютера или
вылолнения оператора NEW функция RND генерирует одну и ту же
последовательность случайных чисел. Изменить последовательность можно
выполнением оператора RANDOMIZE.
Пример: FOR 1=1 ТО 22: PRINT RND: NEXT I
run [<n>] ___________ r
оператор стр. 26
запускает выполнение бейсик-программы.
Строка, с которой нужно начать выполнение, задается целочисленным
значением <n>. RUN без параметра запускает программу со строки с
наименьшим номером.
Перед запуском программы оператор RUN выполняет CLEAR, то есть обнуляет все переменные и т. д. (см. CLEAR).
save <string) [line <n>] __s
оператор стр. 46
записывает бейсик- программу на магнитную
ленту. Программе присваивается имя, задаваемое символьным значением
<string>. Имя должно состоять не более чем из десяти символов и
не может быть «пустым». При выполнении оператора компьютер
выдает сообщение: Start tape, then press any icey (включите магнитофон,
затем нажмите любую клавишу).
В операторе SAVE ключевое слово LINE, стоящее
после имени программы, указывает, что программа после ее загрузки
оператором LOAD будет сразу запущена со строки с номером <п>
(автоматически выполнится оператор GO ТО <п>).
Пример; SAVE "NAME" LINE 1
save <string> cope <addr>, <c>__S...[E] I
оператор стр. 50
сохраняет на магнитной ленте блок кодов
(последовательность байтов). Имя файла, в который записывается блок,
задается символьным значением <string>. Имя должно состоять не
более чем из десяти символов и не может быть «пустым».
За ключевым словом CODE указываются через
запятую два целочисленных значения: <addr> (0...65535) —
адрес размещения блока кодов в памяти компьютера и <с> —
количество входящих в него байт.
Пример: SAVE "PICTURE" CODE 16384,6912
save <string> pata <a>[$]()_S...[E]D
оператор стр. 49
сохраняет на магнитной ленте массив. Имя файла,
в котором сохраняется массив, задается символьным значением
<string>. Имя должно состоять не более чем из десяти символов и
не может быть «пустым». Затем следуют ключевое слово DATA и
имя массива <а> (буква или буква со знаком $) с пустыми скобками.
Пример: 450 SAVE "NUMBERS" DATA N()
save < string> screen$ s...|e]ss/k
оператор стр. 49
записывает на магнитную ленту экранное изображение. Имя
файла, в котором сохраняется экранное
изображение, задается символьным значением <string>. Имя должно
состоять не более чем из десяти символов и не может быть
«пустым».
screen$ (<raw>, <col>) |e]ss/k
функция
возвращает символ, помещенный в указанном
знакоместе экрана. Позиция знакоместа задается двумя целочисленными
значениями, следующими в скобках через запятую следом за ключевым
словом: <row> (0...21) — номер строки, <col> (0...31)
— номер столбца.
Возвращаются только символы набора, на который
указывает системная переменная CHARS. При несовпадении изображения в
знакоместе ни с одним из символов набора функция SCREEN$ возвращает
«пустую строку».
Пример: 160 IF SCREEN$(14,19)="#" THEN PRINT AT 14,19; "$"
sgn <z> __[e]f
функция стр. 16
определяет знак числового значения. SNG возвращает:
1 - если аргумент положителен, -1 - если аргумент отрицателен, 0 - если аргумент равен 0.
sin <q> [E]Q
функция стр. 15
вычисляет синус угла <q>, заданного в радианах.
sqr <z>_ __{Е}н
функция стр. 15
вычисляет квадратный корень числового значения <z>.
step____ss/p
оператор стр. 37
используется для построения цикла FOR...NEXT (см. FOR).
stop ss/A
оператор стр. 33
останавливает выполнение бейсик-программы.
Параметров не требует. После остановки программы ее выполнение может
быть продолжено оператором CONTINUE с оператора, следующего за STOP.
str$ <z> |E1Y
функция стр. 17
преобразует числовое значение <z> в символьное. 5TR$ возвращает значение аргумента в виде символьной константы.
Пример PRINT LEN STR$ 100 3
TAB <co}> (E1P
оператор стр. 14
задает позицию вывода на экран в текущей
строке. Целочисленное значение <col> (0 ,3!) указывает номер
колонки. Если <coj> меньше текущей позиции вывода, символ
помещается в заданную полицию, но строкой ниже. TAB используется только
совместно с операторами PRINT и INPUT.
Пример■ PRINT TAB 1;"А";ТАВ 5;"В";ТА8 3;"С"
А В
С
tan <q> [е]д
функция стр. 15
вычисляет тангенс угла <q>, заданного в радианах.
then ___ ss/g
См. IF.
то_ss/f
оператор, функция стр. 16
Оператор
используется для построения циклов FOR...NEXT (см. FOR). Функция
выделяет подстроку (выполняет сечение) символьного значения.
Начальная и конечная позиции сечения задаются
двумя целочисленными значениями, которые записываются через ключевое
слово ТО в скобках следом за символьным значением.
По умолчанию первый аргумент принимает значение, равное 1, второй — равное длине символьного значения.
Пример: PRINT "DU-DU"(2 ТО 4)
UD
use m
функция стр. 56
С целочисленным значением <addr>
перелает управление подпрограмме в машинных
кодах, расположенной по адресу <addr> (0...65535). После
выполнения подпрограммы возвращает содержимое регистровой пары
процессора ВС.
Пример: RANDOMIZE USR 65000
С символьным значением
возвращает адрес первого из восьми байтов
задающих изображение символа, определяемого пользователем. Следом за
USR указывается односимвольное значение, соответствующее одной из 2 1
клавиш (от А до U).
Пример: PRINT USR "а"
453*8
VAL <string >____[ЕМ
функция стр. 17
преобразует символьное значение, представляющее сабой символьную запись числового значения, в числовую константу.
Пример: PRINT VAL "3+5"-5 3
VAL$ " < string> "____[E] SS/J
функция
возвращает строку символов, представляющую
собой результат вычисления символьного выражения, записанного в виде
символьной константы.
Пример: 10 LET A$="ss": LET B$="rr" 20 LET C$="A$+""D""+B$" 20 PRINT C%, VAL$ C$
A$+"D"+B$ ssDrr
VERIFY <sfring> ________[e]ss/k
оператор стр. 47
проверяет правильность записи программы на магнитную ленту. Имя проверяемой программы задается символьным значением <string>.
Если одноименные программы* программа, записанная на магнитной ленте, и
программа, находящаяся в памяти компьютера, не совпадают, то выдается
сообщение об ошибке: Таре loading error.
С помощью операторов VERIFY... DATA, VERIFY ...SCREENS и VERIFY...CODE
можно проверить правильность записи массивов, экранного изображения и
блоков кодов, указав после имени программы соответствующее ключевое
слово с параметрами.
Тематический указатель
Управление интерпретатором
перезапуск интерпретатора.................. NEW................... Стр. 85
запуск программы............................. RUN.................... Стр. 26, 90
останов программы........................... STOP.................. Стр. 33, 92
продолжение выполнения программы .... CONTINUE............ Стр. 33, 74
пауза в программе............................ PAUSE................. Стр. 39, 87
удаление переменных........................ CLEAR ................ Стр. 65, 73
отделение комментариев от текста
программы...................................... REM ................... Стр. 31, 90
Управление программой
ветвление при выполнении заданного
условия........................................... IF...THEN............. Стр. 33, 79
переход к заданной строке.................. GO ТО................ Стр. 32, 79
вызов подпрограммы......................... GO SUB............... Стр. 45, 79
возврат из подпрограммы................... RETURN............... Стр. 45, 90
вызов подпрограммы в кодах............... USR.................... Стр. 56, 94
программный цикл............................ FOR...STEP...NEXT. Стр. 37, 78
Операторы присваивания
присвоение значения переменной.......... LET..................... Стр. 28, 82
задание массива................................ DIM.................... Стр. 41, 75
задание списка данных........................ DATA ................. Стр. 43, 74
считывание списка данных.................... READ.................. Стр. 43, 89
изменение последовательности
считывания списка данных.................... RESTORE............. Стр. 44, 90
Ввод данных с клавиатуры
ввод данных в программу.................... INPUT.................. Стр. 31, 81
ввод одного символа.......................... INKEY$................ Стр. 39, 80
Звук
воспроизведение ноты........................ ВЕЕР................... Стр. 40, 71
Вывод символов на экран
вывод символьных данных.................... PRINT.................. Стр. 8,88
задание знакоместа вывода.................. AT...................... Стр. 14, 71
задание позиции вывода в строке.......... TAB.................... Стр. 14, 93
вывод листинга программы.................. LIST.................... Стр. 27, 83
очистка экрана.................................. CLS.................... Стр. 21, 73
Графика
включение пикселя............................
PLOT.................. Стр. 19, 88 построение прямой или
дуги................ DRAW................ Стр. 20, 77
построение окружности...................... CIRCLE................ Стр. 20, 73
определение состояния пикселя............ POINT................. Стр. 88
Атрибуты экрана
цвет тона......................................... INK..................... Стр. 21, 80
цвет фона....................................... PAPER................. Стр. 21, 87
режим мерцания.............................. FLASH................. Стр. 22, 77
режим яркости................................. BRIGHT............... Стр. 22, 72
цвет бордюра................................... BORDER.............. Стр. 22, 72
инвертирование изображения............... INVERSE.............. Стр. 22, 82
наложение изображения..................... OVER.................. Стр. 22, 86
определение атрибутов знакоместа........ ATTR.................. Стр. 55, 71
Алгебраические функции
число "пи"....................................... PI....................... Стр. 16, 88
косинус........................................... COS ................... Стр. 15, 74
синус.............................................. SIN..................... Стр. 15, 92
тангенс........................................... TAN.................... Стр. 15, 93
арккосинус...................................... ACS.................... Стр. 15, 70
арксинус......................................... ASN.................... Стр. 15, 70
арктангенс....................................... ATN.................... Стр. 15, 71
квадратный корень............................ SQR.................... Стр. 15, 92
экспонента....................................... ЕХР.................... Стр. 15, 77
натуральный логарифм....................... LN...................... Стр. 15, 83
модуль числа.................................... ABS.................... Стр. 16, 70
знак числа....................................... SGN.................... Стр. 16, 92
округление числа.............................. INT..................... Стр. 16, 82
перевод двоичного числа в десятичное ... BIN..................... Стр. 53, 72
Пользовательские функции
задание функции............................... DEF FN................ Стр. 75
вычисление значения функции.............. FN...................... Стр. 78
Логические операции
логическое умножение....................... AND................... Стр. 35, 70
отрицание....................................... NOT.................... Стр. 35, 85
логическое сложение......................... OR..................... Стр. 35, 86
Случайные числа начало последовательности
случайных чисел................................ RANDOMIZE......... Стр. 54, 89
псевдослучайное число...................... RND.................... Стр. 54, 90
Символьные {строковые) функции
длина строки.................................... LEN ....................
выделение фрагмента строки............... ТО.....................
считывание символа из знакоместа......... SCREEN$..............
преобразование числа в строку............. STR$...................
преобразование строки в число............. VAL....................
преобразование символьного значения в
символьную константу........................ VAL$..................
символ, соответствующий коду............. CHR$..................
код, соответствующий символу............. CODE..................
Операции с ячейками памяти
чтение числа из памяти....................... РЕЕК...................
запись числа в память......................... РОКЕ..................
адрес размещения символов,
определяемых пользователем............... USR....................
Работа с портами
чтение из порта................................ IN.......................
запись в порт................................... OUT....................
Работа с магнитофоном Загрузка программ
загрузка бейсик-программы................. LOAD .................
загрузка блока кодов.......................... LOAD...CODE.......
загрузка массива............................... LOAD...DATA.......
загрузка экранного изображения........... LOAD...SCREEN$ ...
подгрузка бейсик-программы............... MERGE................
Сохранение программ
сохранение бейсик-программы............. SAVE..................
сохранение блока кодов...................... SAVE...CODE.......
сохранение массива........................... SAVE... DAT А.......
сохранение экранного изображения....... SAVE...SCREEN$ ...
проверка правильности записи.............. VERIFY ...............
Вывод на печатающее устройство
печать символьных данных................... LPRINT................
печать листинга бейсик-программы........ LLIST ..................
Стр. 17, 82 Стр. 16, 93 Стр. 92 Стр. 17, 93 Стр. 17, 94
Стр. 94 Стр. 18, 73 Стр. 18, 74
Стр. 60, 87 Стр. 62, 88
Стр. 56, 94
Стр. 80 Стр. 86
Стр. 47, 83 Стр. 50, 84 Стр. 49, 84 Стр. 49, 84 Стр. 48, 85
Стр. 46, 91 Стр. 50, 91 Стр. 49, 91 Стр. 49, 91 Стр. 47, 94
Стр. 51, 84 Стр. 51, 83 Стр. 51, 74
97
печать копии экрана........................... СОРУ.................
4 Зак. № 192
Сообщения об ошибках
При обнаружении ошибки интерпретатор
останавливает выполнение программы (или бейсик-оператора, набранного в
непосредственном режиме) и выводит в нижней части экрана
соответствующее сообщение. Каждое сообщение содержит код (цифру или
букву), указание на причину ошибки и номер строки и оператора в ней, на
котором остановилось выполнение программы.
0 ок_
Успешное завершение программы или попытка перейти на строку с номером, большим любого, имеющегося в программе.
1 NEXT without FOR_NEXT без FOR
встречен оператор NEXT без соответствующего FOR.
2 Variable not found__переменная не найдена
переменная была использована без присвоения ей значения или загрузки значения с ленты.
3 Subscript wrong_неправильный индекс
значение индекса вышло за границу размерности массива.
4 Out of memory_нет памяти
не хватает памяти для выполнения оператора.
5 Out of screen_выход за экран
оператор INPUT сгенерировал более 22 строк в нижней части экрана, или в AT был использован номер строки, превышающий 21.
6 Number to big_число слишком велико
о о
в результате вычислений получается число больше 1,7*10 (возможно, была попытка деления на 0).
7 RETURN without GOSUB_RETURN без GO SUB
число операторов RETURN больше числа GO SUB.
8 End of file__конец файла
сообщение в Spectrum-Бейсике не используется.
9 STOP statement_оператор STOP
был использован оператор STOP для остановки программы. CONTINUE продолжит выполнение со следующего оператора.
A Invalid argument_недопустимый аргумент
функция получила недопустимое значение аргумента.
В Integer out of range_округление вышло за границы
значение было округлено до ближайшего целого и не попало в допустимый диапазон.
С Nonsense In BASIC_бессмысленно в Бейсике
оператор не имеет смысла с точки зрения Spectrum-Бейсике..
D BREAK — CONT repeats_прерывание - CONTINUE повторит
останов по клавише Break. CONTINUE повторит оператор, при выполнении которого произошло прерывание.
Е Out of DATA______нет данных
количество считываний данных операторами READ превысило количество элементов данных в операторах DATA.
F Invalid file name_недопустимое имя файла
в операторе SAVE указано недопустимое имя файла
(меньше одного символа или больше 10 символов) либо использовано
недопустимое имя канала в операторе OPEN# (см. [1]).
G No room for line_нет места для строки
не хватает свободной памяти для ввода новой строки программы.
Н STOP In INPUT_STOP в операторе INPUT
ввод STOP на запрос оператора INPUT.
I FOR without NEXT_FOR без NEXT
число операторов NEXT меньше числа операторов
FOR, и одновременно некорректно заданы предельное значение управляющей
переменной и шаг ее изменения.
J Invalid I/O device_недопустимое устройство ввода/вывода
сообщение, используемое при работе с каналами и потоками (см. [1]).
К Invalid colour_недопустимый цвет
задано недопустимое значение в INK, PAPER, FLASH, INVERSE или OVER, или использован недопустимый управляющий символ.
L BREAK into program_прерывание программы
нажата клавиша Break. В сообщении указывается
оператор, выполненный последним. Оператор CONTINUE продолжит выполнение
программы со следующего оператора.
М RAMTOP no good_недопустимый RAMTOP
значение, занесенное в системную переменную RAMTOP, слишком мало.
N Statement lost
была предпринята попытка перехода на несуществующий оператор.
О Invalid stream_недопустимый поток
сообщение, используемое при работе с потоками (см. [1]).
P FN without DEF__FN без DEF
вызов функции по/ ьзователя без ее определения.
Q Parametr error_ошибка в параметрах
оператор FN содержит неверное количество
параметров, или один из них имеет значение неправильного типа
(например, символьное вместо числового или наоборот).
R Tape ioading error____ошибка при загрузке с ленты
неудачно прошла процедура загрузки, подгрузки или проверки файла.
Символы ZX Spectrum*
Таблица 1.
**
|
Сима.
|
ж*
|
Сима.
|
**
|
Сима.
|
|
Сима.
|
Ife*
|
Сима.
|
«Ай
|
Сима.
|
п
|
пробел
|
33
|
5
|
75
|
К
|
w
|
a
|
|
w
|
[14$.
|
a
|
$4
|
6
|
74
|
L
|
|
b
|
|
X
|
142
|
в
|
S3
|
|
|
5$
|
7
|
j„„H„
|
М
|
|
с
|
i
|
У
|
:МГ
|
■
|
34
|
»
|
S&
|
8
|
|
N
|
100
|
d
|
tai
|
z
|
144
|
[А]
|
35
|
#
|
•5*
|
9
|
|
О
|
|
e
|
.tai
|
<
|
145
|
[В]
|
36
|
$
|
|
:
|
ЭД
|
Р
|
m
|
f
|
ш
|
1
|
Ш
|
И
|
|
%
|
|
;
|
|
Q
|
Ж
|
9
|
;m:
|
>
|
|
[D]
|
м
|
&
|
60
|
<
|
j М
|
R
|
m
|
h
|
ш
|
•
|
•ш
|
И
|
|
'
|
|
=
|
|
S
|
m
|
i
|
w;
|
©
|
ш
|
И
|
49
|
(
|
|
>
|
|
Т
|
№
|
i
|
Ш!
|
□
|
|
И
|
4*
|
)
|
**
|
?
|
|
и
|
m
|
k
|
m
|
a
|
|
[Н]
|
42
|
*
|
|
@
|
&
|
V
|
№
|
I
|
ш
|
E
|
ш
|
и
|
43
|
+
|
|
А
|
|
W
|
m
|
m
|
|
в
|
1 S3
|
М
|
•44
|
»
|
|
В
|
fie'"
|
X
|
№
|
n
|
|
a
|
ш
|
м
|
45
|
. -
|
|
С
|
|
Y
|
HI
|
о
|
Ш
|
a
|
155:
|
[L]
|
4$
|
.
|
т
|
D
|
|
Z
|
112
|
P
|
"134:
|
s
|
15$
|
[М]
|
47
|
/
|
**
|
Е
|
!*t
|
[
|
m
|
Я
|
|
я
|
|
[N]
|
4д
|
0
|
п
|
F
|
|
/
|
ш
|
r
|
|
с
|
158
|
[О]
|
49
|
1
|
п
|
G
|
|
]
|
M5
|
s
|
|
и
|
139
|
И
|
50
|
2
|
п
|
Н
|
|
t
|
m
|
t
|
Ш:
|
с
|
Ш
|
и
|
$1
|
3
|
73
|
I
|
|
_
|
w
|
u
|
w
|
в
|
14*
|
ГО
|
S2
|
4
|
74
|
, J
|
|
j£
|
m
|
V
|
|
в
|
Ш
|
и
|
* Коды 0...31 управляют выводом информации на экран и называются контрольными (см. табл. 2).
к <щ
|
Симе.
|
КОД
|
Симв.
|
Код
|
Симв.
|
КОД
|
Симв.
|
ш
|
[Т]
|
187
|
SQR
|
2П
|
OPEN #
|
2Ъ 5
|
FOR
|
ш
|
[U]
|
188
|
SGN
|
.2*2
|
CLOSE #
|
m
|
GO TO
|
№
|
RND
|
Ш
|
ABS
|
№
|
MERGE
|
237
|
GO SUB
|
Ш
|
INKEY$
|
m
|
РЕЕК
|
2t4
|
VERIFY
|
238
|
INPUT
|
А $7
|
Pi
|
w
|
!N
|
215
|
BEEP
|
259
|
LOAD
|
т
|
FN
|
ж
|
USR
|
m
|
CIRCLE
|
240
|
LIST
|
т
|
POINT
|
m
|
STR$
|
2*7
|
INK
|
24 2
|
PAUSE
|
ш
|
SCREENS
|
m
|
CHR$
|
Ж
|
PAPER
|
243
|
NEXT
|
rtf
|
ATTR
|
••W
|
NOT
|
|
BRIGHT
|
244
|
POKE
|
л?г
|
AT
|
m
|
BIN
|
m
|
INVERSE
|
245
|
PRINT
|
|
TAB
|
m
|
AND
|
2 22
|
OVER
|
Ш
|
PLOT
|
>1?4
|
VAL$
|
w
|
<=
|
22^
|
OUT
|
24?
|
RUN
|
|
VAL
|
m
|
>=
|
224
|
LPRINT
|
m
|
SAVE
|
т
|
LEN
|
m
|
<>
|
225
|
LLIST
|
249
|
RANDOMIZE
|
т
|
SIN
|
ж
|
LINE
|
22b
|
STOP
|
250
|
IF
|
т
|
COS
|
ж
|
THEN
|
227
|
READ
|
251
|
CLS
|
ж
|
TAN
|
ж
|
TO
|
m
|
DATA
|
252'
|
DRAW
|
AM
|
ASN
|
ж
|
STEP
|
229
|
RESTORE
|
£53
|
CLEAR
|
ш
|
ACS
|
ж
|
DEF FN
|
•im
|
NEW
|
.2$*
|
RETURN
|
183;
|
ATN
|
ж
|
CAT
|
23*
|
BORDER
|
255
|
COPY
|
ш
|
LN
|
2ОЙ
|
FORMAT
|
Ш
|
CONTINUE
|
|
|
EXP
|
ш
|
MOVE
|
Ж
|
DIM
|
'Ш
|
INT
|
210
|
ERASE
|
2U
|
REM
|
Контрольные коды ZX Spectrum
Таблица 2.
К од
|
Htfajf* -:" и* клавиатуре
|
Действие
|
0
|
CS/SS + CS/8
|
He используется
|
1
|
CS/SS + CS/9
|
He используется
|
2
|
CS/SS + 8
|
He используется
|
3
|
CS/SS + 9
|
He используется
|
{
[Иод
|
|
Ш&0Р и» клмиагур*
|
Действие
|
4
|
CS/3
|
He используется
|
5
|
CS/4
|
He используется
|
6
|
CS/2
|
Установка позиции печати на середину экрана (аналогично запятой в PRINT)
|
7
|
CS/1
|
Не используется
|
8
|
CS/5
|
Перемещение позиции печати на одно знакоместо влево (Backspace)
|
9
|
CS/8
|
Не используется
|
10
|
CS/6
|
Не используется
|
11
|
CS/7
|
Не используется
|
12
|
CS/0
|
Не используется
|
13
|
Enter
|
Возврат каретки + перевод строки (Carriage Return + Line Feed)
|
14
|
CS/SS
|
He используется
|
15
|
CS/9
|
He используется
|
16
|
CS/SS + 0
|
Управление цветом тона (INK control)
|
17
|
CS/SS + 1
|
Управление цветом фона (PAPER control)
|
18
|
CS/SS + 2
|
Управление мерцанием (FLASH control)
|
19
|
CS/SS + 3
|
Управление яркостью (BRIGHT control)
|
20
|
CS/SS + 4
|
Управление инверсией (INVERSE control)
|
21
|
CS/SS + 5
|
Управление наложением (OVER control)
|
22
|
CS/SS + 6
|
Управление позицией печати (AT control)
|
23
|
CS/SS + 7
|
Управление табуляций (TAB control)
|
24
|
CS/SS + cs/o
|
Не используется
|
25
|
CS/SS + CS/1
|
Не используется
|
26
|
CS/SS + CS/2
|
Не используется
|
: 27
|
CS/SS + CS/3
|
Не используется
|
I 23
|
CS/SS + CS/4
|
Не используется
|
29
|
CS/SS + CS/5
|
Не используется
|
30
|
CS/SS + CS/6
|
Не используется
|
31
|
CS/SS + CS/7
|
Не используется
|