Отвечаю. В общем, описание +3 предполагает, что человек знаком с ФС CP/M. Т.е. её особенности там не описываются, поэтому стоит поискать описание форматов диска в описаниях CP/M. Правда нормального, понятного тому кто читает первый раз про неё я не нашёл. Поэтому попробую сейчас объяснить сам:
>Еще не могу понять с размером кластера (блока). Эта ФС хранит файлы более 16 кластеров в длину в виде нескольких файлов. Вроде бы размер кластера задается в заголовке диска и может быть произвольным.
Размер кластера может быть 2 в степени n записей (по 128 байт). Где 0<n<7 (вроде бы, под рукой описания нет, а точно я не помню пишу по памяти). При n=4 получаем размер блока (кластер в CP/M называется блок) получается 2048 байт (16 записей по 128). Вся поверхность диска разбивается на блоки. Если получается что количество блоков более 255, то номера блоков в описателе файла задаются 16-и битными значениями, иначе - 8-и битными. Описатель файла содержит 32 байта.
Смещение, длина Описание
+0 1 Код области пользователя 0-15
+1 8 Имя файла
+9 3 Расширение
+12 1 Номер экстента
+15 1 Кол-во записей (1-7F)в последнем экстенте или 80h если экстент заполнен
+16 16 Область где хранятся номер блоков занимаемых файлом
Для примера примем, что размер блока равен 2К, то получается, что один описатель файла будет хранить один экстент. Если файл занимает скажем 70К, то всего получится 4 полных экстента и 1 неполный. Номер экстента указывается в 12-м байте описателя.
Далее, если предположить, что размер блока равен уже 4К, что произойдёт? Один описатель файла будет содержать уже 2 экстента. Первый экстент будет в первых 4-х словах, второй в следующих. И кол-во записей в последнем экстенте указывает именно на него.






Ответить с цитированием