Souris PS/2

bofur Messages postés 39 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 5 juin 2009 - 22 févr. 2008 à 17:41
bofur Messages postés 39 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 5 juin 2009 - 12 mars 2008 à 17:57
j'essaye de créer un mini os mais j'ais un probleme avec la souris ps/2: je n'arrive pas a lui envoyer une commande

F4h est la commande pour demander a la souris d'envoyer des données chaque fois qu'il y a un evenement(c'est aussi la commande pour "enabler" le clavier)

actuellement je procède de cette façon:
envoie D4h sur le port 64h (signifie selon mes docs: le prochain octet sur 60h est pour la souris)
envoie F4h sur le port 60h

j'ai deja essayé une tempo entre les deux commande
je pense que la commande D4h est mal envoyé, ça doit etre plus compliqué que ça

J'arrive a lire des fichier en fat 12 mais je peut pas uttiliser une souris c'est quant meme stupide

7 réponses

Guilou34 Messages postés 142 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 29 janvier 2016 1
23 févr. 2008 à 11:51
La commande F4h (enable data transfert in stream mode)   doit être précédée de la commande EAH  qui place la  souris dans ce mode. Ta documentation est sans doute incomplète  Je peux t'envoyer, si ça t'interesse, la copie d'une dizaine de pages extraite de " The Indispensable PC hardware book, Hans-Petre Messmer ISBN 0-201-876797-3" 
Amicalement
bofur Messages postés 39 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 5 juin 2009
7 mars 2008 à 15:54
en fait je n'arrive pas a envoyer la commande a la souris, je suppose que je n'uttilise pas le bon protocole de communication (c'est le clavier qui répond )
Guilou34 Messages postés 142 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 29 janvier 2016 1
8 mars 2008 à 18:59
Il est possible que ton système soit trop rapide et que les commandes d'entrées sorties  ne sont pas exécutées .

 Dans ce cas,  la meilleure manière d'effectuer un "temps mort" c'est d'écrire :
 
out port,valeur
 jmp $+3

 de même après un IN
Il peut arriver que le temps pour un circuit de décoder  l'adresse qui le concerne, les données du Bus  ne soient plus valides
 
Bonne chance
Guilou34 Messages postés 142 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 29 janvier 2016 1
8 mars 2008 à 18:59
Il est possible que ton système soit trop rapide et que les commandes d'entrées sorties  ne sont pas exécutées .

 Dans ce cas,  la meilleure manière d'effectuer un "temps mort" c'est d'écrire :
 
out port,valeur
 jmp $+3

 de même après un IN
Il peut arriver que le temps pour un circuit de décoder  l'adresse qui le concerne, les données du Bus  ne soient plus valides
 
Bonne chance

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bofur Messages postés 39 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 5 juin 2009
12 mars 2008 à 14:16
ok je ne pense jamais a ça, je vais essayer on verra bien
mais pourquoi "jmp $+3", "jmp $+2" ne fait pas le meme boulot?
combien de temps dure le temps mort?
Guilou34 Messages postés 142 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 29 janvier 2016 1
12 mars 2008 à 17:40
Salut
Parce que jmp $+3 se code sur 3 octets tout simplement.
Le délai est de 15 cycles donc dépend de la machine.
Par alleurs, n'oublie pas que Windows XP est susceptible de bloquer  les
entrées-sorties  critiques
 Il faut faire les essais en pur Msdos.
bofur Messages postés 39 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 5 juin 2009
12 mars 2008 à 17:57
ok j'ai compris
 jmp $+3 est un saut 16bit (1octet opcode de saut+valeur ou effecter le saut sur 2octets=3octet)
jmp $+2 est un saut 8bit (1octet opcode de saut+valeur de longueur du saut sur 1 octet)

et l'instruction nop? elle fait perdre combien de temp(en cycle)

plus généralement, comment calcule t'on le nombre de cycle consommé par une instruction (j'ai vu des indication sur ça sur helppc21 mais ça s'arrète au 486)

y'a pas de risque que je programme sur xp, je programme sous dos
Rejoignez-nous