Tullala glalita . diAmiga - digitanto.it · Dicevamo che esistono 2 modi gra-fici di base, detti di...

4
IIIIIIII!IIIIIIIIIIIIIIIIIIIIIIIIIIII~IIIII di Andrea de Prisco Il C'è chi dice che f'Amiga sia una macchina prevalentemente grafica. Altri dicono che sia buona solo a far quello. Altri ancora (gli invidiosi) dicono che non è buona neanche per questo. AMIGhevole di questo mese mostrerà come «stanno i fatti», illustrando cosa è possibile e cosa è impossibile fare con un Amiga Tullala glalita . diAmiga 2 di base Detto in due parole l'Amiga dispo- ne di 2 modi grafici di base, tre modi speciali, una variante, con un numero di colori per pagina grafica variabile. Il tutto è facilmente componibile se- condo degli schemi assai semplici che sviluppano una varietà di modi grafici in grado di soddisfare praticamente qualsiasi necessità. Fine dell'articolo. Bugia: procediamo con ordine. Dicevamo che esistono 2 modi gra- fici di base, detti di bassa e di alta riso- luzione coi quali definiamo la risolu- zione orizzontale della nostra pagina grafica: 320 o 640 punti per linea. Fis- sata una risoluzione possiamo definire il numero di linee di cui questa è com- posta e il numero di colori in cui è possibile visualizzare ogni pixel. Di ri- soluzione verticale ne riparleremo tra un po', dapprima esauriamo l'argo- mento colori. Disponendo di 16 livelli di blu, 16 di rosso e 16 di verde, com- binando opportunamente tali compo- nenti cromati che l'Amiga è capace di visualizzare 4096 tinte. I modi grafici «normali» di Amiga permettono di de- finire una palette di colori (da 2 a 16 per l'alta e da 2 a 32 per la bassa riso- luzione) in cui ognuno di questi è scel- to indicando le tre componenti croma- tiche di cui sopra ovvero spaziando in tutti i 4096 colori possibili. Ovviamen- te, lo spiegheremo meglio in fondo al- ottenevo risultati diversi. Sono cosÌ tanti che è facile dimenticarne qualcu- no ... ter erano certamente di più e l'idea do- veva risultare abbastanza allettante. Stiamo parlando di risoluzioni grafi- che massime di 280 x 192 pixel con 6 colori non senza alcune limitazioni circa la disposizione di questi. 8 anni dopo la macchina più grafica disponibile sul mercato con poche mi- lionate di scontrino fiscale è l'Amiga. Nessuna limitazione fino a 640 x 512 pixel in 16 colori e se accetti qualche compromesso ne visualizzi ben 4096 su di un solo schermo grafico. Più vol- te ho contato e ricontato i vari modi grafici di questa macchina e ogni volta Un bel primo piano di Liz Taylor in Modo HAM. Prologo Siamo nel lontano 1980... o qualco- sa prima. Eravamo agli albori dell'al- fabetizzazione informatica, quando i computer, pur costando mille volte meno di un centro di calcolo da uni- versità, ancora non avevano sfondato nelle fasce basse del mercato dell'ho- me computing. Il mitico PET della Commodore, dotato di soli 8, 16 o 32K di memoria, venduto per alcune milionate in configurazione accettabi- le, si spartiva praticamente tutto il mercato computereccio dell'epoca as- sieme ai mitici Apple II e qualche TRS-80. L'Apple, in più dei due suoi concor- renti, disponeva di serie di una fati di- ca grafica ad alta risoluzione con la quale (udite! udite!) era possibile per- fino disegnare sullo schermo ... PET e TRS solo a richiesta acqui- stando cioè dell 'hardware accessorio. Il TRS-80 disponeva delle variabili in doppia precisione nel Basic fornito con la macchina, mentre coi PET pote- vi sbizzarrirti un po' di più con le peri- feriche (dischi, stampanti, plotter) di- sponendo di serie dell'interfaccia IE- EE-488 (che però non rispettava lo standard). Secondo alcuni l'Apple la spuntò vincitore (basta pensare che l'attuale 2GS è ancora compatibile con il nonno di 8 anni fa ...) proprio per il fatto di essere più grafico degli altri. Evidente- mente disponendo di un video grafico, le cose che potevi fare col tuo compu- MCmicrocomputer n. 63 - maggio 1987 141

Transcript of Tullala glalita . diAmiga - digitanto.it · Dicevamo che esistono 2 modi gra-fici di base, detti di...

IIIIIIII!IIIIIIIIIIIIIIIIIIIIIIIIIIII~IIIII

di Andrea de Prisco

Il C'è chi dice che f'Amiga sia una macchina prevalentemente grafica.Altri dicono che sia buona solo a far quello. Altri ancora (gli

invidiosi) dicono che non è buona neanche per questo. AMIGhevole diquesto mese mostrerà come «stanno i fatti», illustrando cosa è possibile e

cosa è impossibile fare con un Amiga •

Tullala glalita. diAmiga

2 di base

Detto in due parole l'Amiga dispo-ne di 2 modi grafici di base, tre modispeciali, una variante, con un numerodi colori per pagina grafica variabile.Il tutto è facilmente componibile se-condo degli schemi assai semplici chesviluppano una varietà di modi graficiin grado di soddisfare praticamentequalsiasi necessità. Fine dell'articolo.

Bugia: procediamo con ordine.Dicevamo che esistono 2 modi gra-

fici di base, detti di bassa e di alta riso-luzione coi quali definiamo la risolu-zione orizzontale della nostra paginagrafica: 320 o 640 punti per linea. Fis-sata una risoluzione possiamo definireil numero di linee di cui questa è com-posta e il numero di colori in cui èpossibile visualizzare ogni pixel. Di ri-soluzione verticale ne riparleremo traun po', dapprima esauriamo l'argo-mento colori. Disponendo di 16 livellidi blu, 16 di rosso e 16 di verde, com-binando opportunamente tali compo-nenti cromati che l'Amiga è capace divisualizzare 4096 tinte. I modi grafici«normali» di Amiga permettono di de-finire una palette di colori (da 2 a 16per l'alta e da 2 a 32 per la bassa riso-luzione) in cui ognuno di questi è scel-to indicando le tre componenti croma-tiche di cui sopra ovvero spaziando intutti i 4096 colori possibili. Ovviamen-te, lo spiegheremo meglio in fondo al-

