le segment pour la carte video est de tout façon de 64K pour n'importe quel des 2 modes parce que sur ce segment tu ne pointe pas dans la ram mais directement dans la carte graphique.
Pour utiliser toute la ram video à l'époque du DOS (je ne parlerais pas d'AGP qui est un autre moyen) cela fonctionne comme EMS ou XMS il s'agit d'1 segment de 64K qui est une fenêtre sur tout la ram, fenêtre que tu peux ensuite déplacer dans la ram
je m'explique, sur le segment A0000:0000/FFFF tu n'as que 64K de data. Cette adresse ne pointe pas sur la ram mais directement sur la ram de la carte vidéo. Imaginons que ta carte a 192K de ram video (bon je sais aujourd'hui ça parait ridicule mais bon) tu ne pourras donc adresser (avec ce segment) que le 1er 64K de la ram video, donc si tu veux adresser le 2nd segment de mémoire (à savoir entre 64K et 128K) tu dois utiliser une commande sur la carte qui déplace le pointeur, ainsi si tu positionne ce pointeur sur le 2nd 64Ko, en A0000:00000 -> FFFFF tu pointeras sur le 2nd segment de ta carte video (c'est le même principe pour EMS/XMS, sur un segment en dessous des 1Mo adressable en 20bits tu peux adresser par fenêtre de 64K sur toute la ram adressable en 32, en déplacant cette fenêtre)
Il faut savoir aussi qu'à l'époque tout n'était pas normé, VESA a amené un semblant de norme mais pas totalement.
(il savoir que toutes ces contraitnes viennent du fait que les ingénieurs qui ont pensé à tout ça, ne pensaient pas qu'on aurait besoin d'autant de data) (pour anecdote également à l'origine l'adresse était sur 16 bits donc 64K de ram adressable, les ingénieurs de l'époque ne pensait même pas comment on pouvait utiliser autant de ram ce n'est que plus tard que l'on est passer sur 20bits donc 1Mo d'où la notion de segment:offset, cela explique en parti cette segmentation dans la ram)
j'espère que j'ai été assez clair
Partager