TRDETZ - супирутилита для работы с TRD-образами!!!
(ц) Бу-бу
Trdetz (читается "Тырдец") это консольная утилита для работы с TRD-образами дисков компутера ZX-Spectrum. Тырдец оптимизирован для
использования в скриптах (например мэйкфайлах -- шоб собрать бинарники кросс-ассемблером и автоматически запихнуть их на диск).
Работает он практически в любой ОС для которой есть компилятор ANSI-C, тестировал я в Линухе и Винде(тм). Все операции производимые
Тырдецом "атомарны" -- за раз он может записать/считать только один файл, или одну непрерывную группу секторов, или изменить один
атрибут файла и тп. Это так специально, чтобы в скриптах Тырдец вёл себя органичнее.
Фичи:
- Чтение/запись группы секторов из/в TRD
- Чтение/запись бинарного файла из/в TRD (также поддерживаются hobeta-файлы)
- Удаление файла
- Изменение атрибутов файла (имя, расширение, длина и тд)
- Чтение информации о файле или всех файлах в TRD-каталоге
- Чтение информации о TRD-диске
- Уплотнение диска
- Вывод пафосного хелпа
Тырдец вызывается так:
trdetz [флаги] имя_трд_образа команда [аргументы]
Флаги бывают такие:
- -df[=del_file_marker] : Работать также и с удаленными файлами. без этого флага Тырдец удаленных файлов замечать не будет.
С помощью этого флага можно восстанавливать удаленные файлы, путем их переименования. Необязательный параметр del_file_marker
задаёт символ, который будет использоваться для обозначения 1го символа имени удаленного файла, по умолчанию это вопросительный
знак. Вощем, с удаленными файлами можно работать в точности как с обычными если этот флаг включен.
- -fs : Считать длину файла в байтах не по соответствующему полю каталога, а как кол-во секторов помноженное на 256.
Это влияет на операции чтения файла из TRD-образа. ВНИМАНИЕ! этот флаг необходимо указывать при чтении с
TRD-образа файлов, реальная длина которых не соответствует указанной в каталоге, например, программ,
упакованных в один блок с бейсик-загрузчиком.
- -hob : Работа с форматом hobeta при экспорте и импорте TR-DOS файла. Работает для команд fread и fwrite. То есть, в fread
можно вместо простого бинарного файла извлекать с TRD-образа hobeta-файл, а в fwrite записывать данные из hobeta-файла в TRD.
Теперь про команды. Сразу имейте в виду, что команды принимают всякие параметры, которые бывают текстовыми или числовыми.
Числовые параметры можно писать в 10-чной, 16-чной или 8-ичной системах счисления. Если перед числом стоит префикс "0x" то
оно значит 16-иричное, а если оно начинается с нуля, то восьмеричное. Ага, и еще если никакой воще команды не писать,
то Тырдец покажет хелп.
Команды Тырдеца ("имя_файла" означает файл на TRD-образе, а "имя_файла_ОС" -- файл операцыонной системы):
- dinfo : Показывает инфу о образе -- имя диска и прочую муть. выдается по одному полю на строку.
- cat [имя_файла] : Если задано имя файла показывает инфу об этом файле, иначе обо всех файлах на диске. Формат
инфы такой же, как в TR-DOSной команде LIST, только в конце еще кажутся начальный трек и начальный сектор.
- secread имя_файла_ОС начальный_трек начальный_сектор кол-во_секторов : Чтение группы секторов из TRD-образа.
- secwrite имя_файла_ОС начальный_трек начальный_сектор кол-во_секторов : Запись группы секторов на TRD-образ.
- fread имя_trd_файла [имя_файла_ОС] : Чтение файла с TRD-образа. Если задан параметр имя_файла_ОС,
файл будет записан с этим именем, а не тем, что в каталоге.
- fwrite имя_файла_ОС [имя_файла] : Запись файла на TRD-образ. Если задан параметр имя_файла, он будет записан под этим
именем, иначе имя будет сформировано из имени файла-источника.
- del имя_файла : Удаление файла. Если файл находится в конце каталога, его уже после этого не вернешь,
иначе можно потом восстановить.
- move : Уплотнение диска (как TRDOSная команда move).
- ren старое_имя_файла новое_имя_файла : Переименование файла, а также восстановление удалённых (см флаг -df).
- fprop имя_файла имя_атрибута значение_атрибута : Изменение атрибута файла. атрибуты бывают такие:
- start : Начальный адрес кодового файла (а для васика это полная длина).
- flen : Длина файла (для васика тут длина только программной части).
- nsec : Скока секторов файл занимает.
Компиляция Тырдеца:
Как я уже наверно говорил, Тырдец должен компилироваться любым ANSI-C компилятором. Однако я пробовал только GCC (и, соответственно,
MinGW под Виндовсом). В случае использования этих компиляторов и GNU make, достаточно сказать "make all" и все скомпилится.
Если у вас другие компиляторы/мейки/девстудии, курите их мануал, создавайте проекты и всякую такую бадягу сами. Юзаются тока
стандартные сишные либы, так что порблем быть не должно :)
Ну и если вам достался Тырдец без исходников, или нашелся глюк, пишите мне на адрес который гдето вверху этого хелпа.
Speccy фарева! Ура!