[an error occurred while processing this directive]
.шп136
.цв
I.1.2 О ТОМ КАК ВСЕ НАЧИНАЛОСЬ
.шп0
.ов
Такая гениальная возможность расширения языка долгое время оставалась незамеченной программистами ПЭВМ "АГАТ-9". Первопроходцем в этой области стал известный также своими другими достижениями Волков И.М., занявшийся описываемой проблемой еще в 1990 году. Пользуясь отрывочными сведениями, имеющимися в заводском описании, он изучил проблему расширения возможностей интерпретатора через свободное ключевое слово "&" и первым подошел к идее написания коротких программ-драйверов, имеющих свой микроинтерпретатор команд и соответствующий набор подпрограмм. (Эту возможность рассматривал также и Голов А.А.) Микроинтерпретатор драйвера должен осуществлять сравнение текста введенной директивы с имеющейся в памяти таблицей команд, проверяя параллельно синтаксис команды, и вызывать соответствующую команде подпрограмму. Таким образом, возможность расширения набора команд языка "Бейсик", предусмотренная фирмой APPLE COMPUTER получила новое развитие, так как через одно ключевое слово (для "Бейсика") обеспечивалось выполнение не одной, а нескольких команд. Развивая направление далее, Волков столкнулся с проблемой передачи командам параметров, которую блестяще решил "научившись" передавать командам числовые параметры (причем не только константы, а любые арифметические выражения и переменные в формате языка "Бейсик"!). Это стало возможным после того, как он обнаружил в интерпретаторе универсальную подпрограмму обработки числовых выражений (адрес подпрограммы ¤DD4E). Подпрограмма вычисляет выражение, на которое указывает ¤B8-¤B9 до первого встретившегося разделительного знака или конца строки. Подпрограмма по адресу ¤E712 осуществляет перевод числа в фомате с плавающей запятой в двухбайтовый формат с соответствующим округлением, после чего помещает его в ячейки ¤50 и ¤51. Обо всем остальном уже должен позаботиться драйвер. Таким образом, появилась возможность включать в состав драйверов команды, имеющие целочисленные числовые параметры в диапазоне ¤0000-¤FFFF, от которых так или иначе зависит работа соответствующей команды.
Не малая заслуга Волкова также в том, что он разработал модульный подход к написанию соответствующих ассемблерных подпрограмм (естественно, что такие мощные вещи уже были написаны на языке Ассемблер ДОК ИКП-1). Соответственно с этим подходом, каждая команда драйвера могла быть написана отдельно от других и связана с остальным текстом драйвера без каких-либо предшествующих сложных переделок, так как имела специальный служебный заголовок, который обеспечивал связь команды с другими командами драйвера, указывал максимальное и минимальное кол-во параметров команды и т.д... В результате появилась возможность создания целых системных библиотек различных команд, которые без труда можно было связать в единый драйвер.
Все эти идеи Волков И.М. с успехом реализовал при создании своего пакета программ 'MASTER DISK' и продолжил, разрабатывая графические системы (например, 'SUBGRAF 3.0').
Естественно, написание идеальных систем требует времени (если возможно вообще) и в системе, разработанной Волковым были свои недостатки.
Команды драйверов Волкова не могли пользоваться текстовыми параметрами (а необходимость в этом зачастую была), что естественно накладывало определенное ограничение на спектр библиотек команд. Не была также разработана система обработки ошибок, что делало написание программ, основывающихся на использовании драйверов процедур весьма затруднительным и доступным скорее всего только самому автору. Причем Волков, как правило собирал специальный драйвер для конкретной Бейсик-программы, что было, конечно, идеально для него, как автора и программы и драйвера, но делало неудобным использование готовых драйверов другими программистами в своих программах. Сказывалось также и полное отсутствие каких-либо описаний указанных разработок.
.ст Раздел I:1.3
[an error occurred while processing this directive]