на размер наплевать.. новые файлы будут попадать в некий каталог по умолчанию
забыл сказать, важно чтобы порядок копирования файлов на диск сохранялся
Вид для печати
Ну может ты и прав, в принципе dir всё время один и тот же ;)
hullo
у мя просьба: напишите плз псевдокодом алгоритм расчета дирсисовской crc
boo_boo, я брал эту процедуру в готовм виде из ZX-Ревю. Так что предложить что-то другое не могу. Но точно знаю, что elf/2 разобрлася с процедурой и перевёл её на ПЦ для поддержки в своём плагине для FAR. Может быть он поделится своим наработками? :)
вот как-то так :)Код:WORD crc(BYTE* ptr, WORD len)
{
WORD crc = 0;
for(; len; len--)
{
BYTE tmp = crc ^ *ptr++;
WORD bCRC = 0;
for(int i = 0; i < 8; ++i)
{
WORD lBit = bCRC & 1;
bCRC >>= 1; bCRC |= lBit<<15; // RRA crc
if((tmp & 1) ^ lBit) bCRC ^= 0xA001;
tmp >>= 1;
}
crc = bCRC ^ (crc<<8 | crc>>8);
}
return (crc<<8 | crc>>8);
}
WORD Manager::calcDScrc(void)
{
return crc(zeroTrk+9*sectorSize+2, 256+9+11*noFolders);
}
Цитата:
Сообщение от CityAceE
Диапазон дат лучше сделать 1979-2043: я Спектруму и всем нам желаю долгой жизни! :)Цитата:
Сообщение от CityAceE
Должна быть предусмотрена ситуация, когда дата объекта отсутствует (на это могут указывать нули в битах года).
Наверное секунды секунды действительно лишние. И еще: так ли нужна дата создания каталога? может лучше ограничится только датами изменения файлов?Цитата:
Сообщение от CityAceE
Кто как думает?
У меня результат другой: 1666 байтов, или чуть больше 6,5 секторов.Цитата:
Сообщение от CityAceE
Нужно, чтобы общая структура новой версии DirSys не сильно отличалась от старой, чтобы переделка программ, поддерживающих старую версию, была минимальной. Кроме того, и поддержка старой версии в новых программах тоже должна сохраниться.Цитата:
Сообщение от CityAceE
Чем дальше, тем больше мне нравится идея с датами. И я убеждён, что её просто необходимо реализовать!
Я бы предпочёл начать отсчёт с 1980-го года. Вроде бы на PC именно с этой даты отсчёт шёл. А можно и с 1982 - года рождения Спектрума.
В этом случае скорее всего в области дат будут нули. И если это будет так, то можно принудительно назначать дату 01.01.1980, ну или, например, 18.04.1982 - ДР Спектрума.
А я всё же думаю, что не лишние. Эти биты безусловно раздвинут диапазон лет, но, на мой взгляд и предложенного диапазана более, чем достаточно. А секунды - это всё же информация, пусть и не всегда очень полезная. Во всяком случае именно по секундам можно будет судить какой каталог был создан раньше.
Обязательно нужна! Ведь именно по дате каталога чаще всего придётся судить о его содержимом, так как в большинстве случаев даты у файлов будут отсутствовать.
А структура почти и не будет отличаться! Всё, что потребуется - это изменить номер системы с 1.00, на, скажем, 1.10. Это будет говорить софту, что можно работать не более чем с 64-мя каталогами и о необходимости искать даты в последних трёх секторах.
В последних трёх секторах поселить информацию о датах:
00-02 - контрольная сумма трёх последних секторов без первых двух байт, высчитывается по тому же алгоритму, что в DirSys. Позволит судить о целостности системы.
03-04 - свободные байты, можно поселить в них какой-то дескриптор или зарезервировать под будущие нужны. Под дескриптор можно задействовать только один байт, чтобы КС не была равна нулю. Эта информация будет сигнализировать софту, что информация о датах присутствует, а мы не имеет дело просто с пустыми секторами.
128*4 - данные о датах для 128 файлов.
63*4 - данные о датах для 63-х каталогах, 0-й каталог - корневой и не имеет даты. В крайнем случае дату корневого каталога можно хранить где-то в 9-м секторе - там много свободного места!
При таком раскладе весь существующий софт, который обучен DirSys будет работать и с новой системой. Я не думаю, что кто-то на сегодняшний день ухитрился сохранить на дискете более 64-х каталогов не в качесвте эксперемента, а для реальной работы! А других ограничений нет!
Так что надо делать! Чтобы система стала максимально полезной нужно как минимум включить её поддержку в TRDN и в плагин для FAR'а.
1) Ещё раз хочу повториться - хочется чтобы использовалась модульная структура библиотеки
2) Должна быть возможность выбора #3d13 и турболоадера
3) Поддерживаю всё вышесказанное
CityAceE, просто хотел спросить - почему народ спрашивает про отдельные библиотеки? ведь исходник DirSys , надеюсь, имеется? а в нем разве отдельные функции не реализованы отдельными процедурами, о которых и стоит вопрос?
ведь небольшой же труд их просто оттуда изъять, или все настолько запутано??