Bonjour,
Existe-t-il un moyen de modifier et donc personnaliser les 15 couleurs par défaut de Borland Pascal 7 pour le mode texte ? (ClBlue, etc...)
Merci![]()
Bonjour,
Existe-t-il un moyen de modifier et donc personnaliser les 15 couleurs par défaut de Borland Pascal 7 pour le mode texte ? (ClBlue, etc...)
Merci![]()
Bonjour !
Il est possible de modifier les valeurs de palette au niveau de la carte vidéo à l'aide de l'interruption BIOS 10h. Mais n'est-ce pas un peu "hard" ? Que veux-tu faire exactement ?
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]
Ce que je veux faire exactement?
Pour des raisons purement esthétiques pour l'interface du logiciel, utiliser d'autres couleurs que les 16 proposées par défaut.
Si tu utilises Turbo Vision (je ne sais pas si Turbo Vision est disponible pour BP7, mais à priori il n'y a pas de raison), tu peux "déplacer" les couleurs (les échanger entre elles) mais tu ne pourras en aucun cas en redéfinir de nouvelles. Et même en trifouillant la palette, via l'int 10h ou les registres VGA, je ne suis pas sûr que cela marche pour le mode texte... C'est à tester !
a+
Turbo Vision est bien disponible.Envoyé par wormful_sickfoot
Ca marche aussi pour le mode texte.Envoyé par wormful_sickfoot
Il ne faut pas baisser les bras ! C'est relativement facile à réaliser.Envoyé par Pipoland
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]
Merci du renseignementEnvoyé par Alcatîz
Ca peut être intéressant
a+
Vous pouvez m'en dire plus? Je ne connais pas trop la programmation hard sous DOS.Envoyé par Alcatîz
Cordialement,
Je pense que nous parlons de la même chose, Alcatîz et moi, c'est-à-dire reprogrammer le DAC. Pour celà, deux possibilités donc :
- utiliser les fonction 1010h et 1012h de l'int 10h;
- modifier les valeurs directement avec les ports VGA, les ports concernés étant les ports 03C7h à 03C9h (si je me souviens bien)
Concernant la programmation du DAC, tu peux déjà regarder les unités d'Haypo, disponibles ici : http://turbo-pascal.developpez.com (dans la partie 'Unité', regarder les fichiers 'EcranVGA', 'ModeX'). Ca ne demande pas de très hautes compétences, mais il faut tout de même une certaine maîtrise du langage
a+
Effectivement, je pensais à la modification du contenu des 16 registres de palette du contrôleur d'attributs.
Mais il faut absolument être sous DOS pur car ce genre d'opérations engendre des violations système dans toutes les versions de Windows (je viens même d'essayer sur Windows 3.11).
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]
Voilà à la demande générale, et surtout parce que j'avais envie de tester en mode texte, voici le code pour changer une couleur :
Testé en mode texte, et c'est assez impressionant ! Les valeurs pour Red, Green et Blue doivent être comprises entre 0 et 63...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure SetPalette(Index: Word; Red, Green, Blue: Byte); assembler; asm MOV AX, 1010h; MOV BX, Index; MOV DH, Red; MOV CH, Green; MOV CL, Blue; INT 10h; end;
a+
Ah ben voilà ce que je voulais![]()
Merci, je m'en vais de ce pas tester la chose.
Bon, la modification des couleurs peut se faire (et se fait générallement) en touchant directement aux ports VGA $3C7, $3C8 et $3C9.
En mode texte, il suffit de redéfinir les couleurs de 0 à 15. En mode graphique (la BGI), ce sont des index de couleurs plus originaux, puisqu'il faut piocher dans les codes 54 et suivants. Je peux les retrouver dans la doc au besoin.
En attendant, pour le simple mode texte :
Il faut bien prendre garde au fait que les composantes (R, G, B) doivent être codés sur 6 bits, donc doivent se situer dans l'intervalle de 0 à 63.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure SetRGBPalette(Index, R, G, B: Byte); begin Port[$3C7] := Index; Port[$3C9] := R; Port[$3C9] := G; Port[$3C9] := B; end;
A+
Le résultat est assez marrant, puisque vous pouvez repeindre l'interface de l'IDE de turbo pascal... Car à la fin de l'exécution de votre programme, l'IDE ne redessine pas la palette quand vous êtes en mode texte évidemment... Si vous voulez "customizer" votre IDE, vous pouvez commencer par ça
a+
Partager