Welcome, Guest. Please login or register.


Author Topic: Fájltömörítés Enterprise-on (Read 206883 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Fájltömörítés Enterprise-on
« Reply #15 on: 2008.October.18. 00:20:25 »
Ez egy szimpatikus ötlet! (esetleg berakni egy paramétert, hogy melyik betöltõt csapja hozzá)
Valóban, esetleg az is választható lehetne, hogy legyen-e keretszín effektus, vagy hogy a kitömörítő sebességre vagy méretre legyen optimalizálva. Az egyébként fontos, hogy a 3-as lapon milyen szegmens van egy program indításakor ?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Fájltömörítés Enterprise-on
« Reply #16 on: 2008.October.19. 01:16:23 »
Az új verzió már letölthető: ezzel kijavítható a Raid over Moscow fagyása a '-cleanup' paraméter használatával (amely a normál betöltésnek megfelelően állítja az 1. és 2. lapot - de a 3.-at még nem, mert a kicsomagoló ott fut - és a veremmutatót), a keret villogtatása pedig kikapcsolható a '-noborderfx' segítségével. Ezen kívül a kitömörítő kód néhány byte-al kisebb lett, és valamivel gyorsabb is, és jobban működik EP64-en.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Fájltömörítés Enterprise-on
« Reply #17 on: 2008.October.19. 01:23:23 »
esetleg az is választható lehetne, hogy legyen-e keretszín effektus
Gondolatolvasó vagy másodállásban?  :ds_icon_cheesygrin:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Fájltömörítés Enterprise-on
« Reply #18 on: 2008.October.26. 18:33:38 »
Feltöltöttem egy újabb kisebb javítást.
Újabb javítás: a Z80-as kicsomagoló kódban volt néhány hiba.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Fájltömörítés Enterprise-on
« Reply #19 on: 2008.October.31. 01:40:35 »
Új verzió (és egy azonnali javítás  :oops:): az EPimgconv/IVIEW formátumú képeket is lehet konvertálni tömörített formátumra és vissza.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Fájltömörítés Enterprise-on
« Reply #20 on: 2008.November.15. 20:18:03 »
Ezzel a továbfejlesztett kicsomagoló rutinnal bármilyen méretű epcompress-el tömörített adatot be lehet tölteni. A kód, a változók, és az olvasáshoz használt 256 byte hosszúságú puffer bárhol lehet a 0. vagy a 3. lapon, és a kód ROM-ban is futhat, mert nincsenek önmódosító részek. A memóriát egy előre lefoglalt szegmenseket tartalmazó lista alapján lehet használni, de automatikusan is tud foglalni EXOS 24 hívásokkal.
Hátrányok: nagyobb és lassabb, mint az eredeti kitömörítő, amely csak egy fix 64K-s címterületen működött lapozás nélkül; nem veszi figyelembe, ha egy szegmens megosztott. Hibák még lehetségesek.

A decompressData rutin hívásakor a következő regisztereket kell beállítani:

DE: a kicsomagolt adatokat erre a címre írja; a felső két bitnek nincs jelentősége, mert a szegmensszámokat az IY címen található táblázat határozza meg
HL: 256 byte-os puffer a tömörített adatok olvasásához, a 0. vagy 3. lapon. Csak az L változik, és amikor 0, akkor meghívja a readBlock rutint, hogy a puffert újra feltöltse. A readBlock nem változtathat meg semmilyen regisztert, kivéve a HL-t, amelyet új pufferre is beállíthat.
IX: a kitömörítő rutin által használható memória területre (változók stb.) mutat a 0. vagy 3. lapon. Az alsó byte-ot (XL) nem veszi figyelembe, mindig az XH00h-XHA3h területet használja.
IY: a felhasználható szegmenseket tartalmazó táblázatra mutat a 0. vagy 3. lapon. Ha egy szegmens száma 0, akkor azt EXOS 24 hívással lefoglalja, és tárolja a táblázatban; ha 1, akkor hibával visszatér (így korlátozható a lefoglalt memória mérete).

Sikeres visszatéréskor a DE és HL regiszterek az olvasott és írt adatoknak megfelelően módosulnak, az A és a carry bit nulla, a Z bit 1, az IY pedig az utolsó felhasznált szegmensre mutat a táblázatban.
Hiba esetén az A 255, a carry bit 1, a Z bit 0, és az IY arra a szegmensre mutat, amelynél a hiba történt.
Az 1. és 2. lapon található szegmenseket mindkét esetben visszalapozza.

Forráskód z80-asm (egyszerű PC-s Z80 assembler) és FENAS formátumban:
« Last Edit: 2008.November.16. 16:54:08 by IstvanV, Reason: Régi forráskód törlése »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Fájltömörítés Enterprise-on
« Reply #21 on: 2008.November.16. 16:52:13 »
Hibák még lehetségesek.
Egyet már találtam is :). Javított, és jobban tesztelt változat (kipróbáltam több mint 600K tömörítetlen méretű file-t is, ezt kb. 40 másodperc alatt csomagolta ki):
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Fájltömörítés Enterprise-on
« Reply #22 on: 2008.November.16. 23:55:45 »
Ez érdekel valakit, vagy letörölhetem ? :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Fájltömörítés Enterprise-on
« Reply #23 on: 2008.November.17. 01:12:37 »
Ez érdekel valakit, vagy letörölhetem ? :)

