Инструменты пользователя

Инструменты сайта


msx:file_archivers:pr

Архиваторы для MSX серии PR

Автор: Егор Вознесенский

FIXME

  • pr.com
  • pr.doc
  • pr2.com
  • prd.com
  • prd2.com

Файлы программ здесь.

SOLID SOFTWARE inc.

Архиваторы серии PR версия 1.30 (некоммерческая) описание программ

Архиваторы серии PR предназначены для высокоэффективного сжатия информации на компьютерах MSX.

Благодаря применению для сжатия информации алгоритма LZW-M, более мощного, чем Хуффмановское сжатие, удалось получить быстрый однопроходный архиватор, по производительности приближающийся к используемым на IBM архиваторам. По коэффициенту сжатия архиватор PR немного лучше архиватора ZOO. Коэффициент сжатия архиватора PR лучше коэффициента ARC в среднем на 7%.

Особенно хорошо архиватор PR сжимает тексты, графику и ассемблерные программы. (Однако, весьма плохо сжимает REL-файлы.)

Основная статья про архиваторы здесь.

0. Общие замечания

В новой версии (1.30) архиватора существенно изменена структура заголовка файла, что позволило деархиватору значительно быстрее находить в архиве нужный файл. Кроме того, теперь архиватор записывает в архив файлы, которые не может сжать, «так, как они есть», что улучшает характеристики сжатия. Избавление от части кода, унаследованной «по историческим причинам» от системы сжатия изображений PICPRESSOR, позволило значительно улучшить производительность архиватора - теперь он работает несколько быстрее, чем стандартный ARC.

1. Использование архиватора PR

В комплект поставки входят 4 файлов:

PR.COMархиватор
PRD.COMдеархиватор
PRSFX.COMизготовитель самораскрывающихся архивов
PR.DOCнастоящий файл, версия в кодировке UTF

Архиватор запускается командой:

PR [-gma] <имя архива> [<файл(ы)> …][@список]

Имя архива может быть указано без расширения, расширение по умолчанию «.AR».
<Файлы> — несколько спецификаций имён файлов, простых или с wildchards «?»,«*». Если не указано ни одного имени файла по умолчанию архивируются все файлы на диске.
Конструкция <@список> позволяет считывать имена файлов, подлежащие архивации из текстового файла с именем «список». В этом файле перечислены спецификации файлов, каждая с новой строки. Спецификации файлов могут содержать wildchards.

После запуска программа запрашивает, какие именно файлы архивировать, выводя на экран файлы. Ответы: Y/N/G — имеют традиционное значение: Да/Нет/Все. Нажатие клавиши Q прекращает процесс архивации, архив закрывается. Значения ключей:

-gархивация потоком, без запросов, имена файлов выводятся на консоль.
-mфайлы переписываются в архив и удаляются с диска
-aфайлы дописываются в существующий архив.

Отсутствие архива не является ошибкой: создается новый архив.

Деархиватор запускается командой:

PRD [-d|v|-oX|-f] <имя архива> <спецификация>..,

После запуска программа выдает по очереди имена файлов из архива, ответить на которые также можно Y/N/G. При нажатии Q или CTRL+C процесс деархивирования прекращается.
<Спецификация> является маской имени файла для извлечения из архива нужных файлов. Пустая спецификация соответствует *.*. Значения ключей:

-dвывод оглавления архива
-vдеархивация на экран (печать текста из архива)
-oXдеархивированные файлы выводятся на диск X

Как понятно из описания, эти ключи не могут комбинироваться, а используются только по одному.

-fпри деархивации не производить проверку наличия файла на диске. В противном случае будет каждый раз запрашиваться разрешение на перезапись файла.

2. PRSFX — изготовитель самораскрывающихся архивов

FIXME

PRSFX запускается командой:

PRSFX <имя архива> [d:[<имя SFX-архива>]]

Создание самораскрывающегося архива проходит в 2 этапа.

Сначала следует создать обычный архив, а затем обработать его программой PRSFX. При этом создается COM–файл, а обычный архив удаляется. При создании SFX–архива следует помнить, что поскольку на MSX нет EXE–файлов, то объем SFX–архива может быть не более, чем 50 Кбайт.

3. Требования к компьютеру

Программы PR, PRD и PRSFX работают на MSX-компьютере любой марки и любого поколения. Используются только стандартные вызовы DOS. Обе программы не используют ни маппер, ни видеопамять, а также не используют никаких областей основной памяти, кроме зоны TPA, отведенной под COM–программы.

Программа PR использует память не ниже, чем до AF00h

Программа PRD использует всю доступную память.

Программа PRSFX может использовать всю TPA.

Использование для вывода символа на консоль не функции BIOS, а функции DOS(2) позволяет достичь следующих удобств при пользовании архиваторами PR:

  • а) Возможность использования CTRL+S/CTRL+Q для приостановки/продолжения вывода на экран и CTRL+P для копирования вывода на принтер.
  • б) Возможность использования переопределения вывода в файл в тех системах, где оно предусмотрено (я знаю две: MSXDOS-2 и MISIX). Действительно, можно написать:

    PRD -d foo >prn

    ,

    для того, чтобы оглавление вашего архива попало на принтер.

4. Формат архивного файла

  • а) заголовок архива:

    +0: 'AR'сигнатура архиватора
    +2: db 13максимальное число бит на слово LZ
    +3: db 2версия алгоритма
  • б) один или несколько скомпрессированных файлов:

    +0: ds 1флаговый байт
    +1: ds 11имя файла
    +12:ds 4длина файла до архивации
    +16:ds 4дата и время
    +20:ds 4ссылка на следующий заголовок
    +24 … …файл, закодированный по LZW-M алгоритму

Значения битов флагового байта:

0й бит0 — файл сжат, 1 — файл не сжат
7й бит1 — признак конца архива (сейчас в последний байт архива пишется 0xFF)

Остальные биты зарезервированы.

Данные пишутся пословно, начиная с длины слова 9 бит. Специальными кодами являются следующие:

256конец файла
257увеличить длину слова на 1 бит
258сбросить таблицу кодов
259зарезервировано
260CR/LF
261два пробела
262три пробела
263точка и пробел
264запятая и пробел
265точка и CR
266дефис и CR

Более подробное описание LZW–алгоритма можно прочитать в журнале BYTE (9/1990). Там же есть хорошее описание Хуфф. сжатия за один проход. LZW-M алгоритм отличается от стандартного алгоритма тем, что длина слова увеличивается не при заполнении таблицы, а при передаче, что улучшает коэффициент сжатия.

5. Перспективы

Вскоре появится новая версия семейства PR, включающая:

  • богатые сервисные функции.
  • более удобный интерфейс, объединение архиватора и деархиватора в одной программе.
  • версии архиватора для других операционных систем (MISIX, CP/M).
  • REL модули для деархивации, совместимые с MSX ASCII C.

6. Предложения

Фирма SOLID Software также предлагает:

  • ОС MISIX (инструментальная quasi–POSIX система)
  • Компилятор V-BASIC версии 2.5 и 3.0
  • Систему архивации для файлов SCREEN8 (архивирует в 2 раза лучше, чем GIF)
  • Библиотеки для MSX ASCII C.
  • Утилиты для работы с дисками (форматирование, проверка, увеличение емкости)
  • TURBO — версию MSX-2 SUB-ROM (с исправленными ошибками и улучшенными характеристиками.)

Ссылки

msx/file_archivers/pr.txt · Последние изменения: 2023-08-01 13:02 — GreyWolf