Спасибо за ссылку:
http://www.seasip.info/Cpm/format22.html
Из неё наконец узнал, что поле S2 (офсет 14) это старший байт размера экстента RC (причём он используется только при блоках размером от 4К, а для блоков в 2К всегда 0).
Но на самом деле это неправда, - это не старший байт, точнее это старший байт по модулю 128, - результат от деления числа лог.секторов описанных в этом экстенте на 128. Зная это, легко посчитать размер файла. Просуммировав числа S2*128 + RC рассчитанные для каждого экстента получим размер файла в секторах. Впрочем и использованный мной ранее вариант тоже даёт верный результат при больших блоках, но сложнее для программирования..
В 80-е годы этой информации не было. В фирменном переводе мануала по CP/M (из Всесоюзного Центра Переводов) про S1 и S2 написано следующее: "Зарезервировано для внутреннего использования в системе".
Впрочем, при блоках с размером не более 2К это не вызывало проблем. Но теперь мне хоть стало ясно каким образом файл может иметь размер более, чем 512 кб.




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