La Web del Programador: Comunidad de Programadores
 
    Pregunta:  3963 - CAPTURAR PUNTEROS DE UN JOSTICK
Autor:  Cristian albert Gonzalez h
Hola y gracias..
deseo capturar los punteros de un jostick en ASM , cualquier informacion es valida, ya sea para dos o windows.. de ante mano muchas gracias

  Respuesta:  Juan José Hernámdez López
utiliza un DirectX ya te ase todo el trabajo solo con declarar una función.
Los DirectX son algo similar a los dll asea k los puedes utilizar en cualquier lenguaje bajalo de la pagina de microsoft en la sección de down loas hay demaciados.

  Respuesta:  Antonio José Villena Godoy
Bueno, para esto tienes dos opciones:
1. Opción fácil y lenta: Puedes utilizar las funciones de la bios habilitadas al respecto.
----> INT 15h
A)LEER POSICION DEL PUNTERO
ENTRADA: AH=84h DX=0001
SALIDA: AX=VALOR DEL EJE Y ; BX=VALOR DEL EJE X
B)LEER ESTADO DE LOS BOTONES
ENTRADA: AH=84h DX=0000
SALIDA: EN AL: BIT 4=BOTON 1 ; BIT 5=BOTON 2

2. Esta opción es más rápida pero debes saber utilizar el puerto de juegos, y tu rutina debe de ser medianamente aceptable en velocidad.
El puerto de juegos tiene la dirección 201h
Lee un byte de dicho puerto.
Los bits 4 y 5 obtienen directamente el estado de los botones.
Los bits 0 y 1 son para leer los ejes Y e X respectivamente.
Debes hacer lo siguiente:
A) Manda cualquier cosa al dicho puerto. Con esto conseguirás cargar los condensadores internos del joystic
B) Coje un contador y lo pones a 0
C) Cada cierto intervalo de tiempo lee del puerto el bit/los bits de los ejes
D) Si el bit esta a 1 incrementa el contador
E) Cuando esté a cero dicho bit, el contador tendrá la posición del eje leído

Puedes utilizar dos contadores y leer los dos ejes de una pasada para acelerar el proceso

Si no lo tienes muy claro puedes pedirme código de ejemplo para que lo veas