Rozumiem, ze Code3 Cruncher powstal w wyniku niezadowolenia z osiagow crunchera Magnusa? ;)
Dokładnie tak. SoTe był i jest taki że lubi robić rzeczy po swojemu.
Cruncher 5 Magnusa był jak na tamte czasy totalną rewelacją ;-) Bo był to jedyny tego rodzaju program na ATARI, w tym czasie ludzie z C64 mieli tych programów dziesiątki. Jednak temat packerów z C64 to temat na oddzielny post a może nawet artykuł, bo to bardzo interesujące zagadnienie. W skrócie rzecz ujmując w C64 jedyną możliwością załądowania programu było załadowanie go w obrzar przeznaczony na pamięć programu BASIC'a. Chyba około 38KB, więc teraz się domyślacie zlaczego ludzie z C64 tak szybko zaczeli się znajmować kompresją danych. ATARI miało na tyle genialnie pomyślany format pliku binarnego iż przez baaaardzo długi czas nie było takiej potrzeby. Bo ładowaliśmy sobie programy w jake obszary chcieliśmy i do tego mogliśmy wykonywać dowolny kod pomiędzy wczytanymi blokami (tzn. wektor INIT).
Ale wracając do SoTe on zawsze lubił analizowoać dany problem i rozwiązywać go po swojemu ;) A że wychodziło mu to w 99% przypadków lepiej to już nie jego winia. Nie ma co ukrywać iż Code3 Cruncher jest bardzo podobny w obsłudze do Crunchera 5, bo też na nim był wzorowany ;) Jednak procedury pakujące były napisane od nowa przez SoTe. Możecie się smiać ale pamiętam to do dziś jak SoTe pod koniec pisania swojego Packera potrafił rozpakować ciąg zero-jedynkowy na kartce pochodzący z jego packera ;) Zersztą pakowanie pliku na kartce prze SoTe też wyglądało zabawnie (pewnie nie dla niego, bo spędził nad testami procedur pakująco/depakujących naprawdę wiele godzin).
Wiem że SoTe analizował dogłębnie Cruncher 5 i bardzo mocno się zastanawiał czy procedury kompresji/dekompresji nie pochodzą z C64. Pokazywał mi kilka zastanawiających fragmętów kodu z Cruncher 5. Była chyba obsługa komórki $00 lub $01 która w C64 odpowiada za odłącznie róznych obszarów pamięci (tak jak $d301 w ATARI). Do tego po załadowniu pliku procedury przepisywały wszystko jak najniżej się da i rozpoczynały proces dekompresji od konca do początku pamięci (zawsze tak robili na C64). Tylko u nas był mały problem ;) W C64 mogli sobie odłączyć wszystko co możliwe i mieć pełne 64KB RAM, mogli odłączyć nawet rejestry sprzętowe ;) Magnus rozwiązał sprawę w ten sposób iż dane spakowane po pierwszym przebiegu (RLE, charpack) musiały się kończyć w do $cfff inaczej Cruncher odmawiał dalszej kompresji. Potem drugi przebieg pakował dane w obszarze do $cfff, a depacker chyba rozpakowyał dane do końca... ale mogłem coś popier&^#&*# dawno to było... i nie opowiadam o tym aby wywołać jakąś wojnę.... tylko dlatego że uważam to za bardzo fajną ciekawostkę! Zawsze miałem i będę miał szaczunek dla Magnusa ;)
Wcześniesza wersja Cruncher'a Magnusa (4.64) miała tylko jeden przebieg; specyficzne RLE, które ludzie z C64 nazywają char packerem. Czy nie zastanawiała was wersja *.64? bo ja się zawsze zastanawiałem czy to przypadek czy też nie. Potem Magnus dopisał drugi przebieg (LZ77 jak dla mnie) ale ludzie z C64 nazywają to chyba imploding ;)
Co by nie mówić i to i tak Magnus zapoczątkował rewolucję cruncher'ową na małym ATARI. I nie istotne w tej chwili jest czy przepiswyał to z C64 czy nie... ale on to rozpoczoł... i chwała mu za to :)
a skad czerpal wiedze o metodach kompresji? Czy zagladal do C64? ;)
hmmm... nie powiem że SoTe nie przyglądał się Cruncher'owi Magnusa. W tamtych czasach nie było praktycznie żadnej literatury w Polsce dostępnej o tej tematyce. Ale swego czasu ukazała się seria bardzo fajnych artykułow o metodach kompresji a magazynie papierowym "KEBAB" i tam na prawdę było opisane dużo metod i rodzajów kompresji. Z tego co pamiętam SoTe dużo eksperymentował z metodami kompresji i to co wytworzył to wynik jego doświadczeń. Wiem że spakował setki plików aby dobrac tablice i metody kodowania długości sewencji. Trochę nad tym posiedział i zrobił co mógł na tamte czasy. A wyszło mu to chyba całkiem nieźle ;) Bardzo długo Clever People uzywało jego narzędzia do pakowania fileówek ;)
Raz, ze obiecales kiedys podeslac mi spakowana wersje megadema HOBBY-TRONIC '90 lub '91 (?), ktora w czasach snaila dostalem od Ciebie, ale pozniej stracilem ; Dwa, ze chetnie obejrze wszystkie releasy od *CLEVER PEOPLE* !!!! :)
Wiem, obiecałem i pamiętam. Jak tylko się trochę odkuję i znajdę czas na przejrzenie dyskietek obiecuję wszystko udostępnić. Zarówno Ciebie, Strykera jak i pozostałych zniecierpliwionych i zniechęconych proszę o trochę wyrozumiałości i cierpliwości... za jakiś czas na stronie:
powinno się coś zacząć dziać ;)
Zreszta musze wam powiedzieć iż rodzina też narzuca pewne obowiązki na człowiekia i to powoduje że wolny czas czasami kurczy się prawie do 0... ;( także proszę jeszcze o cierpliwość ;)
Wracając do packerów ze stajni SLIGHT, zapomniałem dodać jeszcze o dwóch depackerach ;) W końcu przysły czasy takie że były wokoło AMIGI i ATARI ST ;) A na tych platformach były bardzo szybkie w porównaniu z ATARI programy pakujące (np. PowerPacker dla AMIGI) i bardzo fajny (ICE-PACK) dla ATARI-ST. Już kiedyś o tym wspominałem przy okazji jakiegoś posta na AA, ale może przypomnę iż przy okazji nauki assemblera motoroli 68000 napisałem depacker dla ICE-PACK'a z ATARI ST i dokonałem optymalizacji depackera dla PP20 z amigi... którego to wypatrzyłem w releaseach z Boody Coders ;)
Były jeszcze czasy pakowania wszystkich release'ow z Clever People na C64 ;) Przewalało się dane do spakowania na C64 ;) Pakowało (najczęsciej Cruel Cruncherem lun Exploding Faces Cruncher'em) i przewalało się to z powrtorem na ATARI gdzie po paru modyfikacjach depackera odpalało się to ATARI ;) Operacja wygłądała tak. Spakowana file'ówka ładowała się jak najwyzej w pamięć. Po załadowaniu przepisywana była w obszar $801 (tak jak się ładują programy na C64 ). Odpalało się depacker, te depackery z C64 zawsze rozpakowywały od końca pamięci w dół (znaczy się pierszy bajt rozpakowaywały od $ffff i potem $fffe). Po rozpakowaniu dane się przepisywało w odpowiednie obszary pamięci i działało ;) Możecie mówić iż to było LAME, ale jakie efektywnie i krótkie ;) Przyznaje się bez bica iż biło na głowę Code3 Crunchera i sam nie potrafiłem napisać lepszego Crunchera niż te z C64 (pod względem rozmiaru danych wyjściowych). Prędkości pakowania nz C64 były straaaaaasznie długie... dlatego potem się przerzuciłem na PP20 i PackICE ;)
pozdrawiam serdecznie
Seban/SLIGHT