hola
estoy interesado en hacer un programa en ensamblador que me permite a cada vez que pulso p.e el botón izquierdo del ratón en cualquier posición de la pantalla (modo texto) me imprime un carácter.
lo que no sé exactamente cómo puedo obtener en cualquier momento las posiciones del ratón sabiendo que existe una función con el registro ax=3 del servicio 33h que me permite obtener las coordenadas del cursor,el problema a la hora de mostrar dicho carácter en la pantalla,como estoy trabajando en modo texto lo que hago es X 160 (el valor de la fila) X2(el valor de la columna),para escribir el carácter en una posición concreta.
os adjunto una muestra del código,corregirme si me equivoco please :
datos segment
datos ends
pila segment stack
db 100 dup('?')
pila ends
codigo segment
assume cs:codigo,ds:datos,ss:pila
inicio:
mov ax,datos
mov ds,ax
;comprobarl la existencia del driver del ratón
mov ax,0
int 33h
cmp ax,0
je salir
;mostrar el cursor
mov ax,01h
int 33h
; comprobar la pulsación del botón izquierdo
btn_i :
mov ax,5
mov bx,0
int 33h
cmp bx,1
jae izk
jmp btn_i
izk : mov ax,03h
shl cx,3
add cx,1
shl dx,3
add dx,1
mov columna,cx
mov fila ,dx
int 33h
mov ax,0b800h
mov es,ax
mov byte ptr es:c[fila *160+clumna*2],'A' ;aqui en principio tengo que pasarle las coordenadas del cursor para mostrar el dato
mov byte ptr es:[fila*160+columna*2+1],00010111b
mov ax,5
mov bx,0
int 33h
cmp bx,1
jae izk
jmp salir
salir : mov ax,4ch
int 21h
codigo ends
end inicio
gracias de antemano por su ayuda
saludos