home *** CD-ROM | disk | FTP | other *** search
-
- ;By DeathBringer/MORBID VISIONS
-
- Shade Bobs
-
- La routine dello ShadeBob e' essenzialmente una implementazione della capacita'
- del blitter di effettuare addizioni. Basta pensare ad ogni pixel dello schermo
- sia un numero ad n cifre binarie, dove n e' il numero dei bitplane, ad esempio
- avendo 5 bitplane la situazione sarebbe la seguente:
-
- Plane5 0 0 0 0 0
- Plane4 0 0 1 0 1
- Plane3 0 1 0 1 0
- Plane2 0 1 1 0 1
- Plane1 1 0 1 0 0
- -----------------------------------------------------
- Numero 1 6 11 4 10
-
- la routine addiziona 1 a questo numero usando una semplice tecnica, utilizzata
- nei contatori binari, e con sofisticate migliorie anche nell'addizionatore
- presente nella nostra ALU.
-
- Per effettuare lo Shade, dobbiamo sommare 1 al numero rappresentato da tutti
- i bitplanes, ecco come fare.
-
- Il fatto di sommare numeri binari ci semplifica notevolmente la vita, per
- prima cosa ci calcoliamo se c'e' il riporto tra un bitplane e l'altro, come si
- fa quando lo si calcola per le cifre in una normale addizione, e poi si
- effettua la somma.
-
- Chiaramente ci sara' un riporto se entrabi i bit sono uguali a 1, e la somma
- sara' 1 se i bit sono diversi, 0 se i bit sono uguali (0+0, 1+1) come si puo'
- verificare facilmente dalla seguente tavola:
-
- Bitplane | Bit da sommare | Somma | Riporto
- --------------------------------------------
- 0 | 0 | 0 | 0
- 0 | 1 | 1 | 0
- 1 | 0 | 1 | 0
- 1 | 1 | 0 | 1
- ---------------------------------------------
-
- Adesso possiamo vedere quali funzioni realizzano Somma e Riporto:
-
- Somma= Bitplane XOR Bit
-
- Riporto= Bitplane AND Bit
-
- A questo punto basta iterare la procedura precedente per tutti i bitplane,
- sommando il riporto, ed il gioco e' fatto!!!
-
- Esempio:
- Numero Bit da sommare Somma Riporto
- ------------------------------------------------------------------------
- plane1 1 + __1 = 0 1 ->\
- / /---------------------<-------------|
- plane2 1 + / 1 <- = 0 1 ->\
- / /-----------------------------------|
- plane3 0 + | 1 <- = 1 0 ->\
- | /-----------------------------------|
- plane4 0 + | 0 <- = 0 0
- ^ | ^
- | | |
- 3 + \_->1 = 4
- ------------------------------------------------------------------------
-
- Il nostro bob ad 1 bitplane, rappresenta la maschera che indica quali pixel
- sono interessati all'addizione in un determinato quadro. Per prima cosa si
- prendono il bob e l'area di schermo interessata e si effettua un AND usando
- come destinazione un'area addizionale chiamata Carry (Il Riporto).
- Fatto questo si prende il bob e si effettua lo XOR con l'appropriato bitplane
- dello schermo, per ottenere la somma.
- In seguito si continua usando l'area Carry come se fosse il nostro bob per ogni
- bitplane. Chiaramente sono necessarie 2 aree Carry!!!
-
-