Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
msx:file_archivers:pr [2020-12-26 23:50] GreyWolf создано |
msx:file_archivers:pr [2023-08-01 13:02] (текущий) GreyWolf [Ссылки] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Архиваторы для MSX серии PR (памяти Егора Вознесенского) ====== | + | ====== Архиваторы для MSX серии PR ====== |
+ | |||
+ | Автор: Егор Вознесенский | ||
FIXME | FIXME | ||
* pr.com | * pr.com | ||
- | * pr.doc | + | * pr.doc |
* pr2.com | * pr2.com | ||
* prd.com | * prd.com | ||
* prd2.com | * prd2.com | ||
- | {{pr.txt|}} | + | Файлы программ [[msx:file_archivers:file_archivers#files|здесь]]. |
SOLID SOFTWARE inc. | SOLID SOFTWARE inc. | ||
Строка 15: | Строка 17: | ||
Архиваторы серии PR версия 1.30 (некоммерческая) описание программ | Архиваторы серии PR версия 1.30 (некоммерческая) описание программ | ||
- | Архиваторы серии PR предназначены для высокоэффективного сжатия информации на компьютерах MSX. | + | Архиваторы серии PR предназначены для высокоэффективного сжатия информации на компьютерах MSX. |
- | Благодаря применению для сжатия информации алгоритма LZW-M, более мощного, чем Хуффмановское сжатие, удалось получить быстрый однопроходный архиватор, по производительности приближающийся к используемым на IBM архиваторам. По коэффициенту сжатия архиватор PR немного лучше архиватора ZOO. Коэффициент сжатия архиватора PR лучше коэффициента ARC в среднем на 7%. Особенно хорошо архиватор PR сжимает тексты, графику и ассемблерные программы. (Однако, весьма плохо сжимает REL-файлы.) | + | Благодаря применению для сжатия информации алгоритма LZW-M, более мощного, чем Хуффмановское сжатие, удалось получить быстрый однопроходный архиватор, по производительности приближающийся к используемым на IBM архиваторам. По коэффициенту сжатия архиватор PR немного лучше архиватора ZOO. Коэффициент сжатия архиватора PR лучше коэффициента ARC в среднем на 7%. |
+ | Особенно хорошо архиватор PR сжимает тексты, графику и ассемблерные программы. (Однако, весьма плохо сжимает REL-файлы.) | ||
- | ===== 0. Общие замечания ===== | + | Основная статья про архиваторы [[msx:file_archivers:file_archivers|здесь]]. |
- | В новой версии (1.30) архиватора существенно изменена структура заголовка файла, что позволило деархиватору значительно быстрее находить в архиве нужный файл. Кроме того, теперь архиватор записывает в архив файлы, которые не может сжать, "так, как они есть", что улучшает характеристики сжатия. Избавление от части кода, унаследованной "по историческим причинам" от системы сжатия изображений PICPRESSOR, позволило значительно улучшить производительность архиватора - теперь он работает несколько быстрее, чем стандартный ARC. | + | ====== 0. Общие замечания ====== |
- | <code> | + | В новой версии (1.30) архиватора существенно изменена структура заголовка файла, что позволило деархиватору значительно быстрее находить в архиве нужный файл. Кроме того, теперь архиватор записывает в архив файлы, которые не может сжать, "так, как они есть", что улучшает характеристики сжатия. Избавление от части кода, унаследованной "по историческим причинам" от системы сжатия изображений PICPRESSOR, позволило значительно улучшить производительность архиватора - теперь он работает несколько быстрее, чем стандартный ARC. |
- | 1. Использование архиватора PR. | + | |
- | ------------------------------- | + | |
- | В комплект поставки входят 4 файлов: | ||
- | PR .COM - архиватор | + | ====== 1. Использование архиватора PR ====== |
- | PRD .COM - деархиватор | + | В комплект поставки входят 4 файлов: |
- | PRSFX .COM - изготовитель самораскр. архивов | + | |PR.COM|архиватор| |
- | PR .DOC - настоящий файл | + | |PRD.COM|деархиватор| |
- | заархивированные в одном самораскрывающемся архиве | + | |PRSFX.COM|изготовитель самораскрывающихся архивов| |
- | PRINST .COM | + | |PR.DOC|настоящий файл, {{pr.txt|версия в кодировке UTF}}| |
- | Архиватор запускается командой: | + | Архиватор запускается командой: |
+ | <code> | ||
+ | PR [-gma] <имя архива> [<файл(ы)> …][@список] | ||
+ | </code> | ||
+ | Имя архива может быть указано без расширения, расширение по умолчанию ".AR". | ||
+ | \\ <Файлы> — несколько спецификаций имён файлов, простых или с wildchards "?","*". Если не указано ни одного имени файла по умолчанию архивируются все файлы на диске. | ||
+ | \\ Конструкция <@список> позволяет считывать имена файлов, подлежащие архивации из текстового файла с именем "список". | ||
+ | В этом файле перечислены спецификации файлов, каждая с новой строки. Спецификации файлов могут содержать wildchards. | ||
- | PR [-gma] <имя архива> [<файл(ы)> ...][@список] | + | После запуска программа запрашивает, какие именно файлы архивировать, выводя на экран файлы. Ответы: Y/N/G — имеют традиционное значение: Да/Нет/Все. Нажатие клавиши <key>Q |
+ | </key> прекращает процесс архивации, архив закрывается. | ||
+ | Значения ключей: | ||
+ | |''-g''|архивация потоком, без запросов, имена файлов выводятся на консоль.| | ||
+ | |''-m''|файлы переписываются в архив и удаляются с диска| | ||
+ | |''-a''|файлы дописываются в существующий архив.| | ||
+ | Отсутствие архива не является ошибкой: создается новый архив. | ||
- | Имя архива может быть указано без расширения, | + | Деархиватор запускается командой: |
- | расширение по умолчанию ".AR". <Файлы> - несколько | + | <code> |
- | спецификаций име файлов, простых или с wildchards "?","*". | + | PRD [-d|v|-oX|-f] <имя архива> <спецификация>.., |
- | Если не указано ни одного имени файла по умолчанию | + | </code> |
- | архивируются все файлы на диске. | + | После запуска программа выдает по очереди имена файлов из архива, ответить на которые также можно Y/N/G. При нажатии <key>Q</key> или <key>CTRL+c</key> процесс деархивирования прекращается. |
- | Конструкция <@список> позволяет считывать имена файлов, | + | \\ <Спецификация> является маской имени файла для извлечения из архива нужных файлов. Пустая спецификация соответствует *.*. |
- | подлежащие архивации из текстового файла с именем "список". | + | Значения ключей: |
- | В этом файле перечислены спецификации файлов, каждая с новой | + | |''-d''|вывод оглавления архива| |
- | строки. Спецификации файлов могут содержать wildchards. | + | |''-v''|деархивация на экран (печать текста из архива)| |
- | После запуска программа запрашивает, какие именно файлы | + | |''-oX''|деархивированные файлы выводятся на диск X| |
- | архивировать, выводя на экран файлы. Ответы: Y/N/G - имеют | + | Как понятно из описания, эти ключи не могут комбинироваться, а используются только по одному. |
- | традиционное значение: Да/Нет/Все. Нажатие клавиши Q | + | |''-f''|при деархивации не производить проверку наличия файла на диске. В противном случае будет каждый раз запрашиваться разрешение на перезапись файла.| |
- | прекращает процесс архивации, архив закрывается. | + | |
- | Значения ключей: | + | |
- | -g: архивация потоком, без запросов, имена файлов | + | |
- | выводятся на консоль. | + | |
- | -m: файлы переписываются в архив и удаляются с диска | + | |
- | -a: файлы дописываются в существующий архив. | + | |
- | Отсутствие архива не является ошибкой: создается | + | |
- | новый архив. | + | |
+ | ====== 2. PRSFX — изготовитель самораскрывающихся архивов ====== | ||
+ | FIXME | ||
- | Деархиватор запускается командой: | + | PRSFX запускается командой: |
+ | <code> | ||
+ | PRSFX <имя архива> [d:[<имя SFX-архива>]] | ||
+ | </code> | ||
+ | Создание самораскрывающегося архива проходит в 2 этапа. | ||
- | PRD [-d|v|-oX|-f] <имя архива> <спецификация>.., | + | Сначала следует создать обычный архив, а затем обработать его программой PRSFX. При этом создается COM–файл, а обычный архив удаляется. При создании SFX–архива следует помнить, |
+ | что поскольку на MSX нет EXE–файлов, то объем SFX–архива может быть не более, чем 50 Кбайт. | ||
- | После запуска программа выдает по очереди имена файлов | + | ====== 3. Требования к компьютеру ====== |
- | из архива, ответить на которые также можно Y/N/G. При | + | |
- | нажатии Q или CTRL-C процесс деархивирования прекращается. | + | |
- | <Спецификация> является маской имени файла для | + | |
- | извлечения из архива нужных файлов. Пустая спецификация | + | |
- | соответствует *.*. | + | |
- | Значения ключей: | + | |
- | -d: вывод оглавления архива | + | |
- | -v: деархивация на экран (печать текста из архива) | + | |
- | -oX:деархивированные файлы выводятся на диск X | + | |
- | Kак понятно из описания, эти ключи не могут | + | |
- | комбинироваться, а используются только по одному. | + | |
- | -f: при деархивации не производить проверку наличия | + | |
- | файла на диске. В противном случае будет каждый раз | + | |
- | запрашиваться разрешение на перезапись файла. | + | |
+ | Программы PR, PRD и PRSFX работают на MSX-компьютере любой марки и любого поколения. Используются только стандартные вызовы DOS. Обе программы не используют ни маппер, ни видеопамять, а также не используют никаких областей основной памяти, кроме зоны [[msx:dos:#tpa|TPA]], отведенной под COM–программы. | ||
- | 2. PRSFX - изготовитель самораскрывающихся архивов | + | Программа PR использует память не ниже, чем до AF00h |
- | -------------------------------------------------- | + | |
- | PRSFX запускается командой: | + | Программа PRD использует всю доступную память. |
- | PRSFX <имя архива> [d:[<имя SFX-архива>]] | + | Программа PRSFX может использовать всю [[msx:dos:#tpa|TPA]]. |
- | Создание самораскрывающегося архива проходит в 2 этапа. | + | Использование для вывода символа на консоль не функции BIOS, а функции DOS(2) позволяет достичь следующих удобств при пользовании архиваторами PR: |
- | Сначала следует создать обычный архив, а затем обработать | + | * а) Возможность использования <key>CTRL+s</key>/<key>CTRL+q</key> для приостановки/продолжения вывода на экран и <key>CTRL+p</key> для копирования вывода на принтер. |
- | его программой PRSFX. При этом создается COM-файл, а обычный | + | * <WRAP>б) Возможность использования переопределения вывода в файл в тех системах, где оно предусмотрено (я знаю две: MSXDOS-2 и MISIX). Действительно, можно написать: <WRAP group> |
- | архив удаляется. При создании SFX-архива следует помнить, | + | <WRAP half column> |
- | что поскольку на MSX нет EXE-файлов, то объем SFX-архива | + | <code>PRD -d foo >prn</code> |
- | может быть не более, чем 50 Кбайт. | + | </WRAP> |
+ | <WRAP half column> | ||
+ | , | ||
+ | </WRAP> | ||
+ | </WRAP> | ||
+ | для того, чтобы оглавление вашего архива попало на принтер. | ||
+ | </WRAP> | ||
- | 3. Требования к компьютеру. | + | ====== 4. Формат архивного файла ====== |
- | --------------------------- | + | |
- | Программы PR, PRD и PRSFX работают на MSX-компьютере | + | * <WRAP>а) заголовок архива: |
- | любой марки и любого поколения. Используются только | + | |''+0: 'AR'''|сигнатура архиватора| |
- | стандартные вызовы DOS. Обе программы не используют ни | + | |''+2: db 13''|максимальное число бит на слово LZ| |
- | маппер, ни видеопамять, а также не используют никаких | + | |''+3: db 2''|версия алгоритма| |
- | областей основной памяти, кроме зоны TPA, отведенной под | + | </WRAP> |
- | COM- программы. | + | * <WRAP>б) один или несколько скомпрессированных файлов: |
- | Программа PR использует память не ниже, чем до AF00h | + | |''+0: ds 1''|флаговый байт| |
- | Программа PRD использует всю доступную память. | + | |''+1: ds 11''|имя файла| |
- | Программа PRSFX может испоьзовать всю TPA. | + | |''+12:ds 4''|длина файла до архивации| |
+ | |''+16:ds 4''|дата и время| | ||
+ | |''+20:ds 4''|ссылка на следующий заголовок| | ||
+ | |''+24 … …''|файл, закодированный по LZW-M алгоритму| | ||
+ | </WRAP> | ||
+ | Значения битов флагового байта: | ||
+ | |0й бит|0 — файл сжат, 1 — файл не сжат| | ||
+ | |7й бит|1 — признак конца архива (сейчас в последний байт архива пишется 0xFF)| | ||
+ | Остальные биты зарезервированы. | ||
- | Использование для вывода сивола на консоль не функции | + | Данные пишутся пословно, начиная с длины слова 9 бит. |
- | 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|зарезервировано| | ||
+ | |260|CR/LF| | ||
+ | |261|два пробела| | ||
+ | |262|три пробела| | ||
+ | |263|точка и пробел| | ||
+ | |264|запятая и пробел| | ||
+ | |265|точка и CR| | ||
+ | |266|дефис и CR| | ||
- | 256: конец файла. | + | Более подробное описание LZW–алгоритма можно прочитать в журнале BYTE (9/1990). Там же есть хорошее описание Хуфф. сжатия за один проход. LZW-M алгоритм отличается от стандартного алгоритма тем, что длина слова увеличивается не при заполнении таблицы, а при передаче, что улучшает коэффициент сжатия. |
- | 257: увеличить длину слова на 1 бит | + | |
- | 258: сбросить таблицу кодов. | + | |
- | 259: зарезервировано | + | |
- | 260: CR/LF | + | |
- | 261: два пробела | + | |
- | 262: три пробела | + | |
- | 263: точка и пробел | + | |
- | 264: запятая и пробел | + | |
- | 265: точка и CR | + | |
- | 266: дефис и CR | + | |
- | Более подробное описание LZW-алгоритма можно прочитать | + | ====== 5. Перспективы ====== |
- | в журнале BYTE (9/1990). Там же есть хорошее описание Хуфф. | + | |
- | сжатия за один проход. LZW-M алгоритм отличается от | + | |
- | стандартного алгоритма тем, что длина слова увеличивается не | + | |
- | при заполнении таблицы, а при передаче, что улучшает | + | |
- | коэффициент сжатия. | + | |
+ | Вскоре появится новая версия семейства PR, включающая: | ||
+ | * богатые сервисные функции. | ||
+ | * более удобный интерфейс, объединение архиватора и деархиватора в одной программе. | ||
+ | * версии архиватора для других операционных систем (MISIX, [[msx:cp_m:cp_m|CP/M]]). | ||
+ | * REL модули для деархивации, совместимые с [[msx:ascii_c:ascii_c|]]. | ||
- | 5. Перспективы. | + | ====== 6. Предложения ====== |
- | ---------------- | + | |
- | Вскоре появится новая версия семейства PR, включающая: | + | Фирма SOLID Software также предлагает: |
- | + | * ОС MISIX (инструментальная quasi–POSIX система) | |
- | - богатые сервисные функции. | + | * Компилятор V-BASIC версии 2.5 и 3.0 |
- | - более удобный интерфейс, объединение архиватора и | + | * Систему архивации для файлов SCREEN8 (архивирует в 2 раза лучше, чем GIF) |
- | деархиватора в одной программе. | + | * Библиотеки для [[msx:ascii_c:ascii_c|]]. |
- | - версии архиватора для других операционных систем | + | * Утилиты для работы с дисками (форматирование, проверка, увеличение емкости) |
- | (MISIX, CP/M). | + | * TURBO — версию MSX-2 SUB-ROM (с исправленными ошибками и улучшенными характеристиками.) |
- | - REL модули для деархивации, совместимые с ASCII-C. | + | |
- | + | ||
- | + | ||
- | 6. Фирма SOLID Software также предлагает: | + | |
- | ----------------------------------------- | + | |
- | + | ||
- | - ОС MISIX (инструментальная quasi-POSIX система) | + | |
- | - Компилятор V-BASIC версии 2.5 и 3.0 | + | |
- | - Систему архивации для файлов SCREEN8 (архивирует в 2 | + | |
- | раза лучше, чем GIF) | + | |
- | - Библиотеки для ASCII-C. | + | |
- | - Утилиты для работы с дисками (форматирование, | + | |
- | проверка, увеличение емкости) | + | |
- | - TURBO - версию MSX-2 SUB-ROM (с исправленными | + | |
- | ошибками и улучшенными характеристиками.) | + | |
- | </code> | + | |
====== Ссылки ====== | ====== Ссылки ====== | ||
- | {{tag> MSX File_Archiver application}} | + | {{tag> MSX File_Archiver application voznesensky_e_g}} |