ottenevo risultati diversi. Sono cosÌtanti che è facile dimenticarne qualcu-no ...

ter erano certamente di più e l'idea do-veva risultare abbastanza allettante.Stiamo parlando di risoluzioni grafi-che massime di 280 x 192 pixel con 6colori non senza alcune limitazionicirca la disposizione di questi.

8 anni dopo la macchina più graficadisponibile sul mercato con poche mi-lionate di scontrino fiscale è l'Amiga.Nessuna limitazione fino a 640 x 512pixel in 16 colori e se accetti qualchecompromesso ne visualizzi ben 4096su di un solo schermo grafico. Più vol-te ho contato e ricontato i vari modigrafici di questa macchina e ogni volta

Un bel primo piano di Liz Taylor in Modo HAM.

Prologo

Siamo nel lontano 1980... o qualco-sa prima. Eravamo agli albori dell'al-fabetizzazione informatica, quando icomputer, pur costando mille voltemeno di un centro di calcolo da uni-versità, ancora non avevano sfondatonelle fasce basse del mercato dell'ho-me computing. Il mitico PET dellaCommodore, dotato di soli 8, 16 o32K di memoria, venduto per alcunemilionate in configurazione accettabi-le, si spartiva praticamente tutto ilmercato computereccio dell'epoca as-sieme ai mitici Apple II e qualcheTRS-80.

L'Apple, in più dei due suoi concor-renti, disponeva di serie di una fati di-ca grafica ad alta risoluzione con laquale (udite! udite!) era possibile per-fino disegnare sullo schermo ...

