<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Packer_v2.2</id>
	<title>Packer v2.2 - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Packer_v2.2"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Packer_v2.2&amp;action=history"/>
	<updated>2026-10-01T19:57:38Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Packer_v2.2&amp;diff=3152&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Packer_v2.2&amp;diff=3152&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[File:Packer2.2 by Sote.gif]]&lt;br /&gt;
&lt;br /&gt;
== Historia ==&lt;br /&gt;
&lt;br /&gt;
Packer v.2.2 to program do kompresji plików stworzony w 1994 roku przez Adama &amp;quot;[[SoTe]]&amp;quot; Bieniasa. SoTe stworzył go po napisaniu swoich cruncherów z serii [[Code3 Cruncher]]. Narzędzie powstało z potrzeby chwili, ponieważ na [[Scena|scenie]] nie było w owym czasie szybkiego i efektywnego narzędzia do kompresji plików &amp;quot;wszelakich&amp;quot;. Program był szeroko wykorzystywany przez [[Slight]], np. artykuły oraz wszelakie pliki magazynu dyskowego [[Barymag]] były spakowane przy użyciu tego programu. Po wydaniu drugiego numeru magazynu dyskowego Barymag narzędzie zostało upublicznione. Program potrafi kompresować dowolne zbiory, i w dość ograniczonym stopniu potrafi również dokonać kompresji programów w [[Binarny plik DOSu|binarnym formacie DOS]]. W przeciwieństwie do programów typu [[Super Packer]], Packer v2.2 był przeznaczony dla bardziej zaawansowanych użytkowników i wymagał od użytkownika podstawowej znajomości struktury plików binarnych, oraz podstawowej znajomości [[Asembler|asemblera]] w przypadku gdy użytkownik chciał dokonać dekompresji danych spakowanych przy użyciu Packer v2.2 w swoim programie.&lt;br /&gt;
&lt;br /&gt;
== Algorytm Kompresji ==&lt;br /&gt;
&lt;br /&gt;
Algorytm wykorzystany do kompresji danych przez Packer v2.2 to mutacja [http://pl.wikipedia.org/wiki/LZ77 LZ77]/[http://en.wikipedia.org/wiki/LZSS LZSS] opracowana przez SoTe, ten algorytm kompresji w tamtych czasach potocznie nazywano implodingiem. Imploding zastosowany w Packer v2.2 ma jedno drzewo &amp;quot;znacznikowe&amp;quot;. Drzewo to wybrane doświadczalnie jest trochę podobne do [http://pl.wikipedia.org/wiki/Kodowanie_Shannona-Fano Shannon-Fano] i służy do oznaczania długości sekwencji, a do oznaczenia, że dany bajt nie zawiera się w żadnej sekwencji używany jest jeden bit; 0 - sekwencja spakowana, 1 - kolejne 8-bitów to ten właśnie bajt.&lt;br /&gt;
&lt;br /&gt;
== Szybkość dekompresji ==&lt;br /&gt;
&lt;br /&gt;
Większość programów kompresujących w tamtych czasach spakowane dane zapisywało jako ciąg bitów, algorytm kompresji korzystał z procedury &amp;quot;put bits&amp;quot;, która dokonywała zapisu określonej ilości bitów do strumienia wyjściowego. Dane po kompresji nie były wyrównane do granicy bajtów i pobranie nawet nieskompresowanej sekwencji bajtów wymagało od procedury dekompresującej skorzystanie z procedury która ze strumienia wejściowego pobierała określoną ilość bitów. Pobieranie w ten sposób setek bajtów było po prostu czasochłonne. W tamtych czasach na takiej zasadzie tak działały procedury dekompresujące np. [[Cruncher 5.0]] czy Code3 Cruncher. SoTe po pewnym czasie od stworzenia Code3 Cruncher-a wpadł na pomysł aby zmienić nieco organizację spakowanych danych, w taki sposób aby wszystkie dane będące bajtami zostały zapisane jako normalne bajty w strumieniu danych skompresowanych, w wszelakie informacje bitowe były trzymane razem i możliwe do pobrania przez procedurę &amp;quot;get bit&amp;quot;, takie przeorganizowanie danych spowodowało iż procedura dekompresująca mogła być znacznie przyspieszona.&lt;br /&gt;
&lt;br /&gt;
== procedura dekompresująca ==&lt;br /&gt;
&lt;br /&gt;
Ze względu na dość prosty interface, nietypowe podejście do sposobu kompresji, brak dokumentacji dołączonej do programu (w tym brak źródeł procedury dekompresującej) oraz wymóg sporego doświadczenia u użytkownika, program nie przyjął się i nie używał go nikt poza ludźmi związanymi z grupą Slight. Gdy grupa Slight zaprzestała aktywnej działalności na scenie program zaginął w odmętach zapomnienia. Przyszedł jednak czas w którym [[Seban]] musiał się zmierzyć z danymi spakowanymi tym programem. Po latach dzięki pomocy [[Miker|Mikera]] program został odnaleziony, co prawda tylko sam plik wykonywalny, ale to pozwoliło Sebanowi na deasemblację programu i odtworzenie kodu źródłowego procedury dekompresującej, przy okazji została ona nieco poprawiona i wzbogacona o komentarze. Źródła procedury dekompresującej znajdują się w archiwum razem z programem Packer v2.2.&lt;br /&gt;
&lt;br /&gt;
== struktura danych po kompresji ==&lt;br /&gt;
&lt;br /&gt;
Struktura danych po spakowaniu jest bardzo prosta. Spakowane dane zawierają 5 bajtów nagłówka a następnie następuje ciąg bajtów reprezentujących dane w po kompresji.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| offset&lt;br /&gt;
| długość&lt;br /&gt;
| opis&lt;br /&gt;
|-&lt;br /&gt;
| $0000&lt;br /&gt;
| $02&lt;br /&gt;
| adres dekompresji danych (Low Byte,High Byte)&lt;br /&gt;
|-&lt;br /&gt;
| $0002&lt;br /&gt;
| $02&lt;br /&gt;
| długość danych po dekompresji (Low Byte,High Byte)&lt;br /&gt;
|-&lt;br /&gt;
| $0004&lt;br /&gt;
| $01&lt;br /&gt;
| offset byte&lt;br /&gt;
|-&lt;br /&gt;
| $0005&lt;br /&gt;
| ....&lt;br /&gt;
| spakowane dane&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Przykład użycia procedury dekompresującej we własnym programie ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Przykład wykorzystania programu do kompresji pliku w formacie binarnym ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Ciekawostki ==&lt;br /&gt;
&lt;br /&gt;
Obecnie trwają pracę nad pełną rekonstrukcją źródeł programu, oraz nad PC-tową wersją, która to umożliwi szybką kompresję plików z linii poleceń na komputerach PC. Po zakończeniu prac, zrekonstruowany kod źródłowy oraz wersja packer-a dla PC zostanie upubliczniona.&lt;br /&gt;
&lt;br /&gt;
== Pliki do pobrania ==&lt;br /&gt;
&lt;br /&gt;
[http://seban.slight.pl/atari/SoTe/Packer22.zip Archiwum zawierające Packer v.2.2 oraz źródła depackera]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ten artykuł to tylko [http://pl.wikipedia.org/wiki/Wikipedia:Zalążek_artykułu zalążek]. Możesz pomóc rozwojowi [[Atariki]] poprzez rozszerzenie go o więcej informacji.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Oprogramowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Programy użytkowe]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>