[an error occurred while processing this directive]

I.2.2 Обращение к драйверу.

I.2.2.1 Правила записи команд.

Обращение к драйверу расширения возможностей интерпретатора "Бейсик" производится путем ввода команды драйвера, начинающейся всегда с ключевого слова "Бейсика" амперсанд "&". Далее записывается само имя команды, правила записи которого в общем случае зависят от используемого в драйвере интерпретатора команд. Во всех драйверах фирм Biocomputer Software (Волков И.М.) и Friends' Software принято текст имени команды драйвера заключать в кавычки.

Например:

&"LIST"

Для использования такого синтаксиса имеется свое объяснение, которое касается только особенностей работы интерпретатора "Бейсик". Такая запись команд (в виде строковой константы) исключает засорение памяти, т.к. запись текста без кавычек автоматически расценивается интерпретатором как имя переменной, для которой тут же создается 5-ти байтный указатель.

Имя команды должно быть записано заглавными буквами (во всех используемых до настоящего времени драйверах). Далее большинству команд требуется сообщить параметры, необходимые для работы. Параметры записываются после команды вне кавычек (из этого правила имеется единственное исключение в виде драйвера "MELODIES.EXE" (версии 1.4 и 2.8)) через запятую. При этом числовые параметры могут быть представлены числами, переменными и выражениями в формате языка "Бейсик".

Некоторые команды для своей работы нуждаются не только в числовых, но и в строковых параметрах.

Кол-во параметров для каждой команды может быть различно. Во всех драйверах фирмы "Friends' Software" имеется команда &"LIST", которая выводит на экран список всех команд, имеющихся в конкретном драйвере. При этом выводится также кол-во и типы параметров каждой команды.

Примечание:

В драйверах фирмы "Friends' Software", написанных до 15.01.95 первый параметр должен быть отделен от имени команды запятой. Во всех драйверах Волкова И.М. и драйверах фирмы "Friends' Software", созданных после указанной даты, указанное правило не действует и первый параметр должен быть записан сразу за именем команды (после закрывающих кавычек). При этом между именем команды и первым параметром возможно наличие незначащих пробелов.

I.2.2.2 Особенности обращения к функциям.

Как уже указывалось, после создания модуля интерпретации команд "INTPRALL.ASM", появилась возможность использовать в качестве команд драйвера функции. Под термином "функция" как обычно понимается такая команда, которая способна по окончанию своей работы вернуть результат ее в виде числа или текстовой строки, который можно присвоить переменной соответствующего типа.

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

Например:

&"DEFSLOT"(X)

Функция Системной библиотеки "DEFSLOT" определяет устройство находящееся в разъеме X, где X-число от 1 до 6.

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

Другой вариант записи:

&A="DEFSLOT"(X)

позволяет присвоить переменной A результат работы заданной функции. После этого переменная A может быть использована в Бейсик-программе (естественно, что вместо A возможно любое имя переменной соответствующего типа).

Результат функции может быть только один, это может быть (при использовании модуля "INTPRALL.ASM") целое число в диапазоне [-32768;+32768] либо текст длиной не более 255 символов. При этом тип результата, возвращаемого функцией, определен изначально для каждой функции при ее создании программистом.

Примером функции, возвращающей текстовую строку в качестве результата может быть функция "FILES", работающая совместно с "оконным" модулем.

&NAME¤="FILES"(vt,ht,xl,yl,color,coloram,slot,drive,type)

Функция FILES производит считывание имен файлов типа type с дисковода слоты slot привода drive в окно с координатами vt,ht,xl,yl и цветом рамки color и предлагает пользователю выбрать одно имя с помощью перемещающегося курсора-рамки, выделенного цветом coloram. После нажатия клавиши ввод "↵" выбранное имя файла будет присвоено переменной NAME¤ (подробно о функции FILES см. соответствующее описание драйвера, в котором она имеется).

Примечание:

Функции драйверов расширения возможностей интерпретатора "Бейсик" нельзя использовать в качестве составляющих выражений языка "Бейсик". То есть, например, запись вида:

A=LEN(A¤)+ASC(B¤)+&"DEFSLOT"(X)

невозможна и не будет "понята" языком "Бейсик".

Для реализации указанного вычисления необходима следующая запись:

&N="DEFSLOT"(X): A=LEN(A¤)+ASC(B¤)+N

.ст Раздел I:2.3

[an error occurred while processing this directive]