PACKDISK & PACKDEV Niedawno pisaîem o róûnego rodzaju archiwizerach dyskowych. Niestety, nie udaîo mi sië opisaê wszystkich programów, jakie wtedy odszukaîem na amigowskim rynku. Pozostaîy jeszcze dwa którym z pewnych wzglëdów warto sië dokîadniej przyjrzeê. Jarosîaw Horodecki Te dwa wspomniane przeze mnie programiki to PackDev oraz PackDisk. Ich wspólnâ cechâ jest to, ûe w odróûnieniu od innych tego typu kompresorów, nie korzystajâ one z wîasnych procedur pakujâcych, ale z procedur zewnëtrznych. Oba wykorzystujâ po prostu bibliotekë XPKMaster.library oraz przeznaczone dla niej kompresory. Warto jednoczeônie nadmieniê, ûe robiâ to w róûny sposób. Zacznijmy od programu PackDisk autorstwa Edgara Vigdala z Norwegii. Jest to program nieco mniej uniwersalny i dysponujâcy nieco mniejszymi moûliwoôciami niû PackDev, dlatego postanowiîem od niego zaczâê. Autor PackDiska przede wszystkim podkreôla jego zalety w stosunku do powszechnie znanego DiskMashera. Najwaûniejszâ z nich jest moûliwoôê stopniowego odczytywania archiwum oraz nagrywania go na dysk docelowy, co jest szczególnie przydatne, gdy archiwum, odczytywane z tej samej stacji dysków, nagrywamy na inny dysk, wkîadany do tego samego urzâdzenia. W wypadku DiskMashera trzeba byîo wczeôniej archiwum przekopiowaê do RAM-u. W epoce twardego dysku cecha ta wydaje sië jednak maîo przydatna. Druga zaleta programu przedstawiana przez autora, czyli jego niewielka dîugoôê (5 KB), jest natomiast nieco problematyczna. Wszak potrzebne jest jeszcze w pamiëci miejsce na dwie biblioteki (XPKMaster oraz odpowiedni kompresor). Mimo tych nieco moûe wâtpliwych zalet PackDisk z pewnoôciâ jest programem bardzo ciekawym. Jego omówienie rozpocznë moûe od prostego przykîadu. Na poczâtek wiëc czytanie zawartoôci dysku: packdisk -p -4 nazwa_pliku Jak widaê, skîadnia odpowiedniego polecenia jest wyjâtkowo prosta. Opcja -p to oczywiôcie przestawienie programu w tryb pakowania dysku. Druga z opcji to z kolei wybór stopnia kompresji pliku. Im mniejsza liczba, tym gorsza kompresja. W jaki jednak sposób program ten korzysta z kompresorów XPK? Otóû kolejne stopnie kompresji to po prostu korzystanie z róûnych zewnëtrznych kompresorów. I tak: 1 -- kompresor RLEN o bardzo sîabej efektywnoôci, ale za to bardzo szybkiej kompresji oraz dekompresji; 2 -- NUKE to z kolei kompresor o szybkim algorytmie pakowania, zachowujâcym jednoczeônie stosunkowo niezîy stopieï kompresji, rozpakowanie pliku jest równieû bardzo szybkie; 3 -- BLZW gwarantuje równieû bardzo szybkâ kompresjë oraz dekompresjë, nie najgorsze wyniki; 4 -- HUFF to algorytm Huffmana, doôê sîaby stopieï kompresji przy bardzo duûej prëdkoôci; 5 -- IMPL jest bardzo dobrym kompresorem o doskonaîym stopniu kompresji, jednakûe nie najwyûszej prëdkoôciâ pakowania, a bardzo duûej prëdkoôci rozpakowywania; 6 -- SHRI to najlepszy z wymienionych kompresorów, charakteryzujâcy sië, niestety, bardzo maîâ szybkoôciâ zarówno przy kompresji, jak i dekompresji dysku; Wiemy juû wiëc, jak dany dysk spakowaê do wskazanego pliku. Równie waûnâ czynnoôciâ jest oczywiôcie rozpakowanie wczeôniej przygotowanego archiwum. Oto skîadnia odpowiedniego rozkazu: packdisk -u nazwa_pliku Tutaj chyba nie trzeba niczego wyjaôniaê. Opcja -u to po prostu wîâczenie trybu rozpakowywania dysku, znaczenie drugiego parametru jest natomiast oczywiste. To wszystko, co potrafi PackDisk. Niewâtpliwie doôê istotnâ wadâ posiadanej przeze mnie wersji programu jest brak moûliwoôci pakowania danych z urzâdzeï innych niû DF0:. Przydaîaby sië choêby moûliwoôê skorzystania z RAD-u, zwîaszcza przy rozpakowywaniu. Drugi program, czyli PackDev autorstwa Christiana Wasnera z Niemiec, to narzëdzie o wiele bardziej rozbudowane i znacznie bardziej uniwersalne. Wîaôciwie jedynâ wspólnâ cechâ tych dwóch programów jest, o czym juû wspomniaîem, korzystanie z bibliotek XPK przy pakowaniu danych. Program PackDev nie jest jednak zwykîym kompresorem, przeznaczonym do pakowania tylko i wyîâcznie dyskietek, czy teû urzâdzeï o strukturze identycznej ze strukturâ dyskietki (jak RAM-dysk RAD:). Program ten potrafi odczytaê, skompresowaê oraz zapisaê do pliku dokîadnâ zawartoôê dowolnie wybranego urzâdzenia, poczâwszy wîaônie od zwykîej dyskietki, a skoïczywszy na choêby twardym dysku, czy teû pîycie kompaktowej. Moûliwoôci jest wiele. Jak wiëc widaê, PackDev jest programem îâczâcym pewne cechy zwykîego archiwizera dyskowego z programem przeznaczonym do wykonywania backupów zawartoôci róûnego typu urzâdzeï. Autor programu, podobnie jak w poprzednim wypadku, na poczâtku dokumentacji wylicza wiele zalet swojego dzieîa w zestawieniu z DiskMasherem. Tu jednak z wiëkszoôciâ spoôród wymienionych pozycji muszë sië zgodziê. Gîównâ czëôciâ tej listy jest oczywiôcie moûliwoôê pakowania dowolnych urzâdzeï oraz korzystania z bibliotek XPK. Ostatniâ z przedstawionych zalet jest równieû niewielka dîugoôê programu. Zasada dziaîania programu jest bardzo prosta. W pierwszym kroku odczytywane sâ dane o wskazanym urzâdzeniu. Jeûeli istnieje moûliwoôê odczytania mapy zajëtoôci dysku, a system zapisu danych jest znany, czytane sâ tylko wykorzystywane sektory, w przeciwnym wypadku natomiast odczytywana jest caîa zawartoôê pakowanego urzâdzenia. Korzystanie z programu, na razie, nie naleûy natomiast do czynnoôci najprostszych. Wszystkie funkcje dostëpne sâ jedynie z poziomu CLI/Shella, naleûy sië wiëc zapoznaê z poszczególnymi opcjami, jakich uûycie dopuszcza PackDev. Pierwszym i chyba najwaûniejszym parametrem, jaki musi byê podany, jest czynnoôê, jakâ PackDev ma wykonaê. Moûna tu wybraê spoôród czterech róûnych dziaîaï: READ (czytanie zawartoôci wskazanego urzâdzenia), WRITE (zapis wskazanego archiwum na dane urzâdzenie), VIEWFILE (wyôwietlenie zawartoôci pliku), VIEWFILESYS (podanie informacji o wskazanym urzâdzeniu). Po wskazaniu czynnoôci naleûy okreôliê takûe nazwë urzâdzenia, z jakiego program ma odczytaê dane, bâdú na które dane te bëdâ zapisywane. Sîuûy do tego parametr FILESYS (lub FS), po którym wpisujemy po prostu nazwë czytanego urzâdzenia. Po podaniu nazwy urzâdzenia pozostaje jeszcze wskazanie odpowiedniego pliku. W zaleûnoôci od wybranego dziaîania programu bëdzie to oczywiôcie plik úródîowy lub docelowy. Do jego okreôlenia sîuûy opcja FILE (albo F). Kolejne trzy opcje dotyczâ niejako technicznej strony czytania dysku i traktowania jego zawartoôci. Po pierwsze wiëc dostëpna jest opcja CLRUNUSED (lub CU). Skorzystaê z niej moûna tylko przy zapisie danych na dysk, a jak sama jej nazwa wskazuje, sîuûy ona do czyszczenia nie zajëtych sektorów. Gdy jest wyîâczona, zawartoôê tych sektorów pozostaje nie naruszona, co w niektórych wypadkach doprowadzi do pozostawienia na dyskietce niepotrzebnych danych. Warto wiëc z tej opcji korzystaê. Druga z nich natomiast to ETDFORMAT (lub ETDF). Korzystaê z niej moûna równieû tylko podczas zapisywania danych. Podczas rozpakowywania pliku na nie sformatowanâ dyskietkë, zostanie ona przed zapisem kaûdej ôcieûki automatycznie sformatowana. Warto zwróciê uwagë, ûe opcja ta nie bëdzie dziaîaê z twardym dyskiem, poniewaû uûywana jest tutaj funkcja formatowania, przystosowana tylko do formatowania dyskietek. Dziaîanie trzeciej z kolei opcji, czyli TDFORMAT (lub TDF) jest niemal identyczne z poprzednio omówionâ. Poza tym opcja bëdzie równieû dziaîaê z dowolnym innym urzâdzeniem, a nie tylko ze stacjâ dysków, jak to byîo w wypadku ETDF. Opcja ta korzysta ze standardowej systemowej procedury formatowania, przeznaczonej do przygotowywania wszystkich rodzajów noôników. Ostatni z kolei zestaw opcji pozwala na odpowiednie ustawienie parametrów pakowania. Najwaûniejsza z nich to oczywiôcie opcja PACK (lub P). Sîuûy ona do okreôlenia rodzaju kompresora XPK, jaki ma zostaê uûyty, oraz ustawienia jego efektywnoôci. Warto tutaj wspomnieê, ûe czëôê kompresorów zgodnych z tym standardem pozwala na ustawienie efektywnoôci kompresji w zakresie od 0 do 100. W ten sposób moûna dodatkowo wpîywaê na stopieï kompresji oraz jej szybkoôê. Dostëpne sâ oczywiôcie wszystkie moûliwe kompresory XPK, a nie, tak jak w wypadku PackDiska, tylko kilka wybranych przez autora programu. Za pomocâ dwóch dodatkowych opcji moûna natomiast wpîywaê na technicznâ stronë samego pakowania danych. Moûliwe jest wiëc wybranie rodzaju pamiëci, z jakiego korzystaê ma PackDev. Sîuûy do tego opcja MEMTYPE (lub M) wraz z odpowiednim parametrem, oznaczajâcym rodzaj pamiëci, jaka ma byê wykorzystana. Moûe to byê jeden z nastëpujâcych rodzajów: Chip, Fast lub Any (dowolny rodzaj pamiëci, w zaleûnoôci od potrzeb). Z kolei opcja XPKBUFSIZE (lub XB) umoûliwia ustawienie wielkoôci bufora tworzonego w pamiëci, a przeznaczonego na potrzeby procedury kompresujâcej. W niektórych wypadkach skorzystanie z duûego bufora, umieszczonego w pamiëci Fast, moûe spowodowaê wyraúnie zauwaûalne zwiëkszenie prëdkoôci dziaîania programu. Po omówieniu wszystkich opcji warto jeszcze podaê kilka podstawowych przykîadów, które moûe nieco uîatwiâ praktyczne wykorzystanie programu. Na poczâtek, jak zwykle, czytanie zawartoôci dysku: packdev read fs rad: f dh1:nazwa_pliku nuke.75 xb 200 Komenda ta powoduje oczywiôcie czytanie zawartoôci dysku wirtualnego, znajdujâcego sië w pamiëci RAM oraz nagranie na dysku dh1: jego zawartoôci, spakowanej za pomocâ kompresora nuke z 75-procentowâ efektywnoôciâ oraz przy uûyciu bufora o wielkoôci dwustu bloków, czyli normalnie 100 KB. I kolejny przykîad: packdev write fs df1: dh1:nazwa_pliku etdf Tutaj szczegóîowe wyjaônienia wydajâ sië byê zbëdne. Po prostu rozpakowujemy dane, znajdujâce sië w pliku na partycji dh1: na nie sformatowanej dyskietce, znajdujâcej sië w napëdzie df1:. Jak widaê, obsîuga programu nie jest aû tak strasznie trudna. Samâ ocenë programu oraz decyzjë, czy bëdziemy go uûywaê, pozostawiam juû jednak Czytelnikom. Warto moûe jeszcze dodaê, ûe mimo tak wielu interesujâcych moûliwoôci i w miarë prostej obsîugi program ten nie zyskaî zbytniej popularnoôci.