Komprimace dat v projektu
Z80 Assembler obsažený v LnxSpectrum emulátoru podporuje komprimaci dat v ZX projektech. Díky této metodě lze do vašeho projektu dát více dat, než by bylo možné v nekomprimované podobě. Můžete vložit do projektu například obrázky které by standartně zabraly 6912 bajtů, ale zkomprimované zaberou třeba jen 4000 bajtů.
Jak komprimovat data
Víme, že máme data která chceme komprimovat například na adrese 16384, v délce 6912 bajtů. V okně s debugerem, nebo assembler editorem v menu najdeme položku „Save binary“. Vyskočí okno a tam si zvolíme rozsah: Start address 16384, Length 6912, Last address se automaticky vyplní hodnotou 23295. Zaškrtneme „Compress data“ a stiskněte „Save“. V dalším dialogu si soubor pojmenujete a také si můžete vybrat mezi souborem *.binc (ideální pro vkládání do projektů), nebo pro soubor *.tap. Do svého projektu soubor vložíte pomocí volby „Include (asm, bin, scr…)“, a do kódu připíšete „include „název_souboru.binc““.
Také lze vytvořit screenshot v hlavním okně s emulátorem, menu „Emulator/Save Screenshot“, kde najdeme v seznamu typu souborů mimo *.scr, *.jpg a *.png také komprimovaný *.scrc.
Jak rozbalit data
K rozbalení takto připravených dat je potřeba krátka rutina ve vašem projektu, kterou vložíte příkazem include „decompress.lib“. Kompiler jí sám připojí k projektu.
Příklad kódu: rozbalení komprimovaného obrázku:
org 50000 ; od adresy 50000 ld hl,obrazek1 ; ukazatel na zdroj komprimovaných dat ld de,16384 ; ukazatel na videoram call decompr ; rozbalit komprimovaná data do videoram ret decompr include "decompress_v3.slb" ; vlož knihovnu Decompress obrazek1 include "krtek.scrc" ; komprimovaný obrázek
Verze kompressoru
Ve verzi 1.8.4 byla komprimční rutina upravena, a tím zvýšena její účinnost. Pokud máte v projektu komprimované data ještě předchozí verzí, použijte knihovnu „decompress_v2.lib“ nebo „decompress_v1.lib“. Nová se přilinkuje pomocí „decompress_v3.slb“.
Ve verzi 1.6.7 byla nahrazena první verze kompressoru, a tím zvýšena její účinnost. Pro projekty využívajicí data zkomprimované původní verzí se v projektu musí vložit starší verze dekompressoru „decompress_v1,lib“.