> Per il multitasking invece la vedo estremamente dura. Secondo me un "LinuZX" con tanto di multitasking (non serve il multiuser, poiche' non esiste la memoria protetta) e' possibile; multitasking significa solo che ad ogni interrupt, oltre a fare il polling dalla tastiera, occorre fare il bank-switching verso il prossimo task attivo. Se si usa la RST $38 per l'interrupt, allora un task puo' restituire il controllo al sistema (per esempio quando aspetta input da tastiera) chiamando anticipatamente la RST $38 anziche' aspettare che venga generata dall'hardware. > ah, si? Prova a non inizializzare un puntatore di funzione e poi > chiamare proprio quella funzione li'... ZOT!! Spectrum resettato :-) Sul sistema operativo Epoc, quello della Psion, crearono un cumulo di classi C++ per usare i puntatori: un programma che volesse usare in modo "sicuro" i puntatori doveva fidarsi solo di queste classi. Certo che nuotare tra descrittori e puntatori di descrittori (con controlli paranoici sulla validita' dei puntatori) era una vera rogna, ma pare che la cosa negli anni abbia funzionato, e cosi' - se uno usa rigorosamente le loro convenzioni - non rischia di impallare il sistema. Se il sistema multitasking per lo Spectrum deve prevedere il porting di chissa' quanti e quali programmi gia' pronti per l'ambiente Unix, allora bisogna sempre tenere incrociate le dita (toccare il corno, evitare colloqui di lavoro di venerdi' 17, etc)... :-) Io che sono uno sporco lurido infame progettista, penserei addirittura ad inventare un ambiente operativo "su misura" per lo Spectrum, perfino con un linguaggio apposito (una sorta di Pascal semplificato per essere facilmente compilabile sullo Z80 e senza rogne quanto all'uso di puntatori e memoria). Dopotutto anche il Mac OS nacque in Pascal, e il Croquet sta nascendo in Squeak (cioe' una versione semplificata dello SmallTalk di qualche decennio fa)... (www.opencroquet.org)