|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2002 Messages : 32 ![]() |
Bonjour,
J'ai un pb : Il s'agit de faire clignoter un caractere : cela marche tres bien en mode texte mais en mode graphique (12h) ca passe pas. Alors si quelqu'un a une solution... Merci |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : février 2003 Messages : 973 ![]() |
Bonjour !
Le problème est que le bit de clignotement du mode texte n'existe pas en mode vidéo Pour ce qui est de trouver une solution tout dépend de ce que tu veux faire exactement, personnellement si il n'y a pas 36 couleurs différentes à faire clignoter, je redirigerai l'interruption 1Ch et je ferai un changement de couleur d'une entrée de la palette. Pour ce qui est de l'interruption 1Ch (qui découle de l'interruption 08h, l'IRQ 0 : l'horloge système), ou des instructions de modification de palette, si tu n'es pas à l'aise avec, il doit bien y avoir des tutoriels quelque part sur ce site Si tu as toutefois qques problèmes n'hésites pas Juju |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2002 Messages : 32 ![]() |
Je n'est qu une couleur a faire clignoter.
Je suis interesser par ta solution(une sorte de carre),mais je ne la comprends pas tres bien si tu pouvais m'en dire d'avantage. Merci |
|
|
00
|
|
|
#4 | ||||
|
Membre Expert
![]() Inscription : février 2003 Messages : 973 ![]() |
Re-bonjour !
Tout d'abord j'espère que c'est un programme destiné à tourner sous DOS ou un mode DOS compatible. Il faut choisir un index de couleur qui sera la "couleur clignotante". Prenons par exemple le bleu foncé (01h si mes souvenirs sont bons). Ensuite supposons que nous voulons faire clignoter en vert puis rouge puis vert etc ... Nous allons exécuter le code suivant : Code :
Pour cela nous allons rediriger, au début de ton programme l'interruption 1Ch. Cette interruption sera appelée 18,2 fois par seconde. Code :
Il est possible que quelques fautes de frappes ou erreurs se soient glissées, si tu ne comprends pas quelque chose n'hésites pas Juju |
||||
|
|
00
|
|
|
#5 | ||||
|
Membre éprouvé
![]() Laurent NahoumIngénieur développement matériel électronique Inscription : avril 2003 Messages : 249 ![]() |
Salut
Je ne connais pas trop l'assembleur, par contre tu peu essayer (si mode console ms-dos) d'écrire directement en mémoire vidéo. La base de la mémoire vidéo est B800:0000h. Pour afficher un caractère, il faut écrire 2 octets : Le premier à "Base" correspond au caractère propre, puis le seconde à "Base+1" correspond au mode vidéo du caractère. L'attribut vidéo du caractère est codé comme suit [7][6 5 4][3 2 1 0], avec les bits 0 à 3 qui correspondent à la couleur du caractère (16 couleurs), les bits 4 à 6 qui correspondent à la couleur du fond (8 couleurs), et le bit 7 qui correspond au clignotement. Les coordonnées correspondent à 0,0 en haut à gauche de l'écran Base = 0xB800:0000. Code :
Code :
Ensuite, pour revenir à ton problème ! Il te suffit de mettre à 1 le bit 7 de l'attribut vidéo du caractère pour l'avoir clignotant. Plus besoin de passer par l'IT de l'horloge pour avoir un clignotement. Code :
putsxy(0, 0, "Bonjour", 0x9E) ; // Affiche "Bonjour" en jaune clignotant sur fond bleu Bye...
__________________
- Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert ! ![]() - Travailler dur n'a jamais tué personne, mais pourquoi prendre le risque (Edgar Bergen) |
||||
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : juillet 2002 Messages : 842 ![]() |
Mode graphique et non texte demandé. Attention le mode 12h n'a pas ces accès en mémoire aussi simple que dans les autres modes.
|
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Laurent NahoumIngénieur développement matériel électronique Inscription : avril 2003 Messages : 249 ![]() |
Oups...désolé
Effectivement, en mode 12h, ce n'est plus le même problème. Encore désolé. Bye...
__________________
- Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert ! ![]() - Travailler dur n'a jamais tué personne, mais pourquoi prendre le risque (Edgar Bergen) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com