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

User Tag List

Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 31 по 40 из 56

Тема: Новая система каталогов в TR-DOS

  1. #31
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак, подытожим:

    В целом TRDIR подходит, но необходимо произвести изменения с целью повысить устойчивость системы к нарушению структуры каталогов "старыми" утилитами.

    Возможные изменения каталога утилитами без поддержки TRDIR:

    1. Переименование файла
    2. Удаление файла/директории
    3. Восстановление удаленного файла
    4. Копирование (создание нового) файла
    5. И наконец он, монстр из ваших снов MOVE!
    6. Запись в служебный сектор (в таблицу ссылок)

    (1)-(4) ничего страшного не сделают, но (2) и (3) надо отслеживать и вносить изменения в таблицу удаленных файлов (key-jee). Если удален, а потом создан последний файл, это можно определить (сохраняем общее число файлов и первый свободный трэк/сектор (или число свободных секторов)) и файл поместить в кореновой каталог.

    (5) можно задетектить по таблице удаленных файлов и сохраненному общему числу файлов (вместе с директориями) на диске, исправить сложно, особенно если не создавать доп. проверочных секторов (а места под них считаем что нет). Аналогично отслеживается (6).

    Если произошло (5) или (6): отключить поддержку TRDIR, в комплекте с коммандерами распространять интерактивную утилиту восстановления директорий.

    Я за все это время ничего нового не придумал.

    Итоги:
    1. 7-ой бит в таблице ссылок обозначает удален файл (bit=1) или нет (bit=0). В связи с тем что корневая директория обозначается ссылкой #FF, вводится ограничение на общее число директорий - 127 (а не 128 как ранее).
    2. Убрать CRC.
    3. Добавить общее число файлов и первый свободный трэк/сектор (или число свободных секторов).

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

  3. #32
    Master Аватар для key-jee
    Регистрация
    16.01.2005
    Адрес
    Пермь
    Сообщений
    514
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

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

    Кстати грузить 10 секторов вместо 9ти не так уж и напряжно

    Цитата Сообщение от Spectre
    7-ой бит в таблице ссылок обозначает удален файл (bit=1) или нет (bit=0). В связи с тем что корневая директория обозначается ссылкой #FF, вводится ограничение на общее число директорий - 127 (а не 128 как ранее).
    А смысл? ведь если считать 0 корневым каталогом, то 1ый дир может принадлежать корню, а 128ой - 127ому каталогу, то есть в любом случае в таблице принадлежности не используется старший бит, если уж ограничивать, то к примеру 63 или 31, хоть какой-то смысл появляется

  4. #33
    Master Аватар для elf/2
    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    и до кучи распространить 'reference implementation' в исходниках. т.е. набор процедур для базовых операций (проверить наличие системы, создать/удалить директорию, найти номер директории по полному пути, положить файл в директорию, etc)

  5. #34
    Member
    Регистрация
    22.01.2005
    Адрес
    Брест, Беларусь
    Сообщений
    49
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    1. Никакая защита от move не нужна, вспомните когда вы последний раз делали эту операцию не в своём любимом командере. Я бы попросту не рискнул . А уж помня что диск с директориями...
    2. CRC убирать нельзя, в крайнем случае заменить на что-то типа контрольной суммы. А процедура подсчёта CRC в RC уже есть (для SMUC CMOS).
    3. В дублировании количества файлов и свободного места также нет большого смысла, так как ситуация с попаданием записанного файла в другой каталог маловероятна (как часто вы "вручную" удаляете файлы из TR-DOS или каких либо других прог ?). А если файл перезаписывается с таким же именем, то и вполне логично что он должен попасть в ту же директорию где лежал старый. Только представьте что почти каждый раз загружая командер после работы с другим софтом вы будете получать запрос переместить ли изменившийся последний файл в корневую директорию.

  6. #35
    Activist
    Регистрация
    17.01.2005
    Адрес
    Belarus, Minsk
    Сообщений
    402
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb idea

    Цитата Сообщение от key-jee
    Так что вот вам ещё один недостаток системы, которая хранит информацию в 0 дороге, а не в файле
    Тогда давайте вообще в конце файла boot.B(он должен быть 64sec) хранить каталог
    ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
    ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO

  7. #36
    Member Аватар для MadCat!
    Регистрация
    17.01.2005
    Адрес
    Россия, Белгород
    Сообщений
    65
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb dir API в rom-версиях коммандеров

    предлагаю для облегчения поддержки dir'ов в любом новом софте сделать сабж.
    идеальный вариант - одинаковый API и для QC, и для RC.
    правда, здесь нельзя ошибаться, чтоб не появился еще один "косячный стандарт"
    МультиАватар есть здесь

  8. #37
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MadCat!
    предлагаю для облегчения поддержки dir'ов в любом новом софте сделать dir API в rom-версиях коммандеров .
    идеальный вариант - одинаковый API и для QC, и для RC.
    правда, здесь нельзя ошибаться, чтоб не появился еще один "косячный стандарт"
    А что это такое? Отдельный файл с процедурами работы с директориями? Коммандер очень специфичная утилита и такое большое добавление как поддержка директорий, потребует очень серьезных изменений самых разных процедур внутри коммандеров. Вынести все эти изменения в отдельный файл трудно, и совсем не нужно.

    К коммандерам в любом случае будут прилагаться готовые процедуры для работы с TRDIR.

  9. #38
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pawel
    1. Никакая защита от move не нужна, вспомните когда вы последний раз делали эту операцию не в своём любимом командере. Я бы попросту не рискнул . А уж помня что диск с директориями...
    Как в одном анекдоте: "случаи они разные бывают... "

    Если дело ограничится только установкой 7-го бита для удаленных файлов, я думаю, это вполне нормально. Все равно бит пустует, а увеличение кода минимальное. А когда нибудь может помочь. Если никогда не пригодится, само отомрет.

    Цитата Сообщение от Pawel
    2. CRC убирать нельзя, в крайнем случае заменить на что-то типа контрольной суммы. А процедура подсчёта CRC в RC уже есть (для SMUC CMOS).
    А толку с нее? Я думаю что после загрузки каталога нового диска будет вызываться некоторая процедура, которая анализировав структуру директорий, метку, выносит вердикт: все нормально или работа с директориями невозможна. Если структура нарушена, процедура это дело отловит.

    Цитата Сообщение от Pawel
    3. В дублировании количества файлов и свободного места также нет большого смысла, так как ситуация с попаданием записанного файла в другой каталог маловероятна (как часто вы "вручную" удаляете файлы из TR-DOS или каких либо других прог ?). А если файл перезаписывается с таким же именем, то и вполне логично что он должен попасть в ту же директорию где лежал старый. Только представьте что почти каждый раз загружая командер после работы с другим софтом вы будете получать запрос переместить ли изменившийся последний файл в корневую директорию.
    Есть много утилит (ассемблеры, граф. редакторы, STS) которые удаляют старый файл при записи нового. Но наверное ты прав, в этой ситуации доп. данных сохранять не нужно.

  10. #39
    Member Аватар для MadCat!
    Регистрация
    17.01.2005
    Адрес
    Россия, Белгород
    Сообщений
    65
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию dir-API в ПЗУ

    Цитата Сообщение от Spectre
    А что это такое? Отдельный файл с процедурами работы с директориями?
    Не отдельный файл, а набор точек входа и процедур в ПЗУ (я ж про rom-версии коммандеров писал). Это позволит кодерам не копировать один и тот же код, а по возможности использовать прошитые процедуры.
    Например, у меня в проге нет памяти совсем на "прилагаемые готовые процедуры", но если они в есть rom, (я могу по сигнатуре или еще как-нибудь узнать об этом), то для поддержки TRDIR нужно всего несколько CALL'ов...
    Цитата Сообщение от Spectre
    Коммандер очень специфичная утилита и такое большое добавление как поддержка директорий, потребует очень серьезных изменений самых разных процедур внутри коммандеров. Вынести все эти изменения в отдельный файл трудно, и совсем не нужно.
    трудно=>не нужно да, кодеры всегда были ленивыми (это я о себе)
    IMHO такой универсальный API всё же полезен, но сделать его правильно действительно непросто...
    Цитата Сообщение от Spectre
    К коммандерам в любом случае будут прилагаться готовые процедуры для работы с TRDIR.
    Ясно.
    Кто-нибудь ещё что-нибудь думает по этому поводу?
    МультиАватар есть здесь

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

    Exclamation А почему бы не отказаться в новой FS

    от TRDOS как таковой вообще?
    Всем понятно, что даже если инфу хранить на дискетах, то дискеты не HDD, они ж (дискеты) портятся! Как обходить царапины? Какой механизм фрагментаци? Дата создания? Права доступа? Каталоги? Изменение формата? Длинные имена? Большой размер? Если смотреть с точки зрения совместимости с TR-DOS, то DirSys на 100% удовлетворяла нужду в каталогах (которые по большому счёту большинством пользователей не очень нужны по причине слобости базы - именно файловой системы TR-DOS).
    Нафиг огород городить? Хотите работать со старыми программами - используйте TR-DOS базовую файловую систему, на крайний случай -DirSys. Хотите работать комфортно - берите другую систему, где всё учтено.

Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Ваши права

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