Subversion Repositories Kolibri OS

Rev

Rev 1639 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1639 Rev 1652
Line 4... Line 4...
4
;Checkbox
4
;Checkbox
Line 5... Line 5...
5
 
5
 
6
macro use_checkbox_draw
6
macro use_checkbox_draw
7
{
7
{
8
check_box_draw:
8
check_box_draw:
9
       pusha   ;ñîõðàíèì âñå ðåãèñòðû
9
	pushad   ;ñîõðàíèì âñå ðåãèñòðû 
10
;       mov	edi,dword [esp+36]
10
	mov	ebp,dword [esp+36]	;çàãðóæàåì óêàçàòåëü íà ñòðóêòóðó, óêàçàòåëü ìû ïåðåäàåì â ñòåêå
11
;	mov 	ebx,ch_left_s
11
;	mov 	ebx,ch_left_s
12
;	mov 	ecx,ch_top_s
12
;	mov 	ecx,ch_top_s
13
;	mov 	edx,dword ch_border_color 
13
;	mov 	edx,dword ch_border_color 
14
;	mov	eax,13
14
;	mov	eax,13
15
;	mcall 	;ðèñóåì ðàìêó 
15
;	mcall 	;ðèñóåì ðàìêó 
Line 16... Line 16...
16
	mcall	13,ch_left_s,ch_top_s,ch_border_color
16
	mcall	13,ch_left_s,ch_top_s,ch_border_color		;ðèñóåì ðàìêó ÷åê áîêñà, ôàêòè÷åñêè ðèñóåì ïðÿìîóãîëüíèê è çàêðàøèâàåì ôîí âíóòðè öâåòîì ðàìêè áîêñà
17
 
17
 
18
	mov 	edx,dword ch_color 
18
	mov 	edx,dword ch_color	;çàãðóæàåì öâåò ôîíà
19
	add 	ebx,1 shl 16 - 2 
19
	add 	ebx,1 shl 16 - 2 
Line 20... Line 20...
20
	add 	ecx,1 shl 16 - 2 
20
	add 	ecx,1 shl 16 - 2 
21
	mcall 	;çàêðàøèâàåì âíóòðåííîñòè ÷åêáîêñà 
21
	mcall 	;çàêðàøèâàåì âíóòðåííîñòè ÷åêáîêñà ôîíîì
22
 
22
 
23
       test dword ch_flags,2  ;äîñòàòü çíà÷åíèå áèòà èç ïåðåìåííîé è ïîìåñòèòü â  ôëàã CF 
23
	test dword ch_flags,2  ;äîñòàòü çíà÷åíèå áèòà èç ïåðåìåííîé è ïîìåñòèòü â  ôëàã CF 
24
       jz   @f                ;â åñëè CF=1, òî âûïîëíèì ñëåäóþùóþ ïðîöåäóðó èíà÷å ïåðåéòè íà íèæíþþ @@
24
	jz   @f                ;â åñëè CF=1, òî âûïîëíèì ñëåäóþùóþ ïðîöåäóðó èíà÷å ïåðåéòè íà íèæíþþ @@
25
       call check_box_draw_ch ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ
25
	call check_box_draw_ch ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ
26
@@:
26
@@:
27
;----------------------------
27
;----------------------------
-
 
28
;ðàñ÷åò êóäà áóäåò ïðîèçâåäåí âûâîä òåêñòà
-
 
29
;----------------------------
-
 
30
;        mov 	ebx,dword ch_left_s		;çàãðóçèòü çíà÷åíèå (õ shl 16 + äëèííà)  äëÿ ÷åê áîêñà
-
 
31
;        add	ebx,dword ch_text_margin	;äîáàâèì ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà
-
 
32
;        shl	ebx,16				;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
-
 
33
;        add	ebx,dword ch_left_s             ;cêîððåêòèðóåì ïîçèöèþ Õ. Ò.å. ñåé÷àñ â âåðõíåé ÷àñòè ebx ó íàñ òî÷êà íà÷àëà âûâîäà òåêñòà ïî Õ
-
 
34
 
-
 
35
;        mov	eax,word ch_top_s		;çàãðóçèì çíà÷åíèå ïî (y shl 16 + äëèííà) äëÿ ÷åê áîêñà
28
;ðàñ÷åò êóäà áóäåò ïðîèçâåäåí âûâîä òåêñòà
36
;        shl	eax,16				;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
-
 
37
;        add	eax,dword ch_top_s		;cêîððåêòèðóåì ïîçèöèþ Õ. Ò.å. ñåé÷àñ â âåðõíåé ÷àñòè ebx ó íàñ òî÷êà íà÷àëà âûâîäà òåêñòà ïî Y
-
 
38
	
29
;----------------------------
39
; Îïòèìèçàöèÿ äëÿ ÖÏ
-
 
40
	mov 	ebx,dword ch_left_s		;çàãðóçèòü çíà÷åíèå (õ shl 16 + äëèííà)  äëÿ ÷åê áîêñà
30
        mov 	ebx,ch_left        	;çàãðóçèòü çíà÷åíèå õ äëÿ ÷åê áîêñà
41
        mov	eax,dword ch_top_s		;çàãðóçèì çíà÷åíèå ïî (y shl 16 + äëèííà) äëÿ ÷åê áîêñà 
31
        add	ebx,dword ch_size
42
        add	ebx,dword ch_text_margin	;äîáàâèì ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà
32
        add	ebx,dword ch_text_margin	;äîáàâèòü ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà
43
        shl	eax,16				;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
33
        shl	ebx,16				;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
44
        shl	ebx,16				;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
34
        mov	bx,word ch_top			;çàãðóçèì çíà÷åíèå ïî y
45
        add	eax,dword ch_top_s		;cêîððåêòèðóåì ïîçèöèþ Õ. Ò.å. ñåé÷àñ â âåðõíåé ÷àñòè ebx ó íàñ òî÷êà íà÷àëà âûâîäà òåêñòà ïî Y
Line -... Line 46...
-
 
46
        add	ebx,dword ch_left_s             ;cêîððåêòèðóåì ïîçèöèþ Õ. Ò.å. ñåé÷àñ â âåðõíåé ÷àñòè ebx ó íàñ òî÷êà íà÷àëà âûâîäà òåêñòà ïî Õ
35
        add	ebx,ch_size
47
        shr	eax,16				;äëÿ y ïîìåñòèì â ìëàäøóþ ÷àñòü
36
        mov	ecx,dword ch_text_color		;çàãðóçèì öâåò íàäïèñè + flags
-
 
37
        sub	ebx,7				;äîáàâèì çíà÷åíèå äëèíû ñòîðîíû -9+2
48
	mov	bx,ax				;âíåñåì ñìåùåíèå äëÿ y
38
        
49
 
39
        mov	edx,dword ch_text_ptr		;óêàæåì àäðåñ îò êóäà íóæíî âûâîäèòü ñòðîêó
50
	mov	ecx,dword ch_text_color		;çàãðóçèì öâåò íàäïèñè + flags
40
        mov	esi,dword ch_text_length
51
        mov	edx,dword ch_text_ptr		;óêàæåì àäðåñ îò êóäà íóæíî âûâîäèòü ñòðîêó
Line 41... Line 52...
41
        mov	eax,4				;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó
52
        mov	eax,4				;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó
42
        mcall					;Âûâîä 
53
        mcall					;Âûâîä 
43
	popa					;âîññòàíîâèòü çíà÷åíèÿ ðåãèñòðîâ èç ñòåêà
54
	popad					;âîññòàíîâèòü çíà÷åíèÿ ðåãèñòðîâ èç ñòåêà
44
	ret 4					;âûéäåì èç ïðîöåäóðû
55
	ret 4					;âûéäåì èç ïðîöåäóðû è óäàëèì èç ñòåêà óêàçàòåëü íà ñòðóêòóðó (4 áàéòà)
45
 
56
 
46
check_box_clear_ch:                        ;î÷èñòêà ÷åê áîêñà
57
check_box_clear_ch:				;î÷èñòêà ÷åê áîêñà
47
        mov   edx,dword ch_color   ;öâåò âíóòðè ÷åê áîêñà
58
        mov	edx,dword ch_color   		;öâåò âíóòðè ÷åê áîêñà
48
        jmp   @f             ;áåçóñëîâíûé ïðûæîê íà íèæíþþ ìåòêó @@
59
        jmp	@f				;áåçóñëîâíûé ïðûæîê íà íèæíþþ ìåòêó @@
49
check_box_draw_ch:            ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ
60
check_box_draw_ch:				;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ
50
        mov   edx,dword ch_border_color        ;çàãðóçèòü öâåò
61
        mov	edx,dword ch_border_color	;çàãðóçèòü öâåò
51
@@:
62
@@:
52
        movzx ebx,word ch_left  ;çàãðóçèòü êîîðäèíàòó ïî õ
63
;        movzx ebx,word ch_left  ;çàãðóçèòü êîîðäèíàòó ïî õ
53
        mov   eax,dword ch_size
64
;        mov   eax,dword ch_size
54
        mov   di,ax
65
;        mov   di,ax
55
        shr   eax,2
66
;        shr   eax,2
56
        push  ax
67
;        push  ax
57
 
68
; 
58
        push  ax
69
;        push  ax
59
        add   ebx,eax           
70
;        add   ebx,eax           
60
        shl   ebx,16            ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
71
;        shl   ebx,16            ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
61
        pop   ax
72
;        pop   ax
62
        lea   eax,[eax*2]
73
;        lea   eax,[eax*2]
63
        sub   bp,ax             ;ñîõðàíèì ðåãèñòð bx â ðåãèñòðå óêàçàòåëÿ áàçû
74
;        sub   bp,ax             ;ñîõðàíèì ðåãèñòð bx â ðåãèñòðå óêàçàòåëÿ áàçû
64
        mov   bx,bp
75
;        mov   bx,bp
65
 
76
 
66
        movzx ecx,word ch_top ;çàãðóçèòü êîîðäèíàòó ïî ó
77
;        movzx ecx,word ch_top ;çàãðóçèòü êîîðäèíàòó ïî ó
67
        pop   ax
78
;        pop   ax
-
 
79
;        add   cx,ax         
-
 
80
;        shl   ecx,16          ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
-
 
81
;        mov   cx,bp           ;çàãðóçèì çíà÷åíèÿ ðåãèñòðà óêàçàòåëÿ áàçû â cx
-
 
82
;        mov   eax,13          ;â eax - çíà÷åíèÿ ôóíêöèè äëÿ âûâîäà ïîëîñû ò.å. ïî ñóòè ïðÿìîóãîëüíèêà, êîòîðûé îòîáðàæàåò âêëþ÷åííûé êîìïîíåíò ÷åê áîêñ
68
        add   cx,ax         
83
;        mcall            ;âûâîä
-
 
84
 
-
 
85
	mov	ebx,dword ch_left_s
69
        shl   ecx,16          ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
86
	mov	ecx,dword ch_top_s
Line 70... Line 87...
70
        mov   cx,bp           ;çàãðóçèì çíà÷åíèÿ ðåãèñòðà óêàçàòåëÿ áàçû â cx
87
	add 	ebx,1 shl 16 - 4 
71
        mov   eax,13          ;â eax - çíà÷åíèÿ ôóíêöèè äëÿ âûâîäà ïîëîñû ò.å. ïî ñóòè ïðÿìîóãîëüíèêà, êîòîðûé îòîáðàæàåò âêëþ÷åííûé êîìïîíåíò ÷åê áîêñ
88
	add 	ecx,1 shl 16 - 4
Line 72... Line 89...
72
        mcall            ;âûâîä
89
	mcall	13
73
ret                                ;âûéòè èç ïðîöåäóðû
90
	ret
-
 
91
}
74
}
92
 
