IL NON ISOMORFISMO DELLE LIBRERIE ESISTENTI

Se prendete una qualsiasi libreria che presenta delle parti scritte in assembly, allora è sicuramente non isomorfa perché non può funzionare aldilà del processore (o, più spesso, della piattaforma) su cui è stata pensata.

Anche se fosse scritta tutta in C puro, però, potrebbe non essere isomorfa. Immaginiamo una libreria che si prenda delle “libertà” nel rappresentare l'hardware, o ne faccia un'astrazione per renderla accessibile. Anche questo potrebbe non rendere isomorfa la scelta.

Le librerie presenti (sprite software per Z88DK, CONIO / TGI per CC65) sono un esempio di astrazione, non di isomorfismo: perché, se fossero esempi di isomorfismi, sarebbero perfettamente intercambiabili (al netto di “adattatori”). Invece sono profondamente diverse, nonostante i computer che gestiscono sono sempre fatti di una CPU, di memoria, di video ram, e così via.

Per quanto riguarda l'audio su Z88DK, adottare il bit bang significa astrarre la parte audio e dare per scontato di non avere altro che un DAC a 1 bit (vero oppure emulato) mentre la maggior parte dei computer è equipaggiata con dei generatori musicali, con capacità più o meno avanzate. Anche qui ci troviamo in presenza di un esempio di astrazione, un ricondurre l'implementazione specifica a un computer astratto, in questo caso dotato di hardware audio minimale. Nel concreto: quando si passerà (ad es.) al SID o al TED [che Z88DK non gestisce] sarà necessario riscrivere la parte relativa all'audio e non sarà possibile “portarla”, adattandola.

Quindi sono astrazioni, e non isomorfismi.

Sarebbe un isomorfismo se Z88DK (o, meglio, la sua libreria in C) adeguasse, al momento della compilazione, la forma d'onda del suono generato perché il chip audio disponibile lo consente.

Insomma, ogni ambiente offre librerie specifiche su target molto simili o, per dirla in modo diverso, librerie specifiche che “uniformano” l'interfaccia per dialogare con degli specifici chip. Se usi quella libreria direttamente, con o senza i comandi di alto livello, stai in realtà programmando per un target specifico e quindi non possiamo dirci nel caso di un isomorfismo.

Con lo stesso approccio ma venendo al video, non ho dovuto cambiare di una virgola i giochi a livello funzionale, e il loro aspetto grafico è rimasto identico pur passando da VIC/GTIA a VDP.

Vai alla pagina "IL MIO DEV-KIT E' DIFFERENTE".