Итак, подытожим:
В целом TRDIR подходит, но необходимо произвести изменения с целью повысить устойчивость системы к нарушению структуры каталогов "старыми" утилитами.
Возможные изменения каталога утилитами без поддержки TRDIR:
1. Переименование файла
2. Удаление файла/директории
3. Восстановление удаленного файла
4. Копирование (создание нового) файла
5. И наконец он, монстр из ваших снов MOVE!
6. Запись в служебный сектор (в таблицу ссылок)
(1)-(4) ничего страшного не сделают, но (2) и (3) надо отслеживать и вносить изменения в таблицу удаленных файлов (key-jee). Если удален, а потом создан последний файл, это можно определить (сохраняем общее число файлов и первый свободный трэк/сектор (или число свободных секторов)) и файл поместить в кореновой каталог.
(5) можно задетектить по таблице удаленных файлов и сохраненному общему числу файлов (вместе с директориями) на диске, исправить сложно, особенно если не создавать доп. проверочных секторов (а места под них считаем что нет). Аналогично отслеживается (6).
Если произошло (5) или (6): отключить поддержку TRDIR, в комплекте с коммандерами распространять интерактивную утилиту восстановления директорий.
Я за все это время ничего нового не придумал.
Итоги:
1. 7-ой бит в таблице ссылок обозначает удален файл (bit=1) или нет (bit=0). В связи с тем что корневая директория обозначается ссылкой #FF, вводится ограничение на общее число директорий - 127 (а не 128 как ранее).
2. Убрать CRC.
3. Добавить общее число файлов и первый свободный трэк/сектор (или число свободных секторов).