====== 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".