Demo.exe uno dei miei primi esperimenti con la CG
Sotto l'originale nome di "demo.exe" ho ritrovato uno dei miei primi esperimenti con la computer graphics, fatti in C++ agli albori della mia attività di programmatore.
In questo e negli altri programmi che scrivevo all'epoca, per disegnare a schermo,
per prima cosa si cambiava la modalità video ponendo 0x00
nel registro AH
e chiamando l'interrupt 0x10
(il prefisso 0x
indica che il numero è espresso in esadecimale).
Ad esempio impostando preventivamente 0x13
nel registro AL
si passava
alla modalità VGA con risoluzione 320×200 a 256 colori (chiamata per questo mode 13h).
A quel punto si aveva il controllo completo dello schermo: all'indirizzo di memoria 0xA0000000
il sistema dava accesso diretto alla memoria video.
Tutto il resto dovevi gestirtelo tu "a manina", in tutti i dettagli, dal calcolare quali pixel toccare per disegnare una linea
fino alla manipolazione delle coordinate tridimensionali per effettuare una proiezione prospettica.
Il programma in questione fa molto poco: non c'è nessuna interazione con l'utente e tutto quello che fa è mostrare a schermo un robot che ruota su se stesso. A vederlo ora fa sorridere, con la pixellosità dovuta alla bassa risoluzione e il ridottissimo numero di poligoni. Ma mi ricorda l'emozione di quei momenti, in cui ogni piccolo passo, che ora mi sembra banale, mi apriva un nuovo mondo di possibilità. Ricordo ancora il tempo speso a calcolare e scrivere a mano, con carta e penna, le coordinate di ogni vertice del mio prezioso robot...