-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmouse.asm
More file actions
99 lines (90 loc) · 1.42 KB
/
Copy pathmouse.asm
File metadata and controls
99 lines (90 loc) · 1.42 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
.model tiny, C
.386
.code
public Mouse_Ini
public Mouse_Rst
public Mouse_Clc
public Mouse_Clc_Restart
public Mouse_Show
public Mouse_Hide
org 5h
Mouse_Ini proc near
; Инициализация мыши
mov ax, 00h
int 33h
; Отобразить мышь
call Mouse_Show
; Назначить действия
mov ax, 0ch
mov cx, 0000000000000101b
push cs
pop es
mov dx, offset mouse
int 33h
ret
Mouse_Ini endp
Mouse_Rst proc near
; Возвращаем мышь
mov ax, 0ch
mov cx, 0
mov bx, 0
push bx
pop es
mov dx, 0
int 33h
ret
Mouse_Rst endp
Mouse_Clc proc near
; CF=1 - был клик, смотри координаты в x=ax, y=bx
cmp lb, 1
jne @@no_clc
mov lb, 0
mov ax, xl
mov bx, yl
stc ; CF=1
ret
@@no_clc:
clc ; CF=0
ret
Mouse_Clc endp
Mouse_Clc_Restart proc near
mov lb, 0
ret
Mouse_Clc_Restart endp
Mouse_Show proc near
push ax
mov ax, 01h
int 33h
pop ax
ret
Mouse_Show endp
Mouse_Hide proc near
push ax
mov ax, 02h
int 33h
pop ax
ret
Mouse_Hide endp
mouse:
cmp ax, 0000000000000001b
jne @@els
mov x, cx
mov y, dx
retf
@@els:
cmp ax, 00000000000000100b
jne @@els2
mov lb, 1
mov ax, x
mov xl, ax
mov ax, y
mov yl, ax
retf
@@els2:
retf
x dw, 0
y dw, 0
xl dw, 0 ; Координаты в тот момент, когда в последний раз была отпущена ЛКМ (левая кнопка мыши)
yl dw, 0
lb db, 0 ; Была отпущена ЛКМ.
end