Легенда: [ ] сделать [x] сделано [!] переделано и не совпадает с написанным По полным директориям: ;[ ] F_FIRST в .INIT_VARS запоминать диск и кластеры директории для восстановления при вызове F_NEXT ;[ ] F_NEXT если в кэш директорий не та, что была при вызове F_FIRST, то запомнить что есть, востановить, что было, ; отработать и загрузить обратно, что было на входе в функцию. А нефиг во время F_NEXT лазать по директориям. ;[!] LOADDIR после READ выходить с CF, если прочитано 0 ;[x] FINDDIR - пока работает только с тем, что было загружено в кэш и мало что находит, если страниц больше 1. ;[ ] Переделать WRITE_DIR_HANDLE для работы с любой записью в каталоге (сейчас ищет первую пустую, чтоб записать в неё) ;[ ] Все изменения в записях каталога делать в буфере CORE_BUFFERS.HANDBUF и сохранять через WRITE_DIR_HANDLE ;[x] Переменная DirBlock показывающая какой блок директории в кэш. ;[ ] Переменная DIR_BLOCK_CHANGED показывающая какой из кусков в блоке кэш изменился до сохранения. Как в FAT. ;[ ] Процедуры меняющие данные в кэш директории должны менять DIR_BLOCK_CHANGED. ;[x] Передавать в LOADDIR нужный блок для загрузки в кэш (или номер нужной записи каталога). ;[ ] Передавать в SAVEDIR нужный блок для записи из кэш (или номер нужной записи каталога). ;[ ] LOAD_SAVE_DIR_PREPARE походу, переделать к херам вместе с LOADDIR и SAVEDIR Перелопатить ;[x] FINDDIR ;[x] LOAD_SAVE_DIR_PREPARE ;[x] LOADDIR ;[x] DELETE_REC_FAT ;[x] SAVEDIR ;[ ] RENAME ;[ ] CLOSE_FN ;[ ] DEL_FN ;[ ] RMDIR ;[ ] OPENDIR ;[ ] DELETE_LFN_RECORDS ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Current dir для каждого диска: ;[ ] Сохранять путь как [длина массива][RECORD_INDEX,DIR_CLUSTER][RECORD_INDEX,DIR_CLUSTER]..[RECORD_INDEX,DIR_CLUSTER]