12.11. - EL RATÓN.

     El ratón se controla normalmente a través de llamadas a la INT 33h. Existen toda suerte de funciones para controlar su posición, el estado de los botones, el puntero que se visualiza... todas ellas son bastante intuitivas y aptas para un programador en lenguajes de alto nivel. Aquí estudiaremos, sin embargo, el funcionamiento a bajo nivel del ratón. En concreto, del ratón de Microsoft, el más extendido y con el que son compatibles casi todos los demás (aunque sea accionando el correspondiente conmutador).

     La mayoría de los ratones se conectan vía puerto serie a 1200 baudios, 7 bits y sin paridad. Para detectar la presencia del ratón, hay que poner la línea DTR del puerto serie a 1. Al cabo de un rato, el ratón devuelve el código ASCII de la letra M (¿será por lo de Mouse o por Microsoft?). Los controladores de Microsoft son un poco estrictos en esta comprobación, y si el ratón no responde en unos márgenes de tiempo muy concretos consideran que no existe, de ahí que en ocasiones haya que emplear otro controlador un poco más flexible.

     Llegados a este punto, el funcionamiento se establece a partir de interrupciones de puerto serie. Se trasmiten 3 bytes cada vez que hay un envío: en ellos se indica cuánto se ha movido el ratón en los ejes X e Y desde la última vez, así como el estado de los botones. La unidad de medida, cómo no, son los Mickeys, que según la resolución del aparato serán 1/200 ó 1/400 pulgadas.

     Los desplazamientos se toman en complemento a dos; como hay 8 bits por cada eje, el movimiento puede oscilar en el rango +128 a -127. Hay además un bit por cada botón. De los 7 bits recibidos en cada interrupción, el más significativo (bit 6) está a 1 en el primer envío y a 0 en los restantes, con objeto de evitar malas interpretaciones de la secuencia si se pierde alguna interrupción por cualquier motivo. El formato empleado para codificar la información es el siguiente:

     El otro gran estándar de ratón, el Mouse Systems, permite trabajar hasta con tres botones. Estos ratones envían (cuando están en modo Mouse) 5 bytes por cada evento. En el primero hay información sobre el estado de los botones; los 4 siguientes parecen contener el desplazamiento relativo en los ejes X e Y. El funcionamiento es, por tanto, similar, y al parecer quizá todavía con 7 bits. Curiosamente, al conmutar el selector de modo (Microsoft-Mouse) aparece una secuencia de bytes un tanto especial, distinta según el sentido de la conmutación, para ayudar al controlador de ratón a detectar el paso al nuevo protocolo con objeto de poder adaptarse al mismo.

Volver al Índice