Commodore 64

Il Commodore 64 era un home computer molto popolare negli anni '80. Il nome adottato dalla casa costruttrice, la Commodore Business Machine fu inizialmente Vic-30, ma prima della distribuzione venne cambiato in Commodore 64.

Risulta essere il modello di computer più venduto al mondo, record che si trova anche nel Guinness dei primati: nel 1986 furono venduti più di 10 milioni di esemplari in tutto il mondo. Fu commercializzato fino al 1993, quando le unità vendute furono appena 700 mila.

La semplicità d'uso e facilità di programmazione di questo nuovo computer era superiore sia ai suoi precedessori (il PET e il Vic-20) sia agli altri home computer concorrenti. Grazie a ciò e al suo prezzo di vendita, in breve tempo divenne il computer più venduto nella storia dell'informatica.

Il Commodore 64 venne inizialmente costruito usando lo stesso case del Vic-20 per mantenere bassi i costi di produzione. Dopo alcuni anni, la Commodore cambiò leggermente l'estetica del computer assieme ad altri cambiamenti minori, ribattezzandolo 64C.

thumb|right|180px|Commodore 64C, seconda versione del Commodore 64

Indice

Le caratteristiche

Il Commodore 64 usava il microprocessore 6510, con 64 KByte di RAM e 20 KByte di ROM con il KERNAL e il CBM BASIC versione 2.0: audio e video erano gestiti da due chip separati. Poiché il processore 6510 poteva indirizzare solo 64 Kbyte di memoria in tutto, 20 Kbyte della RAM erano nascosti dalla ROM. Un registro permetteva di mappare in memoria la RAM nascosta escludendo la ROM, cosa molto utile nei programmi assembly che non avevano bisogno dell'interprete BASIC. Il progetto hardware originale del Commodore 64 fu opera di un gruppo di circa dodici ingegneri i quali, successivamente, lasciarono la Commodore.

Il microprocessore

Il microprocessore utilizzato era il MOS Technology 6510, una versione customizzata del 6502 con alcuni segnali hardware aggiuntivi per il registratore a cassette, che veniva gestito direttamente dal microprocessore. La frequenza di clock era pari a 0.9875 MHz. Le istruzioni più semplici prendevano almeno 2 cicli di clock, quelle più complicate 5. Quindi il Commodore 64 aveva una potenza di calcolo di una piccola frazione di MIPS. Poteva però delegare molti compiti ai due chip aggiuntivi descritti di seguito (più il CIA, Complex Interface Adapter = Adattatore di interfaccia complessa). Questa caratteristica, cioè l'architettura a coprocessori, costituì la base sulla quale venne in seguito sviluppato il primo computer Amiga dalla Hi-Toro, il quale venne poi commercializzato ed ulteriormente sviluppato dalla Commodore e spopolò negli anni '80 e nei primi anni '90 con i successivi modelli.

