Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:file_archivers:pr [2020-12-26 23:58] GreyWolf |
msx:file_archivers:pr [2023-08-01 13:02] (текущий) GreyWolf [Ссылки] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Архиваторы для MSX серии PR (памяти Егора Вознесенского) ====== | + | ====== Архиваторы для MSX серии PR ====== |
+ | |||
+ | Автор: Егор Вознесенский | ||
FIXME | FIXME | ||
Строка 9: | Строка 11: | ||
* prd2.com | * prd2.com | ||
+ | Файлы программ [[msx:file_archivers:file_archivers#files|здесь]]. | ||
SOLID SOFTWARE inc. | SOLID SOFTWARE inc. | ||
Строка 21: | Строка 23: | ||
Особенно хорошо архиватор PR сжимает тексты, графику и ассемблерные программы. (Однако, весьма плохо сжимает REL-файлы.) | Особенно хорошо архиватор PR сжимает тексты, графику и ассемблерные программы. (Однако, весьма плохо сжимает REL-файлы.) | ||
+ | Основная статья про архиваторы [[msx:file_archivers:file_archivers|здесь]]. | ||
====== 0. Общие замечания ====== | ====== 0. Общие замечания ====== | ||
Строка 31: | Строка 33: | ||
|PR.COM|архиватор| | |PR.COM|архиватор| | ||
|PRD.COM|деархиватор| | |PRD.COM|деархиватор| | ||
- | |PRSFX.COM|изготовитель самораскр. архивов| | + | |PRSFX.COM|изготовитель самораскрывающихся архивов| |
|PR.DOC|настоящий файл, {{pr.txt|версия в кодировке UTF}}| | |PR.DOC|настоящий файл, {{pr.txt|версия в кодировке UTF}}| | ||
- | FIXME заархивированные в одном самораскрывающемся архиве PRINST.COM | ||
+ | Архиватор запускается командой: | ||
<code> | <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}} |