Une fonction du BIOS permet de fixer l'écran en 320x200x256c (le plus utilisé). Cette fonction est la numéro 0 de l'interruption 0x10. AH doit avoir la fonction 0 et le registre AL le numéro de mode vidéo demandé.

void mode(short mode)
{

asm volatile("
mov %0,%%al
mov $0,%%ah
int $0x10"
:
: "m" (mode));

};

Dans cette routine, la variable MODE doit contenir le numéro du mode écran. Pour passer en 320x200x256c il suffit d'indiquer le mode 0x13 et pour revenir en mode texte, il suffit de placer la valeur 0x03 (80x25 caractères).

L'appel de la routine se fait de cette façon:

mode(0x13); //passer en 320x200x256c

ou

mode(0x03); //passer en mode texte 80x25 caractères.

 

Astuces:

Il ne faut pas fixer la palette avant de passer en mode 0x13. Il faut le faire après.
Ne pas placer d'image avant de passer dans ce mode, le transfert est assez rapide.