Bonjour à tous !
Bon voilà, j'aimerais bien savoir comment on affiche un caractère en couleur en mode 03h...(texte 16 couleurs).
Petite précision : il ne faut pas utiliser les interruptions du DOS (seulement celles du BIOS).
Merci !
Bonjour à tous !
Bon voilà, j'aimerais bien savoir comment on affiche un caractère en couleur en mode 03h...(texte 16 couleurs).
Petite précision : il ne faut pas utiliser les interruptions du DOS (seulement celles du BIOS).
Merci !
Bonjour,
La fonction 09h de l'interruption 10h devrait convenir :
http://www.ctyme.com/intr/rb-0099.htm
Le caractère dans AL et la couleur dans BL.
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Bonjour !
Alors en fait dans AH je met 09h, dans AL le caractère à afficher, dans BL la couleur, mais dans BH et CX je met quoi ?
Par contre, je suis en mode texte, et je lis dans la référence :
Faut-il absolument passer en un mode graphique pour pouvoir écrire en couleur ? (il y a marqué que en mode texte on met un attribut dans BL...)Envoyé par liste des interruptions ASM
En mode texte le registre BH est indéfini. Le registre CX contient le nombre de répétitions du caractère. Quant-à l'attribut du caractère, c'est sa couleur.
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Alors une fonction qui affiche une chaîne de caractère en rouge doit se présenter comme ça ? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 ; Paramètres : DS:SI <- pointe sur la chaîne à afficher en rouge afficher : push ax push bx push cx .debut : lodsb cmp al, 0 jz .fin mov ah, 09h mov cx, 1 mov bl, 00000100b int 10h jmp .debut .fin : pop cx pop bx pop ax ret
ces deux lignes ne suffisent pas ? ( tu réduis la taille de ton binaire en plus )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mov [0xB8000], 'X' mov [0xB8001], attribut
En plus si tu écris directement à la mémoire vidéo comme cela, ton code n'aura plus besoin des interruptions et pourra donc marcher en mode protégé aussi
Forum Programmation d'OS - Tutoriel pour créer un petit noyau 32 bits .
( le développement de littlefoot86 est abandonné ... )
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager