[an error occurred while processing this directive]

.ао0

.шп8

.ми0

.цв

------------------------------------------------------
ОПИСАНИЕ ОТЛИЧИЙ ПРОГРАММНОЙ СРЕДЫ "BASIC-'MASTER'95" 
ОТ СТАНДАРТНОГО ИНТЕРПРЕТАТОРА "BASIC A9.1" (ИКП-1).  
ИСПРАВЛЕНИЕ ОШИБОК В ДОС 3.3 И СИСТЕМЕ "МОНИТОР"      
------------------------------------------------------

(Описание для программистов и пользователей)

.лв

.шп72

ОТЛИЧИЯ ОТ СТАНДАРТНОЙ СИСТЕМЫ

.ов

.шп0

Среда "BASIC-'MASTER'95" представляет собой в сущности улучшенную версию интерпретатора "BASIC-MASTER", созданную фирмой Friends' software в 1994 году, которая в свою очередь являлась улучшенной версией стандартной системы "BASIC Agat-9.1" (с диска ИКП-1). В данном описании освещаются отличия системы "BASIC-'MASTER'95" от стандартной системы "BASIC Agat-9.1" на случай, если Вы не имели возможности работать с системой 1994 года. Изменения, внесенные в новую версию, относительно стандартного "BASIC Agat-9.1", касаются следующих направлений:

1] Исправление ошибок, оставленных в интерпретаторе и ДОС 3.3 основными разработчиками этих систем на ПЭВМ АГАТ-9.

2] Удаление из интерпретатора "BASIC" операторов, потерявших свою актуальность или неработающих операторов и включение новых.

3] Исправление ошибок и внесение некоторых новых подпрограмм в систему "Монитор".

4] Интегрирование в "Бейсик" Диспетчера по обслуживанию драйверов расширения возможностей интерпретатора (версия 2.0)

5] Разрешение использования свободного ключевого слова амперсанд, "&", как функции и выделение для этого специальной системной точки входа для пользователя.

6] Интегрирование внешних драйверов расширения возможностей ДОС 3.3:

6.1- Драйвера управления виртуальной дисковой памятью VIRT128

6.2- Драйвера поддержки перемещаемых файлов RELDRIVE

(ранее данные драйвера были загружаемыми)

.шп72

1] ИСПРАВЛЕНИЕ ОШИБОК В СИСТЕМЕ

.шп0

Основным разработчиком ДОС 3.3 ПЭВМ АГАТ Кривцовым А.Ю. было допущено значительное кол-во ошибок, к сожалению не все из которых удалось исправить автору настоящего описания. Некоторые из них явились элементом случайности, другие появились в результате необдуманного преломления ДОС 3.3 APPLE при переделке на АГАТ-9. Были исправлены ошибки, устранение которых не потребовало внесения значительных изменений в систему, т.к. для этого потребовалось бы коренным образом пересмотреть структуру ДОС. Далее приводится краткий перечень всех ошибок, которые были устранены:

1) Исправление "подвисания" машины по команде "E000G" для "холодного" старта "Бейсика" из программы "Монитор".

2) Устранение загрузки файла типа "K" командой "LOAD" или "RUN" (Непростительная ошибка!).

3) Исправление допустимого значения параметра "S" (SLOT) при использовании его в командах ДОС (Было "S" максимально равно 7, но ведь у АГАТа 6 слот!).

4) Запрещение задания параметра "V" со значениями от 1 до 4 в команде "INIT" для разметки диска в дисководе типа "Teac" (FD55). Значения V=[1/4] были заразервированы для драйвера форматирования диска 720 Кб по томам, который так и не был реализован в ДОС. (Однако ДОС предусматривает работу с таким диском, если он уже отформатирован; это можно сделать, например, с помощью программы "FORMAT VOLUME" фирмы "Friends' Software".)

.сс

5) Исправление подпрограммы холодного старта в системе "Монитор".(Если ¤3F3%#¤A5=¤3F4, то ПЭВМ должна произвести поиск дискового контроллера и если он есть, то перезагрузиться. Однако вместо этого она "подвисала", выполняя STA ¤C0F0!).

6) Исправлена команда интерпретатора "CLEAR", которая не только обнуляла все переменные (что и должна была делать), но еще умудрялась портить все имена переменных в программе. Кроме этого Кривцов решил проявить эрудицию, сделав в команде "CLEAR" выдачу текста программы в формате поиска/замены. Очевидно он не подумал о том, что команду "CLEAR" возможно захочется использовать в качестве оператора в программе. В этом случае пользователю "предлагалось" просмотреть весь ее текст, возможно в самом наподходящем для этого месте (не говоря уже о том, какую радость будет испытывать при этом программист). Естественно такая экзотика была устранена. (Причем в "родном" APPLESOFT BASIC, команда "CLEAR" работала именно так, как работает после исправлений.)

7) Был улучшен параметр DCT+6 (задержка при движении головки НГМД FD55.F) в ДОС. Теперь дисковод не издает такие ужасные звуки, которые он издавал раньше. Причем надежность работы ничуть не уменьшилась.

.шп72

2] НОВЫЕ ОПЕРАТОРЫ ИНТЕРПРЕТАТОРА "BASIC-MASTER"

.шп0

