You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
.................... .................................................<br />
Didattica AMIGA MAGAZINE<br />
Il formato di WAIT è un po' più com-<br />
plesso di quello di MOVE, in quanto<br />
non solo ci è permesso di specifica-<br />
re una coordinata x e una y da a-<br />
spettare, ma anche di fornire una<br />
maschera di bit che specifica quale<br />
parte è rilevante nel <strong>con</strong>fronto. In<br />
particolare, il fatto che in tutte le no-<br />
stre istruzioni WAIT (tranne due di<br />
cui parleremo più avanti) la se<strong>con</strong>da<br />
parola sia O x FFOO fa sì che la coor-<br />
dinata x sia <strong>con</strong>siderata dal Copper<br />
irrilevante.<br />
La prima parola indica invece il pun-<br />
to da aspettare: il primo byte <strong>con</strong>tie-<br />
ne la coordinata y, il se<strong>con</strong>do la<br />
coordinata x privata del bit 0, che<br />
viene sempre messo a 1. In pratica,<br />
si può individuare un punto in oriz-<br />
zontaleogni 4di unoschermoa bas-<br />
sa risoluzione, mentre il <strong>con</strong>trollo<br />
verticale permette di aspettare una<br />
qualunque riga.<br />
Quando il <strong>con</strong>tatore arriva alla riga<br />
44, succede una cosa un po' parti-<br />
colare. Il Copper mette il valore di<br />
<strong>con</strong>trollo $1 200 nel primo registro di<br />
<strong>con</strong>trollo video e, come <strong>con</strong>seguen-<br />
za, la bitmap da noi indicata <strong>con</strong> le<br />
prime due istruzioni comincia ad es-<br />
sere visualizzata sotto forma di<br />
schermo 320x 256 <strong>con</strong> profondità 1.<br />
Un aspetto fondamentale dell'hard-<br />
ware di <strong>Amiga</strong> che è necessario<br />
comprendere a fondo per capire<br />
l'importanza del Copper è che i regi-<br />
stri che puntano alle bitmap vengo-<br />
no aggiornati durante il display alla<br />
locazione correntemente visualiz-<br />
zata. Questo significa che quando<br />
si giunge alla fine della bitmap, e il<br />
pennello elettronico è alla fine del<br />
monitor, i registri non hanno più il<br />
<strong>con</strong>tenuto da noi immesso, in quan-<br />
to indirizzano la fine, e non l'inizio<br />
della memoria che abbiamo alloca-<br />
to. Se non ci fosse il Copper, che 60<br />
volte al se<strong>con</strong>do si premura di rista-<br />
bilire i valori corretti, vedremmo il<br />
<strong>con</strong>tenuto dello schermo cambiare<br />
ad una velocità impressionante, co-<br />
me in effetti capita quando qualche<br />
programma "bucato" va a sporcare<br />
le Copper List di sistema.<br />
Mentre il resto della bitmap viene vi-<br />
sualizzato, il colore di sfondo viene<br />
modificato, come già detto, ogni no-<br />
ve righe. Un'attenzione speciale<br />
merita però I'istruzione che si trova<br />
verso la fine, e che ho volgarmente<br />
tradotto <strong>con</strong> un WAIT UNTIL VERT<br />
256. La sua ragion d'essere è sem-<br />
plice: il <strong>con</strong>tatore di linee verticali<br />
del Copper è formato da un solo<br />
byte, mentre le righe sono più di<br />
300; passata la riga 255, il <strong>con</strong>tato-<br />
re ricomincia da zero. E' quindi ne-<br />
cessario, se si vuole aspettare una<br />
riga n oltre la 255esima, aspettare<br />
quest'ultima e poi aspettare la riga<br />
n-256. Supponiamo per esempio<br />
che il Copper si trovi alla riga248. Se<br />
in<strong>con</strong>trasse ora un'instruzione WAIT<br />
VERT 2, non aspetterebbe la linea<br />
258, ma salterebbe subito all'istru-<br />
zione successiva, in quanto 248>2!<br />
Se invece noi inseriamo prima della<br />
WAITVERT2 una WAIT UNTILVERT<br />
256, al momento del <strong>con</strong>fronto <strong>con</strong> 2<br />
il <strong>con</strong>tatore del Copper sarà già tor-<br />
nato a O, e il nostro amico dovrà a-<br />
spettare, in quanto 0