posiciones del cursor en cualquier momento
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 :
;Autor
;URL
2.datos segment
3.
4.datos ends
5.
6.pila segment stack
7.
8. db 100 dup('?')
9.
10.pila ends
11.
12.codigo segment
13. assume cs:codigo,ds:datos,ss:pila
14.
15. inicio:
16. mov ax,datos
17. mov ds,ax
18.
19. ;comprobarl la existencia del driver del ratón
20.
21. mov ax,0
22. int 33h
23. cmp ax,0
24. je salir
25.
26. ;mostrar el cursor
27.
28. mov ax,01h
29. int 33h
30.
31.
32.
33. ; comprobar la pulsación del botón izquierdo
34.
35.
36. btn_i :
37. mov ax,5
38. mov bx,0
39. int 33h
40. cmp bx,1
41. jae izk
42. jmp btn_i
43.
44.
45.
46. izk : mov ax,03h
47. shl cx,3
48. add cx,1
49. shl dx,3
50. add dx,1
51. mov columna,cx
52. mov fila ,dx
53. int 33h
54.
55. mov ax,0b800h
56. mov es,ax
57. mov byte ptr es:c[fila *160+clumna*2],'A' ;aqui en principio tengo que pasarle las coordenadas del cursor para mostrar el dato
58. mov byte ptr es:[fila*160+columna*2+1],00010111b
59.
60. mov ax,5
61. mov bx,0
62. int 33h
63. cmp bx,1
64. jae izk
65.
66. jmp salir
67.
68.
69.
70. salir : mov ax,4ch
71. int 21h
72.
73.
74.codigo ends
75.end inicio
76.