Середовище програмування MADL

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Середовище програмування MADL » ПК-01 "Львів" » Опис мови "BASIC" (рос.мовою, текст з pdf-файлу)


Опис мови "BASIC" (рос.мовою, текст з pdf-файлу)

Сообщений 1 страница 28 из 28

1

Опис мови "BASIC" (рос.мовою, текст з pdf-файлу)
"Описание языка БЕЙСИК.pdf" - http://forumstatic.ru/files/001b/d4/a7/66761.7z

2

https://forumupload.ru/uploads/001b/d4/a7/2/t221119.png

3

              ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

УТВЕРЖДЕН
589.0196339.OOOO1-O1 35 O1-ДУ

                  ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ"
         Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

                                     СОДЕРЖАНИЕ

Аннотация
1. Общие сведения и способ описания языка
1.1. Назначение языка
1.2. Способ описания языка
2. Элементы и основные конструкции языка
2.1. Набор символов
2.2. Структура программы и комментарии к программе
2.3. Стандартные функции
3. Элементы данных
3.1. Числовые и символьные данные
3.2. Переменные с индексами
4. Выражения и оператор присваивания
4 1. Арифметические выражения
4.2. Символьные функции и выражения
4.3. Логические выражения
4.4. Оператор присваивания
5. Операторы управления
5.1. Операторы перехода и оператор STOP
5.2. Условные операторы
6. Оператор цикла FOR-NEXT
7. Функции
8. Подпрограммы
8.1. Операторы GOSUB и RETURN
8.2. Оператор ON - GOSUB
9. Средства машинной графики и средства управления звуком
9.1. Формирование изображения на экране терминала
9.2. Графические операторы
9.3. Средства управления звуком
10. Средства работы на уровне машинных команд
11. Работа в режиме непосредственного исполнения
11.1. Режим калькулятора
11.2. Использование режима непосредственного исполнения при отладке программ
12. Операторы ввода - вывода
12.1. Операторы READ, DATA, RESTORE
12.2.Оператор INPUT
12.3.Оператор PRINT
12.4. Дополнительные возможности оператора PRINT
12.5. Управление курсором
13. Средства подготовки и отладки программ
13.1. Директивы интерпретатора и средства отладки программы
13.2. Диагностические сообщения интерпретатора
13.3. Средства редактирования
Приложение: Дополнительные операторы БЕЙСИКа

                                                                                           1

4

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

                                        АННОТАЦИЯ

   В настоящем документе содержится описание языке БЕЙСИК, правила составления и
выполнения программ на языке бейсик.
   В документе описаны основные элементы языка БЕЙСИК: константы, переменные,
массивы. Представлены операторы, функции, которые содержит интерпретатор БЕЙСИК,
а также способ написания функций, составленных самим пользователем.
   Описаны операторы для работы с массивами. Представлены команды для отладки и
запуска программных файлов.
   Описана система ввода-вывода.

                1. ОБЩИЕ СВЕДЕНИЯ И СПОСОБ ОПИСАНИЯ ЯЗЫКА

                                  1.1. Назначение языка

   Язык БЕЙСИК является одним из простых в изучении языков программирования.
Предназначен   для  решения   вычислительных   и   планово-экономических  задач,
проведения инженерных расчетов, разработки тестовых, игровых, учебных программ.
   Программа на языке БЕЙСИК представляет собой набор операторов, объединенных в
логические блоки.
   Диалоговый режим интерпретатора БЕЙСИК облегчает отладку программ. Возможна
работа в режиме непосредственного исполнения.

                               1.2. Способ описания языка

   При описании форматов предложений (синтаксиса предложений) языка применяются
следующие условные обозначения: заглавные буквы, знаки пунктуации и другие
специальные знаки (за исключением угловых, квадратных и фигурных скобок),
изображающие конструкции, которые должны быть записаны в таком же виде, как
показано в приводимом формате.
   Последовательности слов, записанные строчными буквами и заключенные в угловые
скобки <и>, определяют синтаксические конструкции, которые записаны где-либо в
другой части данного документа. Эти слова в какой-то мере отражают природу и
смысл таких конструкций. Если последовательность конструкций заключена в
квадратные скобки [и], то это означает, что данная последовательность является
необязательной и может быть опущена. Варианты последовательностей конструкций,
заключенные в фигурные скобки {и}, являются альтернативными и должен быть выбран
один из этих вариантов.

                 2. ЭЛЕМЕНТЫ И ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА

                                   2.1. Набор символов

   В языке БЕЙСИК ПК-01 используются следующие символы:
   1) 26 букв латинского алфавита (А, В, С, D, Е, F, G, Н, I, J , К, L, М, N, 0,
P, Q, R, S, Т, U, V, W, X, У , Z).

   2) 31 буква русского алфавита (А, Б, В, Г, Д, Е, Ж, 3, И, Й, К, Л, М, Н, О,
П, Р, С, Т, У, Ф, X, Ц, Ч, Ш, Щ, Э, Ы, Ю, Я, Ь), твердый знак (Ъ) в тексте
отображается символом "_".

  3) 10 десятичных: цифр (0, I, 2, 3, 4, 5, 6, 7, 8, 9).

  4) знаки арифметических операций:
  + - плюс;
  - - минус;
  * - звездочка;
  / - наклонная черта (знак деления);
  ^ - стрелочка (знак возведения в степень).

                                                                                              2

5

                  ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

  5) знаки   операций отношения:
  < - знак   меньше;
  > - знак   больше;
  = - знак   равенства.

  6) синтаксические знаки;
  ( - открывающая круглая скобка;
  ) - закрывающая круглая скобка;
  , - запятая;
  . - точка;
  " - кавычки;
  ; - точка с запятой;
  : - двоеточие.

  7) специальные знаки:
  $ - знак денежной единицы (признак символьных данных);
  ? - вопросительный знак;
  " " - пробел.

  Некоторые комбинации символов имеют специальное значение:
  <= - меньше или равно;
  >= - больше или равно;
  <> - не равно.

   Употребление слов русского алфавита ограничено по сравнению с английскими
буквами (как правило, буквы русского алфавита употребляются только как элементы
символьных констант и в операторах комментария).

                 2.2. Структура программы и комментарии в программе

   В языке программирования БЕЙСИК программа состоит из строк операторов. Каждая
строка начинается с номера строки. Номер строки - это целое десятичное число в
диапазоне от 0 до 65629. За номером строки располагается служебное слово,
определяющее характер действия и текст оператора.
   Номера строк служат метками операторов, а также указывают порядок выполнения
программы.
   При составлении программы рекомендуется нумеровать строки с определенным
шагом (например: 10,20,30 и т.д.). Это позволит при отладке вставлять
пропущенные или дополнительные строки.
   Программа завершается оператором END. Программа также может выполняться без
наличия оператора END.
   В одной строке может быть записан один или несколько операторов. При записи в
одной строке нескольких операторов их следует разделять двоеточием (:). Однако
длина строки не должна превышать 254 знаков.
   При вводе программы с клавиатуры терминала каждую строку заканчивают нажатием
клавиши ВК (возврат каретки).
   При вводе или написании программы возникает необходимость в дополнительных
пояснениях к программе, предназначенных для объяснения назначения программы,
описания назначения ее переменных данных, описания алгоритма и т.п. Для этих
целей используется оператор REM. Формат оператора:

  <номер строки> REM <сообщение>

   где сообщение может содержать любые печатные знаки клавиатуры.
   Сообщение, следующее за словом REM, никаких действий интерпретатора                        не
вызывает.

                                                                                               3

6

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

                                2.3. Стандартные функции

   Для вычисления наиболее встречающихся математических функций в БЕЙСИК
включены следующие стандартные функции:
   ABS (X) - модуль
   SGN (X) - знак Х (-1 при Х<0; 1 при Х>0; 0 при Х=0)
   INT (X) - наибольшее целое число, которое меньше или равно Х
   COS (X) - косинус Х (cos X)
   SIN (X) - синус X (sin x)
   TAN (X) - тангенс Х (tg X)
   ATN (X) - арктангенс Х (arctg X)
   SQR (X) - корень квадратный от Х (sqrt X)
   ЕХР (X) - экспонента Х (e^X)
   LOG (X) - натуральный логарифм (ln X)
   RND (X) - выборка случайного числа в интервале (0,1) (обращение к генератору
случайных чисел).
   Аргументом функции может быть любое арифметическое выражение.
   Аргументы тригонометрических функций SIN, COS, TAN должны задаваться в
радианах. В функции RND (X) необходимо указать фиктивный аргумент, например X.

                                  3. ЭЛЕМЕНТЫ ДАННЫХ

                           3.1. Числовые и символьные данные

   Для того чтобы интерпретатор мог обеспечивать формирование соответствующих
команд для обработки информации, ему должен быть известен тип данных, которые
подлежат обработке. В языке БЕЙСИК ПК-01 используются данные двух типов:
   1) числовые данные;
   2) символьные данные.

   Числовые   данные    представляются   десятичными   числами   -    целыми   и
действительными.
   Целое число - это конечная последовательность цифр с возможным знаком плюс
или минус перед ней, например: 1986, -36, +125.
   Действительные   десятичные   числа   записываются  двумя   способами   -   с
использованием десятичной точки (в естественной форме) или с использованием
латинской буквы E (в нормализованной форме), например: +14.6, -3.75, 2.5, 1E-10,
-36.7Е5, +25Е-4.
   Диапазон числовых данных от 0,94.10^-38 до 1,7.10^38. Разрядность - 6
десятичных цифр.
   Символьная константа (строка) - это последовательность символов из набора
символов БЕЙСИК ПК-01, заключенных в кавычки, например: "BASIC", "2+3", "ЛЬВОВ",
"АТЫ БАТЫ".
   Символьная строка может содержать от 0 до 255 символов. Объем памяти,
