Важная информация

User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 23

Тема: Функционал TR-DOS

  1. #11
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,154
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Я это Grand'у и предлагаю. Правда там с местом для кода напряг жуткий.
    Думал, конечно же думал над этим. Но прежде надо устранить еще оставшиеся недоделки в TRDN.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

  2. #12
    Activist
    Регистрация
    23.02.2005
    Адрес
    Донецк
    Сообщений
    438
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    54 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поиски редактирования файлов любого размера навели на следующие мысли.
    Какой же самый большой недостаток трдос'а? И в общем меня не устраивает только одно - максимальный размер файла.
    Эти преславутые 255 секторов. Да, можно конечно и несколько файлов подряд записать, как это делает Zip или ZAsm при сохранении рамдиска, но подряд.

    И решение есть, как кажется очень простое.
    Э-х, если бы парни всей земли ...
    В общем размер файла сделать 3-х байтным, т.е. размер в секторах считать старшим байтом размера файла. А для того что бы пзу трдос ничего не натворила, записать в идентификатор диска другое значение. Да и в пзу подправить не такая уж проблема.
    И тогда ... в каждом файле хоть свою дисковую систему, КАЖДЫЙ СВОЮ. Требование одно копирование, уплотнение диска, удаление из расчета 3-х байтовой длинны файла. За внутреннее содержание файла ответственна программа создавшая его. Каждый использует как хочет или может. Я не против ковыряний внутри, просто разговору о формате таких файлов займет очень много ... ЛЕТ.

    DirSys, кстати сказать, ни каких боков трдос не исправляет, позволяет организовать показ каталога, а ограничение в 128 файлов так и осталось.

  3. #13
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,259
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Rubts0FF Посмотреть сообщение
    В общем размер файла сделать 3-х байтным, т.е. размер в секторах считать старшим байтом размера файла. А для того что бы пзу трдос ничего не натворила, записать в идентификатор диска другое значение. Да и в пзу подправить не такая уж проблема.
    Имхо гиблое дело. Переделки существующего софта (а особенно прошивок) никто делать не будет. Если уж и идентификатор другой, то можно вообще свой формат диска сделать- с фрагментацией и прочим. А это, звиняйте, уже другая файловая система. И крутите что хотите.

  4. #14
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,154
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Cool

    Цитата Сообщение от Rubts0FF
    ...Да, можно конечно и несколько файлов подряд записать, как это делает Zip или ZAsm при сохранении рамдиска, но подряд.
    Много лет назад я взял на вооружение другой способ, похожий на то как в TR-DOS записываются файлы прямого/последовательного доступа (напомню: там размер таких файлов по 8Kb, и распологаться они могут в любой последовательности).

    Цитата Сообщение от Rubts0FF
    DirSys, кстати сказать, ни каких боков трдос не исправляет...
    Вроде никто этого и не утверждал. DirSys - это просто надстройка, позволяющая организовывать каталоги..
    Последний раз редактировалось Grand; 11.04.2007 в 03:31.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

  5. #15
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    1) оптимизация каталога. Рядомлежащие удаленные записи в каталоге склеиваются в минимум записей (а-ля сателлиты), суммарная мнимая длина которых будет равна суммарной мнимой длине удаленных записей
    2) запись файлов заранее известной длины (а в 99% так всегда) поверх удаленых файлов. Здесь, думаю, все ясно и понятно- добавляем запись в каталог, отрезаем от свободного места сколько заняли, возможно создаем новую запись (если "удаленная" запись одна). Возможно, придется делать еще раз оптимизацию.
    Я тут похоже не так тебя понял... Это уже всё есть. Генс у меня записывал файлы поверх, если они одно размера в секторах были (хотя могу и ошибаться). Склеивать пустые места, освобождая файловые индексы в каталоге - это конечно неплохо, но есть такое соображение. Эти места вообще то бронируются для того, чтобы потом эти файлы можно было восстановить. Конечно, я согласен что этим мало кто пользуется (по крайней мере я - ни разу не восстанавливал так файлы, хотя в тырдосе уже лет 10 сижу), но всё же...
    И ещё, использование каких-либо реорганизаций уже стёртых файлов не есть хорошо, потому что там может и важная информация хранится (а вот это я использовал - вытаскивал кое что нужно, про что сам давно уже забыд).

    Добавлено через 2 минуты
    Цитата Сообщение от Rubts0FF Посмотреть сообщение
    если бы парни всей земли ...
    В общем размер файла сделать 3-х байтным
    Не получится, потому что DirSys оставлял в принципе систему файлов в порядке, а вот такое изменение коснётся файловой системы капитально, а так как основная масса программеров (и я в том числе) работают с каталогами ТыРДОСа напрямую (читая секторы *16 номер файла и т.д.) то ничего хорошего такое нововведение не даст.
    Последний раз редактировалось GriV; 14.04.2007 в 12:33. Причина: Добавлено сообщение
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  6. #16
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,154
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    ... использование каких-либо реорганизаций уже стёртых файлов не есть хорошо, потому что там может и важная информация хранится ...
    Надо, чтобы в программе была возможность отключения этой функции.
    К примеру, в системе RT-11 (и аналогичных ей) на ДВК-совместимых, новые файлы всегда записываются в подходящие пустые области (там это не отключаемо), и одновременно есть возможность восстановить стёртый файл, если на него ещё ничего не записалось.

    Цитата Сообщение от GriV
    Это уже всё есть. Генс у меня записывал файлы поверх, если они одно размера в секторах были (хотя могу и ошибаться).
    Art Studio и мой GSV (тот, что не x.xDS) пишут на диск новые картинки поверх старых. Но лично мне хочется, чтобы появились программы, записывающие файл на место удалённого файла, если он больше или равен новому файлу, а остаток
    оформляли бы как следующий удалённый файл (при условии, конечно, что есть свободное место в каталоге).
    Последний раз редактировалось Grand; 11.11.2008 в 03:27. Причина: изменение гиперссылки
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,259
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    Я тут похоже не так тебя понял... Это уже всё есть. Генс у меня записывал файлы поверх, если они одно размера в секторах были (хотя могу и ошибаться).
    Перезаписывать файлы поверх оригинальных, если они одного размера, могут многие программы (часть моих в том числе, если не путаю). Про запись поверх _уже удаленных_ файлов я не слышал.
    Плюс, как точно сказано:

    Цитата Сообщение от Grand Посмотреть сообщение
    Надо, чтобы в программе была возможность отключения этой функции.
    А то, судя твоей логике, надо исключить из функционала команду Move

  9. #18
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,575
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    402
    Спасибо Благодарностей получено 
    1,207
    Поблагодарили
    394 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как мне кажется, алгортим действий должен быть таким:
    1. Смотрим включена ли функция. Если выключена, то действуем как обычно.
    2. Смотрим на количество файлов в каталоге. Если их 128, то выходим.
    3. Смотрим, есть ли удалённые файлы. Если нет, то действуем как обычно.
    4. Ищем удалённые файлы и сравниваем их длину с записываемым файлом. Если есть удалённый файл равной длины, то новый файл пишем на его место, иначе пишем в файл с минимальной подходящей длиной.
    5. Из оставшихся от удалённого файла секоторов создаём "новый" удалённый файл и корректируем каталог, записывая в него новый файл и новый удалённый файлы.
    С уважением, Станислав.

  10. #19
    Master
    Регистрация
    27.04.2005
    Адрес
    Москва
    Сообщений
    886
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Учтите что стандартная команда MOVE в TR-DOS корректно работает только в том случае, если файлы на диске расположены в том же порядке, в каком они указаны в каталоге. То бишь нельзя, например, файл дописать в хвост диска, а описатель его указать в начале каталога, на месте стертого файла.
    Работает команда следующим образом: находим стертый файл, определяем его начало на диске, находим следующий нестертый файл, определяем его начало, копируем сектора нестертого файла "вверх" по диску (подтаскиваем его к началу), меняем местами описатели стертого и нестертого файла в каталоге, повторяем.
    При нарушении условия непрерывности дискового пространства в результате такого MOVE получим кашу. Также можно получить неубирающуюся "дырку" на диске, если делаем следующее:
    В каталоге:
    Файл1
    Файл2
    На диске:
    Файл1
    <Свободное место>
    Файл2
    Даже если сотрем файл2 и сделаем MOVE, свободное место не уберется.
    Другие реализации MOVE работают по-другому. Хотя сама по себе идея использования "дырок" хороша.
    Кстати еще я бы убрал файлы произвольного доступа (ими так никто и не воспользовался), а для последовательного доступа сделал бы возможность открывать любой файл (а не только "#"). Потоковый ввод/вывод - вещь полезная. Можно писать/читать файл по частям не заботясь о его длине. Все прочие дисковые ОС на Спеке и даже ОС Микродрайва это умеют.

  11. #20
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,575
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    402
    Спасибо Благодарностей получено 
    1,207
    Поблагодарили
    394 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sonic Посмотреть сообщение
    стандартная команда MOVE в TR-DOS
    Не уверен, что кто-то ею пользуется... Хотя, безусловно, скидывать её со счетов нельзя.
    С уважением, Станислав.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •