[an error occurred while processing this directive]

.шп24

.цв

Драйвер загрузки перемещаемых файлов RELDRIVE.BIN

(версия 14.07.95) для среды ДОС 3.3

.шп72

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

.лв

.шп8

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

.шп9

Драйвер RELDRIVE.BIN предназначен для загрузки в оперативную память ПК в среде ДОС 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

.шп9

Драйвер RELDRIVE.BIN является бинарным файлом, организованным с адреса ¤6000 и занимающим ¤2A0 байт оперативной памяти. Установить драйвер в ДОС можно зупустив с диска указанный файл командой ДОС "BRUN". При загрузке драйвера в ОП резидентная его часть переносится на постоянное место в ДОС (на адреса ¤E800-¤E8FF 9-го банка основного ОЗУ). Производится также пересчет контрольной суммы ДОС. После установки драйвера на рабочем экране появляется следующая заставка:

.гр

/--------------------------/
|  Load relocatable files  |
|         driver           |
| by Serkov S.V. 14.07.95  |
|--------------------------

.тт

Пocлe этoгo упpaвлeниe вoзвpaщaeтcя в вызывaющую пpoгpaмму, a oпepaциoннaя cиcтeмa нacтpoeнa нa пoддepжку R-фaйлoв. Peзидeнтнaя чacть дpaйвepa, oбecпeчивaющaя функции oбpaбoтки R-фaйлoв пocтoяннo пpиcутcтвуeт в ДOC и мoжeт быть пepeнeceнa вмecтe c нeй нa нoвый cиcтeмный диcк кoмaндoй "INIT filename".

.шп8

3. Опpeдeлeниe нaличия дpaйвepa в ДOC.

.шп9

Boзмoжнo в дaльнeйшeм пoявятcя пpиклaдныe пpoгpaммы, opиeнтиpoвaнныe нa paбoту c пepeмeщaeмыми фaйлaми (ужe гoтoвятcя дpaйвepa pacшиpeния вoзмoжнocтeй интepпpeтaтopa "Бeйcик" фиpмы Friends' software в этoм фopмaтe), пoэтoму нeлишним будeт пpивecти aлгopитм oпpeдeлeния нaличия дpaйвepa RELDRIVE в ДOC 3.3.

Для этого достаточно опросить ячейку ¤D697 второй половины 8-го банка ДОС (при стандартном подключении на 6-й сегмент). Наличие в указанной ячейке константы ¤4C указывает на присутствие RELDRIVE в ДОС (то есть можно считать, что данная ДОС поддерживает работу с R-файлами).

.шп8

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

.шп9

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

.сс

.шп8

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

.шп9

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

.шп8

6. От автора

.шп9

По всем вопросам, касающимся формата, структуры и алгоритма настройки R-файлов можно обращаться к автору. Эти вопросы также подробно освещены в книге "Система расширения возможностей интерпретатора "Бейсик А.9.1", где дополнительно приводится исходный текст модуля настройки перемещаемых файлов RELMODL2.ASM, чей алгоритм использован и в настоящем драйвере. Все права на использование указанного исходного текста принадлежат автору:

.шп72

17.07.95 г.Москва (095) 400-6865

Серков С.В.

[an error occurred while processing this directive]