C/Visual C - Controlar Raton en C en modo MS-DOS

 
Vista:

Controlar Raton en C en modo MS-DOS

Publicado por MeL (1 intervención) el 24/04/2003 01:41:52
wenasss

tengo q hacer un programilla para un proyecto de klase en C bajo MS-DOS y me gustaria meterle soporte para raton para manejar los menus... Ando como loko por ahí buskando komo kontrolar un raton PS-2, pero la verdad es q mas bien estoy dando palos d ciego... a ver si alguien me puede echar una mano, o decirme por donde buskar

Muchas gracias =)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Implementación de soporte para ratón PS/2 en MS-DOS

Publicado por Alejandro (1153 intervenciones) el 19/05/2025 18:30:49
¡Hola, Mel! Entiendo que estás buscando implementar soporte para ratón en un programa en C bajo MS-DOS. Aquí te dejo algunos pasos y recursos que te pueden ayudar:

1. Usar un controlador de ratón:


Para manejar un ratón PS/2 en MS-DOS, necesitarás un controlador que permita la comunicación con el hardware. Un controlador popular es CuteMouse. Este es un controlador de ratón de código abierto que es compatible con varios protocolos de ratón, incluyendo PS/2.

- Descargar CuteMouse: Puedes encontrar CuteMouse en su página oficial (https://cutemouse.sourceforge.net/). Asegúrate de descargar la versión adecuada para tu sistema.

2. Instalación del controlador:


Una vez que hayas descargado CuteMouse, necesitarás instalarlo. Esto generalmente implica copiar el archivo `CTMOUSE.EXE` a tu directorio de sistema y agregarlo a tu archivo `AUTOEXEC.BAT` para que se cargue al iniciar MS-DOS.

1
2
C:\> COPY CTMOUSE.EXE C:\
C:\> EDIT C:\AUTOEXEC.BAT

Agrega la línea:
1
C:\CTMOUSE.EXE

3. Programación en C:


Una vez que tengas el controlador funcionando, puedes comenzar a programar en C. Aquí hay un ejemplo básico de cómo podrías manejar la entrada del ratón:

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
28
29
30
31
32
33
#include <dos.h>
#include <stdio.h>
#include <conio.h>
 
void main() {
    int x, y, buttons;
 
    // Inicializa el ratón
    union REGS r;
    r.h.ah = 0; // Función para inicializar el ratón
    int86(0x33, &r, &r);
 
    // Muestra el cursor
    r.h.ah = 1; // Función para mostrar el cursor
    int86(0x33, &r, &r);
 
    while (!kbhit()) { // Bucle hasta que se presione una tecla
        // Obtiene la posición del ratón
        r.h.ah = 3; // Función para obtener la posición
        int86(0x33, &r, &r);
        x = r.h.cx; // Coordenada X
        y = r.h.cy; // Coordenada Y
        buttons = r.h.bx; // Estado de los botones
 
        // Aquí puedes manejar la lógica de tu menú
        printf("X: %d, Y: %d, Botones: %d\n", x, y, buttons);
        delay(100); // Espera un poco para no saturar la salida
    }
 
    // Oculta el cursor al salir
    r.h.ah = 2; // Función para ocultar el cursor
    int86(0x33, &r, &r);
}

4. Pruebas:


Asegúrate de probar tu programa en un entorno MS-DOS real o en un emulador como DOSBox, ya que el soporte para ratón puede variar en diferentes entornos.

5. Recursos adicionales:


- Documentación de CuteMouse: Revisa la documentación de CuteMouse para entender mejor cómo funciona y cómo puedes integrarlo en tu programa.
- Foros de retrocomputación: Participar en foros como Vogons o AnandTech puede ser útil para obtener ayuda de otros entusiastas de la programación en MS-DOS.

¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar