User Tag List

Показано с 1 по 10 из 21

Тема: Формат архива LZA

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    10.06.2016
    Адрес
    г. Киев, Украина
    Сообщений
    87
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Формат архива LZA

    Цитата Сообщение от Hunta Посмотреть сообщение
    Архив
    Это понятно Что за архиватор, что за формат? LHA/LZH знаю, LZS узнал, LZA вроде как 2015 год (нашел еще 1999, похоже на LHA).

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    373
    Поблагодарили
    310 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от kolk Посмотреть сообщение
    Исходников не нашел
    мне вроде бы не попадались, но по опыту - где то оно лежит ;-)
    Цитата Сообщение от kolk Посмотреть сообщение
    LZA вроде как 2015 год
    Код:
        Шапка UZA.SAV
    
                   RT-11 ДЕАРХИВАТОР (многофайловый, метод сжатия "LZS")  v02.01c
                    Автор алгоритма - Haruhiko Okumura, 06-Apr-1989
            Адаптировал: Егоров С.Ф., 1991 (ИМИ), коррекция - (c)EmeSoft90
    
                  ПРИМЕРНАЯ СКОРОСТЬ ДЕАРХИВАЦИИ     >180К байт/мин.
            --------------------------------------------------------------
    
        Шапка LZA.SAV
    
            RT-11 АРХИВАТОР (многофайловый, метод сжатия - "LZS")  v02.01c
                    Автор алгоритма - Haruhiko Okumura, 06-Apr-1989
            Адаптировал: Егоров С.Ф., 1991 (ИМИ), коррекция - (c)EmeSoft90
    
                    ПРИМЕРНАЯ СКОРОСТЬ АРХИВАЦИИ    >50К байт/мин.
            --------------------------------------------------------------
    Есть вот такое (Made in Japan???) LArc
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  4. #3

    Регистрация
    10.06.2016
    Адрес
    г. Киев, Украина
    Сообщений
    87
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Есть вот такое (Made in Japan???) LArc
    Его распаковку умеет LHA. Это не его -lzs-, тот биты мешает. Вообще, посмотреть глазами и подтюнить LZSS оригинала.

  5. #4

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    609
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    175
    Поблагодарили
    135 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Дизассемблированные исходники архиватора LZ(LZA) и разархиватора UZ(UZA)

    Чё-то все увлеклись этими архиваторами и я заодно тоже. Подумал написать кросс упаковщик-распаковщик, чтоб смотреть, что там, в иногда попадающихся архивах. Но пока дизассемблировал - устал и энтузиазм иссяк. Поэтому, пусть кто-нибудь другой напишет.
    Во вложении LZA-UNLZA.rar в архиве:
    . LZ.asm, UZ.asm - исходники для кросс макро-11, потому что используются длинные метки. Сами исходники в КОИ-8 и русские буквы там тоже в КОИ-8. Чтобы компилировать в родной среде RT-11, нужно творчески переделать многие метки в уникальные 6-ти символьные. Чтобы получить русские буквы из КОИ-8 в КОИ-7, нужно применять какие-то неизвестные мне макросы или др. средства.
    Из исходников можно получить как оригинальные LZ/UZ, так и не оригинальные LZA/UZA, где применены только правки от EmeSoft, и то не все.
    LZ получается почти бинарно идентичен, разница - два байта текста, где исправлены две опечатки.
    UZ получается с небольшими отличиями, в двух макросах, порядок передачи аргументов EMTу отличается (потому что только такую макробиблиотеку я нашёл).
    Оригинальные LZA/UZA не получатся, т.к. EmeSoft там увлечённо шифровал код методом ксорения.
    . lzss.c - исходник Haruhiko Okumura, который брался за основу архиватора/разархиватора. Просто так, не стал его из директории выкидывать, когда архив паковал.
    . Macro11.exe - кроссассемблер макро-11 от Rhialto, с небольшими исправлениями (1.компиляция под RT-11 работает, а то он RSX увлёкся и поломал там RT-11, 2.имена макросов принудительно обрезаются до 6 символов при использовании длинных лексем, чтобы из SYSMAC.SML макросы доставались даже если писать их полное имя. Это не очень полезная фича, просто она осталась в этой сборке, 3. isdigit при парсинге чисел в 16-ричной системе счислении работает.)
    . pclink11.exe - кросслинковщик от nzeemin
    . батники, чтобы компилировать, две макробиблиотеки, первые попавшиеся, которые я нашёл, для сборки в SAV.
    . Формат архива LZA.txt - описание формата архива, чтобы писать кросс упаковщик/распаковщик.
    Последний раз редактировалось gid; 20.03.2021 в 19:13.

    Эти 3 пользователя(ей) поблагодарили gid за это полезное сообщение:

    kolk(20.03.2021), nzeemin(20.03.2021), Oleg N. Cher(11.03.2025)

  6. #5

    Регистрация
    10.06.2016
    Адрес
    г. Киев, Украина
    Сообщений
    87
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    КС - простая пословная сумма сжатого потока без переноса.
    В оригинальной версии (не EmeSoft) сжатый поток не инвертирован.

    Байт выравнивания на границу слова в двух версиях остался под вопросом. (По идее, его тоже инвертируют?)
    Последний раз редактировалось kolk; 20.03.2021 в 19:41.

  7. #6

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,047
    Спасибо Благодарностей отдано 
    1,140
    Спасибо Благодарностей получено 
    1,458
    Поблагодарили
    520 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    kolk, так что в итоге с кросс-архиватором?
    Или хотя бы давайте полное описание формата сделаем.
    Так-то конечно хорошо бы иметь хотя бы разархиватор для всех форматов архивов, использовавшихся на советских PDP-like машинах.

  8. #7

    Регистрация
    10.06.2016
    Адрес
    г. Киев, Украина
    Сообщений
    87
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Копирую сюда Формат архива LZA.txt от @gid

    Код:
    проги:
    LZ.SAV - упаковщик LZS
    UZ.SAV - распаковщик LZS
    прога с правками от EmeSoft:
    LZA.SAV - упаковщик LZA
    UZA.SAV - распаковщик LZA
    Правки:
    1. для упаковщика уменьшен буфер в 2 раза, соответственно памяти требуется сильно меньше.
    2. сжатые данные инвертированы, но КС считается по неинвертированным данным
    3. изменён текст, сделаны незначительные оптимизации.
    
    формат Архива:
    
    struct ArchHeader {             // заголовок архива
        word    archID = EmeSoft ? ^R<LZA> : ^R<LZS>; // сигнатура
        word    version = "21";     // версия архива
        word    N;                  // размер кольцевого буфера в байтах 010000 или 04000 для EmeSoft
        word    date;               // дата создания архива
        word    password;           // зашифрованный пароль для распаковки, 0, если нету.
                /* пароль шифруется так:
                   password = comb(swab(^R<nnn> xor archID)),
                   где nnn - открытый пароль, заданный в ключе /P */
        word    0;                  // зарезервировано
        word    archCatSize;        // размер каталога архива в байтах, 0 - если нет каталога
        word    archCatBlk;         // номер блока начала каталога, относительно начала файла архива,
                                    // 0 - если нет каталога
                                    // каталог архива выравнивается по границе блока.
    };
    
    struct FileHeader {             // заголовок файла
        dword   .rad50 "FILNAM";    // имя файла в RADIX-50
        word    .rad50 "EXT"        // расширение файла в RADIX-50
        word    unpSizeBlk;         // размер файла в блоках до архивации
        word    date;               // дата создания файла
        word    CS;                 // контрольная сумма упакованного массива
        dword   pckSize;            // размер упакованного массива в байтах
    }
    
    struct ArchCatRecord {  // запись о файле в каталоге архива
        word    blkNum;     // номер блока относительно начала файла архива, с которого начинается файл в архиве
        word    offset;     // смещение в блоке, с которого начинается массив упакованных данных файла
        FileHeader file;    // структура заголовка файла
    }
    
    // формат Архива
    Archive {
        ArchHeader header;      // заголовок архива
        {
            FileHeader fh;      // заголовок файла
            byte[fh.pckSize];   // упакованный массив
            .wordeven           // выравнивание по слову
        } по количеству файлов в архиве;
    
        .blockeven                  // выравнивание по блоку
        // каталог архива, опционально
        {
           ArchCatRecord    fileRecord; // запись о файле в каталоге архива
        } по количеству файлов в архиве;
    };

    Этот пользователь поблагодарил kolk за это полезное сообщение:

    nzeemin(11.04.2021)

  9. #8

    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,699
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    195
    Поблагодарили
    127 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    хорошо бы иметь хотя бы разархиватор для всех форматов архивов, использовавшихся на советских PDP-like машинах.
    или хотя бы их список?

    под rt-11:

    FCU
    LZ/UZ
    LZA/UZA
    PACK2
    PACKER/UNPACR
    PK
    PRESS

    + на БК есть еще

    Эти 2 пользователя(ей) поблагодарили shattered за это полезное сообщение:

    nzeemin(11.03.2025), vva(12.03.2025)

  10. #9

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,047
    Спасибо Благодарностей отдано 
    1,140
    Спасибо Благодарностей получено 
    1,458
    Поблагодарили
    520 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Техническая информация по FCU.

    Код:
       Итак, как было сказано  в  начале, данный продукт являет собой, по
    сути, lzhuf. Если кому-то интересно как построен его алгоритм,  пусть
    он  обратится  в  F-Bit  и  попросит  исходные   тексты   архиватора,
    написанного Hurahiko Okumura и попробует в них  разобраться.  Я  знаю
    лишь как работает lz. Есть, в принципе, из  той  же  серии  архиватор
    lzarm, который  тоже основан  на  lz, но архивирует лучше. Я побоялся
    его  адаптировать, хотя он был бы и короче, потому, что он работал бы
    он раза в два медленнее, а выгадывал бы не более 5%. Вполне возможно,
    что я напишу и его, но это будет уже другой  архиватор.  Кроме  того,
    алгоритм, реализованный здесь,  имеет  два  неоценимых  качества:  он
    достаточно быстр и архивирует лучше чем  PACK,  LZSS  и  ARC.  Других
    архиваторов у меня нет и с ними сравнить я не могу. В сравнении с ARJ
    на убогой машине  фирмы  IBM  (один  ВЭ  ЭМ  ЭР  ЭС)  он  проигрывает
    где-то 3% при архивации, но зато, он может работать в 56 Кб памяти!!! 
       В архиве имеется каталог файлов, которые в нем есть. Этот  каталог
    "размазан" по всему архиву. Перед  началом  файла  в  архиве  имеется
    заголовок из 7 слов: 3 слова имени  (в  коде  RADIX-50),  изначальная
    длина файла в блоках,  системная  дата  (старший  бит  даты  означает
    что файл был защищенным и при разархивации он защищается от удаления)
    далее следуют два слова, которые имеют смысл  длины  файла  в  архиве
    (с точностью до  слова).  В  младшем  байте  первого  слова  хранится
    количество слов, старший байт имеет специальный вид это служит ключом
    того, что это заголовок. И последнее, 7-е слово содержит  число  бло-
    ков, которое файл занимает в архиве. Два  последних  слова  заголовка
    имеют важное значение  т.к.  во  время  разархивации  именно  на  них
    делается основной опор. Если эти слова испочены, то восстановит  файл
    из архива  становится  невозможным,  поэтому  предусмотрен  ключ  /.,
    котоный в режиме List выводит содержимое  этих  двух  слов.  Если  Вы
    хотите обезопасить свой архив,- после  архивации  сохраните  значения
    этих слов в каталоге архива на диске  и  в  случае  необходимости  Вы
    сможете с помощью DESS'а восстановить их.
       В след  за  заголовком  архива  расположен  собственно  архив.  Он
    заканчивается двумя специальными словами: первое из них - контрольная
    сумма файла (исходного), второе - контрольная сумма файла в архиве.
    Длина файла в архиве дается без учета этих двух слов.
       Во время тестирования проверяется:
     - Первые три слова. Они должны быть допустимы в радиксе. Если первое
       слово имени файла ноль, архиватор считает это концом архива.
     - Длина исходного файла. Она должна быть отлична от нуля.
     - Ключефой байт в первом слове длины файла в архиве.
    Если хотя бы одно из перечисленных  условий  не  соблюдено  выводится
    сообщение Format archive error. Также проверяется  контрольная  сумма
    файла в архиве.
       При разархивации проверяется контрольная сумма исходного файла.
    Параметры сжатия из кода:
    Код:
    NIL	= -2
    F	= 60.
    
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~ Huffman coding ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N	= 4096.
    N.char	= <254.+F>
    T	= <N.char*2-1>
    R	= T-1
    Max.fr	= 100000
    Контрольная сумма считается простым сложением слов.

  11. #10

    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,699
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    195
    Поблагодарили
    127 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для БК (список из описания диска клуба бк 1998.03.04):

    DPRESS [клуб 1996-1], LZ [1997-7], ALGCOMP, BKZIP, CRUNCH [1996-6], BKPACK [1994-5], MKPACK, FC, PiPACK [1994-8]

    Этот пользователь поблагодарил shattered за это полезное сообщение:

    nzeemin(02.11.2025)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 5
    Последнее: 06.03.2023, 00:01
  2. Форк демо-архива вышел из беты
    от Hacker VBI в разделе Новости
    Ответов: 133
    Последнее: 20.10.2016, 10:26
  3. Третья часть игр из моего архива
    от Wizard в разделе Игры
    Ответов: 0
    Последнее: 19.05.2007, 16:41
  4. Вторая часть игр из моего архива
    от Wizard в разделе Игры
    Ответов: 0
    Последнее: 16.05.2007, 16:49
  5. Первая часть игр из моего архива
    от Wizard в разделе Игры
    Ответов: 3
    Последнее: 15.05.2007, 08:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •