La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1500 - CONFIGURAR EL PUERTO DEL JOYSTIC EN TURBO C DE BORLAND
Autor:  Mirna Dìaz Sierra
Lo que necesito es leer los valores que se almacenan en el puerto del joystic a la hora de que se mueve la palanaca para un determinado lado, posteriormente de acuerdo al valor que devuelva enviar un dato al puerto COM2, es decir, necesito leer los datos de un puerto (Joystic) para conforme a ellos enviar otro dato al COM2.
Les agradesco infinitamente su ayuda
Saludos!!!

  Respuesta:  Jose Luis De la Cruz Lazaro
Hola, otra forma de controlar el joystick es mediante puertos, el puerto standard del joystick es el 201h, y el puerto COM2 es el 2F8h. Para enviar datos al puerto lo puedes hacer con la funcion outport(int puerto, int dato) y para recibir datos del puerto lo puedes hacer con inport( int puerto ). Si nesecitas mas informacion de cuales son los datos que tienes que enviar al puerto para determinados movimientos del joystick visita mi pagina web www.geocities.com/joseluisdl/jldl.htm ahi encontraras un programa escrito en C, o escribeme...suerte

  Respuesta:  Edgar Elán Oard Geraldo
La forma de leer el puerto de juegos es con la interrupción 15h y el servicio 84h.
un ejemplo en c, sería:
void Centrar_Joystick()
{
do{
asm{
mov ah,84h
mov dx,01h
int 15h
mov cenx,AX //obtener coordenada del centro
mov ceny,BX //obtener coordenada del centro
mov ah,84h
mov dx,00h
int 15h
mov Bot,al //obtener boton pulsado
}
}while (Bot=224);
}

void main()
Centrar_Joystick();
do{
asm{
mov ah,84h
mov dx,01h
int 15h
mov camx,AX
mov camy,BX
mov ah,84h
mov dx,00h
int 15h
mov Bot,al
}
if (camx<(cenx-30)) printf("izq\n");
if (camx<(cenx+30)) printf("der\n");
if (camy<(ceny-30)) printf("Arr\n");
if (camy<(ceny+30)) printf("Abj\n");
}while (Bot=208);
}

el Bot es el boton que se pulsa, teniendo los siguientes posibles valores: Boton a:224, b:208, c:176, d:112

Si se requiere de más información del puerto de juegos, con gusto mandare un articulo del mismo, solo tienes que pedirlo