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

User Tag List

Страница 1 из 7 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 70

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

  1. #1
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,566
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    395
    Спасибо Благодарностей получено 
    1,205
    Поблагодарили
    393 сообщений
    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
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,691
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    30 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от CityAceE Посмотреть сообщение
    О! Неужели поддержишь DirSys?
    Ну если отмотать в далёкий 1998 год то уже в те далёкие времена Doors поддерживала работу с директориями Я ещё не разбирался что из себя представляется DirSys, но директории в tr-dos моя давняя мечта
    Последний раз редактировалось CityAceE; 19.08.2007 в 03:23. Причина: Удалил не относящееся к теме
    (๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ

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

    По умолчанию

    Цитата Сообщение от breeze Посмотреть сообщение
    Я ещё не разбирался что из себя представляется DirSys, но директории в tr-dos моя давняя мечта
    Ну, если вдруг дело дойдёт до реализации и появятся вопросы, то всегда готов ответить!
    С уважением, Станислав.

  5. #4
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,691
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    30 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Ну, если вдруг дело дойдёт до реализации и появятся вопросы, то всегда готов ответить!
    Вопросы это конечно хорошо но я бы с радостью не отказался от готовых решений в виде либы: readFile, saveFile, deleteFile, createDir, removeDir
    Последний раз редактировалось CityAceE; 19.08.2007 в 03:23. Причина: Удалил не относящееся к теме
    (๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ

  6. #5
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,566
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    395
    Спасибо Благодарностей получено 
    1,205
    Поблагодарили
    393 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от breeze Посмотреть сообщение
    Вопросы это конечно хорошо но я бы с радостью не отказался от готовых решений в виде либы: readFile, saveFile, deleteFile, createDir, removeDir
    Уже неоднократно слышал про необходимость такой библиотеки, но её, к сожалению, не существует. Невозможно процедуры работы с каталогами выудить и из TRDN - слишком там всё запутано и переплетено. Однако если бы был некий стандарт на подобные библиотеки, то можно было бы её создать! Под стандартом я понимаю ВЕСЬ НАБОР необходимых функций, способ передачи их библиотеки, получение результата и т.д. Например, в твоём перечислении как минимум отсутствует moveFile, moveDir, так как для того чтобы переместить какой-то каталог или файл на новое место на диске требуется изменить один единственный файл, а пользоваться для этого процедурами копирования и удаления будет неправильно. Подозреваю, что ещё могут понадобиться функции просмотра текущего каталога и много чего ещё

    Возможно, Elf/2 сможет сказать какой набор функций необходим, так как он прикручивал DirSys к FAR'у...
    Последний раз редактировалось CityAceE; 19.08.2007 в 03:26.
    С уважением, Станислав.

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

    По умолчанию

    Стандарт есть, модульная архитектура от витамина, ничего сложного запортить туда нет, тем более что оно в АЛЯСМе всё...
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  8. #7
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,691
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    30 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну так давайте вычистим код и сделаем две либы для zx и pc.
    Для zx желательно даже без турболоадеров всяких чисто #3d13 ?
    (๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ

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

    По умолчанию

    Ну для PC пусть кто-то другой делает. А что касается ZX наверное стОит такую библиотеку сделать. Вот только чёткое ТЗ нужно.

    Добавлено через 30 секунд
    Цитата Сообщение от GriV Посмотреть сообщение
    модульная архитектура от витамина
    Где она лежит?
    Последний раз редактировалось CityAceE; 19.08.2007 в 14:39. Причина: Добавлено сообщение
    С уважением, Станислав.

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

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Где она лежит?
    http://zxdocs.fatal.ru/coding/module.zip

    Хотя, судя по давней дискуссии, народу она не приглянулась абсолютно. Но никаких конкретных предложений по улучшению не поступило...

  11. #10
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,691
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    30 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Thumbs up

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Ну для PC пусть кто-то другой делает.
    Ну насчёт этого видимо стоит поговорить с автором плагина для FAR'а там то оно явно поддерживается ?

    Цитата Сообщение от Vitamin Посмотреть сообщение
    спасибо почитаем...

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Хотя, судя по давней дискуссии, народу она не приглянулась абсолютно. Но никаких конкретных предложений по улучшению не поступило...
    К сожалению, зачастую так бывает, что нафиг никогму ничего не надо
    (๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ

Страница 1 из 7 12345 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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