выделенной под символьные константы можно определить при помощи функции FRE (см.
раздел 11).

   Величины, значения которых в процессе выполнения программ могут меняться,
называются переменными. В БЕЙСИКе ПК-01 употребляются два типа переменных -
числовые и символьные. Числовая переменная обозначает место в памяти компьютера,
в которое будет записано числовое значение. Символьная переменная резервирует
место для символьных значений. В БЕЙСИКе употребляются простые переменные и
переменные с индексами. Переменные с индексами предназначены для обозначения
элементов массивов и описываются дальше.

   Числовая переменная обозначается в БЕЙСИКе ПК-01 идентификатором, который
состоит из одной или двух латинских букв или латинской буквы и последующей
цифры, например: X, P1, RD, A2.
   Переменным присваиваются значения с помощью оператора присваивания LET,
операторов INPUT, READ, которые будут описаны далее. Перед выполнением всем
переменным присваивается значение 0.
                                                                                              4

7

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Наряду с числовыми переменными в языке БЕЙСИК ПК-01 используются символьные
переменные, которые могут принимать значения символьных констант. Любое имя
переменной, за которой следует знак $ (знак денежной единицы), указывает
символьную переменную, например: A$, A2$, DM$, RG$.
   Над символьными переменными и (или) константами могут выполняться следующие
операции отношения: =, <>, <, <=, >, >=.
   При выполнении перечисленных операций сравнения каждая символьная строка
представляется в виде целых чисел. Каждому символу отвечает целое число (в
соответствии с кодом КОИ-7). При сравнении строк их длины предварительно
выравниваются путем приписывания справа к более короткой недостающего числа
пробелов.

                              3.2. Переменные с индексами

   Массивом называется конечная совокупность величин, обозначенных одним и тем
же идентификатором и поставленных в соответствие упорядоченным набором значений
некоторой системы целочисленных параметров, каждый из которых может принимать
любое значение, начиная с нуля и кончая некоторым своим наибольшим значением.
Элемент массива называется переменной с индексами. В одном массиве могут
содержаться величины только одного типа. Поэтому различают массивы числовых
данных и массивы символьных данных.
   Общий идентификатор всех величин, входящих в состав массива, называется
идентификатором массива. Им может быть любое принятое в БЕЙСИКе ПК-01 имя
переменной. При этом идентификаторы массивов символьных величин оканчиваются
знаком денежной единицы ($).
   Индексная переменная обозначается записью, состоящей из идентификатора
массива и следующего за ним в круглых скобках списка индексов. Число индексов не
должно превышать два и в списке они разделяются запятой. Индекс в общем случае
является арифметическим выражением. В момент использования индекс должен иметь
положительное целое значение. Индексы элементов массивов принимают значения
целых чисел, начиная с 0, т.е. для одномерного массива элементы нумеруются A(0),
А(1), А(2) и т.д.; соответственно элементы двумерного массива - В(0,0), В(0,1),
В(0,2) ... В(1,0), В(1,2) и т.д.
   Для каждого массива в программе должен быть указан его максимальный размер,
т.е. максимальные значения, которые могут принимать индексы. Это нужно для того,
чтобы интерпретатор мог зарезервировать соответствующий объем памяти. Информацию
об идентификаторах массивов и их размерностях указывают в операторе DIM, который
имеет следующий формат:

  <номер строки> DIM V1(M1), V2(M2) ... Vn(Mn)

   где V1 - идентификатор массива;
   M1 - размерность массивов V1 (одно или два целых числа, разделенных
запятыми).
   Пример:
   10 DIMA(10),MT(3,4),S$(6)
   Под массив A отводится 11 элементов, под матрицу MT - 4х5 = 20 элементов и
под символьный массив S$ - 7 элементов. Описание массивов должно предшествовать
использованию их элементов в других операторах.
   Если в программе размерность индексной переменной не указывается с помощью
оператора DIM, то по умолчанию принимается размерность 10 в каждом измерении.
   Оператор DIM относится к невыполняемым операторам.
   Первоначально все элементы описанных массивов имеют нулевые значения. Для
изменения значений индексных переменных используют те же операторы БЕЙСИК ПК-01,
что и в случае простых переменных: оператор присваивания READ и INPUT.

                                                                                              5

8

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

                    4. ВЫРАЖЕНИЯ И ОПЕРАТОР ПРИСВАИВАНИЯ

                             4.1. Арифметические выражения

   Арифметические   выражения   представляют   собой   произвольную   комбинацию
идентификаторов, констант и функций, разделенных знаками операций и круглым
скобками так, чтобы образовать имеющее смысл математическое выражение. Допустимы
следующие знаки операций:
   + - сложение;
   - - вычитание;
   * - умножение;
   / - деление;
   ^ - возведение в степень.

   Если в выражении отсутствуют круглые скобки, определяющие порядок выполнения
операций, то они выполняются в следующей последовательности:
   - вычисление функций;
   - возведение в степень;
   - умножение и деление;
   - сложение и вычитание.

   Операции одного ранга выполняются последовательно слева направо (включая и
операции возведения в степень).
   Над целыми числами могут выполняться логические операции AND, OR, NOT. Эти
операции выполняются поразрядно над двоичными представлениями целых чисел в
дополнительном коде. Результатом логической операции является целое число,
состоящее из последовательности битов, образованных в результате применения
данной логической операции к битам заданных операндов.
   Пример:
   2OR3=3
   2AND3=2
   NOT3=-4

   Чтобы понять эти результаты, необходимо помнить, что целые десятичные числа в
ПК-01 представляются как двоичные числа в дополнительном коде (при этом старший
разряд отводится под знак числа).
   Если в арифметических выражениях употребляется и арифметические, и логические
операции, то при отсутствии скобок логические операции выполняются после
арифметических, причем в таком порядке старшинства между собой: NOT, AND, OR.
Логические операнды одного ранга выполняются слева направо.

                         4.2. Символьные функции и выражения

   Под символьным выражением понимается любая последовательность символьных
констант, переменных и функций, соединенных с помощью операции конкатенации (+).
Операция конкатенации определяет, что два операнда соединяются вместе и образуют
новую строку символов, где за последним символом левого операнда сразу же
следует первый символ правого операнда. Длина строки, полученной в результате,
равна сумме длин операндов, например: "ТРАМ" + "ТАРАРАМ" = "ТРАМТАРАРАМ".
   В БЕЙСИКе ПК-01 могут использоваться следующие функции над символьными
строками:
   LEFT$(<строка>, N) - выделяет из "строки" подстроку с первого до N-го знака.
Здесь и далее над аргументом <строка> будем понимать символьное выражение, а
аргумент N (в других функциях N1, N2) должен быть целым числом или выражением,
принимающим целочисленное значение. Если N равно или больше длины отроки,
выдается вся строка. Если N=0, выдается пустая строка. Например: функция
LEFT$("ABCD", 3) дает результат "АВС".
   RIGHT$(<строка>, N) - выделяет наиболее правые символы "строки". Если N равно
или превышает длину строки, выдается вся строка. Если N=0, выдается пустая
строка. Например: функция RIGHT$("ABODE", 2) дает строку "DE".

                                                                                              6

9

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   MID$(<строка>, N1, N2) - проверяет "строку" и возвращает N2 символов, начиная
с позиции N1. Если N1 больше, чем строка, MID$ возвращает пустую строку.
Например: функция MID$("ABCDE", 2, 3) дает результат "BCD".
   LEN(<строка>) - функция определяет длину строки, то есть возвращает целое
число, равное количеству символов в строке. Например: функция LEN("ABCDE") дает
результат 5.
   VAL(<строка>) - функция преобразует цифровую строку в числовое значение.
Строка может включать цифры, знаки "+", "-", "." и "Е". Если строка содержит
другие знаки, то значение функции равно нулю. Например: функция VAL("1E3") дает
числовое значение 1000.
   STR$(<выражение>) - действие функции противоположно действию функции VAL -
она преобразует числовое значение в цифровую строку. Например: функция
STR$(9372) дает строку "9372".
   ASC(<строка>) - функция возвращает код КОИ-7 первого символа указанной
строки. Например: функция ASG("ABCD") дает значение 65.
   CHR$(<выражение>) - функция возвращает символ КОИ-7, код которого равен
значению выражения. Выражение должно приводиться к целому числу между 0 и 255.
Например: функция CHR$(65) дает символ "А".
   HEX$(<выражение>) - функция возвращает строку, значение которой эквивалентно
шестнадцатеричному представлению выражения. Например: функция HEX$(32) дает
строку "20".
   INKEY$ - функция (без аргумента), предназначенная для опроса клавиатуры.
Функция возвращает пустую строку, если не нажата ни одна клавиша, или строку с
символом, соответствующим нажатой клавише.

                                4.3. Логические выражения

   Логическим выражением называют некоторую комбинацию констант и переменных
(числовых или символьных), соединенных знаками операции отношения, логических и
арифметических операций и скобками, и принимающие только два значения - "истина"
или "ложь" (0 или 1).
   Для логических выражений установлен следующий порядок выполнения действий:
   1) сначала действует правило скобок;
   2) вычисляются значения функций;
   3) выполняются арифметические операции в следующем порядке:
   - возведение в степень;
   - умножение и деление;
   - сложение и вычитание.
   4) выполняются операции отношения:
   = - равно;
   < - меньше;
   <= - меньше или равно;
   > - больше;
   >= - больше или равно;
   <> - не равно.
   5) логические операции в следующем порядке:
   NOT - логическое отрицание;
   AND - конъюнкция;
   OR - дизъюнкция.

   Операция отношения устанавливает определенные отношения между числовыми или
