|
Introduction
La
manette de jeux est un périphérique rattacher à
carte de son, à un contrôleur IDE ou tous
simplement à carte de manette de jeux. Leur programmation se
faisait à l'origine de façon directe par les ports
d'Entrée/Sortie et à partir de l'arrivée de
PC/AT d'IBM, un support BIOS par l'entremise de
l'interruption 15h fut offert aux programmeurs.
On
peut connaître l'état des boutons des deux manettes de
jeux avec la fonction suivante;
|
Function
GetJoyButton:Byte;Assembler;ASM
MOV DX,0201h
IN AL,DX
NOT AL
MOV CL,4
SHR AL,CL
END;
|
Cette fonction retournera les bits suivant:
| 0 |
Vaut 1 si le bouton A de la première manette de jeux
est enfoncée
|
| 1 |
Vaut 1 si le bouton B de la première manette de jeux
est enfoncée
|
| 2 |
Vaut 1 si le bouton A de la deuxième manette de jeux
est enfoncée
|
| 3 |
Vaut 1 si le bouton B de la deuxième manette de jeux
est enfoncée
|
Pour
obtenir la position d'une manette de jeux on utilisera la fonction
suivante:
|
Function
JoyPos(Axe:Byte):Word;Assembler;ASM
MOV CL,Axe
MOV BX,1
SHL BX,CL
MOV CX,0FFFFh
XOR AX,AX
XOR SI,SI
MOV DX,0201h
CLI
OUT DX,AL
@@Next:
IN AL,DX
TEST AL,BL
JE @@Done INC
SI LOOP
@@Next @@Done: STI
MOV AX,SI
@@End: END;
|
Le paramètre axe aura la signification suivante:
| 0 |
Axe horizontal de la première manette de jeux
|
| 1 |
Axe vertical de la première manette de jeux
|
| 2 |
Axe horizontal de la deuxième manette de jeux
|
| 3 |
Axe vertical de la deuxième manette de jeux
|
Cette
même procédure pourra utiliser la méthode
suivante pour faire un accès au BIOS plutôt:
|
Function
JoyPos(Axe:Byte):Word;Assembler;ASM
MOV AH,084h
MOV DX,01h
INT 015h
CMP Axe,0
JE @@End
MOV BX,AX
CMP Axe,1
JE @@End
MOV CX,AX
CMP Axe,2
JE @@End
MOV DX,AX
@@End: END;
|
|
|
| Dernière mise à jour: Vendredi, le 27 janvier 2006 |