Subversion Repositories Kolibri OS

Rev

Rev 1373 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1373 Rev 1432
1
;ôàéë ñîçäàí 13.02.2009  Íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ
1
;ôàéë ñîçäàí 13.02.2009  Íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ
2
;Ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj
2
;Ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj
3
;Checkbox
3
;Checkbox
4
 
4
 
5
ch_struc_size=36
5
ch_struc_size=36
6
ch_flag_en=10b ;ýëåìåíò âûáðàí
6
ch_flag_en=10b ;ýëåìåíò âûáðàí
7
 
7
 
8
ch_left  equ [edi]         ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
8
ch_left  equ [edi]         ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ
9
ch_top   equ [edi+2]       ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
9
ch_top   equ [edi+2]       ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
10
ch_text_margin equ [edi+4] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨ 
10
ch_text_margin equ [edi+4] ;=4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè 
11
ch_size  equ [edi+8]       ;12 à §¬¥à ª¢ ¤à â  祪 ¡®ªá  
11
ch_size  equ [edi+8]       ;12 ðàçìåð êâàäðàòà ÷åê áîêñà 
12
ch_color equ [edi+12]      ;梥⠢­ãâਠcheckbox
12
ch_color equ [edi+12]      ;öâåò âíóòðè checkbox
13
ch_border_color equ [edi+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
13
ch_border_color equ [edi+16] ; or [edi+4] ;öâåò ðàìêè checkbox åå ìîæíî çàäàòü ñàìîñòîÿòåëüíî
14
ch_text_color   equ [edi+20] ;[edi+4]  ;梥â ⥪áâ 
14
ch_text_color   equ [edi+20] ;[edi+4]  ;öâåò òåêñòà
15
ch_text_ptr     equ [edi+24] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨ 
15
ch_text_ptr     equ [edi+24] ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè 
16
ch_text_length  equ [edi+28]
16
ch_text_length  equ [edi+28]
17
ch_flags equ [edi+32]      ;ä« £¨ 
-
 
18
 
-
 
19
macro check_boxes_set_sys_color start,end,color_table
-
 
20
{
-
 
21
    mov     edi,start
-
 
22
    mov     ecx,((end-start)/ch_struc_size)
-
 
23
    mov     esi,color_table
-
 
24
@@:
-
 
25
;    push    dword [esi+20] ;梥â à ¡®ç¥© ®¡« á⨠®ª­ 
-
 
26
;    pop     dword ch_color
-
 
27
    push    dword [esi+32] ;梥â ⥪áâ  ¢ à ¡®ç¥© ®¡« á⨠®ª­ 
-
 
28
    pop     dword ch_text_color
-
 
29
    push    dword [esi+36] ;梥⠣à ä¨ª¨ ¢ ®ª­¥ (à §¤¥«¨â¥«ì­ë¥ «¨­¨¨ ¨ â.¯.)
-
 
30
    pop     dword ch_border_color
-
 
31
    add     edi,ch_struc_size
-
 
32
    loop    @b
-
 
33
}
-
 
34
struc check_box left,top,ch_text_margin,ch_size,color,border_color,text_color,text,ch_text_length,flags
-
 
35
{        ;áâàãªâãà  ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá 
-
 
36
.left: dw left      ;+0 ¯®«®¦¥­¨¥ ¯® å
-
 
37
.top:  dw top       ;+2 ¯®«®¦¥­¨¥ ¯® ã
-
 
38
.ch_text_margin:  dd ch_text_margin ;à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨
-
 
39
.ch_size: dd ch_size ;à §¬¥à ª¢ ¤à â  祪 ¡®ªá , ¤«ï ¯à¨¬¥à  12
-
 
40
.color:   dd color   ;梥⠢­ãâਠ祪¡®ªá 
-
 
41
.border_color: dd border_color ;梥â à ¬ª¨
-
 
42
.text_color:   dd text_color   ;梥⠭ ¤¯¨á¨
-
 
43
.text: dd text                 ; ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à á¯®«®¦¥­ ⥪áâ
-
 
44
.ch_text_length: dd ch_text_length ;¤«¨­­  áâப¨ á ᨬ¢®« ¬¨
-
 
45
.flags: dd flags+0   ; ä« £¨        
-
 
46
}
17
ch_flags equ [edi+32]      ;ôëàãè 
47
 
18
 
48
macro use_checkbox_draw
19
macro use_checkbox_draw
49
{
20
{
50
check_box_draw:
21
check_box_draw:
51
       pusha   ;ñîõðàíèì âñå ðåãèñòðû
22
       pusha   ;ñîõðàíèì âñå ðåãèñòðû
52
       mov     edi,dword [esp+36]
23
       mov     edi,dword [esp+36]
53
       mov eax,13 
24
       mov eax,13 
54
       movzx ebx,word ch_left 
25
       movzx ebx,word ch_left 
55
       shl ebx,16 
26
       shl ebx,16 
56
       add ebx,ch_size 
27
       add ebx,ch_size 
57
       mov ecx,ch_top 
28
       mov ecx,ch_top 
58
       shl ecx,16 
29
       shl ecx,16 
59
       add ecx,dword ch_size 
30
       add ecx,dword ch_size 
60
       mov edx,dword ch_border_color 
31
       mov edx,dword ch_border_color 
61
       mcall ;ðèñóåì ðàìêó 
32
       mcall ;ðèñóåì ðàìêó 
62
 
33
 
63
       mov edx,dword ch_color 
34
       mov edx,dword ch_color 
64
       add ebx,1 shl 16 - 2 
35
       add ebx,1 shl 16 - 2 
65
       add ecx,1 shl 16 - 2 
36
       add ecx,1 shl 16 - 2 
66
       mcall ;çàêðàøèâàåì âíóòðåííîñòè ÷åêáîêñà 
37
       mcall ;çàêðàøèâàåì âíóòðåííîñòè ÷åêáîêñà 
67
 
38
 
68
       test dword ch_flags,2  ;äîñòàòü çíà÷åíèå áèòà èç ïåðåìåííîé è ïîìåñòèòü â  ôëàã CF 
39
       test dword ch_flags,2  ;äîñòàòü çíà÷åíèå áèòà èç ïåðåìåííîé è ïîìåñòèòü â  ôëàã CF 
69
       jz   @f                ;â åñëè CF=1, òî âûïîëíèì ñëåäóþùóþ ïðîöåäóðó èíà÷å ïåðåéòè íà íèæíþþ @@
40
       jz   @f                ;â åñëè CF=1, òî âûïîëíèì ñëåäóþùóþ ïðîöåäóðó èíà÷å ïåðåéòè íà íèæíþþ @@
70
       call check_box_draw_ch  ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ
41
       call check_box_draw_ch  ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ
71
@@:
42
@@:
72
;----------------------------
43
;----------------------------
73
;ðàñ÷åò êóäà áóäåò ïðîèçâåäåí âûâîä òåêñòà
44
;ðàñ÷åò êóäà áóäåò ïðîèçâåäåí âûâîä òåêñòà
74
;----------------------------
45
;----------------------------
75
        movzx ebx,word ch_left        ;çàãðóçèòü çíà÷åíèå õ äëÿ ÷åê áîêñà
46
        movzx ebx,word ch_left        ;çàãðóçèòü çíà÷åíèå õ äëÿ ÷åê áîêñà
76
        add   ebx,dword ch_size
47
        add   ebx,dword ch_size
77
        add   ebx,dword ch_text_margin;äîáàâèòü ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà
48
        add   ebx,dword ch_text_margin;äîáàâèòü ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà
78
        shl   ebx,16                ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
49
        shl   ebx,16                ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
79
        mov   bx,word ch_top        ;çàãðóçèì çíà÷åíèå ïî y
50
        mov   bx,word ch_top        ;çàãðóçèì çíà÷åíèå ïî y
80
        add   ebx,ch_size
51
        add   ebx,ch_size
81
        mov   ecx,dword ch_text_color        ;çàãðóçèì öâåò íàäïèñè + flags
52
        mov   ecx,dword ch_text_color        ;çàãðóçèì öâåò íàäïèñè + flags
82
        sub   ebx,7        ;äîáàâèì çíà÷åíèå äëèíû ñòîðîíû -9+2
53
        sub   ebx,7        ;äîáàâèì çíà÷åíèå äëèíû ñòîðîíû -9+2
83
        
54
        
84
        mov   edx,dword ch_text_ptr                ;óêàæåì àäðåñ îò êóäà íóæíî âûâîäèòü ñòðîêó
55
        mov   edx,dword ch_text_ptr                ;óêàæåì àäðåñ îò êóäà íóæíî âûâîäèòü ñòðîêó
85
        mov   esi,dword ch_text_length
56
        mov   esi,dword ch_text_length
86
        ;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó
57
        ;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó
87
        mov   eax,4
58
        mov   eax,4
88
        mcall                  ;Âûâîä 
59
        mcall                  ;Âûâîä 
89
popa                              ;âîññòàíîâèòü çíà÷åíèÿ ðåãèñòðîâ èç ñòåêà
60
popa                              ;âîññòàíîâèòü çíà÷åíèÿ ðåãèñòðîâ èç ñòåêà
90
ret 4                             ;âûéäåì èç ïðîöåäóðû
61
ret 4                             ;âûéäåì èç ïðîöåäóðû
91
 
62
 
92
check_box_clear_ch:                        ;î÷èñòêà ÷åê áîêñà
63
check_box_clear_ch:                        ;î÷èñòêà ÷åê áîêñà
93
        mov   edx,dword ch_color   ;öâåò âíóòðè ÷åê áîêñà
64
        mov   edx,dword ch_color   ;öâåò âíóòðè ÷åê áîêñà
94
        jmp   @f             ;áåçóñëîâíûé ïðûæîê íà íèæíþþ ìåòêó @@
65
        jmp   @f             ;áåçóñëîâíûé ïðûæîê íà íèæíþþ ìåòêó @@
95
check_box_draw_ch:            ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ
66
check_box_draw_ch:            ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ
96
        mov   edx,dword ch_border_color        ;çàãðóçèòü öâåò
67
        mov   edx,dword ch_border_color        ;çàãðóçèòü öâåò
97
@@:
68
@@:
98
        movzx ebx,word ch_left  ;çàãðóçèòü êîîðäèíàòó ïî õ
69
        movzx ebx,word ch_left  ;çàãðóçèòü êîîðäèíàòó ïî õ
99
        mov   eax,dword ch_size
70
        mov   eax,dword ch_size
100
        mov   bp,ax
71
        mov   bp,ax
101
        shr   eax,2
72
        shr   eax,2
102
        push  ax
73
        push  ax
103
 
74
 
104
        push  ax
75
        push  ax
105
        add   ebx,eax           
76
        add   ebx,eax           
106
        shl   ebx,16            ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
77
        shl   ebx,16            ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
107
        pop   ax
78
        pop   ax
108
        lea   eax,[eax*2]
79
        lea   eax,[eax*2]
109
        sub   bp,ax             ;ñîõðàíèì ðåãèñòð bx â ðåãèñòðå óêàçàòåëÿ áàçû
80
        sub   bp,ax             ;ñîõðàíèì ðåãèñòð bx â ðåãèñòðå óêàçàòåëÿ áàçû
110
        mov   bx,bp
81
        mov   bx,bp
111
 
82
 
112
        movzx ecx,word ch_top ;çàãðóçèòü êîîðäèíàòó ïî ó
83
        movzx ecx,word ch_top ;çàãðóçèòü êîîðäèíàòó ïî ó
113
        pop   ax
84
        pop   ax
114
        add   cx,ax         
85
        add   cx,ax         
115
        shl   ecx,16          ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
86
        shl   ecx,16          ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536)
116
        mov   cx,bp           ;çàãðóçèì çíà÷åíèÿ ðåãèñòðà óêàçàòåëÿ áàçû â cx
87
        mov   cx,bp           ;çàãðóçèì çíà÷åíèÿ ðåãèñòðà óêàçàòåëÿ áàçû â cx
117
        mov   eax,13          ;â eax - çíà÷åíèÿ ôóíêöèè äëÿ âûâîäà ïîëîñû ò.å. ïî ñóòè ïðÿìîóãîëüíèêà, êîòîðûé îòîáðàæàåò âêëþ÷åííûé êîìïîíåíò ÷åê áîêñ
88
        mov   eax,13          ;â eax - çíà÷åíèÿ ôóíêöèè äëÿ âûâîäà ïîëîñû ò.å. ïî ñóòè ïðÿìîóãîëüíèêà, êîòîðûé îòîáðàæàåò âêëþ÷åííûé êîìïîíåíò ÷åê áîêñ
118
        mcall            ;âûâîä
89
        mcall            ;âûâîä
119
ret                                ;âûéòè èç ïðîöåäóðû
90
ret                                ;âûéòè èç ïðîöåäóðû
120
}
91
}
121
 
