[an error occurred while processing this directive]

.цв

.шп+8

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

6.1 Драйвер управления виртуальной дисковой памятью VIRT128
    интегрированный в ДОС 3.3 среды "BASIC-'MASTER'95"

.шп-8

.ов

.шп+8

1. Назначение

.шп-8

Драйвер управления виртуальной дисковой памятью VIRT128 (версия 28.04.95) предназначен для эмуляции оперативной памяти модулей дополнительного ОЗУ (при наличии их в ПЭВМ) в качестве дискового устройства хранения информации. При этом память указанных областей будет организована по типу дисковой памяти. Доступ к виртуальному дисковому пространству осуществляется с помощью специальной программы виртуальной RWTS (Read/Write Trek/Sector), входящей в состав драйвера через общую RWTS среды ДОС на уровне сэмулированных треков и секторов. Таким образом ДОС может обращаться к виртуальному диску на всех уровнях своей организации (RWTS, менеджера файловой системы, и уровне команд), выполняя свои обычные функции.

Удобство работы пользователя с виртуальным диском очевидно. При использовании в системе ДОС драйвера управления виртуальной дисковой памятью (минимальным требованием к его использованию является наличие одного модуля ДОП ОЗУ (ячейка ФРГ00170) в составе ПЭВМ) хранение временой информации и ее обмен становится более быстрым и удобным. Например, сразу после загрузки системы ДОС 3.3 и интерпретатора "Бейсик" весьма удобно переписать на виртуальный диск все программы, с которыми в дальнейшем предполагается работать. Последующий обмен информацией с виртуальным диском будет происходить в среднем в 10 раз быстрее чем с обычным НГМД, что особенно удобно использовать при работе с оверлейными программами или базами данных.

.шп+8

2. Положение драйвера в системе.

.шп-8

Драйвер VIRT128 в среде "BASIC-'MASTER'95" интегрирован в систему ДОС 3.3 на адреса ¤DF00-¤DFFF первой половины 8-го банка ДОС и ¤E700-¤E7FF 9-го банка. Кроме того на адреса ¤6EC-¤6FF установлена подпрограмма вызова резидентной части драйвера при старте ДОС. Некоторые изменения (необходимые для работы драйвера) внесены также в служебные подпрограммы ДОС и ее RWTS. При загрузке с системного диска среды "BASIC-'MASTER'95" осуществляется процесс форматирования всех виртуальных дисков (их количество равно количеству модулей ДОП ОЗУ в составе конфигурации ПЭВМ). При этом происходит обнуление всей памяти ДОП ОЗУ, формирование каталога диска и VTOC (таблицы оглавления каталога, VOLUME TABLE OF CONTENTS).

* Примечание: Процесс форматирования может и не выполняться драйвером. Это происходит в том случае, если ранее было произведено форматирование дисков. Такая организация процесса активации драйвера дает возможность сохранения ранее записаннной на виртуальный диск информации и неуничтожения ее в процессе рестарта системы ДОС.

.шп+8

3. Работа с виртуальным диском.

.шп-8

Организация работы с виртуальными дисками, открытыми с помощью драйвера управления виртуальной дисковой памятью, с точки зрения пользователя, ничем не отличается от работы с обычным магнитным диском в НГМД. Доступ к любому виртуальному диску на уровне команд ДОС осуществляется с помощью указания в команде номера разъема S ПЭВМ, в который установлен модуль ДОП ОЗУ. При этом, указание номера привода D и номера тома V является не обязательным (они не используются RWTS виртуального диска). При форматировании виртуальному диску всегда присваивается номер тома V=254 (¤FE).

.сс

.шп+8

3.1.Особенности работы команды INIT.

.шп-8

Команда DOS 3.3 INIT filename по отношению к виртуальному диску не производит записи на него Системы DOS и интерпретатора "Бейсик", а аналогична по своим действиям команде INIT без указания имени файла (производит разметку виртуального диска с обнулением всех секторов, создание каталога и VTOC).

