Il Commodore 128 (noto anche come C128, CBM128 o C= 128) è un modello di home computer a 8 bit prodotto dalla Commodore Business Machines tra il 1985 e il 1989.
Immesso sul mercato tre anni dopo il Commodore 64, il computer venne progettato per rimediare al fallimento della serie Commodore 264. Fu l'ultima macchina a 8 bit prodotta dalla Commodore e venne presto abbandonato a causa dell'imminente successo delle macchine a 16 bit e soprattutto della nuova piattaforma Amiga acquistata da Commodore nello stesso 1985. Nonostante avesse totalizzato un discreto numero di vendite, ed essere stato prodotto sia nel classico modello con tastiera americana sia in versioni nazionalizzate, non riuscì a raggiungere gli stessi risultati del Commodore 64.
Storia Progettazione Dopo che Jack Tramiel lasciò la Commodore agli inizi del 1984, il nuovo gruppo dirigenziale cercava un nuovo prodotto per rimediare al fallimento della serie Commodore 264 e produrre un computer che potesse rimpiazzare il C64. Durante l'estate del 1984 il progetto fu avviato e la direzione venne affidata a Bil Herd, che aveva guidato proprio lo sviluppo delle macchine della serie TED. Furono però posti dei vincoli: il computer avrebbe dovuto essere a 8 bit e avrebbe dovuto essere pronto in 5 mesi poiché doveva essere presentato al successivo CES di Las Vegas che si sarebbe tenuto nel gennaio del 1985, e avrebbe dovuto competere anche nel mercato semi-professionale come macchina per piccoli uffici.
Primi prototipi e sviluppo hardware Herd iniziò a lavorare a un nuovo home computer partendo da un prototipo già in fase di sviluppo denominato D128, basato sul MOS 6509 e su un nuovo chip video monocromatico denominato MOS 8563, ma successivamente rivoluzionò quasi completamente il progetto ripartendo da uno schema hardware più simile a quello del Commodore 64. Durante questa revisione gli ingegneri che avevano sviluppato l'8563 offrirono a Herd un modello revisionato con l'aggiunta del supporto al colore: questa versione fu scelta come chip grafico della nuova macchina. Un paio di settimane dopo l'inizio dello sviluppo la dirigenza Commodore decise che il nuovo computer avrebbe dovuto essere compatibile anche con il C64: Herd fu costretto, perciò, a rivedere in corso d'opera il progetto della macchina. La CPU non destava preoccupazioni: scelse il nuovo MOS 8502, una versione migliorata del 6510 perciò capace di eseguire tutto il codice di quest'ultimo. Poiché il chip grafico era stato pensato per un computer che potesse essere usato anche in un ufficio, per ottenere la grafica multicolore, il supporto agli sprite e l'audio avanzato del SID fu deciso di integrare tutti i coprocessori del Commodore 64 in modo che il nuovo computer fosse in grado di eseguire tutti i giochi e i programmi scritti per tale home computer. Il VIC-II non prese comunque il posto del MOS 8563 ma lo affiancò perché solo questo era capace di offrire le 80 colonne richieste in ambito professionale.
Lo sviluppo dell'hardware si rivelò comunque problematico: l'8563 manifestò diversi problemi, a cominciare dal surriscaldamento anomalo a cui andavano incontro i primi prototipi, che costringevano gli sviluppatori a raffreddarlo con metodi artigianali, per arrivare ai problemi di sincronizzazione sull'accesso alla memoria tra l'8563 e il VIC-II che generavano artefatti grafici con parti di testo che scomparivano dallo schermo. Una volta risolti questi problemi il computer, grazie ai 2 chip grafici, riuscì a offrire diverse modalità video: l'8563 generava un'immagine a 640x200 pixel con 80 colonne di testo e un'uscita video RGBI compatibile con i segnali CGA dei PC IBM mentre il VIC-II offriva uno schermo a 40 colonne su un'uscita TV. In questo modo era possibile pilotare 2 schermi contemporaneamente, ognuno con un'immagine diversa. Essendo pensato anche per un uso professionale, fu deciso di integrare anche la CPU Zilog Z80 così da poter usare sul computer tutto il vasto parco software scritto per il CP/M che nel periodo era uno dei più diffusi sistemi operativi.
Presentazione al pubblico Lo sviluppo fu terminato pochi giorni prima dell'inizio del Consumer Electronics Show, mentre gli ultimi bug software furono risolti poche ore prima dell'inizio della stessa manifestazione. Il computer fu presentato al CES del 5 gennaio 1985 con il nome di Commodore 128, a indicare il quantitativo di RAM installata.
Fu presentato anche come modello da ufficio in concorrenza col Macintosh 128K e i PC IBM grazie alla presenza dello Zilog Z80 come seconda CPU con cui poteva eseguire il CP/M e tutti i programmi professionali disponibili per questo sistema operativo.
Insuccesso e dismissione Nonostante la pubblicità lo rappresentasse come il terrore degli IBM compatibili o un Macintosh killer, il C128 non ebbe una grande fortuna, né come home computer né come macchina professionale. Possedeva caratteristiche comuni a home computer e personal computer con i limiti del primo tipo, ma nell'utilizzo come PC non fu in grado di reggere la concorrenza; la scarsa penetrazione nel mercato fu in parte anche dovuta al fatto che, al momento del lancio, lo standard CP/M cominciava a essere abbandonato commercialmente, in favore dell'MS-DOS.
Dopo il successo del Macintosh, Apple lanciò nuovi modelli, tra i quali il Macintosh Plus, dotato della nuova interfaccia SCSI che permetteva l'aggiunta di disco rigido e di altre periferiche, risultando superiore alle macchine della Commodore. Complice infine la scarsità del software appositamente sviluppato, l'interesse verso il Commodore 128 diminuì già dopo qualche anno dal lancio, infine la produzione cessò nel tardo 1989.
Caratteristiche
Possedeva di base la stessa quantità di memoria del Macintosh 128K e capacità grafiche e sonore maggiori rispetto a un IBM compatibile dell'epoca, poteva contare sulla vastissima quantità di software già scritto per il C64 e sul sistema Operativo CP/M, precedente l'MS-DOS e ispiratore di quest'ultimo. Aveva inoltre una tastiera completa da 95 tasti integrata nel corpo macchina e di una linea più filante e bassa rispetto a quella dei modelli precedenti. Il Commodore 128 presentava 2 CPU: il MOS 8502, derivato dal MOS 6510 montato sul C64, e lo Zilog Z80. Operava a 2 MHz e l'utente aveva accesso ai 128 kB di RAM, sia con uno schermo a 80 colonne e con un BASIC con nuovi comandi, sia emulando il C64, offrendo una compatibilità quasi totale con questa macchina, sia in modalità CP/M, permettendo di eseguire i programmi scritti per questo sistema operativo.
Le nuove caratteristiche hardware promettevano inoltre una più vasta gamma di utilizzi professionali e ludici: la grafica offriva una modalità a 640×200, grazie al nuovo chip MOS VDC e il suono era a 3 canali, offerto dal MOS SID. Tuttavia, il chip grafico era anche il maggior punto debole del C128: nonostante fosse ufficialmente messo in commercio come processore per modalità "solo testo", dalle schede tecniche si evinceva che esso poteva operare anche in modalità grafica (senza supporto per gli sprite) ma vista la complessità del metodo adottato per l'accesso ai suoi registri gli sviluppatori avevano optato per non supportare questa modalità con il BASIC 7.0, rendendo la modalità testuale a 80 colonne l'unica effettivamente utilizzabile inizialmente sul C128. Affiancato al VDC era stato integrato nella piastra madre anche il MOS VIC-II, che però non era in grado di operare al clock di 2 MHz dell'8502: perciò l'unica maniera per avere la modalità a 40 colonne (320×200) era quella di operare a velocità dimezzata. Per rimediare a questo limite fu studiato un metodo per usare (almeno parzialmente) il clock a 2 MHz anche in modalità a 40 colonne che sfruttava l'interrupt agganciato al pennello elettronico che disegnava l'immagine sul quadro video. Il pennello video lanciava un interrupt nel momento in cui arrivava a disegnare la prima riga vuota sotto all'immagine centrale: in quel momento il computer veniva impostato a 2 MHz e a tale velocità restava mentre il pennello disegnava le parti vuote sopra e sotto l'immagine centrale, venendo poi reimpostato a 1 MHz quando iniziava nuovamente a disegnare l'area principale.
Seguendo la documentazione rilasciata in seguito dalla stessa Commodore, fu pubblicato in un libro un metodo che consentiva di sfruttare la modalità grafica del VDC che consisteva nell'accedere alla memoria video indirizzando singolarmente ogni locazione, attraverso un macchinoso sistema a due registri che rendeva le operazioni grafiche molto lente. Il VDC, infatti, non aveva né la memoria video né i suoi registri mappati nella RAM principale del computer, a parte 2 locazioni usate per passare i dati da e per il chip grafico denominate "Address Register" e "Data Register". Per programmare il chip si dovevano passare i dati esclusivamente attraverso questi due registri: per esempio, per scrivere un valore in un registro interno del chip si doveva inserire il valore nella cella dei dati e il numero del registro nella cella degli indirizzi; per accendere un pixel si doveva usare lo stesso sistema, passando al chip i dati indicanti l'indirizzo della cella nei registri appropriati e il dato da inserire. Lo sviluppo di giochi con grafica in modalità 640×200 era di fatto improponibile e la gestione del chip non supportata dal BASIC nativo convinse gli autori del libro, tramite la loro software house Walrusoft, a creare il BASIC 8.0, una estensione al linguaggio integrato nel computer che consentiva una gestione più semplice del VDC e alcune modalità grafiche aggiuntive.
Il Commodore 128 poteva contare anche su un processore Z80 di ZiLOG che consentiva l'utilizzo del sistema operativo CP/M e permetteva di accedere al vasto parco programmi scritti per questo sistema operativo. Ma il lavoro dello Z80 non si limitava a questo: era questa CPU, infatti, che veniva "risvegliata" per prima all'avvio della macchina e controllava se non fossero inserite delle cartucce C64/C128 nell'apposita porta, che in caso di unità a dischi non ci fosse un floppy avviabile oppure che l'utente non stesse premendo il tasto C= (Commodore) per richiedere l'avvio della modalità C64. Per permettere al CP/M di funzionare con prestazioni degne, il Commodore 128 supportava nativamente una modalità di trasferimento accelerata dei dati sul bus seriale dei dischi (burst mode).
Le modalità Grazie a queste caratteristiche la Commodore lo presentava come "tre computer in uno" per via delle sue diverse modalità operative:
Modalità 128: modalità nativa del computer. Grazie al MOS 8563, poteva utilizzare 80 colonne di testo mentre con il VIC-II 40 colonne. In questa modalità si aveva accesso al nuovo Commodore BASIC 7.0, arricchito di molti comandi tra cui quelli per la gestione della grafica e del suono. Modalità 64: la CPU veniva abbassata a 1 MHz e l'immagine era generata dal VIC-II. Tutta la ROM del C64 era contenuta nel computer ed erano presenti tutti i suoi coprocessori per cui avviando il C128 in modalità C64 la compatibilità era quasi totale. In questa modalità l'utente poteva usare solo il Commodore BASIC 2.0 e le 40 colonne. Modalità CP/M: avviando il CP/M grazie allo Z80 il computer poteva lanciare ed eseguire tutto il software scritto per questo sistema operativo. In questa modalità il computer poteva operare a 40 oppure 80 colonne.
Il sistema operativo
Il BASIC residente del C128, denominato BASIC 7.0, integra funzioni grafiche avanzate e la possibilità di controllare la parte audio. La schermata di avvio mostra il copyright di Microsoft per il linguaggio BASIC.
L'accensione del sistema effettua anche la ricerca di software autoavviante dalla prima unità a dischi. Questa caratteristica, anch'essa una novità per i computer Commodore, è tipica del sistema CP/M ma fu successivamente utilizzata anche in altri software per il C128. La partenza avviene, oltre che per accensione, alla pressione del tasto di reset e con il comando basic BOOT.