Difference between revisions of "EPcompress leírás"

From Enterprise Wiki
Jump to: navigation, search
(Linkek)
 
(68 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''epcompress [PARAMÉTEREK...] INFILE OUTFILE'''
+
=Parancssor, paraméterek=
  
=Paraméterek=
+
'''epcompress [PARAMÉTEREK...] INFILE[...] OUTFILE'''
  
'''-h, -help, --help''': Rövid leírást ír ki a program használatáról, és kilép.
+
'''Általános'''
  
'''--''': Minden további paraméter fájl név.
+
* '''-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.
  
'''-x''': Tömörített fájl kicsomagolása.
+
'''Fájl formátum'''
  
'''-t''': Fájl(ok) tesztelése.
+
* '''-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 (-m3), a mérete a szabványosnál nagyobb is lehet, kicsomagolva a 3. lapot is használhatja
 +
** 06h: Abszolút rendszerbővítő (-m3)
 +
** 49h: [https://wiki.enterpriseforever.com/index.php?title=Epimgconv_le%C3%ADr%C3%A1s#Az_EPimgconv.2FIVIEW_form.C3.A1tum_le.C3.ADr.C3.A1sa IVIEW kép] (-m2 vagy -m3, a CVIEW bővítő azonban csak az -m2-t támogatja)
 +
* '''-m2 | -m3''': Formátum választása, az -m3 az alapértelmezett. Az -m2-t az emulátor használja snapshot fájlok és a ROM csomag tömörítésére, illetve IVIEW képeknél lehet hasznos, egyébként elavult és általában nem ajánlott a használata.
 +
* '''-a | -n''': Archívum készítése több fájlból -a esetén (-raw módot tételez fel), az alapértelmezés -n.
 +
* '''-V''': Több részre (volume) 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.
  
'''-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.
+
'''Önkicsomagoló programok paraméterei'''
  
'''-m6:ENCODING''': -m6 módban a kódolást definiálja, ami alapértelmezés szerint "FG0L,G,,12345678,0123456789ABCDEF".
+
* '''-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.
  
'''-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ú.
+
=Linkek=
  
'''-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.
+
[https://github.com/istvan-v/ep128emu/releases/tag/2.0.11.2 EP128Emu, a csomag tartalmazza az EPcompress aktuális verzióját]
  
'''-raw | -noraw''': EXOS fejlécek figyelmen kívül hagyása -raw esetén, az alapértelmezés -noraw, amit azonban csak az -m0, -m2, és -m3 formátumok támogatnak.
+
[https://github.com/istvan-v/ep128emu/tree/master/util/epcompress/z80_asm Z80 assembly rutinok]
 
 
'''-a | -n''': Archívum készítése több fájlból -a esetén, az alapértelmezés -n.
 
 
 
'''-minlen <N>''': [https://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77 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 ([https://en.wikipedia.org/wiki/Zlib 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ű [https://hu.wikipedia.org/wiki/Run-length_encoding 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>''': Tömörítésnél 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.
 
 
 
'''-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.
 
 
 
'''-borderfx | -noborderfx''': Önkicsomagoló programban a keretcsíkozás engedélyezése vagy tiltása.
 
 
 
'''-cleanup | -nocleanup''': Önkicsomagoló programban a lapozás és veremmutató EXOS-hoz hasonló beállítása.
 
  
=Az m6 formátum definíció leírása=
+
[https://github.com/istvan-v/ep128emu/tree/master/util/epcompress/src libepcompress forráskód (GPL), C++ programba építhető]
  
'''-m6:ÁLTALÁNOS,HOSSZÚSÁG,TÁVOLSÁG1,TÁVOLSÁG2,TÁVOLSÁG3'''
+
[https://wiki.enterpriseforever.com/index.php?title=T%C3%B6m%C3%B6r%C3%ADtett_ROM_f%C3%A1jlrendszer_k%C3%A9sz%C3%ADt%C3%A9se_(ROM:_eszk%C3%B6z) Tömörített ROM fájlrendszer készítése (ROM: eszköz)]
 
 
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=
 
[https://github.com/istvan-v/ep128emu/releases EP128Emu, a csomag tartalmazza az EPcompress aktuális verzióját]
 
 
 
[https://github.com/istvan-v/ep128emu/tree/master/util/epcompress/z80_asm Z80 assembly rutinok]
 

Latest revision as of 11:35, 23 April 2019

Parancssor, paraméterek

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

Á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 (-m3), a mérete a szabványosnál nagyobb is lehet, kicsomagolva a 3. lapot is használhatja
    • 06h: Abszolút rendszerbővítő (-m3)
    • 49h: IVIEW kép (-m2 vagy -m3, a CVIEW bővítő azonban csak az -m2-t támogatja)
  • -m2 | -m3: Formátum választása, az -m3 az alapértelmezett. Az -m2-t az emulátor használja snapshot fájlok és a ROM csomag tömörítésére, illetve IVIEW képeknél lehet hasznos, egyébként elavult és általában nem ajánlott a használata.
  • -a | -n: Archívum készítése több fájlból -a esetén (-raw módot tételez fel), az alapértelmezés -n.
  • -V: Több részre (volume) 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.

Ö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.

Linkek

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

Z80 assembly rutinok

libepcompress forráskód (GPL), C++ programba építhető

Tömörített ROM fájlrendszer készítése (ROM: eszköz)