🎯 Введение: Революция в хранении данных​

К середине 1980-х кассетная загрузка на ZX Spectrum стала основным узким местом. Загрузка крупной игры могла занимать 5-10 минут, а ошибки чтения были обычным делом. Ответом на эти вызовы стало появление дисковых контроллеров, самым массовым из которых стал Beta Disk от компании Technology Research Ltd (позже известной как TR-DOS).

Формат .TRD — это образ диска, созданного для этой дисководной системы. Он представляет собой полный посекторный дамп 5.25-дюймовой дискеты (реже 3.5-дюймовой), отформатированной под управление операционной системы TR-DOS. Появление дисков и этого формата разделило эпоху Spectrum на «до» и «после», кардинально повысив скорость и удобство работы.

📜 Историческая справка: От Beta Disk до стандарта де-факто​

Система Beta Disk (интерфейсный блок + дисковод) появилась примерно в 1986 году. Её сердцем была операционная система TR-DOS (версии 5.03, 5.04T были наиболее популярны), которая загружалась в память Spectrum и полностью брала на себя управление дискетами.

Почему TR-DOS и .TRD стали стандартом?
  1. Доступность: Контроллер был относительно недорогим и хорошо документированным.
  2. Ёмкость: Одна двусторонняя дискета на 80 дорожек вмещала до 800 КБ данных (обычно использовалось 640 КБ), что было несравнимо с кассетой.
  3. Скорость: Загрузка программы с диска занимала секунды вместо минут.
  4. Экосистема: Под TR-DOS была адаптирована огромная библиотека софта, особенно в Восточной Европе и СССР, где этот формат стал доминирующим.
Формат .TRD как образ такого диска стал естественным стандартом для эмуляции и архивации в 1990-х годах.

🔬 Детальная структура формата .TRD​

Файл .TRD — это посекторная копия дискеты. Его стандартный размер для эмуляции — 655360 байт (640 КБ), что соответствует 80 дорожкам, 2 сторонам, 16 секторам на дорожку и 256 байтам в секторе: 80 * 2 * 16 * 256 = 655360.

Структура диска жёстко определена TR-DOS.

🗂️ 1. Сектор 0, Дорожка 0, Сторона 0: Загрузочный сектор и каталог диска​

Первый сектор диска содержит системную информацию и начало каталога файлов.
Смещение (в секторе)ДлинаСодержимое и описание
0x00224 байтаПрограмма-загрузчик (Loader). Небольшой машинный код, который первым считывается при обращении к диску. Его основная задача — загрузить с диска саму ОС TR-DOS в память.
0xE01 байтКоличество файлов в каталоге (максимум 128). Значение 0xE5 обозначает удалённый файл.
0xE11 байтОбщее количество секторов (дорожек), занимаемых файлами на диске.
0xE22 байтаСлужебная информация TR-DOS (номер диска, тип диска).
0xE48 байтМетка диска (Disk Label). Название диска в ASCII (например, "GAMES-A "). Если первый байт 0x00 — метки нет.
0xEC3 байтаРезерв, обычно нули.
0xEF1 байтКоличество свободных секторов на диске.
0xF016 байтНачало каталога файлов. Содержит первые 4 записи о файлах (по 16 байт каждая).

📇 2. Структура записи о файле в каталоге (16 байт)​

Начиная со смещения 0xF0 в первом секторе, и далее в следующих секторах (сектора 1-7 на нулевой дорожке) расположен полный каталог. Каждая запись имеет фиксированный формат:
Смещение (в записи)ДлинаОписание
0x00 (0)1 байтИмя файла, первый символ. Если 0x00 — запись пуста, если 0x01 — файл удалён.
0x01 (1)8 байтИмя файла, символы 2-9 в ASCII. Дополняется пробелами.
0x09 (9)1 байтТип (расширение) файла. Кодируется одним символом:
"B" — Бейсик
"C" — Код (машинный код)
"D" — Данные (массив чисел)
"#" — Блок данных (двоичный файл)
0x0A (10)2 байтаДлина файла (в байтах). Младший байт первый (Little Endian).
0x0C (12)2 байтаАдрес загрузки в памяти (для типов "C" и "#").
0x0E (14)2 байтаПараметр.
— Для "B" (Бейсик): номер строки, с которой начнётся автостарт (0x8000 = RUN).
— Для "C" (Код): адрес запуска (обычно равен адресу загрузки).

💿 3. Область данных файлов​

Начиная с 8-го сектора дорожки 0 (после секторов каталога) и далее по всем дорожкам диска расположены сектора с данными файлов.

