facile, un buffer lineaire, c ´est un buffer auxquel on a acces sans bank switching.
de 16 bits ? c simple, 2octets representent la couleur d´un pixel, tu peux donc avoir jusqu´a 65535 couleurs simultannément.
en 320*200*8bit sur PC, l´acces a l´écran se fait par l´adresse 0xA000. A partir de cette adresse, chaque octet ( parce 8bits) represente un pixel.
l´octet a l´adresse 0xA000 represente le premier octet, l´adresse 0xA000+1 le second, etc. l´adresse 0xA000+320 represente le premier pixel de la seconde ligne de l´écran.
Tu acces entierement a l´écran par le biais de cette adresse comprise entre 0xA000 et 0xB4000 ( bref, 64Ko) sur pc. Nous avons ici un buffer ( l´écran) linéaire car continu.
Jusqu´a la, tout est cool et simple. Pas de chance, pour les modes de resolutions superieurs
64Ko n´est pas suffisant pour afficher tout les pixels. Le seul moyens d´acces est la région de mémoire specifiée plus haut.
Alors pas d´idée ?
c´est simple, tout les accés a la mémoire vidéo se fait entre 0xA000 et 0xB4000 ( ou plus suivant les cartes) mais il y a une commande qui permet de " bouger" cette fenetre sur une autre zone de l´écran. Par defaut, cette fenetre ( la zone mémoire) pointe sur le début de la série d´octet que constitue l´écran. Grace a une commande ( appel du bios ou écriture dans un registre), on peut demander a ce que cette région de mémoire pointe sur une autre zone de l´écran.
L´acces au buffer qu´est la mémoire graphique ce fait par " bank switching" ( sélection de banque/plage). Donc un buffer linéaire est nettement plus pratique d´utilisation car plus simple et plus efficace. Par ailleur, cette technique d´adressage se retrouve dans la mémoire EMS, longtemps utilisé par Windows et certains jeux DOS.
Jespere avoir été clair