PET e TRS solo a richiesta acqui-stando cioè dell 'hardware accessorio.Il TRS-80 disponeva delle variabili indoppia precisione nel Basic fornitocon la macchina, mentre coi PET pote-vi sbizzarrirti un po' di più con le peri-feriche (dischi, stampanti, plotter) di-sponendo di serie dell'interfaccia IE-EE-488 (che però non rispettava lostandard).

Secondo alcuni l'Apple la spuntòvincitore (basta pensare che l'attuale2GS è ancora compatibile con il nonnodi 8 anni fa ...) proprio per il fatto diessere più grafico degli altri. Evidente-mente disponendo di un video grafico,le cose che potevi fare col tuo compu-

MCmicrocomputer n. 63 - maggio 1987 141

I1111111111111111111111111111111111111111111111111111

Figura 2 - Modo interlacciato.

.•• Figura I - Come i bit-plane selezionano i colori.

coooooo1סס000100001100'00

1100011001110101101111100111011111011111

Line'l~

~"".. ,~

~

Video Display(400 linee)

Linea 1

Linea 2

l'articolo, quanto più grande sarà lapalette di colori tanta più memoria oc-cuperà la pagina grafica: per ogni pi-xel dovremo riservare più o meno bit aseconda del numero di colori che que-sto potrà assumere.

Grazie poi all'architettura del pro-cessore video, è anche possibile visua-lizzare più pagine grafiche contempo-raneamente, anche con risoluzioni, nu-mero di colori, varianti e modi specialidiversi. La visualizzazione in tal casoavverrà per fasce orizzontali, dato cheil processore video è in grado di varia-re più volte i contenuti dei propri regi-stri interni nel corso di un solo quadrodello schermo, ovvero in corrispon-denza di determinate (dall'utente) po-sizioni del pennello elettronico. In talmodo, ad esempio, possiamo avereuna prima zona di schermo in alta ri-soluzione, poi un pezzo in bassa, infi-ne una porzione hold e modify (vedidopo), tutto per la gioia dei nostri oc-chi.

Chi solo ha giocato un po' col mou-se avrà certamente già sperimentatoquanto detto: non è raro infatti chelanciando alcune applicazioni, possia-mo tirare giù lo schermo correntemen-te visualizzato e vedere il workbenchsotto a questo. Se abbiamo ancoraspazio in memoria, dal workbench ap-pena scoperto possiamo lanciare qual-cos'altro, e fare lo stesso con le dueapplicazioni all'opera: un vero diverti-mento.

Interlace ON

Settando un determinato bit di unopportuno registro del processore vi-deo di Amiga, possiamo accedere almodo inter1acciato di visualizzazionecol quale si raddoppia la risoluzioneverticale portandola a ben 512 lineeanziché 256. Il modo inter1acciato èdisponibile sia per la bassa che per

142

l'alta risoluzione quindi avremo le se-guenti quattro risoluzioni:320 x 256640 x 256320 x 512640 x 512

Lo scotto da pagare per avere 5 I2 li-nee è un fastidiosissimo sfarfallio dischermo tanto più accentuato quantopiù sono contrastati i colori visualizza-ti. Ciò si manifesta dato che le 5 I2 li-nee non vengono visualizzate in unasola passata del pennello elettronicoma in maniera inter1acciata: durante iquadri pari si visualizzano le linee pa-ri, durante i quadri dispari le linee di-spari sfasando le seconde di mezza ri-ga rispetto alle prime. Disponendo diun monitor ad alta persistenza (pressola Commodore alcuni mesi fa mi ave-vano preannunciato la futura commer-cializzazione di un simile salame), l'ef-fetto sfarfalloso diminuisce fino ascomparire del tutto, nel qual caso sirischia l'effetto cometa degli oggetti inmovimento (scrolling compresi) e dun-que non sappiamo più qual è il malepeggiore. Fatto sta, comunque, che almomento in cui scriviamo tale nuovomonitor Commodore, ancora non s'èvisto, quindi ne ripar1eremo più ap-profonditamente a tempo debito.

