Assembler - язык неограниченных возможностей


Управление файловой системой


Начиная с MS-DOS 2.0, файловая система организована в виде каталогов, которые могут содержать файлы и другие каталоги. Функции поиска файлов действуют только в пределах текущего каталога, а функции создания и удаления файлов не действуют на каталоги, несмотря на то, что на самом низком уровне каталог — тот же файл, в атрибуте которого бит 4 установлен в 1 и который содержит список имен вложенных файлов, их атрибутов и физических адресов на диске.


Функция DOS 39h — Создать каталог

Ввод: АН = 39h
DS:DX = адрес ASCIZ-строки с путем, в котором все каталоги, кроме последнего, существуют. Для версии DOS 3.3 и более ранних длина всей строки не должна превышать 64 байта
Вывод: CF = 0, если каталог создан
CF = 1 и АХ = 3, если путь не найден, 5 — если доступ запрещен


Функция LFN 39h — Создать каталог с длинным именем

Ввод: АХ = 7139h
DS:DX = адрес ASCIZ-строки с путем
Вывод: CF = 0, если каталог создан
CF = 1 и АХ = код ошибки (7100h, если функция не поддерживается)


Функция DOS 3Ah — Удалить каталог

Ввод: АН = 3Ah
DS:DX = адрес ASCIZ-строки с путем, последний каталог в котором будет удален (только если он пустой, не является текущим, не занят командой SUBST)
Вывод: CF = 0, если каталог удален
CF = 1 и АХ = 3, если путь не найден, 5 — если доступ запрещен, 10h — если удаляемый каталог — текущий


Функция LFN 3Ah — Удалить каталог с длинным именем

Ввод: АХ = 713Ah
DS:DX = адрес строки с путем
Вывод: CF = 0, если каталог удален, иначе CF = 1 и АХ = код ошибки


Функция DOS 47h — Определить текущий каталог

Ввод: АН = 47h
DL = номер диска (00h — текущий, 01h — А: и т.д.)
DS:SI = 64-байтный буфер для текущего пути (ASCIZ-строка без имени диска, первого и последнего символа «\»)
Вывод: CF = 0 и АХ = 0100h, если операция выполнена
CF = 1 и АХ = 0Fh, если указан несуществующий диск
<


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