Enhanced Chip-Set (ECS): una spolverata al chipset dell’Amiga

Delle meraviglie dell’OCS, il primo chipset dell’Amiga, abbiamo già parlato in un precedente articolo che ne esponeva in maniera più o meno dettagliata (ma non troppo tecnica) le innovazioni e le caratteristiche peculiari che hanno giustamente contribuito alla fama della macchina che lo montava.

Era il 1985, e passando gli anni si sente, però, il bisogno di apportare dei miglioramenti. D’altra parte non si può innovare una volta per poi campare di rendita, come si suol dire, anche perché il mondo attorno a noi è sensibile all’avanzare della tecnologia, e si adegua di conseguenza.

Sebbene qualche chip dell’ECS fosse stato utilizzato in precedenti modelli, è soltanto nel 1990 che l’ECS fa ufficialmente la sua apparizione nella sua interezza, con le versioni potenziate (chiamate “super”) di Agnus e Denise, cioè gli integrati che si occupano rispettivamente della gestione della memoria (e dei canali DMA) e della generazione della grafica, elementi di innovazione su cui agisce concretamente questo chipset.

L’Amiga 3000 è il primo computer a farne uso (ricordo ancora come fosse oggi la presentazione a quello SMAU ’90; fiera di culto, ai tempi, in cui venivano presentate tecnologie di spessore), e sarà seguito poi a ruota dall’Amiga 500+ (o “Plus” che dir si voglia), e dal più compatto Amiga 600; macchine di cui magari ci parlerà Alessio in qualche futuro articolo.

Tornando al chipset, col nuovo arrivato Commodore ha risolto una delle più grosse lacune: la mancanza di programmabilità del segnale video. Infatti l’OCS non aveva altra possibilità che generare un segnale perfettamente aderente a uno dei due standard video, l’NTSC (usato principalmente in USA e Giappone) e il PAL (per lo più europeo).

L’unica libertà concessa era nella scelta fra bassa (320×200 NTSC, 320×256 PAL) o alta risoluzione (640×200 NTSC, 640×256 PAL), con la possibilità, per ognuna di esse, di poter abilitare l’interlacciamento e, quindi, raddoppiare la risoluzione verticale (a 400 e 512 linee rispettivamente per NTSC e PAL).

ECS permette, invece, di poter definire minuziosamente ogni aspetto del segnale video: di quanti cicli clock è costituita una riga di raster, i cicli di clock per il bordo sinistro e quello destro, quante linee di raster devono essere presenti in un fotogramma, e di queste quante in alto e quante in basso per i rispettivi bordi. Un controllo completo, insomma, che permetteva di definire minuziosamente ogni aspetto, come tra l’altro accadeva già da tempo coi chip video di altre piattaforme (PC in primis).

Viene introdotta anche un’ulteriore modalità video, chiamata super-hires (super alta risoluzione), che raddoppia il numero di punti orizzontali rispetto all’hires, portandoli quindi a ben 1280 e permettendo, pertanto, di poter visualizzare immagini molto più definite (alla quale, al solito, si può applicare l’interlace). Il prezzo da pagare è, però, il dimezzamento del numero di colori visualizzabili, che passa dai 16 masssimo dell’hires ai 4 massimo del super-hires.

Stessa sorte capita per la risoluzione VGA (640×480 a 60Hz) e SuperVGA (800×600 a 72Hz; in realtà la risoluzione effettiva è 848×614 a 70Hz), quest’ultima ottenibile esclusivamente in modalità interlacciata, entrambe frutto della citata programmabilità del segnale video.

Questa povertà della tavolozza dei colori, e l’obbligatoria presenza dell’interlace nell’ultimo caso, è dovuta esclusivamente a un motivo: la banda. La chip ram (così era chiamata la memoria video) non ne mette a disposizione abbastanza per poter abilitare più dei 2 bitplane massimi con queste modalità, in quanto è limitata dai 7Mhz circa del clock, e dai 2 cicli di clock necessari per poter leggere una word a 16 bit.

Particolare attenzione è stata rivolta alle funzionalità legate al genlock. Questo grazie alla meritata fama che Amiga s’è guadagnata nel campo della produzione video, per la quale è rimasta per parecchi anni leader indiscussa, e che ha visto le macchine di casa Commodore impiegate nei più disparati studi televisivi, dai fotografi, e dagli amatori di videocamere e montaggi video.

ECS porta delle novità molto interessanti, prima fra tutte la possibilità di poter scegliere liberamente quali colori della palette poter “forare” per lasciar intravedere la sottostante sorgente video. Con l’OCS soltanto il primo colore, con indice 0, era possibile utilizzare allo scopo. Col nuovo chipset, il bit più significativo (il 15) di ogni colore specifica, se impostato, che può essere “forato”.

Oltre a ciò, è possibile anche scegliere un bitplane da utilizzare allo scopo. Specificandolo, tutti i bit a 1 appartenenti al bitplane comporteranno il “foramento” del relativo pixel. Può sembrare uno spreco dedicare un intero bitplane soltanto per il genlock, ma in questo modo è possibile realizzare in maniera estremamente semplice ed efficiente tutta una serie di effetti sfruttando il gioiello a cui fa capo il nome di Blitter, particolarmente abile nel manipolare proprio queste regioni rettangolari.

