Исходники LZCE32 ~~~~~~~~~~~~~~~~ Я очень удивился, когда, скачав на TopDevicе LZCE32, решил посмотреть как она написана. Ну, человек, блин, автор, так его, сырцы зажал, а вместо них в LZ?1.INC hex-дампы положил. И тогда я сказал: "Господи, дай мне исходные тексты этого движка", и, вуаля ... Короче, думаю автор не обидится на меня за публикацию исходников, а ежели обидится... разберемся в суде ;-) Просто, после того, как посмотрел на дамп вместо текста, первое желание было отослать весь каталог на нуль (aka nul), потому как не люблю пользовать чужие куски кода "без понимания сути происходящего" [(c) кажется by Lozinsky]. Но потом чувство спортивного интереса взяло верх, и я решил поковырять код (347+365 bytes). Ковырял IDA'ой. Результаты ковыряния в первозданном виде можно найти в DISASMED\IDBS\*.idb, немного причесанные и откомментированные - в DISASMED\lz?1.inc С точки зрения оригинальности, ммм... по моему глубоко субъективному IMHO это есть обычная, правда достаточно компактная и аккуратная реализация простейшего LZxxx или же LZW (отличий точно не помню, но алгоритм прям по описалову) Далее ~~~~~ Далее было замечено, что поскольку движок не под DOS, а вовсе даже под маздай, его можно несколько улучшить, увеличив размер словаря (и время сжатия соответственно). Для этого пришлось СЛЕГКА изменить код (см. IMPROVED\*.*) Тестировалось файло на 54k: Разрядность, биты у 10 у 11 у 12 у 13 у 14 у 15 Сжатый файл, Kb у 34 у 30 у 28 у 24 у 22 у 21,9 Более того, на 15 битах декомпрессор вылетел с ошибкой, но это вроде по хер, т.к. от 14 мало отличается. --------------------------------------------------------------- Green Monster, 24.05.00 btw@mail.ru