Важнейшая особенность TR-DOS — это нелинейное отображение логических секторов файла на физические сектора диска. ОС использует собственную таблицу размещения (FAT), которая хранится в её резидентной части в памяти, а не на диске. Поэтому просто прочитать сектор диска подряд нельзя — для извлечения файла нужен эмулятор или утилита, понимающая логику TR-DOS.

Стандартная схема размещения на диске 640K:
  • Дорожки 0-1: Служебная информация, каталог.
  • Дорожки 2-79: Данные файлов.

⚙️ Как работать с .TRD-образами: Инструменты и методы​

1. Просмотр и извлечение файлов (на ПК)

Самый простой способ — использовать специализированные утилиты для Windows или кроссплатформенные инструменты.
ИнструментПлатформаВозможности
trdmanWindows, командная строкаКлассическая утилита для просмотра каталога, извлечения и добавления файлов в .TRD образ.
Fuse (эмулятор)Windows, Linux, macOSВстроенный файловый менеджер (Export / Import в диалоге Media > Disk > Open) позволяет просматривать .TRD и извлекать файлы в форматы .TAP или прямо в память.
ZXDS (эмулятор для Nintendo DS)Встроенный инструментИмеет мощный встроенный файловый менеджер для .TRD.
zxtoolsМультиплатформенный (Python/C)Набор утилит командной строки для работы с разными форматами Spectrum, включая .TRD.

Пример работы с trdman (команды):
Код:
trdman.exe list games.trd          # Просмотр каталога диска
trdman.exe extract games.trd 5     # Извлечь файл №5 из образа
trdman.exe addfile games.trd myfile.C # Добавить файл в образ

2. Монтирование .TRD в эмуляторе

Практически все современные эмуляторы (Fuse, UnrealSpeccy, ZXSpin) поддерживают загрузку .TRD-образов как виртуальных дискет:
  1. Запустить эмулятор с TR-DOS (обычно модель ZX Spectrum +3 или Pentagon 128).
  2. Смонтировать .TRD-файл в виртуальный дисковод A: (например, через меню Media > Disk > Insert).
  3. В эмуляторе набрать команду CAT — появится список файлов.
  4. Для загрузки: LOAD "имя_файла" (для Бейсика) или LOAD "имя_файла" CODE (для машинного кода).

3. Создание собственных .TRD-образов

Можно создать образ с нуля:
  1. Взять пустой шаблон (blank.trd) размером 655360 байт.
  2. С помощью trdman или аналогов добавить в него файлы.
  • Для Бейсик-программ: предварительно конвертировать в внутренний двоичный формат Spectrum (часто через .TAP).
  • Для машинного кода: указать адрес загрузки и запуска.
  1. Установить метку диска (опционально).

🔄 Конвертация и родственные форматы​

.TRD — не единственный формат образов для Spectrum. Часто требуется конвертация:
ФорматОтличия от .TRDИнструменты для конвертации
.SCLСжатый образ TR-DOS диска. Содержит только файлы, но не пустые сектора. Удобен для архивации.scl2trd, trd2scl (входят в пакет trdman)
.FDIБолее продвинутый посекторный образ, может содержать информацию о защите диска.Специализированные конвертеры эмуляторов
.DSK (для +3DOS)Формат дисков для встроенного дисковода ZX Spectrum +3. Другая файловая система.dsk2trd конвертеры (частичная потеря данных)

Важно: Конвертация из .SCL в .TRD обратима и без потерь. Конвертация в/из форматов других систем (например, +3DOS) может быть сложной.

🏛️ Историческое и культурное значение​

Формат .TRD — это культурный код советской и восточноевропейской компьютерной сцены. В то время как на Западе Spectrum часто ассоциируется с кассетами, в странах Восточного блока именно дисковые копии игр и софта на «тредах» были основным способом распространения.
  1. «Тредами» обменивались на школьных дворах и компьютерных клубах.
  2. «Сборники» — диски, битком набитые десятками игр, — были ценным ресурсом.
  3. Формат способствовал развитию демосцены и любительского программирования, так как упрощал работу с инструментами разработки.

💎 Заключение: Цифровой артефакт целой эпохи​

.TRD — это больше чем просто формат образа диска. Это:
  • Технический артефакт элегантной, хотя и своеобразной, файловой системы TR-DOS.
  • Культурный символ целого поколения программистов и геймеров Восточной Европы.
  • Живой стандарт, который до сих пор поддерживается эмуляторами и используется для создания нового ретро-софта.
Его изучение открывает дверь в мир профессионального использования ZX Spectrum, где скорость, объём и организация данных вышли на первый план, предвосхитив будущее персональных компьютеров.

Статья составлена на основе технической документации TR-DOS, исходного кода утилит trdman и zxtools, а также спецификаций, опубликованных в сообществе World of Spectrum.