EPcompress leírás

From Enterprise Wiki
Revision as of 09:52, 13 April 2019 by IstvanV (talk | contribs)

Jump to: navigation, search

epcompress [PARAMÉTEREK...] INFILE[...] OUTFILE

Paraméterek

Általános

  • -h | -help | --help: Rövid leírást ír ki a program használatáról, és kilép.
  • --: Minden további paraméter fájl név.
  • -x: Tömörített fájl kicsomagolása.
  • -t: Fájl(ok) tesztelése.

Fájl formátum

  • -raw | -noraw: EXOS fejlécek figyelmen kívül hagyása -raw esetén, az alapértelmezés -noraw. Támogatott EXOS modul típusok:
    • 05h: Új alkalmazói program (-m0, -m2, -m3), a mérete a szabványosnál nagyobb is lehet, kicsomagolva a 3. lapot is használhatja
    • 06h: Abszolút rendszerbővítő (-m2, -m3)
    • 49h: IVIEW kép (-m0, -m2, -m3, a CVIEW bővítő azonban csak az -m2-t támogatja)
  • -m0..m6: Formátum választása, az -m5 (ZLib) helyett használható -mz is, az alapértelmezés -m2, illetve a bemeneti fájl alapján automatikusan választott, ha az lehetséges.
  • -m6:ENCODING: -m6 módban a kódolást definiálja (lásd lent), ami alapértelmezés szerint "FG0L,G,,12345678,0123456789ABCDEF".
  • -a | -n: Archívum készítése több fájlból -a esetén, az alapértelmezés -n.
  • -V: Több részre bontott bemeneti fájl, csak kicsomagolásnál és tesztelésnél.
  • -V <N>: Tömörítésnél a kimenet N kilobájt méretű részekre bontása. N csak 4 többszöröse lehet.

Tömörítési paraméterek

  • -1 ... -9 | -X: Gyorsabb vagy nagyobb hatásfokú tömörítés beállítása, az alapértelmezés 5. A nagyobb értékek egyes esetekben rosszabb fájl méretet is eredményezhetnek. -m0 és -mz formátumnál az -X nagyon lassú.
  • -fast: Gyors 4 szálú tömörítő használata, ez csak -raw -m2 és -mz módban lehetséges, és fix paramétereket tételez fel. Az ep128emu snapshot és PNG fájl mentésekor használja.
  • -minlen <N>: LZ77 minimális hosszúság 1 és 3 között, az alapértelmezés a formátum által támogatott legkisebb érték. A növelése rontja a fájl méretet, de gyorsítja a kicsomagolást.
  • -maxoffs <N>: LZ77 maximális távolság (szótár méret). Alapértelmezés szerint a legnagyobb, amit a formátum szabványosan támogat, általában 64 kilobájt. Kivétel az -mz (ZLib) formátum, ahol 32768 bájt, nagyobb érték pedig nem szabványos bővítést engedélyez. Az -m1, -m2, és -m4 esetében a maximum 524288 bájt, amit a Z80 rutinok azonban nem támogatnak. A csökkentése rontja a tömörítés hatékonyságát, 1 bájt egyszerű RLE eljárásnak felel meg. A távolság korlátozása hasznos lehet speciális esetben, például cirkuláris puffer használatakor.
  • -blocksize <N>: Fix blokk méret használata. Az alapértelmezés 0, ami optimális módon próbálja blokkokra bontani a bemeneti adatot, ha ezt a választott formátum lehetővé teszi (az -m3 és -m6 nem), a keresés mélysége függ az -1..-X paramétertől.

Önkicsomagoló programok paraméterei

  • -borderfx | -noborderfx: A keretcsíkozás engedélyezése vagy tiltása.
  • -cleanup | -nocleanup: A lapozás és veremmutató EXOS-hoz hasonló beállítása.

Tömörített formátumok leírása

Az m6 formátum definíció leírása

-m6:ÁLTALÁNOS,HOSSZÚSÁG,TÁVOLSÁG1,TÁVOLSÁG2,TÁVOLSÁG3

Paraméterek nélkül csak az -m6 a forráskódban található decompress_m6.s rutinnal kompatibilis formátumot állít be. Kis- és nagybetűk is használhatók.

Általános paraméterek

  • F: normál irány (forward), az LDIR-hez hasonlóan
  • B: fordított irány (backward), ilyenkor az adatot a végétől visszafelé haladva kell kicsomagolni
  • 9: a tömöríthetetlen byte-ok egyszerűen 9 bitesek lesznek (1b + eredeti byte, a file elején nincs jelzőbit)
  • G: a tömöríthetetlen byte-okat sorozatként tárolja, először a hosszúság Elias gamma kódolással, majd az eredeti adat. Ezt mindig tömörített sorozat követi, és a file mindig ilyennel kezdődik. Tömörített sorozat után jelzőbit adja meg a következő sorozat típusát (1 = tömörítetlen)
  • L: a bitenként olvasott adatot balra kell léptetni (SLA)
  • R: a bitenként olvasott adatot jobbra kell léptetni (SRL)
  • 0: normál jelzőbitek (0..01)
  • 1: invertált jelzőbitek (1..10), a régebbi formátumok ezt használják

Hosszúság

Ez a tömörített sorozatok hosszúságának a kódolása, ami lehet egyszerűen "G" is, ez a már említett Elias gamma kódot állítja be ('0123456789ABCDEF", 1 és 65535 közötti hosszúságot támogat, 16 '0' bit a file végét jelzi), és többnyire elfogadható eredményt ad. A definíció működése talán megérthető az alábbi példa alapján, "0128" megadásakor:

  • 1b + 0 bit: 1
  • 01b + 1 bit: 2-3
  • 001b + 2 bit: 4-7
  • 0001b + 8 bit: 8-263
  • 0000b: file vége

Ha a minimális hosszúság nagyobb 1-nél (lásd lent), akkor minden értéket megfelelően növelni kell.

Távolság1

Az 1 byte hosszúságú tömörített sorozatoknál a távolság kódolása. Ha üres, akkor az ilyenek nem támogatottak, és a minimális hosszúság 2 lesz. Lehet "I" és "X" közötti karakter, ami egyszerű fix méretű kódot jelent 1 és 16 bit között, például a "K" 3 bites, 1 és 8 közötti távolságot tesz lehetővé. Ebben a módban ha lehetséges, akkor az alsó 8 bitet (illetve "X"-nél a teljes értéket) egyszerű byte-ként írja ki az epcompress. Ez hasznos lehet akkor, ha a sebesség a fontos kicsomagolásnál. Egyébként a fentihez hasonló rendszer szerint írható le a kódolás, de "G" nem használható, és kissé eltér a kimeneti formátum. Például az '1234" ezt jelenti:

  • 00b + 1 bit: 1-2
  • 01b + 2 bit: 3-6
  • 10b + 3 bit: 7-14
  • 11b + 4 bit: 15-30

Távolság2

Távolság3

Az előzőhöz hasonlóak, csak 2 byte, illetve 3 vagy hosszabb sorozatokhoz. Az utóbbi nem lehet üres, viszont ha az 1-es és a 2-es üres, akkor 3 lesz a minimális hosszúság.

Linkek

EP128Emu, a csomag tartalmazza az EPcompress aktuális verzióját

Z80 assembly rutinok