Системное программное обеспечение персональных ЭВМ


Пример 12



Пример 12

struct FIND { byte reserved[21]; byte attr; /* атрибут */ word ftime; /* время */ word fdate; /* дата */ dword fsize; /* размер */ char fname[13]; /* имя.расширение, ASCIIZ-строка */ };

Функция 0x4E ищет первое подходящее имя (параметры передаются только ей), все последующие обращения к 0x4F (без параметров) выдают следующие подходящие имена;

0x5C- блокировать (AL=0) / разблокировать (AL=1) доступ к области, начинающейся со смещения (двойное слово в CX:DX) размером (двойное слово в SI:DI) файла, дескриптор которого задан в BX;

0x47- получить текущий каталог на диске, заданном в DL, DS:SI указывают на буфер, в котором формируется ASCIIZ-строка текущего пути;

0x3b- изменить текущий каталог, DS:DX указывают на строку, содержащую имя подкаталога;

0x39- создать новый подкаталог, DS:DX указывают на строку, содержащую имя подкаталога;

0x3a- удалить подкаталог, DS:DX указывают на строку, содержащую имя подкаталога;

10.4.4. Функции работы с дисками

Следующие функции оперируют с логическими дисками.

0x1B- информация о FAT текущего диска, на выходе DS:BX указывают на первый байт FAT, DX - число кластеров, AL - число секторов в кластере, CX - размер сектора;
0x1C- то же, но в DL задается логический номер требуемого диска;
0x32- получить информацию о диске (диск задается в DL), на выходе DS:BX содержат адрес Блока Параметров Драйвера (DPB), который будет рассмотрен позже;
0x36- получить информацию о дисковом пространстве (DL - номер диска), на выходе: AX - число секторов в кластере, BX - число доступных кластеров, CX - размер сектора, DX - общее число кластеров;
0x19- получить номер текущего диска (в регистре AL);
0x0E- задать номер текущего диска (в регистре DL).

10.4.5. Программные иллюстрации

Вместо того, чтобы приводить маленькие примеры, каждый из которых иллюстрирует применение какой-то одной функции, приведем "программное изделие" солидного размера, которое включает в себя почти все описанные нами функции метода дескрипторов - как ввода-вывода, так и работы с файлами и каталогами.


- Начало -  - Назад -  - Вперед -