Köszi a választ!
Melyikkel? Én nem találom, de lehet, hogy csak én vagyok béna.
A legújabb
epcompress verzióban a "z80_asm" könyvtárban található kicsomagoló kód Z80-ra, az "uncompress"-ben pedig az uncompress bővítés .ext és .rom formátumban, (nem túl szépen megírt
) forráskóddal. A Z80-as kitömörítőnek három változata van:
decompress_sfx.s - ezt az önkicsomagoló 5-ös fejlécű file-ok használják. Két részből áll, az első a tömörített adat elé, a másik pedig a file végére kerül. A forráskód a z80-asm PC-s assemblerrel fordítható le.
decompress_simple.f - hasonló az előzőhöz, de csak a kitömörítő rutint tartalmazza betöltő nélkül, és FENAS formátumra van konvertálva. Nem tartalmaz semmliyen memóriakezelést vagy lapozást, ezért csak 64K-s területen működik, ahol a kicsomagolt adatok mellett a kódnak, a változóknak, és a veremnek is el kell férnie. A használata egyszerű: a HL regisztert a tömörített adat elejére kell beállítani, a DE-t pedig arra a címre, ahonnan kezdődően a kicsomagolt adatokat lehet tárolni, és a decompressData rutint kell meghívni. Visszatéréskor a DE az utolsó kitömörített byte utáni címre mutat. Az eredeti tömörített adat felülírható, de vigyázni kell arra, hogy a tömörített adat vége a tömörítetlen adat vége után legyen legalább néhány byte-al, így elkerülhető, hogy még feldolgozatlan adat íródjon felül.
decompress.f - továbbfejlesztett verzió (a leírás
itt olvasható), szintén FENAS formátumban. Ez nagyobb méretű és lassabb, de rugalmasabban használható, tartalmaz memóriakezelést, és lapozással megoldja, hogy a kicsomagolható adat méretét csak a lefoglalható memória korlátozza.
decompress.s - ugyanaz z80-asm formátumban.
Kipróbáltam az uncompress.ext-et is a thelyra2-t próbáltam kitömöríteni vele, de alapgépen (128k) nem megy, mert kevés a memória. (mondjuk ez annyira nem volt meglepő) Mekkora a memóriaigénye a programnak?
A jelenlegi verzió az egész file-t a memóriában tömöríti ki, és mivel 3 szegmens (a 0. lap, a rendszerszegmens, és a bővítő) már foglalt, egy 128K-s gépen csak 80K marad (illetve 96K a ROM verzió használatakor). A program módosításával azonban megoldható lenne, hogy a kitömörített adatot azonnal a lemezre írja, és így csak 64K memóriát kellene lefoglalni (mert legfeljebb 65535 byte-al korábban előfordult sorozatot lehet tömöríteni, tehát ekkora a "szótár" mérete). Kisebb hátrány, hogy így megszűnne az eredeti file felülírásának a lehetősége.