75
 
93
 
76
 
94
macro use_checkbox_mouse
77
macro use_checkbox_mouse
-
 
78
{
95
{
79
 
-
 
80
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
96
 
81
;Îáðàáîò÷èê mouse
97
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
82
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
98
;Îáðàáîò÷èê mouse
83
check_box_mouse:      ;îáðàáîòêà ìûøè 
99
; Ïðè ïîïàäàíèè ìûøêè + íàæàòà êëàâèøà â îáëàñòü checkbox ñîñòîÿíèå áîêñà äîëæíî ìåíÿòñÿ àêòèâíûé - íå àêòèâíûé.
84
pusha
100
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 
101
check_box_mouse:      ;îáðàáîòêà ìûøè 
-
 
102
pushad
-
 
103
	mov	ebp,dword [esp+36]	;çàãðóæàåì óêàçàòåëü íà ñòðóêòóðó, óêàçàòåëü ìû ïåðåäàåì â ñòåêå
-
 
104
        mcall	37,2			;ïðîâåðÿåì ñîñòîÿíèå êëàâèø ìûøêè. Áûëî ëè ñîáûòèå íàæàòàÿ êëàâèøà íà ìûøêå.
-
 
105
	test    eax,eax			;ïðîâåðêà åñëè ó íàñ â eax=0, òî óñòàíîâèì ôëàã è âûéäåì
-
 
106
	jnz     @f			;ïåðåéòè íà íèæíþþ ìåòêó @@, åñëè â eax íå 0.
-
 
107
;        and     dword ch_flags,eax	;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. 
-
 
108
        jmp     .check_box_mouse_end     ;îáðàáîòêà çàêîí÷èëàñü
-
 
109
; Äà ñîáûòèå: íàæàòèå êëàâèøè ìûøêè ïðîèçîøëî.        
-
 
110
@@:
-
 
111
        mcall	37,1			;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà
-
 
112
					;íà âûõîäå â eax x shl 16 + y
-
 
113
;ñðàâíåíèå âåðõíåé òî÷êè ïî Y
-
 
114
	mov	ecx,dword ch_top_s	;y shl 16 +äëèííà ïî y
-
 
115
	mov	ebx,ecx
-
 
116
	shr	ebx,16                  ;bx = êîîðäèíàòà ïî y
-
 
117
	cmp	ax,bx
-
 
118
	jb	.check_box_mouse_end	;óêàçàòåëü ìûøêè ìåíüøå íà÷àëüíîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà
-
 
119
;ñðàâíåíèå íèæíåé òî÷êè ïî Y
-
 
120
	add	cx,bx			;ñëîæèì äëèííó ïî y è êîîðäèíàòó âåðõíåé òî÷êè ïî y ïîëè÷èì êîîðäèíàòó íèæíåé òî÷êè ïî Y
-
 
121
	cmp	ax,cx
-
 
122
	ja	.check_box_mouse_end	;óêàçàòåëü ìûøêè áîëüøå êîíå÷íîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà
-
 
123
;ñðàâíåíèå ïî íà÷àëüíîé òî÷êå Õ
-
 
124
	mov 	ecx,dword ch_left_s	;çàãðóçèòü çíà÷åíèå (õ shl 16 + äëèííà)  äëÿ ÷åê áîêñà
-
 
125
	mov	ebx,ecx
85
        mov     edi,dword [esp+36]
126
	shr	ebx,16                  ;bx = êîîðäèíàòà ïî X
-
 
127
	cmp	ax,bx
-
 
128
	jb	.check_box_mouse_end	;óêàçàòåëü ìûøêè ìåíüøå íà÷àëüíîé êîîðäèíàòû ïî X ÷åì êîîðäèíàòà ïî X ó áîêñà
-
 
129
;ñðàâíåíèå êîíå÷íîé òî÷êè ïî X
-
 
130
	add	bx,cx			;ñëîæèì äëèííó ïî y è êîîðäèíàòó âåðõíåé òî÷êè ïî y ïîëè÷èì êîîðäèíàòó íèæíåé òî÷êè ïî Y
86
        mov     eax,37           ;áóäåì ÷òî òî äåëàòü åñëè ó íàñ ÷òî - íèòü íàæàòî
131
	add	ebx,dword ch_text_margin	;äîáàâèì ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà
-
 
132
	mov	ecx,dword ch_text_ptr	;óêàæåì àäðåñ ñòðîêè ñ òåðìèíèðóåùèì 0
-
 
133
        push	eax
-
 
134
 
-
 
135
;ïîäñ÷åò äëèííû ñòðîêè è óâåëè÷åíèå ïðÿìîãîëüíèêà â êîòîðîì ñðàáàòûâàåò ùåë÷îê ìûøêè
-
 
136
	lodsb	
-
 
137
	test	al,al
-
 
138
	jz	.ex_loop
-
 
139
@@:	
-
 
140
	add	bx,6			;øèðèíà ñèìâîëà
-
 
141
	lodsb
-
 
142
	test	al,al
-
 
143
	jnz	@b
-
 
144
.ex_loop:
-
 
145
	pop	eax	
-
 
146
	cmp	ax,bx
-
 
147
	ja	.check_box_mouse_end	;óêàçàòåëü ìûøêè áîëüøå êîíå÷íîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà
-
 
148
;åñëè âñå ïðîâåðêè áûëè óñïåøíî ïðîéäåíû ìû îáÿçàíû ïîìåíÿòü ñîñòîÿíèå áîêñà
-
 
149
	btc	dword	ch_flags,2	;ïåðåíîñ 2-ãî áèòà â cf è èíâåðñèÿ åãî
-
 
150
	jc	.enable_box		;åñëè CF=1 òî îòîáðàçèì âêëþ÷åííûé áîêñ è âûéäåì
87
        mov     ebx,2            ;âíåñòè â ðåãèñòð çíà÷åíèå 2
151
	push	dword .check_box_mouse_end	;ôîêóñ -ïîêóñ, âåðíåìñÿ ïîñëå âûçîâà check_box_clear_ch íà ìåòêó check_box_mouse_end
88
        mcall             ;ïðîâåðêà íå íàæàë ëè ïîëüçîâàòåëü êíîïêó ìûøêè
152
	jmp	check_box_clear_ch         ;âûêëþ÷èòü ÷åê áîêñ ò.å. íà ìåñòå çàêðàøåííîãî ïðÿìîóãîëüíèêà îòîáðàçèòü öâåò ôîíà.	
89
        test    eax,eax   ;ïðîâåðêà åñëè ó íàñ â eax=0, òî óñòàíîâèì ôëàã è âûéäåì
153
 
90
        jnz     @f         ;ïåðåéòè íà íèæíþþ ìåòêó @@
154
.enable_box:
91
        btr     dword ch_flags,2  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. 
155
	call	check_box_draw_ch        ;îòîáðàçèòü âêëþ÷åííûé ÷åê áîêñ
92
        jmp     check_box_mouse_end
156
 
93
        
157
 
94
@@:
158
 
Line 95... Line 159...
95
        bts  dword ch_flags,2   ;ïðîâåðêà ôëàãà ò.å. ïåðåíîñ â cf çíà÷åíèå áèòà è óñòàíîâêà áèòà â ñîñòîÿíèå âêëþ÷åíî
159
;	bts  dword ch_flags,2   ;ïðîâåðêà ôëàãà ò.å. ïåðåíîñ â cf çíà÷åíèå áèòà è óñòàíîâêà áèòà â ñîñòîÿíèå âêëþ÷åíî
96
        jc   check_box_mouse_end         ;åñëè CF=1 òî ïåðåéòè  â êîíåö ò.å. ýòî âûõîä
160
;        jc   check_box_mouse_end         ;åñëè CF=1 òî ïåðåéòè  â êîíåö ò.å. ýòî âûõîä
97
        mov  esi,dword ch_text_length ;çàãðóçèòü êîë-âî ñèìâîëîâ â òåêñòîâîé ñòðîêå
161
;        mov  esi,dword ch_text_length ;çàãðóçèòü êîë-âî ñèìâîëîâ â òåêñòîâîé ñòðîêå
98
        ;Óìíîæåíèå íà 6 Áûñòðîå óìíîæåíèå ìîæíî âîñïîëüçîâàòüñÿ ëþáûì ìç ìåòîäîâ, íî íà ñòàðûõ Ïðîöåññîðàõ (386,486,P1)áûñòðåå áóäåò ñ èíñòðóêöèåé Lea
162
        ;Óìíîæåíèå íà 6 Áûñòðîå óìíîæåíèå ìîæíî âîñïîëüçîâàòüñÿ ëþáûì ìç ìåòîäîâ, íî íà ñòàðûõ Ïðîöåññîðàõ (386,486,P1)áûñòðåå áóäåò ñ èíñòðóêöèåé Lea
99
        lea esi,[eax*3]  
163
;        lea esi,[eax*3]  
100
        shl esi,1
164
;        shl esi,1
101
;        imul esi,6             ; èëè ìîæíî è òàê óìíîæèòü íà 6
165
;        imul esi,6             ; èëè ìîæíî è òàê óìíîæèòü íà 6
102
        add  esi,dword ch_text_margin ;äîáàâèòü 3 - ðàññòîÿíèå îò ÷åê áîêñà äî íàäïèñè
166
;        add  esi,dword ch_text_margin ;äîáàâèòü 3 - ðàññòîÿíèå îò ÷åê áîêñà äî íàäïèñè
103
 
167
 
104
        mov  eax,37             ;ïîëó÷èì êîîðäèíàòû ìûøêè 
168
;        mov  eax,37             ;ïîëó÷èì êîîðäèíàòû ìûøêè 
105
        mov  ebx,1              ;äîáàâèòü 1
169
;        mov  ebx,1              ;äîáàâèòü 1
106
        mcall               ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà 
170
;        mcall               ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà 
107
        
171
        
108
        movzx ebx,word ch_top  ;çàãðóçèòü â bx çíà÷åíèå êîîðäèíàòû ó
172
;        movzx ebx,word ch_top  ;çàãðóçèòü â bx çíà÷åíèå êîîðäèíàòû ó
109
        cmp   ax,bx              ;ñðàâíèòü ñ ñ êîîðäèíàòîé êóðñîðà
173
;        cmp   ax,bx              ;ñðàâíèòü ñ ñ êîîðäèíàòîé êóðñîðà
110
        jl   check_box_mouse_end          ;SF <> OF åñëè ìåíüøå 
174
;        jl   check_box_mouse_end          ;SF <> OF åñëè ìåíüøå 
111
        add   ebx,dword ch_size        ;äîáàâèòü ðàçìåð 
175
;        add   ebx,dword ch_size        ;äîáàâèòü ðàçìåð 
112
        cmp   ax,bx              ;ñðàâíèòü
176
;        cmp   ax,bx              ;ñðàâíèòü
113
        jg   check_box_mouse_end          ;ZF = 0 è SF = OF åñëè áîëüøå 
177
;        jg   check_box_mouse_end          ;ZF = 0 è SF = OF åñëè áîëüøå 
Line 114... Line 178...
114
             
178
             
115
        shr   eax,16              ;ðàçäåëèì íà 65536 èëè ïðîñòî ñäâèíåì áèòû íà 16 çíà÷åíèé
179
;        shr   eax,16              ;ðàçäåëèì íà 65536 èëè ïðîñòî ñäâèíåì áèòû íà 16 çíà÷åíèé
Line 116... Line 180...
116
        movzx ebx,word ch_left  ;ïðîèçâåäåì àíàëîãè÷íîå ñðàâíåíèå
180
;        movzx ebx,word ch_left  ;ïðîèçâåäåì àíàëîãè÷íîå ñðàâíåíèå
117
        cmp   ax,bx            ;ñðàâíèòü ðåãèñòðû
181
;        cmp   ax,bx            ;ñðàâíèòü ðåãèñòðû
118
        jl   check_box_mouse_end        ;åñëè ìåíüøå
182
;        jl   check_box_mouse_end        ;åñëè ìåíüøå
119
        add   ebx,dword ch_size      ;äîáàâèòü äëèíó ñòîðîíû ïðÿìîóãîëüíèêà
183
;        add   ebx,dword ch_size      ;äîáàâèòü äëèíó ñòîðîíû ïðÿìîóãîëüíèêà
120
        add   ebx,esi          ;Ó÷åñòü â çíà÷åíèè ïî õ åùå è äëèíó íàäïèñè ê ÷åêáîêñó
184
;        add   ebx,esi          ;Ó÷åñòü â çíà÷åíèè ïî õ åùå è äëèíó íàäïèñè ê ÷åêáîêñó
121
        cmp   ax,bx            ;ñòðàâíèòü ðåãèñòðû
185
;        cmp   ax,bx            ;ñòðàâíèòü ðåãèñòðû
122
        jg   check_box_mouse_end        ;åñëè áîëüøå 
186
;        jg   check_box_mouse_end        ;åñëè áîëüøå 
123
 
187
 
124
        bts  dword ch_flags,1  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà 1. 
188
;        bts  dword ch_flags,1  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà 1. 
125
        jc   @f                ;CF=1 òî ïåðåéòè íà íèæíþþ @@
189
;        jc   @f                ;CF=1 òî ïåðåéòè íà íèæíþþ @@
126
        
190