Ensamblador - Ayuda con alt+tecla

 
Vista:

Ayuda con alt+tecla

Publicado por Lokinkc (1 intervención) el 24/04/2013 22:41:15
Buenas, tengo un pequeño problema, estoy intentando detectar por teclado la pulsado de alt+tecla.

El problema viene en que, al pulsar alt+loquesea, el registro al siempre me devuelve 0, por tanto no puedo leer el caracter ascii de la tecla que he pulsado. El codigo que estoy usando es este:

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
#include <stdio.h> 
 
void main(){
	char scanCode, Carac;
	while(1) {
	printf ("\nPulsa una tecla (ESC para salir): ");
	asm {
		mov ah,0  ; /* Leemos el carácter desde el buffer de teclado*/
		int 16h; /*Llamada a la interrupción*/
		mov scanCode,ah; /*Copiamos el valor del scancode*/
		mov Carac,al ; /*Copiamos el valor del codigo ascii*/
		}
	printf("\nHas pulsado una tecla con ScanCode=%d, Codigo ascii=%d,'",scanCode, Carac);
 
 
 
	asm {
		mov ah,2  ; /* Leemos el estado de la tecla especial*/
		int 16h; /*Llamada a la interrupción*/
		mov scanCode,ah; /*Copiamos el valor del scancode*/
		mov Carac,al ; /*Copiamos el valor del codigo ascii*/
		}
	printf("\n Codigo de tecla especial %d,'", Carac);
	if (scanCode==1) /*Analizamos si la tecla pulsada es escape comprobando su scancode*/ {
	printf("\nHas pulsado ESC, el programa saldrá");
	break; }
} }


Agradeceria cualquier tipo de ayuda.
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