CSS non � un linguaggio di programmazione, e non c'� ragione di aspettarsi che lo diventi. Eppure Ahmed Amer ha usato un unico foglio di stile per costruire un intero PC IBM compatibile, capace di avviare MS-DOS, Windows 1.0 e perfino DOOM. Il file, battezzato CSS-DOS, pesa 300 MB. Dentro quel foglio non � stato infilato un port del gioco: c'� una macchina completa, simulata da zero. Un processore 8086, 640 kB di RAM, un controller VGA e uno per il floppy, tutto descritto in regole di stile. Il CSS dispone ormai di funzioni e istruzioni condizionali, ma non esegue programmi nel senso corrente del termine, cio� sequenze di istruzioni che si alimentano una con l'altra. Modificare il valore di una variabile richiede acrobazie. Ed � proprio questo comportamento statico, osserva Amer, ad adattarsi all'architettura di un componente hardware meglio di quanto faccia a quella di un software: � l'intuizione su cui poggia l'intero lavoro. Due istruzioni al secondo La lentezza fa parte di un esercizio di stile che da un certo punto di vista � anche un'ironia: l'emulatore non si avvicina nemmeno lontanamente al tempo reale: avanza a due istruzioni al secondo, misurate a livello di CPU e non di fotogrammi. Con questo ritmo, portare a termine l'avvio di MS-DOS richiede circa tre settimane, e caricare un livello di DOOM porta via tre mesi. Il gioco, sulla carta, procederebbe a 0,0001 fotogrammi al secondo. Del resto, parlare di un DOOM "giocabile" � gi� un'esagerazione: anche se il foglio di stile emulasse un IBM AT a piena velocit�, quell'hardware non reggerebbe comunque il gioco a un ritmo praticabile. La giocabilit�, in questo progetto, non � mai stata il punto. Amer accompagna il tutto con un resoconto dettagliato di come ha realizzato l'emulatore e con una guida interattiva che permette di esplorare il file CSS in tutta la sua stratificazione. � il genere di esercizio che nasce da un vincolo autoimposto pi� che da una necessit�: per convenzione non scritta, ogni cosa deve prima o poi far girare DOOM. Nessuno, per�, ha mai preteso che lo facesse bene.
DOOM gira dentro un file CSS, ma per caricare un livello servono tre mesi
Ahmed Amer ha compresso in un unico foglio di stile da 300 MB un 8086 simulato con 640 kB di RAM e controller VGA e floppy. Ne esce un PC che avvia MS-DOS e Windows 1.0, ma cos� lento che caricare un livello di DOOM richiederebbe mesi