Infine, si può decidere se riprodurre un bordo attorno all’immagine visualizzata, oppure no. Questo perché in precedenza il colore con indice 0 veniva utilizzato anche nella riproduzione del bordo. Con ECS, invece, si può decidere se visualizzare comunque un bordo (di colore nero) o renderlo trasparente (per genlock e apparecchi di questo tipo).

Anche gli sprite hanno avuto un miglioramento, e adesso infatti si possono visualizzare anche all’interno del bordo dello schermo. In precedenza, invece, venivano “tagliati” dai bordi, quindi seguivano la stessa sorte dell’area visibile dello schermo.

Sul fronte di Agnus (finora abbiamo parlato soltanto di Denise) si rileva finalmente l’estensione a 2MB dell’indirizzamento della chip ram, contro i 512KB dell’OCS e 1MB delle versioni più aggiornate di FatAgnus e delle schede madri degli Amiga 2000.

La chip ram è la memoria più importante dell’architettura dell’Amiga, in quanto è l’unico luogo in cui possono risiedere i bitplane di schermi e grafica, gli sprite, i campioni audio, i buffer del disco, e i programmi del Copper. In buona sostanza, i canali DMA ad essi associati riescono a leggere o scrivere soltanto in quest’area di memoria, e oggettivamente il mezzo mega messo a disposizione dai primi modelli ha rappresentato un grossissimo limite per gli sviluppatori.

Infine anche al Blitter tocca un’innovazione: la possibilità di poter lavorare con bitplane di dimensione massima di 32mila x 32mila pixel, contro i 1024×1024 dell’OCS. Sembrerà una funzionalità ridicola, se consideriamo che la modalità video più utilizzata era la 320×200 per l’NTSC e la 320×256 per il PAL, che poi erano quelle utilizzate in tutti i giochi.

In realtà proprio i programmatori di videogiochi hanno trovato negli 1Kx1K un grosso e fastidioso limite, in quanto era consuetudine, per i più esperti, allocare i bitplane in quella che veniva chiamata in gergo “modalità interleaved“. Questa consisteva nel fatto che i bitplane di uno schermo non erano allocati separatamente in memoria, ma le righe erano disposte in cascata: all’inizio c’era la prima riga di tutti i bitplane in sequenza, poi la seconda di tutti i bitplane, ecc., in una sorta di “sandwich“.

Questo trucchetto permetteva di poter operare in un colpo solo su tutti i bitplane, senza richiedere la programmazione del Blitter separatamente per ognuno di essi. Da qui il limite del vecchio Blitter: con uno schermo di 320×256 con 5 bitplane era necessario spezzare in due le operazioni che operavano sull’intera area verticale dello schermo (256 * 5 = 1.280 pixel).

Un appunto lo faccio sulla famigerata modalità Ultra-hires, che avrebbe permesso di visualizzare schermi da ben 1024×1024 pixel (ma esclusivamente in versione interlacciata), sebbene con un solo bitplane (2 colori). Nella documentazione dell’hardware dell’Amiga sono presenti delle informazioni in merito, che non è chiaro se si riferiscano a particolari versioni del chipset studiate per macchine dedicate (workstation grafiche da usare per settori come il CAD o il desktop publishing).

Personalmente serbo ancora un ricordo delle pagine di prestigiose riviste dell’epoca (fine anni ’80), quali MC MicroComputer e Commodore Gazette, che mostravano un Amiga collegato con un monitor professionale monocromatico e le didascalie che parlavano di una risoluzione massima di 1008×1024 pixel, ma la mia memoria, purtroppo, si ferma qui, e spero vogliate scusare la mia lacuna, ma era quanto meno doveroso parlarne, visto che in giro informazioni di questo tipo sono difficili da trovarsi.

Con l’ECS la carne sul fuoco sembra tanta, e ci si potrebbe chiedere come mai il titolo azzardi un’irriverente “spolverata” al chipset. Il motivo è presto detto: nulla è stato fatto sul fronte della tavolozza dei colori, che è rimasta sempre a 12 bit (4096 tonalità massime), e sul numero di bitplane utilizzabili, che è rimasto anch’esso fermo a 6 massimo (per un totale di 64 colori visualizzabili contemporaneamente, modalità HAM esclusa).

Insomma, proprio sui fattori più importanti, quelli più tangibili per la stragrande maggioranza degli utenti (a cui di super-hires, programmabilità del segnale video, e genlock interessava ben poco), Commodore non è intervenuta, e questa è senz’altro un’enorme pecca se consideriamo che nel ’90 (anno di presentazione dell’ECS) Mac e PC potevano vantare risoluzioni molto più elevate, con solido refresh rate, ma soprattutto visualizzavano schermi con 16 milioni di colori senza ricorrere alle palette…

Press ESC to close