[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]