92
 
122
 
93
 
123
macro use_checkbox_mouse
94
macro use_checkbox_mouse
124
{
95
{
125
 
96
 
126
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
97
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
127
;Îáðàáîò÷èê mouse
98
;Îáðàáîò÷èê mouse
128
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
129
check_box_mouse:      ;îáðàáîòêà ìûøè 
100
check_box_mouse:      ;îáðàáîòêà ìûøè 
130
pusha
101
pusha
131
        mov     edi,dword [esp+36]
102
        mov     edi,dword [esp+36]
132
        mov     eax,37           ;áóäåì ÷òî òî äåëàòü åñëè ó íàñ ÷òî - íèòü íàæàòî
103
        mov     eax,37           ;áóäåì ÷òî òî äåëàòü åñëè ó íàñ ÷òî - íèòü íàæàòî
133
        mov     ebx,2            ;âíåñòè â ðåãèñòð çíà÷åíèå 2
104
        mov     ebx,2            ;âíåñòè â ðåãèñòð çíà÷åíèå 2
134
        mcall             ;ïðîâåðêà íå íàæàë ëè ïîëüçîâàòåëü êíîïêó ìûøêè
105
        mcall             ;ïðîâåðêà íå íàæàë ëè ïîëüçîâàòåëü êíîïêó ìûøêè
135
        test    eax,eax   ;ïðîâåðêà åñëè ó íàñ â eax=0, òî óñòàíîâèì ôëàã è âûéäåì
106
        test    eax,eax   ;ïðîâåðêà åñëè ó íàñ â eax=0, òî óñòàíîâèì ôëàã è âûéäåì
136
        jnz     @f         ;ïåðåéòè íà íèæíþþ ìåòêó @@
107
        jnz     @f         ;ïåðåéòè íà íèæíþþ ìåòêó @@
137
        btr     dword ch_flags,2  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. 
108
        btr     dword ch_flags,2  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. 
138
        jmp     check_box_mouse_end
109
        jmp     check_box_mouse_end
139
        
110
        
140
@@:
111
@@:
141
        bts  dword ch_flags,2   ;ïðîâåðêà ôëàãà ò.å. ïåðåíîñ â cf çíà÷åíèå áèòà è óñòàíîâêà áèòà â ñîñòîÿíèå âêëþ÷åíî
112
        bts  dword ch_flags,2   ;ïðîâåðêà ôëàãà ò.å. ïåðåíîñ â cf çíà÷åíèå áèòà è óñòàíîâêà áèòà â ñîñòîÿíèå âêëþ÷åíî
142
        jc   check_box_mouse_end         ;åñëè CF=1 òî ïåðåéòè  â êîíåö ò.å. ýòî âûõîä
113
        jc   check_box_mouse_end         ;åñëè CF=1 òî ïåðåéòè  â êîíåö ò.å. ýòî âûõîä
143
        mov  esi,dword ch_text_length ;çàãðóçèòü êîë-âî ñèìâîëîâ â òåêñòîâîé ñòðîêå
114
        mov  esi,dword ch_text_length ;çàãðóçèòü êîë-âî ñèìâîëîâ â òåêñòîâîé ñòðîêå
144
        ;Óìíîæåíèå íà 6 Áûñòðîå óìíîæåíèå ìîæíî âîñïîëüçîâàòüñÿ ëþáûì ìç ìåòîäîâ, íî íà ñòàðûõ Ïðîöåññîðàõ (386,486,P1)áûñòðåå áóäåò ñ èíñòðóêöèåé Lea
115
        ;Óìíîæåíèå íà 6 Áûñòðîå óìíîæåíèå ìîæíî âîñïîëüçîâàòüñÿ ëþáûì ìç ìåòîäîâ, íî íà ñòàðûõ Ïðîöåññîðàõ (386,486,P1)áûñòðåå áóäåò ñ èíñòðóêöèåé Lea
145
        lea esi,[eax*3]  
116
        lea esi,[eax*3]  
146
        shl esi,1
117
        shl esi,1
147
;        imul esi,6             ; èëè ìîæíî è òàê óìíîæèòü íà 6
118
;        imul esi,6             ; èëè ìîæíî è òàê óìíîæèòü íà 6
148
        add  esi,dword ch_text_margin ;äîáàâèòü 3 - ðàññòîÿíèå îò ÷åê áîêñà äî íàäïèñè
119
        add  esi,dword ch_text_margin ;äîáàâèòü 3 - ðàññòîÿíèå îò ÷åê áîêñà äî íàäïèñè
149
 
120
 
150
        mov  eax,37             ;ïîëó÷èì êîîðäèíàòû ìûøêè 
121
        mov  eax,37             ;ïîëó÷èì êîîðäèíàòû ìûøêè 
151
        mov  ebx,1              ;äîáàâèòü 1
122
        mov  ebx,1              ;äîáàâèòü 1
152
        mcall               ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà 
123
        mcall               ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà 
153
        
124
        
154
        movzx ebx,word ch_top  ;çàãðóçèòü â bx çíà÷åíèå êîîðäèíàòû ó
125
        movzx ebx,word ch_top  ;çàãðóçèòü â bx çíà÷åíèå êîîðäèíàòû ó
155
        cmp   ax,bx              ;ñðàâíèòü ñ ñ êîîðäèíàòîé êóðñîðà
126
        cmp   ax,bx              ;ñðàâíèòü ñ ñ êîîðäèíàòîé êóðñîðà
156
        jl   check_box_mouse_end          ;SF <> OF åñëè ìåíüøå 
127
        jl   check_box_mouse_end          ;SF <> OF åñëè ìåíüøå 
157
        add   ebx,dword ch_size        ;äîáàâèòü ðàçìåð 
128
        add   ebx,dword ch_size        ;äîáàâèòü ðàçìåð 
158
        cmp   ax,bx              ;ñðàâíèòü
129
        cmp   ax,bx              ;ñðàâíèòü
159
        jg   check_box_mouse_end          ;ZF = 0 è SF = OF åñëè áîëüøå 
130
        jg   check_box_mouse_end          ;ZF = 0 è SF = OF åñëè áîëüøå 
160
             
131
             
161
        shr   eax,16              ;ðàçäåëèì íà 65536 èëè ïðîñòî ñäâèíåì áèòû íà 16 çíà÷åíèé
132
        shr   eax,16              ;ðàçäåëèì íà 65536 èëè ïðîñòî ñäâèíåì áèòû íà 16 çíà÷åíèé
162
        movzx ebx,word ch_left  ;ïðîèçâåäåì àíàëîãè÷íîå ñðàâíåíèå
133
        movzx ebx,word ch_left  ;ïðîèçâåäåì àíàëîãè÷íîå ñðàâíåíèå
163
        cmp   ax,bx            ;ñðàâíèòü ðåãèñòðû
134
        cmp   ax,bx            ;ñðàâíèòü ðåãèñòðû
164
        jl   check_box_mouse_end        ;åñëè ìåíüøå
135
        jl   check_box_mouse_end        ;åñëè ìåíüøå
165
        add   ebx,dword ch_size      ;äîáàâèòü äëèíó ñòîðîíû ïðÿìîóãîëüíèêà
136
        add   ebx,dword ch_size      ;äîáàâèòü äëèíó ñòîðîíû ïðÿìîóãîëüíèêà
166
        add   ebx,esi          ;Ó÷åñòü â çíà÷åíèè ïî õ åùå è äëèíó íàäïèñè ê ÷åêáîêñó
137
        add   ebx,esi          ;Ó÷åñòü â çíà÷åíèè ïî õ åùå è äëèíó íàäïèñè ê ÷åêáîêñó
167
        cmp   ax,bx            ;ñòðàâíèòü ðåãèñòðû
138
        cmp   ax,bx            ;ñòðàâíèòü ðåãèñòðû
168
        jg   check_box_mouse_end        ;åñëè áîëüøå 
139
        jg   check_box_mouse_end        ;åñëè áîëüøå 
169
 
140
 
170
        bts  dword ch_flags,1  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà 1. 
141
        bts  dword ch_flags,1  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà 1. 
171
        jc   @f                ;CF=1 òî ïåðåéòè íà íèæíþþ @@
142
        jc   @f                ;CF=1 òî ïåðåéòè íà íèæíþþ @@
172
        
143
        
173
        call check_box_draw_ch        ;îòîáðàçèòü âêëþ÷åííûé ÷åê áîêñ
144
        call check_box_draw_ch        ;îòîáðàçèòü âêëþ÷åííûé ÷åê áîêñ
174
;        mov   dword [esp+24],1 ;äàëüíåéøàÿ ïðîâåðêà ÷åê áîêñîâ áåñìûñëåíà, ïî ýòîìó â ñòåê, ãäå ðàñïîëàãàåòñÿ ecx ïîìåñòèòì 0 
145
;        mov   dword [esp+24],1 ;äàëüíåéøàÿ ïðîâåðêà ÷åê áîêñîâ áåñìûñëåíà, ïî ýòîìó â ñòåê, ãäå ðàñïîëàãàåòñÿ ecx ïîìåñòèòì 0 
175
        jmp  check_box_mouse_end       ;âûéòè 
146
        jmp  check_box_mouse_end       ;âûéòè 
176
@@:
147
@@:
177
        btr   word ch_flags,1  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. 
148
        btr   word ch_flags,1  ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. 
178
        call check_box_clear_ch         ;âûêëþ÷èòü ÷åê áîêñ ò.å. íà ìåñòå çàêðàøåííîãî ïðÿìîóãîëüíèêà îòîáðàçèòü öâåò ôîíà.
149
        call check_box_clear_ch         ;âûêëþ÷èòü ÷åê áîêñ ò.å. íà ìåñòå çàêðàøåííîãî ïðÿìîóãîëüíèêà îòîáðàçèòü öâåò ôîíà.
179
check_box_mouse_end:
150
check_box_mouse_end:
180
popa                                ;âîññòàíîâèòü ðåãèñòðû èç ñòåêà
151
popa                                ;âîññòàíîâèòü ðåãèñòðû èç ñòåêà
181
ret  4                              ;âûéòè
152
ret  4                              ;âûéòè
182
}
153
}