
Сообщение от
NovaStorm
symbos - ужоснах ещё хуже исдоса внутри. Вы поглядите на её api!
А где вы видели нормальный АПИ?! Прочитайте ВЕСЬ msdn и подумайте как такое организовать на Ассемблере.
Между прочем - макросы никто не отменял, а с ними всё стройно и красиво получается.
Вот такая конструкция:
Код:
;Тех.задание: в первой попавшейся папке создать текстовый файл.
BEGIN
F_VOLTOPART 0,0,0 ;определяем нулевой раздел ZSD карты как том №0
F_MOUNT FS ;монтируем нулевой том(он будет юзать структуру FS)
;корневая папка становится текущей.
F_CHDRIVE 0 ;установим текущим нулевой том
F_OPENDIR DJ,PATH1 ;ОТКРОЕМ ДЛЯ ЧТЕНИЯ ТЕКУЩУЮ ПАПКУ
LD HL,FNO ;ДОБАВИМ НА СТЕК УКАЗАТЕЛЬ НА СТРУКТУРУ
PUSH HL
.L1 F_READDIR ;ЧИТАЕМ ЗАПИСЬ В ПАПКЕ DJ
LD A,(FNO.FNAME) ;проверим первый байт имени
OR A ;если он #0, то файлы/папки закончились
JR Z,.EXIT
LD A,(FNO.FATTRIB) ;проверим атрибут записи
AND #10 ;ЕСЛИ ЭТО НЕ ПАПКА то читаем следующую запись
JR Z,.L1
POP BC,BC ; снимем аргументы
;ЩА ЗАЙДЁМ В НАЙДЕННУЮ ПАПКУ
XOR A
LD (FNO.FNAME+11),A ; сделаем нолик в конце строки
F_CHDIR FNO.FNAME ; открываем папочку
F_OPEN FP,PATH2,FA_WRITE|FA_CREATE_ALWAYS ;создаём файл
F_WRITE STROKA,BW-STROKA,BW ;пишем в него
F_CLOSE ;закрываем файл
RET ;тех.задание выполнено
.EXIT
POP BC,BC
RET
На чистом асме смотрится просто ужасно.