Provare il GD2

                                          di Giorgio Garabello

Il  GD2 e' di nuovo al  centro dell'attenzione dopo la notizia
del rilascio  della nuova versione SMSQ/E  per Aurora in grado
di sfruttare  finalmente appieno le  potenzialita' grafiche di
questa scheda.

Dilwyn  Jones ha scritto un piccolo programmino si S*Basic per
poter effettuare un primo veloce test.
Il programma in  questione e'  stato scritto  su QPC2  ma puo'
essere  portato  sia   su  Q40/Q60   o  Aurora   senza  troppe
difficolta'.
Il  programma   genera  sette blocchi   1280X64  che  cambiano
prograssivamente colore con un effetto visivo molto carino.

I vari passaggi sono:

 - dal nero al blu
 - dal nero al rosso
 - dal nero al magenta
 - dal nero al verde
 - dal nero al ciano
 - dal nero al giallo
 - dal nero al bianco

Se  volete vedere l'effetto su QPC2 ricordatevi di selezionare
l'opzione "high colour mode" alla partenza dell'emulatore.
Lanciate  la routine GRAD per far  partire il programma e come
scrivere le vostre routine.

All'interno del listato  potete  trovare  un  buon  numero  di
commenti per aiutarvi a capire come funziona il programma.


100 DEFine PROCedure Grad 
101 REMark #1 allows 8 blocks of 128x64 pixels 
102 WINDOW 256,256,256,0 : CLS : CLS #0 
103 REMark r1,g1,b1 are start colours 
104 REMark r2,g2,b2 are end colours 
105 REMark Mode 32: red=0-31,green=0-63,blue=0-31 
106 r1 = 0 : g1 = 0 : b1 = 0 
107 r2 = 31 : g2 = 63 : b2 = 31 
108 REMark size of colour gradientstep per line of pixels down
109 REMark (end_colour-start_colour+1)/steps 
110 rstep = (r2-r1+1)/64 
111 gstep = (g2-g1+1)/64 
112 bstep = (b2-b1+1)/64 
113 REMark do 64 pixel high clocks of graduated colour 
114 FOR y = 0 TO 63 1150 red = INT((r1+(y*rstep))+.5) : REMark
red component 
116 IF red > r2 THEN red = r2      : REMark rounding errors? 
117 green = INT((g1+(y*gstep))+.5) : REMark green component
118 IF green > g2 THEN green = g2  : REMark rounding errors? 
119 blue = INT((b1+(y*bstep))+.5)  : REMark blue component 
120 IF blue > b2 THEN blue = b2    : REMark rounding errors? 
121 nat_col=(2048*red)+(32*green)+blue: REMark combined native
colour 
122 BLOCK 128,1,0,y,2048*red : REMark black to red 
123 BLOCK 128,1,128,y,2048*red+blue : REMark black to magenta
124 BLOCK 128,1,0,y+64,32*green : REMark black to green 
125 BLOCK 128,1,128,y+64,32*green+blue : REMark black to cyan 
126 BLOCK 128,1,0,y+128,blue : REMark black to blue 
127 BLOCK  128,1,128,y+128,2048*red+32*green: REMark  black to
yellow 
128 BLOCK 128,1,0,y+192,nat_col : REMark black-grey-white
129 END FOR y 1300 END DEFine Grad