Semmiképpen ne töröld le, mindenféle EP-s fejlesztést nagyon értékelünk sztem mindannyian! Én csak azért nem reagáltam rá, mert a basic utasításokról van valami fogalmam, de a regiszterekrõl és a szegmensekrõl már azt se tudom, eszik-e vagy elemrõl mûködnek-e. :D
Ha újraírható DVD-ink és 120 gigás winchestereink nem is fognak betelni EP-s programokkal, még jól jöhet ez a tömörítés. (Pláne, hogy a fejlesztések nem állnak le, lásd TVC emu, IVIEW; ki tudja, mi lesz még itt, amit esetleg jó lesz tömöríteni. Amúgy ha jól emlékszem, Geco is használt valami tömörítést a CPC-s Impossible Mission 2 átírásakor.)
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Fájltömörítés Enterprise-on
« Reply #24 on: 2008.November.17. 09:20:04 »
Amúgy ha jól emlékszem, Geco is használt valami tömörítést a CPC-s Impossible Mission 2 átírásakor.
Használt, valami Gagyi tömörítést :D , vagy az ismétlődő byte-okat helyettesítettem 2 byte-tal, első a darabszám, második az érték, vagy csak a nullákat szedtem ki ily móson. :D

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Fájltömörítés Enterprise-on
« Reply #25 on: 2008.November.17. 09:27:41 »
Ez érdekel valakit, vagy letörölhetem ? :)
Naná, hogy érdekel!!! Csak még idõm nem volt elmélyedni a témában :-(

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Fájltömörítés Enterprise-on
« Reply #26 on: 2008.November.17. 12:09:39 »
Használt, valami Gagyi tömörítést :D , vagy az ismétlődő byte-okat helyettesítettem 2 byte-tal, első a darabszám, második az érték, vagy csak a nullákat szedtem ki ily móson. :D
Ez az ismétlődő sorozatokat tömöríti, azaz az M byte-al korábban előfordult N byte hosszúságú sorozatot lehet másolni (mindkét érték bármi lehet 1 és 65535 között, tehát még 1 byte hosszúságú "sorozatot" is lehet kevesebb, mint 8 bitre tömöríteni, de akkor a távolság csak legfeljebb 8-16 byte lehet). Érdekes eset, amikor N>M, ezt fel lehet használni az egyszerű ismétlődő byte-ok, vagy "abababab..." típusú sorozatok tömörítésére.
A hatásfok hasonló a zip/gzip tömörítéshez, illetve az egyszerű "gzip -9" parancsnál gyakran jobb. A kicsomagolás sebessége jobbnak tűnik, mint például a DTF - a DTF betöltők, amiket eddig kipróbáltam, 2-3-szor lassabbak voltak, de ez lehet, hogy csak azért van, mert nem voltak megfelelően optimalizálva, vagy sok időt töltenek lemezműveletekkel.

Offline Attus

  • EP addict
  • *
  • Posts: 1225
  • Country: hu
Re: Fájltömörítés Enterprise-on
« Reply #27 on: 2008.November.17. 14:01:33 »
A kicsomagolás sebessége jobbnak tűnik, mint például a DTF - a DTF betöltők, amiket eddig kipróbáltam, 2-3-szor lassabbak voltak, de ez lehet, hogy csak azért van, mert nem voltak megfelelően optimalizálva, vagy sok időt töltenek lemezműveletekkel.

A DTF  nem a lemezművelet miatt lassú, hanem azért, mert bitenként dolgozza fel a statisztikai tömörítésű adatfolyamot és ezek kitologatása pedig időigényes. Ki kell tolni az éppen aktuális számú bitet, és az aktuális táblázatából keszedni a neki megfelelő bájtot, majd így tovább. Hiába a statisztikai elv így követeli meg, igyekeztem optimalizálni, de csak ennyire futotta.  :oops:
A DTF betöltők a DTL kicsomizót használják, az attus.ldr már gyorsabban tölt, mivel ez a legfejlettebb kicsomizómat tartalmazza.  :roll:

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Fájltömörítés Enterprise-on
« Reply #28 on: 2008.November.17. 14:09:51 »
az attus.ldr már gyorsabban tölt, mivel ez a legfejlettebb kicsomizómat tartalmazza.  :roll:
Igen, ezen meg is lepõdtem a múltkor. Kár, hogy ez anno nem került közforgalomba :-(

Offline Attus

  • EP addict
  • *
  • Posts: 1225
  • Country: hu
Re: Fájltömörítés Enterprise-on
« Reply #29 on: 2008.November.17. 16:13:55 »
Igen, ezen meg is lepõdtem a múltkor. Kár, hogy ez anno nem került közforgalomba :-(
Bocsi, hogy ráültem.  :oops:
A forrása most már közkincs.
Egyébként szerintem ez a statisztikai módszer szenzációs ötlet. Azért is álltam neki megvalósítani. Valahogy vonzódom a matematikai és logikai dolgokhoz, ennek köszönhető a krixkrax féle játszadozás is, valamint a DTF. A DTF-nek gyakorlati haszna is volt a szűkös kapacitású floppyk világában.  ;-)
Persze a gyorsaság, valamint a tömörítés hatásfoka is csupán a szépség, precizitás és elegancia kérdéskörébe tartozik végső soron, mivel az idő és a tér relatíve végtelen...  :cool:
Azért szerintem a maximumra illik törekedni, mind tömörítési hatásfok, mind gyorsaság, mind bármi más téren.
Örülök, hogy úgy látom, ti is mindannyian hasonló elveket vallotok.  :razz: