Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > Autres architectures
Autres architectures Toutes les autres architectures (PIC, MIPS, ARM, 68K, Z80...) et leurs outils
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/11/2012, 14h19   #41
darkofmadness
Invité de passage
 
Homme Benjamin
Responsable des études
Inscription : novembre 2012
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : novembre 2012
Messages : 26
Points : 3
Points : 3
je te remercie sincerement pour tout ton temps accordé.

je regarde ca et je te tiens au courant.
Mais je demande plus rien promis
darkofmadness est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 19h52   #42
darkofmadness
Invité de passage
 
Homme Benjamin
Responsable des études
Inscription : novembre 2012
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : novembre 2012
Messages : 26
Points : 3
Points : 3
Citation:
Envoyé par Obsidian Voir le message
Félicitations ! Et merci d'avoir joint le code à chaque fois.
Sache toutefois que c'est de la bidouille qui s'ajoute et de la bidouille et que cela risquera de te mener tôt ou tard ans une impass


C'était à prévoir, malheureusement. Pour cela, il faut déjà que tu détermines si c'est ton clavier qui gère cette répétition ou si c'est le système d'exploitation du PC qui l'émule tant qu'il n'a pas reçu le code de libération.

Ensuite, dans les deux cas, il faudra provoquer la libération de la touche. Pour cela, il faut que tu voies déjà si ton logiciel détecte les relachements de touche à son niveau, et de quelle manière. En principe, tu dois avoir une table dans laquelle tu mets les points d'entrée de toutes les routines que tu as écrites et que tu m'as présentées ici. Cette table est exploitée par une procédure qui les appelle et qui, en principe, doit ou non conserver l'état de chaque touche (en mettant un flag à 1 ou à0)

Une dernière petite question après je passe en résolu. Parce que j'ai réussi à rien aujourd'hui. Si je passe le flag a 0 après lenvoi des scancodes je devrait éviter ce problème?

Merci pour tout encore
darkofmadness est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 20h14   #43
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 089
Points : 11 089
Si tu parles du flag du modificateur (Shift), tu peux essayer, dans la mesure où tu n'envoies pas d'autre scan code immédiatement après. Le problème est que, en principe, ta routine envoie immédiatement tout ce qui se trouve dans le buffer dès qu'un modificateur est enfoncé ou relaché parce le buffer qui contient les scan codes des touches ordinaires ne fait pas la différence entre les touches qui ont été enfoncées avec et sans modificateur associé.

Mais c'est sûr qu'à ce stade, ce ne sera pas pire qu'appeler la procédure d'envoi artificiellement et au milieu de la boucle.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 20h26   #44
darkofmadness
Invité de passage
 
Homme Benjamin
Responsable des études
Inscription : novembre 2012
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : novembre 2012
Messages : 26
Points : 3
Points : 3
Lol c'est sur. Tu dois me prendre pour un bricoleur ! Maintenant il ne me reste qua trouver le flag de shift. Merci encore
darkofmadness est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 20h52   #45
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 089
Points : 11 089
Citation:
Envoyé par darkofmadness Voir le message
Lol c'est sur. Tu dois me prendre pour un bricoleur !
Pas spécialement parce que je sais dans quelle situation tu te trouves, je sais ce qu'est une deadline, tu as ouvert la discussion en précisant d'emblée quel était ton niveau et ta mission, et que tu reprends un code écrit par un tiers, qui a probablement eu les mêmes ennuis.

Mais le fait est que l'on fait ce que l'on peut avec ce que l'on a.

Citation:
Maintenant il ne me reste qua trouver le flag de shift. Merci encore
Ça, je te l'ai donné au dessus : c'est dans « ksc_mod0 ». Tu charges LEFT_SHIFT_BIT dans A, tu trouves le complément avec « cpl » et tu fais un « AND » de ksc_mod0 avec.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 21h20   #46
darkofmadness
Invité de passage
 
Homme Benjamin
Responsable des études
Inscription : novembre 2012
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : novembre 2012
Messages : 26
Points : 3
Points : 3
ah c'est nickel merci beaucoup !
Donc ca donnerait un truc du genre :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
	POP	A
	MOV	A,AT101KB_LEFTSHIFT
	call	usbkey_putkey
	MOV	A,AT101KB_RIGHTANGLE
	call	usbkey_putkey
	PUSH	A
	MOv	A,LEFT_SHIFT_BIT
	CPL
	AND	ksc_mod0,A
	POP	A
	jmp	.tx_down_key_fonction
C'est bien ca, j'ai bien compris?
(ou faut-il que je fasse un AND avec la valeur de ksc_mod0 ?)

j'essaies demain alors
Si ca marche je ne saurais pas comment te remercier !
darkofmadness est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 00h01   #47
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 089
Points : 11 089
Il faudra peut-être mettre des crochets « [ ] » autour de ksc_mod0, mais l'idée est là.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 10h33   #48
darkofmadness
Invité de passage
 
Homme Benjamin
Responsable des études
Inscription : novembre 2012
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : novembre 2012
Messages : 26
Points : 3
Points : 3
je te remercie, j'ai l'impression d'etre dans la bonne voie !
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
	PUSH	X
	PUSH	A
	MOV	X,ksc_mod0
	MOV	A,LEFT_SHIFT_BIT
	OR	[X+0],A
	SETC
    	mov     A,[ksc_mod0]
    	mov     [usb_last_mod],A
	POP	A
	POP	X
 
	MOV	A,AT101KB_RIGHTANGLE
 
	PUSH	X
	PUSH	A
	MOV	X,ksc_mod0
	MOV	A,LEFT_SHIFT_BIT
	CPL	A
	AND	[X+0],A
	SETC
   	mov     A,[ksc_mod0]
  	mov     [usb_last_mod],A
	POP	A
	POP	X
 
	jmp	.tx_down_key_Fonction
Avec ca il ne fait pas SHIFT,
mais si je met que la partie ou je met le bit a 1, on voit bien que le shift est appuyé. je dois donc trouver un moyen de prendre en compte les deux.
(la il s'active et s'annule mais ne passe pas par la boucle d'envoi de touches donc il ne passe rien)
je vais creuser la dessus.

Je te remercie encore (faudrait peut etre que j'arrete ) !!!
darkofmadness est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h00.


 
 
 
 
Partenaires

Hébergement Web