[an error occurred while processing this directive]
( ПРОДОЛЖЕНИЕ )
3.2.1.0.3 Подробно о слотовой области
Слотовая область- это область где хранятся параметры
слоты. Эта область находится по адресам 400- 9FF
т.е. для слоты 1 это адреса 400- 4FF
для слоты 2 это адреса 500- 5FF и т.д.
Рассмотрим подробно структуру области слоты
ГЛОБАЛЬНАЯ ЧАСТЬ( ЗАГОЛОВОК ВСЕЙ СЛОТЫ )
Смещение Назначение
от нач. адр.
0 Код устройства на слоте
1 Номер слоты* 10h
2,3 Адрес обработчика данной слоты
ЛОКАЛЬНАЯ ЧАСТЬ( ДЛЯ КАЖДОГО ПОДУСТРОЙСТВА )
4( 0 ) Код логического устройства
5( 1 ) Смещение до следующего устройства
в пределах этой страницы( для организации
цепочки подустройств )
6( 2 ) Занятость устройства( ID захватчика )
СВОБОДНАЯ ЧАСТЬ( НА УСМОТРЕНИЕ РАЗРАБОТЧИКА )
!
!
U
-------------- ** Для TEAC свободная часть имеет вид:
7( 3 ) Команда выбора привода
8,9( 4,5 ) Физический адрес обращения
10( 6 ) Номер дорожки на устройстве
11( 7 ) Число шагов до нужной дорожки
3.2.1.1 Включить устройство
3.2.1.1.1 Общие слова
Данная функция введена в основе для устройств, ра-
бота которых не зависит от самой машины( например:
дисковод, сеть, принтер и т.д. ). В стандартном
драйвере дисковода TEAC, который входит в комплект
системной библиотеки SYSTEM.FRL эта функция просто
включает дисковод.
3.2.1.2 Выключить устройство
3.2.1.2.1 Общие слова
Данная функция введена по тем же самым причинам, что
и выше. В системной библиотеке TEAC эта функция
выключает дисковод.
3.2.1.3* Считать блок данных с устройства
3.2.1.3.1 Общие слова
Мне кажется, что нет необходимости объяснять зачем
введена эта функция( как впрочем и все, что будут
ниже ). Необходимо только заметить, что для всех
функций, описанных ниже подразумевается, что обмен
с устройством происходит блоками по 256 байт, если
не оговорено обратное.
3.2.1.3.2 Входные параметры
MemAdr TSAdr , где MemAdr- адрес памяти куда будет
помещен блок данных.
TSAdr - адрес памяти, где нахо-
дятся адреса для внеш-
него устройства, оконча-
нием поля адресов- нуле-
вое слово.
( например: для TEAC
это TSList ).
3.2.1.4* Записать блок данных на устройство
3.2.1.4.1 Общие слова
См. 3.2.1.3.1
3.2.1.4.2 Входные параметры
Идентично как при чтении.
ПРИМЕЧАНИЕ: Т.к. есть различие в структуре TSAdr
для различных устройств( например:
для TEAC это TSList, а для ПАМЯТИ,
выступающей как ВИРТУАЛЬНЫЙ ДИСК это
чисто адреса памяти ), то простому пользова
телю не пользоваться ни 3, ни 4 фукцией
( для ВАС есть 5 и 6 функции, описанные ни-
же ).
3.2.1.5* Блок работы с файловой структурой на чтение
Данный блок является многофункциональной
функцией, т.е. помимо рабочих параметров для
этой функции на стеке должен лежать номер подфункции.
3.2.1.5.0 Функция 0- Найти файл на устройстве
3.2.1.5.0.1 Общие слова
Данная функция осуществляет поиск атрибутов файла
по его имени. В качестве имени НЕ может быть ис-
пользован шаблон поиска.
3.2.1.5.0.2 Входные параметры
FName- адрес имени файла для поиска.
3.2.1.5.0.3 Выходные параметры
TSAdr- адрес списка, во внутреннем представлении
устройства, по которому файл может быть
считан функцией 3.
FAdr- адрес в памяти, где хранятся атрибуты
файла во внутреннем представлении устрой-
ства( для TEAC это просто адрес на ПОЛЕ
ФАЙЛА ).
Flag- Если на стеке по выходу из 5 функции нахо-
дится FALSE, то файл не был найден на уст-
ройстве.
3.2.1.5.1 Функция 1- Вывести в память каталог
по шаблону
3.2.1.5.1.1 Общие слова
Данная функция ищет на диске файлы, удовлетворя-
ющие шаблону и помещает в память структуру:
0 - NameLen Длина имени
1..NameLen+1- FName Само имя файла
NameLen+2 - <ENTER> Символ <ENTER>
NameLen+3 - FType Тип файла( стандартный )
3.2.1.5.1.2 Входные параметры
PatAdr- Адрес шаблона в памяти
MemAdr- Адрес памяти, куда "скинуть" каталог
( каталог всегда заканчивается, когда в
поле NameLen находится ноль )
3.2.1.6* Блок работы с файловой структурой на запись
см. 3.2.1.5 ( То же, что и файловое чтение )
3.2.1.6.0 Функция 0- Стереть файл с устройства
3.2.1.6.0.1 Общие слова
Данная функция удаляет с устройства файл, адрес
имени которого на стеке( в качестве имени файла
не может выступать шаблон ). Если файла на
устройстве нет, то сообщения об ошибке выдано не
будет.
3.2.1.6.0.2 Входные параметры
FName- адрес имени файла в памяти.
3.2.1.6.1 Функция 1- Создать файл на устройстве
3.2.1.6.1.1 Общие слова
Данная функция создает пустой файл на устройстве,
по имени на стеке( НЕ шаблон ). Если файл с таким
именем уже есть на устройстве, то он НЕ будет ни
удален, ни переименован( просто на устройстве бу-
дут два файла с одинаковыми именами ). Если на
устройстве нет памяти или запись запрещена, то
будет выполнен уход через ERROR.
3.2.1.6.1.2 Входные параметры
FType- тип создаваемого файла.
FName- адрес имени создаваемого файла.
FLen - длина создаваемого файла.
3.2.1.6.1.3 Выходные параметры
TSAdr- адрес в памяти на список адресов для
функции записи 4.
3.2.1.6.2 Функция 2- Переименовать файл на устройстве
3.2.1.6.2.1 Общие слова
Данная функция переименовывает файл лишь в том
случае, если не было ошибок чтения, записи,
нахождения файла( имя файла НЕ шаблон ).
В случае какой- либо бяки на устройстве( см. выше)
уход через ERROR.
3.2.1.6.2.2 Входные параметры
FDestName- адрес в памяти имени исходного файла
FSrcName - адрес в памяти имени конечного файла
ПРИМЕЧАНИЕ: Данная функция может НЕ входить в
комплект поставки библиотеки SYSTEM
След. файл->bffeatr3.doc
[an error occurred while processing this directive]