Modi grafici speciali

Sono in tutto 3, e cominceremo dalpiù misterioso, il modo grafico HalfBrite, non menzionato nella documen-tazione ufficiale di Amiga (redatta inAmerica prima dell'uscita sul mercatodella macchina) il quale sembra ap-partenere solo alle macchine europee,dotate di uscita videocomposita PAL.

Traduzione: quello che state perleggere prendetelo con le dovute cau-tele essendo solo voci di corridoio, almomento attuale non verificabili. Dalmomento che non si è visto ancora

nessun programma che sfrutta talemodo grafico, né un demo, potrebbeanche essere tutto falso. Solo per com-pletezza lo annoveriamo tra gli altri.

Il modo grafico Half Brite (brite èl'americanizzazione di bright, diminu-tivo di brightness, luminosità) è paren-te stretto dello standard RG BI digitalenel campo dell'RGB analogico. Ognipixel di schermo, può essere visualiz-zato in 32 colori diversi, specificandoanche per ognuno di essi se dé'sideria-mo o meno la mezza luminosità: intutto, dunque, 64 tinte per schermografico.

Attenzione: non 64 tinte diverse, ma32 più le stesse con luminosità dimez-zata. Chiusa la parentesi corridoio.

Il secondo modo grafico speciale diAmiga è detto Dual Playfield. Ridu-cendo il numero di colori sino ad unmassimo di 8 per pixel possiamo vi-sualizzare, sovrapposti, due schermigrafici indipendenti. Non come vistoprima suddividendo in senso orizzon-tale lo schermo: questa volta la so-vrapposizione è totale, e definendo deibuchi nello schermo visualizzato soprapossiamo vedere lo schermo con prio-rità più bassa. Inoltre i due schermipossono essere scall1biati tra di loro(sotto il primo e sopra il secondo), ma-nopolati indipendentemente, e gene-ralmente contengono colori diversi.Con questa tecnica è facile realizzaregiochi di simulazione astronave, som-mergibile o carro armato in cui il pri-mo playfield è l'interno del veicolo,buchiamo la pagina grafica in corri-spondenza dei finestrini, e sul secondoplayfield visualizziamo il, paesaggioesterno. Il famoso gioco Skyfox dellaElectronics Arts è sicuramente realiz-zato così: non a caso si contano solootto colori per il disegno dell'abitaco-lo (sette più il colore dei vetri, traspa-rente) e otto per l'esterno. Anche ilmodo Dual Playfield è combinabilecon la risoluzione orizzontale, e nel

MCmicrocomputer n. 63 - maggio 1987

1111111111111111111111111111111111111111111 111111vo1e

caso dell'alta risoluzione disponiamoal massimo di tre colori (più il traspa-rente) per schermo.

Il terzo modo grafico speciale, com-binabile solo con la risoluzione verti-cale (interlace on/off) è detto Hold &Modify e permette di visualizzare con-temporaneamente 4096 colori su unsolo schermo grafico, naturalmentecon alcune pesanti limitazioni che oraillustreremo. Ciò perché per visualiz-zare una pagina grafica 320 x 256 in4096 colori senza limitazioni occorro-no ben 120 K e alla Hi-Toro (dove «sisono inventati» Amiga) hanno pensa-to che erano troppi per un computernormale, quindi limitiamo.

Col modo hold & modify lo spaziooccupato da una simile pagina graficasi riduce della metà (tutto qui) e la li-mitazione consiste nel fatto che duepunti affiancati in orizzontale nonpossono differire che per una sola del-le tre componenti cromatiche. Ovverose il pixel n ha come componenti cro-matiche rosso 3, verde 5 e blu 7, il pi-xel n + I avrà due componenti croma-tiche uguali al pixel n e una sola(eventualmente) diversa. Tale «fattap-posta» è poco noioso in caso di sfu-mature di tinte simili (es. gli incarnati)ma degrada non poco l'effetto finalein caso di pixel troppo diversi l'un l'al-tro.

Come palliativo della limitazione orora menzionata un bonus di una palet-te di 16 colori qualsiasi, da usare perstacchi cromatici troppo bruschi che

impieghert<bbero ben tre pixel di sfu-matura intermedia. In tal caso l'effettoè molto soddisfacente se in tutto il no-stro schermo non abbiamo più di 16salti cromati ci. In caso contrario do-vremo nuovamente ricorrere alle sfu-mature. Tutto ciò sarà molto più chia-ro quando ne spiegheremo (prossimo~aragrafo) l'organizzazione in memo-na.

Implementazione

All'interno di Amiga distinguiamodue tipi di memoria RAM: la chip me-mory e la fast memory. La prima, for-mata da 512 K byte è fornita con lamacchina ed è l'unica parte di memo-ria alla quale possono accedere i chipcustom della macchina (oltre natural-mente al 68000). La fast ram, non for-nita con l'Amiga 1000, ma disponibilesottoforma di espansione esterna, è ac-ces,sibile solo da parte del 68000.

E detta fast dato che il processorenon deve spartire gli accessi a questacon gli altri coprocessori. Quando, dicontro, questo tenta un accesso allachip ram, potrebbe dover aspettare, ilconsenso del meccanismo di arbitrag-gio della memoria. Ciò non succedespesso in quanto generalmente i chipcustom accedono alla chip ram soloquando il processore non lo fa, presu-mibilmente quando, dopo aver lettouna istruzione, la sta decodificandoper decidere il da farsi.

Tutto ciò implica una prima grossa

limitazione, il fatto che disponendo dimolta memoria fast possiamo lanciarequante applicazioni vogliamo, ma seabbiamo tante schermate da visualiz-zare (dato che queste devono esserecontenute nella chip ram) potremmoavere problemi di memoria pur nonavendola ancora terminata. Traduzio-ne: possiamo anche avere 8 mega diram, ma per tutto ciò che riguarda ilvideo e il suono non potremo superarela soglia dei 512 K. A meno che, ov-viamente, non effettuiamo swap dimemoria tra le due regioni, nel qualca-so un po' di problemi si semplifiche-ranno seppure con un certo degradodelle performance della macchina.

Detto questo, per memorizzare unapagina grafica, l'Amiga utilizza il me-todo dei bit-plane, figura 2, col quale èpossibile avere una gestione più otti-mizzata della Ram. Se la nostra paginagrafica è monocromatica avremo biso-gno di un solo bit per pixel visualizza-to quindi adopereremo un solo bit-piane. Un bit-plane è dunque una por-zione di memoria grande tanti bitquanti sono i pixel da visualizzare. Adesempio, in bassa risoluzione non in-terlacciata (320 x 256), due soli coloriper pixel (colore fondo o colore pixel),allocheremo 10240 byte di memoria.

Passando da due a quattro colori,per ogni pixel avremo bisogno di duebit di memoria. Una organizzazionetradizionale allocherebbe semplice-mente una porzione doppia di memo-ria, mentre i progettisti di Amiga han-

Figura 3 - Esempio di Vual Playfield display.

Figura 4 - Corrispondenza Bit-plane/Dual Playfield. ~

PI,lV'i,ld 111. 2. o 3bit-plollnel Playfi.ld 2 (1. 2. o 3bit-pl,ne l Numero deibi t-pIane"accesi" P1.yfi.ld 1 P1ayfi.ld 2

CJCJ CJ

D DD LJcecJ LJcecJ ~

MCmicrocomputer n. 63 - maggio 1987 143

I1111 1,1111111111111111111111111111111111111111111voe

2

no ben pensato di allocare due porzio-ni di memoria, uguali tra di loro eognuna di dimensioni pari alla porzio-ne di prima. L'ottimizzazione sta nelfatto che non si necessita di grandi zo-ne contigue di byte, ma è sufficienteanche più zone di minor dimensioneallocate anche distanti tra loro.

Per 8 colori utilizzeremo tre bit-pla-ne, per 16 quattro, per 32 cinque (solobassa risoluzione) per 64 sei bit-plane(modo half brite).

Per visualizzare un punto, sarà suffi-ciente accedere tante volte in memoriaquanti sono i bit-plane, e stabilire cosìdi quale colore dovrà essere il pixel.All'uopo, 32 registri del processo re vi-deo contengono la palette, ovvero perognuno di questi è indicato la quantitàdi blu, di verde e di rosso. In figura 2 èmostrato uno scorcio di pagina grafica320 x 200 in 32 colori. Il pixel lì evi-denziato, nei rispettivi bit-plane valela sequenza binaria 11000 (24 in deci-male), il processore accede al registro24 per conoscere il colore e lo visualiz-za con quella tinta. Pixel dopo pixel.

Nel modo grafico half brite, il sestobit-plane è utilizzato per indicare, diogni pixel, la visualizzazione a lumi-nosità normale o dimezzata, del colore

144

FOla 2Bassa risoluzione32 colori.

FOla 3Alla risoluzioneinleriacciala.

FOla 4Modo DualPlayfìeld (Skyfox).

indicato dai 5 bit-plane rimanenti. Illimite massimo di 6 bit-plane è dettatoproprio dal fatto che il processore vi-deo di Amiga dispone di soli 6 registripuntatori ad altrettanti bit-plane. Ciòche non si capisce, è il fatto di limitaretale numero addirittura a 4 quando sipassa dalla bassa all'alta risoluzione:in quest'ultimo caso, infatti, potremodisporre al massimo di una palette di16 colori.

Il modo grafico Hold & Modify uti-lizza ancora tutti e sei i bit-plane di-sponibili. Quindi per ogni pixel visua-lizzato disporremo di 6 bit. Per visua-lizzare pagine grafiche con 4096 colorisi utilizza la seguente decodifica deibit associati ad ogni pixel: se i primidue pixel valgono 00, i rimanenti 4 pi-xel puntano ad uno dei 16 registri co-lore del processore: in pratica il fun-zionamento in questo caso è pari almodo grafico normale. Se i primi duebit non valgono 00 possiamo modifi-care, rispetto al pixel precedente, unadelle sue tre componenti cromatiche.Per la precisione, se il valore è OI, i ri-manenti bit indicano la quantità di bludel pixel in questione, rosso e verdecome nel pixel precedente. Se vale IOè il rosso a giocare la sua carta, se infi-

ne il valore di tali due bit è Il, possia-mo modificare il verde. Per fare unesempio, per passare dal colore(blu = 3, rosso = 4, verde = 5)al colore(blu = 12, rosso = 6, verde = 9)se quest'ultimo è uno dei sedici conte-nuti nella palette, ad esempio alla po-sizione 4, basterà che i bit corrispon-denti al pixel segnino:O 0100

altrimenti si dovranno utilizzare duepixel di colore intermedio cambiandouna componente cromatica per volta:01 1010

per impostare 12 di blu,100110

per rosso = 611 1001

per verde =9 ed ottenere il colore desi-derato. Il modo grafico Oual Play-field, infine, è implementato utilizzan-do fino a 6 bit-plane (massimo 3 perplayfield) secondo l'assortimento mo-strato in figura 3. Se combiniamo conesso anche l'alta risoluzione potremoutilizzarne fino a 4, in totale.

Se tutti i bit corrispondenti a un pi-xel sono a Ootteniamo il colore traspa-rente che ci permette di vedere il play-field di sfondo. Con combinazioni di-verse di bit indichiamo come al solitoregistri colore nei quali sono contenu-te le componenti cromati che di ognitinta prescelta.

Fortunatamente i due play-fieldpuntano ad insiemi diversi di registri equindi massimo di 8 colori disponibilisul primo possono benissimo esserediversi da quelli disponibili sul secon-do. Essendo due oggetti completamen-te distinti e separati risulta in tal modofacile effettuare complesse animazionifacendo, ad esempio, scrollare in duedirezioni diverse gli schermi superioree inferiore. Tutto qui.

MCmicrocomputer n. 63 - maggio 1987