Стандартный интерпретатор "Бейсик" имел пять команд для работы с магнитофоном: "LOAD", "SAVE", "STORE", "RECALL" (не путать с аналогичными и работающими командами ДОС) и "SHLOAD". Кроме того, что они потеряли свою актуальность при привязке интерпретатора к ДОС в ПЭВМ АГАТ-9, в отличии от APPLE IIE, но они еще и не работают, т.к. самих подпрограмм чтения/записи на магнитную ленту в системе нет. (Благодарите за это разработчиков). Итак, у меня было два пути: либо вставить недостающие подпрограммы (что вполне реально), либо наоборот - убрать подпрограммы этих операторов (при этом появляется возможность вставить другие полезные команды). Я выбрал второй путь, т.к. работа с магнитофоном при наличии ДОС в наше время вряд ли нужна. Убрав все лишнее, я внес в интерпретатор следующие команды:

1) PAL=n, n=[1/4] - включить палитру с номером n. Значение n должно быть числом или переменной. Если значение n нецелое, то оно будет округлено в меньшую сторону. Номера палитры соответствуют техническому описанию ПЭВМ АГАТ-9. Может использоваться как оператор и как директива.

2) PLAY X,Y - выдать на динамик звук частотой X, длительностью Y (однобайтовые числа или переменные). Команда может использоваться как оператор и как директива. Значения X и Y предствлены в условны единицах и соответствует описанию по книге Мымрина "Конструкция, применение, программирование и ремонт ПЭВМ АГАТ" (изд. "Машиностроение" 1990 г.). Краткая таблица значений тональностей и длительностей нот приводится ниже:

-------------------------------------------------
!  нота  ! малая октава ! 1 окт ! 2 окт ! 3 окт !
!--------!--------------!-------!-------!-------!
! до     !              !  192  !  96   !  48   !
! до#    !              !  184  !  92   !  45   !
! ре     !              !  171  !  85   !  42   !
! ре#    !              !  160  !  80   !  40   !
! ми     !              !  152  !  76   !  38   !
! фа     !              !  144  !  72   !  36   !
! фа#    !              !  136  !  68   !  34   !
! соль   !    255       !  128  !  64   !  32   !
! соль#  !    240       !  120  !  60   !  30   !
! ля     !    228       !  114  !  57   !  28   !
! ля#    !    214       !  108  !  54   !  26   !
! си     !    204       !  102  !  51   !  25   !
-------------------------------------------------

.сс

 Примеры длительностей:
------------------------
  1/2        255
  1/4        128
  1/8        64
  1/16       32
  1/32       16
  1/4+1/8    192
  1/8+1/16   96
  1/16+1/32  48
------------------------

3) RESTART - холодный старт интерпретатора "Бейсик". Производится поиск контроллера диска в направлении слот 1  6, и перезагрузка, если он найден. Если контроллер не найден, то интерпретатор производит переустановку векторов ¤3F0-¤3FF и переходит на ¤E000 (вызвав начальные установки интерпретатора). Командой удобно пользоваться для перезагрузки машины. Может являться оператором и директивой.

4) INPKEY K,VAR - считать символ с клавиатуры в переменную VAR, выдав при этом знак приглашения с кодом K (однобайтовая переменная). Параметр VAR должен соответствовать типу вводимой переменной. В принципе оператор аналогичен оператору "GET", но принципиально отличается следующим:

- считывает только с клавиатуры (GET может читать, например из файла)

- можно задать код приглашения (GET всегда выдает знак "?")

5) DR=n - включить драйвер с номером n из таблицы "Диспетчера" резидентных драйверов (см. соответствующее описание). Применяется для работы с Библиотекой драйверов операторов фирмы "Friends' Software", расширяющей возможности интерпретатора. Может быть использована, как оператор и как деректива. DR=0 очищает таблицу "Диспетчера" и отключает все драйвера, приводя систему в начальное состояние.

6) HELP - выдать COPYRIGHT, повествующий о разработчиках системы.

.шп72

3] НОВЫЕ ВОЗМОЖНОСТИ ПРОГРАММЫ "МОНИТОР"

.шп0

В связи с написанием новых команд к интерпретатору "Бейсик", в "Мониторе" "BASIC-'MASTER'95" появились следующие подпрограммы:

SETPAL - включить палитру (адрес подпрограммы ¤FF03).

Номер палитры должен быть в регистре A (от 1 до 4).

SOUND - выдать звук (адрес подпрограммы ¤FF16).

При этом в ячейках ¤3E - частота       | в условных
                   ¤3F - длительность  | единицах

Величины частоты и длительности соответствуют описанию в книге Мымрина указанной выше для команды "PLAY".

RESTART - холодный старт системы "Бейсик" (адрес подпрограммы ¤F866). (Описание работы см. выше.)

Кроме этого в "Монитор" интегрированы следующие подпрограммы, расширяющие возможности редактирования вводимой строки:

- DELCHAR - убрать символ под курсором (адрес подпрограммы ¤FCED), подпрограмма срабатывает в системе при нажатии клавиши "f1". Работает в системе "Монитор", "Бейсик" и "ДОС"

- INSERT BLANK - вставить пробел на место курсора, при этом остаток строки справа от курсора сдвигается на один символ вправо (адрес подпрограммы ¤FED5). Работает в системе аналогично предыдущей подпрограмме при нажатии клавиши "f2".

Эти подпрограммы были скопированы автором из программы "СИСТЕМНЫЙ МОНИТОР".

.ст BASIC 'MASTER'95_2

[an error occurred while processing this directive]