Toto je starší verze dokumentu!
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 decompress ; rozbalit komprimovaná data do videoram ret decompress: include "decompress.lib" ; vlož knihovnu Decompress obrazek1: include "krtek.scrc" ; komprimovaný obrázek
Verze kompressoru
Ve verzi 1.6.7 byla kompimační rutina přepsána, 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_old,lib“.