Vi aggiorno su un progettino per ora inutile che sto portando avanti con lentezza e discontinuità :-)
E' già da un po' di tempo che provo a fare una libreria di decompressione per Z88DK. L'idea iniziale era di fare scrivere a Z88DK un file compilato in formato già compresso, comprimendolo quindi dopo la compilazione, poco prima di creare il TAP; e poi di decomprimerlo al volo dopo l'esecuzione... insomma una specie di UPX (http://upx.sourceforge.net/). Ovviamente il grande ispiratore del lavoro è stato Paolo Ferraris con i suoi minigiochi!
Poi la faccenda si è evoluta e ho fatto la parte di decompressione sotto forma di funzione ANSI C. Qui l'idea era di comprimere prima i dati da PC e poi il programma compilato può decomprimerli in un'area di memoria a sua scelta. Purtroppo mi sono scontrato con le performance del codice compilato :-( le prime prove sono scoraggianti:
http://www.geocities.com/marcellozaniboni/zxdecompression.zip
ho compresso uno screen da 6912 a 3499 byte (-49% ...fin qui molto bene); la lunghezza complessiva del compilato è diventata di 4741, cioè 3499 di dati + 1242 di programma... un pò molti, ma va bene lo stesso. Il problemone sono le performance: più di un quarto d'ora per decomprimere tutto!!! Guardando i risultati dello stesso algoritmo su PC mi ero fatto un po' di illusioni... a questo punto mi sa che mi tocca riprendere il linguaggio macchina dello Z80!!! :-)
Ciao, Marcello