символьными величинами. Отношение имеет формат:

   <выражение 1 (арифметическое или символьное)>              <знак    операции    отношения>
<выражение 2 (арифметическое или символьное>

   Символьное отношение означает последовательное попарное сравнение слева
направо символов строк операндов в соответствии с упорядоченностью символов кода
КОИ-7.
   Результат выполнения операций отношения есть "истина", если выражения
удовлетворяют отношению, и "ложь" в противном случае.
                                                                                              7

10

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

                               4.4. Оператор присваивания

  Оператор присваивания LET имеет формат:

  < номер строки> LET <переменная> = <выражение>

   Действие этого оператора состоит в вычислении значения выражения, записанного
справа от знака равенства, и присвоении этого значения переменной, указанной
слева от знака равенства.
   Пример:
   10 LETA=6.3
   20 LETB=B+2
   30 LETA$="BASIC"
   В операторе присваивания могут употребляться переменные числового и
символьного типа, простые и с индексами. Необходимо, чтобы тип переменной
совпадал с типом выражения (т.е. числовая переменная и арифметическое выражение,
символьная переменная и символьное выражение).
   БЕЙСИК ПК-01 позволяет опускать слово LET в операторе.
   Пример:
   10 A=6.3
   20 B=B+2
   30 A$="BASIC"

                              5. ОПЕРАТОРЫ УПРАВЛЕНИЯ

                       5.1. Операторы перехода и оператор STOP

   В программе на языке БЕЙСИК ПК-01 операторы выполняются в порядке возрастания
номеров строк. Изменение порядка выполнения оператора производятся с помощью
операторов управления. К этой группе операторов относятся операторы перехода,
оператор STOP, условные операторы и оператор цикла.
   В языке БЕЙСИК ПК-01 существует два вида операторов перехода - оператор
безусловного перехода GOTO и оператор перехода по вычислению ON - GOTO.
   Оператор безусловного перехода GOTO используется в том случае, когда в
программе требуется осуществить безусловный переход к какой-либо другой строке с
нарушением естественного порядка выполнения операторов программы, задаваемого
номерами строк. Формат оператора GOTO:

  <номер строки> GOTO <номер строки 1>

   где <номер строки> - это номер строки, к которой осуществляется переход.
Номер строки, к которой осуществляется переход в программе, может быть либо
больше, либо меньше текущего номера строки.

   Оператор ON - GOTO позволяет осуществить переход к одной из нескольких
указанных строк в зависимости от того, какое значение имеет выражение во время
выполнения оператора. Этот оператор имеет следующий формат:

  <номер строки> ON <арифметическое выражение> GOTO <список номеров строк>

   Во время выполнения оператора вычисляется выражение, и целая часть его
используется в качестве указателя перехода на один из перечисленных номеров
строк.
   Пример:
   50 ONPGOTO100,140,180
   Здесь оператор передает управление строке 100, если P=1, строке 140, если
P=2, или строке 180, если P=3. Любые другие значения P (не выходящие за пределы
0-255) приводят к передаче управления на следующий оператор.

                                                                                              8

11

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Оператор STOP вызывает прекращение вычислений по программе (останов
программы) и выдачу об этом сообщения на терминал. Формат оператора STOP:

  <номер строки> STOP

                                 5.2. Условные операторы

   Условные операторы позволяют, в зависимости от результата проверки некоторого
условия, выполнить или не выполнить некоторый оператор, а также передать
управление другой строке. Формат оператора следующий:

  <номер строки> IF <условие> THEN <номер строки>
  <номер строки> IF <условие> THEN <оператор>

   Условие представляет собой логическое выражение. В случае выполнения условия,
т.е., когда оно принимает истинное значение, управление передается на оператор с
указанным номером строки (варианты "ТНЕN <номер строки>") или выполняется
оператор, записанный после THEN (вариант "THEN <оператор>"); в случае
невыполнения условия управление передается оператору с последующим номером
строки.
   Поскольку любой оператор может следовать за словом THEN, то возможно вложение
условных операторов до любого требуемого уровня.
   Пример:
   20 IF Х>Y THEN IF Y>Z THEN PRINT "X>Y>Z"
   Этот оператор эквивалентен следующему:
   20 IF Х>Y AND Y>Z THEN PRINT "X>Y>Z"

                            6. ОПЕРАТОР ЦИКЛА FOR-NEXT

   Циклические  программы   (участки  программ)  можно   записывать,  используя
операторы IF и GOТО. Но для упрощения процедуры составления циклов и с целью их
четкого выделения в программе могут быть использованы специальные операторы FOR
и NEXT. Оператор FOR, называемый заголовком цикла, всегда предшествует
повторяющейся группе операторов, составляющих так называемое тело цикла. Формат
оператора FOR:

   <номер строка> FOR <имя переменной>=<выражение 1> ТО <выражение 2> [STEP
<выражение 3>]

   Имя переменной в операторе FOR называют управляющей переменной или параметром
цикла, а <выражение 1>, <выражение 2> и <выражение 3> представляют собой
начальное значение параметра цикла, конечное значение параметра цикла и шаг
изменения параметра цикла соответственно. Если "STEP <выражение 3>" опущено, то
шаг изменения параметра цикла полагается равным 1.
   Во время выполнения оператора FOR вычисляются параметры цикла (начальное и
конечное   значения   управляющей  переменной,   величина   шага  изменения)   и
присваивается начальное значение управляющей переменной. Тело цикла начинается
вслед за оператором FOR и завершается оператором NEXT, который имеет следующий
формат:

  <номер строки> NEXT [имя переменной]

   Здесь [имя переменной] соответствует управляющей переменной в заголовке
цикла. При выполнении оператора NEXT производится изменение значения управляющей
переменной на величину шага и производится анализ на конец цикла. Цикл
повторяется до тех пор, пока значение управляющей переменной не станет строго
больше (при положительном шаге изменения) или строго меньше (при отрицательное
шаге изменения) конечного значения. Можно выйти из цикла и в том случае, если
параметр цикла не достигает конечного значения. Для этого используют операторы
условного и безусловного перехода.

                                                                                              9

12

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   При использовании вложенных циклов (циклов в цикле) требуется, чтобы область
действия внутреннего цикла полностью находилась в области действия внешнего
цикла.
   Операторы FOR и NEXT не могут выполняться в операторе IF.

                                        7. ФУНКЦИИ

   Кроме стандартных функций, предназначенных для вычисления математических
выражений, в языке БЕЙСИК ПК-01 допускается употребление функций, определяемых
пользователем. Если в программе необходимо несколько раз вычислить одно и то же
выражение при различных значениях некоторого параметра, то целесообразно создать
"свою" функцию.
   Описать функцию можно с помощью определяющего оператора DEF, формат которого
следующий:

   <номер строки> DEF FN<переменная> (<аргумент>)=<выражение>

   где FN<переменная> - имя функции, состоящее из обязательных букв FN и имени
произвольной переменной.
   Пример:
   10 DEFFNA(X)=SIN(X)^2-COS(X)^2
   Аргумент, употребляемый в описании функции (в операторе DEF), называют
формальным   параметром   функции.   Выражение,  записываемое  в   правой   части
определения   функции,   может  быть   произвольным  арифметическим   выражением,
зависящим, как правило, от формального параметра. Однако оно не обязательно
должно зависеть от аргумента и может содержать также другие переменные,
определенные в программе, которые не являются аргументом.
   Пример:
   30 DEFFNA(Х)=(X-A)*В+TAN(C/X)
   Если в программе введено описание функции, то можно обращаться к нему, т.е.
употреблять обозначение этой функции (иначе – указатель функции) в различных
операторах, выражениях и т.п. В указателе функции все формальные параметры
должны быть заменены на фактические.
   Пример:
   10 DEFFNA(Х)=Х^2+SIN(Х)
   20 A=FNA(2.5)+2*FNA(3)
   Формальный параметр вначале заменяется на 2.5, а затем на 3. Фактические
параметры могут быть любыми арифметическими выражениями. При обращении к функции
сначала вычисляется значение фактического параметра, далее он подставляется
вместо формального параметра в описание функции, и вычисляется значение
выражения, записанного в правой части определения функции. Это значение является
значением указателя функции при данных фактических параметрах.
   Наконец, отметим, что оператор DEF является неисполнимым оператором и поэтому
может размещаться в любой части программы, например, в начале.

                                    8. ПОДПРОГРАММЫ

                             8.1. Операторы GOSUB и RETURN

   Последовательность повторяющихся в программе операторов может быть оформлена
в виде подпрограммы. Подпрограмма на языке БЕЙСИК ПК-01 - это часть программы,
которая реализует операции, выполнения которых требуется в нескольких точках
программы.
   Для перехода к подпрограмме используется оператор GOSUB, имеющий следующий
формат:

   <номер строки> GOSUB <номер строки подпрограммы>

   где <номер строки подпрограммы> - номер строки подпрограммы, содержащий
оператор подпрограммы, с которого начинается ее выполнение (точка входа). При
выполнении оператора GOSUB управление передается в точку входа в подпрограмму.
                                                                                             10

13

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Первая   строка   подпрограммы   может   начинаться оператором комментария
(оператором REM) или любым выполняемым оператором.
   Подпрограмма обрабатывается интерпретатором до тех пор, пока не встретится
оператор RETURN, формат которого следующий:

   <номер строки> RETURN

   Оператор RETURN обуславливает возврат управления на оператор, следующий за
оператором GOSUB.
   БЕЙСИК   ПК-01   допускает   использование  в   одной   программе    нескольких
подпрограмм. Подпрограммы могут быть вложенными, то есть одна подпрограмма может
осуществить вызов другой подпрограммы. Если при выполнении подпрограммы
встречается оператор RETURN, то он вызывает передачу управления тому оператору,
который   следует  после   операторе   GOSUB,  произведшего   обращение   к   этой
подпрограмме (в точку возврата).
   Программа может содержать несколько точек входа, кроме того, подпрограмма
может иметь более одного оператора RETURN, причем, как только встречается первый
из них, осуществляется выход из подпрограммы.

                                8.2. Оператор ON - GOSUB

   Оператор ON - GOSUB используется (аналогично оператору ON - GOTO) для
условной передачи управления одной из нескольких подпрограмм или к одной из
нескольких входных точек одной (или нескольких) подпрограмм. Формат оператора:

   <номер строки> ON <арифметическое выражение> GOSUB <список номеров строк
подпрограммы>

   Во время выполнения оператора ON - GOSUB вычисляется значение арифметического
выражения (N), целая часть которого используется в качестве указателя на один из
перечисленных номеров строк в списке. В результате происходит передача
управления подпрограмме, которая начинается номером строки, находящимся в списке
на N-ом месте. Оператор RETURN возвращает управление оператору, следующему за
оператором ON - GOSUB.

             9. СРЕДСТВА МАШИННОЙ ГРАФИКИ И УПРАВЛЕНИЯ ЗВУКОМ

                 9.1. Формирование изображения на экране терминала

   Используя средства машинной графики языка БЕЙСИК версии 2.0 ПK-01, на экране
терминала   можно  создавать   произвольные  цветные   графические  изображения,
элементами которых являются точки, линии и прямоугольники. Выводимое на экран
изображение обрамлено рамкой (окантовкой), которая, как правило, включает часть
телевизионной развертки со значительными нелинейными искажениями. Внутри этой
рамки находится поле изображения размеров 200х222 элемента (пикселя).
   После очистки экрана это поле окрашено в цвет фона. Элементы изображения
выводятся одним из трех цветов переднего плана из палитры 8 цветов.
   Очистка экрана, т.е. закрашивание всех пикселей поля изображения в цвет фона,
осуществляется оператором CLS. Его формат:

   <номер строки> CLS

   Задание конкретного цвета переднего плана, цвета фона и необходимой палитры
цветов осуществляется оператором COLOR. Формат этого оператора:

   <номер строки> COLOR [<цвет>] [,<фон>] [,<палитра>]

   где <цвет> - номер цвета переднего плана. Параметр должен принимать значения
от 0 до 3 (значение 0 задает цвет фона). Этот параметр задает цвет, которым
будет выводиться текстовая информация, а также графическая информация, если в
графических операторах цвет переднего плана не был установлен;

                                                                                             11

14

                   ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   <фон> - номер цвета фона. Параметр должен принимать значения в диапазоне от 0
до 7;
   <палитра> - номер палитры. Параметр должен принимать значения в диапазоне от
0 до 6.
   Параметры <цвет>, <фон> и <палитра> кодируются в соответствии с таблицей 1.

                                                                                         Таблица 1
                                        Номер палитры                             Номер
     Номер                                                                        цвета
      фона     0          1        2         3          4       5        6      переднего
                                                                                  плана
              ЧЕР       ЧЕР       ЧЕР       ЧЕР      ЧЕР       ЧЕР      ЧЕР          0
      ЧЕР     ЗЕЛ       ЗЕЛ       ЗЕЛ       ЗЕЛ      ГОЛ       ГОЛ      БЕЛ          1
       0      СИН       СИР       СИН       СИР         КР     КР        КР          2
              КР         КР       ЖЕЛ       ЖЕЛ      СИР       БЕЛ      СИН          3
              КР         КР        КР        КР         КР     КР        КР          0
       КР     ЗЕЛ       ЗЕЛ       ЖЕЛ       ЖЕЛ      ГОЛ       ГОЛ      БЕЛ          1
        1     СИН       СИР       СИР       СИН      ЧЕР       ЧЕР      ЧЕР          2
              ЖЕЛ       ЖЕЛ       ЧЕР       ЧЕР      СИР       БЕЛ      СИН          3
              СИН       СИН       СИН       СИН      СИН       СИН      СИН          0
      СИН     ЗЕЛ       ЗЕЛ       ЖЕЛ       ГОЛ      ГОЛ       ГОЛ      ГОЛ          1
       2      СИР       СИР       СИР       ЧЕР         КР     ЧЕР       КР          2
              КР        ЖЕЛ       ЧЕР       СИР      СИР       БЕЛ      БЕЛ          3
              СИР       СИР       СИР       СИР      СИР       СИР      СИР          0
      СИР     ЗЕЛ       ЗЕЛ       ЖЕЛ       ГОЛ      ГОЛ       БЕЛ      БЕЛ          1
       3      СИН       СИН       СИН       ЧЕР         КР     КР       ЧЕР          2
              КР        ЖЕЛ       ЧЕР       БЕЛ      БЕЛ       СИН      СИН          3
              БЕЛ       БЕЛ       БЕЛ       БЕЛ      БЕЛ       БЕЛ      БЕЛ          0
      БЕЛ     СИР       СИР       СИН       СИН         КР     КР       ЧЕР          1
       4      ЖЕЛ       ЗЕЛ       ЗЕЛ       ЖЕЛ      ГОЛ       ГОЛ      ГОЛ          2
              ГОЛ       ГОЛ       СИР       СИР      ЗЕЛ       ЧЕР      ЖЕЛ          3
              ГОЛ       ГОЛ       ГОЛ       ГОЛ      ГОЛ       ГОЛ      ГОЛ          0
      ГОЛ     СИР       СИР       СИН       СИН         КР     КР       ЧЕР          1
       5      ЖЕЛ       ЗЕЛ       ЗЕЛ       ЖЕЛ      БЕЛ       БЕЛ      БЕЛ          2
              СИН       СИН       БЕЛ       БЕЛ      ЗЕЛ       ЧЕР      ЖЕЛ          3
              ЗЕЛ       ЗЕЛ       ЗЕЛ       ЗЕЛ      ЗЕЛ       ЗЕЛ      ЗЕЛ          0
      ЗЕЛ     СИР       СИР       СИН       ЧЕР      ЧЕР       КР        КР          1
       6      ЖЕЛ       ЖЕЛ       ЖЕЛ       ГОЛ      БЕЛ       БЕЛ      ГОЛ          2
              ГОЛ       СИН       БЕЛ       ЖЕЛ      ЖЕЛ       ЧЕР      ЧЕР          3
              ЖЕЛ       ЖЕЛ       ЖЕЛ       ЖЕЛ      ЖЕЛ       ЗЕЛ      ЗЕЛ          0
      ЖЕЛ     СИР       СИР       СИН        КР         КР     КР        КР          1
       7      ЗЕЛ       ЗЕЛ       ЗЕЛ       БЕЛ      ГОЛ       БЕЛ      ГОЛ          2
              ГОЛ       СИН       БЕЛ       ЧЕР      ЧЕР       ЗЕЛ      ЗЕЛ          3

                                                                                               12

15

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Примечания:
   1. Для фона номер 7 и палитр 5    и 6 фон будет зеленого цвета.
   2. Цвет окантовки назначается     по умолчанию для каждой конкретной комбинации
цвета фона и номера палитры и        соответствует второму номеру цвета переднего
плана.
   3. В таблице применяются такие     сокращения:
   ЧЕР - черный
   БЕЛ - белый
   КР - красный
   ГОЛ - голубой
   СИН - синий
   ЗЕЛ - зеленый
   СИР - сиреневый
   ЖЕЛ - желтый

   Все параметры должны быть выражениями числового типа, если значение выражения
нецелое, то используется только целая часть значения. Неуказанные параметры по
умолчанию принимают ранее заданные значения. Если значения параметров выходят за
указанные пределы, то для задания параметров используются младшие разряды их
двоичных представлений.
   Цвет окантовки экрана соответствует второму номеру цвета переднего плана.
   Примеры:
   10 COLOR1,0,0 - устанавливает зеленый цвет переднего плана для вывода
текстовой и графической информация, черный цвет фона и синий цвет окантовки.
   50 COLOR3,2,4 - задает сиреневый цвет переднего плана, синий цвет фона и
красный цвет окантовки.
   95 COLOR1 - меняет только номер цвета переднего плана фона, цвет фона и номер
палитры остаются прежними.

                               9.2. Графические операторы

   Графические операторы языка БЕЙСИК-2.0 ПК-01 включают операторы PSET, PRESET,
LINE. При выводе изображений с помощью этих операторов адреса пикселей задаются
координатами Х и Y. Пиксель, находящийся в левом верхнем углу поля изображения,
имеет координаты (0, 0), в левом нижнем углу координаты (0, 221), в правом
верхнем углу координаты (199, 0) и т.д.
   Оператор PSET позволяет вывести точку определенного цвета в заданную точку
экрана. Формат оператора:

   <номер строки> PSET (<X - координата>, <Y - координата>) [,<цвет>]

   где <X - координата> и <Y - координата> - соответственно координата X и
координата Y выводимой точки;
   <цвет> - номер цвета переднего плана, который в совокупности с ранее
определенными номером фона и номером палитры определяет цвет выводимой точки.
   Все параметры - это выражения числового типа. Если параметр <цвет> опущен, то
принимается значение, заданное оператором COLOR или заданное одним из
графических операторов, выполненных раньше.
   Примеры:
   100 PSET(50,100),1
   250 PSET(X,Y+1)

   Оператор PRESET закрашивает заданную точку экрана в цвет фона, т.е. стирает
точку. Формат оператора:

   <номер строки> PRESET (<Х – координата>, <Y - координата>)

   Назначение и формат параметров <Х - координата> , <Y - координата> такое же,
как и у оператора PSET.

                                                                                             13

16

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Оператор LINE дает возможность выводить на экран отрезки прямых линий. С его
помощью можно чертить и закрашивать прямоугольники, стороны которых параллельны
сторонам рамки экрана. Формат оператора:

   <номер строки> LINE [(<Х - нач>, <Y - нач>)] - (<X - кон>, <Y - кон>)
[,<цвет>] [,B][F]

   где <Х - нач>, <Y - нач> - соответственно координата Х и координата Y начала
отрезка;
   <Х - кон>, <Y - кон> - соответственно координата Х и координата Y конца
отрезка;
   <цвет> - номер цвета переднего плана, которым чертится линия,
   B - необязательный параметр, позволяющий вывести на экран не отрезок прямой
линии, а прямоугольник, стороны которого параллельны сторонам окантовки экрана,
а координаты крайних точек любой из диагоналей равны <Х - нач>, <Y - нач> и <Х -
кон>, <Y - кон>.
   F    -   необязательный    параметр,   предписывающий     вывод  закрашенного
прямоугольника.
   Формат параметров <Х - нач>, <Y - нач>, <X - кон>, <Y - кон> и цвета такой
же, как и в операторе PSET.
   Если параметр (<X - нач>, <Y - нач>) опущен, то в качестве координат
начальной   точки   берутся    координаты  последней,    выведенной  предыдущими
графическими операторами, точки.
   Примеры:
   100 LINE(10,10)-(30,30),3
   110 LINE-(10,30)
   200 LINE(50,10)-(70,20),,В
   210 LINE(X1,Y1)-(X2,Y2),2,ВF

   Если понадобится какая-либо обработка графического изображения, то номер
цвета конкретной точки можно узнать при помощи функции POINT. Формат функции:

  POINT (<Х - координата>, <Y - координата>)

   Здесь параметры <Х - координата> и <Y - координата> имеют то же назначение и
формат, что и в операторах описанных выше.
   Для   обеспечения  преемственности   с  ранее  написанными   программами,  в
интерпретатор БЕЙСИК 2.0 ПК-01 включены также операторы PLOT и DRAW предыдущей
версии интерпретатора. Для этих операторов точка начала координат расположена в
левом нижнем углу и расположение осей координат соответствует первому квадранту
декартовой системы координат.
   Оператор PLOT позволяет вывести точку определенного цвета в заданную точку
экрана. Формат оператора:

  <номер строки> PLOT <X - координата>, <Y - координата>, <цвет>

   Назначение и формат параметров оператора PLOT такой же, как и у оператора
PSET.
   Оператор DRAW позволяет вывести на экран отрезок прямой линии, который
соединяет последний, выведенный предыдущим оператором PLOT или DRAW, пиксель и
точку с координатами Х и Y, заданными в данном операторе. Цвет пикселей этого
отрезка такой же, как и у пикселя, являющегося началом отрезка. Формат
оператора:

  <номер строки> DRAW <X - координата>, <Y - координата>

   Операторы PLOT и DRAW не рекомендуется применять при                   разработке     новых
программ, так как из последующих версий они будут исключены.

                                                                                             14

17

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

                              9.3. Средства управления звуком

   Средства воспроизведения звука включают операторы ВЕЕР и SOUND.
   Оператор ВЕЕР позволяет выдать короткий звуковой сигнал из динамика                      или
капсуля. Формат оператора:

  <номер отроки> ВЕЕР

   Оператор SOUND позволяет воспроизвести при помощи динамика (капсуля)
несложную мелодию. Формат оператора для воспроизводства отдельного звука:

  <номер строки> SOUND <код частоты>, <код длительности>

  Формат для последовательности звуков:

   <номер строки> SOUND <код частоты>, <код длительности>; ... ; <код частоты>,
<код длительности>

   где <код частоты> и <код длительности> - числовые выражения. Коды частоты для
нот гармонического звукоряда приведены в таблице 2.
   Длительность одной единицы значения параметра <код длительности> равна
приблизительно 7 мс. Если код частоты равен 0, то задается пауза.
   Пример: В ниже приведенных операторах закодированы первые два такта мелодии
популярной детской песни "Пусть всегда будет солнце".
   10 SOUND69,80;66,42;69,40;52,160
   20 SOUND46,80;43,40;46,40;69,160
                                                                       Таблица 2
                              Малая Первая Вторая Третья
                      Ноты
                             октава октава октава октава
                     ДО        156     78      38      19
                     ДО #      147     73      36      18
                     РЕ        139     69      34      17
                     РЕ #      131     66      32      16
                     МИ        123     61      30      15
                     ФА        116     58      29      14
                     ФА #      110     55      27      13
                     СОЛЬ      104     52      26      12
                     СОЛЬ #     98     49      25       -
                     ЛЯ         92     46      23       -
                     ЛЯ #       87     43      21       -
                     СИ         83     41      20       -

                                          Дополненная и откорректированная Таблица 2.
                                 Малая      1-я       2-я       3-я       4-я
              Ноты       -
                                октава    октава    октава    октава    октава
             ДО          -        168       84        41        20        10
             ДО #        -        158       80        39        19         9
             РЕ          -        149       74        37        18         -
             РЕ #        -        139       69        34        17         8
             МИ                   131       67        33        16         -
             ФА         250       124       63        31        15         7
             ФА #       235       117       59        29        14         -
             СОЛЬ       222       111       56        27         -         -
             СОЛЬ #     209       104       53        26         -         6
             ЛЯ         199        98       49        24        12         -
             ЛЯ #       190        92       46        23        11         -
             СИ         178        89       44        22         -         5

                                                                                             15

18

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

                   10. СРЕДСТВА РАБОТЫ НА УРОВНЕ МАШИННЫХ КОМАНД

   Для квалифицированных пользователей, знакомых с программированием в кодах
микропроцессора К580ИК80, в состав интерпретатора включены средства, позволяющие
из БЕЙСИК-программы вызывать подпрограммы, составленные в кодах машины, читать и
записывать информацию в конкретные ячейки памяти. К этим средствам относятся
операторы POKE, VPOKE, OUT, WAIT и функции PEEK; VPEEK, INP, USR и VARPTR.
   Оператор POKE помещает указанное значение в указанную ячейку памяти. Формат
оператора:

  <номер строки> POKE <адрес памяти>, <значение>

   где <адрес памяти> - это арифметическое выражение, целая                  часть   которого
определяет адрес ячейки памяти, в которую производится запись;
   <значение> - арифметическое выражение в диапазоне от 0 до
   255, целая часть которого записывается в указанную ячейку.
   Пример:
   10 POKE12247,35

  Функция PEEK читает 1 байт из указанной ячейки памяти. Формат функции:

  PEEK (<адрес памяти>)

   где <адрес памяти> - это арифметическое выражение, целая часть которого
определяет адрес ячейки памяти, из которой производится чтение информации.
   Пример:
   20 PRINT PEEK(12247)

   Функция USR вызывает подпрограмму, написанную в кодах машины. Адрес точки
входа в программу в кодах машины должен быть перед использованием функции USR
помещен в фиксированные ячейки памяти. В ячейку с адресом 73 помещается младший
байт адреса подпрограммы, в ячейку с адресом 74 - старший байт. Если выполнение
подпрограммы в кодах машины завершается командой возврат (RET, RZ и т.п.), то
происходит возврат в интерпретатор и возобновится выполнение БЕЙСИК-программы.
Формат функции USR:

  USR (фиктивный аргумент)

   где фиктивный аргумент - это произвольная числовая переменная.
   Функция USR возвращает значение 0.
   Пример: Пусть необходимо выполнить подпрограмму в кодах машины, размещенную в
памяти, начиная с адреса 12288. Число 12288 в шестнадцатеричной системе
счисления представляется как 3000. Старший байт адреса равен 30 (48 в
десятеричной), младший байт - 00. Вызов этой подпрограммы можно осуществить при
помощи следующих операторов:
   10 POKE73,00
   20 POKE74,48
   30 X=USR(X)

   Оператор VPOKE помещает указанное значение в указанную ячейку видеопамяти.
Формат оператора:

  <номер строки> VPOKE <адрес>, <значение>

   где <адрес> - это арифметическое выражение, целая часть которого определяет
адрес ячейки видеопамяти, в которую производится запись. Значение адреса должно
находиться в пределах от 0 до 16383;
   <значение> - арифметическое выражение в диапазоне от 0 до 255, целая часть
которого записывается в указанную ячейку и кодирует цвет 4-х рядом расположенных
пикселей экрана.

                                                                                             16

19

                     ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Функция   VPEEK    читает    один   байт    из   указанной    ячейки    видеопамяти.     Формат
функции:

  VPEEK (<адрес>)

  Параметр <адрес> задается так же, как и в операторе VPOKE.

   Функция VARPTR возвращает адрес              памяти,    по   которому     хранится     значение
указанной переменной. Формат функции:

  VARPTR (<переменная>)

  где <переменная> - идентификатор переменной.

   Оператор OUT позволяет вывести байт данных на заданный порт вывода. Формат
оператора:

  <номер строки> OUT <порт>, <данные>

   где <порт> - это адрес порта вывода, на которые выводятся данные. Параметры
<порт> и <данные> - это выражение, которое должно находиться в пределах от 192
до 255.

   Оператор WAIT устанавливает состояние ожидания до тех пор, пока вводимые с
порта данные не достигнут определенного значения. Формат оператора:

   <номер строки> WAIT <порт>, <маска AND>, [<маска XOR>]

   где <порт> - см. оператор OUT;
   <маска AND> и <маска XOR> - выражения, значения которых должно находиться в
пределах от 0 до 255. Этот оператор вводит байт данных из указанного порта
ввода. С введенными данными и параметром <маска AND> выполняется поразрядная
операция "И", а с полученным результатом и параметром <маска XOR> поразрядная
операция "исключающее ИЛИ" Процесс ввода и обработки байта данных повторяется до
тех пор, пока полученное значение не станет нулевым.

   Функция INP позволяет вводить данные с заданного порта ввода. Формат Функции:

   INP (<порт>)

   где <порт> см. оператор OUT.

              11. РАБОТА В РЕЖИМЕ НЕПОСРЕДСТВЕННОГО ИСПОЛНЕНИЯ

                                    11.1. Режим калькулятора

   Если в операторе БЕЙСИК ПК-01 опустить номер строки, то такой оператор
выполняется немедленно. Это свойство можно использовать для выполнения несложных
вычислений.
   Пример: Ввод с терминала строки PRINT 2.5*LOG(3.5) вызовет вывод на экран
числа 3.13191
   Вместо служебного слова PRINT разрешается использовать вопросительный знак
(?). В режиме непосредственного исполнения можно также использовать ряд других
операторов (LET, POKE, PLOT, DRAW и др.). Например, при непосредственном
выполнении операторов:
   Х=25
   Y=SQR(X)
   PRINT Y
   будет напечатано: "5"

                                                                                                 17

20

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Логически не имеет смысла непосредственное исполнение операторов DIM, DATA,
RESTORE, FOR, NEXT, END, REM, RETURN, STOP; недопустимо использование в режиме
непосредственного использования операторов DEF, INPUT, DATA.

   11.2. Использование режима непосредственного исполнения при отладке программ

   Для облегчения отладки программ программист может разместить в программе
операторы STOP. Каждый оператор STOP вызывает останов в выполнении программы,
печать номера строки, на которой произошла остановка. В это время программист
может   проверить   различные  значения,   возможно, изменить  их  в   режиме
непосредственного исполнения.
   Для продолжения выполнения программы следует ввести директиву CONT (см.
раздел 13).
   Во время отладки, используя функцию FRE, можно определить объём свободной
памяти, не занятой программой или объём свободной памяти, отведенной под
размещение строковых данных. Формат функции:

  FRE (<фиктивный аргумент>)

   Если задан фиктивный аргумент числового типа, то выдаётся оставшееся
количество байт памяти, отводящейся под программу, а если строкового, то под
размещение строк.
   Пример:
   PRINT FRE(X)

                          12. ОПЕРАТОРЫ ВВОДА – ВЫВОДА

                         12.1. Операторы READ, DATA и RESTORE

   Для ввода данных в программу используются операторы READ и DATA. Оператор
DATA содержит значения, которые присваиваются переменным, записанным в операторе
READ. Формат оператора DATA:

  <номер строки> DATA <список значений>

   Список значений может включать в себя числовые и символьные данные. Элементы
данных в списке должны разделяться запятыми.
   Пример:
   10 DATA1,-2,63,1.5E-6
   20 DATAABCDE,3.5,-26
   Элементы символьных данных необходимо заключить в кавычки тогда, когда
символьная строка включает запятую или пробел.
   Пример:
   10 DATA"АAB, CD"
   В одной программе может быть один или несколько операторов DATA. Списки всех
операторов рассматриваются как один блок данных. За время выполнения программы
информация из блока данных извлекается для присвоения значения переменным с
помощью оператора READ. Оператор READ имеет следующий формат:

  <номер строки> READ <список переменных>

   Список переменных представляет собой перечень имен переменных (числовых и
символьных, простых и с индексом). Имена переменных в списке разделяются
запятыми.
   Пример:
   30 READM,A,K,BK,S$,A2
   Если при выполнении программы встречается оператор READ, то первой переменной
списка оператора READ присваивается первое значение из блока данных, второй
переменной - второе значение и т.д.

                                                                                             18

21

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   При этом интерпретатор запоминает последнее значение, присвоенное переменкой
из списка операторе READ. Поэтому, когда в программе встречается ещё один
оператор READ, то переменной присваивается следующее имеющееся значение из блока
данных.
   Если список значений в блоке данных исчерпался раньше списка переменных в
операторе READ, то происходит программное прерывание, а на печать выдается
сообщение об ошибке.
   Если одни и те же данные необходимо использовать несколько раз, то
используется оператор RESTORE (восстановить). Оператор RESTORE в программе
должен размещаться перед каждым следующем считыванием данных. Формат оператора
RESTORE:

  <номер строки> RESTORE
  <номер строки> RESTORE <номер строки 1>

   После его выполнения выборка значений операторами READ начнётся повторно с
самого первого значения элемента блока данных, в случае первого формата
оператора RESTORE, или со значения элемента блока данных, помещенного в
операторе DATA с <номером строки>, во втором случае. Оператор RESTORE можно
употреблять в любой момент рабочей программы, не дожидаясь полного исчерпания
блока данных.

                                   12.2. Оператор INPUT

   При выполнении некоторых задач исследовательского или игрового характера
возникает необходимость корректировать входные данные по ходу счета в
зависимости от получающихся результатов. Для этой цели используют оператор
INPUT, формат которого следующий:

  <номер строки> INPUT <список>

   Список включает в себя имена переменных (численных и символьных). Выполняя
оператор INPUT, компьютер делает паузу во время выполнения программы, печатает
на терминале знак вопроса "?". Пользователь должен набрать на клавиатуре
значения переменных, разделяя их запятыми. Количество и тип значений должны
соответствовать количеству и типу переменных в списке. Для ввода набранных
значений следует нажать клавишу ВК. Если вводимые символьные данные содержат
запятую, то их нужно заключить в кавычки.
   Выдача на терминал вопросительного знака (?), при наличии в программе
нескольких операторов INPUT, не даёт возможности определить, значения каких
именно переменных должен ввести пользователь. Для устранения этого недостатка
используют оператор INPUT следующего формата:

  <номер строки> INPUT "<сообщение>"; <список>

  где <сообщение> - произвольная последовательность печатных символов.
  Пример:
  10 INPUT"МАССА";M
  При выполнении этого оператора на терминал выводится:
  МАССА ?
  Пользователь должен набрать значение переменной М и нажать клавишу ВК.

                                   12.3. Оператор PRINT

   Вывод   на   терминал   результатов   вычислений   и  пояснительных                 текстов
осуществляется с помощью оператора PRINT. Формат оператора:

  <номер строки> PRINT [<список>]

   Элементами списка могут быть числа, переменные, выражения и                     символьные
строки. Оператор PRINT без списка используется для перевода строки.

                                                                                             19

22

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Длина строки терминала ПК-01 составляет 32 позиции. Эта строка разбита на 2
зоны по 16 позиций. При выводе на печатающее устройство печатная строка
разбивается на соответствующее число зон по 16 позиций (5 зон при длине 80
позиций, 8 зон при длине 128 позиций и т.п.). Если за элементом из списка
оператора PRINT следует запятая (,), то значение следующего элемента списка
будет напечатано в первой свободной зоне данной или следующей строки.
   Если за последним элементом оператора PRINT следует запятая, следующее
значение которого должно выводиться на печать последующим оператором PRINT,
будет печататься в следующей зоне печати. Две запятые, стоящие рядом в операторе
PRINT, обуславливают пропуск зоны печати.
   При необходимости более тесного размещения напечатанных значений, вместо
запятой следует использовать точку с запятой (;). При наличии точки с запятой
следующее значение печатается через одну позицию справа от предыдущего. Если за
последним элементом оператора PRINT следует точка с запятой, следующее значение,
которое должно выводиться на печать последующим оператором PRINT, будет
печататься через одну позицию справа от предыдущей - на той же строке (если в
строке есть место для печати).

                 12.4. Дополнительные возможности оператора PRINT

   Дополнительные возможности для размещения выводимой информации могут быть
получены при использовании в операторе PRINT функций ТАВ(Х) и SPC(X). Функция
ТАВ(Х) вызывает перемещение курсора (указывающего позицию вывода очередных
данных) к позиции с номером X. Позиции в строке нумеруются, начиная с 0. Формат
функции TAB:

  TAB (<выражение>)

   Пример:
   10 PRINT TAB(5);X;TAB(25);Y
   Функция   SPC(X)   возвращает   строку   пробелов  длиной              INT(X),      которая
"вставляется" в выводимую строку. Формат функции SPC:

  SPC (<выражение>)

  Пример:
  10 PRINT TAB(5);X;SPC(11);Y

   Иногда при выводе некоторых результатов на печать возникает необходимость в
уточнении положения курсора в выводимой строке. Для этого можно воспользоваться
функцией POS(X), где Х - фиктивный аргумент. Эта функция возвращает позицию
курсора после последнего оператора PRINT.
   Пример:
   10 PRINT"####";
   15 P=POS(0)
   Переменная P примет значение, равное 4.

   Номер строки, в которой находится курсор, можно определить при помощи функции
CSRLIN. Эта функция не имеет аргумента и возвращает значение текущей строки
курсора в пределах от 0 до 23 (0 - для верхней строки, 23 - для нижней строки
экрана).

                                12.5. Управление курсором

   Для позиционирования выводимого на экран терминала текста в БЕЙСИКе 2.0 ПК-01
используется оператор LOCATE, позволяющий переместить курсор в определенное
место экрана. Формат оператора LOCATE:

  <номер строки> LOCАТЕ [<номер столбца>], [<номер строки>] [, <видимость>]

                                                                                             20

23

                      ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   где <номер столбца> - указывает номер позиции в строке, в которую помещается
курсор (может принимать значение от 0 до 31);
   <номер строки> - указывает номер строки, в которую помещается курсор (может
принимать значение от 0 до 23);
   <видимость> - указывает режим вывода курсора. Значение 1 указывает, что
курсор выводится, 0 - не выводится.
   Если какой-либо параметр не указан, то по умолчанию принимается его
предыдущее значение.

                   13. СРЕДСТВА ПОДГОТОВКИ И ОТЛАДКИ ПРОГРАММ

               13.1. Директивы интерпретатора и средства отладки программы

   Директивы интерпретатора предназначены для управления его работой. При вводе
директивы, в отличие от оператора, номер строки не ставится (исключение
составляют случаи отладки программы). Все директивы выполняются немедленно.
   Директива NEW используется перед вводом новой программы. Если в памяти
находится старая программа, то она стирается. При выполнении директивы NEW
инициализируется ряд системных переменных интерпретатора. Формат директивы:

  NEW

   Директива LIST предназначена для вывода на экран терминала текста всей длины
программы, находящейся в оперативной памяти. Формат директивы:

  LIST [N1] [-N2]

   где N1 - номер строки с меньшим номером;
   N2 - номер строки с большим номером.
   При вводе директивы LIST без параметров, выдается листинг всей программы; с
параметром N1 - текст от оператора с номером N1 до конца программы; а в случае
указания N1 и N2 - текст программы от оператора с номером строки N1 до оператора
с номером строки N2.
   При выдаче на экран листинга программы возможна его приостановка, для этого
необходимо нажать функциональную клавишу <F5/AS>. Повторное начатие на клавишу
<F5/AS> вызывает выдачу следующей строки программы.
   После этого возможно либо продолжение выдачи листинга в автоматическом режиме
(путем наития на клавишу "пробел"), либо прекращение выдачи листинга и выход в
режим диалога (путем нажатия функциональной клавиши <F0> - клавиши в верхнем
ряду).

   Директива    RUN    предназначена      для   запуска    программы    на   выполнение.     Формат
директивы:

  RUN [N]

   где N - номер строки оператора, с которого начинается интерпретация
программы. При отсутствии параметра N интерпретация начинается с оператора с
наименьшим номером строки.
   После запуска программы на выполнение возможна ее приостановка путем нажатия
на клавишу <F5/AS>. Повторное нажатие на клавишу <F5/AS> вызывает выполнение
очередного   оператора   БЕЙСИК-программы,   т.е.  пошаговое   ее   выполнение.
Возобновление выполнения программы осуществляется путем нажатия на клавишу
"пробел". После приостановки программы возможно также прекращение ее выполнения
и выход в режим диалога. Такой останов осуществляется путем нажатия на
функциональную клавишу F0 (в верхнем ряду клавиш).

   Директива CONT предназначена для возобновления программы, остановленной при
выполнении оператора STOP, оператора END или при нажатии на функциональную
клавишу F0. Выполнение программы возобновляется с оператора, следующего за
оператором, в котором произошел останов. Формат директивы:

                                                                                                  21

24

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   CONT

   Директива CLEAR предназначена для очистки всех переменных и массивов в
БЕЙСИК-программе и для изменения размеров памяти, предназначенной для хранения
строковых переменных. Формат директивы:

   CLEAR [N]

   где N - целое число, определяющее количество байт памяти, отводимое под
переменные символьного типа (строковые переменные).

   Для записи информации на магнитную ленту в интерпретаторе БЕЙСИК 2.0 ПК-01
используются директивы CSAVE, BSAVE, SAVE, а для ввода информации с магнитной
ленты-директивы   CLOAD,   BLOAD,   LOAD,   MERGE.   Способ    записи   информации,
использующийся   указанными    директивами,    совместим    со    способом   записи
применяющимися в персональных компьютерах серии MSX.
   Директива CSAVE позволяет сохранить на магнитной ленте БЕЙСИК-программу во
внутреннем представлении. Формат директивы:

   CSAVE "<имя файла>"

   где <имя файла> - это последовательность от одного до шести символов. Не
рекомендуется в качестве имени файла использовать все пробелы (см. директиву
CLOAD).

   Директива CLOAD дает возможность загрузить с ленты в память ЭВМ программу,
записанную при помощи директивы CSAVE. Формат директивы:

   CLOAD ["<имя файла>"]

   Параметр <имя файла> записывается так же, как и в директиве CSAVE.
   Если <имя файла> в директиве присутствует, то поиск на ленте будет вестись до
тех пор, пока не будет обнаружен файл с указанным именем. Если же параметр в
директиве CLOAD отсутствует, или заданы только кавычки, или в качестве имени
файла используются пробелы, то будет прочитан первый по порядку файл, записанный
с помощью директивы CSAVE. Прекратить поиск файла можно путем нажатия на клавишу
"стрелка вниз". Сказанное выше относится и к поиску файлов в директивах BLOAD,
LOAD и MERGE за исключением того, что ведется поиск BSAVE-файлов или SAVE-
файлов.

   По директиве SAVE текст БЕЙСИК-программы записывается на магнитную ленту во
внешнем представлении (в коде КОИ-7). Запись ведется блоками по 256 байт. Такую
программу можно ввести и выполнить (если совпадут форматы операторов и функций)
на других компьютерах, использующих формат записи MSX ("Корвет", "Ямаха" и др.).
Формат директивы:

   SAVE "<имя файла>"

   Правила записи параметра <имя файла> такие же, как и в директиве CSAVE.

   Директива LOAD предписывает загрузить             в   память     программу,     записанную
директивой SAVE. Формат директивы:

   LOAD ["[<имя файла>]"]

   Директива MERGE дает возможность объединять две программы: программу в памяти
с программой, вводимой с магнитной ленты, причем вторая должна быть записана на
ленту директивой SAVE. Если в программе, находящейся в памяти, и в программе,
вводимой с магнитной ленты, будут встречаться операторы с одинаковыми номерами

                                                                                             22

25

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

строки, то они будут замещаться теми операторами, что вводятся с ленты. Формат
директивы:

  MERGE ["[<имя файла>]"]

   Директива BSAVE позволяет записать на магнитную ленту двоичный образ памяти.
Это может быть программа в машинном коде или какие-либо данные. Формат
директивы:

  BSAVE "<имя файла>", <нач.адрес>, <кон.адрес> [, <адрес запуска>]

   где <имя файла> - см. директиву CSAVE;
   <нач.адрес> и <кон.адрес> - это адреса соответственно начала и конца области
памяти, которая выводится на ленту;
   <адрес запуска> - точка входа в программу в машинном коде. Если этот параметр
опущен, то точка запуска устанавливается равной параметру <нач.адрес>.
   Параметры <нач.адрес>, <кон.адрес> и <адрес запуска> должны быть числовыми
выражениями.

   Директива BLOAD предназначена для загрузки в память информации записанной
директивой BSAVE. Формат директивы:

  BLOAD "[<имя файла>]" [, R] [,<смещение>]

   где <имя файла> - см. директиву CLOAD;
   R - необязательный параметр указывающий, что после загрузки управление долено
быть передано на пусковой адрес загруженной программы в кодах машины
(автозапуск). Если эта программа завершается командой возврата (RET), то
управление возвращается интерпретатору;
   <смещение> - необязательный параметр, который позволяет загрузить данные в
область памяти, отличающуюся от той, из которой они записывались на ленту.
Значение параметра <смещение> прибавляется (по модулю 2^16) к адресам начала и
конца области данных, которые были заданы в директиве BSAVE и сохранены на ленте
вместе с данными.
   Директивы BSAVE и BLOAD, так же, как и директива RUN, могут использоваться в
качестве операторов.

   Для загрузки с ленты БЕЙСИК - программы, созданной                 в   предыдущей    версии
интерпретатора предусмотрена директива SLOAD. Ее формат:

  SLOAD

                  13.2. Диагностические сообщения интерпретатора

   В состав интерпретатора включена система контроля, позволяющая выявить
большинство ошибок, связанных с недопустимым использованием конструкций БЕЙСИКА.
При обнаружении ошибки интерпретатор выдает диагностическое сообщение, которое в
случае интерпретации директивы и в режиме непосредственного исполнения содержит
код ошибки, а при выполнении БЕЙСИК-программы содержит код ошибки и номер строки
оператора, в котором произошла ошибка. Коды ошибок, выдаваемых интерпретатором,
приведены в таблице 3.

                                                                                             23

26

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

                                                                                    Таблица 3
   Код
              Значение                                   Пояснение
ошибки
                               Программа не содержит соответствующего FOR для
NF       NEXT без FOR
                               NEXT.
                               Неправильное использование ограничителей, символов
SN       Синтаксис
                               и т.д.
                               Оператор RETURN встретился прежде, чем был
RG       RETURN без GOSUB
                               использован оператор GOSUB.
          Выход за пределы     В программе исчерпаны все элементы списка DATA, а
OD
          DATA                 оператор READ пытается еще прочитать данные.
                               Параметры, передаваемые функции, не соответствуют
                               их пределам. Возможные причины:
                                1. Отрицательный индекс в элементе массива.
                                2. А^В, где A - отрицательное, а B не является
          Недопустимый
FC                            целым.
          вызов
                                3. Недопустимый аргумент при обращении к функциям
                               LOG, SQR, MID$, LEFT$, RIGHT$, TAB, SPC.
                                4. Недопустимые аргументы операторов POKE, PLOT,
                               DRAW, ON.
OV       Переполнение         Значение выражения превышает 1,7.10^38
                               Программа слишком большая, содержит очень много
OM       Превышение памяти    циклов, подпрограмм, переменных или сложных
                               выражений.
          Неопределенный
US                            Не существует строки, указанной в ссылке.
          номер
                               Обращение к переменной с индексами, которая вне
                               описанной размерности массива, или в операторе ON
BS       Превышение границ
                               выход за пределы списка меток, или неправильное
                               число размерностей в переменной с индексами.
          Повторное
DD                            Повторное описание массива.
          определение
/0       Деление на 0         Была предпринята попытка деления на 0.
          Недопустимое
                               В режиме непосредственного исполнения оператор
ID       непосредственное
                               использован неправильно.
          исполнение
                               Для функции был задан неправильный тип данных;
TM       Смешивание типов
                               любое неправильное смешивание типов данных.
                               Для переменных символьного типа требуется больше
          Превышение памяти
OS                            памяти, чем назначено. Можно увеличить память с
          для строк
                               помощью директивы CLEAR.
          Недопустимая
LS                            Длина строки больше 255 символов.
          длина строки
                               Строка очень длинная или сложная; ее следует
ST       Сложная строка
                               разделить на две части.
                               Была произведена попытка продолжить программу,
                               которая не допускает продолжения (ни после
          Не может быть
CN                            останова по STOP, ни после останова по END, ни
          CONT
                               после останова по функциональной клавиши F0, или
                               при отсутствии следующих операторов программы).
          Неопределенная
VF       функция              Ссылка на неопределенную функцию пользователя.
          пользователя

                              13.3. Средства редактирования

   Средства редактирования интерпретатора позволяют модифицировать программу,
исправлять ошибки, допущенные при наборе программы.
   Если при выводе строки последний набранный символ неверный, то его можно
уничтожить путем нажатия на клавишу ЗБ; для уничтожения двух последних символов
необходимо дважды нажать на клавишу ЗБ и т.д.

                                                                                             24

27

                   ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Для уничтожения всей набранной строки необходимо нажать на функциональную
клавишу <F5/AS>
   Указанными средствами можно пользоваться до окончания ввода строки, т.е. до
нажатия на клавишу ВК.
   С целью облегчения ввода наиболее часто встречающихся ключевых слов БЕЙСИКа в
интерпретаторе версии 2.0 предусмотрено использование некоторых функциональных
клавиш, специальных клавиш и комбинации клавиш СУ и алфавитно-цифровых клавиш.
Так, нажатие функциональной клавиши <F1/ЧМЛ> вызывает ввод ключевого слова
CLOAD, функциональной клавиши <F2/ЗМЛ> - CSAVE; функциональной клавиши <F3/BS> -
LIST; функциональной клавиши <F4/ED> - EDIT; путем нажатая на клавишу TAB
инициируем ввод символов TAB (, а нажатием на клавишу ПС - ввод директивы RUN и
символа ВК, т.е. запуск программы на выполнение. Одновременное нажатие на
клавишу СУ и одну из алфавитно-цифровых клавиш вызывает ввод еще одного из 32
ключевых слов БЕЙСИКа (см. табл. 4). Например, комбинация клавиш СУ и C дает
слово COLOR, СУ и P - PRINT, СУ и L - LOCATE, СУ и Т - THEN и т.д. В ряде
случаев первая буква ключевого слова и алфавитно-цифровой символ не совпадают,
однако можно составить некоторые мнемонические правила: СУ и Z - SOUND (звук),
СУ и Х - PSET, CУ и Y - LINE (графика, которая связана с системой координат XY)
и т.д.

                                                                 Таблица 4 "Ключевые слова"
                            Ключевое
               Клавиша                               Примечание
                              слово
               @            READ
               А            DATA
               В            BSAVE
               С            COLOR
               D            DELETE
               Е            RENUM       Не реализовано
               F            FOR
               G            GOTO
               Н            HEX$
               I            INPUT
               J            ВЕЕР
               K            POKE
               L            LOCATE
               M            MERGE
               N            NEXT
               B            BLOAD
               P            PRINT
               Q            RESTORE
               R            RUN
               S            STEP
               Т            THEN
               U            RETURN
               V            VAL
               W            DRAW
               X            PSET
               Y            LINE
               Z            SOUND
               [            LOAD
               \            GOSUB
               ]            SAVE
               ^            CLEAR
               _            CLS

   Для корректировки (замены или исправления) ранее введенной строки необходимо
набрать номер корректируемой строки и ее новое содержание, старое содержимое
заменяется новым.

                                                                                               25
                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   Более мощными средствами редактирования являются средства, предоставляемые
директивной EDIT. Формат директивы:

  EDIT <номер строки>

   После ввода этой директивы оператор (операторы) с указанным номером строки
выводятся    в   специальный    буфер   редактирования,    содержимое   которого
"высвечивается" в нижней части экрана. При помощи клавиш управления курсором,
курсор устанавливается в нужное место буфера, путем нажатия на алфавитно-
цифровые клавиши осуществляется замена (исправление) текста редактируемого
оператора, клавишей ГТ освобождается место для вставки, клавишей ЗБ уничтожаются
ненужные символы. Выход из режима редактирования осуществляется путем нажатия на
клавишу ВК; при этом курсор может находиться в произвольной части буфера.
   Для удаления какой либо из ранее набранных строк, достаточно набрать номер
удаляемой строки и нажать клавишу ВК, - строка с указанным номером удаляется.
   Для удаления группы строк программы можно использовать директиву:

  DELETE <начальная строка>-<конечная строка>

   где <начальная строка> и <конечная строка> - это номера строк операторов того
участка программы, который подлежит удалению.

               ПРИЛОЖЕНИЕ: ДОПОЛНИТЕЛЬНЫЕ ОПЕРАТОРЫ БЕЙСИКА

   К дополнительным операторам БЕЙСИКа версии 2.0 относятся операторы CIRCLE,
PAINT и оператор DEF USR.
   В графических операторах CIRCLE, PAINT координаты точек задаются так же, как
и в операторах PSET, PRESET и LINE, т.е. точка с координатами (0,0) находится в
левом верхнем углу экрана.
   Оператор CIRCLE позволяет выводить на экран видеотерминала окружности, овалы,
сектор круга, дуги. Формат оператора:

   <номер строки> CIRCLE (<Х - координата>, <Y                 -   координата>),        <радиус>
[,<цвет>] [,<нач.угол>] [,<кон.угол>] [,<отношение>]

   где Х - координата и Y - координата - выражения, задающие значения
соответственно координаты Х и Y центра окружности;
   <радиус> - значение радиуса окружности (дуги окружности);
   <цвет> - номер цвета переднего плана, которым чертится окружность (дуга);
   <нач.угол>- начало дуги (в радианах), по умолчанию равно нулю;
   <кон.угол>- конец дуги (в радианах), по умолчанию равно 2pr;
   <отношение>    -   характеристический    коэффициент,    задающий   отношение
горизонтальной и вертикальной осей и позволяющий рисовать овалы, по умолчанию
равен 1.
   Если заданы параметры <нач.угол>, <кон.угол>, то рисуется дуга окружности.
Если любой из этих параметров отрицательный, то используется его абсолютное
значение, при этом соответствующий конец дуги соединяется с центром линии
радиуса. Значение углов должно находиться в пределах от 0 до 6.28318.
   При указании параметра <отношение> рисуется овал, у которого отношение
вертикальной оси к горизонтальной равно значению параметра.
   Если значение параметра меньше 1, то размер горизонтальной оси равен диаметру
(двум значениям параметра <радиус>), а при значении большем 1 - вертикальная ось
равна диаметру.

   Оператор PAINT используется для закрашивания области экрана видеотерминала
сплошным цветом. Формат оператора:

   <номер строки>   PAINT    (<Х    -   координата>,     <Y   -    координата>     ),    <цвет>
[,<граница>]

                                                                                             26

28

                 ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" Описание языка БЕЙСИК 589.0196339.OOOO1-O1 35 01

   где <Х - координата>, <Y - координата> - выражения, значения которых равны
соответственно координате Х и координате Y - точки, с которой начинается
закрашивание области;
   <цвет> - выражение, задающее значение номера цвета закраски (если опущено, то
используется цвет переднего плана, определенный ранее);
   <граница> - выражение, определяющее номер цвета границы области закраски
(если опущено, то номер цвета границы совпадает с номером цвета закраски).
   Параметр <граница> указывается в том случае, если цвет закрашивания не
совпадает с цветом границы закрашиваемой области. Точка начала закраски области
может быть любой точкой внутри области (но не на границе). Оператор PAINT
проверяет наличие границ только по вертикали и горизонтали - и объект признается
ограниченным, если ограничены вертикаль и горизонталь. Но малейшая прореха в
границе позволяет оператору PAINT "пролезть" наружу и там закрасить область
экрана (в том числе и всего).
   Следующий пример иллюстрирует применение операторов CIRCLE и PAINT:
   10 CLS
   20 CIRCLE(100,100),90,1,,,3
   30 CIRCLE(100,100),70,,,0.5
   40 LINE(100,40)-(100,160),0
   50 LINE(40,100)-(160,100)
   60 PAINT(100,100),3,1

   Оператор DEF USR определяет адрес точки входа в определенную пользователем
подпрограмму в машинном коде. Формат оператора:

  <номер строки> DEF USR = <выражение>

   где <выражение> - это арифметическое выражение, определяющее адрес точки
входа в подпрограмму.
   Параметр <выражение> должен иметь положительное значение в диапазоне от 0 до
65535; при нецелом значении дробная часть отбрасывается, а при значении большем,
чем 65535 берется остаток от деления на 65556. Полученное значение адреса (2
байта) заносится в ячейки памяти с адресом 73 или 74. Определенный оператором
DEF USR адрес действителен только во время выполнения БЕЙСИК-программы (или
программой строки в режиме непосредственного исполнения) и при выходе в режим
диалога стирается.
   Напомним,   что  запуск   подпрограммы  в   машинном   коде  на   выполнение,
осуществляется с помощью функции USR.

                                                        Тип. ЛПО им. В.И. Ленина. Зак. 2077-1500

                                                                                             27


Вы здесь » Середовище програмування MADL » ПК-01 "Львів" » Опис мови "BASIC" (рос.мовою, текст з pdf-файлу)