Commodore 16
Commodore 16 computer | |
---|---|
Il Commodore 16 | |
Tipo | home computer |
Paese d'origine | ![]() |
Produttore | Commodore Business Machines Inc. |
Presentazione | 1984 |
Inizio vendita | 1984 |
Fine vendita | 1984 |
CPU | MOS 7501 |
Frequenza | 0,89 o 1,76 MHz |
FPU | non presente |
MMU | non presente |
Altri coprocessori | TED |
ROM | 32 kB |
RAM di serie | 16 kB |
SO di serie | KERNAL |
Altro software di serie | Commodore BASIC 3.5 |
Il Commodore 16 è un modello di home computer presentato da Commodore nel 1984 come erede del VIC-20 e alternativa a più basso costo al Commodore 64.
Faceva parte della serie Commodore 264, che comprende il Commodore Plus/4 e il Commodore 116.
Storia[modifica | modifica wikitesto]
Agli inizi degli anni ottanta la Commodore aveva in listino il VIC-20, presentato nel 1981 e destinato alla fascia bassa di mercato, e il più costoso Commodore 64, dotato di prestazioni superiori e messo in commercio nel 1982. In mezzo ad essi si posizionavano, offerti a prezzi che si aggiravano intorno ai 100 dollari, diversi prodotti delle concorrenti Timex Corporation, Mattel e, soprattutto, il TI-99/4A prodotto dalla Texas Instruments.
L'allora presidente della Commodore, Jack Tramiel, decise quindi di completare l'offerta delle sue macchine realizzando un home computer che si posizionasse in quella fascia; inoltre, Tramiel temeva che alcuni costruttori giapponesi avrebbero prima o poi realizzato degli home computer di fascia medio-bassa, facendo crollare i prezzi, previsione che si rivelò infondata perché questi si dedicarono al settore delle console da gioco. Inoltre, Timex Corporation, Mattel e Texas Instruments si ritirarono dal mercato prima dell'arrivo dei nuovi prodotti.
Gli ingegneri Commodore nel 1984 si misero quindi al lavoro e progettarono la Commodore 264, una nuova famiglia di computer che comprendeva: il Commodore Plus/4, come modello di punta; il Commodore 16, come modello intermedio; il Commodore 116 (una versione del C-16 con case di ridotte dimensioni e tastini in gomma destinato al solo mercato europeo), come modello economico.
Tuttavia la vita commerciale del C16 durò veramente poco: tolto dal mercato quasi subito negli USA, ebbe una discreta diffusione solo in Europa, ne furono prodotti 1.200.000 (venduti praticamente tutti) e la produzione cessò verso la fine dello stesso 1984.
Caratteristiche hardware[modifica | modifica wikitesto]
Design[modifica | modifica wikitesto]
Il C-16 fu il secondo computer della serie Commodore 264 ad essere presentato ma, a differenza del Plus/4, furono riprese le forme del VIC-20 e del C-64: il case rotondeggiante era di colore nero con i 66 tasti grigio chiari e l'alimentatore esterno a 9 Volt. Le similitudini finivano qui: infatti il Commodore 16 era una versione depotenziata del Commodore Plus/4, montando lo stesso processore e lo stesso coprocessore, adottando gli stessi connettori di quest'ultimo) per le periferiche base, ossia joystick e registratore, anche se esistevano comunque in commercio dei cavi convertitori per usare le periferiche del C-64 sul C-16 e viceversa) ed integrando il Commodore BASIC in versione 3.5. Il connettore seriale, pur essendo in grado di gestire una velocità maggiore del transfer rate rispetto a VIC-20 e C-64 (con periferiche specifiche), era invece pienamente compatibile con le periferiche del C-64 e VIC-20.
Ad un BASIC 3.5 ricco di comandi avanzati, ad un'ottimale gestione della memoria, ad un ricco set di colori si contrapponevano l'assenza del SID e, soprattutto, hardware dedicato agli sprite che, unitamente ai 16 kb di RAM, alla necessità di utilizzare periferiche con connettori specifici e all'incompatibilità della macchina con gli altri modelli Commodore più diffusi ne decretarono lo scarso successo.
MOS 7501/8501[modifica | modifica wikitesto]
Il Commodore 16 era basato su una nuova CPU siglata MOS 7501/8501, evoluzione del 6510 che muoveva il C-64. Rispetto a quest'ultimo il 7501/8501 lavorava a 0,89/1,78 MHz di frequenza, e aveva un canale I/O bidirezionale a 7 bit con cui, in collaborazione con il TED, gestiva il bank switching (tecnologia poi ripresa anche nel Commodore 128) che permetteva di gestire dinamicamente i banchi di memoria visibili alla CPU: si poteva cioè avere più di un banco con lo stesso indirizzo, ad esempio uno ROM ed uno RAM, e selezionare di volta in volta quello attivo su cui operare. In questa maniera, dei 16 kB di memoria RAM totali disponibili sul computer, l'utente ne poteva utilizzare da BASIC circa 12 (il messaggio "12277 bytes free" che appariva all'accensione della macchina): anche se questa quantità era di per sé poca, relativamente parlando era una buona percentuale se si pensa che dei 64 kB di RAM del C-64 l'utente ne poteva usare solo 38 da BASIC, mentre il resto era comunque disponibile a patto di lavorare in linguaggio macchina e disattivando il banco ROM contenente il BASIC.
L'interazione del 7501/8501 con il TED causava ovviamente dei rallentamenti che comunque si potevano evitare se si disattivava l'output video del TED manipolando i suoi registri: in questa modalità il clock della CPU raddoppiava (da 0,89 a 1,78 MHz). Questa modalità era utile, ad esempio, per eseguire calcoli particolarmente gravosi: eliminando il video, si riduceva del 30% il tempo di elaborazione. Terminato il processo, bastava riattivare l'output e visualizzare a schermo i risultati.
Chip TED 7360[modifica | modifica wikitesto]
Affiancato alla CPU c'era un nuovo chip per la gestione della grafica e del suono, il TED 7360 (acronimo di Text Editing Device): con il TED il C-16 riprendeva l'architettura del VIC-20, dove un unico coprocessore (il VIC) integrava sia l'unità grafica che quella audio mentre sul C-64 queste erano separate (la parte grafica era gestita infatti dal VIC-II, mentre il suono era controllato dal SID).
Il TED era capace di 5 modalità video:
- modalità Text mode con 40x25 caratteri: caratteri di 8x8 pixel con 2 colori, uno per il testo ed uno per lo sfondo;
- modalità Multicolor text: i colori per carattere divenivano 4, di cui uno fisso per lo sfondo di tutto il video, ma la risoluzione orizzontale veniva dimezzata (4x8 pixel per carattere);
- modalità Extended background color mode: qui i caratteri (di 8×8 pixel) potevano avere colori di sfondo differenti l'uno dall'altro;
- modalità Multicolor Graphics: modalità grafica con risoluzione schermo di 160×200 pixel e 4 colori;
- modalità Hi-Res Graphics: modalità grafica con risoluzione di 320×200 pixel e 2 colori.
Le ultime due modalità permettevano anche una modalità mista in cui si aveva nella parte alta una finestra grafica di 160 pixel di altezza e nella parte bassa una finestra alta 40 pixel in modalità testo con 5 righe di caratteri visualizzabili. L'accesso alla modalità grafica riduceva però la RAM disponibile all'utente di 10 kB (necessari a memorizzare i dati dell'immagine), rendendo di fatto impossibile scrivere programmi grafici di una certa complessità. I colori disponibili erano ben 121 (una rarità per i computer dell'epoca) contro i 16 del C-64, grazie al fatto che il TED poteva gestire la luminanza del colore: in questo modo si avevano 8 tonalità per ognuno dei 15 colori di base (15x8=120) più il nero (120+1=121), mancava tuttavia il supporto per gli sprite.
A livello audio il TED integrava solo 2 generatori sonori contro i 3 del VIC e del SID. Inoltre, i generatori del TED erano capaci di generare solo onde quadre o rumore bianco (2 onde quadre oppure 1 onda quadra ed 1 rumore bianco), dato che erano stati studiati più per un impiego in applicazioni da ufficio che per i giochi: non va dimenticato infatti che il Plus/4, da cui deriva il C-16, era nato come tale offrendo in ROM quattro programmi tipicamente da ufficio, come un editor di testo ed un foglio elettronico.
Memoria[modifica | modifica wikitesto]
Il C-16 era dotato di 16 kB di memoria RAM e 32 kB di memoria ROM. La RAM era la memoria volatile destinata a contenere i programmi inseriti o caricati ma, come detto, di questa solo 12 kB erano utilizzabili effettivamente dall'utente: i primi 4 kB erano infatti occupati dal sistema per i registri mappati in memoria, i puntatori a varie funzioni, i buffer di I/O e lo stack (2 kB), e dalla memoria video per la modalità testuale (2 kB, di cui 1 per i caratteri da visualizzare sullo schermo ed 1 per i loro attributi). La RAM utile scendeva a 2 kB se si attivava la modalità grafica perché il TED mappava nella RAM utente il buffer grafico, togliendo altri 10 kB.
Nei 32 kB di ROM erano stipati tutti i dati necessari al funzionamento del computer: questi erano prevalentemente occupati dal KERNAL (circa 8 kB), dall'interprete BASIC e dall'editor di schermo (circa 16 kB), dai font (2 kB), dal monitor in linguaggio macchina e da tutte le routine accessorie.[1] Qui di seguito l'allocazione della memoria del Commodore 16:[2]
Indirizzo | Uso | |
---|---|---|
Hex | Dec | |
$0000-$07FF | 0000-2.047 | Memoria usata come RAM di sistema. Contiene anche la "Pagina zero", i primi 256 byte di memoria che possono essere indirizzati in maniera veloce dalla CPU |
$0800-$0C00 | 2.048-3.071 | Color RAM, usata per conservare i colori delle celle video in modalità testo |
$0C01-$1000 | 3.072-4.095 | Video RAM, usata per memorizzare i caratteri presenti nelle singole celle video in modalità testo |
$1000-$3FFF | 4.096-16.383 | RAM dedicata al BASIC (programma + variabili) - in modalità grafica quest'area viene ridotta alla sezione $1000-$17FF / 4.096-6.143 (vedi sotto) |
$1800-$1BFF | 6.144-7.167 | In modalità grafica quest'area contiene la luminanza dei pixel |
$1C00-$1FFF | 7.168-8.191 | In modalità grafica quest'area contiene i colori dei pixel (Color RAM) |
$2000-$3FFF | 8.192-16.383 | In modalità grafica quest'area è usata come buffer grafico (Video RAM) |
$4000-$7FFF | 16.384-32.767 | Indirizzi non mappati, sono lasciati liberi per eventuali espansioni di memoria |
$8000-$BFFF | 32.768-49.151 | ROM contenente il BASIC V3.5 |
$C000-$CFFF | 49.152-53.247 | Indirizzi non mappati, sono lasciati liberi per eventuali espansioni del BASIC |
$D000-$D7FF | 53.248-55.295 | ROM contenente la mappa dei caratteri |
$D800-$FBFF | 55.296-64.511 | ROM contenente le routine del KERNAL |
$FC00-$FCFF | 64.512-64.767 | Routine per la gestione del bank switching |
$FD00-$FEFF | 64.768-65.279 | Registri di I/O |
$FF81-$FFF9 | 65.409-65.529 | "Jump table" alle funzioni del KERNAL |
$FFFA-$FFFB | 65.530-65.531 | Vettore per l'interrupt NMI |
$FFFC-$FFFD | 65.532-65.533 | Vettore per la routine di reset |
$FFFE-$FFFF | 65.534-65.535 | Routine per l'interrupt IRQ |
Caratteri[modifica | modifica wikitesto]
Il set di caratteri era residente in ROM e derivava dal set PETSCII già usato da Commodore sui precedenti modelli VIC-20, C-64 e PET. Rispetto ai set in standard ASCII, il PETSCII comprendeva caratteri alfanumerici e semigrafici. Era costituito da due mappature differenti: una per la modalità maiuscola (quella standard), costituita da lettere maiuscole, numeri e caratteri grafici, ed una per la modalità minuscola, costituita da lettere minuscole e maiuscole e da altri caratteri grafici. I font potevano essere modificati semplicemente copiando i dati in memoria RAM, alterando i caratteri da cambiare e poi variando i puntatori alla mappa dei caratteri in modo che il sistema leggesse i nuovi fonts
Caratteristiche software[modifica | modifica wikitesto]
Il sistema operativo[modifica | modifica wikitesto]
Il sistema operativo del C-16 era costituito, come per il VIC-20 ed il C-64, da 3 parti indipendenti e integrate:
KERNAL[modifica | modifica wikitesto]
Il kernel del sistema operativo del C-16 era il KERNAL nato per i PET e poi utilizzato su tutti i computer Commodore ad 8 bit fino al C-128. Il KERNAL risiedeva in 8 kB di ROM ed era composto da tutte le routine di basso livello per il controllo dell'hardware del computer come l'I/O, lo schermo, le periferiche. Le routine potevano essere richiamate dall'utente utilizzando una jump table standard per tutti i computer Commodore così da rendere un programma in linguaggio macchina il più trasportabile possibile.
BASIC[modifica | modifica wikitesto]
Il livello software superiore al KERNAL era costituito dall'interprete del Commodore BASIC, in versione 3.5, che si occupava di eseguire i comandi impartiti dall'utente richiamando le routine del KERNAL necessarie al compito da svolgere. La nuova versione offriva diversi comandi in più rispetto al BASIC 2.0 del VIC-20 e del C-64, tra i quali i più importanti erano quelli per:
- la gestione della grafica e del suono (CIRCLE, DRAW, SOUND, ecc.);
- il controllo della porta joystick (JOY);
- la conversione decimale/esadecimale (DEC, HEX$);
- i cicli strutturati (DO, LOOP, WHILE, UNTIL, EXIT);
- l'assegnamento ai tasti funzione (KEY);
- il supporto all'editing dei programmi (AUTO, DELETE, RENUMBER);
- il debugging (TRON, TROFF);
- la chiamata del monitor in linguaggio macchina (MONITOR).
Editor di schermo[modifica | modifica wikitesto]
Lo schermo era in realtà gestito come un editor, mediante il quale l'utente poteva comandare direttamente il computer: esso assolveva ai compiti di interfaccia a riga di comando. Alla pressione del tasto "RETURN", il testo scritto sulla riga dove era presente il cursore veniva interpretato dall'editor di schermo: se veniva riconosciuto un comando, questo veniva eseguito immediatamente dall'interprete BASIC. Se la riga iniziava con un numero, l'editor di schermo la interpretava come una riga di "listato" e la memorizzava in un'apposita area di memoria dove risiedeva il programma dell'utente.
Monitor in linguaggio macchina[modifica | modifica wikitesto]
Il monitor in linguaggio macchina era un vero e proprio assemblatore/disassemblatore fornito di una dozzina di comandi grazie ai quali si potevano scrivere programmi direttamente in assembly, modificare i contenuti delle locazioni di memoria, salvare su nastro o caricare da esso porzioni di memoria. Al monitor si poteva accedere anche premendo contemporaneamente il tasto RUN-STOP ed il tastino di reset.
Periferiche[modifica | modifica wikitesto]
La linea Commodore 264 presentava diversi connettori specifici così che quasi nessuna delle numerose periferiche in circolazione per il VIC-20 e il C-64 poteva essere utilizzata con la nuova macchina. Tra le periferiche specifiche per C-16 (tutte di colore nero e quasi tutte prodotte dalla Commodore perché i vari costruttori, visto lo scarso successo commerciale del C-16, snobbarono questo computer) ricordiamo il registratore a cassette Datasette 1531 e il joystick CBM T-1341. Venne creata anche una specifica unità a floppy, il Commodore 1551, che era mediamente più veloce del 1541 perché sfruttava 4 fili del connettore seriale invece dei 2 usati sul C-64: a differenza di altri, questo connettore è lo stesso di quello presente su Commodore VIC-20 e Commodore 64 e, quindi, è perfettamente compatibile con drive, stampanti e periferiche seriali creati per questi computer.
Furono prodotte anche delle espansioni di memoria, ma ebbero poca diffusione perché erano rare, costose e presentavano problemi di compatibilità.[senza fonte]
Software e pubblicazioni[modifica | modifica wikitesto]
La scarsa dotazione di memoria, l'assenza degli sprite e la presenza di un audio di basso livello non facilitarono lo sviluppo di software: gli applicativi di una certa rilevanza furono pochi, mentre i giochi, creati in discreta quantità, qualitativamente erano di livello inferiore a quelli del C-64. Ciò nonostante si ebbero diversi titoli, molti originali per il C-16 ed anche alcune conversioni di giochi famosi come Paperboy, Bomb Jack o Ghosts 'n Goblins.
In edicola comparvero diverse raccolte periodiche su nastro di programmi e giochi per C16 che uscivano generalmente in abbinamento a software per altri computer, tipicamente C-64 o VIC-20 ma non mancarono i casi di abbinamento a giochi per macchine non Commodore, come C16/MSX con giochi per C16 e MSX.[3] A livello di riviste cartacee l'interesse fu modesto: solo quelle specificatamente dedicate ai computer Commodore, come la nota Commodore Computer Club, dedicò spazio a questo computer pubblicando listati di programmi ed utility.
Nonostante le forti limitazioni hardware, molti dei programmatori si ingegnarono per riuscire a far stare il software che scrivevano (soprattutto videogiochi) nei pochi kB disponibili; e, di fatto, la quasi totalità del software commerciale prodotto per la serie 264 si accontentava dei 12 kB del C-16. Questo decretò (relativamente) un insuccesso ancora maggiore per il Plus/4, oltre quello della differenza di prezzo, essendo assai scarsa la diffusione di software specifico per quest'ultima macchina (che inoltre presentava alcuni -sia pur rari- problemi di compatibilità col software prodotto per il C-16).
A livello di pubblicazioni il Commodore 16 non riscosse più fortuna: solo pochi editori, tra cui il Gruppo Editoriale Jackson[4], offrirono alcuni libri di approfondimento e manuali di programmazione dedicati espressamente a questo computer.
Cloni[modifica | modifica wikitesto]
Una variante argentina era assemblata localmente, avvantaggiandosi della legislazione in vigore all'epoca, dalla società Drean. Essa si distingue per una differente placca di identificazione riportante il logo Drean prima di quello Commodore.
Note[modifica | modifica wikitesto]
- ^ Janne Peräaho, Anders Persson, Mappa di memoria del Commodore 16, su zimmers.net, 9 dicembre 1994. URL consultato il 2 agosto 2012.
- ^ Dati del C16 e allocazione della memoria, c64-wiki.com. URL consultato il 24 aprile 2016.
- ^ Le copertine della rivista C16/MSX, Edicola a 8 bit. URL consultato il 26 maggio 2015.
- ^ Gruppo Editoriale Jackson, Plus4 World. URL consultato il 6 dicembre 2012.
Bibliografia[modifica | modifica wikitesto]
- Commodore 16 - Guida all'utente, Commodore Italiana, 1984.
- Articoli
- Commodore C-16, in A Tutto Commodore, allegato a Sperimentare con l'elettronica e il computer, n. 4, JCE, aprile 1985, pp. 8-11.
- Commodore C16, in MCmicrocomputer, n. 38, Roma, Technimedia, febbraio 1985, pp. 46-51, ISSN 1123-2714 .
- Libri
- Rita Bonelli, Luciano Pazzucconi, Fabio Racchi, Commodore 16 per te, Gruppo Editoriale Jackson, 1985, ISBN 88-7056-196-8.
- Rita Bonelli, Luciano Pazzucconi, Fabio Racchi, Commodore 16 sempre di più, Gruppo Editoriale Jackson, 1985, ISBN 88-7056-278-6.
- Alessandro Borra e Mauro Cristuib Grizzi, Lavoriamo con il Commodore 16, Gruppo Editoriale Jackson, 1985, ISBN 88-7056-316-2.
- David Lawrence, Commodore 16: essenziali e routine, Gruppo Editoriale Jackson, 1985, ISBN 88-7056-257-3.
- Peter Beresford, L'ABC del linguaggio macchina per C16, JCE, 1985, ISBN 88-7708-007-8.
- David Lawrence e Mark England, Linguaggio macchina per il C16, Gruppo Editoriale Jackson, 1986, ISBN 88-7056-435-5.
- Brian Lloyd, I tuoi amici Commodore 16 e PLUS 4, Gruppo Editoriale Jackson, 1985, ISBN 88-7056-258-1.
- Videobasic per Commodore 16 (corso di BASIC in 20 fascicoli bisettimanali), Gruppo Editoriale Jackson, 1985-1986.
- I miei amici C16 & Plus 4, in I libri di Systems, Systems Editoriale, 1986.
Voci correlate[modifica | modifica wikitesto]
Altri progetti[modifica | modifica wikitesto]
Wikimedia Commons contiene immagini o altri file su Commodore 16
Collegamenti esterni[modifica | modifica wikitesto]
- (EN) Plus/4 World (tutto sul Commodore 16 e Plus/4, con schede dettagliate di giochi, software, pubblicazioni), su plus4world.powweb.com.
- (EN) Commodore C16 (dati tecnici e foto delle periferiche più comuni), su old-computers.com. URL consultato il 27 agosto 2008 (archiviato dall'url originale il 10 giugno 2008).
- Il Commodore 16, su associazione64.it (archiviato dall'url originale l'11 aprile 2018).
Controllo di autorità | LCCN (EN) sh85028983 · GND (DE) 4121101-7 · BNE (ES) XX527916 (data) |
---|