Komprimační utilita Lha se v amize používá nejdelší dobu, přičemž za jejím rozšířením stojí nejenom to, že byla jedna z prvních, ale především její open source licence.
Mám v amize lha?
Pokud jste v nedávné době pořídili amigu s nainstalovaným systémem na disku a nejste si jisti, zda již lha nemáte v systému, můžete to ověřit v AmigaDosu, který lze spustit např. přes zkratku PraváAmiga + E a zadáním příkazu newcli.
Do konzole napište lha (1) a zmáčkněte enter. Pokud lha v systému nemáte, zobrazí se informace lha:Unknown command. Druhý způsob ověření je příkaz dir c:lh#? (2), který vypíše z umístění C: veškerý obsah začínající na lh. C: je systémový adresář, kde se lha a podobné programy běžně nachází. Pokud je výsledkem nic, jako na obrázku níže, lha se v systémovém adresáři nenachází a je potřeba tuto utilitu do systému přidat.
Jestliže do systému někdo někdy lha přidal, zobrazí se tato informace.
Pokud tedy lha máte v systému, přeskočte instalační část a začněte tuto komprimační utilitu používat. Nicméně nyní budu předpokládat, že ji nemáte a potřebujete ji do systému přidat.
Mimochodem, stejně můžete otestovat přítomnost ostatních komprimačních utilit v systému, tedy lzx i unzip.
„Instalace“ lha
Lha lze stáhnout z aminetu. Stáhněte starší verzi, která je samorozbalovací a pak i novější, která má ošetřeny některé chyby. Oba soubory (lha.run a lha_68k.lha) nahrajte na disketu nebo CompactFlash kartu a nakopírujte je do amigy.
Budu předpokládat, že vše provádíme přes pc dd disketu.
Nastartujte AmigaDOS.
A přejděte na disketu příkazem PC0: (1)
Pro jistotu vypište příkazem DIR obsah diskety (2).
Zkopírujte oba soubory (lha.run a lha_68k.lha) do ram disku. To provedete příkazem copy lha#? ram: (3)
Nyní přejdeme příkazem ram: (4) do ramdisku a rozbalíme samorozbalovací archiv, stačí pouze napsat lha.run (5) a zápis ukončit entrem.
Rozbalí se několik verzí utility lha pro různé verze procesoru, nicméně my je budeme potřebovat jen pro rozbalení novější verze lha_68k.lha.
Příkazem makedir MojeLha (6) vytvoříme v ramdisku adresář MojeLha, do kterého rozbalíme novější verzi utility lha. Rozbalení provedeme příkazem lha_68k x lha_68k.lha ram:MojeLha/ (7)
Jednotlivé části příkazu znamenají: příkazem lha (konkrétně lha_68k) rozbal (parametr x) archiv lha_68k.lha do adresáře MojeLha v ram: (tedy ram:MojeLha). Na konci musí být bezpodmínečně lomítko, jinak se rozbalení nepodaří!
Nyní do adresáře vstoupíme, tedy napíšeme MojeLha ( 8 ) a necháme obsah adresáře vypsat příkazem dir (9). Příkazem cpu (10) zjistíme, jaký typ procesoru máme v amize a podle toho nakopírujeme příslušnou verzi utility lha do systémového adresáře C:
- Soubor lha_68k je určen pro procesory 68000 a 68010;
- soubor lha_68020 je určen pro procesory 68020 a 68030;
- soubor lha_68040 je určen pro procesory 68040 a 68060.
Tento zápis kopíruje soubor lha_68020 do systémového adresáře c: pod názvem lha (tedy proběhne přejmenování výchozího názvu souboru). Kopírujte jen verzi, která se určená pro váš procesor, kopírováním jiné verze si zakládáte na problémy.
Touto, na první pohled komplikovanou, operací lze trvale do systému začlenit utilitu lha, kterou můžete kdykoli později používat pro jakoukoli komprimaci či dekomprimaci souborů a složek.
Ještě si můžete zjistit, jakou máte verzi „lháčka“. To provedete příkazem version c:lha (12).
Jak dekomprimovat lha archivy
Nyní lze lha používat velmi jednoduše. Stačí spustit AmigaDos a do něj napsat
Lha x NázevArchivu.lha – archiv se rozbalí na místě, kde momentálně jste
nebo
lha x NázevArchivu.lha ram: – archiv se rozbalí do ramdisku
nebo
lha x NázevArchivu.lha ram:MujAdresar/ archiv se rozbalí do ramdisku do adresáře MujAdredar. Pokud adresář neexistuje, utilita lha si jej vytvoří. Při rozbalování do adresáře je vždy nezbytné zápis ukončit lomítkem.
Jak vytvářet lha archivy
Archiv lze vytvořit zápisem
lha a MistoANazevNovehoArchivu MistoKtereChciArchivovat/#?
Příklad 1: lha a ram:ZalohaSystemu sys:#? vytvoří v ramdisku nový soubor s názvem ZalohaSystemu.lha, v kterém bude archivováno vše na systémovém disku sys:. Zápis sys:#? znamená zarchivování všech soborů a neprázdných adresářů. #? odpovídá písíčkovému zápisu *.*.
Příklad 2: lha a ram:Turrican dh1:games/turrican/#? vytvoří v ramdisku archiv Turrican.lha, který bude obsahovat všechny soubory a neprázdné adresáře nacházející se na uvedeném místě, tedy na dh1:games/turrican/.
Bohužel pokud by v umístění byly prázdné adresáře, nebudou do archivu přidány. Přidání prázdných adresářů lze docílit přepínačem -e a přepínačem -r, tedy výsledný zápis vypadá takto: lha -e -r a ram:Turrican dh1:games/turrican/#?, nicméně zrovna ve whdload archivu Turricana prázdné adresáře nejsou.
Přehled některých užitečných přepínačů:
- -e archivace prázdných adresářů;
- -x zachování názvů cest;
- -r zpracování archivu vzestupně podle názvu;
- -Qh velikost Huffmanova bufferu, např. Qh64;
- -b velikost I/O bufferu;
- -V multivolume archivy (funguje do velikosti jedné diskety?).
Po nainstalování funkčního systému (Workbenche) vůbec není od věci vytvořit si lha zálohu za pomoci výše uvedených příkazů. Pokud se se systémem cokoli stane, stačí disk zformátovat (quickformat), nastartovat systém z diskety s podporou cf karet a systém rozbalit na původní partition. Ušetříte si tím spoustu času. Zálohu celého systému lze dosáhnout již zmíněným zápisem lha -e -x -r a cf0:ZalohaSystemu sys:#?.
Po vytvoření archivu je užitečné provést test, zda se archiv vytvořil správně. Toho lze dosáhnout příkazem lha t Cesta:NazevArchivu.lha.
Pokud byste prováděli rozbalování většího archivu častěji, lze rozbalování risknout přepínačem -q, který nebude vypisovat průběh rozbalování (nebo i komprimace) na obrazovku, čímž se proces dekomprimace i komprimace výrazně zrychlí (cca na 1/4 času). Nicméně je zde riziko, že v případě chyby nebudete upozorněni.
Multivolumové archvivy v posledních verzích lha příliš dobře nefungují. Je ověřeno, že multivolumový archiv se dá spolehlivě vytvořit ve verzi lha 1.5. Místo multivolumových archivů spíše doporučuji používat HJSplit.
Lha ve Windows
Pakovací algoritmus lha je dostupný pro Windows i jiné platformy. Po spuštění instalátoru se lha „nainstaluje“ do C:\Program Files (x86)\GnuWin32\bin
Je rozumné odsud soubor lha.exe nakopírovat do C:\Windows\System32, protože pak stačí kdykoli vyvolat cmd a komprimovat/dekomprimovat přímo v cmd.
Lha podporu lze taktéž doinstalovat do TotalCommanderu, pak můžete do lha archivů přistupovat přímo z vašeho oblíbeného správce souborů.
A jestli používáte na Windows Directory Opus, podpora lha archivů je dlouhodobě součástí Opusu, aniž by bylo potřeba cokoli dodatečně instalovat.
Lha soubory lze ve Windows rozbalit např. i 7zipem.
Jak pracovat s lzx archivy
Lzx je kompresní metoda, která umožňuje sadu několika souborů spojit do jednoho bloku dat a teprve tento blok zkomprimovat. Tato velmi efektivní metoda se nazývá file merging, její účinnost je až 300% a ve své době byla považována za unikátní. Za komprimačním algoritmem lzx stojí pánové Jonathan Forbes a Tomi Poutanen, kteří tento algoritmus na amigu vyvinuli v polovině devadesátých let. Lzx bylo shareware, nicméně od roku 1997 byl uvolněn generický klíč, který zpřístupnil všechny funkce lzx všem uživatelům jako freeware. Komprimační utilitu lzx včetně generického klíče lze stáhnout z Aminetu. Bohužel tato verze obsahuje chybu dekodování časových údajů i souborů vytvořených po roce 2000. Jako opravu lze použít tento patchovací balíček. Dalším zdrojem informací, včetně patchnuté verze lzx, je tato stránka.
Lzx archiv lze vytvořit zápisem:
lzx a ram:nazev_archivu sys:#?
který lze číst takto: použij lzx (lzx) pro komprimaci (a), výsledek ulož do souboru v (např. ram:nazev_archivu) a do tohoto archivu zařaď vše, co se nachází na místě (např.: sys:#?).
Pokud by se jednalo o komprimaci jen určitého adresáře, poslední parametr bude vypadat takto: dh1:games/turrican/#?
Lzx osahuje množství užitečných přepínačů:
- -Qf zrychlí kompresi (spotřebuje více RAM);
- -9 je maximální komprese (-0 – nekomprimuje, -1 – min. komprese, -2 výchozí, -3 – vyšší účinnost, -9 – maximální účinnost. Tento přepínač lze nastavit jen u lzx pro procesory 68020 a vyšší (tedy přepínač nefunguje v základní verzi pro 68000);
- -bo změní velkost výstupního bufferu. Má vliv na archivaci i dearchivaci a jeho výchozí velikost je 64 Kb. Při de/kompresi určuje velikost zásobníku, po jejíž dosažení se data zapíší na disk. Zápis ne např. -bo256;
- -q tichý režim, údaje se nevypisují na obrazovku;
- -r prohledávání všech adresářů a zpracování jejich cest (tato volba automaticky obsahuje -x, které tím tedy není nutné zapisovat);
- -x zachování adresářové cesty;
- -e archivuj prázdné adresáře.
lzx -r -e -Qf -9 -q a ram:turrican dh1:games/turrican/#?
Rozbalení lzx archivu lze provést zápisem:
Lzx x CoChciRozbalit KamToChciRozbalit
tedy např. lzx x ram:turrican.lzx games:Turrican/Turrican1/
Jestliže bude součástí archivu i informace o zabaleném adresáři, je lepší v zápise odebrat poslední část, tedy:
tedy např. lzx x ram:turrican.lzx games:Turrican/
Dále doplním, že přepínač -e zaarchivuje i prázdné adresáře (pokud v umístění existují). Při rozbalování prázdných adresářů se zobrazuje chyba, nicméně nic není špatně, je to jen rozbalení prázdného adresáře.
Jak rozbalit ZIP archivy
Především whdload hry jsou zabaleny v klasickém zipu. Pokud byste je chtěli rozbalovat přímo na amize, použijte unzip. Tento balíček stačí rozbalit např. do ram disku a odtud nakopírovat unzip do systémového adresáře c:
Shrnutí příkazů:
Unzip NazevArchivu.zip – rozbalí soubory v místě, kde se nachází archiv
Unzip NazevArchivu.zip -d ram: – rozbalí archiv do ram disku
Nebo
Unzip NazevArchivu.zip -d dh1:games/Turrican – rozbalí archiv do dh1:games/Turrican
Shrnutí příkazů jednotlivých komprimačních utilit
- Příklad komprimace: lha -r a ram:nazev_archivu ram:jmeno_archivovaneho_adresare/#?
- Příklad dekomprimace: lha x ram:nazev_archivu ram:jmeno_destinace/
- příklad komprimace: lzx -r -e -Qf -9 -q a ram:nazev_archivu ram:adresar_archivovat/#?
- příklad dekomprimace: lzx x cesta_a_nazev_archivu cesta_kam_dearchivovat/
- Příklad dekomprese: unzip CoChciRozbalit -d KamToChciRozbalit (lomítko se konec nedává)
DOpus mám takto:
- Roletka "AmigaDOS" příkaz: lha x {f} RAM:
- flags: "Do all files", "output window"
Funguje to i při označení více lha archivů. Vybaluje to do RAMky
Ja pouzivat Dopus4.17pre20 a Dopus5.91 a som si to tam nakonfiguroval velmi podobne ako to je v Amikite. Tak mi to vyhovuje, kedze sa stale hram so systemom a potrebujem zalohovat vsetko co je v na systemovej partition.