Виртуальный диск может быть размечен (отформатирован) на различную емкость (собственно, диск всегда размечается на полную емкость: 32 трека * 16 секторов = 512 секторов (128 кб), однако во VTOC некоторые треки отмечаются занятыми. С этой точки зрения, возможно 4 типа форматирования виртуального диска:

  1] Форматирование, производимое при старте DOS 3.3
     с системного диска

При этом:

А. Форматируются все виртуальные диски сразу (их кол-во равно кол-ву модулей ДОП ОЗУ в составе ПЭВМ).

Б. Емкость свободной области каждого диска составляет 31 трек * 16 секторов = 496 секторов (17 трек (¤11) занят под каталог).

  2] Форматирование командой DOS 3.3 "INIT"
     (без указания имени файла).

При этом емкость свободной памяти формируемого диска составляет 30 треков * 16 секторов - 1 сектор = 479 секторов (занятыми во VTOC отмечаются трек каталога (17-й трек), трек 0 и сектор 15 31-го трека (такая карта свободной области диска формируется менеджером файлов системы DOS).

  3] Форматирование командой DOS 3.3 "INIT filename".

3А]. filename указано без параметров адреса и длины файла
     (формируется файл типа "A" - "Бейсик"-файл).

При таком форматировании, емкость свободной памяти составляет 23 трека * 16 секторов - 1 сектор = 367 секторов (занятыми отмечаются трек 17, треки 0-6 и сектор 15 трека 31).

После форматирования на виртуальный диск также записывается имевшаяся в памяти Бейсик-программа. Данные о свободной области указаны без учета дискового пространства, отводящегося на хранение файла.

3Б]. filename указано с перечислением параметров стартового
     адреса (A) и длины (L)
     (в этом случае после форматирования формируется файл
     типа "B" - бинарный).

Емкость свободной области в этом случае составит 27 треков * 16 секторов - 1 сектор = 431 сектор; резервируется трек 17, треки 0-3 и 15 сектор трека 31. Записывается бинарный файл с указанным именем (filename) (емкость свободной области указана без учета размера "B"-файла).