Esistevano anche delle schede aggiuntive Z-80, che consentivano di utilizzare lo Zilog Z80 (evoluzione dell'Intel 8080A) sul Commodore 64. Una di queste era la cartuccia CP/M Z80 della Commodore che permetteva di utilizzare il suddetto OS (versione 2.2) tramite una combinazione di emulazione Hardware/Software.

Il chip video

thumb|left|

Schermata di un videogioco
Il Commodore 64 possedeva un chip video (VIC-II) che poteva produrre 16 colori (un numero maggiore di colori era ottenibile con particolari algoritmi software). Aveva una risoluzione massima di 320 x 200 punti nel modo "hi-res" (2 colori possibili per ogni cella 8 x 8), e di 160 x 200 nel modo "multicolor" (4 colori possibili per ogni cella 8 x 8). Il modo testo forniva una visualizzazione di 40 colonne per 25 righe. Il font di caratteri di default era modificabile (bastava ordinare al circuito grafico di prelevare le definizioni dei caratteri dalla RAM anziché dalla ROM). Il chip gestiva fino a 8 sprites hardware, cioè delle forme grafiche facilmente gestibili dal chip per ottenere immagini e animazioni, disegnate sopra allo schermo tradizionale. Il VIC-II era capace di generare un interrupt in una qualunque linea di scansione del video desiderata. Questo permetteva al processore centrale di riprogrammarlo "al volo" in modo da usare un set di parametri diverso per zone diverse dello schermo, per esempio per riutilizzare un'altra volta gli 8 sprites, avendone così 16 o anche più disponibili sullo schermo (oltre 50 in alcuni casi). I registri del VIC-II erano memory-mapped nella RAM del processore, ossia potevano essere letti e scritti come ogni altra locazione di memoria.

Il chip audio

Il supporto audio superava tutti i computer della stessa classe. Alla base c'era il chip SID-6581, progettato da Bob Jannes (il progettista del VIC-20), che poteva riprodurre tre voci hardware, permettendo la riproduzione della voce umana senza hardware aggiuntivo (vedere ad esempio il programma "SAM" - SoftwAre Mouth = "lingua software"). A livello di sintesi, il SID costruiva i suoni a partire da tre forme d'onda basilari, più l'ADSR. Tra queste forme d'onda mancava purtroppo quella sinusoidale. Il numero di voci poteva essere "aumentato" mediante tecniche software. Anche i registri di controllo del SID, come quelli del VIC-II, erano memory-mapped (essendo il SID, così come il VIC-II, il CIA, ecc... un adattatore di interfaccia, cioè mappato in memoria). Il SID poteva anche campionare segnali analogici, con risoluzione di 4 bit.

Sistema operativo

Il Sistema Operativo del Commodore 64 era costituito da tre moduli operativi, separati ma interdipendenti:

  1. Il KERNAL
  2. L'editor di schermo
  3. L'interprete BASIC

Il KERNAL era il kernel adottato dai Commodore 8-bit, utilizzato per la prima volta nel Commodore PET 2001 (1977), via via aggiornato nel corso degli anni. Esso è un insieme di routine preposte alla gestione dell'I/O (gestione dello schermo, della tastiera e di tutte le varie periferiche). Le routine potevano anche essere chiamate dall'utente mediante una jump table standardizzata: in questo modo, le chiamate alle routine presenti su tutte le versioni del KERNAL funzionavano correttamente su tutti i modelli Commodore 8-bit (nonostante le differenti mappe di memoria). I programmi in linguaggio macchina potevano così essere scritti più rapidamente, ed avevano un ragionevole grado di portabilità.

L'editor di schermo era un programma preposto alle funzioni di editazione del testo da parte dell'utente.

L'interprete BASIC consentiva all'utente di scrivere i programmi in BASIC, e più in generale di interagire con il sistema operativo, immettendo dei comandi nel modo diretto (es., il comando LOAD per caricare un programma, oppure i comandi di gestione dell'unità a disco 1541). In questo modo era possibile interagire con la macchina. L'interprete usato nel C64 è il CBM BASIC V 2.0, privo di comandi per la gestione della grafica bit-map, sprites e di gestione del suono. In ogni caso, erano disponibili come estensione il Simon's BASIC e altri interpreti. Tuttavia, la grafica ed il suono potevano essere gestiti anche da BASIC 2.0, utilizzando le istruzioni PEEK e POKE, rispettivamente per leggere e modificare un valore nella memoria (gli adattatori di interfaccia dei sistemi Commodore 8-bit erano infatti mappati in memoria).

Nel 1986 fu sviluppato, dalla Berkley Softworks, un sistema operativo con interfaccia grafica: GEOS (Graphical Environment Operating System), che ottenne un buon successo e che fu reso disponibile anche per il Commodore C128.

Memorie di massa

thumb|

Modalità turbo del registratore a cassette
Inizialmente era disponibile la sola memoria a cassette magnetiche, ossia le comuni cassette audio su cui dati e programmi venivano registrati codificandoli su frequenze di alcuni Khz. L'unità a cassette (Datassette) era piuttosto lenta, ma quello che si perdeva in velocità lo si guadagnava in affidabilità. Era inoltre possibile l'uso di loader/saver alternativi a quelli del sistema operativo, che permettevano - pena un'affidabilità minore - dei caricamenti e salvataggi su cassetta più veloci. Un particolare segnale identificava l'inizio di un blocco dati (generalmente, un programma), e per poterlo trovare l'utente era generalmente costretto a scorrere lentamente la cassetta in modo Play. Il contatore di giri posto a lato della cassetta era usato come una sorta di "indice" per arrivare più rapidamente al programma voluto.

In seguito fu disponibile il lettore di floppy disk 154I (l'unità disco del Commodore 64 era denominata 154I e non 1541: ma questo dettaglio non venne mai colto dal pubblico, e praticamente tutti la chiamano 1541), che accettava dischi da 5.25" e trasferiva dati a velocità molto più elevata. Il 154I aveva un processore 6502 in tutto identico a quello del computer principale, e alcuni programmi lo sfruttavano come coprocessore per avere maggiore potenza di calcolo a disposizione. La presenza del microprocessore nel 154I rendeva possibile a questa unità di operare in modo del tutto indipendente: ad esempio, era possibile formattare un floppy e, nel contempo, continuare a scrivere il proprio programma (o, addirittura, effettuare un caricamento dalla unità a nastro). L'abbinamento Commodore 64 + 154I costituiva così un sistema multiprocessore.

Varianti

thumb|right|180px|Commodore 64


thumb|right|180px|Commodore Max


thumb|right|180px|Commodore SX-64


Collegamenti esterni


Categoria:Computer Categoria:Commodore

See also: Commodore 64, 1986, 1993, ADSR, Amiga, Anni 1980, Assembly, BASIC, CP/M, Commodore International