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

User Tag List

Показано с 1 по 10 из 70

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

Древовидный режим

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

    Cool DirSys - система каталогов для TR-DOS

    В этой теме идёт обсуждение DirSys (Directory System) - программного расширения файловой TR-DOS, позволяющего без потери совместимости (конечно же, с оговорками!) с остальным программным обеспечением иметь каталоги на стандартных TR-DOS дискетах и их образах.

    Основной файловый менеджер, поддерживающий эту систему - TR-DOS Naviagtor (TRDN) от автора DirSys. Однако не сегодняшний день накопилось немало других программ, как на самом ZX Spectrum, так и в виде утилит на PC, которые поддержали DirSys. Вот некоторые из них:

    42 Text Viewer V1.1 48/128K by Grand, 2009
    BMP Service v1.0 by Brothers, 2000
    Disk Trouble! V0.244 by Nuts, 2001
    Grand's Boot by Grand, 1997-2020
    Grand's Screen Viewer V1.12 и V1.10DS by Grand, 2016 и 2008
    и, конечно,
    TR-DOS Navigator by CityAceE & AlexUzer & Grand, 2000-2019

    Также на IBM PC существуют плагины для FAR Manager by HalfElf and A.Medvedev.

    (Актуальный список ведет Grand)

    Полное описание DirSys входит в дистрибутив TRDN. Для удобства данное описание дублируется и здесь:

    Описание DirSys от 18.10.2019


    Directory System for TR-DOS
    Документация на систему
    =======================

    Этот документ предназначен для программистов, желающих
    поддержать систему каталогов для TR-DOS в своих программах.

    Возможности системы
    ===================
    Directory System (DS) представляет из себя надстройку над
    популярной системой TR-DOS, и снимает ограничение на отсутствие
    в TR-DOS каталогов. DS позволяет хранить на стандартном диске
    системы TR-DOS до 128 файлов и одновременно до 128 каталогов,
    включая корневой каталог. Каталоги могут иметь любую степень
    вложенности, а так же любое содержимое. В одной директории может
    располагаться до 127 каталогов и до 128 файлов. DS находится в
    свободных секторах нулевой дорожки и не использует для своих
    целей другого дискового пространства.

    Совместимость
    =============
    DS полностью совместима с большинством программного
    обеспечения и самой системой TR-DOS. Это значит, что любая
    программа, не поддерживающая DS увидит все файлы, находящиеся на
    диске, в том числе и находящиеся в каталогах, сами же каталоги
    видны не будут. Это же касается стандартных команд TR-DOS LIST и
    CAT. Можно копировать, стирать и переименовывать файлы на диске
    с DS любыми коммандерами, а также стандартными командами TR-DOS
    COPY, ERASE и NEW. В этом случае при переименовании файла, его
    расположение в каталоге не изменится, а при создании или
    копировании файла, новый файл будет помещен в корневой каталог.

    Ограничения
    ===========
    Ограничения использования другого программного обеспечения
    совместно с DS связано прежде всего с использованием свободных
    секторов нулевой дорожки. Поэтому конфликты могут возникнуть
    лишь с теми программами, которые используют эти сектора. Хотя,
    например, теневой сервис-монитор компьютера Scorpion может
    хранить свои настройки на дискете с DS без конфликта с системой
    до тех пор, пока количество каталогов не будет превышать 115.
    Запись программ на диск с DS при помощи кнопки MAGIC уничтожит
    систему, тем не менее, часть информации можно будет
    восстановить.

    Еще одно ограничение на систему накладывают стандартная
    команда TR-DOS MOVE и уплотнение диска обычными коммандерами. В
    этом случае будет нарушена сортировка файлов по каталогам. Для
    уплотнения диска необходимо пользоваться программами,
    поддерживающими DS и учитывающими ее особенности.

    Возможности по восстановлению системы
    =====================================
    При повреждении системы, но не полном ее уничтожении
    (должен быть не тронутым как минимум 10 сектор нулевой дорожки),
    система частично может быть восстановлена. А именно, сохранится
    сортировка всех файлов по каталогам, а также сортировка первых
    117 каталогов.

    Детальное описание системы
    ==========================
    Система начинается в начале 10-го сектора сразу же за
    системным сектором (сдвиг указан относительно начала 10 сектора
    нулевой дорожки):

    Дескриптор системы. 11 байт:

    + [#00], + [#01] CRC системы, обсчитываются байты с +[#02]
    до + [N*#0B+#10B], где N -
    порядковый номер последнего заданного
    каталога;
    + [#02]... + [#07] сигнатура "DirSys" - идентификатор системы;
    + [#08] сигнатура "1" - целая часть номера версии
    системы;
    + [#09], + [#0А] сигнатура "00" - дробная часть номера версии
    системы;
    Текущая версия системы 1.00

    Таблица размещения файлов и каталогов. 256 байт:

    + [#0B] порядковый номер каталога, к которому принадлежит
    0-ой файл;
    + [#0С] порядковый номер каталога, к которому принадлежит
    1-ый файл;
    ...
    + [#89] порядковый номер каталога, к которому принадлежит
    126-ой файл;
    + [#8A] порядковый номер каталога, к которому принадлежит
    127-ой файл;

    + [#8B] порядковый номер каталога, к которому принадлежит
    1-ый каталог;
    + [#8C] порядковый номер каталога, к которому принадлежит
    2-ой каталог;
    ...
    + [#108] порядковый номер каталога, к которому принадлежит
    126-ой каталог;
    + [#109] порядковый номер каталога, к которому принадлежит
    127-ой каталог;

    + [#10А] #00 - байт зарезервирован;

    Список имен каталогов. Размер варьирует:

    + [#10B]... + [#115] 11 символов - имя 1-го каталога;
    + [#116]... + [#120] 11 символов - имя 2-го каталога;
    ...
    + [N*#0B+#100]... + [N*#0B+#10A] 11 символов - имя
    последнего, заданного каталога с порядковым
    номером N;

    + [N*#0B+#10B] #00 - конец системы.

    Размер списка имен каталогов зависит от количества заданных
    каталогов. Минимальный размер - 1 байт, при отсутствии каталогов
    на диске (единственный нулевой байт указывает на конец системы).
    Максимальный размер - 1398 байт, при 127 заданных каталогах плюс
    один нулевой байт указатель конца системы.

    Порядковые номера каталогов нигде явно не заданы, а опре-
    деляются простым счетом по порядку: от 1-го до 127-го. Корневой
    каталог имеет порядковый номер 0.

    Система инициализируется путем записи в 10 и 11 сектора
    нулевой дорожки (сразу после системного сектора)
    последовательности байт: #19, #D0, "DirSys100", 257 байт нулей.

    Имена каталогов должны содержать символы с кодами ASCII от
    #20 до #7F (в соответствующем plag-in'е by HalfElf для FAR
    Manager'a на PC, в именах каталогов разрешено использование
    русских символов в DOS-кодировке, это было согласовано с автором
    DirSys). Если первый символ имени каталога равен коду #01, такой
    каталог считается удаленным. Незначащие символы имени каталога
    заполняются кодом ASCII #20 (пробел). Например, имя каталога "My
    Dir", будет задана в списке имен каталогов как
    последовательность байт: #4D #79 #20 #44 #69 #72 #20 #20 #20 #20
    #20.

    При уплотнении диска для освобождения диска от удаленных
    файлов и каталогов необходимо провести уплотнение файлов как
    обычно, затем произвести уплотнение списка имен каталогов, затем
    провести пересчет и соответствующую коррекцию таблицы
    расположения файлов и каталогов.

    В своем минимуме DS занимает два сектора и при этом может
    хранить полную информацию о 22 каталогах. Дальнейшее увеличение
    количества каталогов вызовет увеличение числа секторов,
    занимаемых системой.

    Наличие системы на диске определяется по наличию в 10
    секторе нулевой дорожки сигнатуры "DirSys" со сдвигом он начала
    сектора +02. Целостность системы проверяется по совпадению
    рассчитанной CRC с записанной CRC в самом начале 10 сектора.

    После каждого изменения, затрагивающего DS (перемещение
    файла или каталога в другой каталог, создание нового каталога,
    переименование или удаление каталога, уплотнение системы)
    необходимо скорректировать и записать CRC. CRC рассчитывается
    начиная от 2 байта начала системы и до последнего символа
    последнего заданного каталога включительно. Нулевой байт
    идентификатор конца системы при подсчете CRC не учитывается.

    CRC подсчитывается следующей программой:

    ;Входные параметры:
    ;HL - начальный адрес блока
    ;DE - конечный адрес блока
    ;Выходные данные:
    ;BC - контрольная сумма блока

    CRC PUSH HL
    INC DE
    LD BC,#0000
    CRC1 PUSH DE
    LD A,C
    XOR (HL)
    LD E,A
    PUSH BC
    PUSH HL
    LD BC,#0000
    LD D,#08
    CRC2 PUSH BC
    LD A,C
    RRA
    LD A,B
    RRA
    LD B,A
    LD A,C
    RRA
    LD C,A
    POP HL
    LD A,E
    XOR L
    AND 1
    JR Z,CRC3
    LD A,B
    XOR #A0
    LD B,A
    LD A,C
    XOR #01
    LD C,A
    CRC3 LD A,E
    RRCA
    AND #7F
    LD E,A
    DEC D
    JR NZ,CRC2
    POP HL
    POP DE
    LD A,D
    XOR C
    LD C,A
    LD A,E
    XOR B
    LD B,A
    INC HL
    POP DE
    LD A,H
    CP D
    JR NZ,CRC1
    LD A,L
    CP E
    JR NZ,CRC1
    DEC DE
    POP HL
    RET

    Значение, возвращаемое в регистре B, сравнивается с байтом со
    смещением + [#00], а возвращаемое в регистре C - + [#01].

    Координаты автора
    =================
    По всем вопросам, возникшим по описанной системе,
    обращайтесь по следующим координатам:

    mailto:[email protected]
    https://zx-pk.ru/threads/5998 (обсуждение на форуме "Speccy ─
    наш выбор!")

    ----------------------------------------------------------------
    (С) 2000 Станислав Юдин aka CityAceE
    (С) 2000 Дмитрий Пьянков
    (С) 2000 SIMM
    [свернуть]


    Исходное сообщение


    Цитата Сообщение от breeze Посмотреть сообщение
    3) Есть такая замечательная вещь как DirSys, было бы очень здорово заюзать это расширение TR-DOS, опять же необходимо для моей системы
    О! Неужели поддержишь DirSys?
    [свернуть]
    Последний раз редактировалось CityAceE; 12.08.2020 в 12:21.
    С уважением, Станислав.

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

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

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

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

Похожие темы

  1. Музыкальная система для Специалиста
    от ivagor в разделе Специалист
    Ответов: 4
    Последнее: 20.07.2022, 21:47
  2. Ответов: 6
    Последнее: 07.02.2016, 11:55
  3. Файловая система IS-DOS
    от Helloween в разделе Оси
    Ответов: 1
    Последнее: 01.03.2014, 22:03
  4. Ответов: 1
    Последнее: 22.11.2009, 18:20
  5. Новая система каталогов в TR-DOS
    от Spectre в разделе Программирование
    Ответов: 55
    Последнее: 24.02.2005, 20:42

Ваши права

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