Сообщение от
Alexandr Medvedev
Как бы не так. Назови хоть один байт. Всё там занято.
00...DF дескрипторы файлов
E0 байт 00 (признак окончания каталога)
E1...F4 служебные байты
F5...FF имя диска.
Ну и где свободные байты?
У меня в голове всегда была примерно такая информация. Цитирую книгу Юрия Поморцева "TR-DOS для профессионалов и любителей":
Системную информацию о дискете содержит 8-й сектор нулевой дорожки, точнее, конец этого сектора, начиная с 225-го байта.
Код:
ИМЯ
АДРЕС
НАЗНАЧЕНИЕ
BUFF_ADR
0
#00
#5025
Начало системного сектора, загруженного в динамически выделяемый буфер для дисковых операций.
DCU_SEC
223
224
#DF
Слово. Содержит число секторов на диске, расформатированном при помощи DCU
(вначале равно значению в #E5). На диске расформатированом TR-DOS равно 0.
FR_S_NEXT
225
#E1
#5E06
Байт. Номер следующего свободного сектора. Инициализируется нулем.
FR_T_NEXT
226
#E2
#5E07
Байт. Номер следующей свободной дорожки. Инициализируется единицей.
TYPE DISC
227
#E3
#5E08
Байт. Тип дискеты:
#16 - 80 track, 2 side
#17 - 40 track, 2 side
#18 - 80 track, 1 side
#19 - 40 track, 1 side
N_FILES
228
#E4
#5E09
Байт. Количество файлов на диске, включая удаленные. Инициализируется нулем.
N_FRE_SEC
229
230
#E5
#5E0A
Слово. Количество свободных секторов. Инициализируется в зависимости от типа диска:
#09F0 - 80 track, 2 side
#04F0 - 40 track, 2 side
#04F0 - 80 track, 1 side
#0270 - 40 track, 1 side
При форматировании программой DCU на максимальное число дорожек:
#0A70 - 84 track, 2 side
#0AB0 - 86 track, 2 side
MAIN_BYTE
231
#E7
#5E0C
Байт. Количество секторов на дорожке. Должно быть #10, иначе диск признается неформатированным.
ZERO
232
#E8
Два байта нулей.
BLANK9
234
#EA
9 байтов пробелов (код #20).
ZERO
243
#F3
1 нулевой байт.
N_DEL_FIL
244
#F4
#5E19
Байт. Количество удаленных файлов. Инициализируется нулем.
DISC_TITL
245
#F5
#5E1A
Поле из 8 байт. Имя диска после форматирования.
ZERO
253
#FD
3 байта нулей. Конец главного сектора.
Почти всё совпадает с тем, что ты пишешь, кроме вот этого:
00...DF дескрипторы файлов
Что такое дескрипторы файлов?
Сообщение от
Alexandr Medvedev
Нужна ПОЛНАЯ СОВМЕСТИМОСТЬ, не требующая изменеия кода существущих программ.
Абсолютно с тобой согласен! Но давай разберёмся с предлагаемым мной вариантом.
Для начала давай вспомним, а какими программами DirSys поддержана? Во-первых, это TRDN, а во-вторых, это плагин для FAR'а. Именно эти две программы поддерживают систему в полной мере, то есть могут копировать файлы, создавать каталоги и, самое главное, делать уплотнение диска. Остальной немногочисленный список программ позволяет только видеть каталоги либо, самое максимальное, записывать в существующие каталоги файлы. Ни одна программа, кроме двух перечисленных, не умеет уплотнять диск с учётом наличия DirSys, а между тем именно уплотнение является тем критичным моментом, который может порушить систему и может повлиять на совместимость. Соответственно, если оперативно доработать эти две программы, то совместимость не пострадает.
Второй момент, это ограничение на 64 каталога на диске. Но и здесь не вижу проблем! Во-первых, есть дескриптор системы с её номером. Если номер версии равен 1.00, то работаем со 128-ю каталогами и забываем про даты. Если же 1.10, то делаем ограничение на 64 каталога и работаем с датами. И опять же повторюсь, я убеждён, что если кто-то реально и использует систему каталогов, то скорее всего не найдётся ни одного диска на котором число каталогов превышало бы цифру 64. А по сему вопрос отпадает сам собой.
Сообщение от
Alexandr Medvedev
По поводу плагина для FAR не вижу смысла делать поддержку DirSys который не совместим со старым.
Старые версии и так нигде не испозуются, а тут ещё новые придумали. Путаница да и только.
Если уж что и делать то только СОВМЕСТИМОЕ со старыми версиями.
Я попытался донести свои мысли, хотелось бы выслушать контраргументы.
Сообщение от
Alexandr Medvedev
Идея вобщем-то неплохая, но вот совместимость терять нельзя.
Да идея просто отличная! Даты - это последнее чего не хватало файловой системе TR-DOS для полноценного перегона из iS-DOS или MS-DOS. Трехсимвольные расширения есть, каталоги есть, дело за датами! Но я, конечно же, не беру во внимание ограничение на размер файлов в 255 секторов и другие ограничения (128 файлов, только непрерывные файлы и др.)
Сообщение от
Alexandr Medvedev
Чтобы не терять совместимость базу с датами можно хранить например в отдельном файле с фиксированным именем. В таком случае совместимость сохраняется. Как и прежде такая конструкция будет бояться только команды TR DOS MOVE.
Не нравится мне идея с отдельным файлом под это дело. Уже неоднократно предлагалось и саму DirSys посадить в отдельный файл, но я лично против такого подхода. Как ты сам сказал, системой практически никто не пользуется. Лишний файл явно будет мешаться, его будут удалять либо наоборот переписывать вместе с остальными файлами, там самым вводя, поддерживающий DirSys софт, в заблуждение. А когда система целиком и полностью живёт на нулевой дорожке, то про её существование никто даже и не догадывается. Если человек не пользуется системой и "грохнет" её по незнанию, то для этого человека не произойдёт ничего страшного. Но, скорее всего, система будет тихонько себе жить на нулевом треке. Главное - не уплотнять диск!
В общем, надо делать. Тем более, чего уж греха таить, подавляющее большинство пользователей используют эмуляторы, а соответственно имеют часы реального времени. Я попробую доработать под это дело TRDN и проверить всё на практике.