Molto probabilmente, l’home computer più famoso degli anni ’80 è certamente lo Spectrum.
Sir Sinclair sicuramente con questo modello sbaragliò gran parte della concorrenza.
In questo articolo vdremo alcuni aspetti intimi di questa interessante macchina.
Possiamo senz’altro affermare che lo Spectrum non possedeva una ROM dedicata per ospitare il sistema operativo; infatti, il sistema operativo e l’interprete Basic erano sullo stesso chip.
Il sistema operativo era costituito da un gruppo di routine che occupavano, insieme, circa 7Kb dei 16 disponibili.
L’architettura del sistema operativo dello Spectrum era differente rispetto a quello utilizzato nel Micro BBC; infatti, il sistema operativo del Micro BBC era vettorizzato, mentre quello dello Spectrum utilizzava un’altra tecnologia.
Ciò voleva dire che non era molto agevole modificare il comportamento delle routine aggiungendone, per esempio, delle nuove. In realtà, il problema non era poi così complesso, bastava utilizzare un po’ di ingegno.
Vedremo alcune tecniche che erano in voga allora.
La mappa di memoria dello Spectrum era di fondamentale importanza per comprendere i meccanismi utilizzati.
La prima parte della mappa era occupata dal sistema operativo e dall’interprete Basic (da 0 a 16383), 16 Kb. Di questi, il sistema operativo ne occupava circa 7 Kb.
Una volta collegata l’interfaccia 1, gli 8Kb più bassi venivano impaginati come su Micro BBC, per la parte tra &8000 e &BFFF.
In sostanza, è come se questi 8Kb venivano rimpiazzati da un altro chip contententi le routine per i microdrive, per l’interfaccia seriale e per quella di rete (LAN).
Il resto della memoria, e della mappa, è di tipo RAM.
La mappa di memoria dello Spectrum era articolata in questo modo:
- Da 0 a 16383, Sistema Operativo e Basic
- 16384: file del display
- 22528, File degli attribut
- 23295, Buffer per la stampan
- 23552 Variabili di sistema
- 23734 dati sul canale
- Area del programma
- Variabili
- Area di lavoro per Edit e Input
- Stack del calcolatore
- Stack dello Z80
- Stack delle Gosub
- RAM libera
- 65308 a 65536 Grafica definita dall’utente
Le variabili di sistema più importanti sono CHANS, PROG, UARS, ELINE, STKEND, RAMTOP.
I valori sono espressi in notazione decimale