Ensamblador - Entrada rapida por el teclado

 
Vista:

Entrada rapida por el teclado

Publicado por Lluís Nieto Soler (3 intervenciones) el 21/02/2001 17:00:00
Tengo un programilla grafico en C++ para ms-dos
en el que para detectar las teclas que son pulsadas uso una funcion de c++. Esta funcion sirve, en pricipio, para entrar caracteres de forma que al mantener la tecla pulsada las repeticiones son relativamente lentas (+ o - unas
10 por segundo) y además, en el primer instante
hay una pausa de aproximadament un segundo. Supongo que sabes a lo que me refiero (aguanta pulsada una tecla (numero o letra). Pues bien necesito saber cual es la funcion y la interrupcion para leer mucho mas rapido del teclado y sin esa pausa inicial. Por favor, enviar
tal funcion o algun documento sobre teclados en ASM. 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

RE:Entrada rapida por el teclado

Publicado por mnemox (20 intervenciones) el 22/02/2001 19:52:07
para ensamblador masm32 por ej. en windows se procesan
los mensajes VM_KEYDOWN y VM_KEYUP , pero no se
si es esto lo que buscas.
Salu2.
mnemox
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

RE:Entrada rapida por el teclado

Publicado por Googol (61 intervenciones) el 23/02/2001 10:21:25
No hay ninguna interrupción que te lo solucione directamente.
Cuando se pulsa una tecla, el teclado avisa al ordenador forzando a que salte una interrupción 09h. Ahí suele estar la BIOS, que recoge la tecla, y la mete en un buffer.
La BIOS luego pone a disposición del programador otra interrupción, la int 16h, para consultar ese buffer, y que es a la que se llamará en la función de C que tú utilizas (getch() o alguna de esas).
Cuando te quedas pulsando una tecla, es responsabilidad del propio teclado volver a generar una int. 09h con la nueva tecla, de modo que ésta se mete por segunda, tercera... vez en el buffer. En MS-DOS, la repetición de los caracteres se produce, por lo tanto, gracias al hardware del teclado.
Para hacer lo que pides, yo me hice mi propia interrupción 09h, que tenía banderas para controlar las teclas que estaban pulsadas que resultaban significativas para mi programa. Éste consultaba periódicamente (más deprisa que lo que daba el teclado) esas banderas para realizar su tarea. No usaba, por tanto, el getch().
Puedes lograr que se utilice el getch(), pero es liosillo. En lugar de que sea la BIOS quien gestione el buffer, puedes ser tú mismo. Además de hacerte tu propia int 09h, te haces tu propia int 08h (del reloj), de modo que periódicamente puedas meter las teclas que se estén pulsando en el buffer. Pero yo prefiero la primera opción.
¡Espero que te sirva!
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

RE:Entrada rapida por el teclado

Publicado por lluis nieto soler (3 intervenciones) el 06/03/2001 17:12:54
muchas gracias te agradezco que me ayudaras con el tema del teclado. tks!
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

RE:Entrada rapida por el teclado

Publicado por susan (1 intervención) el 24/06/2007 02:01:49
desean amistad sincera y divertida entonces la encontraste seremos los mejores amigos
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