В случае форматирования по типу 3, система DOS (в случае 3Б) или система DOS + интерпретатор "Бейсик" (в случае 3A) на виртуальный диск не записываются (однако под них формируются свободные области (указаны выше). Программисты их могут использовать в качестве хранения другой информации, доступ к которой должны организовывать особые программы. В общем случае можно использовать любую свободную область виртуального диска в нестандартных целях, используя доступ к ним самостоятельно или через RWTS (однако, не забудьте отметить используемые области занятыми во VTOC во избежание конфликтных ситуаций). При этом на виртуальном диске может храниться файловая или секторная информация, сохраняемая там с помощью стандартных доступов (через DOS, менеджер файлов и RWTS) и другая информация, сохраняемая программистом, организующим доступ к ДОП ОЗУ с помощью собственных программ. При соблюдении указанных правил, различная информация не будет смешиваться и накладываться друг на друга.

.сс

.шп+8

3.2.Обращение к виртуальному диску на уровне RWTS и некоторые
    полезные алгоритмы (для программистов).

.шп-8

Как известно, обращение к RWTS системы DOS 3.3 производится путем обращения к двум подпрограммам:

JSR ¤3E3 - установить адрес управляющей таблицы RWTS
JSR ¤3D9 - обращение к RWTS

Перед этим необходимо заполнить список параметров управляющей таблицы RWTS IOB, располагающейся по адресу ¤557 (ее формат для работы с НГМД ЕС5088 и ЕС 5323 подробно описан в технической документации ПЭВМ "АГАТ-9", однако автор настоящего описания считает нелишним его напомнить (см. ниже)). Обращение к виртуальному диску на уровне RWTS осуществляется точно также. Параметры IOB имеют такое же значение. Предлагаемая таблица RWTS (знаками "*" отмечены параметры, используемые VRWTS (RWTS виртуального диска) аналогична таблице, представленной в техническом описании, но также содержит формат обращения к виртуальным дискам. Остальные параметры при обращении к нему можно не указывать (однако они важны для обращения к RWTS других накопителей информации). В таблице также указаны диапазоны значений, разрешенных для использования при обращении к виртуальному диску и обычным НГМД. При несоответствии в диапазонах, RWTS возвращает код ошибочного завершения обмена (см. таблицу).

.сс

.шп+8

Управляющая таблица общей RWTS ДОС 3.3.

(в ДОС располагается по адресу ¤557)

.шп-8

.гр

/----------/------------------------------------------------/
|  БАЙТ    |             СОДЕРЖИМОЕ                         |
|----------+------------------------------------------------/
|          |                                                |
|   1      |  тип таблицы = ¤01                             |
|          |                                                |
|*  2      |  S*¤10 (номер разъема НГМД, умноженный на ¤10) |
|          |                                                |
|   3      |  D (номер привода НГМД)                        |
|          |                                                |
|   4      |  V (номер тома НГМД, ¤00-игнорировать)         |
|          |                                                |
|*  5      |  номер трека: ¤00-¤22 для НГМД ЕС5088          |
|          |               ¤00-¤9F для НГМД FD55.F          |
|          |               ¤00-¤7F для НГМД FD55.E и TM65-21|
|          |               ¤00-¤3F для НГМД ROBOTRON        |
|          |*              ¤00-¤1F для виртуального диска   |
|          |                                                |
|*  6      |  номер сектора: ¤00-¤14 для НГМД FD55, ROBOTRON|
|          |                 ¤00-¤0F для НГМД ЕС5088        |
|          |*                ¤00-¤0F для виртуального диска |
|          |                                                |
|*  7      |  действие: 0-немедленное, не 0-отложенное      |
|          |                                                |
|   8      |  не используется                               |
|          |                                                |
|* 9-10    |  адрес буфера для чтения/записи                |
|          |                                                |
| 11-12    |  не используются                               |
|          |                                                |
|* 13      |  код работы:                                   |
|          |  0-включить НГМД, подвести головку             |
|          |* 1-чтение 256 байт в буфер                     |
|          |* 2-запись 256 байт из буфера                   |
|          |* 4-разметка ГМД                                |
|          |                                                |
|* 14      |  код завершения обмена:                        |
|          |* ¤00-нормальное завершение                     |
|          |  ¤10-ГМД защищен от записи                     |
|          |  ¤20-не тот номер тома                         |
|          |* ¤40-сбой в чтении/записи                      |
|          |* ¤80-нет устройства                            |
|          |                                                |
|  15      |  V (номер тома ГМД, предыдущее обращение)      |
|          |                                                |
|* 16      |  S*¤10 (номер разъема предыдущее обращение)    |
|          |                                                |
|  17      |  D (номер привода НГМД, предыдущее обращение)  |
|          |                                                |
|----------+------------------------------------------------

.тт

* Примечание: знаками "*" отмечены параметры IOB, используемые, возвращаемые или имеющие значение для VRWTS. При форматировании виртуального диска через RWTS, каталог не создается (фактически происходит очистка (обнуление) всей памяти ДОП ОЗУ).

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

  Определение разъемов, на которых открыты виртуальные диски
  (определение разъемов ДОП ОЗУ).

Для этого достаточно опросить ячейки ¤4F5-¤4FA. Чтение в одной из указанных ячеек константы ¤10, указывает на наличие в разъеме N=A-¤4F4 модуля ДОП ОЗУ, где A - номер ячейки в диапазоне ¤4F5-¤4FA. Можете быть уверены, что драйвер найдет все модули ДОП ОЗУ и откроет на них виртуальные диски.

Обращение к виртуальному диску на уровне менеджера файлов происходит обычным образом (так, как при работе с НГМД) (см. в соответствующих описаниях по ДОС).

.сс

.шп+8

5. Рекомендации по эксплуатации интегрированного драйвера.

.шп-8

Надежность работы драйвера гарантируется фирмой "Friends' Software" и автором при соблюдении правил его использования и корректном обращении к виртуальным дискам.

Информация, записанная на виртуальный диск сохраняется на нем при загрузке любых систем и программ не использующих память ДОП ОЗУ. При последующем перезапуске среды DOS 3.3 можно снова получить доступ к записанной ранее информации (т.к. виртуальные диски в этом случае не форматируются; см. примечание к пунту 2). Однако, если Вы использовали системы, пользующиеся памятью модулей ДОП ОЗУ, то записанная на виртуальные диски информация может быть частично, или полностью испорчена (драйвер VIRT128 производит их полное форматирование при загрузке только в том случае, если разрушен VTOC каталога). Это неизбежно приведет к ошибкам в содержащейся на виртуальных дисках файловой информации и возможно, нарушению структуры диска и его каталогов. Во избежание указанных осложнений для уверенности в целостности дисков, рекомендуется их форматирование командой "INIT" DOS 3.3 (прибегайте к этому действию всякий раз при неуверенности в полной сохранности информации на виртуальных дисках).

Если Вы не производили загрузку других сред и операционных систем (то есть постоянно работали в среде DOS 3.3), гарантируется полная сохранность информации на открытых виртуальных дисках (естественно, в том случае, если за период Вашей работы не было отключения питания ПЭВМ).

.шп8

.цв

6.2 Драйвер поддержки перемещаемых файлов RELDRIVE
    интегрированный в ДОС 3.3 среды "BASIC-'MASTER'95".

.лв

.шп8

1. Назначение

.ов

.шп0

Драйвер RELDRIVE предназначен для загрузки в оперативную память ПК в среде ДОС 3.3 перемещаемых файлов (тип "R"). Перемещаемым называется файл, содержащий двоичный код исполняемой программы (как обычный бинарный файл типа "B") и специальную таблицу перемещения, содержащую в особом формате ссылки на абсолютные адреса внутри кодовой части. Наличие такой таблицы перемещения и особой программы загрузки файла устраняет связь файла с абсолютными адресами оперативной памяти и дает возможность располагать файл на любых физических адресах не зависимо от логического адреса организации файла. (Создание R-файлов производится Ассемблером ДОК при указании в теле исходного текста программы псевдокоманды "REL".)

Как известно, ДОС 3.3 ИКП-1 (или другого пакета) не обладает возможностями поддержки работы с R-файлами. (Такой возможностью обладала DOS TOOL KIT фирмы APPLE COMPUTER INC., созданная несколько позднее ДОС 3.3.) Настоящий драйвер RELDRIVE вносит расширение в ДОС 3.3, осуществляющее поддержку перемещаемых файлов.

.шп8

2. Положение драйвера в ДОС 3.3

.шп0

Драйвер RELDRIVE располагается в ДОС 3.3 на адреса ¤E800-¤E8FF 9-го банка основного ОЗУ. В ДОС внесены также заплаты необходимые для работы драйвера.

.шп8

3. Организация поддержки перемещаемых файлов.

.шп0

Поддержка работы с перемещаемыми файлами (R-файлами) реализуется драйвером RELDRIVE путем его подключения к командам "BRUN" и "BLOAD" среды ДОС 3.3. Команда ДОС "BLOAD" с помощью RELDRIVE осуществляет загрузку R-файла в оперативную память. Если адрес загрузки в команде не указан, то загрузка файла производится с его логического адреса (хранится в самом файле). При указании в теле команды произвольного стартового адреса, загружаемый файл располагается в памяти ПЭВМ с указанного адреса. Одновременно производится "настройка" адресов команд R-файла на абсолютные адреса ОП с учетом нового начального адреса. Команда ДОС "BRUN" в отношении R-файлов действует аналогично команде "BLOAD", но осуществляет также запуск файла, передавая управление на его начальный адрес.

.сс

.шп8

4. Примечания (для программистов).

.шп0

К сожалению, из-за ошибки, допущенной разработчиками системы "Ассемблер ДОК" нельзя использовать в исходном тексте создаваемого R-файла псевдокоманду Ассемблера "DDB". (Иначе настройка R-файлов будет производиться неверно!) Однако драйвер RELDRIVE способен различать атрибут метки для адреса, задаваемого псевдокомандой DDB в таблице перемещения R-файла (равен ¤21), то есть в нем зарезервирована возможность его правильного пересчета. В системе "FAST ASSEMBLER" Громова С., работающего в среде BEST TOOL KIT 5.0 устранена указанная ошибка; поэтому R-файлы, создаваемые в нем не имеют вышеописанного ограничения.

.ст BASIC 'MASTER'95_4

[an error occurred while processing this directive]